aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Nicolaescu2008-07-31 05:33:56 +0000
committerDan Nicolaescu2008-07-31 05:33:56 +0000
commit7c2fb837ec2f0e0a509f22ccc35f9b43476a6119 (patch)
tree7ec796ef1f109e43c8be2cc8cfb8dc579cfa8033
parent69ab3201ca6f6ef1414d678fd9cb13dd4d6f6b95 (diff)
downloademacs-7c2fb837ec2f0e0a509f22ccc35f9b43476a6119.tar.gz
emacs-7c2fb837ec2f0e0a509f22ccc35f9b43476a6119.zip
* bitmaps/README:
* xfns.c: * termcap.c: * term.c: * syswait.h: * systty.h: * systime.h: * syssignal.h: * sysdep.c: * process.h: * process.c: * print.c: * ndir.h: * lread.c: * keyboard.c: * getpagesize.h: * floatfns.c: * fileio.c: * emacs.c: * doc.c: * dispnew.c: * dired.c: * data.c: * callproc.c: * buffer.c: * README: * Makefile.in: * s/template.h: * s/msdos.h: * m/vax.h: Remove VMS support. * s/vms.h: * vlimit.h: * uaf.h: * temacs.opt: * param.h: * ioctl.h: Remove file. * descrip.mms: * compile.com: Remove file. * Create.c: Remove VMS support. * message.el (Module): * gnus-start.el (Module): * gnus-registry.el (Module): * textmodes/texinfmt.el: * nxml/nxml-enc.el: * mail/feedmail.el: * international/mule.el: * international/latexenc.el: * emulation/viper-util.el: * emulation/viper-init.el: * emulation/viper-ex.el: * emacs-lisp/bytecomp.el: * version.el: * subr.el: * startup.el: * sort.el: * shadowfile.el: * recentf.el: * printing.el: * paths.el: * minibuffer.el: * ls-lisp.el: * loadup.el: * hippie-exp.el: * finder.el: * files.el: * ediff-util.el: * ediff-ptch.el: * ediff-init.el: * ediff-diff.el: * dired.el: * dired-aux.el: * cus-edit.el: * bindings.el: * arc-mode.el: * add-log.el: Remove VMS support. * obsolete/vmsproc.el: * obsolete/vms-pmail.el: * obsolete/vms-patch.el: Remove file. * etags.c: * emacsclient.c: Remove VMS support. * termcap.src: Remove file. * README: * PROBLEMS: * MACHINES: Remove VMS info. * ediff.texi: Remove VMS support. * os.texi: * intro.texi: * files.texi: Remove VMS support. * emacs.texi: Remove VMS support. * make-dist: * README: Remove VMS support. * vms: Remove directory.
-rw-r--r--ChangeLog6
-rw-r--r--README1
-rw-r--r--admin/CPP-DEFINES6
-rw-r--r--admin/MAINTAINERS3
-rw-r--r--admin/notes/cpp4
-rw-r--r--doc/emacs/ChangeLog4
-rw-r--r--doc/emacs/emacs.texi9
-rw-r--r--doc/lispref/ChangeLog6
-rw-r--r--doc/lispref/files.texi62
-rw-r--r--doc/lispref/intro.texi2
-rw-r--r--doc/lispref/os.texi20
-rw-r--r--doc/misc/ChangeLog4
-rw-r--r--doc/misc/ediff.texi2
-rw-r--r--etc/ChangeLog7
-rw-r--r--etc/MACHINES21
-rw-r--r--etc/PROBLEMS21
-rw-r--r--etc/README4
-rw-r--r--etc/termcap.src17734
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/emacsclient.c4
-rw-r--r--lib-src/etags.c154
-rw-r--r--lisp/ChangeLog39
-rw-r--r--lisp/add-log.el4
-rw-r--r--lisp/arc-mode.el4
-rw-r--r--lisp/bindings.el4
-rw-r--r--lisp/cus-edit.el4
-rw-r--r--lisp/dired-aux.el2
-rw-r--r--lisp/dired.el9
-rw-r--r--lisp/ediff-diff.el5
-rw-r--r--lisp/ediff-init.el2
-rw-r--r--lisp/ediff-ptch.el2
-rw-r--r--lisp/ediff-util.el2
-rw-r--r--lisp/emacs-lisp/bytecomp.el11
-rw-r--r--lisp/emulation/viper-ex.el3
-rw-r--r--lisp/emulation/viper-init.el5
-rw-r--r--lisp/emulation/viper-util.el3
-rw-r--r--lisp/files.el76
-rw-r--r--lisp/finder.el2
-rw-r--r--lisp/gnus/gnus-registry.el4
-rw-r--r--lisp/gnus/gnus-start.el4
-rw-r--r--lisp/gnus/message.el17
-rw-r--r--lisp/hippie-exp.el54
-rw-r--r--lisp/international/latexenc.el2
-rw-r--r--lisp/international/mule.el2
-rw-r--r--lisp/loadup.el14
-rw-r--r--lisp/ls-lisp.el2
-rw-r--r--lisp/mail/feedmail.el17
-rw-r--r--lisp/minibuffer.el2
-rw-r--r--lisp/nxml/nxml-enc.el2
-rw-r--r--lisp/obsolete/vms-patch.el270
-rw-r--r--lisp/obsolete/vms-pmail.el125
-rw-r--r--lisp/obsolete/vmsproc.el148
-rw-r--r--lisp/paths.el6
-rw-r--r--lisp/printing.el1
-rw-r--r--lisp/recentf.el2
-rw-r--r--lisp/shadowfile.el2
-rw-r--r--lisp/sort.el4
-rw-r--r--lisp/startup.el29
-rw-r--r--lisp/subr.el24
-rw-r--r--lisp/textmodes/texinfmt.el27
-rw-r--r--lisp/version.el2
-rwxr-xr-xmake-dist11
-rw-r--r--oldXMenu/ChangeLog6
-rw-r--r--oldXMenu/Create.c18
-rw-r--r--oldXMenu/compile.com66
-rw-r--r--oldXMenu/descrip.mms111
-rw-r--r--src/ChangeLog39
-rw-r--r--src/Makefile.in8
-rw-r--r--src/README17
-rw-r--r--src/bitmaps/README3
-rw-r--r--src/buffer.c2
-rw-r--r--src/callproc.c20
-rw-r--r--src/data.c4
-rw-r--r--src/dired.c84
-rw-r--r--src/dispnew.c30
-rw-r--r--src/doc.c25
-rw-r--r--src/emacs.c84
-rw-r--r--src/fileio.c725
-rw-r--r--src/floatfns.c10
-rw-r--r--src/getpagesize.h4
-rw-r--r--src/ioctl.h4
-rw-r--r--src/keyboard.c37
-rw-r--r--src/lread.c10
-rw-r--r--src/m/vax.h17
-rw-r--r--src/ndir.h17
-rw-r--r--src/param.h5
-rw-r--r--src/print.c39
-rw-r--r--src/process.c127
-rw-r--r--src/process.h2
-rw-r--r--src/s/msdos.h1
-rw-r--r--src/s/template.h8
-rw-r--r--src/s/vms.h192
-rw-r--r--src/sysdep.c2000
-rw-r--r--src/syssignal.h2
-rw-r--r--src/systime.h6
-rw-r--r--src/systty.h47
-rw-r--r--src/syswait.h17
-rw-r--r--src/temacs.opt60
-rw-r--r--src/term.c23
-rw-r--r--src/termcap.c35
-rw-r--r--src/uaf.h298
-rw-r--r--src/vlimit.h5
-rw-r--r--src/xfns.c4
-rw-r--r--vms/README12
-rw-r--r--vms/make-mms-derivative.el139
105 files changed, 252 insertions, 23138 deletions
diff --git a/ChangeLog b/ChangeLog
index b9e55d8a17b..7816f2881c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
12008-07-31 Dan Nicolaescu <dann@ics.uci.edu> 12008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
2 2
3 * make-dist:
4 * README: Remove VMS support.
5 * vms: Remove directory.
6
72008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
8
3 * configure.in (MULTI_KBOARD): Remove. 9 * configure.in (MULTI_KBOARD): Remove.
4 10
52008-07-30 Dan Nicolaescu <dann@ics.uci.edu> 112008-07-30 Dan Nicolaescu <dann@ics.uci.edu>
diff --git a/README b/README
index d016828dfe3..7fe4e61f20a 100644
--- a/README
+++ b/README
@@ -81,7 +81,6 @@ There are several subdirectories:
81`doc/lispintro' holds the source code for the Introduction to Programming 81`doc/lispintro' holds the source code for the Introduction to Programming
82 in Emacs Lisp manual. 82 in Emacs Lisp manual.
83`msdos' holds configuration files for compiling Emacs under MSDOG. 83`msdos' holds configuration files for compiling Emacs under MSDOG.
84`vms' holds instructions and useful files for running Emacs under VMS.
85`nt' holds various command files and documentation files that pertain 84`nt' holds various command files and documentation files that pertain
86 to building and running Emacs on Windows 9X/ME/NT/2000/XP. 85 to building and running Emacs on Windows 9X/ME/NT/2000/XP.
87`test' holds tests for various aspects of Emacs's functionality. 86`test' holds tests for various aspects of Emacs's functionality.
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES
index c1fc54bf7a1..c32c235ca1c 100644
--- a/admin/CPP-DEFINES
+++ b/admin/CPP-DEFINES
@@ -220,7 +220,6 @@ LIB_MATH
220LIB_MOTIF 220LIB_MOTIF
221LIB_STANDARD 221LIB_STANDARD
222LINKER 222LINKER
223LINK_CRTL_SHARE
224LINUX_VERSION_CODE 223LINUX_VERSION_CODE
225LISP_FLOAT_TYPE 224LISP_FLOAT_TYPE
226LNOFLSH 225LNOFLSH
@@ -232,7 +231,6 @@ MAIL_USE_LOCKF
232MAIL_USE_POP 231MAIL_USE_POP
233MAIL_USE_SYSTEM_LOCK 232MAIL_USE_SYSTEM_LOCK
234MAXPATHLEN 233MAXPATHLEN
235MAX_PRINT_CHARS
236MIN_PTY_KERNEL_VERSION -- only used on Mac 234MIN_PTY_KERNEL_VERSION -- only used on Mac
237MODE_LINE_BINARY_TEXT 235MODE_LINE_BINARY_TEXT
238MUST_UNDEF__STDC__ 236MUST_UNDEF__STDC__
@@ -243,13 +241,11 @@ NEED_LIBW
243NEED_UNISTD_H 241NEED_UNISTD_H
244NLIST_STRUCT 242NLIST_STRUCT
245NOMULTIPLEJOBS 243NOMULTIPLEJOBS
246NONSYSTEM_DIR_LIBRARY
247NOT_C_CODE 244NOT_C_CODE
248NOT_USING_MOTIF 245NOT_USING_MOTIF
249NO_ABORT 246NO_ABORT
250NO_ARG_ARRAY 247NO_ARG_ARRAY
251NO_EDITRES 248NO_EDITRES
252NO_HYPHENS_IN_FILENAMES
253NO_MATHERR 249NO_MATHERR
254NO_REMAP 250NO_REMAP
255NO_SHARED_LIBS 251NO_SHARED_LIBS
@@ -287,7 +283,6 @@ SEGMENT_MASK
287SEPCHAR 283SEPCHAR
288SETPGRP_RELEASES_CTTY 284SETPGRP_RELEASES_CTTY
289SETUP_SLAVE_PTY 285SETUP_SLAVE_PTY
290SHARABLE_LIB_BUG
291SIGALRM 286SIGALRM
292SIGCHLD 287SIGCHLD
293SIGHUP 288SIGHUP
@@ -331,7 +326,6 @@ USG5_4
331USG_SUBTTY_WORKS 326USG_SUBTTY_WORKS
332VALBITS 327VALBITS
333VIRT_ADDR_VARIES 328VIRT_ADDR_VARIES
334VMS
335WORDS_BIG_ENDIAN 329WORDS_BIG_ENDIAN
336WRETCODE 330WRETCODE
337XINT 331XINT
diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS
index 805b19a6b7d..17a0877b855 100644
--- a/admin/MAINTAINERS
+++ b/admin/MAINTAINERS
@@ -116,9 +116,6 @@ Miles Bader
116 src/editfns.c 116 src/editfns.c
117 lisp/textmodes/refill.el 117 lisp/textmodes/refill.el
118 118
119Thien-Thi Nguyen
120 VMS
121
122============================================================================== 119==============================================================================
1233. 1203.
124============================================================================== 121==============================================================================
diff --git a/admin/notes/cpp b/admin/notes/cpp
index 4f61a595f5e..275001369d9 100644
--- a/admin/notes/cpp
+++ b/admin/notes/cpp
@@ -7,9 +7,7 @@ into object files, but also for creating
7 lib-src/Makefile 7 lib-src/Makefile
8 8
9(delimited by comment "start of cpp stuff"). some cpp implementations 9(delimited by comment "start of cpp stuff"). some cpp implementations
10insert whitespace in between tokens, which explains the "$(dot)$(dot)" 10insert whitespace in between tokens.
11and "UNEXEC_ALIAS" workarounds for unixoid systems and the bundled
12tradcpp/ for vms. [NOTE: tradcpp/ not yet checked in.]
13 11
14during makefile creation, the preprocessor symbol NOT_C_CODE is defined. 12during makefile creation, the preprocessor symbol NOT_C_CODE is defined.
15this should not be defined for normal .c file compilation. 13this should not be defined for normal .c file compilation.
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index b93c8dc4f6f..d4e21fc343e 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,7 @@
12008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * emacs.texi: Remove VMS support.
4
12008-07-30 Dan Nicolaescu <dann@ics.uci.edu> 52008-07-30 Dan Nicolaescu <dann@ics.uci.edu>
2 6
3 * vc1-xtra.texi (VC Directory Mode): Update the display format and fix 7 * vc1-xtra.texi (VC Directory Mode): Update the display format and fix
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 4d5567ce210..edc26b235d9 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -1056,13 +1056,12 @@ Customizable Self-Documenting Display Editor}, available from
1056@url{ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-519A.pdf}. 1056@url{ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-519A.pdf}.
1057 1057
1058This edition of the manual is intended for use with GNU Emacs 1058This edition of the manual is intended for use with GNU Emacs
1059installed on GNU and Unix systems. GNU Emacs can also be used on VMS, 1059installed on GNU and Unix systems. GNU Emacs can also be used on
1060MS-DOS (also called MS-DOG), Microsoft Windows, and Macintosh systems. 1060MS-DOS (also called MS-DOG), Microsoft Windows, and Macintosh systems.
1061Those systems use different file name syntax; in addition, VMS and 1061Those systems use different file name syntax; in addition
1062MS-DOS do not support all GNU Emacs features. @xref{Microsoft 1062MS-DOS does not support all GNU Emacs features. @xref{Microsoft
1063Windows}, for information about using Emacs on Windows. 1063Windows}, for information about using Emacs on Windows.
1064@xref{Mac OS}, for information about using Emacs on Macintosh. We 1064@xref{Mac OS}, for information about using Emacs on Macintosh.
1065don't try to describe VMS usage in this manual.
1066@end iftex 1065@end iftex
1067 1066
1068@node Distrib, Intro, Top, Top 1067@node Distrib, Intro, Top, Top
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 168b9aef2a3..d9a648062e8 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,9 @@
12008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * os.texi:
4 * intro.texi:
5 * files.texi: Remove VMS support.
6
12008-07-27 Dan Nicolaescu <dann@ics.uci.edu> 72008-07-27 Dan Nicolaescu <dann@ics.uci.edu>
2 8
3 * os.texi: 9 * os.texi:
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 640d4acdd15..26ff06186f0 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -1487,11 +1487,6 @@ levels of parent directories.
1487See also @code{delete-directory} in @ref{Create/Delete Dirs}. 1487See also @code{delete-directory} in @ref{Create/Delete Dirs}.
1488@end deffn 1488@end deffn
1489 1489
1490@defun define-logical-name varname string
1491This function defines the logical name @var{varname} to have the value
1492@var{string}. It is available only on VMS.
1493@end defun
1494
1495@defun set-file-modes filename mode 1490@defun set-file-modes filename mode
1496This function sets mode bits of @var{filename} to @var{mode} (which 1491This function sets mode bits of @var{filename} to @var{mode} (which
1497must be an integer). Only the low 12 bits of @var{mode} are used. 1492must be an integer). Only the low 12 bits of @var{mode} are used.
@@ -1565,10 +1560,9 @@ directory.
1565 On MS-DOS and MS-Windows, these functions (like the function that 1560 On MS-DOS and MS-Windows, these functions (like the function that
1566actually operate on files) accept MS-DOS or MS-Windows file-name syntax, 1561actually operate on files) accept MS-DOS or MS-Windows file-name syntax,
1567where backslashes separate the components, as well as Unix syntax; but 1562where backslashes separate the components, as well as Unix syntax; but
1568they always return Unix syntax. On VMS, these functions (and the ones 1563they always return Unix syntax. This enables Lisp programs to specify
1569that operate on files) understand both VMS file-name syntax and Unix 1564file names in Unix syntax and work properly on all systems without
1570syntax. This enables Lisp programs to specify file names in Unix syntax 1565change.
1571and work properly on all systems without change.
1572 1566
1573@menu 1567@menu
1574* File Name Components:: The directory part of a file name, and the rest. 1568* File Name Components:: The directory part of a file name, and the rest.
@@ -1597,15 +1591,11 @@ Concatenating these two parts reproduces the original file name.
1597 1591
1598 On most systems, the directory part is everything up to and including 1592 On most systems, the directory part is everything up to and including
1599the last slash (backslash is also allowed in input on MS-DOS or 1593the last slash (backslash is also allowed in input on MS-DOS or
1600MS-Windows); the nondirectory part is the rest. The rules in VMS syntax 1594MS-Windows); the nondirectory part is the rest.
1601are complicated.
1602 1595
1603 For some purposes, the nondirectory part is further subdivided into 1596 For some purposes, the nondirectory part is further subdivided into
1604the name proper and the @dfn{version number}. On most systems, only 1597the name proper and the @dfn{version number}. On most systems, only
1605backup files have version numbers in their names. On VMS, every file 1598backup files have version numbers in their names.
1606has a version number, but most of the time the file name actually used
1607in Emacs omits the version number, so that version numbers in Emacs are
1608found mostly in directory lists.
1609 1599
1610@defun file-name-directory filename 1600@defun file-name-directory filename
1611This function returns the directory part of @var{filename}, as a 1601This function returns the directory part of @var{filename}, as a
@@ -1613,9 +1603,7 @@ directory name (@pxref{Directory Names}), or @code{nil} if
1613@var{filename} does not include a directory part. 1603@var{filename} does not include a directory part.
1614 1604
1615On GNU and Unix systems, a string returned by this function always 1605On GNU and Unix systems, a string returned by this function always
1616ends in a slash. On MS-DOS it can also end in a colon. On VMS, it 1606ends in a slash. On MS-DOS it can also end in a colon.
1617returns a string ending in one of the three characters @samp{:},
1618@samp{]}, or @samp{>}.
1619 1607
1620@example 1608@example
1621@group 1609@group
@@ -1626,10 +1614,6 @@ returns a string ending in one of the three characters @samp{:},
1626(file-name-directory "foo") ; @r{Unix example} 1614(file-name-directory "foo") ; @r{Unix example}
1627 @result{} nil 1615 @result{} nil
1628@end group 1616@end group
1629@group
1630(file-name-directory "[X]FOO.TMP") ; @r{VMS example}
1631 @result{} "[X]"
1632@end group
1633@end example 1617@end example
1634@end defun 1618@end defun
1635 1619
@@ -1649,11 +1633,6 @@ This function returns the nondirectory part of @var{filename}.
1649(file-name-nondirectory "lewis/") 1633(file-name-nondirectory "lewis/")
1650 @result{} "" 1634 @result{} ""
1651@end group 1635@end group
1652@group
1653;; @r{The following example is accurate only on VMS.}
1654(file-name-nondirectory "[X]FOO.TMP")
1655 @result{} "FOO.TMP"
1656@end group
1657@end example 1636@end example
1658@end defun 1637@end defun
1659 1638
@@ -1678,11 +1657,6 @@ return value, but backup version numbers are kept.
1678(file-name-sans-versions "~rms/foo") 1657(file-name-sans-versions "~rms/foo")
1679 @result{} "~rms/foo" 1658 @result{} "~rms/foo"
1680@end group 1659@end group
1681@group
1682;; @r{The following example applies to VMS only.}
1683(file-name-sans-versions "foo;23")
1684 @result{} "foo"
1685@end group
1686@end example 1660@end example
1687@end defun 1661@end defun
1688 1662
@@ -1758,12 +1732,11 @@ name. On Unix and GNU/Linux, an absolute file name starts with a slash
1758or a tilde (@samp{~}), and a relative one does not. On MS-DOS and 1732or a tilde (@samp{~}), and a relative one does not. On MS-DOS and
1759MS-Windows, an absolute file name starts with a slash or a backslash, or 1733MS-Windows, an absolute file name starts with a slash or a backslash, or
1760with a drive specification @samp{@var{x}:/}, where @var{x} is the 1734with a drive specification @samp{@var{x}:/}, where @var{x} is the
1761@dfn{drive letter}. The rules on VMS are complicated. 1735@dfn{drive letter}.
1762 1736
1763@defun file-name-absolute-p filename 1737@defun file-name-absolute-p filename
1764This function returns @code{t} if file @var{filename} is an absolute 1738This function returns @code{t} if file @var{filename} is an absolute
1765file name, @code{nil} otherwise. On VMS, this function understands both 1739file name, @code{nil} otherwise.
1766Unix syntax and VMS syntax.
1767 1740
1768@example 1741@example
1769@group 1742@group
@@ -1819,8 +1792,8 @@ the directory name but not identical to it. (This is not quite the
1819same as the usual Unix terminology.) These two different names for 1792same as the usual Unix terminology.) These two different names for
1820the same entity are related by a syntactic transformation. On GNU and 1793the same entity are related by a syntactic transformation. On GNU and
1821Unix systems, this is simple: a directory name ends in a slash, 1794Unix systems, this is simple: a directory name ends in a slash,
1822whereas the directory's name as a file lacks that slash. On MS-DOS and 1795whereas the directory's name as a file lacks that slash. On MS-DOS
1823VMS, the relationship is more complicated. 1796the relationship is more complicated.
1824 1797
1825 The difference between a directory name and its name as a file is 1798 The difference between a directory name and its name as a file is
1826subtle but crucial. When an Emacs variable or function argument is 1799subtle but crucial. When an Emacs variable or function argument is
@@ -1836,8 +1809,7 @@ such as @samp{$HOME}, and the constructs @samp{~}, @samp{.} and @samp{..}.
1836This function returns a string representing @var{filename} in a form 1809This function returns a string representing @var{filename} in a form
1837that the operating system will interpret as the name of a directory. On 1810that the operating system will interpret as the name of a directory. On
1838most systems, this means appending a slash to the string (if it does not 1811most systems, this means appending a slash to the string (if it does not
1839already end in one). On VMS, the function converts a string of the form 1812already end in one).
1840@file{[X]Y.DIR.1} to the form @file{[X.Y]}.
1841 1813
1842@example 1814@example
1843@group 1815@group
@@ -1851,8 +1823,7 @@ already end in one). On VMS, the function converts a string of the form
1851This function returns a string representing @var{dirname} in a form that 1823This function returns a string representing @var{dirname} in a form that
1852the operating system will interpret as the name of a file. On most 1824the operating system will interpret as the name of a file. On most
1853systems, this means removing the final slash (or backslash) from the 1825systems, this means removing the final slash (or backslash) from the
1854string. On VMS, the function converts a string of the form @file{[X.Y]} 1826string.
1855to @file{[X]Y.DIR.1}.
1856 1827
1857@example 1828@example
1858@group 1829@group
@@ -2037,7 +2008,7 @@ with @samp{~}. This variable is buffer-local in every buffer.
2037@code{expand-file-name} uses the default directory when its second 2008@code{expand-file-name} uses the default directory when its second
2038argument is @code{nil}. 2009argument is @code{nil}.
2039 2010
2040Aside from VMS, the value is always a string ending with a slash. 2011The value is always a string ending with a slash.
2041 2012
2042@example 2013@example
2043@group 2014@group
@@ -2097,8 +2068,6 @@ through the immediately preceding @samp{/}).
2097@end group 2068@end group
2098@end example 2069@end example
2099 2070
2100On VMS, @samp{$} substitution is not done, so this function does nothing
2101on VMS except discard superfluous initial components as shown above.
2102@end defun 2071@end defun
2103 2072
2104@node Unique File Names 2073@node Unique File Names
@@ -2417,11 +2386,6 @@ corresponding argument to @code{file-attributes} (@pxref{Definition
2417of file-attributes}). 2386of file-attributes}).
2418@end defun 2387@end defun
2419 2388
2420@defun file-name-all-versions file dirname
2421This function returns a list of all versions of the file named
2422@var{file} in directory @var{dirname}. It is only available on VMS.
2423@end defun
2424
2425@defun file-expand-wildcards pattern &optional full 2389@defun file-expand-wildcards pattern &optional full
2426This function expands the wildcard pattern @var{pattern}, returning 2390This function expands the wildcard pattern @var{pattern}, returning
2427a list of file names that match it. 2391a list of file names that match it.
diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi
index e7e08fbb090..76d18e082c1 100644
--- a/doc/lispref/intro.texi
+++ b/doc/lispref/intro.texi
@@ -55,7 +55,7 @@ but not flawless. There are a few topics that are not covered, either
55because we consider them secondary (such as most of the individual 55because we consider them secondary (such as most of the individual
56modes) or because they are yet to be written. Because we are not able 56modes) or because they are yet to be written. Because we are not able
57to deal with them completely, we have left out several parts 57to deal with them completely, we have left out several parts
58intentionally. This includes most information about usage on VMS. 58intentionally.
59 59
60 The manual should be fully correct in what it does cover, and it is 60 The manual should be fully correct in what it does cover, and it is
61therefore open to criticism on anything it says---from specific examples 61therefore open to criticism on anything it says---from specific examples
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 15458b87619..9f8d36315bd 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -632,10 +632,6 @@ convenient way to test parts of this string is with
632The value of this variable is a symbol indicating the type of operating 632The value of this variable is a symbol indicating the type of operating
633system Emacs is operating on. Here is a table of the possible values: 633system Emacs is operating on. Here is a table of the possible values:
634 634
635@table @code
636@item alpha-vms
637VMS on the Alpha.
638
639@item aix-v3 635@item aix-v3
640AIX. 636AIX.
641 637
@@ -667,9 +663,6 @@ MS-Windows.
667@item usg-unix-v 663@item usg-unix-v
668AT&T System V. 664AT&T System V.
669 665
670@item vax-vms
671VAX VMS.
672
673@item windows-nt 666@item windows-nt
674Microsoft windows NT. The same executable supports Windows 9X, but the 667Microsoft windows NT. The same executable supports Windows 9X, but the
675value of @code{system-type} is @code{windows-nt} in either case. 668value of @code{system-type} is @code{windows-nt} in either case.
@@ -862,19 +855,6 @@ in the system's terminal driver, before Emacs was started.
862The value is @code{nil} if Emacs is running under a window system. 855The value is @code{nil} if Emacs is running under a window system.
863@end defvar 856@end defvar
864 857
865@defun setprv privilege-name &optional setp getprv
866This function sets or resets a VMS privilege. (It does not exist on
867other systems.) The first argument is the privilege name, as a string.
868The second argument, @var{setp}, is @code{t} or @code{nil}, indicating
869whether the privilege is to be turned on or off. Its default is
870@code{nil}. The function returns @code{t} if successful, @code{nil}
871otherwise.
872
873If the third argument, @var{getprv}, is non-@code{nil}, @code{setprv}
874does not change the privilege, but returns @code{t} or @code{nil}
875indicating whether the privilege is currently enabled.
876@end defun
877
878@node User Identification 858@node User Identification
879@section User Identification 859@section User Identification
880@cindex user identification 860@cindex user identification
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index ab96de3ee58..1865af25760 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,7 @@
12008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * ediff.texi: Remove VMS support.
4
12008-07-29 Juanma Barranquero <lekktu@gmail.com> 52008-07-29 Juanma Barranquero <lekktu@gmail.com>
2 6
3 * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add mairix-el. 7 * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add mairix-el.
diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi
index e12c07b5b73..0cd4c547242 100644
--- a/doc/misc/ediff.texi
+++ b/doc/misc/ediff.texi
@@ -1152,7 +1152,7 @@ packages also use this method).
1152Regular files are treated by the @code{patch} utility in the usual manner, 1152Regular files are treated by the @code{patch} utility in the usual manner,
1153i.e., the original is renamed into @file{source-name.orig} and the result 1153i.e., the original is renamed into @file{source-name.orig} and the result
1154of the patch is placed into the file source-name (@file{_orig} is used 1154of the patch is placed into the file source-name (@file{_orig} is used
1155on systems like VMS, DOS, etc.) 1155on systems like DOS, etc.)
1156 1156
1157@node Customization, Credits, Remote and Compressed Files, Top 1157@node Customization, Credits, Remote and Compressed Files, Top
1158@chapter Customization 1158@chapter Customization
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 446cda65165..0b575d7c851 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,10 @@
12008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * termcap.src: Remove file.
4 * README:
5 * PROBLEMS:
6 * MACHINES: Remove VMS info.
7
12008-07-27 Dan Nicolaescu <dann@ics.uci.edu> 82008-07-27 Dan Nicolaescu <dann@ics.uci.edu>
2 9
3 * PROBLEMS: 10 * PROBLEMS:
diff --git a/etc/MACHINES b/etc/MACHINES
index 8ad801a91a9..6d494285a33 100644
--- a/etc/MACHINES
+++ b/etc/MACHINES
@@ -437,16 +437,9 @@ Tadpole 68K (m68k-tadpole-sysv)
437 437
438 chmod 2755 etc/movemail; chgrp mail etc/movemail 438 chmod 2755 etc/movemail; chgrp mail etc/movemail
439 439
440Vaxen running Berkeley Unix (vax-dec-bsd4.1, vax-dec-bsd4.2, vax-dec-bsd4.3), 440Vaxen running Berkeley Unix (vax-dec-bsd4.1, vax-dec-bsd4.2, vax-dec-bsd4.3)
441 VMS (vax-dec-vms)
442 441
443 Works. 442 Works.
444
445 Richard Levitte <levitte@e.kth.se> distributes a set of patches to
446 Emacs 18.59 to make it work nicely under VMS. Emacs 19 probably
447 won't work very well, or even compile. Levitte is working on a
448 port, so these problems should be fixed in the near future.
449
450 443
451Here are notes about some of the systems supported: 444Here are notes about some of the systems supported:
452 445
@@ -515,17 +508,6 @@ System V rel 4.0.3 and 4.0.4 (usg5.4)
515 #undef HAVE_SOCKETS in config.h, after the inclusion of s-usg5-4.h. 508 #undef HAVE_SOCKETS in config.h, after the inclusion of s-usg5-4.h.
516 (Any system that supports Internet should implement sockets.) 509 (Any system that supports Internet should implement sockets.)
517 510
518VMS (vmsM.N)
519
520 Richard Levitte <levitte@e.kth.se> distributes a set of patches to
521 Emacs 18.59 to make it work nicely under VMS. Emacs 19 probably
522 won't work very well, or even compile. Levitte is working on a
523 port, so these problems should be fixed in the near future.
524
525 Note that Emacs for VMS is usually distributed in a special VMS
526 distribution. See the file ../vms/VMSINSTALL for info on moving
527 Unix distributions to VMS, and other VMS-related topics.
528
529Windows NT/95/98/ME/2000 511Windows NT/95/98/ME/2000
530 512
531 For installation on all versions of the MS-Windows platform, see the 513 For installation on all versions of the MS-Windows platform, see the
@@ -630,6 +612,7 @@ Support for the following obsolete platforms was removed in Emacs 23.1
630 System V rel 2.2 -- usg5.2.2 612 System V rel 2.2 -- usg5.2.2
631 System V rel 3 -- usg5.3 613 System V rel 3 -- usg5.3
632 Ultrix -- bsd4.3 614 Ultrix -- bsd4.3
615 VMS (s/vms.h)
633 616
634 617
635Local variables: 618Local variables:
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index ee1525651f8..1e2f4828386 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2672,7 +2672,7 @@ or
2672*** Fatal signal in the command temacs -l loadup inc dump. 2672*** Fatal signal in the command temacs -l loadup inc dump.
2673 2673
2674This command is the final stage of building Emacs. It is run by the 2674This command is the final stage of building Emacs. It is run by the
2675Makefile in the src subdirectory, or by build.com on VMS. 2675Makefile in the src subdirectory.
2676 2676
2677It has been known to get fatal errors due to insufficient swapping 2677It has been known to get fatal errors due to insufficient swapping
2678space available on the machine. 2678space available on the machine.
@@ -3643,25 +3643,6 @@ floating point option: -fsoft.
3643 3643
3644This seems to be due to a GCC bug; it is fixed in GCC 2.8.1. 3644This seems to be due to a GCC bug; it is fixed in GCC 2.8.1.
3645 3645
3646** VMS: Compilation errors on VMS.
3647
3648You will get warnings when compiling on VMS because there are
3649variable names longer than 32 (or whatever it is) characters.
3650This is not an error. Ignore it.
3651
3652VAX C does not support #if defined(foo). Uses of this construct
3653were removed, but some may have crept back in. They must be rewritten.
3654
3655There is a bug in the C compiler which fails to sign extend characters
3656in conditional expressions. The bug is:
3657 char c = -1, d = 1;
3658 int i;
3659
3660 i = d ? c : d;
3661The result is i == 255; the fix is to typecast the char in the
3662conditional expression as an (int). Known occurrences of such
3663constructs in Emacs have been fixed.
3664
3665** Vax C compiler bugs affecting Emacs. 3646** Vax C compiler bugs affecting Emacs.
3666 3647
3667You may get one of these problems compiling Emacs: 3648You may get one of these problems compiling Emacs:
diff --git a/etc/README b/etc/README
index 5bbd1fe4b49..798fb80980c 100644
--- a/etc/README
+++ b/etc/README
@@ -5,10 +5,6 @@ for Emacs functions and variables.
5 5
6`forms-d2.dat' is an example data file used by forms-d2.el. 6`forms-d2.dat' is an example data file used by forms-d2.el.
7 7
8`termcap.src' is included mainly for VMS. It is a copy of the
9`/etc/termcap' file used on Unix.
10
11
12COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES 8COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
13 9
14File: emacs.icon 10File: emacs.icon
diff --git a/etc/termcap.src b/etc/termcap.src
deleted file mode 100644
index fbe8378c800..00000000000
--- a/etc/termcap.src
+++ /dev/null
@@ -1,17734 +0,0 @@
1######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE
2#
3# This version of terminfo.src is distributed with ncurses.
4# Report bugs and new terminal descriptions to
5# bug-ncurses@gnu.org
6#
7# The original header is preserved below for reference. It is noted that there
8# is a newer version which differs in some cosmetic details; we have decided
9# to not change the header unless there is also a change in content.
10#
11#------------------------------------------------------------------------------
12# Version 10.2.1
13# terminfo syntax
14#
15# Eric S. Raymond (current maintainer)
16# John Kunze, Berkeley
17# Craig Leres, Berkeley
18#
19# Please e-mail changes to terminfo@thyrsus.com; the old termcap@berkeley.edu
20# address is no longer valid. The latest version can always be found at
21# <http://catb.org/esr/terminfo/termtypes.ti.gz>.
22#
23# PURPOSE OF THIS FILE:
24#
25# This file describes the capabilities of various character-cell terminals,
26# as needed by software such as screen-oriented editors.
27#
28# Other terminfo and termcap files exist, supported by various OS vendors
29# or as relics of various older versions of UNIX. This one is the longest
30# and most comprehensive one in existence. It subsumes not only the entirety
31# of the historical 4.4BSD, GNU, System V and SCO termcap files and the BRL
32# termcap file, but also large numbers of vendor-maintained termcap and
33# terminfo entries more complete and carefully tested than those in historical
34# termcap/terminfo versions.
35#
36# Pointers to related resources (including the ncurses distribution) may
37# be found at <http://catb.org/esr/terminfo/termtypes.ti.gz>.
38#
39# INTERNATIONALIZATION:
40#
41# This file uses only the US-ASCII character set (no ISO8859 characters).
42#
43# This file assumes a US-ASCII character set. If you need to fix this, start
44# by global-replacing \E(B and \E)B with the appropriate ISO 6429 enablers
45# for your character set. \E(A and \E)A enables the British character set
46# with the pound sign at position 2/3.
47#
48# In a Japanese-processing environment using EUC/Japanese or Shift-JIS,
49# C1 characters are considered the first-byte set of the Japanese encodings,
50# so \E)0 should be avoided in <enacs> and initialization strings.
51#
52# FILE FORMAT:
53#
54# The version you are looking at may be in any of three formats: master
55# (terminfo with OT capabilities), stock terminfo, or termcap. You can tell
56# which by the format given in the header above.
57#
58# The master format is accepted and generated by the terminfo tools in the
59# ncurses suite; it differs from stock (System V-compatible) terminfo only
60# in that it admits a group of capabilities (prefixed `OT') equivalent to
61# various obsolete termcap capabilities. You can, thus, convert from master
62# to stock terminfo simply by filtering with `sed "/OT[^,]*,/s///"'; but if
63# you have ncurses `tic -I' is nicer (among other things, it automatically
64# outputs entries in a canonical form).
65#
66# The termcap version is generated automatically from the master version
67# using tic -C. This filtering leaves in the OT capabilities under their
68# original termcap names. All translated entries fit within the 1023-byte
69# string-table limit of archaic termcap libraries except where explicitly
70# noted below. Note that the termcap translation assumes that your termcap
71# library can handle multiple tc capabilities in an entry. 4.4BSD has this
72# capability. Older versions of GNU termcap, through 1.3, do not.
73#
74# For details on these formats, see terminfo(5) in the ncurses distribution,
75# and termcap(5) in the 4.4BSD Unix Programmer's Manual. Be aware that 4.4BSD
76# curses has been declared obsolete by the caretakers of the 4.4BSD sources
77# as of June 1995; they are encouraging everyone to migrate to ncurses.
78#
79# Note: unlike some other distributed terminfo files (Novell Unix & SCO's),
80# no entry in this file has embedded comments. This is so source translation
81# to termcap only has to carry over leading comments. Also, no name field
82# contains embedded whitespace (such whitespace confuses rdist).
83#
84# Further note: older versions of this file were often installed with an editor
85# script (reorder) that moved the most common terminal types to the front of
86# the file. This should no longer be necessary, as the file is now ordered
87# roughly by type frequency with ANSI/VT100 and other common types up front.
88#
89# Some information has been merged in from terminfo files distributed by
90# USL and SCO (see COPYRIGHTS AND OTHER DELUSIONS below). Much information
91# comes from vendors who maintain official terminfos for their hardware
92# (notably DEC and Wyse).
93#
94# A detailed change history is included at the end of this file.
95#
96# FILE ORGANIZATION:
97#
98# Comments in this file begin with # - they cannot appear in the middle
99# of a terminfo/termcap entry (this feature had to be sacrificed in order
100# to allow standard terminfo and termcap syntax to be generated cleanly from
101# the master format). Individual capabilities are commented out by
102# placing a period between the colon and the capability name.
103#
104# The file is divided up into major sections (headed by lines beginning with
105# the string "########") and minor sections (beginning with "####"); do
106#
107# grep "^####" <file> | more
108#
109# to see a listing of section headings. The intent of the divisions is
110# (a) to make it easier to find things, and (b) to order the database so
111# that important and frequently-encountered terminal types are near the
112# front (so that you'll get reasonable search efficiency from a linear
113# search of the termcap form even if you don't use reorder). Minor sections
114# usually correspond to manufacturers or standard terminal classes.
115# Parenthesized words following manufacturer names are type prefixes or
116# product line names used by that manufacturers.
117#
118# HOW TO READ THE ENTRIES:
119#
120# The first name in an entry is the canonical name for the model or
121# type, last entry is a verbose description. Others are mnemonic synonyms for
122# the terminal.
123#
124# Terminal names look like <manufacturer> <model> - <modes/options>
125# The part to the left of the dash, if a dash is present, describes the
126# particular hardware of the terminal. The part to the right may be used
127# for flags indicating special ROMs, extra memory, particular terminal modes,
128# or user preferences.
129#
130# All names should be in lower case, for consistency in typing.
131#
132# The following are conventionally used suffixes:
133# -2p Has two pages of memory. Likewise 4p, 8p, etc.
134# -am Enable auto-margin.
135# -m Monochrome. Suppress color support
136# -mc Magic-cookie. Some terminals (notably older Wyses) can
137# only support one attribute without magic-cookie lossage.
138# Their base entry is usually paired with another that
139# uses magic cookies to support multiple attributes.
140# -nam No auto-margin - suppress :am: capability
141# -nl No labels - suppress soft labels
142# -ns No status line - suppress status line
143# -rv Terminal in reverse video mode (black on white)
144# -s Enable status line.
145# -vb Use visible bell (:vb:) rather than :bl:.
146# -w Wide - in 132 column mode.
147# If a name has multiple suffixes and one is a line height, that one should
148# go first. Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'.
149#
150# Entries with embedded plus signs are designed to be included through use/tc
151# capabilities, not used as standalone entries.
152#
153# To avoid search clashes, some older all-numeric names for terminals have
154# been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621).
155# All primary names of terminals now have alphanumeric prefixes.
156#
157# Comments marked "esr" are mostly results of applying the termcap-compiler
158# code packaged with ncurses and contemplating the resulting error messages.
159# In many cases, these indicated obvious fixes to syntax garbled by the
160# composers. In a few cases, I was able to deduce corrected forms for garbled
161# capabilities by looking at context. All the information in the original
162# entries is preserved in the comments.
163#
164# In the comments, terminfo capability names are bracketed with <> (angle
165# brackets). Termcap capability names are bracketed with :: (colons).
166#
167# INTERPRETATION OF USER CAPABILITIES
168#
169# The System V Release 4 and XPG4 terminfo format defines ten string
170# capabilities for use by applications, <u0>...<u9>. In this file, we use
171# certain of these capabilities to describe functions which are not covered
172# by terminfo. The mapping is as follows:
173#
174# u9 terminal enquire string (equiv. to ANSI/ECMA-48 DA)
175# u8 terminal answerback description
176# u7 cursor position request (equiv. to VT100/ANSI/ECMA-48 DSR 6)
177# u6 cursor position report (equiv. to ANSI/ECMA-48 CPR)
178#
179# The terminal enquire string <u9> should elicit an answerback response
180# from the terminal. Common values for <u9> will be ^E (on older ASCII
181# terminals) or \E[c (on newer VT100/ANSI/ECMA-48-compatible terminals).
182#
183# The cursor position request (<u7>) string should elicit a cursor position
184# report. A typical value (for VT100 terminals) is \E[6n.
185#
186# The terminal answerback description (u8) must consist of an expected
187# answerback string. The string may contain the following scanf(3)-like
188# escapes:
189#
190# %c Accept any character
191# %[...] Accept any number of characters in the given set
192#
193# The cursor position report (<u6>) string must contain two scanf(3)-style
194# %d format elements. The first of these must correspond to the Y coordinate
195# and the second to the %d. If the string contains the sequence %i, it is
196# taken as an instruction to decrement each value after reading it (this is
197# the inverse sense from the cup string). The typical CPR value is
198# \E[%i%d;%dR (on VT100/ANSI/ECMA-48-compatible terminals).
199#
200# These capabilities are used by tack(1m), the terminfo action checker
201# (distributed with ncurses 5.0).
202#
203# TABSET FILES
204#
205# All the entries in this file have been edited to assume that the tabset
206# files directory is /usr/share/tabset, in conformance with the File Hierarchy
207# Standard for Linux and open-source BSD systems. Some vendors (notably Sun)
208# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset.
209#
210# No curses package we know of actually uses these files. If their location
211# is an issue, you will have to hand-patch the file locations before compiling
212# this file.
213#
214# REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL
215#
216# As the ANSI/ECMA-48 standard and variants take firmer hold, and as
217# character-cell terminals are increasingly replaced by X displays, much of
218# this file is becoming a historical document (this is part of the reason for
219# the new organization, which puts ANSI types, xterm, Unix consoles,
220# and vt100 up front in confidence that this will catch 95% of new hardware).
221#
222# For the terminal types still alive, I'd like to have manufacturer's
223# contact data (Internet address and/or snail-mail + phone).
224#
225# I'm also interested in enriching the comments so that the latter portions of
226# the file do in fact become a potted history of VDT technology as seen by
227# UNIX hackers. Ideally, I'd like the headers for each manufacturer to
228# include its live/dead/out-of-the-business status, and for as many
229# terminal types as possible to be tagged with information like years
230# of heaviest use, popularity, and interesting features.
231#
232# I'm especially interested in identifying the obscure entries listed under
233# `Miscellaneous obsolete terminals, manufacturers unknown' before the tribal
234# wisdom about them gets lost. If you know a lot about obscure old terminals,
235# please go to the terminfo resource page, grab the UFO file (ufo.ti), and
236# eyeball it for things you can identify and describe.
237#
238# If you have been around long enough to contribute, please read the file
239# with this in mind and send me your annotations.
240#
241# COPYRIGHTS AND OTHER DELUSIONS
242#
243# The BSD ancestor of this file had a standard Regents of the University of
244# California copyright with dates from 1980 to 1993.
245#
246# Some information has been merged in from a terminfo file SCO distributes.
247# It has an obnoxious boilerplate copyright which I'm ignoring because they
248# took so much of the content from the ancestral BSD versions of this file
249# and didn't attribute it, thereby violating the BSD Regents' copyright.
250#
251# Not that anyone should care. However many valid functions copyrights may
252# serve, putting one on a termcap/terminfo file with hundreds of anonymous
253# contributors makes about as much sense as copyrighting a wall-full of
254# graffiti -- it's legally dubious, ethically bogus, and patently ridiculous.
255#
256# This file deliberately has no copyright. It belongs to no one and everyone.
257# If you claim you own it, you will merely succeed in looking like a fool.
258# Use it as you like. Use it at your own risk. Copy and redistribute freely.
259# There are no guarantees anywhere. Svaha!
260#
261
262######## ANSI, UNIX CONSOLE, AND SPECIAL TYPES
263#
264# This section describes terminal classes and brands that are still
265# quite common.
266#
267
268#### Specials
269#
270# Special "terminals". These are used to label tty lines when you don't
271# know what kind of terminal is on it. The characteristics of an unknown
272# terminal are the lowest common denominator - they look about like a ti 700.
273#
274
275dumb|80-column dumb tty:\
276 :am:\
277 :co#80:\
278 :bl=^G:cr=^M:do=^J:sf=^J:
279unknown|unknown terminal type:\
280 :gn:tc=dumb:
281lpr|printer|line printer:\
282 :bs:hc:os:\
283 :co#132:li#66:\
284 :bl=^G:cr=^M:do=^J:ff=^L:le=^H:sf=^J:
285glasstty|classic glass tty interpreting ASCII control characters:\
286 :am:bs:\
287 :co#80:\
288 :bl=^G:cl=^L:cr=^M:do=^J:kd=^J:kl=^H:le=^H:nw=^M^J:ta=^I:\
289 :.kbs=^H:
290
291vanilla:\
292 :bs:\
293 :bl=^G:cr=^M:do=^J:sf=^J:
294
295#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
296#
297# See the end-of-file comment for more on these.
298#
299
300# ANSI capabilities are broken up into pieces, so that a terminal
301# implementing some ANSI subset can use many of them.
302ansi+local1:\
303 :do=\E[B:le=\E[D:nd=\E[C:up=\E[A:
304ansi+local:\
305 :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:tc=ansi+local1:
306ansi+tabs:\
307 :bt=\E[Z:ct=\E[2g:st=\EH:ta=^I:
308ansi+inittabs:\
309 :it#8:tc=ansi+tabs:
310ansi+erase:\
311 :cd=\E[J:ce=\E[K:cl=\E[H\E[J:
312ansi+rca:\
313 :ch=\E[%+^AG:cv=\E[%+^Ad:
314ansi+cup:\
315 :cm=\E[%i%d;%dH:ho=\E[H:
316ansi+rep:\
317 :..rp=%p1%c\E[%p2%{1}%-%db:
318ansi+idl1:\
319 :al=\E[L:dl=\E[M:
320ansi+idl:\
321 :AL=\E[%dL:DL=\E[%dM:tc=ansi+idl1:
322ansi+idc:\
323 :IC=\E[%d@:dc=\E[P:ei=\E6:ic=\E[@:im=\E6:
324ansi+arrows:\
325 :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:
326ansi+sgr|ansi graphic renditions:\
327 :mb=\E[5m:me=\E[0m:mk=\E[8m:mr=\E[7m:
328ansi+sgrso|ansi standout only:\
329 :se=\E[m:so=\E[7m:
330ansi+sgrul|ansi underline only:\
331 :ue=\E[m:us=\E[4m:
332ansi+sgrbold|ansi graphic renditions; assuming terminal has bold; not dim:\
333 :md=\E[1m:\
334 :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\
335 :tc=ansi+sgr:tc=ansi+sgrso:tc=ansi+sgrul:
336ansi+sgrdim|ansi graphic renditions; assuming terminal has dim; not bold:\
337 :mh=\E[2m:\
338 :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;%?%p7%t8;%;m:\
339 :tc=ansi+sgr:tc=ansi+sgrso:tc=ansi+sgrul:
340ansi+pp|ansi printer port:\
341 :pf=\E[4i:po=\E[5i:ps=\E[0i:
342ansi+csr|ansi scroll-region plus cursor save & restore:\
343 :cs=\E[%i%d;%dr:rc=\E8:sc=\E7:
344
345# The IBM PC alternate character set. Plug this into any Intel console entry.
346# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
347# ROM graphics for control characters such as the diamond, up- and down-arrow.
348# This works with the System V, Linux, and BSDI consoles. It's a safe bet this
349# will work with any Intel console, they all seem to have inherited \E[11m
350# from the ANSI.SYS de-facto standard.
351klone+acs|alternate character set for ansi.sys displays:\
352 :ac=+\020,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\
353 :ae=\E[10m:as=\E[11m:
354
355# Highlight controls corresponding to the ANSI.SYS standard. Most
356# console drivers for Intel boxes obey these. Makes the same assumption
357# about \E[11m as klone+acs. True ANSI/ECMA-48 would have :se=\E[27m:,
358# :ue=\E[24m:, but this isn't a documented feature of ANSI.SYS.
359klone+sgr|attribute control for ansi.sys displays:\
360 :S2=\E[11m:S3=\E[10m:mb=\E[5m:md=\E[1m:me=\E[0;10m:\
361 :mk=\E[8m:mr=\E[7m:\
362 :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m:\
363 :se=\E[m:so=\E[7m:ue=\E[m:us=\E[4m:tc=klone+acs:
364
365# Highlight controls corresponding to the ANSI.SYS standard. *All*
366# console drivers for Intel boxes obey these. Does not assume \E[11m will
367# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS
368# diamond and arrow characters under curses.
369klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m):\
370 :as=\E[12m:mb=\E[5m:md=\E[1m:me=\E[0;10m:mk=\E[8m:\
371 :mr=\E[7m:\
372 :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m:\
373 :se=\E[m:so=\E[7m:ue=\E[m:us=\E[4m:tc=klone+acs:
374
375# KOI8-R (RFC1489) acs (alternate character set)
376# From: Qing Long <qinglong@Bolizm.ihep.su>, 24 Feb 1996.
377klone+koi8acs|alternate character set for ansi.sys displays with KOI8 charset:\
378 :ac=+\020,\021-\036.^_0\215`\004a\237f\234g\232h\222i\220j\205k\203l\202m\204n\212o\213p\216q\0r\217s\214t\206u\207v\210w\211x\201y\230z\231{\267|\274}L~\225:\
379 :ae=\E[10m:as=\E[11m:
380
381# ANSI.SYS color control. The setab/setaf caps depend on the coincidence
382# between SVr4/XPG4's color numbers and ANSI.SYS attributes. Here are longer
383# but equivalent strings that don't rely on that coincidence:
384# setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
385# setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
386# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard.
387# They match a subset of ECMA-48.
388klone+color|color control for ansi.sys and ISO6429-compatible displays:\
389 :Co#8:NC#3:pa#64:\
390 :AB=\E[4%dm:AF=\E[3%dm:op=\E[37;40m:
391
392# This is better than klone+color, it doesn't assume white-on-black as the
393# default color pair, but many `ANSI' terminals don't grok the <op> cap.
394ecma+color|color control for ECMA-48-compatible terminals:\
395 :AX:\
396 :Co#8:NC#3:pa#64:\
397 :AB=\E[4%dm:AF=\E[3%dm:op=\E[39;49m:
398
399# Attribute control for ECMA-48-compatible terminals
400ecma+sgr|attribute capabilities for true ECMA-48 terminals:\
401 :se=\E[27m:ue=\E[24m:tc=klone+sgr:
402
403# For comparison, here are all the capabilities implied by the Intel
404# Binary Compatibility Standard (level 2) that fit within terminfo.
405# For more detail on this rather pathetic standard, see the comments
406# near the end of this file.
407ibcs2|Intel Binary Compatibility Standard prescriptions:\
408 :AL=\E[%dL:DC=\E[%dP:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
409 :RA=\E[?7l:RI=\E[%dC:S1=\E=%dg:SA=\E[?7h:SF=\E[%dS:\
410 :SR=\E[%dT:UP=\E[%dA:bt=\E[Z:ch=\E[%i%dG:cl=\Ec:\
411 :cm=\E[%i%d;%dH:ct=\E[g:cv=\E[%i%dd:ec=\E[%dX:ei=:im=:\
412 :rc=\E7:sc=\E7:st=\EH:
413
414#### ANSI/ECMA-48 terminals and terminal emulators
415#
416# See near the end of this file for details on ANSI conformance.
417# Don't mess with these entries! Lots of other entries depend on them!
418#
419# This section lists entries in a least-capable to most-capable order.
420# if you're in doubt about what `ANSI' matches yours, try them in that
421# order and back off from the first that breaks.
422
423# ansi-mr is for ANSI terminals with ONLY relative cursor addressing
424# and more than one page of memory. It uses local motions instead of
425# direct cursor addressing, and makes almost no assumptions. It does
426# assume auto margins, no padding and/or xon/xoff, and a 24x80 screen.
427ansi-mr|mem rel cup ansi:\
428 :am:xo:\
429 :co#80:li#24:tc=vanilla:tc=ansi+erase:tc=ansi+local1:
430
431# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but
432# beware of screen size problems and memory relative cursor addressing.
433ansi-mini|any ansi terminal with pessimistic assumptions:\
434 :am:xo:\
435 :co#80:li#24:tc=vanilla:tc=ansi+cup:tc=ansi+erase:
436
437# ansi-mtabs adds relative addressing and minimal tab support
438ansi-mtabs|any ansi terminal with pessimistic assumptions:\
439 :it#8:\
440 :ta=^I:tc=ansi+local1:tc=ansi-mini:
441
442# ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL
443#
444# The following is an entry for the full ANSI 3.64 (1977). It lacks
445# padding, but most terminals using the standard are "fast" enough
446# not to require any -- even at 9600 bps. If you encounter problems,
447# try including the padding specifications.
448#
449# Note: the :as: and :ae: specifications are not implemented here, for
450# the available termcap documentation does not make clear WHICH alternate
451# character set to specify. ANSI 3.64 seems to make allowances for several.
452# Please make the appropriate adjustments to fit your needs -- that is
453# if you will be using alternate character sets.
454#
455# There are very few terminals running the full ANSI 3.64 standard,
456# so I could only test this entry on one verified terminal (Visual 102).
457# I would appreciate the results on other terminals sent to me.
458#
459# Please report comments, changes, and problems to:
460#
461# U.S. MAIL: Hugh Hansard
462# Box: 22830
463# Emory University
464# Atlanta, GA. 30322.
465#
466# USENET {akgua,msdc,sb1,sb6,gatech}!emory!mlhhh.
467#
468# (Added vt100 :rc:,:sc: to quiet a tic warning --esr)
469ansi77|ansi 3.64 standard 1977 version:\
470 :am:bs:mi:\
471 :co#80:it#8:li#24:\
472 :al=5*\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\
473 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=5*\E[M:\
474 :do=\E[B:ei=\E[4l:ho=\E[H:im=\E[4h:k1=\EOP:k2=\EOR:k4=\EOS:\
475 :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
476 :nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\
477 :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
478
479# Procomm and some other ANSI emulations don't recognize all of the ANSI-
480# standard capabilities. This entry deletes :UP:, :RI:, :DO:, :LE:, and
481# <vpa>/<hpa> capabilities, forcing curses to use repetitions of :up:,
482# :nd:, :do: and :le:. Also deleted :IC: and :ic:, as QModem up to
483# 5.03 doesn't recognize these. Finally, we delete :rp: and :sr:, which seem
484# to confuse many emulators. On the other hand, we can count on these programs
485# doing :ae:/:as:/:sa:. Older versions of this entry featured
486# <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under
487# ANSI.SYS influence.
488# From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995
489pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode):\
490 :am:bs:mi:ms:\
491 :co#80:it#8:li#24:\
492 :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
493 :cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:dc=\E[P:dl=\E[M:do=\E[B:\
494 :ho=\E[H:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
495 :le=\E[D:nd=\E[C:sf=^J:st=\EH:ta=^I:up=\E[A:\
496 :tc=klone+sgr-dumb:
497pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode):\
498 :li#25:tc=pcansi-m:
499pcansi-33-m|pcansi33m|ibm-pc terminal programs with 33 lines (mono mode):\
500 :li#33:tc=pcansi-m:
501pcansi-43-m|ansi43m|ibm-pc terminal programs with 43 lines (mono mode):\
502 :li#43:tc=pcansi-m:
503# The color versions. All PC emulators do color...
504pcansi|ibm-pc terminal programs claiming to be ansi:\
505 :tc=klone+color:tc=pcansi-m:
506pcansi-25|pcansi25|ibm-pc terminal programs with 25 lines:\
507 :li#25:tc=pcansi:
508pcansi-33|pcansi33|ibm-pc terminal programs with 33 lines:\
509 :li#33:tc=pcansi:
510pcansi-43|pcansi43|ibm-pc terminal programs with 43 lines:\
511 :li#43:tc=pcansi:
512
513# ansi-m -- full ANSI X3.64 with ANSI.SYS-compatible attributes, no color.
514# If you want pound signs rather than dollars, replace `B' with `A'
515# in the <s0ds>, <s1ds>, <s2ds>, and <s3ds> capabilities.
516# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
517ansi-m|ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes:\
518 :5i:\
519 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
520 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
521 :cb=\E[1K:ch=\E[%i%dG:ct=\E[2g:cv=\E[%i%dd:ec=\E[%dX:ei=:\
522 :im=:kB=\E[Z:kI=\E[L:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:\
523 :nw=\r\E[S:pf=\E[4i:po=\E[5i:..rp=%p1%c\E[%p2%{1}%-%db:\
524 :s0=\E(B:s1=\E)B:s2=\E*B:s3=\E+B:ta=\E[I:tc=pcansi-m:
525
526# ansi -- this terminfo expresses the largest subset of X3.64 that will fit in
527# standard terminfo. Assumes ANSI.SYS-compatible attributes and color.
528# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
529ansi|ansi/pc-term compatible with color:\
530 :u6=\E[%i%d;%dR:u7=\E[6n:..u8=\E[?%[;0123456789]c:\
531 :u9=\E[c:tc=ecma+color:tc=klone+sgr:tc=ansi-m:
532
533# ansi-generic is a vanilla ANSI terminal. This is assumed to implement
534# all the normal ANSI stuff with no extensions. It assumes
535# insert/delete line/char is there, so it won't work with
536# vt100 clones. It assumes video attributes for bold, blink,
537# underline, and reverse, which won't matter much if the terminal
538# can't do some of those. Padding is assumed to be zero, which
539# shouldn't hurt since xon/xoff is assumed.
540ansi-generic|generic ansi standard terminal:\
541 :am:xo:\
542 :co#80:li#24:tc=vanilla:tc=ansi+csr:tc=ansi+cup:\
543 :tc=ansi+rca:tc=ansi+erase:tc=ansi+tabs:tc=ansi+local:\
544 :tc=ansi+idc:tc=ansi+idl:tc=ansi+rep:tc=ansi+sgrbold:\
545 :tc=ansi+arrows:
546
547#### DOS ANSI.SYS variants
548#
549# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
550# documentation (except for the keyboard key reassignment feature, which
551# doen't fit the <pfkey> model well). The klone+acs sequences were valid
552# though undocumented. The <pfkey> capability is untested but should work for
553# keys F1-F10 (%p1 values outside this range will yield unpredictable results).
554# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
555ansi.sys-old|ANSI.SYS under PC-DOS 2.1:\
556 :am:bs:mi:ms:xo:\
557 :co#80:li#25:\
558 :RA=\E[?7l:SA=\E[?7h:ce=\E[k:cl=\E[2J:cm=\E[%i%d;%dH:\
559 :do=\E[B:ho=\E[H:is=\E[m\E[?7h:kd=^J:kh=^^:kl=^H:kr=^L:\
560 :ku=^K:le=^H:nd=\E[C:pk=\E[0;%+\:;"%s":rc=\E[u:sc=\E[s:\
561 :u6=\E[%i%d;%dR:u7=\E[6n:up=\E[A:tc=klone+color:\
562 :tc=klone+sgr:
563ansi.sys|ANSI.SYS 3.1 and later versions:\
564 :ce=\E[K:tc=ansi.sys-old:
565
566#
567# Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
568# This should only be used when the terminal emulator cannot redefine the keys.
569# Since redefining keys with ansi.sys also affects PC-DOS programs, the key
570# definitions must be restored. If the terminal emulator is quit while in vi
571# or others using :ks:/:ke:, the keypad will not be defined as per PC-DOS.
572# The PgUp and PgDn are prefixed with ESC so that tn3270 can be used on Unix
573# (^U and ^D are already defined for tn3270). The ESC is safe for vi but it
574# does "beep". ESC ESC i is used for Ins to avoid tn3270 ESC i for coltab.
575# Note that :kl: is always BS, because PC-dos can tolerate this change.
576# Caution: vi is limited to 256 string bytes, longer crashes or weirds out vi.
577# Consequently the End keypad key could not be set (it is relatively safe and
578# actually useful because it sends ^@ O, which beeps and opens a line above).
579ansi.sysk|ansisysk|PC-DOS 3.1 ANSI.SYS with keypad redefined for vi:\
580 :is=U2 PC-DOS 3.1 ANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p:\
581 :ke=\E[;71;0;71p\E[;72;0;72p\E[;73;0;73p\E[;77;0;77p\E[;80;0;80p\E[;81;0;81p\E[;82;0;82p\E[;83;0;83p:\
582 :ks=\E[;71;30p\E[;72;11p\E[;73;27;21p\E[;77;12p\E[;80;10p\E[;81;27;4p\E[;82;27;27;105p\E[;83;127p:\
583 :tc=ansi.sys:
584#
585# Adds ins/del line/character, hence vi reverse scrolls/inserts/deletes nicer.
586nansi.sys|nansisys|PC-DOS Public Domain NANSI.SYS:\
587 :al=\E[1L:dc=\E[1P:dl=\E[1M:ei=:ic=\E[1@:im=:\
588 :is=U3 PC-DOS Public Domain NANSI.SYS 9-23-86\n:\
589 :tc=ansi.sys:
590#
591# See ansi.sysk and nansi.sys above.
592nansi.sysk|nansisysk|PC-DOS Public Domain NANSI.SYS with keypad redefined for vi:\
593 :al=\E[1L:dc=\E[1P:dl=\E[1M:ei=:ic=\E[1@:im=:\
594 :is=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p:\
595 :tc=ansi.sysk:
596
597#### ANSI console types
598#
599
600#### BeOS
601#
602# BeOS entry for Terminal program Seems to be almost ANSI
603beterm|BeOS Terminal:\
604 :am:eo:mi:ms:xn:xo:\
605 :Co#8:NC#5:co#80:it#8:li#25:pa#64:\
606 :&7=^Z:@7=\E[4~:AB=\E[4%dm:AF=\E[3%dm:AL=\E[%dL:DC=\E[%dP:\
607 :DL=\E[%dM:DO=\E[%dB:F1=\E[21~:F2=\E[22~:IC=\E[%d@:\
608 :LE=\E[%dD:RI=\E[%dC:Sb=\E[%+(m:Sf=\E[%+^^m:UP=\E[%dA:\
609 :al=\E[L:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:ch=\E[%i%dG:\
610 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
611 :cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:\
612 :ho=\E[H:ic=\E[@:im=\E[4h:k1=\E[11~:k2=\E[12~:k3=\E[13~:\
613 :k4=\E[14~:k5=\E[15~:k6=\E[16~:k7=\E[17~:k8=\E[18~:\
614 :k9=\E[19~:k;=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
615 :kb=^H:kd=\E[B:ke=\E[?4l:kh=\E[1~:kl=\E[D:kr=\E[C:\
616 :ks=\E[?4h:ku=\E[A:le=^H:md=\E[1m:me=\E[0;10m:mr=\E[7m:\
617 :nd=\E[C:nw=^M^J:op=\E[m:r1=\Ec:rc=\E8:sc=\E7:se=\E[m:sf=^J:\
618 :so=\E[7m:sr=\EM:st=\EH:ta=^I:u6=\E[%i%d;%dR:u7=\E[6n:\
619 :ue=\E[24m:up=\E[A:us=\E[4m:
620
621#### Linux consoles
622#
623
624# This entry is good for the 1.2.13 or later version of the Linux console.
625#
626# ***************************************************************************
627# * *
628# * WARNING: *
629# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in *
630# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
631# * character. Here are the keymap replacement lines that will set this up: *
632# * *
633# keycode 15 = Tab Tab
634# alt keycode 15 = Meta_Tab
635# shift keycode 15 = F26
636# string F26 ="\033[Z"
637# * *
638# * This has to use a key slot which is unfortunate (any unused one will *
639# * do, F26 is the higher-numbered one). The change ought to be built *
640# * into the kernel tables. *
641# * *
642# ***************************************************************************
643#
644# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
645# and it matters, turn off <ccc>. The %02x escape used to implement this is
646# not back-portable to SV curses and not supported in ncurses versions before
647# 1.9.9. All linux kernels since 1.2.13 (at least) set the screen size
648# themselves; this entry assumes that capability.
649#
650# This entry is good for the 1.2.13 or later version of the Linux console.
651#
652# ***************************************************************************
653# * *
654# * WARNING: *
655# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in *
656# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
657# * character. Here are the keymap replacement lines that will set this up: *
658# * *
659# keycode 15 = Tab Tab
660# alt keycode 15 = Meta_Tab
661# shift keycode 15 = F26
662# string F26 ="\033[Z"
663# * *
664# * This has to use a key slot which is unfortunate (any unused one will *
665# * do, F26 is the higher-numbered one). The change ought to be built *
666# * into the kernel tables. *
667# * *
668# ***************************************************************************
669#
670# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
671# and it matters, turn off <ccc>. The %02x escape used to implement this is
672# not back-portable to SV curses and not supported in ncurses versions before
673# 1.9.9. All linux kernels since 1.2.13 (at least) set the screen size
674# themselves; this entry assumes that capability.
675#
676# The 2.2.x kernels add a private mode that sets the cursor type; use that to
677# get a block cursor for cvvis.
678# reported by Frank Heckenbach <frank@g-n-u.de>.
679# (untranslatable capabilities removed to fit entry within 1023 bytes)
680# (sgr removed to fit entry within 1023 bytes)
681# (acsc removed to fit entry within 1023 bytes)
682linux|linux console:\
683 :am:eo:mi:ms:ut:xn:xo:\
684 :NC#18:it#8:\
685 :&7=^Z:@7=\E[4~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:F1=\E[23~:\
686 :F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:\
687 :F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:IC=\E[%d@:\
688 :K2=\E[G:Km=\E[M:al=\E[L:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
689 :ch=\E[%i%dG:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
690 :cs=\E[%i%d;%dr:ct=\E[3g:cv=\E[%i%dd:dc=\E[P:dl=\E[M:\
691 :do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:\
692 :k1=\E[[A:k2=\E[[B:k3=\E[[C:k4=\E[[D:k5=\E[[E:k6=\E[17~:\
693 :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kB=\E[Z:kD=\E[3~:\
694 :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\E[B:kh=\E[1~:\
695 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mh=\E[2m:mr=\E[7m:nd=\E[C:\
696 :nw=^M^J:r1=\Ec\E]R:rc=\E8:sc=\E7:se=\E[27m:sf=^J:sr=\EM:\
697 :st=\EH:ta=^I:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?6c:u9=\E[c:\
698 :ue=\E[24m:up=\E[A:us=\E[4m:vb=200\E[?5h\E[?5l:\
699 :ve=\E[?25h\E[?0c:vi=\E[?25l\E[?1c:vs=\E[?25h\E[?8c:\
700 :tc=klone+sgr:tc=ecma+color:
701linux-m|Linux console no color:\
702 :Co@:pa@:\
703 :AB@:AF@:Sb@:Sf@:tc=linux:
704linux-c-nc|linux console 1.3.x hack for ncurses only:\
705 :cc:\
706 :..Ic=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x:\
707 :oc=\E]R:tc=linux:
708# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
709linux-c|linux console 1.3.6+ with private palette for each virtual console:\
710 :cc:\
711 :Co#8:pa#64:\
712 :..Ic=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%p3%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%p4%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;:\
713 :oc=\E]R:tc=linux:
714
715# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
716linux-nic|linux with ich/ich1 suppressed for non-curses programs:\
717 :IC@:ei=:ic@:im=:tc=linux:
718
719# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts.
720# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997.
721linux-koi8|linux with koi8 alternate character set:\
722 :ac=+\020,\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224:\
723 :tc=linux:tc=klone+koi8acs:
724
725# Another entry for KOI8-r with Qing Long's acsc.
726# (which one better complies with the standard?)
727linux-koi8r|linux with koi8-r alternate character set:\
728 :tc=linux:tc=klone+koi8acs:
729
730# Entry for the latin1 and latin2 fonts
731linux-lat|linux with latin1 or latin2 alternate character set:\
732 :ac=+\020,\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376:\
733 :tc=linux:
734
735#### Mach
736#
737
738# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk>
739mach|Mach Console:\
740 :am:km:\
741 :co#80:it#8:li#25:\
742 :@7=\E[Y:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
743 :RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\Ec:\
744 :cm=\E[%i%d;%dH:cr=^M:dl=\E[M:do=^J:ho=\E[H:k1=\EOP:\
745 :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:\
746 :k9=\EOX:k;=\EOY:kD=\E[9:kH=\E[F:kI=\E[@:kN=\E[U:kP=\E[V:\
747 :kb=\177:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
748 :mb=\E[5m:md=\E[1m:me=\E[0m:mr=\E[7m:nd=\E[C:se=\E[0m:\
749 :sf=^J:so=\E[7m:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:
750mach-bold|Mach Console with bold instead of underline:\
751 :ue=\E[0m:us=\E[1m:tc=mach:
752mach-color|Mach Console with ANSI color:\
753 :Co#8:pa#64:\
754 :AB=\E[4%dm:AF=\E[3%dm:mh=\E[2m:mk=\E[8m:op=\E[37;40m:\
755 :se=\E[27m:tc=mach:
756
757#### OSF Unix
758#
759
760# OSF/1 1.1 Snapshot 2
761pmcons|pmconsole|PMAX console:\
762 :am:\
763 :co#128:li#57:\
764 :bl=^G:cl=^L:cr=^M:do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
765 :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:sf=^J:ta=^I:up=^K:
766
767# SCO console and SOS-Syscons console for 386bsd
768# (scoansi: had unknown capabilities
769# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
770# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
771# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
772# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
773# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
774# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
775# on the :as:=\E[12m -- esr)
776#
777# klone+sgr-dumb is an error since the acsc does not match -TD
778#
779# In this description based on SCO's keyboard(HW) manpage list of default function key
780# values:
781# F13-F24 are shifted F1-F12
782# F25-F36 are control F1-F12
783# F37-F48 are shift+control F1-F12
784#
785# hpa/vpa work in the console, but not in scoterm:
786# hpa=\E[%p1%dG,
787# vpa=\E[%p1%dd,
788#
789# SCO's terminfo uses
790# kLFT=\E[d,
791# kRIT=\E[c,
792# which do not work (console or scoterm).
793#
794# Console documents only 3 attributes can be set with SGR (so we don't use sgr).
795# (untranslatable capabilities removed to fit entry within 1023 bytes)
796# (sgr removed to fit entry within 1023 bytes)
797# (acsc removed to fit entry within 1023 bytes)
798# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
799scoansi|SCO Extended ANSI standard crt:\
800 :am:bs:eo:xo:\
801 :co#80:it#8:li#25:\
802 :AL=\E[%dL:DL=\E[%dM:SF=\E[%dS:SR=\E[%dT:ae=\E[10m:\
803 :al=\E[L:as=\E[12m:bl=^G:bt=\E[Z:cd=\E[m\E[J:ce=\E[m\E[K:\
804 :cl=\E[2J\E[H:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=:\
805 :ho=\E[H:ic=\E[@:im=:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:\
806 :k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:kD=^_:kI=\E[L:\
807 :kN=\E[G:kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\
808 :ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0;10m:mr=\E[7m:\
809 :nd=\E[C:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:\
810 :up=\E[A:us=\E[4m:ve=\E[=10;12C:vi=\E[=14;12C:\
811 :vs=\E[=0;12C:
812
813# This actually describes the generic SVr4 display driver for Intel boxes.
814# The :mh=\E[2m: isn't documented and therefore may not be reliable.
815# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
816att6386|at386|386at|AT&T WGS 6386 console:\
817 :am:bw:eo:xo:\
818 :co#80:it#8:li#25:\
819 :@7=\E[Y:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\EOZ:\
820 :F2=\EOA:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:\
821 :SR=\E[%dT:UP=\E[%dA:\
822 :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\
823 :ae=\E[10m:al=\E[1L:as=\E[12m:bl=^G:bt=\E[Z:cd=\E[J:\
824 :ce=\E[K:ch=\E[%i%dG:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:\
825 :ct=\E[2g:cv=\E[%i%dd:dc=\E[P:dl=\E[1M:do=\E[B:ec=\E[%dX:\
826 :ei=:ho=\E[H:ic=\E[1@:im=:is=\E[0;10;39m:k1=\EOP:k2=\EOQ:\
827 :k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:\
828 :k;=\EOY:kB=^]:kD=\E[P:kI=\E[@:kM=\E0:kN=\E[U:kP=\E[V:kb=^H:\
829 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:\
830 :md=\E[1m:me=\E[0;10m:mh=\E[2m:mk=\E[9m:mr=\E[7m:nd=\E[C:\
831 :nw=\r\E[S:rc=\E8:\
832 :..sa=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m:\
833 :sc=\E7:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:st=\EH:ta=^I:\
834 :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[=1C:vi=\E[=C:\
835 :tc=klone+color:
836# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
837pc6300plus|AT&T 6300 plus:\
838 :am:bs:xo:\
839 :co#80:li#24:\
840 :al=\E[1L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[H:\
841 :cm=\E[%i%2;%2H:cr=^M:ct=\E[3g:dc=\E[1P:dl=\E[1M:do=\E[B:\
842 :ei=:ho=\E[H:ic=\E[1@:im=:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:\
843 :k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\EOk:k;=\EOu:kb=^H:\
844 :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\
845 :me=\E[m:mh=\E[2m:mk=\E[9m:mr=\E[7m:nd=\E[C:nw=^M^J:\
846 :se=\E[m:sf=^J:so=\E[7m:st=\EH:ue=\E[m:up=\E[A:us=\E[4m:\
847 :ve=\E[=1C:vi=\E[=C:
848
849# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
850#
851# I have a UNIX PC which I use as a terminal attached to my Linux PC.
852# Unfortunately, the UNIX PC terminfo entry that comes with ncurses
853# is broken. All the special key sequences are broken, making it unusable
854# with Emacs. The problem stems from the following:
855#
856# The UNIX PC has a plethora of keys (103 of them, and there's no numeric
857# keypad!), loadable fonts, and strange highlighting modes ("dithered"
858# half-intensity, "smeared" bold, and real strike-out, for example.) It also
859# uses resizable terminal windows, but the bundled terminal program always
860# uses an 80x24 window (and doesn't support seem to support a 132-column
861# mode.)
862#
863# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
864# library which was a superset of SVr3.5 curses (called tam, for "terminal
865# access method".) tam includes support for real, overlapping windows,
866# onscreen function key labels, and bitmap graphics. But since the primary
867# user interface on the UNIX PC was a GUI program (ua, for "user
868# assistant",) and remote administration was considered important for the
869# machine, tam also supported VT100-compatible terminals attached to the
870# serial port or used across the StarLan network. To simulate the extra keys
871# not present on a VT100, users could press ESC and a two-letter sequence,
872# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences,
873# however, were not the same as those sent by the actual Undo key. The
874# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example.
875# (If you're interested in adding some of the tam calls to ncurses, btw, I
876# have the full documentation and several programs which use tam. It also
877# used an extended terminfo format to describe key sequences, special
878# highlighting modes, etc.)
879#
880# KEYS: This means that ncurses would quite painful on the UNIX PC, since
881# there are two sequences for every key-modifier combination (local keyboard
882# sequence and remote "VT100" sequence.) But I doubt many people are trying
883# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
884# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
885# seem to have been built from the manual describing the VT100 sequences.
886# This means it doesn't work for a real live UNIX PC.
887#
888# FONTS: The UNIX PC also has a strange interpretation of "alternate
889# character set". Rather than the VT100 graphics you might expect, it allows
890# up to 8 custom fonts to be loaded at any given time. This means that
891# programs expecting VT100 graphics will usually be disappointed. For this
892# reason I have disabled the smacs/rmacs sequences, but they could easily be
893# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
894# manpage), should you wish to do so:
895#
896# SGR10 - Select font 0 - ESC [ 10 m or SO
897# SGR11 - Select font 1 - ESC [ 11 m or SI
898# SGR12 - Select font 2 - ESC [ 12 m
899# ... (etc.)
900# SGR17 - Select font 7 - ESC [ 17 m
901#
902# Graphics for line drawing are not reliably found at *any* character
903# location because the UNIX PC has dynamically reloadable fonts. I use font
904# 0 for regular text and font 1 for italics, but this is by no means
905# universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
906#
907# MISC: The cursor visible/cursor invisible sequences were swapped in the
908# distributed terminfo.
909#
910# To ameliorate these problems (and fix a few highlighting bugs) I rewrote
911# the UNIX PC terminfo entry. The modified version works great with Lynx,
912# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
913# attached by serial cable. In Emacs, even the Undo key works, and many
914# applications can now use the F1-F8 keys.
915#
916# esr's notes:
917# Terminfo entry for the AT&T Unix PC 7300
918# from escape(7) in Unix PC 7300 Manual.
919# Somewhat similar to a vt100-am (but different enough
920# to redo this from scratch.)
921#
922# /***************************************************************
923# *
924# * FONT LOADING PROGRAM FOR THE UNIX PC
925# *
926# * This routine loads a font defined in the file ALTFONT
927# * into font memory slot #1. Once the font has been loaded,
928# * it can be used as an alternative character set.
929# *
930# * The call to ioctl with the argument WIOCLFONT is the key
931# * to this routine. For more information, see window(7) in
932# * the PC 7300 documentation.
933# ***************************************************************/
934# #include <string.h> /* needed for strcpy call */
935# #include <sys/window.h> /* needed for ioctl call */
936# #define FNSIZE 60 /* font name size */
937# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */
938# /*
939# * The file /usr/lib/wfont/special.8.ft comes with the
940# * standard PC software. It defines a graphics character set
941# * similar to that of the Teletype 5425 terminal. To view
942# * this or other fonts in /usr/lib/wfont, use the command
943# * cfont <filename>. For further information on fonts see
944# * cfont(1) in the PC 7300 documentation.
945# */
946#
947# struct altfdata /* structure for alt font data */
948# {
949# short altf_slot; /* memory slot number */
950# char altf_name[FNSIZE]; /* font name (file name) */
951# };
952# ldfont()
953# {
954# int wd; /* window in which altfont will be */
955# struct altfdata altf;
956# altf.altf_slot=1;
957# strcpy(altf.altf_name,ALTFONT);
958# for (wd =1; wd < 12; wd++) {
959# ioctl(wd, WIOCLFONT,&altf);
960# }
961# }
962#
963# (att7300: added :vi:/:ve:/:ic:/<invis> from the BSDI entry,
964# they're confirmed by the man page for the System V display---esr)
965#
966# (untranslatable capabilities removed to fit entry within 1023 bytes)
967# (sgr removed to fit entry within 1023 bytes)
968# (acsc removed to fit entry within 1023 bytes)
969# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
970att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300:\
971 :am:xo:\
972 :co#80:it#8:li#24:\
973 :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\
974 :UP=\E[%dA:al=\E[L:bl=^G:bt=\E^I:cd=\E[0J:ce=\E[0K:\
975 :cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\
976 :do=\E[B:ei=:ho=\E[H:i1=\017\E[=1w:ic=\E[@:im=:k1=\EOc:\
977 :k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:\
978 :kD=\ENf:kI=\ENj:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:\
979 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[9m:md=\E[1m:\
980 :me=\E[0;10m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:se=\E[m:\
981 :sf=^J:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[=0C:\
982 :vi=\E[=1C:
983
984# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is
985# from SGI's terminfo database. SGI's entry shows F9-F12 with the codes
986# for the application keypad mode. We have added iris-ansi-ap rather than
987# change the original to keypad mode.
988#
989# (iris-ansi: added rmam/smam based on init string -- esr)
990#
991# This entry, and those derived from it, is used in xwsh (also known as
992# winterm). Some capabilities that do not fit into the terminfo model
993# include the shift- and control-functionkeys:
994#
995# F1-F12 generate different codes when shift or control modifiers are used.
996# For example:
997# F1 \E[001q
998# shift F1 \E[013q
999# control-F1 \E[025q
1000#
1001# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e.,
1002# \EOP to \EOS. The shifted and control modifiers still do the same thing.
1003#
1004# The cursor keys also have different codes:
1005# control-up \E[162q
1006# control-down \E[165q
1007# control-left \E[159q
1008# control-right \E[168q
1009#
1010# shift-up \E[161q
1011# shift-down \E[164q
1012# shift-left \E[158q
1013# shift-right \E[167q
1014#
1015# control-tab \[072q
1016#
1017iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100):\
1018 :am:\
1019 :co#80:it#8:li#40:\
1020 :!2=\E[218q:#2=\E[143q:#4=\E[158q:%9=\E[209q:%f=\E[210q:\
1021 :%i=\E[167q:&7=\E[217q:*4=\E[P:*7=\E[147q:@7=\E[146q:\
1022 :@8=^M:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:F1=\E[011q:\
1023 :F2=\E[012q:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\
1024 :UP=\E[%dA:al=\E[L:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
1025 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dl=\E[M:do=^J:\
1026 :ho=\E[H:is=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8:\
1027 :k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\
1028 :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:k;=\E[010q:\
1029 :kB=\E[Z:kD=\177:kI=\E[139q:kM=\E[146q:kN=\E[154q:\
1030 :kP=\E[150q:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
1031 :le=\E[D:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:\
1032 :pk=\EP101;%d.y%s\E\\:rc=\E8:sc=\E7:se=\E[m:sf=\ED:\
1033 :so=\E[1;7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\
1034 :ve=\E[9/y\E[12/y\E[=6l:vs=\E[10/y\E[=1h\E[=2l\E[=6h:
1035iris-ansi-ap|IRIS ANSI in application-keypad mode:\
1036 :@8=\EOM:F1=\E[011q:F2=\E[012q:is=\E[?1l\E=\E[?7h:\
1037 :k9=\E[009q:k;=\E[010q:tc=iris-ansi:
1038
1039# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
1040# (T.Dickey 98/1/24)
1041iris-color|xwsh|IRIX ANSI with color:\
1042 :NC#33:\
1043 :DC=\E[%dP:IC=\E[%d@:ZH=\E[3m:ZR=\E[23m:cs=\E[%i%d;%dr:\
1044 :ec=\E[%dX:ei=:im=:mh=\E[2m:r1=\Ec:\
1045 :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\
1046 :u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:ue=\E[24m:\
1047 :tc=klone+color:tc=iris-ansi-ap:
1048
1049# The following is a version of the ibm-pc entry distributed with PC/IX,
1050# (Interactive Systems' System 3 for the Big Blue), modified by Richard
1051# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original,
1052# (the former is untrue, and the latter failed under UCB/man); standout and
1053# underline modes have been added. Note: this entry describes the "native"
1054# capabilities of the PC monochrome display, without ANY emulation; most
1055# communications packages (but NOT PC/IX connect) do some kind of emulation.
1056pcix|PC/IX console:\
1057 :am:bw:eo:\
1058 :co#80:li#24:\
1059 :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[H:\
1060 :le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:up=\E[A:\
1061 :us=\E[4m:
1062
1063# (ibmpcx: this entry used to be known as ibmx.
1064# It formerly included the following extension capabilities:
1065# :GC=b:GL=v:GR=t:RT=^J:\
1066# :GH=\E[196g:GV=\E[179g:\
1067# :GU=\E[193g:GD=\E[194g:\
1068# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\
1069# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\
1070# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\
1071# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate
1072# ":kh=\E[Y:". Added IBM-PC forms characters and highlights, they match
1073# what was there before. -- esr)
1074ibmpcx|xenix|ibmx|IBM PC xenix console display:\
1075 :am:bs:ms:\
1076 :co#80:li#25:\
1077 :@7=\E[d:al=\E[L:cd=\E[J:ce=\E[K:cl=^L:cm=\E[%d;%dH:\
1078 :dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[K:\
1079 :k2=\E[L:k3=\E[M:k4=\E[N:kN=\E[e:kP=\E[Z:kb=^H:kd=\E[B:\
1080 :kh=\E[Y:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:up=\E[A:\
1081 :tc=klone+acs:tc=klone+sgr:
1082
1083#### QNX
1084#
1085
1086# QNX 4.0 Console
1087# Michael's original version of this entry had <am@>, :ti=\Ei:,
1088# :te=\Eh\ER:; this was so terminfo applications could write the lower
1089# right corner without triggering a scroll. The ncurses terminfo library can
1090# handle this case with the :ic: capability, and prefers :am: for better
1091# optimization. Bug: The <op> capability resets attributes.
1092# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996
1093# (removed: :sa=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,:)
1094# (untranslatable capabilities removed to fit entry within 1023 bytes)
1095# (sgr removed to fit entry within 1023 bytes)
1096# (acsc removed to fit entry within 1023 bytes)
1097# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
1098qnx|qnx4|qnx console:\
1099 :km:mi:ms:xt:\
1100 :co#80:it#4:li#25:\
1101 :al=\EE:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\
1102 :dc=\Ef:dl=\EF:do=^J:ei=:ho=\EH:ic=\Ee:im=:k1=\377\201:\
1103 :k2=\377\202:k3=\377\203:k4=\377\204:k5=\377\205:\
1104 :k6=\377\206:k7=\377\207:k8=\377\210:k9=\377\211:\
1105 :kD=\377\254:kI=\377\253:kN=\377\252:kP=\377\242:\
1106 :kd=\377\251:kh=\377\240:kl=\377\244:kr=\377\246:\
1107 :ku=\377\241:le=^H:mb=\E{:md=\E<:me=\E}\E]\E>\E):mr=\E(:\
1108 :nd=\EC:rp=\Eg%r%+ %.:se=\E):sf=^J:so=\E(:sr=\EI:ta=^I:\
1109 :te=\Eh\ER:ti=\Ei:ue=\E]:up=\EA:us=\E[:ve=\Ey1:vi=\Ey0:\
1110 :vs=\Ey2:
1111#
1112#
1113qnxt|qnxt4|QNX4 terminal:\
1114 :YB:tc=qnx4:
1115#
1116qnxm|QNX4 with mouse events:\
1117 :Yd#1:\
1118 :ZC=\E/:ZD=\E":ZJ=\E/>2h:ZT=\E/>2l:ZZ=\E/>1l\E/>9h:\
1119 :Za=\E/>7h:Zb=\E/>7l:Zd=\E/>6l:Zf=\E/>1h:Zg=\E/>1h:\
1120 :Zh=\E/>1h\E/>9l:Zi=\E/>6h:i1=\E/0t:tc=qnx4:
1121#
1122qnxw|QNX4 windows:\
1123 :YD:tc=qnxm:
1124#
1125# Monochrome QNX4 terminal or console. Setting this terminal type will
1126# allow an application running on a color console to behave as if it
1127# were a monochrome terminal. Output will be through stdout instead of
1128# console writes because the term routines will recognize that the
1129# terminal name starts with 'qnxt'.
1130#
1131qnxtmono|Monochrome QNX4 terminal or console:\
1132 :Co@:pa@:\
1133 :sp@:tc=qnx4:
1134
1135# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998
1136# (esr: commented out <scp> and :te: to avoid warnings.)
1137# (TD: derive from original qnx4 entry)
1138qnxt2|qnx 2.15 serial terminal:\
1139 :am:\
1140 :!3@:%h@:%j@:&7@:Sb@:Sf@:dc@:ei=:ic@:im=:rp@:se=\E>:so=\E<:te@:ti@:\
1141 :ve@:vi@:vs@:tc=qnx4:
1142
1143# QNX ANSI terminal definition
1144# (untranslatable capabilities removed to fit entry within 1023 bytes)
1145# (sgr removed to fit entry within 1023 bytes)
1146# (acsc removed to fit entry within 1023 bytes)
1147# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
1148qansi-g|QNX ANSI:\
1149 :am:es:hs:xo:\
1150 :co#80:it#8:li#25:ws#80:\
1151 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
1152 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:\
1153 :al=\E[1L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\
1154 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[2g:dc=\E[P:\
1155 :dl=\E[1M:do=\E[B:ds=\E[r:ec=\E[%dX:ei=:fs=\E[?6h\E8:\
1156 :ho=\E[H:i2=\E(B\E)0:ic=\E[1@:im=:\
1157 :is=\E>\E[?1l\E[?7h\E[0;10;39;49m:k1=\EOP:k2=\EOQ:\
1158 :k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:\
1159 :kD=\E[P:kI=\E[@:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:\
1160 :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:ll=\E[99H:mb=\E[5m:\
1161 :md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\
1162 :se=\E[27m:sf=\E[S:so=\E[7m:sr=\E[T:st=\EH:ta=^I:\
1163 :ts=\E7\E1;24r\E[?6l\E[25;%i%dH:ue=\E[24m:up=\E[A:\
1164 :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\
1165 :vs=\E[?12;25h:
1166#
1167qansi|QNX ansi with console writes:\
1168 :YA:YC:tc=qansi-g:
1169#
1170qansi-t|QNX ansi without console writes:\
1171 :YB:tc=qansi:
1172#
1173qansi-m|QNX ansi with mouse:\
1174 :Yd#1:\
1175 :ZC=\E[:ZD=\E]:ZJ=\E[>2h:ZT=\E[>2l:ZZ=\E[>1l\E[>9h:\
1176 :Za=\E[>7h:Zb=\E[>7l:Zd=\E[>6l:Zf=\E[>1h:Zg=\E[>1h:\
1177 :Zh=\E[>1h\E[>9l:Zi=\E[>6h:i1=\E[0t:tc=qansi:
1178#
1179qansi-w|QNX ansi for windows:\
1180 :YD:tc=qansi-m:
1181
1182#### NetBSD consoles
1183#
1184# pcvt termcap database entries (corresponding to release 3.31)
1185# Author's last edit-date: [Fri Sep 15 20:29:10 1995]
1186#
1187# (For the terminfo master file, I translated these into terminfo syntax.
1188# Then I dropped all the pseudo-HP entries. we don't want and can't use
1189# the :Xs: flag. Then I split :is: into a size-independent :i1: and a
1190# size-dependent :is:. Finally, I added <rmam>/<smam> -- esr)
1191
1192# NOTE: :ic: has been taken out of this entry. for reference, it should
1193# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below.
1194# (esr: added :vi: and :ve: to resolve NetBSD Problem Report #4583)
1195pcvtXX|pcvt vt200 emulator (DEC VT220):\
1196 :am:km:mi:ms:xn:\
1197 :it#8:vt#3:\
1198 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
1199 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dS:\
1200 :SR=\E[%dT:UP=\E[%dA:\
1201 :ac=++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~:\
1202 :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
1203 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
1204 :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\
1205 :i1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:im=\E[4h:\
1206 :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\
1207 :k6=\E[23~:k7=\E[24~:k8=\E[25~:kD=\E[3~:kH=\E[4~:kI=\E[2~:\
1208 :kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:\
1209 :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\
1210 :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:\
1211 :r1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
1212 :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[27m:sf=\ED:\
1213 :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:\
1214 :ve=\E[?25h:vi=\E[?25l:
1215
1216# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
1217# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
1218# 50 lines entries; 80 columns
1219pcvt25|dec vt220 emulation with 25 lines:\
1220 :co#80:li#25:\
1221 :is=\E[1;25r\E[25;1H:tc=pcvtXX:
1222pcvt28|dec vt220 emulation with 28 lines:\
1223 :co#80:li#28:\
1224 :is=\E[1;28r\E[28;1H:tc=pcvtXX:
1225pcvt35|dec vt220 emulation with 35 lines:\
1226 :co#80:li#35:\
1227 :is=\E[1;35r\E[35;1H:tc=pcvtXX:
1228pcvt40|dec vt220 emulation with 40 lines:\
1229 :co#80:li#40:\
1230 :is=\E[1;40r\E[40;1H:tc=pcvtXX:
1231pcvt43|dec vt220 emulation with 43 lines:\
1232 :co#80:li#43:\
1233 :is=\E[1;43r\E[43;1H:tc=pcvtXX:
1234pcvt50|dec vt220 emulation with 50 lines:\
1235 :co#80:li#50:\
1236 :is=\E[1;50r\E[50;1H:tc=pcvtXX:
1237
1238# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
1239# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
1240# 50 lines entries; 132 columns
1241pcvt25w|dec vt220 emulation with 25 lines and 132 cols:\
1242 :co#132:li#25:\
1243 :is=\E[1;25r\E[25;1H:tc=pcvtXX:
1244pcvt28w|dec vt220 emulation with 28 lines and 132 cols:\
1245 :co#132:li#28:\
1246 :is=\E[1;28r\E[28;1H:tc=pcvtXX:
1247pcvt35w|dec vt220 emulation with 35 lines and 132 cols:\
1248 :co#132:li#35:\
1249 :is=\E[1;35r\E[35;1H:tc=pcvtXX:
1250pcvt40w|dec vt220 emulation with 40 lines and 132 cols:\
1251 :co#132:li#40:\
1252 :is=\E[1;40r\E[40;1H:tc=pcvtXX:
1253pcvt43w|dec vt220 emulation with 43 lines and 132 cols:\
1254 :co#132:li#43:\
1255 :is=\E[1;43r\E[43;1H:tc=pcvtXX:
1256pcvt50w|dec vt220 emulation with 50 lines and 132 cols:\
1257 :co#132:li#50:\
1258 :is=\E[1;50r\E[50;1H:tc=pcvtXX:
1259
1260# Terminfo entries to enable the use of the ncurses library in color on a
1261# NetBSD-arm32 console (only tested on a RiscPC).
1262# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98
1263# modified codes for setf/setb to setaf/setab, then to klone+color, corrected
1264# typo in invis - TD
1265arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480):\
1266 :am:ms:ut:xn:xo:\
1267 :co#80:it#8:li#30:\
1268 :@8=\E[M:DO=\E[%dB:K1=\E[q:K2=\E[r:K3=\E[s:K4=\E[p:K5=\E[n:\
1269 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
1270 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
1271 :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
1272 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\
1273 :eA=\E(B\E)0:ho=\E[H:k0=\E[y:k1=\E[P:k2=\E[Q:k3=\E[R:\
1274 :k4=\E[S:k5=\E[t:k6=\E[u:k7=\E[v:k8=\E[l:k9=\E[w:k;=\E[x:\
1275 :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ks=\E[?1h\E=:\
1276 :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mk=\E[8m:\
1277 :mr=\E[7m:nd=\E[C:rc=\E8:\
1278 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
1279 :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>:\
1280 :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\
1281 :up=\E[A:us=\E[4m:tc=ecma+sgr:tc=klone+color:
1282
1283arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768):\
1284 :co#132:li#50:tc=arm100:
1285
1286# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine
1287# manufactured by Sharp for the Japenese market.
1288# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996
1289x68k|x68k-ite|NetBSD/x68k ITE:\
1290 :co#96:li#32:\
1291 :%1=\E[28~:kC=\E[9~:tc=vt220:
1292
1293# <tv@pobox.com>:
1294# Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
1295#
1296# (still unfinished, but good enough so far.)
1297ofcons:\
1298 :bw:\
1299 :co#80:li#30:\
1300 :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\
1301 :LE=\233%dD:RI=\233%dC:UP=\233%dA:al=\233L:bl=^G:cd=\233J:\
1302 :ce=\233K:cl=^L:cm=\233%i%d;%dH:cr=^M:dc=\233P:dl=\233M:\
1303 :do=\233B:ei=:ic=\233@:im=:k1=\2330P:k2=\2330Q:k3=\2330W:\
1304 :k4=\2330x:k5=\2330t:k6=\2330u:k7=\2330q:k8=\2330r:\
1305 :k9=\2330p:k;=\2330M:kD=\233P:kN=\233/:kP=\233?:kb=^H:\
1306 :kd=\233B:kl=\233D:kr=\233C:ku=\233A:le=\233D:mb=\2337;2m:\
1307 :md=\2331m:me=\2330m:mh=\2332m:mk=\2338m:mr=\2337m:\
1308 :nd=\233C:nw=^M^J:se=\2330m:sf=^J:ta=^I:ue=\2330m:up=\233A:\
1309 :vb=^G:
1310
1311# NetBSD "wscons" emulator in vt220 mode
1312# These are micro-minimal and probably need to be redone for real
1313# after the manner of the pcvt entries.
1314wsvt25|NetBSD wscons in 25 line DEC VT220 mode:\
1315 :co#80:li#25:tc=vt220:
1316
1317wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta:\
1318 :km:\
1319 :co#80:li#25:tc=vt220:
1320
1321# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
1322# DECstation/pmax.
1323rcons|BSD rasterconsole:\
1324 :tc=sun-il:
1325# Color version of above. Color currenly only provided by NetBSD.
1326rcons-color|BSD rasterconsole with ANSI color:\
1327 :ut:\
1328 :Co#8:pa#64:\
1329 :AB=\E[4%dm:AF=\E[3%dm:op=\E[m:tc=rcons:
1330
1331# mgterm -- MGL/MGL2, MobileGear Graphic Library
1332# for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k}
1333# -- the setf/setb are probably incorrect, more likely setaf/setab -TD
1334# -- compare with cons25w
1335mgterm:\
1336 :NP:am:bs:bw:eo:km:ms:pt:ut:\
1337 :Co#8:co#80:it#8:li#18:pa#64:\
1338 :@7=\E[F:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[W:\
1339 :F2=\E[X:IC=\E[%d@:K2=\E[E:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:\
1340 :SR=\E[%dT:Sb=\E[4%dm:Sf=\E[3%dm:UP=\E[%dA:al=\E[L:bl=^G:\
1341 :bt=\E[Z:cb=\E[1K:cd=\E[J:ce=\E[K:ch=\E[%i%d`:cl=\E[H\E[J:\
1342 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:cv=\E[%i%dd:dc=\E[P:\
1343 :dl=\E[M:do=\E[B:ec=\E[%dX:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[M:\
1344 :k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:\
1345 :k9=\E[U:k;=\E[V:kB=\E[Z:kD=\177:kI=\E[L:kN=\E[G:kP=\E[I:\
1346 :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
1347 :mb=\E[5m:md=\E[1m:me=\E[m:mh=\E[30;1m:mr=\E[7m:nd=\E[C:\
1348 :nw=\E[E:op=\E[x:rc=\E8:rs=\E[x\E[m\Ec:sc=\E7:se=\E[m:\
1349 :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:up=\E[A:
1350
1351#### FreeBSD console entries
1352#
1353# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
1354# Andrey Chernov maintains the FreeBSD termcap distributions.
1355#
1356# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade
1357# or comment out the :cb: capability in the console entry.
1358#
1359# Alexander Lukyanov reports:
1360# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there.
1361# Now el1 clears not only to the line beginning, but also a large chunk
1362# of previous line. But there is another bug - ech does not work at all.
1363#
1364
1365# for syscons
1366# common entry without semigraphics
1367# Bug: The <op> capability resets attributes.
1368# Bug? The ech and el1 attributes appear to move the cursor in some cases; for
1369# instance el1 does if the cursor is moved to the right margin first. Removed
1370# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K)
1371#
1372# Setting colors turns off reverse; we cannot guarantee order, so use ncv.
1373# Note that this disables standout with color.
1374cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode):\
1375 :NP:am:bw:eo:ms:ut:\
1376 :Co#8:NC#21:co#80:it#8:li#25:pa#64:\
1377 :@7=\E[F:AB=\E[4%dm:AF=\E[3%dm:AL=\E[%dL:DC=\E[%dP:\
1378 :DL=\E[%dM:DO=\E[%dB:F1=\E[W:F2=\E[X:IC=\E[%d@:K2=\E[E:\
1379 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
1380 :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:\
1381 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cv=\E[%i%dd:dc=\E[P:\
1382 :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[M:k2=\E[N:\
1383 :k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:\
1384 :k;=\E[V:kB=\E[Z:kD=\177:kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:\
1385 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
1386 :md=\E[1m:me=\E[m:mh=\E[30;1m:mr=\E[7m:nd=\E[C:nw=\E[E:\
1387 :op=\E[x:rs=\E[x\E[m\Ec:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:\
1388 :ta=^I:up=\E[A:ve=\E[=0C:vs=\E[=1C:
1389cons25|ansis|ansi80x25|freebsd console (25-line ansi mode):\
1390 :ac=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371:\
1391 :tc=cons25w:
1392cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode):\
1393 :Co@:pa@:\
1394 :AB@:AF@:md@:mh@:op@:ue=\E[m:us=\E[4m:tc=cons25:
1395cons30|ansi80x30|freebsd console (30-line ansi mode):\
1396 :li#30:tc=cons25:
1397cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode):\
1398 :li#30:tc=cons25-m:
1399cons43|ansi80x43|freebsd console (43-line ansi mode):\
1400 :li#43:tc=cons25:
1401cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode):\
1402 :li#43:tc=cons25-m:
1403cons50|ansil|ansi80x50|freebsd console (50-line ansi mode):\
1404 :li#50:tc=cons25:
1405cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode):\
1406 :li#50:tc=cons25-m:
1407cons60|ansi80x60|freebsd console (60-line ansi mode):\
1408 :li#60:tc=cons25:
1409cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode):\
1410 :li#60:tc=cons25-m:
1411cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic:\
1412 :ac=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225:\
1413 :tc=cons25w:
1414cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono):\
1415 :Co@:pa@:\
1416 :AB@:AF@:op@:ue=\E[m:us=\E[4m:tc=cons25r:
1417cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines):\
1418 :li#50:tc=cons25r:
1419cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono):\
1420 :li#50:tc=cons25r-m:
1421cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines):\
1422 :li#60:tc=cons25r:
1423cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono):\
1424 :li#60:tc=cons25r-m:
1425# ISO 8859-1 FreeBSD console
1426cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars:\
1427 :ac=+\253,\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237:\
1428 :tc=cons25w:
1429cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono):\
1430 :Co@:pa@:\
1431 :AB@:AF@:md@:mh@:op@:ue=\E[m:us=\E[4m:tc=cons25l1:
1432cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines):\
1433 :li#50:tc=cons25l1:
1434cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono):\
1435 :li#50:tc=cons25l1-m:
1436cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines):\
1437 :li#60:tc=cons25l1:
1438cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono):\
1439 :li#60:tc=cons25l1-m:
1440
1441#### 386BSD and BSD/OS Consoles
1442#
1443
1444# This was the original 386BSD console entry (I think).
1445# Some places it's named oldpc3|oldibmpc3.
1446# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu>
1447origpc3|origibmpc3|IBM PC 386BSD Console:\
1448 :am:bs:bw:eo:xo:\
1449 :co#80:li#25:\
1450 :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\
1451 :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[H:\
1452 :kd=\E[B:kh=\E[Y:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md=\E[7m:\
1453 :me=\E[m\E[1;0x\E[2;7x:nd=\E[C:se=\E[1;0x\E[2;7x:\
1454 :sf=\E[S:so=\E[1;7x\E[2;0x:sr=\E[T:ue=\E[1;0x\E[2;7x:\
1455 :up=\E[A:us=\E[1;7x\E[2;0x:
1456
1457# description of BSD/386 console emulator in version 1.0 (supplied by BSDI)
1458oldpc3|oldibmpc3|old IBM PC BSD/386 Console:\
1459 :bs:km:\
1460 :li#25:\
1461 :al=\E[L:bl=^G:cr=^M:dl=\E[M:do=^J:kH=\E[F:kI=\E[L:kN=\E[G:\
1462 :kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
1463 :md=\E[=15F:me=\E[=R:mh=\E[=8F:nw=^M^J:sf=^J:ta=^I:
1464
1465# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1
1466# Note, the emulator supports many of the additional console features
1467# listed in the iBCS2 (e.g. character-set selection) though not all
1468# are described here. This entry really ought to be upgraded.
1469# Also note, the console will also work with fewer lines after doing
1470# "stty rows NN", e.g. to use 24 lines.
1471# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996)
1472# Bug: The <op> capability resets attributes.
1473bsdos-pc|IBM PC BSD/OS Console:\
1474 :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m:\
1475 :tc=bsdos-pc-nobold:
1476
1477bsdos-pc-nobold|BSD/OS PC console w/o bold:\
1478 :tc=klone+color:tc=bsdos-pc-m:
1479
1480bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono:\
1481 :am:bs:eo:km:xo:\
1482 :co#80:it#8:li#25:\
1483 :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\
1484 :UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\Ec:\
1485 :cm=\E[%i%d;%dH:cr=^M:dl=\E[M:do=^J:ho=\E[H:kH=\E[F:\
1486 :kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\
1487 :kr=\E[C:ku=\E[A:le=^H:nd=\E[C:nw=^M^J:rc=\E8:\
1488 :..sa=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;:\
1489 :sc=\E7:sf=^J:ta=^I:up=\E[A:tc=klone+sgr:
1490
1491# Old names for BSD/OS PC console used in releases before 4.1.
1492pc3|BSD/OS on the PC Console:\
1493 :tc=bsdos-pc-nobold:
1494ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline:\
1495 :tc=bsdos-pc:
1496
1497# BSD/OS on the SPARC
1498bsdos-sparc|Sun SPARC BSD/OS Console:\
1499 :tc=sun:
1500
1501# BSD/OS on the PowerPC
1502bsdos-ppc|PowerPC BSD/OS Console:\
1503 :tc=bsdos-pc:
1504
1505#### DEC VT52
1506# (<acsc>/:ae:/:as: capabilities aren't in DEC's official entry -- esr)
1507vt52|dec vt52:\
1508 :bs:\
1509 :co#80:it#8:li#24:\
1510 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
1511 :ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\
1512 :cr=^M:do=\EB:ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:\
1513 :le=\ED:nd=\EC:nw=^M^J:sf=^J:sr=\EI:ta=^I:up=\EA:
1514
1515#### DEC VT100 and compatibles
1516#
1517# DEC terminals from the vt100 forward are collected here. Older DEC terminals
1518# and micro consoles can be found in the `obsolete' section. More details on
1519# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be
1520# found near the end of this file.
1521#
1522# Except where noted, these entries are DEC's official terminfos.
1523# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
1524# Engineering for more information. Updated terminfos and termcaps
1525# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
1526#
1527# In October 1995 DEC sold its terminals business, including the VT and Dorio
1528# line and trademark, to SunRiver Data Systems. SunRiver has since changed
1529# its name to Boundless Technologies; see http://www.boundless.com.
1530#
1531
1532# NOTE: Any VT100 emulation, whether in hardware or software, almost
1533# certainly includes what DEC called the `Level 1 editing extension' codes;
1534# only the very oldest VT100s lacked these and there probably aren't any of
1535# those left alive. To capture these, use one of the VT102 entries.
1536#
1537# Note that the :xn: glitch in vt100 is not quite the same as on the Concept,
1538# since the cursor is left in a different position while in the
1539# weird state (concept at beginning of next line, vt100 at end
1540# of this line) so all versions of vi before 3.7 don't handle
1541# :xn: right on vt100. The correct way to handle :xn: is when
1542# you output the char in column 80, immediately output CR LF
1543# and then assume you are in column 1 of the next line. If :xn:
1544# is on, am should be on too.
1545#
1546# I assume you have smooth scroll off or are at a slow enough baud
1547# rate that it doesn't matter (1200? or less). Also this assumes
1548# that you set auto-nl to "on", if you set it off use vt100-nam
1549# below.
1550#
1551# The padding requirements listed here are guesses. It is strongly
1552# recommended that xon/xoff be enabled, as this is assumed here.
1553#
1554# The vt100 uses <rs2> and <rf> rather than :is:/:ct:/:st: because the
1555# tab settings are in non-volatile memory and don't need to be
1556# reset upon login. Also setting the number of columns glitches
1557# the screen annoyingly. You can type "reset" to get them set.
1558#
1559# The VT100 series terminals have cursor ("arrows") keys which can operate
1560# in two different modes: Cursor Mode and Application Mode. Cursor Mode
1561# is the reset state, and is assumed to be the normal state. Application
1562# Mode is the "set" state. In Cursor Mode, the cursor keys transmit
1563# "Esc [ {code}" sequences, conforming to ANSI standards. In Application
1564# Mode, the cursor keys transmit "Esc O <code>" sequences. Application Mode
1565# was provided primarily as an aid to the porting of VT52 applications. It is
1566# assumed that the cursor keys are normally in Cursor Mode, and expected that
1567# applications such as vi will always transmit the :ks: string. Therefore,
1568# the definitions for the cursor keys are made to match what the terminal
1569# transmits after the :ks: string is transmitted. If the :ks: string
1570# is a null string or is not defined, then cursor keys are assumed to be in
1571# "Cursor Mode", and the cursor keys definitions should match that assumption,
1572# else the application may fail. It is also expected that applications will
1573# always transmit the :ke: string to the terminal before they exit.
1574#
1575# The VT100 series terminals have an auxiliary keypad, commonly referred to as
1576# the "Numeric Keypad", because it is a cluster of numeric and function keys.
1577# The Numeric Keypad which can operate in two different modes: Numeric Mode and
1578# Application Mode. Numeric Mode is the reset state, and is assumed to be
1579# the normal state. Application Mode is the "set" state. In Numeric Mode,
1580# the numeric and punctuation keys transmit ASCII 7-bit characters, and the
1581# Enter key transmits the same as the Return key (Note: the Return key
1582# can be configured to send either LF (\015) or CR LF). In Application Mode,
1583# all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys
1584# always send the same "Esc O {code}" sequences. It is assumed that the keypad
1585# is normally in Numeric Mode. If an application requires that the keypad be
1586# in Application Mode then it is expected that the user, or the application,
1587# will set the TERM environment variable to point to a terminfo entry which has
1588# defined the :ks: string to include the codes that switch the keypad into
1589# Application Mode, and the terminfo entry will also define function key
1590# fields to match the Application Mode control codes. If the :ks: string
1591# is a null string or is not defined, then the keypad is assumed to be in
1592# Numeric Mode. If the :ks: string switches the keypad into Application
1593# Mode, it is expected that the :ke: string will contain the control codes
1594# necessary to reset the keypad to "Normal" mode, and it is also expected that
1595# applications which transmit the :ks: string will also always transmit the
1596# :ke: string to the terminal before they exit.
1597#
1598# Here's a diagram of the VT100 keypad keys with their bindings.
1599# The top line is the name of the key (some DEC keyboards have the keys
1600# labelled somewhat differently, like GOLD instead of PF1, but this is
1601# the most "official" name). The second line is the escape sequence it
1602# generates in Application Keypad mode (where "$" means the ESC
1603# character). The third line contains two items, first the mapping of
1604# the key in terminfo, and then in termcap.
1605# _______________________________________
1606# | PF1 | PF2 | PF3 | PF4 |
1607# | $OP | $OQ | $OR | $OS |
1608# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
1609# | 7 8 9 - |
1610# | $Ow | $Ox | $Oy | $Om |
1611# |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________|
1612# | 4 | 5 | 6 | , |
1613# | $Ot | $Ou | $Ov | $Ol |
1614# |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_|
1615# | 1 | 2 | 3 | |
1616# | $Oq | $Or | $Os | enter |
1617# |_ka1__K1_|_kb2__K2_|_ka3__K3_| $OM |
1618# | 0 | . | |
1619# | $Op | $On | |
1620# |___kc1_______K4____|_kc3__K5_|_kent_@8_|
1621#
1622# And here, for those of you with orphaned VT100s lacking documentation, is
1623# a description of the soft switches invoked when you do `Set Up'.
1624#
1625# Scroll 0-Jump Shifted 3 0-#
1626# | 1-Smooth | 1-British pound sign
1627# | Autorepeat 0-Off | Wrap Around 0-Off
1628# | | 1-On | | 1-On
1629# | | Screen 0-Dark Bkg | | New Line 0-Off
1630# | | | 1-Light Bkg | | | 1-On
1631# | | | Cursor 0-Underline | | | Interlace 0-Off
1632# | | | | 1-Block | | | | 1-On
1633# | | | | | | | |
1634# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings
1635# | | | | | | | |
1636# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz
1637# | | | 1-On | | | 1-50 Hz
1638# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits
1639# | | 1-ANSI | | 1-8 Bits
1640# | Keyclick 0-Off | Parity 0-Off
1641# | 1-On | 1-On
1642# Margin Bell 0-Off Parity Sense 0-Odd
1643# 1-On 1-Even
1644#
1645# The following SET-UP modes are assumed for normal operation:
1646# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS
1647# WRAP_AROUND_ON JUMP_SCROLL_OFF
1648# Other SET-UP modes may be set for operator convenience or communication
1649# requirements; I recommend
1650# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_#
1651# Unless you have a graphics add-on such as Digital Engineering's VT640
1652# (and even then, whenever it can be arranged!) you should set
1653# INTERLACE_OFF
1654#
1655# (vt100: I added <rmam>/<smam> based on the init string, also :bs:. -- esr)
1656vt100|vt100-am|dec vt100 (w/advanced video):\
1657 :am:bs:ms:xn:xo:\
1658 :co#80:it#8:li#24:vt#3:\
1659 :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\
1660 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
1661 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
1662 :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
1663 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\
1664 :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\
1665 :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\
1666 :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
1667 :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\
1668 :nd=\E[C:rc=\E8:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
1669 :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>:\
1670 :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\
1671 :up=\E[A:us=\E[4m:
1672vt100nam|vt100-nam|vt100 no automargins:\
1673 :am@:xn@:tc=vt100-am:
1674vt100-vb|dec vt100 (w/advanced video) & no beep:\
1675 :bl@:vb=\E[?5h\E[?5l:tc=vt100:
1676
1677# Ordinary vt100 in 132 column ("wide") mode.
1678vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video):\
1679 :co#132:li#24:\
1680 :rs=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-am:
1681vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin):\
1682 :co#132:li#14:vt@:\
1683 :rs=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-nam:
1684
1685# vt100 with no advanced video.
1686vt100-nav|vt100 without advanced video option:\
1687 :sg#1:\
1688 :mb@:md@:me@:mr@:sa@:se=\E[m:so=\E[7m:ue@:us@:tc=vt100:
1689vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option):\
1690 :co#132:li#14:tc=vt100-nav:
1691
1692# vt100 with one of the 24 lines used as a status line.
1693# We put the status line on the top.
1694vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline:\
1695 :es:hs:\
1696 :li#23:\
1697 :cl=\E[2;1H\E[J:cm=\E[%i%+^A;%dH:cs=\E[%i%i%d;%dr:\
1698 :ds=\E7\E[1;24r\E8:fs=\E8:ho=\E[2;1H:is=\E7\E[2;24r\E8:\
1699 :ts=\E7\E[1;%dH\E[1K:tc=vt100-am:
1700
1701# Status line at bottom.
1702# Clearing the screen will clobber status line.
1703vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline:\
1704 :es:hs:\
1705 :li#23:\
1706 :ds=\E7\E[1;24r\E8:fs=\E8:is=\E[1;23r\E[23;1H:\
1707 :ts=\E7\E[24;%dH\E[1K:tc=vt100-am:
1708
1709# Most of the `vt100' emulators out there actually emulate a vt102
1710# This entry (or vt102-nsgr) is probably the right thing to use for
1711# these.
1712vt102|dec vt102:\
1713 :mi:\
1714 :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:tc=vt100:
1715vt102-w|dec vt102 in wide mode:\
1716 :co#132:\
1717 :r3=\E[?3h:tc=vt102:
1718
1719# Many brain-dead PC comm programs that pretend to be `vt100-compatible'
1720# fail to interpret the ^O and ^N escapes properly. Symptom: the :me:
1721# string in the canonical vt100 entry above leaves the screen littered
1722# with little snowflake or star characters (IBM PC ROM character \017 = ^O)
1723# after highlight turnoffs. This entry should fix that, and even leave
1724# ACS support working, at the cost of making multiple-highlight changes
1725# slightly more expensive.
1726# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
1727vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes):\
1728 :me=\E[m:sa@:tc=vt102:
1729
1730# VT125 Graphics CRT. Clear screen also erases graphics
1731vt125|vt125 graphics terminal:\
1732 :cl=\E[H\E[2J\EPpS(E)\E\\:tc=vt100:
1733
1734# This isn't a DEC entry, it came from University of Wisconsin.
1735# (vt131: I added <rmam>/<smam> based on the init string, also :bs: -- esr)
1736vt131|dec vt131:\
1737 :am:bs:xn:\
1738 :co#80:it#8:li#24:vt#3:\
1739 :RA=\E[?7h:SA=\E[?7h:bl=^G:cd=50\E[J:ce=3\E[K:\
1740 :cl=50\E[;H\E[2J:cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
1741 :do=^J:ho=\E[H:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:\
1742 :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
1743 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:\
1744 :me=2\E[m:mr=2\E[7m:nd=2\E[C:nw=^M^J:\
1745 :r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\
1746 :se=2\E[m:so=2\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:\
1747 :us=2\E[4m:
1748
1749# vt132 - like vt100 but slower and has ins/del line and such.
1750# I'm told that :im:/:ei: are backwards in the terminal from the
1751# manual and from the ANSI standard, this describes the actual
1752# terminal. I've never actually used a vt132 myself, so this
1753# is untested.
1754#
1755vt132|DEC vt132:\
1756 :xn:\
1757 :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4h:im=\E[4l:ip=:sf=\n:\
1758 :tc=vt100:
1759
1760# This vt220 description maps F5--F9 to the second block of function keys
1761# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict
1762# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping.
1763# PF1--PF4 are used as F1--F4.
1764#
1765vt220-old|vt200-old|DEC VT220 in vt100 emulation mode:\
1766 :am:bs:mi:pt:xn:xo:\
1767 :co#80:li#24:vt#3:\
1768 :@7=\E[4~:RA=\E[?7l:SA=\E[?7h:\
1769 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
1770 :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\
1771 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
1772 :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\
1773 :if=/usr/share/tabset/vt100:im=\E[4h:\
1774 :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
1775 :k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:k9=\E[21~:\
1776 :k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:\
1777 :kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
1778 :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:rc=\E8:\
1779 :rf=/usr/share/tabset/vt100:\
1780 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
1781 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>:\
1782 :sc=\E7:se=\E[27m:sf=20\ED:so=\E[7m:sr=14\EM:ta=^I:\
1783 :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l:
1784
1785# A much better description of the VT200/220; used to be vt220-8
1786# changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1
1787# designation to accommodate bug in pcvt -TD
1788# (untranslatable capabilities removed to fit entry within 1023 bytes)
1789# (sgr removed to fit entry within 1023 bytes)
1790# (acsc removed to fit entry within 1023 bytes)
1791vt220|vt200|dec vt220:\
1792 :5i:am:bs:mi:ms:xn:xo:\
1793 :co#80:it#8:li#24:vt#3:\
1794 :%0=\E[29~:%1=\E[28~:*6=\E[4~:@0=\E[1~:AL=\E[%dL:\
1795 :DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:F2=\E[24~:\
1796 :F3=\E[25~:F4=\E[26~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\
1797 :FA=\E[34~:IC=\E[%d@:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:\
1798 :SA=\E[?7h:UP=\E[%dA:ae=\E(B:al=\E[L:as=\E(0:bl=^G:\
1799 :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
1800 :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
1801 :eA=\E)0:ec=\E[%dX:ei=\E[4l:ho=\E[H:\
1802 :if=/usr/share/tabset/vt100:im=\E[4h:\
1803 :is=\E[?7h\E[>\E[?1h\E F\E[?4l:k1=\EOP:k2=\EOQ:k3=\EOR:\
1804 :k4=\EOS:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
1805 :k;=\E[21~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:\
1806 :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:\
1807 :l4=pf4:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
1808 :nw=\EE:pf=\E[4i:po=\E[5i:ps=\E[i:r1=\E[?3l:rc=\E8:sc=\E7:\
1809 :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:\
1810 :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:
1811vt220-w|vt200-w|DEC vt220 in wide mode:\
1812 :co#132:\
1813 :r3=\E[?3h:tc=vt220:
1814# (untranslatable capabilities removed to fit entry within 1023 bytes)
1815# (sgr removed to fit entry within 1023 bytes)
1816# (acsc removed to fit entry within 1023 bytes)
1817# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
1818vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode:\
1819 :am:bs:mi:ms:xn:xo:\
1820 :co#80:it#8:li#24:vt#3:\
1821 :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\
1822 :LE=\233%dD:RI=\233%dC:UP=\233%dA:ae=^O:al=\233L:as=^N:\
1823 :bl=^G:cd=\233J:ce=\233K:cl=\233H\233J:cm=\233%i%d;%dH:\
1824 :cr=^M:cs=\233%i%d;%dr:ct=\2333g:dc=\233P:dl=\233M:do=^J:\
1825 :ec=\233%dX:ei=\2334l:ho=\233H:\
1826 :if=/usr/share/tabset/vt100:im=\2334h:\
1827 :is=\233?7h\233>\233?1h\E F\233?4l:k1=\EOP:k2=\EOQ:\
1828 :k3=\EOR:k4=\EOS:k6=\23317~:k7=\23318~:k8=\23319~:\
1829 :k9=\23320~:kI=\2332~:kN=\2336~:kP=\2335~:kb=^H:kd=\233B:\
1830 :kh=\233H:kl=\233D:kr=\233C:ku=\233A:le=^H:mb=\2335m:\
1831 :md=\2331m:me=\233m:mr=\2337m:nd=\233C:nw=\EE:rc=\E8:\
1832 :sc=\E7:se=\23327m:sf=\ED:so=\2337m:sr=\EM:st=\EH:ta=^I:\
1833 :ue=\23324m:up=\233A:us=\2334m:vb=\233?5h\233?5l:
1834
1835#
1836# vt220d:
1837# This vt220 description regards F6--F10 as the second block of function keys
1838# at the top of the keyboard. This mapping follows the description given
1839# in the VT220 Programmer Reference Manual and agrees with the labeling
1840# on some terminals that emulate the vt220. There is no support for an F5.
1841# See vt220 for an alternate mapping.
1842#
1843vt220d|DEC VT220 in vt100 mode with DEC function key labeling:\
1844 :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
1845 :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:k5@:\
1846 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
1847 :tc=vt220-old:
1848
1849vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins:\
1850 :am@:\
1851 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220:
1852
1853# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko
1854# (not an official DEC entry!)
1855# The problem with real vt220 terminals is they don't send escapes when in
1856# in vt220 mode. This can be gotten around two ways. 1> don't send
1857# escapes or 2> put the vt220 into vt100 mode and use all the nifty
1858# features of vt100 advanced video which it then has.
1859#
1860# This entry takes the view of putting a vt220 into vt100 mode so
1861# you can use the escape key in emacs and everything else which needs it.
1862#
1863# You probably don't want to use this on a VMS machine since VMS will think
1864# it has a vt220 and will get fouled up coming out of emacs
1865#
1866# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
1867# (Added vt100 :rc:,:sc: to quiet a tic warning -- esr)
1868vt200-js|vt220-js|dec vt200 series with jump scroll:\
1869 :am:\
1870 :co#80:\
1871 :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
1872 :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:dm=:do=^J:ed=:\
1873 :ei=\E[4l:ho=\E[H:im=\E[4h:\
1874 :is=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m:\
1875 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\
1876 :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
1877 :nw=^M\ED:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
1878 :rf=/usr/lib/tabset/vt100:sc=\E7:se=5\E[27m:sf=\ED:\
1879 :so=5\E[7m:sr=\EM:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:
1880
1881# This was DEC's vt320. Use the purpose-built one below instead
1882#vt320|DEC VT320 in vt100 emulation mode,
1883# use=vt220,
1884
1885#
1886# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam.
1887#
1888vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode:\
1889 :am@:\
1890 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220:
1891
1892# These entries are not DEC's official ones, they were purpose-built for the
1893# VT320. Here are the designer's notes:
1894# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to
1895# 'Erase to End of Field'... since nothing seems to use 'end' anyways...
1896# khome is Home on a PC kbd. Actually 'FIND' on a VT.
1897# Things that use <knxt> usually use tab anyways... and things that don't use
1898# tab usually use <knxt> instead...
1899# kprv is same as tab - Backtab is useless...
1900# I left out :sa: because of its RIDICULOUS complexity,
1901# and the resulting fact that it causes the termcap translation of the entry
1902# to SMASH the 1k-barrier...
1903# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
1904# (vt320: uncommented :fs: --esr)
1905# (untranslatable capabilities removed to fit entry within 1023 bytes)
1906# (sgr removed to fit entry within 1023 bytes)
1907# (acsc removed to fit entry within 1023 bytes)
1908# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
1909vt320|vt300|dec vt320 7 bit terminal:\
1910 :am:es:hs:mi:ms:xn:\
1911 :co#80:li#24:ws#80:\
1912 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
1913 :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
1914 :RI=\E[%dC:UP=\E[%dA:ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:\
1915 :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
1916 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
1917 :ei=\E[4l:fs=\E[0$}:ho=\E[H:im=\E[4h:\
1918 :is=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
1919 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
1920 :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
1921 :kb=\177:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:\
1922 :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\
1923 :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:\
1924 :rs=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
1925 :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
1926 :ts=\E[1$}\E[H\E[K:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:\
1927 :vi=\E[?25l:
1928vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy:\
1929 :am@:\
1930 :is=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\
1931 :rs=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\
1932 :tc=vt320:
1933# We have to init 132-col mode, not 80-col mode.
1934vt320-w|vt300-w|dec vt320 wide 7 bit terminal:\
1935 :co#132:ws#132:\
1936 :is=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
1937 :rs=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
1938 :tc=vt320:
1939vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am:\
1940 :am@:\
1941 :is=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\
1942 :rs=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\
1943 :tc=vt320-w:
1944
1945# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals
1946# which are pretty much a superset of the VT320. They have the
1947# host writable status line, yet another different DRCS matrix size,
1948# and such, but they add the DEC Technical character set, Multiple text
1949# pages, selectable length pages, and the like. The difference between
1950# the vt330 and vt340 is that the latter has only 2 planes and a monochrome
1951# monitor, the former has 4 planes and a color monitor. These terminals
1952# support VT131 and ANSI block mode, but as with much of these things,
1953# termcap/terminfo doesn't deal with these features.
1954#
1955# Note that this entry is are set up in what was the standard way for GNU
1956# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
1957# keys were switched into application mode at the same time the numeric pad
1958# is switched into application mode. This changes the definitions of the
1959# arrow keys. Emacs v19 is smarter and mines its keys directly out of
1960# your termcap or terminfo entry,
1961#
1962# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
1963# (vt340: string capability "sb=\E[M" corrected to "sr";
1964# also, added <rmam>/<smam> based on the init string -- esr)
1965vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page:\
1966 :am:es:hs:mi:ms:xn:xo:\
1967 :co#80:it#8:li#24:vt#3:\
1968 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
1969 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
1970 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
1971 :ae=^O:al=\E[L:as=^N:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
1972 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
1973 :dl=\E[M:do=^J:ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:\
1974 :fs=\E[$}:ho=\E[H:im=\E[4h:\
1975 :is=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
1976 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
1977 :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
1978 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\
1979 :le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:\
1980 :r1=\E[?3l:rc=\E8:rf=/usr/share/tabset/vt300:sc=\E7:\
1981 :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
1982 :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\
1983 :vb=200\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
1984
1985# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
1986# (originally written with vt420 as its primary name, and usable for it).
1987#
1988# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple
1989# text pages and long text pages with selectable length of the vt340, along
1990# with left and right margins, rectangular area text copy, fill, and erase
1991# operations, selected region character attribute change operations,
1992# page memory and rectangle checksums, insert/delete column, reception
1993# macros, and other features too numerous to remember right now. TERMCAP
1994# can only take advantage of a few of these added features.
1995#
1996# Note that this entry is are set up in what was the standard way for GNU
1997# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
1998# keys were switched into application mode at the same time the numeric pad
1999# is switched into application mode. This changes the definitions of the
2000# arrow keys. Emacs v19 is smarter and mines its keys directly out of
2001# your termcap entry,
2002#
2003# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
2004# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:";
2005# also, added <rmam>/<smam> based on the init string -- esr)
2006vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap:\
2007 :am:es:hs:mi:ms:xn:xo:\
2008 :co#80:it#8:li#24:vt#3:\
2009 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
2010 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
2011 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
2012 :ae=^O:al=\E[L:as=^N:cd=10\E[J:ce=4\E[K:cl=10\E[H\E[J:\
2013 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
2014 :dl=\E[M:do=^J:ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:\
2015 :fs=\E[$}:ho=\E[H:ic=\E[@:im=\E[4h:\
2016 :is=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
2017 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
2018 :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
2019 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\
2020 :le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:\
2021 :r1=\E<\E[?3l\E[!p\E[?7h:rc=\E8:\
2022 :rf=/usr/share/tabset/vt300:sc=\E7:se=\E[27m:sf=\ED:\
2023 :so=\E[7m:sr=\EM:st=\EH:ta=^I:ts=\E[2$~\E[1$}\E[1;%dH:\
2024 :ue=\E[24m:up=\E[A:us=\E[4m:vb=200\E[?5h\E[?5l:\
2025 :ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
2026
2027# (vt420: I removed :k0:, it collided with <kf10>. I also restored
2028# a missing :sc: -- esr)
2029vt420|DEC VT420:\
2030 :am:mi:xn:xo:\
2031 :co#80:li#24:vt#3:\
2032 :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\
2033 :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
2034 :SA=\E[?7h:\
2035 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
2036 :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\
2037 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
2038 :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\
2039 :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\
2040 :im=\E[4h:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:\
2041 :k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\
2042 :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
2043 :kb=^H:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:\
2044 :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
2045 :r3=\E[?67h\E[64;1"p:rc=\E8:rf=/usr/share/tabset/vt300:\
2046 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>:\
2047 :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\
2048 :up=\E[A:us=\E[4m:
2049
2050#
2051# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
2052# takes two parameters, the key and the string. Translating the key is
2053# straightforward (keys 1-5 are not defined on real terminals, though some
2054# emulators define these):
2055#
2056# if (key < 16) then value = key;
2057# else if (key < 21) then value = key + 1;
2058# else if (key < 25) then value = key + 2;
2059# else if (key < 27) then value = key + 3;
2060# else if (key < 30) then value = key + 4;
2061# else value = key + 5;
2062#
2063# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT".
2064# There's no provision in terminfo for emitting a string in this format, so the
2065# application has to know it.
2066#
2067vt420pc|DEC VT420 w/PC keyboard:\
2068 :@7=\E[4~:F1=\E[23~:F2=\E[24~:F3=\E[11;2~:F4=\E[12;2~:\
2069 :F5=\E[13;2~:F6=\E[14;2~:F7=\E[15;2~:F8=\E[17;2~:\
2070 :F9=\E[18;2~:FA=\E[19;2~:FB=\E[20;2~:FC=\E[21;2~:\
2071 :FD=\E[23;2~:FE=\E[24;2~:FF=\E[23~:FG=\E[24~:FH=\E[25~:\
2072 :FI=\E[26~:FJ=\E[28~:FK=\E[29~:FL=\E[31~:FM=\E[32~:\
2073 :FN=\E[33~:FO=\E[34~:FP=\E[35~:FQ=\E[36~:FR=\E[23;2~:\
2074 :FS=\E[24;2~:FT=\E[25;2~:FU=\E[26;2~:FV=\E[28;2~:\
2075 :FW=\E[29;2~:FX=\E[31;2~:FY=\E[32;2~:FZ=\E[33;2~:\
2076 :Fa=\E[34;2~:Fb=\E[35;2~:Fc=\E[36;2~:\
2077 :S6=USR_TERM\:vt420pcdos\::k1=\E[11~:k2=\E[12~:\
2078 :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:k7=\E[18~:\
2079 :k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\177:kh=\E[H:\
2080 :..px=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\:\
2081 :tc=vt420:
2082
2083vt420pcdos|DEC VT420 w/PC for DOS Merge:\
2084 :li#25:\
2085 :..S1=%?%p1%{19}%=%t\E\023\021%e%p1%{32}%<%t\E%p1%c%e%p1%{127}%=%t\E\177%e%p1%c%;:\
2086 :S4=\E[?1;2r\E[34h:\
2087 :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:S6@:\
2088 :me=\E[m:sa@:tc=vt420pc:
2089
2090vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys:\
2091 :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
2092 :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\
2093 :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
2094 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
2095 :kD=\177:kh=\E[H:l1=\EOP:l2=\EOQ:l3=\EOR:l4=\EOS:tc=vt420:
2096
2097vt510|DEC VT510:\
2098 :tc=vt420:
2099vt510pc|DEC VT510 w/PC keyboard:\
2100 :tc=vt420pc:
2101vt510pcdos|DEC VT510 w/PC for DOS Merge:\
2102 :tc=vt420pcdos:
2103
2104# VT520/VT525
2105#
2106# The VT520 is a monochrome text terminal capable of managing up to
2107# four independent sessions in the terminal. It has multiple ANSI
2108# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console)
2109# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950,
2110# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only.
2111#
2112# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or
2113# [Alt]/[Print Screen] depending upon which keyboard and which
2114# terminal mode is being used. If Set-Up has been disabled or
2115# assigned to an unknown key, Set-Up may be entered by pressing
2116# [F3] as the first key after power up, regardless of keyboard type.
2117# (vt520: I added <rmam>/<smam> based on the init string, also :sc: -- esr)
2118vt520|DEC VT520:\
2119 :am:mi:xn:xo:\
2120 :co#80:li#24:vt#3:\
2121 :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\
2122 :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
2123 :SA=\E[?7h:\
2124 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
2125 :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\
2126 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
2127 :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\
2128 :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\
2129 :im=\E[4h:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:\
2130 :k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\
2131 :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
2132 :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
2133 :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
2134 :..px=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\:\
2135 :r3=\E[?67h\E[64;1"p:rc=\E8:rf=/usr/share/tabset/vt300:\
2136 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>:\
2137 :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\
2138 :up=\E[A:us=\E[4m:
2139
2140# (vt525: I added <rmam>/<smam> based on the init string;
2141# removed :se:=\E[m, :ue:=\E[m, added :sc: -- esr)
2142vt525|DEC VT525:\
2143 :am:mi:xn:xo:\
2144 :co#80:li#24:vt#3:\
2145 :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\
2146 :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
2147 :SA=\E[?7h:\
2148 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
2149 :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\
2150 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
2151 :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\
2152 :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\
2153 :im=\E[4h:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:\
2154 :k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\
2155 :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
2156 :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
2157 :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
2158 :..px=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\:\
2159 :r3=\E[?67h\E[64;1"p:rc=\E8:rf=/usr/share/tabset/vt300:\
2160 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>:\
2161 :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\
2162 :up=\E[A:us=\E[4m:
2163
2164#### VT100 emulations
2165#
2166
2167# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows
2168# (the best Windows telnet as of September 1995) presents the name `dec-vt100'
2169# to telnetd. Michael Deutschmann <ldeutsch@mail.netshop.net> informs us
2170# that this works best with a stock vt100 entry.
2171dec-vt100|EWAN telnet's vt100 emulation:\
2172 :tc=vt100:
2173
2174# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996
2175dec-vt220|DOS tnvt200 terminal emulator:\
2176 :am@:tc=vt220:
2177
2178# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to
2179# anyone who needs PC VT340 emulation. (or anything below that level, for
2180# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's
2181# RDBM systems, it includes ReGIS and SiXel support! I'm impressed...
2182# I can send the address if requested.
2183# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr)
2184# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
2185z340|zstem vt340 terminal emulator 132col 42line:\
2186 :li#42:\
2187 :is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H:\
2188 :rs=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H:\
2189 :tc=vt320-w:
2190z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins):\
2191 :am@:\
2192 :is=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H:\
2193 :rs=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H:\
2194 :tc=z340:
2195
2196# CRT is shareware. It implements some xterm features, including mouse.
2197crt|crt-vt220|CRT 2.3 emulating VT220:\
2198 :ms:ut:\
2199 :NC@:\
2200 :st=\EH:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:\
2201 :tc=vt220:tc=ecma+color:
2202
2203# PuTTY 0.58 (released 05 April 2005)
2204# http://www.chiark.greenend.org.uk/~sgtatham/putty/
2205#
2206# This emulates vt100 + vt52 (plus a few vt220 features: ech, SRM, DECTCEM, as
2207# well as SCO and Atari, color palettes from Linux console). Reading the code,
2208# it is intended to be VT102 plus selected features By default, it sets $TERM
2209# to xterm, which is incorrect, since several features are misimplemented:
2210#
2211# Alt+key always sends ESC+key, so 'km' capability is removed.
2212#
2213# Control responses, wrapping and tabs are buggy, failing a couple of
2214# screens in vttest.
2215#
2216# xterm mouse support is not implemented (unrelease version may).
2217#
2218# Several features such as backspace/delete are optional; this entry documents
2219# the default behavior -TD
2220# (untranslatable capabilities removed to fit entry within 1023 bytes)
2221# (sgr removed to fit entry within 1023 bytes)
2222# (acsc removed to fit entry within 1023 bytes)
2223# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
2224putty|xterm clone (win32):\
2225 :am:bw:km:mi:ms:xn:\
2226 :co#80:it#8:li#24:\
2227 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
2228 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
2229 :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
2230 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
2231 :ei=\E[4l:ho=\E[H:im=\E[4h:\
2232 :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:\
2233 :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
2234 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\
2235 :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:\
2236 :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\
2237 :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:\
2238 :rs=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>:sc=\E7:\
2239 :se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
2240 :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[24m:up=\E[A:\
2241 :us=\E[4m:ve=\E[?25h:vi=\E[?25l:
2242
2243# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
2244# T. Teranishi dated Mar 10, 1998. It is a free software terminal emulator
2245# (communication program) which supports:
2246#
2247# - Serial port connections.
2248# - TCP/IP (telnet) connections.
2249# - VT100 emulation, and selected VT200/300 emulation.
2250# - TEK4010 emulation.
2251# - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and
2252# Quick-VAN).
2253# - Scripts using the "Tera Term Language".
2254# - Japanese and Russian character sets.
2255#
2256# The program does not come with terminfo or termcap entries. However, the
2257# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no
2258# vt52 or doublesize character support; blinking is done with color). Besides
2259# the HPA, VPA extensions it also implements CPL and CNL.
2260#
2261# All of the function keys can be remapped. This description shows the default
2262# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys
2263# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad
2264# is laid out like vt220, rather than the face codes on the PC keyboard, i.e,
2265# kfnd Insert
2266# kslt Delete
2267# kich1 Home
2268# kdch1 PageUp
2269# kpp End
2270# knp PageDown
2271#
2272# ANSI colors are implemented, but cannot be combined with video attributes
2273# except for reverse.
2274#
2275# No fonts are supplied with the program, so the acsc string is chosen to
2276# correspond with the default Microsoft terminal font.
2277#
2278# Tera Term recognizes some xterm sequences, including those for setting and
2279# retrieving the window title, and for setting the window size (i.e., using
2280# "resize -s"), though it does not pass SIGWINCH to the application if the
2281# user resizes the window with the mouse.
2282teraterm|Tera Term Pro:\
2283 :km:xo@:\
2284 :NC#43:vt@:\
2285 :*6=\E[4~:@0=\E[1~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
2286 :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
2287 :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\
2288 :ac=+\020,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\
2289 :al=\E[L:cb=\E[1K:cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\E[H\E[J:\
2290 :cm=\E[%i%d;%dH:cv=\E[%i%dd:dc=\E[P:dl=\E[M:ec=\E[%dX:\
2291 :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
2292 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
2293 :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:mb=\E[5m:md=\E[1m:\
2294 :me=\E[m:mr=\E[7m:nd=\E[C:op=\E[100m:se=\E[27m:so=\E[7m:\
2295 :sr=\EM:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:\
2296 :ue=\E[24m:up=\E[A:us=\E[4m:vb=200\E[?5h\E[?5l:\
2297 :ve=\E[?25h:vi=\E[?25l:tc=klone+color:tc=vt100:
2298
2299# Tested with WinNT 4.0, the telnet application assumes the screensize is
2300# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters.
2301#
2302# Other notes:
2303# a) Fails tack's cup (cursor-addressing) test, though cup works well enough
2304# for casual (occasional) use. Also fails several of the vttest screens,
2305# but that is not unusual for vt100 "emulators".
2306# b) Does not implement vt100 keypad
2307# c) Recognizes a subset of vt52 controls.
2308ms-vt100|MS telnet imitating dec vt100:\
2309 :li#25:\
2310 :@8@:K1@:K2@:K3@:K4@:K5@:\
2311 :ac=+\020,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\
2312 :ct@:k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:k;@:u6=\E[%i%d;%dR:\
2313 :u7=\E[6n:u8=\E[?6c:u9=\E[c:tc=vt100:
2314
2315# Tested with Windows 2000, the telnet application runs in a console window,
2316# also using 'Terminal' font.
2317#
2318# Other notes:
2319# a) This version has no function keys or numeric keypad. Unlike the older
2320# version, the numeric keypad is entirely ignored.
2321# b) The program sets $TERM to "ansi", which of course is inaccurate.
2322ms-vt100-color|windows 2000 ansi (sic):\
2323 :ut:\
2324 :DC=\E[%dP:IC=\E[%d@:ei=:im=:tc=ecma+color:tc=ms-vt100:
2325
2326#### X terminal emulators
2327#
2328# You can add the following line to your .Xdefaults to change the terminal type
2329# set by the xterms you start up to my-xterm:
2330#
2331# *termName: my-xterm
2332#
2333# System administrators can change the default entry for xterm instances
2334# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm. In either
2335# case, xterm will detect and reject an invalid terminal type, falling back
2336# to the default of xterm.
2337#
2338
2339# X10/6.6 11/7/86, minus alternate screen, plus (csr)
2340# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
2341# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
2342# as these seem not to work -- esr)
2343x10term|vs100-x10|xterm terminal emulator (X10 window system):\
2344 :am:bs:km:mi:ms:xn:xo:\
2345 :co#80:it#8:li#65:\
2346 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\
2347 :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\
2348 :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\
2349 :im=\E[4h:is=\E\E[m\E[?7h\E[?1;4l:k1=\EOP:k2=\EOQ:\
2350 :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
2351 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:me=\E[m:\
2352 :mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\
2353 :ue=\E[m:up=\E[A:us=\E[4m:
2354# Compatible with the R5 xterm
2355# (from the XFree86 3.2 distribution, <blink=@> removed)
2356# added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD
2357# corrected typos in rs2 string - TD
2358# added u6-u9 -TD
2359xterm-r5|xterm R5 version:\
2360 :am:bs:km:ms:xn:\
2361 :co#80:it#8:li#24:\
2362 :@7=\E[4~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\
2363 :F1=\E[23~:F2=\E[24~:IC=\E[%d@:Km=\E[M:LE=\E[%dD:\
2364 :RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\
2365 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
2366 :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:\
2367 :im=\E[4h:k0=\EOq:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\
2368 :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
2369 :k;=\E[21~:kA=\E[30~:kD=\E[3~:kE=\E[8~:kI=\E[2~:kL=\E[31~:\
2370 :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:\
2371 :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:\
2372 :me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:\
2373 :rs=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H:\
2374 :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\
2375 :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
2376 :u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:ue=\E[m:\
2377 :up=\E[A:us=\E[4m:
2378# Compatible with the R6 xterm
2379# (from XFree86 3.2 distribution, <acsc> and :it: added, <blink@> removed)
2380# added khome/kend, hts based on the R6 xterm code - TD
2381# (khome/kend do not actually work in X11R5 or X11R6, but many people use this
2382# for compatibility with other emulators).
2383# (untranslatable capabilities removed to fit entry within 1023 bytes)
2384# (sgr removed to fit entry within 1023 bytes)
2385# (acsc removed to fit entry within 1023 bytes)
2386xterm-r6|xterm-old|xterm X11R6 version:\
2387 :am:bs:km:mi:ms:xn:\
2388 :co#80:it#8:li#24:\
2389 :*6=\E[4~:@0=\E[1~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
2390 :DO=\E[%dB:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\
2391 :F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\
2392 :FA=\E[34~:Km=\E[M:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:\
2393 :al=\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
2394 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
2395 :dl=\E[M:do=^J:eA=\E)0:ei=\E[4l:ho=\E[H:im=\E[4h:\
2396 :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:\
2397 :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
2398 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
2399 :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:\
2400 :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
2401 :md=\E[1m:me=\E[m:ml=\El:mr=\E[7m:mu=\Em:nd=\E[C:rc=\E8:\
2402 :rs=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>:sc=\E7:\
2403 :se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
2404 :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:u6=\E[%i%d;%dR:\
2405 :u7=\E[6n:u8=\E[?1;2c:u9=\E[c:ue=\E[m:up=\E[A:us=\E[4m:
2406# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
2407# The name has been changed and some aliases have been removed.
2408# (untranslatable capabilities removed to fit entry within 1023 bytes)
2409# (sgr removed to fit entry within 1023 bytes)
2410# (acsc removed to fit entry within 1023 bytes)
2411# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
2412xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System):\
2413 :am:bs:km:mi:ms:xn:\
2414 :co#80:it#8:li#24:\
2415 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
2416 :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\
2417 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
2418 :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
2419 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
2420 :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:\
2421 :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:\
2422 :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
2423 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\177:kI=\E[2~:\
2424 :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\EOH:\
2425 :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:\
2426 :me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\
2427 :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[2J\E[?47l\E8:\
2428 :ti=\E7\E[?47h:ue=\E[24m:up=\E[A:us=\E[4m:\
2429 :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:tc=ecma+color:
2430
2431# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
2432# codes for F1-F4 except while in VT220 mode.
2433xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System):\
2434 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:tc=xterm-xf86-v32:
2435
2436# This version was released in XFree86 3.3.3 (November 1998).
2437# Besides providing printer support, it exploits a new feature that allows
2438# xterm to use terminfo-based descriptions with the titeInhibit resource.
2439# -- the distribution contained incorrect khome/kend values -TD
2440xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System):\
2441 :5i:\
2442 :*6@:@0@:ei=:ic@:im=:is=\E[!p\E[?3;4l\E[4l\E>:kD=\E[3~:\
2443 :mb=\E[5m:mk=\E[8m:pf=\E[4i:po=\E[5i:ps=\E[i:r1=\Ec:\
2444 :r2=\E[!p\E[?3;4l\E[4l\E>:\
2445 :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\
2446 :te=\E[?1047l\E[?1048l:ti=\E[?1048h\E[?1047h:\
2447 :tc=xterm-xf86-v33:
2448
2449# This version was released in XFree86 4.0.
2450xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System):\
2451 :NP:\
2452 :#2=\EO5H:#3=\E[2;5~:#4=\EO5D:%c=\E[6;5~:%e=\E[5;5~:\
2453 :%i=\EO5C:*4=\E[3;5~:*7=\EO5F:@7=\EOF:F3=\EO2P:F4=\EO2Q:\
2454 :F5=\EO2R:F6=\EO2S:F7=\E[15;2~:F8=\E[17;2~:F9=\E[18;2~:\
2455 :FA=\E[19;2~:FB=\E[20;2~:FC=\E[21;2~:FD=\E[23;2~:\
2456 :FE=\E[24;2~:FF=\EO5P:FG=\EO5Q:FH=\EO5R:FI=\EO5S:\
2457 :FJ=\E[15;5~:FK=\E[17;5~:FL=\E[18;5~:FM=\E[19;5~:\
2458 :FN=\E[20;5~:FO=\E[21;5~:FP=\E[23;5~:FQ=\E[24;5~:\
2459 :FR=\EO6P:FS=\EO6Q:FT=\EO6R:FU=\EO6S:FV=\E[15;6~:\
2460 :FW=\E[17;6~:FX=\E[18;6~:FY=\E[19;6~:FZ=\E[20;6~:\
2461 :Fa=\E[21;6~:Fb=\E[23;6~:Fc=\E[24;6~:K1@:K2=\EOE:K3@:K4@:\
2462 :K5@:kB=\E[Z:kD=\E[3~:kh=\EOH:\
2463 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
2464 :te=\E[?1049l:ti=\E[?1049h:tc=xterm-xf86-v333:
2465
2466xterm-xfree86|xterm-new|xterm terminal emulator (XFree86 4.0 Window System):\
2467 :NP:\
2468 :#2=\EO2H:#3=\E[2;2~:#4=\EO2D:%c=\E[6;2~:%e=\E[5;2~:\
2469 :%i=\EO2C:*4=\E[3;2~:*7=\EO2F:@7=\EOF:@8=\EOM:F1=\E[23~:\
2470 :F2=\E[24~:F3=\EO2P:F4=\EO2Q:F5=\EO2R:F6=\EO2S:\
2471 :F7=\E[15;2~:F8=\E[17;2~:F9=\E[18;2~:FA=\E[19;2~:\
2472 :FB=\E[20;2~:FC=\E[21;2~:FD=\E[23;2~:FE=\E[24;2~:\
2473 :FF=\EO5P:FG=\EO5Q:FH=\EO5R:FI=\EO5S:FJ=\E[15;5~:\
2474 :FK=\E[17;5~:FL=\E[18;5~:FM=\E[19;5~:FN=\E[20;5~:\
2475 :FO=\E[21;5~:FP=\E[23;5~:FQ=\E[24;5~:FR=\EO6P:FS=\EO6Q:\
2476 :FT=\EO6R:FU=\EO6S:FV=\E[15;6~:FW=\E[17;6~:FX=\E[18;6~:\
2477 :FY=\E[19;6~:FZ=\E[20;6~:Fa=\E[21;6~:Fb=\E[23;6~:\
2478 :Fc=\E[24;6~:K2=\EOE:Km=\E[M:k1=\EOP:k2=\EOQ:k3=\EOR:\
2479 :k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
2480 :k9=\E[20~:k;=\E[21~:kB=\E[Z:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
2481 :kd=\EOB:kh=\EOH:kl=\EOD:kr=\EOC:ku=\EOA:tc=xterm-basic:
2482#
2483# This chunk is used for building the VT220/Sun/PC keyboard variants.
2484# (untranslatable capabilities removed to fit entry within 1023 bytes)
2485xterm-basic|xterm terminal emulator - common (XFree86):\
2486 :5i:am:km:mi:ms:ut:xn:\
2487 :Co#8:co#80:it#8:li#24:pa#64:\
2488 :AB=\E[4%dm:AF=\E[3%dm:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
2489 :DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:\
2490 :SA=\E[?7h:UP=\E[%dA:\
2491 :ac=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
2492 :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:ce=\E[K:\
2493 :ch=\E[%i%dG:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
2494 :cs=\E[%i%d;%dr:ct=\E[3g:cv=\E[%i%dd:dc=\E[P:dl=\E[M:\
2495 :do=^J:eA=\E(B\E)0:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\
2496 :is=\E[!p\E[?3;4l\E[4l\E>:kD=\E[3~:kb=^H:ke=\E[?1l\E>:\
2497 :ks=\E[?1h\E=:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\
2498 :mk=\E[8m:ml=\El:mr=\E[7m:mu=\Em:nd=\E[C:op=\E[39;49m:\
2499 :pf=\E[4i:po=\E[5i:ps=\E[i:r1=\Ec:\
2500 :r2=\E[!p\E[?3;4l\E[4l\E>:rc=\E8:sc=\E7:se=\E[27m:sf=^J:\
2501 :so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[?1049l:ti=\E[?1049h:\
2502 :u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:ue=\E[24m:\
2503 :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:
2504
2505# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
2506xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1:\
2507 :se=\E[m:ue=\E[m:tc=xterm-xf86-v33:
2508
2509# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
2510xterm-16color|xterm with 16 colors like aixterm:\
2511 :Co#16:NC#32:pa#256:\
2512 :..AB=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm:\
2513 :..AF=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm:\
2514 :..Sb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m:\
2515 :..Sf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m:\
2516 :tc=xterm-xfree86:
2517
2518# These variants of XFree86 3.9.16 xterm are built as a configure option.
2519xterm-256color|xterm with 256 colors:\
2520 :cc:\
2521 :Co#256:NC#32:pa#256:\
2522 :AB=\E[48;5;%dm:AF=\E[38;5;%dm:\
2523 :..Ic=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\:\
2524 :Sb=\E[48;5;%dm:Sf=\E[38;5;%dm:tc=xterm-xfree86:
2525xterm-88color|xterm with 88 colors:\
2526 :Co#88:pa#88:tc=xterm-256color:
2527
2528# This is another variant, for XFree86 4.0 xterm (T.Dickey)
2529# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
2530# To use it, your decTerminalID resource must be set to 200 or above.
2531#
2532# HTS \E H \210
2533# RI \E M \215
2534# SS3 \E O \217
2535# CSI \E [ \233
2536#
2537# (untranslatable capabilities removed to fit entry within 1023 bytes)
2538# (sgr removed to fit entry within 1023 bytes)
2539# (acsc removed to fit entry within 1023 bytes)
2540# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
2541xterm-8bit|xterm terminal emulator 8-bit controls (X Window System):\
2542 :am:bs:km:mi:ms:xn:\
2543 :co#80:it#8:li#24:\
2544 :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\
2545 :K1=\217w:K2=\217y:K3=\217u:K4=\217q:K5=\217s:LE=\233%dD:\
2546 :RI=\233%dC:UP=\233%dA:ae=^O:al=\233L:as=^N:bl=^G:bt=\233Z:\
2547 :cd=\233J:ce=\233K:cl=\233H\2332J:cm=\233%i%d;%dH:cr=^M:\
2548 :cs=\233%i%d;%dr:ct=\2333g:dc=\233P:dl=\233M:do=^J:\
2549 :ec=\233%dX:ei=\2334l:ho=\233H:im=\2334h:\
2550 :is=\E7\E G\233r\233m\233?7h\233?1;3;4;6l\2334l\E8\E>:\
2551 :k1=\23311~:k2=\23312~:k3=\23313~:k4=\23314~:k5=\23315~:\
2552 :k6=\23317~:k7=\23318~:k8=\23319~:k9=\23320~:kD=\2333~:\
2553 :kI=\2332~:kN=\2336~:kP=\2335~:kb=^H:kd=\217B:\
2554 :ke=\233?1l\E>:kh=\2331~:kl=\217D:kr=\217C:ks=\233?1h\E=:\
2555 :ku=\217A:le=^H:mb=\2335m:md=\2331m:me=\233m^O:mr=\2337m:\
2556 :nd=\233C:rc=\E8:sc=\E7:se=\23327m:sf=^J:so=\2337m:sr=\215:\
2557 :st=\210:ta=^I:te=\233?1049l:ti=\233?1049h:ue=\23324m:\
2558 :up=\233A:us=\2334m:vb=\233?5h\233?5l:ve=\233?25h:\
2559 :vi=\233?25l:
2560
2561xterm-hp|XFree86 xterm with hpterm function keys:\
2562 :@7=\EF:k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:\
2563 :k8=\Ew:kC=\EJ:kD=\EP:kI=\EQ:kN=\ES:kP=\ET:kd=\EB:kh=\Eh:\
2564 :kl=\ED:kr=\EC:ku=\EA:tc=xterm-basic:
2565
2566xterm-sco|XFree86 xterm with SCO function keys:\
2567 :@7=\E[F:F1=\E[W:F2=\E[X:F3=\E[Y:F5=\E[a:F6=\E[b:F7=\E[c:\
2568 :F8=\E[d:F9=\E[e:FA=\E[f:FB=\E[g:FC=\E[h:FD=\E[i:FE=\E[j:\
2569 :FF=\E[k:FG=\E[l:FH=\E[m:FI=\E[n:FJ=\E[o:FK=\E[p:FL=\E[q:\
2570 :FM=\E[r:FN=\E[s:FO=\E[t:FP=\E[u:k1=\E[M:k2=\E[N:k3=\E[O:\
2571 :k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:k;=\E[V:\
2572 :kI=\E[L:kN=\E[G:kP=\E[I:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\
2573 :ku=\E[A:tc=xterm-basic:
2574
2575# The xterm-xfree86 description has all of the features, but is not completely
2576# compatible with vt220. If you are using a Sun or PC keyboard, set the
2577# sunKeyboard resource to true:
2578# + maps the editing keypad
2579# + interprets control-function-key as a second array of keys, so a
2580# 12-fkey keyboard can support vt220's 20-fkeys.
2581# + maps numeric keypad "+" to ",".
2582# + uses DEC-style control sequences for the application keypad.
2583#
2584xterm-vt220|XFree86 xterm emulating vt220:\
2585 :@1=\EOu:@7=\E[4~:@8=\EOM:F1=\E[23~:F2=\E[24~:F3=\E[25~:\
2586 :F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:\
2587 :F9=\E[33~:FA=\E[34~:K1=\EOw:K3=\EOy:K4=\EOq:K5=\EOs:\
2588 :Km=\E[M:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:\
2589 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
2590 :kB=\E[Z:kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\EOB:kh=\E[1~:\
2591 :kl=\EOD:kr=\EOC:ku=\EOA:tc=xterm-basic:
2592
2593xterm-vt52|XFree86 xterm emulating dec vt52:\
2594 :co#80:it#8:li#24:\
2595 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
2596 :ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\
2597 :cr=^M:do=\EB:ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:\
2598 :le=\ED:nd=\EC:nw=^M^J:sf=^J:sr=\EI:ta=^I:up=\EA:
2599
2600xterm-noapp|xterm with cursor keys in normal mode:\
2601 :kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:te@:ti@:\
2602 :tc=xterm:
2603
2604xterm-24|vs100|xterms|xterm terminal emulator (X Window System):\
2605 :li#24:tc=xterm-r6:
2606
2607# This is xterm for ncurses.
2608xterm|xterm terminal emulator (X Window System):\
2609 :tc=xterm-r6:
2610# use=xterm-xfree86,
2611
2612# These entries allow access to the X titlebar and icon name as a status line.
2613# Note that twm (and possibly window managers descended from it such as tvtwm,
2614# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
2615# with it.
2616xterm+sl|access X title line and icon name:\
2617 :hs:\
2618 :ws#40:\
2619 :ds=\E]0;\007:fs=^G:ts=\E]0;:tc=xterm:
2620xterm+sl-twm|access X title line (pacify twm-descended window managers):\
2621 :hs:\
2622 :ws#40:\
2623 :ds=\E]2;\007:fs=^G:ts=\E]2;:tc=xterm:
2624
2625#
2626# The following xterm variants don't depend on your base version
2627#
2628# xterm with bold instead of underline
2629xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold:\
2630 :so=\E[7m:us=\E[1m:tc=xterm:
2631# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
2632# (kterm should not invoke DEC Graphics as the alternate character set
2633# -- Kenji Rikitake)
2634# (proper setting of enacs, smacs, rmacs makes kterm to use DEC Graphics
2635# -- MATSUMOTO Shoji)
2636kterm|kterm kanji terminal emulator (X window system):\
2637 :es:hs:\
2638 :Km=\E[M:\
2639 :ac=++,,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
2640 :ae=\E(B:as=\E(0:cs=\E[%i%d;%dr:ds=\E[?H:eA=:fs=\E[?F:\
2641 :rc=\E8:sc=\E7:ts=\E[?E\E[?%i%dT:tc=xterm-r6:\
2642 :tc=ecma+color:
2643kterm-color|kterm-co|kterm with ANSI colors:\
2644 :NC@:tc=kterm:tc=ecma+color:
2645# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
2646xterm-nic|xterm with ich/ich1 suppressed for non-curses programs:\
2647 :IC@:ei=:ic@:im=:tc=xterm:
2648# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
2649xterm1|xterm terminal emulator ignoring the alternate screen buffer:\
2650 :te@:ti@:tc=xterm:
2651
2652# This describes the capabilities of color_xterm, an xterm variant from
2653# before ECMA-64 color support was folded into the main-line xterm release.
2654# This entry is straight from color_xterm's maintainer.
2655# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996
2656# The README's with the distribution also say that it supports SGR 21, 24, 25
2657# and 27, but they are not present in the terminfo or termcap.
2658# (untranslatable capabilities removed to fit entry within 1023 bytes)
2659color_xterm|cx|cx100|color_xterm color terminal emulator for X:\
2660 :am:bs:km:mi:ms:xn:\
2661 :NC@:co#80:it#8:li#65:\
2662 :@7=\E[8~:@8=\EOM:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\
2663 :F1=\E[23~:F2=\E[24~:IC=\E[%d@:K1=\EOw:K2=\EOu:K3=\EOy:\
2664 :K4=\EOq:K5=\EOs:Km=\E[M:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:\
2665 :SA=\E[?7h:UP=\E[%dA:\
2666 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
2667 :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
2668 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
2669 :dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=\E[4l:ho=\E[H:\
2670 :i1=\E[r\E[m\E[?7h\E[?4;6l\E[4l:im=\E[4h:k1=\E[11~:\
2671 :k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:\
2672 :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kI=\E[2~:\
2673 :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:kh=\E[7~:kl=\EOD:kr=\EOC:\
2674 :ku=\EOA:le=^H:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
2675 :r1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<:\
2676 :rc=\E8:sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\
2677 :te=\E>\E[?41;1r:ti=\E[?1;41s\E[?1;41h\E=:ue=\E[24m:\
2678 :up=\E[A:us=\E[4m:tc=ecma+color:
2679
2680# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of
2681# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support
2682# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This
2683# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except
2684# that each of those implements the home, end, delete keys differently.
2685#
2686# Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce
2687# colors; note that this is not compatible with the 5.2 version.
2688nxterm|xterm-color|generic color xterm:\
2689 :NC@:\
2690 :op=\E[m:tc=xterm-r6:tc=klone+color:
2691
2692# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
2693gnome-rh62|Gnome terminal:\
2694 :ut:\
2695 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kD=\177:tc=xterm-color:
2696
2697# GNOME Terminal 1.4.0.4 (Redhat 7.2)
2698#
2699# This implements a subset of vt102 with a random selection of features from
2700# other terminals such as color and function-keys.
2701#
2702# shift-f1 to shift-f10 are f11 to f20
2703#
2704# NumLock changes the application keypad to approximate vt100 keypad, except
2705# that there is no escape sequence matching comma (,).
2706#
2707# Other defects observed:
2708# vt100 LNM mode is not implemented.
2709# vt100 80/132 column mode is not implemented.
2710# vt100 DECALN is not implemented.
2711# vt100 DECSCNM mode is not implemented, so flash does not work.
2712# vt100 TBC (tab reset) is not implemented.
2713# xterm alternate screen controls do not restore cursor position properly
2714# it hangs in tack after running function-keys test.
2715gnome-rh72|GNOME Terminal:\
2716 :ut:\
2717 :RA=\E[?7l:SA=\E[?7h:ct@:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
2718 :kD=\E[3~:\
2719 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;:\
2720 :ve=\E[?25h:vi=\E[?25l:tc=xterm-color:
2721
2722gnome|GNOME Terminal:\
2723 :tc=gnome-rh72:
2724
2725# This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
2726# or not is debatable).
2727kvt|KDE terminal:\
2728 :km@:ut:\
2729 :@7=\E[F:kD=\177:kh=\E[H:tc=xterm-color:
2730
2731# Konsole 1.0.1
2732# (formerly known as kvt)
2733#
2734# This program hardcodes $TERM to 'xterm', which is not accurate. However, to
2735# simplify this entry (and point out why konsole isn't xterm), we base this on
2736# xterm-r6. The default keyboard appears to be 'linux'.
2737#
2738# Notes:
2739# a) konsole implements several features from XFree86 xterm, though none of
2740# that is documented - except of course in its source code - apparently
2741# because its implementors are unaccustomed to reading documentation - as
2742# evidenced by the sparse and poorly edited documentation distributed with
2743# konsole. Some features such as the 1049 private mode are recognized but
2744# incorrectly implemented as a duplicate of the 47 private mode.
2745# b) even with the "vt100 (historical)" keyboard setting, the numeric keypad
2746# sends PC-style escapes rather than vt100.
2747# c) fails vttest menu 3 (Test of character sets) because it does not properly
2748# parse some control sequences. Also fails vttest Primary Device Attributes
2749# by sending a bogus code (in the source it says it's supposed to be a
2750# vt220, which is doubly incorrect because it does not implement vt220
2751# control sequences except for a few special cases). Treat it as a
2752# mildly-broken vt102.
2753konsole-base|KDE console window:\
2754 :NP:km@:ut:\
2755 :*6@:@0@:@7@:F1@:F2@:F3@:F4@:F5@:F6@:F7@:F8@:F9@:FA@:RA=\E[?7l:\
2756 :SA=\E[?7h:bl@:ch=\E[%i%dG:cv=\E[%i%dd:ec=\E[%dX:k1@:k2@:\
2757 :k3@:k4@:k5@:k6@:k7@:k8@:k9@:k;@:kD@:kb@:kh@:mb=\E[5m:\
2758 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
2759 :se=\E[27m:ue=\E[24m:vb=\E[?5h\E[?5l:ve=\E[?25h:\
2760 :vi=\E[?25l:tc=ecma+color:tc=xterm-r6:
2761konsole-linux|KDE console window with linux keyboard:\
2762 :F1=\E[23~:F2=\E[24~:F3@:F4@:F5@:F6@:F7@:F8@:F9@:FA@:k1=\E[[A:\
2763 :k2=\E[[B:k3=\E[[C:k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:\
2764 :k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\E[3~:tc=konsole-base:
2765# KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather
2766# than testing the code.
2767konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm:\
2768 :@7=\E[4~:kh=\E[1~:tc=konsole-vt100:
2769# The value for kbs reflects local customization rather than the settings used
2770# for XFree86 xterm.
2771konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm:\
2772 :@7=\EOF:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kh=\EOH:\
2773 :tc=konsole-vt100:
2774# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
2775# it is still useful for deriving the other entries.
2776konsole-vt100|KDE console window with vt100 (sic) keyboard:\
2777 :@7=\E[F:F1=\E[23~:F2=\E[24~:F3@:F4@:F5@:F6@:F7@:F8@:F9@:FA@:\
2778 :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
2779 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
2780 :kD=\E[3~:kb=\177:kh=\E[H:tc=konsole-base:
2781konsole-vt420pc|KDE console window with vt420 pc keyboard:\
2782 :kD=\177:kb=^H:tc=konsole-vt100:
2783konsole-16color|klone of xterm-16color:\
2784 :Co#16:NC#32:pa#256:\
2785 :..AB=\E[%?%p1%{8}%<%t%p1%'('%+%e%p1%{92}%+%;%dm:\
2786 :..AF=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%'R'%+%;%dm:\
2787 :..Sb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m':\
2788 :..Sf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m':\
2789 :tc=konsole:
2790# make a default entry for konsole
2791konsole|KDE console window:\
2792 :tc=konsole-linux:
2793
2794# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
2795# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
2796# Notes:
2797# rxvt 2.21b uses
2798# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O,
2799# but some applications don't work with that.
2800# It also has an AIX extension
2801# box2=lqkxjmwuvtn,
2802# and
2803# ech=\E[%p1%dX,
2804# but the latter does not work correctly.
2805#
2806# The distributed terminfo says it implements hpa and vpa, but they are not
2807# implemented correctly, using relative rather than absolute positioning.
2808#
2809# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
2810# Since rxvt is not really compatible with xterm, it should be configured as
2811# "rxvt" (monochrome) and "rxvt-color".
2812# (untranslatable capabilities removed to fit entry within 1023 bytes)
2813# (sgr removed to fit entry within 1023 bytes)
2814# (acsc removed to fit entry within 1023 bytes)
2815# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
2816rxvt-basic|rxvt terminal base (X Window System):\
2817 :am:bs:eo:km:mi:ms:xn:xo:\
2818 :co#80:it#8:li#24:\
2819 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
2820 :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
2821 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
2822 :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
2823 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\
2824 :ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\
2825 :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
2826 :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
2827 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\
2828 :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:kh=\E[7~:\
2829 :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\
2830 :me=\E[0m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\
2831 :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[2J\E[?47l\E8:\
2832 :ti=\E7\E[?47h:ue=\E[24m:up=\E[A:us=\E[4m:\
2833 :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:
2834rxvt|rxvt terminal emulator (X Window System):\
2835 :NC@:\
2836 :me=\E[m\017:tc=rxvt-basic:tc=ecma+color:
2837
2838# From: Michael Jennings <mej@valinux.com>
2839# removed kf0 which conflicts with kf10 -TD
2840# remove cvvis which conflicts with cnorm -TD
2841# (untranslatable capabilities removed to fit entry within 1023 bytes)
2842# (sgr removed to fit entry within 1023 bytes)
2843# (acsc removed to fit entry within 1023 bytes)
2844# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
2845Eterm|Eterm-color|Eterm with xterm-style color support (X Window System):\
2846 :am:bw:eo:km:mi:ms:xn:xo:\
2847 :co#80:it#8:li#24:lm#0:\
2848 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
2849 :K1=\E[7~:K2=\EOu:K3=\E[5~:K4=\E[8~:K5=\E[6~:LE=\E[%dD:\
2850 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
2851 :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
2852 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:\
2853 :ec=\E[%dX:ei=\E[4l:ho=\E[H:i1=\E[?47l\E>\E[?1l:ic=\E[@:\
2854 :im=\E[4h:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
2855 :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
2856 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\
2857 :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=:kh=\E[7~:\
2858 :kl=\E[D:kr=\E[C:ks=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\
2859 :me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\
2860 :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[2J\E[?47l\E8:\
2861 :ti=\E7\E[?47h:ue=\E[24m:up=\E[A:us=\E[4m:\
2862 :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:tc=ecma+color:
2863
2864# These (xtermc and xtermm) are distributed with Solaris. They refer to a
2865# variant of xterm which is apparently no longer supported, but are interesting
2866# because they illustrate SVr4 curses mouse controls - T.Dickey
2867# (untranslatable capabilities removed to fit entry within 1023 bytes)
2868xtermm|xterm terminal emulator (monocrome):\
2869 :am:bs:km:mi:ms:xn:\
2870 :BT#3:co#80:it#8:li#24:\
2871 :@7=\E[Y:@8=\EOM:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\
2872 :F1=\EOZ:F2=\EOA:Gm=\E[%dY:IC=\E[%d@:K1=\EOq:K2=\EOr:\
2873 :K3=\EOs:K4=\EOp:K5=\EOn:Km=\E[^_:LE=\E[%dD:RI=\E[%dC:\
2874 :RQ=\E[492Z:UP=\E[%dA:\
2875 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
2876 :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
2877 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
2878 :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\
2879 :ic=\E[@:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
2880 :k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:k;=\EOY:kN=\E[U:\
2881 :kP=\E[V:kb=^H:kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:ku=\EOA:\
2882 :le=\E[1D:mb@:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:\
2883 :r1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H:\
2884 :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\
2885 :se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E@0\E[?4r:\
2886 :ti=\E@0\E[?4s\E[?4h\E@1:up=\E[A:
2887
2888xtermc|xterm terminal emulator (color):\
2889 :Co#8:NC#7:pa#64:\
2890 :AB=\E[4%dm:AF=\E[3%dm:\
2891 :..Sb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m:\
2892 :..Sf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m:\
2893 :op=\E[100m:tc=xtermm:
2894
2895# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
2896# Here's a termcap entry I've been using for xterm_color, which comes
2897# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
2898# color stuff, I also have a status line defined as the window manager
2899# title bar. [I have translated it to terminfo -- ESR]
2900xterm-pcolor|xterm with color used for highlights and status line:\
2901 :md=\E[1m\E[43m:mr=\E[7m\E[34m:so=\E[7m\E[31m:\
2902 :us=\E[4m\E[42m:tc=xterm+sl:tc=xterm-r6:
2903
2904# HP ships this, except for the pb#9600 which was merged in from BSD termcap.
2905# (hpterm: added empty <acsc>, we have no idea what ACS chars look like --esr)
2906hpterm|X-hpterm|hp X11 terminal emulator:\
2907 :am:da:db:mi:xs:\
2908 :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:pb#9600:sg#0:ug#0:\
2909 :LF=\E&j@:LO=\E&jB:ac=:ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:\
2910 :cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:\
2911 :cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:\
2912 :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:\
2913 :kA=\EL:kC=\EJ:kD=\EP:kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:\
2914 :kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:\
2915 :kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:\
2916 :ku=\EA:le=^H:md=\E&dB:me=\E&d@:mh=\E&dH:ml=\El:mr=\E&dB:\
2917 :mu=\Em:nd=\EC:..pk=\E&f%p1%dk%p2%l%dL%p2%s:\
2918 :..pl=\E&f1a%p1%dk%p2%l%dL%p2%s:\
2919 :..pn=\E&f%p1%dk%p2%l%dd0L%p2%s:\
2920 :..px=\E&f2a%p1%dk%p2%l%dL%p2%s:\
2921 :..sa=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;:\
2922 :se=\E&d@:sf=^J:so=\E&dJ:sr=\ET:st=\E1:ta=^I:ue=\E&d@:\
2923 :up=\EA:us=\E&dD:
2924
2925# This entry describes an xterm with Sun-style function keys enabled
2926# via the X resource setting "xterm*sunFunctionKeys:true"
2927# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
2928# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
2929# because we want it to be seen as <kcpy>.
2930# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
2931# with their Sun keyboard labels instead.
2932# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
2933xterm-sun|xterm with sunFunctionKeys true:\
2934 :%1=\E[196z:&8=\E[195z:@0=\E[200z:@5=\E[197z:@7=\E[220z:\
2935 :F1=\E[192z:F2=\E[193z:F3=\E[194z:F4=\E[195z:F5=\E[196z:\
2936 :F7=\E[198z:F8=\E[199z:F9=\E[200z:FA=\E[201z:FL=\E[208z:\
2937 :FM=\E[209z:FN=\E[210z:FO=\E[211z:FP=\E[212z:FQ=\E[213z:\
2938 :FS=\E[215z:FU=\E[217z:FW=\E[219z:FY=\E[221z:K2=\E[218z:\
2939 :k1=\E[224z:k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:\
2940 :k6=\E[229z:k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:\
2941 :kI=\E[2z:kN=\E[222z:kP=\E[216z:kh=\E[214z:tc=xterm:
2942xterms-sun|small (80x24) xterm with sunFunctionKeys true:\
2943 :co#80:li#24:tc=xterm-sun:
2944
2945# This is for the extensible terminal emulator on the X11R6 contrib tape.
2946emu|emu native mode:\
2947 :mi:ms:xo:\
2948 :Co#15:co#80:it#8:li#24:pa#64:vt#200:\
2949 :*6=\Esel:@0=\Efind:@8=^M:AB=\Es%i%d;:AF=\Er%i%d;:\
2950 :AL=\EQ%d;:DC=\EI%d;:DL=\ER%d;:DO=\Ep%d;:F1=\EF11:\
2951 :F2=\EF12:F3=\EF13:F4=\EF14:F5=\EF15:F6=\EF16:F7=\EF17:\
2952 :F8=\EF18:F9=\EF19:FA=\EF20:LE=\Eq-%d;:RI=\Eq%d;:\
2953 :UP=\Ep-%d;:\
2954 :ac=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244:\
2955 :ae=\0:al=\EQ1;:as=\0:bl=^G:cb=\EL:cd=\EN:ce=\EK:\
2956 :cl=\EP\EE0;0;:cm=\EE%d;%d;:cr=^M:cs=\Ek%d;%d;:ct=\Ej:\
2957 :dc=\EI1;:dl=\ER1;:do=\EB:eA=\0:ec=\Ej%d;:ei=\EX:\
2958 :ho=\EE0;0;:im=\EY:is=\ES\Er0;\Es0;:k0=\EF00:k1=\EF01:\
2959 :k2=\EF02:k3=\EF03:k4=\EF04:k5=\EF05:k6=\EF06:k7=\EF07:\
2960 :k8=\EF08:k9=\EF09:k;=\EF10:kD=\177:kI=\Eins:kN=\Enext:\
2961 :kP=\Eprior:kb=^H:kd=\EB:kl=\EC:kr=\ED:ku=\EA:le=^H:\
2962 :mb=\ES\EW:md=\ES\EU:me=\ES:mr=\ES\ET:nd=\ED:\
2963 :oc=\Es0;\Er0;:rs=\ES\Es0;\Er0;:se=\ES:sf=\EG:so=\ES\ET:\
2964 :sr=\EF:st=\Eh:ta=^I:ue=\ES:up=\EA:us=\ES\EV:ve=\Ea:vi=\EZ:
2965
2966#### MGR
2967#
2968# MGR is a Bell Labs window system lighter-weight than X.
2969# These entries describe MGR's xterm-equivalent.
2970# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997
2971#
2972
2973mgr|Bellcore MGR (non X) window system terminal emulation:\
2974 :am:km:\
2975 :AL=\E%da:DC=\E%dE:DL=\E%dd:IC=\E%dA:RA=\E5S:SA=\E5s:\
2976 :al=\Ea:bl=^G:cd=\EC:ce=\Ec:cl=^L:cm=\E%r%d;%dM:cr=^M:\
2977 :cs=\E%d;%dt:dc=\EE:dl=\Ed:do=\Ef:ei=:hd=\E1;2f:hu=\E1;2u:\
2978 :ic=\EA:im=:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
2979 :md=\E2n:me=\E0n:mr=\E1n:nd=\Er:nw=^M^J:se=\E0n:sf=^J:\
2980 :so=\E1n:ta=^I:ue=\E0n:up=\Eu:us=\E4n:ve=\Eh:vi=\E9h:\
2981 :vs=\E0h:
2982mgr-sun|Mgr window with Sun keyboard:\
2983 :%1=\E[207z:%6=\E[198z:&8=\E[195z:@0=\E[200z:@5=\E[197z:\
2984 :@7=\E[220z:@8=\E[250z:F1=\E[234z:F2=\E[235z:K1=\E[214z:\
2985 :K2=\E[218z:K3=\E[216z:K4=\E[220z:K5=\E[222z:k1=\E[224z:\
2986 :k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:k6=\E[229z:\
2987 :k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:kN=\E[222z:\
2988 :kP=\E[216z:kh=\E[214z:tc=mgr:
2989mgr-linux|Mgr window with Linux keyboard:\
2990 :@7=\E[4~:F1=\E[23~:F2=\E[24~:K1=\E[H:K2=\E[G:K3=\E[5~:\
2991 :K4=\E[Y:K5=\E[6~:k0=\E[[J:k1=\E[[A:k2=\E[[B:k3=\E[[C:\
2992 :k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
2993 :k9=\E[20~:k;=\E[21~:kD=\E[3~:kN=\E[6~:kP=\E[5~:kh=\E[1~:\
2994 :tc=mgr:
2995
2996######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
2997#
2998
2999# Columbus UNIX virtual terminal. This terminal also appears in
3000# UNIX 4.0 and successors as line discipline 1 (?), but is
3001# undocumented and does not really work quite right.
3002cbunix|cb unix virtual terminal:\
3003 :am:bs:da:db:\
3004 :co#80:li#24:lm#0:\
3005 :al=\EP:bl=^G:cd=\EL:ce=\EK:cl=\EL:cm=\EG%r%.%.:cr=^M:\
3006 :dc=\EM:dl=\EN:do=^J:ei=:ic=\EO:im=:kd=\EB:kh=\EE:kl=\ED:\
3007 :kr=\EC:ku=\EA:le=^H:nd=\EC:se=\Eb^D:sf=^J:so=\Ea^D:\
3008 :ue=\Eb^A:up=\EA:us=\Ea^A:
3009# (vremote: removed obsolete ":nl@:" -- esr)
3010vremote|virtual remote terminal:\
3011 :am@:\
3012 :co#79:tc=cbunix:
3013
3014pty|4bsd pseudo teletype:\
3015 :cm=\EG%+ %+ :se=\Eb$:so=\Ea$:ue=\Eb!:us=\Ea!:tc=cbunix:
3016
3017# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
3018eterm|gnu emacs term.el terminal emulation:\
3019 :am:mi:xn:\
3020 :co#80:li#24:\
3021 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
3022 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cb=\E[1K:\
3023 :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
3024 :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\
3025 :im=\E[4h:le=^H:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:se=\E[m:\
3026 :sf=^J:so=\E[7m:ta=^I:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:\
3027 :ue=\E[m:up=\E[A:us=\E[4m:
3028
3029# Entries for use by the `screen' program by Juergen Weigert,
3030# Michael Schroeder, Oliver Laumann. The screen and
3031# screen-w entries came with version 3.7.1. The screen2 and screen3 entries
3032# come from University of Wisconsin and may be older.
3033# (screen: added :ve: on ANSI model -- esr)
3034#
3035# 'screen' defines extensions to termcap. Some are used in its terminal
3036# description:
3037# G0 (bool) Terminal can deal with ISO 2022 font selection sequences.
3038# AX (bool) Does understand ANSI set default fg/bg color
3039# (\E[39m / \E[49m).
3040# S0 (str) Switch charset 'G0' to the specified charset.
3041# E0 (str) Switch charset 'G0' back to standard charset.
3042#
3043# tested with screen 3.09.08
3044screen|VT 100/ANSI X3.64 virtual terminal:\
3045 :am:bs:km:mi:ms:pt:xn:G0:\
3046 :Co#8:co#80:it#8:li#24:pa#64:\
3047 :@7=\E[4~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\
3048 :F1=\E[23~:F2=\E[24~:IC=\E[%d@:Km=\E[M:LE=\E[%dD:\
3049 :RI=\E[%dC:UP=\E[%dA:\
3050 :ac=++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
3051 :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:ce=\E[K:\
3052 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
3053 :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=\E[4l:\
3054 :ho=\E[H:im=\E[4h:is=\E)0:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
3055 :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
3056 :k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:\
3057 :kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:\
3058 :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\
3059 :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:rs=\Ec:sc=\E7:se=\E[23m:\
3060 :sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\EM:\
3061 :us=\E[4m:vb=\Eg:ve=\E[34h\E[?25h:vi=\E[?25l:vs=\E[34l:\
3062 :E0=\E(B:S0=\E(%p1%c:tc=ecma+color:
3063
3064# Read the fine manpage:
3065# When screen tries to figure out a terminal name for
3066# itself, it first looks for an entry named "screen.<term>",
3067# where <term> is the contents of your $TERM variable. If
3068# no such entry exists, screen tries "screen" (or "screen-w"
3069# if the terminal is wide (132 cols or more)). If even this
3070# entry cannot be found, "vt100" is used as a substitute.
3071#
3072# Here are a few customized entries which are useful -TD
3073#
3074# Notes:
3075# (a) screen does not support invis.
3076# (b) screen's implementation of bw is incorrect according to tack.
3077# (c) screen appears to hardcode the strings for khome/kend, making it
3078# necessary to override the "use=" clause's values.
3079# (d) screen sets $TERMCAP to a termcap-formatted copy of the 'screen' entry,
3080# which is NOT the same as the terminfo screen.<term>.
3081# (e) when screen finds one of these customized entries, it sets $TERM to
3082# match. Hence, no "screen.xterm" entry is provided, since that would
3083# create heartburn for people running remote xterm's.
3084#
3085# xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV
3086# since the default translations override the built-in keycode
3087# translation. They are suppressed here to show what is tested by tack.
3088screen.xterm-xfree86|screen customized for XFree86 xterm:\
3089 :bw:ut@:\
3090 :#3@:%c@:%e@:@7=\E[4~:kh=\E[1~:mk@:ml@:mu@:\
3091 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
3092 :tc=xterm-xfree86:
3093# xterm-r6 does not really support khome/kend unless it is propped up by
3094# the translations resource.
3095screen.xterm-r6|screen customized for X11R6 xterm:\
3096 :bw:tc=xterm-r6:
3097# Color applications running in screen and TeraTerm do not play well together
3098# on Solaris.
3099screen.teraterm|disable ncv in teraterm:\
3100 :NC#127:tc=screen:
3101
3102screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols:\
3103 :co#132:tc=screen:
3104
3105screen2|old VT 100/ANSI X3.64 virtual terminal:\
3106 :co#80:it#8:li#24:\
3107 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
3108 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bt=\E[Z:cd=\E[J:\
3109 :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
3110 :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ic=:im=\E[4h:k0=\E~:\
3111 :k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:\
3112 :k9=\E0I:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:\
3113 :me=\E[m:nd=\E[C:nw=^M^J:r1=\Ec:rc=\E8:sc=\E7:se=\E[23m:\
3114 :sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:\
3115 :us=\E[4m:
3116# (screen3: removed unknown ":xv:LP:G0:" -- esr)
3117screen3|older VT 100/ANSI X3.64 virtual terminal:\
3118 :km:mi:ms:\
3119 :co#80:it#8:li#24:\
3120 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
3121 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:bt=\E[Z:\
3122 :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
3123 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\
3124 :ho=\E[H:im=\E[4h:is=\E)0:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
3125 :kb=^H:kd=\EOB:ke=\E>:kl=\EOD:kr=\EOC:ks=\E=:ku=\EOA:le=^H:\
3126 :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:r1=\Ec:\
3127 :rc=\E8:sc=\E7:se=\E[23m:sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:\
3128 :ue=\E[24m:up=\EM:us=\E[4m:
3129
3130# Francesco Potorti <F.Potorti@cnuce.cnr.it>:
3131# NCSA telnet is one of the most used telnet clients for the Macintosh. It has
3132# been maintained until recently by the National Center for Supercomputer
3133# Applications, and it is feature rich, stable and free. It can be downloaded
3134# from www.ncsa.edu. This terminfo description file is based on xterm-vt220,
3135# xterm+sl, and the docs at NCSA. It works well.
3136#
3137# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode
3138# The terminal options should be set as follows:
3139# Xterm sequences ON
3140# use VT wrap mode ON
3141# use Emacs arrow keys OFF
3142# CTRL-COMND is Emacs meta ON
3143# 8 bit mode ON
3144# answerback string: "ncsa-vt220-8"
3145# setup keys: all disabled
3146#
3147# Application mode is not used.
3148#
3149# Other special mappings:
3150# Apple VT220
3151# HELP Find
3152# HOME Insert here
3153# PAGEUP Remove
3154# DEL Select
3155# END Prev Screen
3156# PAGEDOWN Next Screen
3157#
3158# Though it supports ANSI color, NCSA Telnet uses color to represent blinking
3159# text.
3160#
3161# The status-line manipulation is a mapping of the xterm-compatible control
3162# sequences for setting the window-title. So you must use tsl and fsl in
3163# pairs, since the latter ends the string that is loaded to the window-title.
3164# (untranslatable capabilities removed to fit entry within 1023 bytes)
3165# (sgr removed to fit entry within 1023 bytes)
3166# (acsc removed to fit entry within 1023 bytes)
3167# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
3168ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode:\
3169 :am:hs:km:mi:ms:xn:\
3170 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
3171 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
3172 :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
3173 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
3174 :ds=\E]0;\007:ei=\E[4l:fs=^G:ho=\E[H:\
3175 :if=/usr/share/tabset/vt100:im=\E[4h:\
3176 :is=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>:k1=\E[17~:\
3177 :k2=\E[18:k3=\E[19~:k4=\E[20~:k5=\E[21~:k6=\E[23~:\
3178 :k7=\E[24~:k8=\E[25~:k9=\E[26~:kD=\E[4~:kN=\E[6~:kP=\E[3~:\
3179 :kb=^H:kd=\E[B:kh=\E[2~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
3180 :mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\
3181 :rs=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>:sc=\E7:\
3182 :se=\E[27m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[2J\E8:\
3183 :ti=\E7:ts=\E]0;:ue=\E[24m:up=\E[A:us=\E[4m:\
3184 :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:
3185ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode:\
3186 :tc=ncsa-m:tc=klone+color:
3187ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode:\
3188 :hs@:\
3189 :ds@:fs@:ts@:tc=ncsa:
3190ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode:\
3191 :hs@:\
3192 :ds@:fs@:ts@:tc=ncsa-m:
3193# alternate -TD:
3194# The documented function-key mapping refers to the Apple Extended Keyboard
3195# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style
3196# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on
3197# some keyboards and many applications require these as F1-F4.
3198#
3199ncsa-vt220|NCSA Telnet using vt220-compatible function keys:\
3200 :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
3201 :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\
3202 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
3203 :k8=\E[19~:k9=\E[20~:k;=\E[21~:tc=ncsa:
3204
3205#### Pilot Pro Palm-Top
3206#
3207# Termcap for Top Gun Telnet and SSH on the Palm Pilot.
3208# http://www.isaac.cs.berkeley.edu/pilot/tgtelnet.html
3209pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional:\
3210 :am:bs:xn:\
3211 :co#39:li#16:\
3212 :bl=^G:cl=\Ec:cm=\Em%+ %+ :cr=^M:do=^J:ho=\Em\s\s:kN=^L:\
3213 :kP=^K:kb=^H:kd=^J:kl=^H:le=^H:nw=\Em~\s:se=\EB:sf=^J:so=\Eb:\
3214 :ta=^I:
3215
3216# From: Federico Bianchi <bianchi@www.arte.unipi.it>
3217# These entries are for the Embeddable Linux Kernel System (ELKS)
3218# project - an heavily stripped down Linux to be run on 16 bit
3219# boxes or, eventually, to be used in embedded systems - and have been
3220# adapted from the stock ELKS termcap. The project itself looks stalled,
3221# and the latest improvements I know of date back to March 2000.
3222#
3223# To cope with the ELKS dumb console I added an "elks-glasstty" entry;
3224# as an added bonus, this deals with all the capabilities common to
3225# both VT52 and ANSI (or, eventually, "special") modes.
3226
3227elks-glasstty|ELKS glass-TTY capabilities:\
3228 :am:bs:\
3229 :co#80:it#8:li#25:\
3230 :bl=^G:cr=^M:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:
3231
3232elks-vt52|ELKS vt52 console:\
3233 :ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :do=\EB:ho=\EH:le=\ED:nd=\EC:\
3234 :up=\EA:tc=elks-glasstty:
3235
3236elks-ansi|ELKS ANSI console:\
3237 :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:do=\E[B:ho=\E[H:\
3238 :le=\E[D:nd=\E[C:se=\E[m:so=\E[7m:up=\E[A:\
3239 :tc=elks-glasstty:
3240
3241# As a matter of fact, ELKS 0.0.83 on PCs defaults to ANSI emulation
3242# instead of VT52, but the "elks" entry still refers to the latter.
3243
3244elks|default ELKS console:\
3245 :tc=elks-vt52:
3246
3247# Project SIBO (for Psion 3 palmtops) console is identical to the ELKS
3248# one but in screen size
3249
3250sibo|ELKS SIBO console:\
3251 :co#61:it#8:li#20:tc=elks-vt52:
3252
3253######## COMMERCIAL WORKSTATION CONSOLES
3254#
3255
3256#### Alpha consoles
3257#
3258
3259# This is from the OSF/1 Release 1.0 termcap file
3260pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation:\
3261 :am:xo:\
3262 :co#80:li#25:\
3263 :al=\E[L:bl=^G:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
3264 :dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=\E[B:\
3265 :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:mr=\E[7m:\
3266 :nd=\E[C:nw=^M^J:se=\E[m:so=\E[7m:ta=^I:up=\E[A:
3267
3268#### Sun consoles
3269#
3270
3271# :is1: resets scrolling region in case a previous user had used "tset vt100"
3272oldsun|Sun Microsystems Workstation console:\
3273 :am:bs:km:mi:ms:\
3274 :co#80:it#8:li#34:\
3275 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:bl=^G:\
3276 :cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\
3277 :dl=\E[M:do=\E[B:ei=:i1=\E[1r:ic=\E[@:im=:k1=\EOP:k2=\EOQ:\
3278 :k3=\EOR:k4=\EOS:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
3279 :le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:ta=^I:up=\E[A:
3280# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995
3281# :li: capability later corrected by J.T. Conklin <jtc@cygnus.com>
3282# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998)
3283sun-il|Sun Microsystems console with working insert-line:\
3284 :am:km:ms:\
3285 :co#80:li#34:\
3286 :%7=\E[194z:&5=\E[193z:&8=\E[195z:@7=\E[220z:AL=\E[%dL:\
3287 :DC=\E[%dP:DL=\E[%dM:F1=\E[234z:F2=\E[235z:IC=\E[%d@:\
3288 :K2=\E[218z:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=^L:\
3289 :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ic=\E[@:im=:\
3290 :k1=\E[224z:k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:\
3291 :k6=\E[229z:k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:\
3292 :kD=\177:kN=\E[222z:kP=\E[216z:kb=^H:kd=\E[B:kh=\E[214z:\
3293 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md@:me=\E[m:mr=\E[7m:nd=\E[C:\
3294 :rs=\E[s:\
3295 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m:\
3296 :se=\E[m:sf=^J:so=\E[7m:ta=^I:u8=\E[1t:u9=\E[11t:ue@:\
3297 :up=\E[A:us@:
3298# On some versions of CGSIX framebuffer firmware (SparcStation 5), :al:/:AL:
3299# flake out on the last line. Unfortunately, without them the terminal has no
3300# way to scroll.
3301sun-cgsix|sun-ss5|Sun SparcStation 5 console:\
3302 :AL@:al@:tc=sun-il:
3303# If you are using an SS5, change the sun definition to use sun-ss5.
3304sun|sun1|sun2|Sun Microsystems Inc. workstation console:\
3305 :tc=sun-il:
3306
3307# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985
3308sun-s|Sun Microsystems Workstation window with status line:\
3309 :hs:\
3310 :ds=\E]l\E\\:fs=\E\\:ts=\E]l:tc=sun:
3311sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs:\
3312 :hs:\
3313 :ds=\E]l\E\\:fs=\E\\:ts=\E]l:tc=sun-e:
3314sun-48|Sun 48-line window:\
3315 :co#80:li#48:tc=sun:
3316sun-34|Sun 34-line window:\
3317 :co#80:li#34:tc=sun:
3318sun-24|Sun 24-line window:\
3319 :co#80:li#24:tc=sun:
3320sun-17|Sun 17-line window:\
3321 :co#80:li#17:tc=sun:
3322sun-12|Sun 12-line window:\
3323 :co#80:li#12:tc=sun:
3324sun-1|Sun 1-line window for sysline:\
3325 :es:hs:\
3326 :co#80:li#1:\
3327 :ds=^L:fs=\E[K:ts=^M:tc=sun:
3328sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character:\
3329 :ei@:ic@:im@:tc=sun:
3330sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history:\
3331 :li#35:\
3332 :te=\E[>4h:ti=\E[>4l:tc=sun:
3333
3334#### Iris consoles
3335#
3336
3337# (wsiris: this had extension capabilities
3338# :HS=\E7F2:HE=\E7F7:\
3339# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite:
3340# See the note on Iris extensions near the end of this file.
3341# Finally, removed suboptimal :cl:=\EH\EJ and added :do: &
3342# :vb: from BRL -- esr)
3343wsiris|iris40|iris emulating a 40 line visual 50 (approximately):\
3344 :am:bs:nc:pt:\
3345 :co#80:it#8:kn#3:li#40:\
3346 :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\Ev:cm=\EY%+ %+ :dl=\EM:\
3347 :do=\EB:ho=\EH:is=\E7B0\E7F7\E7C2\E7R3:k0=\E0:k1=\E1:\
3348 :k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:k7=\E7:k8=\E8:k9=\E9:\
3349 :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:me=\E7F7:mh=\E7F2:nd=\EC:\
3350 :nl=\EB:se=\E0@:sf=^J:so=\E9P:sr=\EI:ta=^I:ue=\E7R3\E0@:\
3351 :up=\EA:us=\E7R2\E9P:vb=\E7F4\E7B1\013\E7F7\E7B0:ve=\E>:\
3352 :vs=\E;:
3353
3354#### NeWS consoles
3355#
3356# Console terminal windows under the NeWS (Sun's Display Postscript windowing
3357# environment). Note: these have nothing to do with Sony's News workstation
3358# line.
3359#
3360
3361# Entry for NeWS's psterm from Eric Messick & Hugh Daniel
3362# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr)
3363psterm|psterm-basic|NeWS psterm-80x34:\
3364 :am:bs:hs:km:ul:\
3365 :co#80:it#8:li#34:\
3366 :al=\EA:cd=\EB:ce=\EC:cl=^L:cm=\E%d;%d;:cs=\EE%d;%d;:\
3367 :dc=\EF:dl=\EK:do=\EP:ei=\ENi:fs=\ENl:ho=\ER:i1=\EN*:\
3368 :im=\EOi:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\ET:ll=\EU:\
3369 :mb=\EOb:md=\EOd:me=\EN*:mr=\EOr:nd=\EV:rc=^\:sc=^]:se=\ENo:\
3370 :sf=\EW:so=\EOo:sr=\EX:ta=^I:te=\ENt:ti=\EOt:ts=\EOl:\
3371 :ue=\ENu:up=\EY:us=\EOu:vb=\EZ:
3372psterm-96x48|NeWS psterm 96x48:\
3373 :co#96:li#48:tc=psterm:
3374psterm-90x28|NeWS psterm 90x28:\
3375 :co#90:li#28:tc=psterm:
3376psterm-80x24|NeWS psterm 80x24:\
3377 :co#80:li#24:tc=psterm:
3378# This is a faster termcap for psterm. Warning: if you use this termcap,
3379# some control characters you type will do strange things to the screen.
3380# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr)
3381psterm-fast|NeWS psterm fast version (flaky ctrl chars):\
3382 :am:bs:hs:km:ul:\
3383 :co#80:it#8:li#34:\
3384 :al=^A:cd=^B:ce=^C:cl=^L:cm=\004%d;%d;:cs=\005%d;%d;:dc=^F:\
3385 :dl=^K:do=^P:ei=^Ni:fs=^Nl:ho=^R:i1=^N*:im=^Oi:kd=\E[B:\
3386 :kl=\E[D:kr=\E[C:ku=\E[A:le=^T:ll=^U:mb=^Ob:md=^Od:me=^N*:\
3387 :mr=^Or:nd=^V:rc=^\:sc=^]:se=^No:sf=^W:so=^Oo:sr=^X:ta=^I:\
3388 :te=^Nt:ti=^Ot:ts=^Ol:ue=^Nu:up=^Y:us=^Ou:vb=^Z:
3389
3390#### NeXT consoles
3391#
3392# Use `glasstty' for the Workspace application
3393#
3394
3395# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995
3396next|NeXT console:\
3397 :am:xt:\
3398 :co#80:it#8:li#24:\
3399 :bl=^G:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:do=^J:ho=\E[H:\
3400 :kb=^H:kd=^J:kl=^H:le=^H:me=\E[m:nd=\E[C:nw=^M^J:se=\E[4;1m:\
3401 :sf=^J:so=\E[4;2m:ta=^I:up=\E[A:
3402nextshell|NeXT Shell application:\
3403 :am:\
3404 :co#80:\
3405 :bl=^G:cr=^M:do=^J:kb=^H:kd=^J:kl=^H:le=^H:nw=^M^J:ta=^I:
3406
3407#### Sony NEWS workstations
3408#
3409
3410# (news-unk: this had :KB=news: -- esr)
3411news-unk|SONY NEWS vt100 emulator common entry:\
3412 :am:bs:pt:xn:\
3413 :co#80:\
3414 :AL=\E[%dL:DL=\E[%dM:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\
3415 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
3416 :dl=\E[M:do=^J:ho=\E[H:if=/usr/lib/tabset/vt100:\
3417 :is=\E[?7h\E[?1l\E[?3l\E7\E8:k0=\EOY:k1=\EOP:k2=\EOQ:\
3418 :k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:\
3419 :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
3420 :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
3421 :nl=^J:rc=\E8:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r:\
3422 :sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\
3423 :us=\E[4m:
3424#
3425# (news-29: this had :TY=ascii: --esr)
3426news-29:\
3427 :li#29:tc=news-unk:
3428# (news-29-euc: this had :TY=euc: --esr)
3429news-29-euc:\
3430 :tc=news-29:
3431# (news-29-sjis: this had :TY=sjis: --esr)
3432news-29-sjis:\
3433 :tc=news-29:
3434#
3435# (news-33: this had :TY=ascii: --esr)
3436news-33:\
3437 :li#33:tc=news-unk:
3438# (news-33-euc: this had :TY=euc: --esr)
3439news-33-euc:\
3440 :tc=news-33:
3441# (news-33-sjis: this had :TY=sjis: --esr)
3442news-33-sjis:\
3443 :tc=news-33:
3444#
3445# (news-42: this had :TY=ascii: --esr)
3446news-42:\
3447 :li#42:tc=news-unk:
3448# (news-42-euc: this had :TY=euc: --esr)
3449news-42-euc:\
3450 :tc=news-42:
3451# (news-42-sjis: this had :TY=sjis: --esr)
3452news-42-sjis:\
3453 :tc=news-42:
3454#
3455# NEWS-OS old termcap entry
3456#
3457# (news-old-unk: this had :KB=news:TY=sjis: --esr)
3458news-old-unk|SONY NEWS vt100 emulator common entry:\
3459 :am:bs:pt:xn:\
3460 :co#80:vt#3:\
3461 :bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
3462 :cs=\E[%i%d;%dr:do=^J:ho=\E[H:if=/usr/lib/tabset/vt100:\
3463 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\
3464 :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
3465 :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:rc=\E8:\
3466 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:sc=\E7:se=\E[m:\
3467 :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
3468#
3469# (nwp512: this had :DE=^H:, which I think means :bs: --esr)
3470nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines:\
3471 :bs:\
3472 :li#40:\
3473 :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8:\
3474 :tc=news-old-unk:
3475#
3476# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr)
3477nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line:\
3478 :li#42:\
3479 :is=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8:tc=news-old-unk:
3480#
3481# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as :bs:. --esr)
3482nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines:\
3483 :bs:\
3484 :li#40:\
3485 :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8:\
3486 :tc=news-old-unk:
3487#
3488# (nwp513: this had :DE=^H: and the alias vt100-bm --esr)
3489nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines:\
3490 :bs:\
3491 :li#31:\
3492 :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8:\
3493 :tc=news-old-unk:
3494#
3495# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as :bs:; --esr)
3496# also the alias vt100-bm.
3497nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines:\
3498 :bs:\
3499 :li#33:\
3500 :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8:\
3501 :tc=news-old-unk:
3502#
3503# (nwp513-o: had :DE=^H:, I think that's :bs:; also the alias vt100-bm --esr)
3504nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines:\
3505 :bs:\
3506 :li#31:\
3507 :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8:\
3508 :tc=news-old-unk:
3509#
3510# (news28: this had :DE=^H:, I think that's :bs:, and :KB=nws1200: --esr)
3511news28|sony vt100 emulator 28 lines:\
3512 :bs:\
3513 :li#28:\
3514 :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8:\
3515 :tc=news-old-unk:
3516#
3517# (news29: this had :TY=ascii:KB=nws1200:\ --esr)
3518news29|news28-a|sony vt100 emulator 29 lines:\
3519 :li#29:\
3520 :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8:\
3521 :tc=news-old-unk:
3522#
3523# (news511: this had :TY=sjis: --esr)
3524nwp511|nwp-511|nwp-511 vt100:\
3525 :am:bs:pt:xn:\
3526 :co#80:li#24:\
3527 :al=\E[L:cd=30\E[J:ce=3\E[K:cl=20\E[;H\E[2J:\
3528 :cm=\E[%i%d;%dH:dl=\E[M:is=\E[?5l\E[?1l\E>\E[?7h\E[?8h:\
3529 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\E#W:kd=\E[B:\
3530 :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:nd=\E[C:\
3531 :rs=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h:se=2\E[m:\
3532 :so=2\E[7m:sr=5\EM:ue=2\E[m:up=2\E[A:us=2\E[4m:\
3533 :vb=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l:
3534# (news517: this had :TY=sjis:. --esr)
3535nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows:\
3536 :es:hs:\
3537 :co#80:li#30:\
3538 :ds=\E[1$~:fs=\E[0$}:i2=\E[2$~\n:\
3539 :is=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
3540 :ts=\E[1$}\E[;%df:tc=vt200:
3541# (news517-w: this had :TY=sjis:. --esr)
3542nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows:\
3543 :es:hs:\
3544 :co#132:li#50:\
3545 :ds=\E[1$~:fs=\E[0$}:i2=\E[2$~\n:\
3546 :is=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\
3547 :rs=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\
3548 :ts=\E[1$}\E[;%df:tc=vt200:
3549
3550#### Common Desktop Environment
3551#
3552
3553# This ships with Sun's CDE in Solaris 2.5
3554# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net>
3555# (untranslatable capabilities removed to fit entry within 1023 bytes)
3556dtterm|CDE desktop terminal:\
3557 :am:mi:ms:xn:xo:\
3558 :NC@:co#80:it#8:li#24:lm#0:\
3559 :%1=\E[28~:*6=\E[4~:@0=\E[1~:AL=\E[%dL:DC=\E[%dP:\
3560 :DL=\E[%dM:DO=\E[%dB:F1=\E[23~:F2=\E[24~:F3=\E[25~:\
3561 :F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:\
3562 :F9=\E[33~:FA=\E[34~:IC=\E[%d@:LE=\E[%dD:RA=\E[?7l:\
3563 :RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
3564 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
3565 :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
3566 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
3567 :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ec=\E[%dX:\
3568 :ei=\E[4l:ho=\E[H:im=\E[4h:\
3569 :is=\E F\E>\E[?1l\E[?7h\E[?45l:k1=\E[11~:k2=\E[12~:\
3570 :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:k7=\E[18~:\
3571 :k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\
3572 :kP=\E[5~:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
3573 :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mk=\E[8m:mr=\E[7m:\
3574 :nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[22;27m:sf=\ED:\
3575 :so=\E[2;7m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:\
3576 :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:tc=ecma+color:
3577
3578#### Non-Unix Consoles
3579#
3580
3581# Except for the "-emx" suffixes, these are as distributed with EMX 0.9b,
3582# a Unix-style environment used on OS/2. (Note that the suffix makes some
3583# names longer than 14 characters, the nominal maximum).
3584#
3585# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
3586ansi-emx|ANSI.SYS color:\
3587 :am:eo:mi:ms:ut:xn:xo:\
3588 :Co#16:co#80:it#8:li#25:pa#64:\
3589 :&7=^Z:AB=\E[4%dm:AF=\E[3%dm:DC=\E[%dp:IC=\E[%d@:K2=\E[G:\
3590 :S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\
3591 :cl=\E[1;33;44m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
3592 :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\
3593 :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\
3594 :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\
3595 :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:\
3596 :me=\E[0m\E[1;33;44m:mr=\E[5;37;41m:nd=\E[C:nw=^M^J:\
3597 :r1=\Ec:se=\E[0;44m\E[1;33m:sf=^J:so=\E[0;31;47m:st=\EH:\
3598 :ta=^I:u8=\E[?6c:u9=\E[c:ue=\E[0;44m\E[1;33m:up=\E[A:\
3599 :us=\E[1;31;44m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:
3600ansi-color-2-emx|ANSI.SYS color 2:\
3601 :am:eo:mi:ms:ut:xn:xo:\
3602 :Co#16:co#80:it#8:li#25:pa#64:\
3603 :&7=^Z:AB=\E[4%dm:AF=\E[3%dm:DC=\E[%dp:IC=\E[%d@:K2=\E[G:\
3604 :S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\
3605 :cl=\E[0;37;44m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
3606 :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\
3607 :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\
3608 :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\
3609 :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:me=\E[0;37;44m:\
3610 :mr=\E[1;37;46m:nd=\E[C:nw=^M^J:r1=\Ec:se=\E[0;37;44m:\
3611 :sf=^J:so=\E[1;37;46m:st=\EH:ta=^I:u8=\E[?6c:u9=\E[c:\
3612 :ue=\E[0;37;44m:up=\E[A:us=\E[1;36;44m:vb=\E[?5h\E[?5l:\
3613 :ve=\E[?25h:vi=\E[?25l:
3614ansi-color-3-emx|ANSI.SYS color 3:\
3615 :am:eo:mi:ms:ut:xn:xo:\
3616 :Co#16:co#80:it#8:li#25:pa#64:\
3617 :&7=^Z:AB=\E[4%dm:AF=\E[3%dm:DC=\E[%dp:IC=\E[%d@:K2=\E[G:\
3618 :S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\
3619 :cl=\E[0;37;40m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
3620 :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\
3621 :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\
3622 :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\
3623 :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:me=\E[0;10m:\
3624 :mr=\E[1;37;46m:nd=\E[C:nw=^M^J:r1=\Ec:se=\E[0;37;40m:\
3625 :sf=^J:so=\E[1;37;46m:st=\EH:ta=^I:u8=\E[?6c:u9=\E[c:\
3626 :ue=\E[0;37;40m:up=\E[A:us=\E[0;36;40m:vb=\E[?5h\E[?5l:\
3627 :ve=\E[?25h:vi=\E[?25l:
3628mono-emx|stupid monochrome ansi terminal with only one kind of emphasis:\
3629 :am:\
3630 :co#80:it#8:li#24:\
3631 :K2=\E[G:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:do=\E[B:\
3632 :ho=\E[H:k0=\0D:k1=\0;:k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:\
3633 :k7=\0A:k8=\0B:k9=\0C:kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:\
3634 :kd=\0P:kh=\0G:kl=\0K:kr=\0M:ku=\0H:le=\E[D:me=\E[0m:\
3635 :mr=\E[7m:nd=\E[C:nw=^M^J:ta=^I:up=\E[A:
3636
3637# Use this for cygwin32 (tested with beta 19.1)
3638# underline is colored bright magenta
3639# shifted kf1-kf12 are kf11-kf22
3640cygwinB19|ansi emulation for cygwin32:\
3641 :@7=\E[4~:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\
3642 :F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\
3643 :FA=\E[34~:RA@:SA@:k1=\E[[A:k2=\E[[B:k3=\E[[C:k4=\E[[D:\
3644 :k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
3645 :k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:\
3646 :kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:tc=ansi.sys:
3647
3648# Use this for cygwin (tested with version 1.1.0).
3649# I've combined pcansi and linux. Some values of course were different and
3650# I've indicated which of these were and which I used.
3651# Cheers, earnie_boyd@yahoo.com
3652# several changes based on running with tack and comparing with older entry -TD
3653# (untranslatable capabilities removed to fit entry within 1023 bytes)
3654# (sgr removed to fit entry within 1023 bytes)
3655# (acsc removed to fit entry within 1023 bytes)
3656cygwin|ansi emulation for Cygwin:\
3657 :am:eo:in:ms:xo:\
3658 :Co#8:NC#3:co#80:it#8:li#25:pa#64:\
3659 :&7=^Z:@7=\E[4~:AB=\E[4%dm:AF=\E[3%dm:AL=\E[%dL:DC=\E[%dP:\
3660 :DL=\E[%dM:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\
3661 :F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\
3662 :FA=\E[34~:IC=\E[%d@:S2=\E[11m:S3=\E[10m:al=\E[L:bl=^G:\
3663 :cb=\E[1K:cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\E[H\E[J:\
3664 :cm=\E[%i%d;%dH:cr=^M:cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=\E[B:\
3665 :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k1=\E[[A:k2=\E[[B:\
3666 :k3=\E[[C:k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
3667 :k9=\E[20~:k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
3668 :kb=^H:kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
3669 :md=\E[1m:me=\E[0;10m:mk=\E[8m:mr=\E[7m:nd=\E[C:nw=^M^J:\
3670 :op=\E[39;49m:r1=\Ec\E]R:rc=\E8:sc=\E7:se=\E[27m:sf=^J:\
3671 :so=\E[7m:sr=\EM:st=\EH:ta=^I:u6=\E[%i%d;%dR:u7=\E[6n:\
3672 :u9=\E[c:ue=\E[24m:up=\E[A:us=\E[4m:
3673
3674# This entry fits the Windows NT console when the _POSIX_TERM environment
3675# variable is set to 'on'. While the Windows NT POSIX console is seldom used,
3676# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP
3677# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating
3678# systems is not, and (surprise!) they match very well.
3679#
3680# See: MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up
3681# VI POSIX Editor for Windows NT 3.1". True to Microsoft form, not only
3682# are the installation instructions a pile of mind-numbing bureaucratese,
3683# but the termcap entry is actually broken and unusable as given; the :do:
3684# capability is misspelled "d".
3685#
3686# To use this, you need to a bunch of environment variables:
3687#
3688# SET _POSIX_TERM=on
3689# SET TERM=ansi
3690# SET TERMCAP=location of termcap file in POSIX file format
3691# which is case-sensitive.
3692# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap
3693# SET TMP=//C/TEMP
3694#
3695# Important note: setting the TMP environment variable in POSIX style renders
3696# it incompatible with a lot of other applications, including Visual C++. So
3697# you should have a separate command window just for vi. All the other
3698# variables may be permanently set in the Control Panel\System applet.
3699#
3700# You can find out more about the restrictions of this facility at
3701# <http://www.nentug.org/unix-to-nt/ntposix.htm>.
3702#
3703# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997
3704ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode:\
3705 :am:bw:ms:\
3706 :co#80:it#8:li#25:\
3707 :bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:do=^J:\
3708 :ho=\E[H:kb=^H:kd=\E[V:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
3709 :me=\E[0m:mr=\E[7m:nd=\E[C:nw=\r\E[S:rc=\E[u:sc=\E[s:\
3710 :se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:up=\E[A:
3711# From: jew@venus.sunquest.com
3712# Date: 19 Feb 93 23:41:07 GMT
3713# Here's a combination of ansi and vt100 termcap
3714# entries that works nearly perfectly for me
3715# (Gateway 2000 Handbook and Microsoft Works 3.0):
3716pcmw|PC running Microsoft Works:\
3717 :am:xn:\
3718 :co#80:it#8:li#24:vt#3:\
3719 :bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\
3720 :cm=5\E[%i%d;%dH:cr=^M:ct=2\E[3g:do=^J:ho=\E[H:\
3721 :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
3722 :kb=^H:kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:mb=2\E[5m:\
3723 :md=2\E[1m:me=2\E[m:mr=2\E[7m:nd=2\E[C:nw=5\r\ED:rc=\E8:\
3724 :rf=/usr/share/lib/tabset/vt100:\
3725 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:sc=\E7:se=2\E[m:\
3726 :sf=5\ED:so=2\E[7m:sr=5\EM:st=2\EH:ta=^I:ue=2\E[m:up=2\E[A:\
3727 :us=2\E[4m:
3728
3729######## COMMON TERMINAL TYPES
3730#
3731# This section describes terminal classes and maker brands that are still
3732# quite common, but have proprietary command sets not blessed by ANSI.
3733#
3734
3735#### Altos
3736#
3737# Altos made a moderately successful line of UNIX boxes. In 1990 they were
3738# bought out by Acer, a major Taiwanese manufacturer of PC-clones.
3739# Acer has a web site at http://www.acer.com.
3740#
3741# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993
3742# His comments suggest they were shipped with the system.
3743#
3744
3745# (altos2: had extension capabilities
3746# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
3747# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
3748# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
3749# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
3750# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
3751# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\
3752# :HL=^AP\r:SP=\E[i:\
3753# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
3754# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\
3755# Comparison with the k* capabilities makes it obvious that the c* things are
3756# shift keys. I have renamed them to keys 32 and up accordingly. Also,
3757# :sr: was given as a boolean-- esr)
3758altos2|alt2|altos-2|altos II:\
3759 :co#80:it#8:li#24:sg#0:ug#0:\
3760 :*5=^Am\r:*8=^An\r:FM=^A`\r:FN=^Aa\r:FO=^Ab\r:FP=^Ac\r:\
3761 :FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:FT=^Ag\r:FU=^Ah\r:FV=^Ai\r:\
3762 :FW=^Aj\r:FX=^Ak\r:RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=\E[J:\
3763 :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\
3764 :dl=\E[M:do=\E[1B:ei=:ho=\E[H:ic=\E[@:\
3765 :if=/usr/share/tabset/vt100:im=:\
3766 :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k0=^AI\r:\
3767 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
3768 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:kB=^AK\r:kC=^AL\r:\
3769 :kD=^AM\r:kE=^AN\r:kF=^AO\r:kb=^H:kd=\E[B:kh=\E[f:kl=\E[D:\
3770 :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[1C:nw=^M^J:se=\E[m:\
3771 :sf=^J:so=\E[7m:ta=^I:ue=\E[m:up=\E[1A:us=\E[4m:
3772# (altos3: had extension capabilities
3773# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
3774# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
3775# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
3776# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
3777# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
3778# :HL=^AP\r:SP=\E[i:\
3779# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
3780altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V:\
3781 :mb=\E[5p:me=\E[p:sr=\EM:tc=altos2:
3782altos4|alt4|altos-4|altos IV:\
3783 :tc=wy50:
3784# (altos7: had extension capabilities:
3785# :GG#0:GI=\EH8:GF=\EH7:\
3786# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
3787# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
3788# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
3789# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
3790# Comparison with the k* capabilities makes it obvious that the c* things are
3791# shift keys. I have renamed them to keys 32 and up accordingly. I have
3792# also made this entry relative to adm12 in order to give it an :sa:. The
3793# <invis> imported by use=adm+sgr may work, let me know. -- esr)
3794altos7|alt7|altos VII:\
3795 :am:mi:\
3796 :co#80:li#24:sg#0:\
3797 :*5=^Am\r:*8=^An\r:FM=^A`\r:FN=^Aa\r:FO=^Ab\r:FP=^Ac\r:\
3798 :FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:FT=^Ag\r:FU=^Ah\r:FV=^Ai\r:\
3799 :FW=^Aj\r:FX=^Ak\r:ac=j5k3l2m1n8q\:t4u9v=w0x6:al=\EE:\
3800 :cd=\EY:ce=\ET:cl=\E+^^:cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:\
3801 :do=^J:ei=\Er:ho=^^:im=\Eq:\
3802 :is=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2:k0=^AI\r:\
3803 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
3804 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:kB=^AK\r:kC=^AL\r:\
3805 :kD=^AM\r:kE=^AN\r:kF=^AO\r:kN=\EK:kP=\EJ:kb=^H:kd=^J:kh=^^:\
3806 :kl=^H:kr=^L:ku=^K:le=^H:mb=\EG2:md=\EGt:mh=\EGp:mk=\EG1:\
3807 :nd=^L:nw=^M^J:pf=\EJ:po=\Ed#:sf=^J:sr=\Ej:ta=^I:up=^K:\
3808 :tc=adm+sgr:
3809altos7pc|alt7pc|altos PC VII:\
3810 :@7=\ET:tc=altos7:
3811
3812#### Hewlett-Packard (hp)
3813#
3814# Hewlett-Packard
3815# 8000 Foothills Blvd
3816# Roseville, CA 95747
3817# Vox: 1-(916)-785-4363 (Technical response line for VDTs)
3818# 1-(800)-633-3600 (General customer support)
3819#
3820#
3821# As of March 1998, HP no longer has any terminals in production.
3822# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being
3823# supported (they still have parts). So are the 2392a and 2394a.
3824# See the WORKSTATION CONSOLES section for the 700s.
3825#
3826
3827# Generic HP terminal - this should (hopefully) work on any HP terminal.
3828hpgeneric|hp|hewlett-packard generic terminal:\
3829 :am:bs:da:db:mi:pt:xs:\
3830 :co#80:li#24:lm#0:vt#6:\
3831 :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:\
3832 :cm=\E&a%r%dc%dY:cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:\
3833 :do=^J:ei=\ER:im=\EQ:kB=\Ei:kb=^H:le=^H:me=\E&d@:nd=\EC:\
3834 :se=\E&d@:sf=^J:so=\E&dJ:st=\E1:ta=^I:ue=\E&d@:up=\EA:\
3835 :us=\E&dD:
3836
3837hp110|hewlett-packard model 110 portable:\
3838 :li#16:tc=hpgeneric:
3839
3840hp+pfk+cr|hp function keys with CR:\
3841 :k1=\Ep\r:k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:\
3842 :k7=\Ev\r:k8=\Ew\r:
3843
3844hp+pfk-cr|hp function keys w/o CR:\
3845 :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:
3846
3847# The hp2621s use the same keys for the arrows and function keys,
3848# but not separate escape sequences. These definitions allow the
3849# user to use those keys as arrow keys rather than as function
3850# keys.
3851hp+pfk+arrows|hp alternate arrow definitions:\
3852 :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:kF=\Er\r:kH=\Eq\r:kR=\Es\r:\
3853 :kd=\Ew\r:kh=\Ep\r:kl=\Eu\r:kr=\Ev\r:ku=\Et\r:
3854
3855hp+arrows|hp arrow definitions:\
3856 :kF=\ES:kH=\EF:kR=\ET:kd=\EB:kh=\Eh:kl=\ED:kr=\EC:ku=\EA:
3857
3858# Generic stuff from the HP 262x series
3859#
3860hp262x|HP 262x terminals:\
3861 :xs:\
3862 :cd=\EJ:dc=\EP:ip=:kA=\EL:kD=\EP:kE=\EK:kF=\ES:kI=\EQ:kL=\EM:\
3863 :kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kd=\EB:ke=\E&s0A:kh=\Eh:\
3864 :kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:mb=\E&dA:me=\E&d@:mk=\E&dS:\
3865 :mr=\E&dB:\
3866 :..sa=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c:\
3867 :se=\E&d@:sf=\ES:so=\E&dB:ta=\011:ue=\E&d@:us=\E&dD:
3868
3869# Note: no :ho: on HPs since that homes to top of memory, not screen.
3870# Due to severe 2621 braindamage, the only way to get the arrow keys to
3871# transmit anything at all is to turn on the function key labels
3872# with :ks:, and even then the user has to hold down shift!
3873# The default 2621 turns off the labels except when it has to to
3874# enable the function keys. If your installation prefers labels
3875# on all the time, or off all the time (at the "expense" of the
3876# function keys), use 2621-nl or 2621-wl.
3877#
3878# Note: there are newer ROMs for 2621's that allow you to set
3879# strap A so the regular arrow keys xmit \EA, etc, as with the
3880# 2645. However, even with this strap set, the terminal stops
3881# xmitting if you reset it, until you unset and reset the strap!
3882# Since there is no way to set/unset the strap with an escape
3883# sequence, we don't use it in the default.
3884# If you like, you can use 2621-ba (brain-damaged arrow keys).
3885hp2621-ba|2621 w/new rom and strap A set:\
3886 :ke@:ks@:tc=hp+arrows:tc=hp2621:
3887
3888# hp2621 with function labels. Most of the time they are off,
3889# but inside vi, the function key labels appear. You have to
3890# hold down shift to get them to xmit.
3891hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels:\
3892 :is=\E&jA\r:ke=\E&jA:tc=hp2621-fl:
3893hp2621-fl|hp 2621:\
3894 :xo:xs@:\
3895 :pb#19200:\
3896 :bt=\Ei:cm=\E&a%r%dc%dY:dc=\EP:ip=:is=\E&j@\r:ke=\E&j@:\
3897 :ks=\E&jB:me=\E&d@:se=\E&d@:so=\E&dD:ta=\011:ue=\E&d@:\
3898 :us=\E&dD:tc=hp+pfk+cr:tc=hpgeneric:
3899
3900# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p
3901hp2621p|hp 2621 with printer:\
3902 :pf=\E&p13C:po=\E&p11C:tc=hp2621:
3903
3904hp2621p-a|hp2621p with fn as arrows:\
3905 :tc=hp+pfk+arrows:tc=hp2621p:
3906
3907# hp2621 with k45 keyboard
3908hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard:\
3909 :kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:\
3910 :ku=\EA:tc=hp2621:
3911
3912# 2621 using all 48 lines of memory, only 24 visible at any time.
3913hp2621-48|48 line 2621:\
3914 :li#48:\
3915 :cm=\E&a%r%dc%dR:cv=\E&a%dR:ho=\EH:tc=hp2621:
3916
3917# 2621 with no labels ever. Also prevents vi delays on escape.
3918hp2621-nl|hp 2621 with no labels:\
3919 :kd@:ke@:kh@:kl@:kr@:ks@:ku@:tc=hp2621-fl:
3920
3921# Needed for UCB ARPAVAX console, since lsi-11 expands tabs
3922# (wrong).
3923#
3924hp2621-nt|hp 2621 w/no tabs:\
3925 :ta@:tc=hp2621:
3926
3927# Hp 2624 B with 4 or 10 pages of memory.
3928#
3929# Some assumptions are made with this entry. These settings are
3930# NOT set up by the initialization strings.
3931#
3932# Port Configuration
3933# RecvPace=Xon/Xoff
3934# XmitPace=Xon/Xoff
3935# StripNulDel=Yes
3936#
3937# Terminal Configuration
3938# InhHndShk=Yes
3939# InhDC2=Yes
3940# XmitFnctn(A)=No
3941# InhEolWrp=No
3942#
3943# Note: the 2624 DOES have a true :ho:, believe it or not!
3944#
3945# The 2624 has an "error line" to which messages can be sent.
3946# This is CLOSE to what is expected for a "status line". However,
3947# after a message is sent to the "error line", the next carriage
3948# return is EATEN and the "error line" is turned back off again!
3949# So I guess we can't define :hs:, :es:, :ws:, :ds:, :fs:, :ts:.
3950#
3951# This entry supports emacs (and any other program that uses raw
3952# mode) at 4800 baud and less. I couldn't get the padding right
3953# for 9600.
3954#
3955# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr)
3956hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B:\
3957 :da:db:\
3958 :lm#96:\
3959 :vb=\E&w13F\E&w12F\E&w13F\E&w12F:tc=hp+labels:tc=scrhp:
3960
3961# This hp2626 entry does not use any of the fancy windowing stuff
3962# of the 2626.
3963#
3964# Indeed, terminfo does not yet handle such stuff. Since changing
3965# any window clears memory, it is probably not possible to use
3966# this for screen opt.
3967#
3968# ed is incredibly slow most of the time - I am guessing at the
3969# exact padding. Since the terminal uses xoff/xon this is intended
3970# only for cost computation, so that the terminal will prefer el
3971# or even dl1 which is probably faster!
3972#
3973# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only
3974# extra slow on the last line of the window.
3975#
3976# The padding probably should be changed.
3977#
3978hp2626|hp2626a|hp2626p|hp 2626:\
3979 :da:db:\
3980 :lm#0:pb#19200:\
3981 :SF=\E&r%dD:SR=\E&r%dU:cd=\ED\EJ\EC:ip=:is=\E&j@\r:\
3982 :tc=hp+pfk+cr:tc=hp+labels:tc=scrhp:
3983
3984# This entry is for sysline. It allocates a 23 line window with
3985# a 115 line workspace for regular use, and a 1 line window for
3986# the status line.
3987#
3988# This assumes port 2 is being used.
3989# Turn off horizontal line, Create ws #1 with 115 lines,
3990# Create ws #2 with 1 line, Create window #1 lines 1-23,
3991# Create window #2 lines 24-24, Attach cursor to workspace #1.
3992# Note that this clears the tabs so it must be done by tset before
3993# it sets the tabs.
3994#
3995hp2626-s|hp 2626 using only 23 lines:\
3996 :es:hs:\
3997 :li#23:\
3998 :fs=\E&d@\E&w7f2p1I\E&w4f1I:\
3999 :i1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r:\
4000 :ts=\E&w7f2p2I\E&w4f2I\r\EK\E&a%dC:tc=hp2626:
4001# Force terminal back to 24 lines after being 23.
4002hp2626-ns|hp 2626 using all 24 lines:\
4003 :i1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r:\
4004 :tc=hp2626:
4005# Various entries useful for small windows on 2626.
4006hp2626-12|hewlett-packard 2626 12 lines:\
4007 :li#12:tc=hp2626:
4008hp2626-12x40|hewlett-packard 2626 12 lines 40 columns:\
4009 :co#40:li#12:tc=hp2626:
4010hp2626-x40|hewlett-packard 2626 40 columns:\
4011 :co#40:tc=hp2626:
4012hp2626-12-s|hewlett-packard 2626 11 lines plus status:\
4013 :li#11:tc=hp2626-s:
4014
4015#
4016# hp2627 color tubes from University of Wisconsin
4017#
4018hp2627a-rev|hp 2627 with reverse video colors:\
4019 :cr=^M:do=^J:\
4020 :is=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r:\
4021 :kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:ue=\E&v0S\E&d@:\
4022 :us=\E&dD\E&v1S:tc=hp2621-nl:
4023hp2627a|hp 2627 color terminal with no labels:\
4024 :cr=^M:do=^J:\
4025 :is=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r:\
4026 :kb=^H:kd=^J:kl=^H:nw=^M^J:se=\E&v0S:sf=^J:so=\E&v2S:ta=^I:\
4027 :ue=\E&v0S\E&d@:us=\E&dD\E&v1S:tc=hp2621-nl:
4028hp2627c|hp 2627 color (cyan) terminal with no labels:\
4029 :cr=^M:do=^J:\
4030 :is=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r:\
4031 :kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=hp2627a:
4032
4033# hp2640a doesn't have the Y cursor addressing feature, and C is
4034# memory relative instead of screen relative, as we need.
4035#
4036hp2640a|hp 2640a:\
4037 :cm@:ke@:ks@:tc=hp2645:
4038
4039hp2640b|hp2644a|hp 264x series:\
4040 :ke@:ks@:tc=hp2645:
4041
4042# (hp2641a: removed unknown :gu: -- esr)
4043hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry:\
4044 :am:da:db:mi:xs:\
4045 :co#80:li#24:\
4046 :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%2C:cl=\EH\EJ:\
4047 :cm=\E&a%r%2c%2Y:cr=^M:cv=\E&a%2Y:dc=\EP:dl=\EM:do=^J:\
4048 :ei=\ER:if=/usr/share/tabset/std:im=\EQ:is=500\EE:kb=^H:\
4049 :kd=^J:kl=^H:le=^H:nd=\EC:nw=^M^J:se=\E&d@:sf=^J:so=\E&dB:\
4050 :ta=^I:up=\EA:
4051
4052# This terminal should be used at 4800 baud or less. It needs padding for
4053# plain characters at 9600, I guessed at an appropriate cr delay. It really
4054# wants ^E/^F handshaking, but that doesn't work well even if you write
4055# software to support it.
4056hp2645|hp45|HP 2645 series:\
4057 :pb#9600:\
4058 :cr=\r:kA=\EL:kD=\EP:kE=\EK:kF=\ES:kI=\EQ:kL=\EM:kM=\ER:\
4059 :kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kT=\E1:kd=\EB:ke=\E&s0A:kh=\Eh:\
4060 :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:mb=\E&dA:me=\E&d@:\
4061 :mh=\E&dH:mr=\E&dB:\
4062 :..sa=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c:\
4063 :us=\E&dD:tc=hpgeneric:
4064# You should use this terminal at 4800 baud or less.
4065hp2648|hp2648a|HP 2648a graphics terminal:\
4066 :cl=\EH\EJ:cm=\E&a%r%dc%dY:dc=\EP:ip=:tc=hp2645:
4067
4068# The HP 150 terminal is a fairly vanilla HP terminal, with the
4069# clreol standout problem. It also has graphics capabilities and
4070# a touch screen, which we don't describe here.
4071hp150|hewlett packard Model 150:\
4072 :bs:tc=hp2622:
4073
4074# HP 2382a terminals, "the little ones." They don't have any
4075# alternate character set support and sending out ^N/^O will
4076# leave the screen blank.
4077hp2382a|hp2382|hewlett packard 2382a:\
4078 :da:db:\
4079 :lh#1:lm#48:\
4080 :ac@:ae@:as@:me=\E&d@:\
4081 :..pn=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s:\
4082 :..sa=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c:\
4083 :tc=hp+labels:tc=scrhp:
4084
4085hp2621-a|hp2621a-a|hp2621 with fn as arrows:\
4086 :tc=hp+pfk+arrows:tc=hp2621-fl:
4087
4088# newer hewlett packard terminals
4089
4090newhpkeyboard|generic entry for HP extended keyboard:\
4091 :kA=\EL:kB=\Ei:kC=\EJ:kD=\EP:kE=\EK:kF=\ET:kH=\EF:kI=\EQ:\
4092 :kL=\EM:kM=\ER:kN=\EU:kP=\EV:kR=\ES:kS=\EJ:kb=^H:kd=\EB:\
4093 :ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:\
4094 :tc=hp+pfk-cr:
4095
4096newhp|generic entry for new hewlett packard terminals:\
4097 :am:bw:mi:xo:xs:\
4098 :co#80:li#24:pb#4800:\
4099 :ac=2[3@4>5I9(\:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X\:Y+Z*dHjGkTlRmFn/q,t5u6v8w7x.:\
4100 :ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:cr=^M:ct=\E3:\
4101 :dc=\EP:dl=\EM:do=^J:ei=\ER:i1=\E&jB:im=\EQ:ip=:le=^H:\
4102 :mb=\E&dA:md=\E&dF:me=\E&d@\017:mh=\E&dH:mk=\E&dS:\
4103 :mr=\E&dB:nd=\EC:nw=^M^J:\
4104 :..pk=\E&f0a%p1%dk0d%p2%l%dL%p2%s:\
4105 :..pl=\E&f1a%p1%dk0d%p2%l%dL%p2%s:\
4106 :..px=\E&f2a%p1%dk0d%p2%l%dL%p2%s:r1=\Eg:\
4107 :..sa=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;:\
4108 :se=\E&d@:sf=^J:so=\E&dJ:sr=\ET:st=\E1:ta=\011:ue=\E&d@:\
4109 :up=\EA:us=\E&dD:tc=newhpkeyboard:
4110
4111memhp|memory relative addressing for new HP ttys:\
4112 :vt#6:\
4113 :CM=\E&a%dr%dC:DO=\E&a+%dR:LE=\E&a-%dC:RI=\E&a+%dC:\
4114 :UP=\E&a-%dR:ch=\E&a%dC:cl=\EH\EJ:cm=\E&a%dr%dC:\
4115 :cv=\E&a%dR:ho=\EH:ll=\E&a23R\r:tc=newhp:
4116
4117scrhp|screen relative addressing for new HP ttys:\
4118 :CM=\E&a%dr%dC:DO=\E&a+%dR:LE=\E&a-%dC:RI=\E&a+%dC:\
4119 :UP=\E&a-%dR:ch=\E&a%dC:cl=\E&a0c0Y\EJ:cm=\E&a%dy%dC:\
4120 :cv=\E&a%dY:ho=\E&a0y0C:ll=\E&a0y0C\EA:tc=newhp:
4121
4122# (hp+labels: added label values from a BRL termcap -- esr)
4123hp+labels|"standard" label info for new HP ttys:\
4124 :Nl#8:lh#2:lw#8:\
4125 :LF=\E&j@:LO=\E&jB:l0=f1:l1=f2:l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:\
4126 :l7=f8:\
4127 :..pn=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s:
4128
4129hp+printer|"standard" printer info for HP ttys:\
4130 :ff=\E&p4u0C:pf=\E&p13C:po=\E&p11C:ps=\EH\E&p4dF:
4131
4132
4133# The new hp2621b is kind of a cross between the old 2621 and the
4134# new 262x series of machines. It has dip-switched options.
4135# The firmware has a bug in it such that if you give it a null
4136# length label, the following character is eaten!
4137hp2621b|hp 2621b with old style keyboard:\
4138 :Nl#8:lh#1:lm#48:lw#8:\
4139 :LO=\E&jB:kF=\ET:kH=\EF:kR=\ES:kd=\EB:kh=\Eh:kl=\ED:kr=\EC:\
4140 :ku=\EA:\
4141 :..pn=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r:\
4142 :tc=hp2621:
4143
4144hp2621b-p|hp 2621b with printer:\
4145 :tc=hp+printer:tc=hp2621b:
4146
4147# hp2621b - new 2621b with new extended keyboard
4148# these are closer to the new 26xx series than the other 2621b
4149hp2621b-kx|hp 2621b with extended keyboard:\
4150 :tc=newhpkeyboard:tc=hp2621b:
4151
4152hp2621b-kx-p|hp 2621b with new keyboard & printer:\
4153 :tc=hp+printer:tc=hp2621b-kx:
4154
4155# Some assumptions are made in the following entries.
4156# These settings are NOT set up by the initialization strings.
4157#
4158# Port Configuration
4159# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes
4160#
4161# Terminal Configuration
4162# InhHndShk(G)=Yes InhDC2(H)=Yes
4163# XmitFnctn(A)=No InhEolWrp=No
4164#
4165#
4166# Hp 2622a & hp2623a display and graphics terminals
4167#
4168hp2622|hp2622a|hp 2622:\
4169 :da:db:\
4170 :lm#0:pb#19200:\
4171 :is=\E&dj@\r:tc=hp+pfk+cr:tc=hp+labels:tc=scrhp:
4172
4173# The 2623 is a 2622 with extra graphics hardware.
4174hp2623|hp2623a|hp 2623:\
4175 :tc=hp2622:
4176
4177hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer:\
4178 :tc=hp+printer:tc=hp2624:
4179
4180# The hewlett packard B can have an optional extra 6 pages of memory.
4181hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory:\
4182 :lm#240:tc=hp2624:
4183
4184hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer:\
4185 :lm#240:tc=hp2624b-p:
4186
4187# Color manipulations for HP terminals
4188hp+color|hp with colors:\
4189 :cc:\
4190 :Co#16:NC#17:pa#7:\
4191 :..Ip=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI:\
4192 :oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I:\
4193 :op=\E&v0S:sp=\E&v%dS:
4194
4195# :is: sets the screen to be 80 columns wide
4196hp2397a|hp2397|hewlett packard 2397A color terminal:\
4197 :is=\E&w6f80X:tc=memhp:tc=hp+labels:tc=hp+color:
4198
4199# HP 700/44 Setup parameters:
4200# Terminal Mode HP-PCterm
4201# Inhibit Auto Wrap NO
4202# Status Line Host Writable
4203# PC Character Set YES
4204# Twenty-Five Line Mode YES
4205# XON/XOFF @128 or 64 (sc)
4206# Keycode Mode NO or YES (sc)
4207# Backspace Key BS or BS/DEL
4208#
4209# :is: sets pcterm; autowrap; 25 lines; pc char set; prog DEL key;
4210# \E\\? does not turn off keycode mode
4211# <smsc> sets alternate start/stop; keycode on
4212hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode:\
4213 :am:eo:xn:xo:\
4214 :co#80:li#25:\
4215 :@7=\E[4~:RA=\E[?7l:S4=\E[>11h\EPO**x0/65;1/67\E\\:\
4216 :S5=\E[>11l\EP1**x0/11;1/13\E[m\E\\:SA=\E[?7h:XF=g:XN=e:\
4217 :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\
4218 :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\
4219 :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
4220 :ic=\E[@:im=:\
4221 :is=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\:\
4222 :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\
4223 :k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[26~:k;=\E[28~:\
4224 :kB=\E[Z:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[1~:kl=\E[D:\
4225 :kr=\E[C:ku=\E[A:le=\E[D:me=\E[m:nd=\E[C:se=\E[m:sf=^J:\
4226 :so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:\
4227 :vi=\E[?25l:
4228#
4229# (hp2392: copied :ei: here from hpex -- esr)
4230hp2392|239x series:\
4231 :co#80:\
4232 :bt=\Ei:cm=\E&a%dy%dC:cv=\E&a%dY:ei=\ER:im=\EQ:k1=\Ep\r:\
4233 :k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:\
4234 :k8=\Ew\r:kF=\EU:kN=\Eu:kP=\Ev:kR=\EV:kh=\Eh:ue=\E&d@:\
4235 :us=\E&dD:tc=hpsub:
4236
4237hpsub|hp terminals -- capability subset:\
4238 :am:da:db:mi:xo:xs:\
4239 :li#24:\
4240 :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:cr=^M:\
4241 :dc=\EP:dl=\EM:do=\EB:if=/usr/share/tabset/stdcrt:\
4242 :is=\E&s1A\E<\E&k0\\:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:\
4243 :kr=\EC:ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:se=\E&d@:\
4244 :sf=^J:so=\E&dB:ta=^I:up=\EA:
4245
4246# hpex:
4247# May be used for most 24 x 80 hp terminals,
4248# but has no padding added, so may allow runover in some terminals at high
4249# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and
4250# hp98x5 terminal emulators or hp98x6 consoles.
4251# Adds xy-cursor addressing, vertical cursor addressing, home,
4252# last line, and underline capabilities.
4253#
4254# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:",
4255# moved :ei: here from hpsub -- esr)
4256hpex|hp extended capabilites:\
4257 :cm=\E&a%dy%dC:cr=^M:cv=\E&a%dY:do=^J:ei=\ER:im=\EQ:kb=^H:\
4258 :kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:ue=\E&d@:us=\E&dD:tc=hpsub:
4259
4260# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996
4261hp2|hpex2|hewlett-packard extended capabilities newer version:\
4262 :am:da:db:mi:xs:\
4263 :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:sg#0:ug#0:\
4264 :LF=\E&j@:LO=\E&jB:al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:\
4265 :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\
4266 :dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\
4267 :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\
4268 :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\
4269 :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\
4270 :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:me=\E&d@:\
4271 :ml=\El:mu=\Em:nd=\EC:..pk=\E&f%p1%dk%p2%l%dL%p2%s:\
4272 :..pl=\E&f1a%p1%dk%p2%l%dL%p2%s:\
4273 :..pn=\E&f%p1%dk%p2%l%dd0L%p2%s:\
4274 :..px=\E&f2a%p1%dk%p2%l%dL%p2%s:\
4275 :..sa=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;:\
4276 :se=\E&d@:sf=^J:so=\E&dB:st=\E1:ta=^I:ue=\E&d@:up=\EA:\
4277 :us=\E&dD:
4278
4279# HP 236 console
4280# From: <ddavis@ic.berkeley.edu>
4281hp236|hp236 internal terminal emulator:\
4282 :am:bs:\
4283 :co#80:li#24:\
4284 :al=\EG:ce=\EK:cl=\EF:cm=\EE%+ %+ :dc=\EJ:dl=\EH:ei=:ic=\EI:\
4285 :im=:le=^H:me=\ECI:se=\ECI:so=\EBI:up=^K:ve=\EDE:vs=\EDB:
4286
4287# This works on a hp300 console running Utah 4.3 BSD
4288# From: Craig Leres <leres@okeeffe.berkeley.edu>
4289hp300h|HP Catseye console:\
4290 :am:bs:da:db:mi:xs:\
4291 :co#128:li#51:lm#0:sg#0:ug#0:\
4292 :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\
4293 :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\
4294 :dc=\EP:dl=\EM:do=\EB:ei=\ER:if=/usr/share/tabset/stdcrt:\
4295 :im=\EQ:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\
4296 :ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:se=\E&d@:sf=^J:\
4297 :so=\E&dB:ta=^I:ue=\E&d@:up=\EA:us=\E&dD:
4298# From: Greg Couch <gregc@ernie.berkeley.edu>
4299hp9837|hp98720|hp98721|HP 9000/300 workstations:\
4300 :am:bs:da:db:mi:xs:\
4301 :co#128:it#8:li#46:lm#0:\
4302 :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\
4303 :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:ct=\E3:cv=\E&a%dY:dc=\EP:\
4304 :dl=\EM:do=\EB:ei=\ER:im=\EQ:is=\E&v0m1b0i&j@:kA=\EL:\
4305 :kD=\EP:kE=\EK:kI=\EQ:kL=\EM:kN=\EU:kP=\EV:kS=\EJ:kb=^H:\
4306 :kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:\
4307 :le=^H:me=\E&d@:nd=\EC:se=\E&v0S:sf=^J:so=\E&v5S:st=\E1:\
4308 :ta=^I:ue=\E&d@:up=\EA:us=\E&dD:
4309# HP 9845 desktop computer from BRL
4310# (hp9845: removed unknown capability :gu: -- esr)
4311hp9845|HP 9845:\
4312 :am:bs:da:db:eo:mi:xs:\
4313 :co#80:li#21:\
4314 :al=\EL:bc=\ED:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\E&a%r%2c%2Y:\
4315 :dc=\EP:dl=\EM:ei=\ER:if=/usr/share/tabset/std:im=\EQ:\
4316 :nd=\EC:se=\E&d@:so=\E&dB:up=\EA:
4317# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90
4318# (hp98550: replaced /usr/share/tabset/9837 with std because :it#8:,:st=\E1:;
4319# added empty <acsc> to avoid warnings re :as:/:ae: --esr)
4320hp98550|hp98550a|HP 9000 Series 300 color console:\
4321 :am:bs:da:db:mi:xs:\
4322 :co#128:it#8:li#49:lm#0:\
4323 :ac=:ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:\
4324 :ch=\E&a%dC:cl=\EH\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:\
4325 :cv=\E&a%dY:dc=\EP:dl=\EM:do=^J:ei=\ER:\
4326 :if=/usr/share/tabset/std:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\
4327 :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\
4328 :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\
4329 :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\
4330 :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:mb=\E&dA:\
4331 :md=\E&dJ:me=\E&d@:mh=\E&dH:mk=\E&ds:mr=\E&dJ:nd=\EC:\
4332 :se=\E&d@:sf=^J:so=\E&dJ:st=\E1:ta=^I:ue=\E&d@:up=\EA:\
4333 :us=\E&dD:ve=\E*dQ:vi=\E*dR:
4334# From: Victor Duchovni <vic@fine.princeton.edu>
4335# (hp700-wy: removed obsolete ":nl=^J:";
4336# replaced /usr/share/tabset/hp700-wy with std because :it#8:,:st=\E1: -- esr)
4337hp700-wy|HP700/41 emulating wyse30:\
4338 :am:bs:bw:mi:ms:\
4339 :co#80:it#8:li#24:sg#1:ug#1:\
4340 :al=0.7*\EE:bt=\EI:cd=\EY:ce=10\ET:cl=^Z:cm=\E=%+ %+ :\
4341 :cr=^M:ct=\E0:cv=\E[%+ :dc=\EW:dl=\ER:do=^V:ei=\Er:ho=^^:\
4342 :i1=\E~"\EC\Er\E(\EG0\003\E`9\E`1:\
4343 :if=/usr/share/tabset/stdcrt:im=\Eq:kB=\EI:kC=^Z:kE=\ET:\
4344 :kI=\Eq:kM=\Er:kS=\EY:kT=\EI:kb=\177:kd=^V:kh=^^:kl=^H:kr=^L:\
4345 :ku=^K:le=^H:ll=^^^K:me=10\EG0:nd=^L:se=10\EG0:so=10\EG4:\
4346 :sr=\Ej:st=\E1:ta=^I:ue=10\EG0:up=^K:us=10\EG8:
4347hp70092|hp70092a|hp70092A|HP 700/92:\
4348 :am:da:db:xs:\
4349 :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:\
4350 :LF=\E&j@:LO=\E&jB:ac=0cjgktlrmfn/q,t5u6v8w7x.:ae=^O:\
4351 :al=\EL:as=^N:bl=^G:bt=\Ei:ce=\EK:ch=\E&a%dC:\
4352 :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\
4353 :dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\
4354 :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\
4355 :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\
4356 :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\
4357 :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:mb=\E&dA:\
4358 :md=\E&dB:me=\E&d@:mh=\E&dH:mr=\E&dB:nd=\EC:se=\E&d@:\
4359 :so=\E&dJ:sr=\ET:st=\E1:ta=^I:ue=\E&d@:up=\EA:us=\E&dD:
4360
4361bobcat|sbobcat|HP 9000 model 300 console:\
4362 :am:da:db:mi:xs:\
4363 :co#128:it#8:li#47:sg#0:ug#0:\
4364 :al=10*\EL:bt=\Ei:cd=\EJ:ce=\EK:ch=6\E&a%dC:cl=\EH\EJ:\
4365 :cm=6\E&a%dy%dC:cr=^M:cv=6\E&a%dY:dc=\EP:dl=10*\EM:do=\EB:\
4366 :ei=\ER:im=\EQ:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\
4367 :ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:nw=^M^J:se=\E&d@:\
4368 :sf=^J:so=\E&dB:ta=^I:ue=\E&d@:up=\EA:us=\E&dD:
4369gator-t|HP 9000 model 237 emulating extra-tall AAA:\
4370 :li#94:tc=gator:
4371gator|HP 9000 model 237 emulating AAA:\
4372 :bw:km:mi:ul:\
4373 :co#128:it#8:li#47:\
4374 :AL=1*\E[%dL:DC=4\E[%dP:DL=1*\E[%dM:IC=4\E[%d@:al=\E[L:\
4375 :bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:cl=\E[H\E[J:\
4376 :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:\
4377 :ic=\E[@:im=:kb=^H:kd=^J:kl=^H:le=^H:me=\E[m:mr=\E[7m:\
4378 :nd=\E[C:nw=^M^J:rp=1*%.\E[%db:se=\E[m:so=\E[7m:ta=^I:\
4379 :ue=\E[m:up=\EM:us=\E[4m:
4380gator-52|HP 9000 model 237 emulating VT52:\
4381 :co#128:li#47:tc=vt52:
4382gator-52t|HP 9000 model 237 emulating extra-tall VT52:\
4383 :li#94:tc=gator-52:
4384
4385#### Honeywell-Bull
4386#
4387# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93
4388#
4389
4390# Honeywell Bull terminal. Its cursor and function keys send single
4391# control characters and it has standout/underline glitch. Most programs
4392# do not like these features/bugs. Visual bell is realized by flashing the
4393# "keyboard locked" LED.
4394dku7003-dumb|Honeywell Bull DKU 7003 dumb mode:\
4395 :co#80:li#25:\
4396 :cd=^_:ce=\E[K:cl=^]^_:cm=\E[%i%d;%dH:cr=^M:do=^K:ho=^]:\
4397 :kb=^H:kd=^K:kh=^]:kl=^Y:kr=^X:ku=^Z:le=^Y:nd=^X:nw=^M^J:\
4398 :sf=^J:ta=^I:up=^Z:vb=\E[2h\E[2l:
4399dku7003|Honeywell Bull DKU 7003 all features described:\
4400 :ms:\
4401 :sg#1:ug#1:\
4402 :mb=\E[5m:md=\E[7m:me=\E[m:mh=\E[2m:mr=\E[7m:se=\E[m:\
4403 :so=\E[7m:ue=\E[m:us=\E[4m:tc=dku7003-dumb:
4404
4405#### Lear-Siegler (adm)
4406#
4407# These guys are long since out of the terminals business, but
4408# in 1995 many current terminals still have an adm type as one of their
4409# emulations (usually their stupidest, and usually labeled adm3, though
4410# these `adm3' emulations normally have adm3a+ capabilities).
4411#
4412# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a
4413# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator')
4414# was being held to ground would trigger a send of the top line on the screen.
4415# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22
4416# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>,
4417# for clearing up this point.)
4418
4419adm1a|adm1|lsi adm1a:\
4420 :am:\
4421 :co#80:li#24:\
4422 :bl=^G:cl=\E;:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:le=^H:nd=^L:\
4423 :sf=^J:up=^K:
4424adm2|lsi adm2:\
4425 :am:bs:\
4426 :co#80:li#24:\
4427 :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :cr=^M:\
4428 :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:kd=^J:kh=^^:kl=^H:\
4429 :kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K:
4430# (adm3: removed obsolete ":ma=^K^P:" -- esr)
4431adm3|lsi adm3:\
4432 :am:bs:\
4433 :co#80:li#24:\
4434 :bl=^G:cl=^Z:cr=^M:do=^J:le=^H:sf=^J:
4435# The following ADM-3A switch settings are assumed for normal operation:
4436# SPACE U/L_DISP CLR_SCRN 24_LINE
4437# CUR_CTL LC_EN AUTO_NL FDX
4438# Other switches may be set for operator convenience or communication
4439# requirements. I recommend
4440# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF
4441# ETX_OFF EOT_OFF
4442# Most of these terminals required an option ROM to support lower case display.
4443# Open the case and look at the motherboard; if you see an open 24-pin DIP
4444# socket, you may be out of luck.
4445#
4446# (adm3a: some capabilities merged in from BRl entry -- esr)
4447adm3a|lsi adm3a:\
4448 :am:bs:\
4449 :co#80:li#24:\
4450 :bl=^G:cl=1\032:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:kd=^J:kl=^H:\
4451 :kr=^L:ku=^K:le=^H:ma=^K^P:nd=^L:nl=^J:rs=^N:sf=^J:up=^K:
4452adm3a+|adm3a plus:\
4453 :kb=^H:tc=adm3a:
4454# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr)
4455adm5|lsi adm5:\
4456 :sg#1:\
4457 :bl=^G:cd=\EY:ce=\ET:cr=^M:do=^J:kb=^H:kh=^^:se=\EG:so=\EG:\
4458 :tc=adm3a+:
4459# A lot of terminals other than adm11s use these. Wherever you see
4460# use=adm+sgr with some of its capabilities disabled, try the
4461# disabled ones. They may well work but not have been documented or
4462# expressed in the using entry. We'd like to cook up an :sa: but the
4463# :ae:/:as: sequences of the using entries vary too much.
4464adm+sgr|adm style highlight capabilities:\
4465 :me=\EG0:mk=\EG1:mr=\EG4:se=\EG0:so=\EG4:ue=\EG0:us=\EG8:
4466# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL
4467# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs>
4468# :kh: from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>. :cl: could also
4469# be ^Z, according to his entry.
4470# (adm11: :us:=\EG4 was obviously erroneous because it also said
4471# :mr:=\EG4. Looking at other ADMs confirms this -- esr)
4472adm11|LSI ADM-11:\
4473 :am:bs:hs:\
4474 :co#80:kn#8:li#24:\
4475 :bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ds=\Eh:\
4476 :fs=\E(\r:ho=^^:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
4477 :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:kb=^H:kd=^J:kh=^^:\
4478 :kl=^H:kr=^L:ku=^K:le=^H:mb=\EG2:nd=^L:nl=^J:nw=^M^J:ta=^I:\
4479 :ts=\EF\E):up=^K:tc=adm+sgr:
4480# From: Andrew Scott Beals <bandy@lll-crg.ARPA>
4481# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995
4482# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996
4483# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had
4484# :is:=\Eq but that looked wrong; this :is: is from Dave Yost <esquire!yost>
4485# via BRL. That entry asserted :sg#1:, but I've left that out because
4486# neither earlier nor later ADMSs have it -- esr)
4487#
4488# You will need to get into the supervisor setup before you can set
4489# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should
4490# see a lot more setup options.
4491#
4492# While in supervisor setup you can also use following codes:
4493#
4494# Ctrl-P Personality character selections (configure for example what
4495# arrow keys send, if I recall correctly)
4496# Ctrl-T tabs 1-80 use left&right to move and up to set and
4497# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor
4498# Ctrl-B Binary setup (probably not needed. I think that everything can
4499# be set using normal setup)
4500# Ctrl-A Answerback mode (enter answerback message)
4501# Ctrl-U User friendly mode (normal setup)
4502# Ctrl-D Defaults entire setup and function keys from EPROM tables
4503# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds.
4504# Ctrl-R Reads both setup and functions keys from NVM.
4505# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status
4506#
4507# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to
4508# RTS/CTS used nowadays with virtually every modem and computer. 19200
4509# bps works fine with hardware flow control.
4510#
4511# The following null-modem cable should fix this and enable you to use
4512# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also
4513# set ADM-12+ for DTR handshaking from supervisor setup.
4514#
4515# PC Serial ADM-12+
4516# -------- -------
4517# 2 - 3
4518# 3 - 2
4519# 4 - 5
4520# 5 - 20
4521# 6,8 - 4
4522# 7 - 7
4523# 20 - 6,8
4524#
4525adm12|lsi adm12:\
4526 :am:bs:mi:pt:\
4527 :co#80:it#8:li#24:ug#1:\
4528 :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E0:\
4529 :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:ic=\EQ:im=\Eq:\
4530 :is=\E0 \E1 \E1 \E1 \E1 \E1 \E1 \E1 \E1:\
4531 :k0=^A0\r:k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:\
4532 :k6=^A6\r:k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^J:kl=^H:kr=^L:\
4533 :ku=^K:le=^H:nd=^L:st=\E1:up=^K:tc=adm+sgr:
4534# (adm20: removed obsolete ":kn#7:" -- esr)
4535adm20|lear siegler adm20:\
4536 :am:bs:\
4537 :co#80:it#8:li#24:\
4538 :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\
4539 :cm=\E=%i%r%+^_%+^_:cr=^M:dc=\EW:dl=\ER:ei=:ho=^^:ic=\EQ:\
4540 :im=:k1=^A:k2=^B:k3=^W:k4=^D:k5=^E:k6=^X:k7=^Z:le=^H:me=\E(:\
4541 :nd=^L:se=\E(:so=\E):ta=^I:up=^K:
4542adm21|lear siegler adm21:\
4543 :sg#1:\
4544 :al=30*\EE:bl=^G:cd=\EY:ce=\ET:cr=^M:dc=\EW:dl=30*\ER:do=^J:\
4545 :ei=:ic=\EQ:im=:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:mk@:sf=^J:\
4546 :tc=adm+sgr:tc=adm3a:
4547# (adm22: ":em=:" was an obvious typo for ":ei=:"; also,
4548# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :";
4549# removed bogus-looking \200 from before :cm:. -- esr)
4550adm22|lsi adm22:\
4551 :am:bs:\
4552 :co#80:li#24:\
4553 :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :\
4554 :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:\
4555 :is=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0:\
4556 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
4557 :k7=^AF\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:l1=F1:l2=F2:\
4558 :l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:le=^H:me=\E(:nd=^L:se=\E(:\
4559 :so=\E):ta=\Ei:up=^K:
4560# ADM 31 DIP Switches
4561#
4562# This information comes from two versions of the manual for the
4563# Lear-Siegler ADM 31.
4564#
4565# Main board:
4566# rear of case
4567# +-||||-------------------------------------+
4568# + S1S2 ||S +
4569# + ||3 +
4570# + +
4571# + ||S +
4572# + ||4 +
4573# + +
4574# + +
4575# + +
4576# + +
4577# + +
4578# +-+ +-+
4579# + +
4580# + S5 S6 S7 +
4581# + == == == +
4582# +----------------------------------------------+
4583# front of case (keyboard)
4584#
4585# S1 - Data Rate - Modem
4586# S2 - Data Rate - Printer
4587# ------------------------
4588# Data Rate Setting
4589# -------------------
4590# 50 0 0 0 0
4591# 75 1 0 0 0
4592# 110 0 1 0 0
4593# 134.5 1 1 0 0
4594# 150 0 0 1 0
4595# 300 1 0 1 0
4596# 600 0 1 1 0
4597# 1200 1 1 1 0
4598# 1800 0 0 0 1
4599# 2000 1 0 0 1
4600# 2400 0 1 0 1
4601# 3600 1 1 0 1
4602# 4800 0 0 1 1
4603# 7200 1 0 1 1
4604# 9600 0 1 1 1
4605# x 1 1 1 1
4606#
4607# S3 - Interface/Printer/Attributes
4608# ---------------------------------
4609# Printer Busy Control
4610# sw1 sw2 sw3
4611# ---------------
4612# off off off Busy not active, CD disabled
4613# off off on Busy not active, CD enabled
4614# off on off Busy active on J5-20, CD disabled
4615# on off off Busy active on J5-19, CD disabled - Factory Set.
4616# on off on Busy active on J5-19, CD enabled
4617#
4618# sw4 Used in conjuction with S4 for comm interface control - Fact 0
4619#
4620# sw5 Secondary Channel Control (Hardware implementation only) - Fact 0
4621#
4622# sw6 ON enables printer BUSY active LOW - Factory Setting
4623# OFF enables printer BUSY active HIGH - If set to this, ADM31 senses
4624#
4625# sw7 ON - steady cursor - Factory Setting
4626# OFF - blinking cursor
4627#
4628# sw8 ON causes selected attribute character to be displayed
4629# OFF causes SPACE to be displayed instead - Factory Setting
4630#
4631# S4 - Interface
4632# --------------
4633# Modem Interface
4634# S3 S4 S4 S4 S4
4635# sw4 sw1 sw2 sw3 sw4
4636# ---------------------------
4637# OFF ON OFF ON OFF Enable RS-232C interface, Direct Connect and
4638# Current Loop disabled - Factory Setting
4639# ON ON OFF ON OFF Enable Current Loop interface, Direct Connect
4640# disabled
4641# OFF OFF ON OFF ON Enable Direct Connect interface, RS-232C and
4642# Current Loop Disabled
4643#
4644# sw5 ON disables dot stretching mode - Factory Setting
4645# OFF enables dot stretching mode
4646# sw6 ON enables blanking function
4647# OFF enables underline function - Factory Setting
4648# sw7 ON causes NULLS to be displayed as NULLS
4649# OFF causes NULLS to be displayed as SPACES - Factory Setting
4650#
4651# S5 - Word Structure
4652# -------------------
4653# sw1 ON enables BREAK key - Factory Setting
4654# OFF disables BREAK key
4655# sw2 ON selects 50Hz monitor refresh rate
4656# OFF selects 60Hz monitor refresh rate - Factory Setting
4657#
4658# Modem Port Selection
4659# sw3 sw4 sw5
4660# ---------------
4661# ON ON ON Selects 7 DATA bits, even parity, 2 STOP bits
4662# OFF ON ON Selects 7 DATA bits, odd parity, 2 STOP bits
4663# ON OFF ON Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set.
4664# OFF OFF ON Selects 7 DATA bits, odd parity, 1 STOP bit
4665# ON ON OFF Selects 8 DATA bits, no parity, 2 STOP bits
4666# OFF ON OFF Selects 8 DATA bits, no parity, 1 STOP bit
4667# ON OFF OFF Selects 8 DATA bits, even parity, 1 STOP bit
4668# OFF OFF OFF Selects 8 DATA bits, odd parity, 1 STOP bit
4669#
4670# sw6 ON sends bit 8 a 1 (mark)
4671# OFF sends bit 8 as 0 (space) - Factory Setting
4672# sw7 ON selects Block Mode
4673# OFF selects Conversation Mode - Factory Setting
4674# sw8 ON selects Full Duplex operation
4675# OFF selects Half Duplex operation - Factory Setting
4676#
4677# S6 - Printer
4678# ------------
4679# sw1, sw2, sw6, sw7 Reserved - Factory 0
4680#
4681# Printer Port Selection
4682# same as Modem above, bit 8 (when 8 DATA bits) is always = 0
4683#
4684# sw8 ON enables Printer Port
4685# OFF disables Printer Port - Factory Setting
4686#
4687# S7 - Polling Address
4688# --------------------
4689# sw1-7 Establish ASCII character which designates terminal polling address
4690# ON = logic 0
4691# OFF = logic 1 - Factory Setting
4692# sw8 ON enables Polling Option
4693# OFF disables Polling Option - Factory Setting
4694#
4695#
4696# On some older adm31s, S4 does not exist, and S5-sw6 is not defined.
4697#
4698# This adm31 entry uses underline as the standout mode.
4699# If the adm31 gives you trouble with standout mode, check the DIP switch in
4700# position 6, bank @c11, 25% from back end of the circuit board. Should be
4701# OFF. If there is no such switch, you have an old adm31 and must use oadm31.
4702# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr)
4703adm31|lsi adm31 with sw6 set for underline mode:\
4704 :am:bs:mi:\
4705 :co#80:li#24:\
4706 :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:\
4707 :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:is=\Eu\E0:k0=^A0\r:\
4708 :k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:k6=^A6\r:\
4709 :k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:\
4710 :me=\EG0:nd=^L:se=\EG0:sf=^J:so=\EG1:ue=\EG0:up=^K:us=\EG1:
4711adm31-old|o31|old adm31:\
4712 :so=\EG4:ue@:us@:tc=adm31:
4713# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL
4714adm36|LSI ADM36:\
4715 :bs:pt:\
4716 :kn#4:\
4717 :if=/usr/lib/tabset/vt100:\
4718 :is=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l:\
4719 :tc=vt100:
4720# (adm42: removed obsolete ":ma=^K^P:" -- esr)
4721adm42|lsi adm42:\
4722 :am:bs:\
4723 :co#80:li#24:\
4724 :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :\
4725 :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:im=\Eq:ip=:kd=^J:kh=^^:\
4726 :kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:pc=\177:sf=^J:ta=^I:ue@:\
4727 :up=^K:us@:vs=\EC\E3 \E3(:tc=adm+sgr:
4728# The following termcap for the Lear Siegler ADM-42 leaves the
4729# "system line" at the bottom of the screen blank (for those who
4730# find it distracting otherwise)
4731adm42-ns|lsi adm-42 with no system line:\
4732 :al=\EE\EF \011:bt=\EI\EF \011:cd=\EY\EF \011:\
4733 :ce=\ET\EF \011:cl=\E;\EF \011:cm=\E=%+ %+ \EF \011:\
4734 :dc=\EW\EF \011:dl=\ER\EF \011:ei=\Er\EF \011:\
4735 :im=\Eq\EF \011:tc=adm42:
4736# ADM 1178 terminal -- rather like an ADM-42. Manual is dated March 1 1985.
4737# The insert mode of this terminal is commented out because it's broken for our
4738# purposes in that it will shift the position of every character on the page,
4739# not just the cursor line!
4740# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996
4741adm1178|1178|lsi adm1178:\
4742 :am:\
4743 :co#80:li#24:sg#1:ug#1:\
4744 :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\
4745 :cr=^M:dc=\EW:dl=\ER:do=^J:ho=^^:ip=6*:kb=^H:kd=^J:kl=^H:\
4746 :le=^H:md=\E(:me=\E):mr=\EG4:nd=^L:nw=^M^J:pc=\177:se=\EG0:\
4747 :sf=^J:so=\EG4:ta=^I:ue=\EG0:up=^K:us=\EG1:vs=\EC\E3 \E3(:
4748
4749#### Prime
4750#
4751# Yes, Prime made terminals. These entries were posted by Kevin J. Cummings
4752# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr.
4753# Prime merged with ComputerVision in the late 1980s; you can reach them at:
4754#
4755# ComputerVision Services
4756# 500 Old Connecticut Path
4757# Framingham, Mass.
4758#
4759
4760# Standout mode is dim reverse-video.
4761pt100|pt200|wren|fenix|prime pt100/pt200:\
4762 :am:bw:mi:ms:\
4763 :co#80:it#8:li#24:\
4764 :DC=\E[%dP:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\
4765 :al=\E[L\E[t:bt=\E[Z:cd=\E[J\E[r:ce=\E[K\E[t:cl=\E?:\
4766 :cm=\E0%+!%+!:cr=^M:dc=\E[P:dl=\E[M:do=\ED:ei=\E[4l:\
4767 :ho=\E$B:im=\E[4h:kb=^H:kd=\E[B:ke=\E[>13l:kh=\E$A:kl=\E[D:\
4768 :kr=\E[C:ks=\E[>13h:ku=\E[A:le=^H:me=\E[m:mh=\E[2m:nd=\E[C:\
4769 :nw=^M^J:se=\E[m:sf=^J:so=\E[2;7m:ta=^I:te=:\
4770 :ti=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q:\
4771 :ue=\E[m:up=\EM:us=\E[4m:vb=\E$\E$P:
4772pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode:\
4773 :co#132:\
4774 :cm=\E[%i%d;%dH:tc=pt100:
4775pt250|Prime PT250:\
4776 :se@:so@:tc=pt100:
4777pt250w|Prime PT250 in 132-column mode:\
4778 :se@:so@:tc=pt100w:
4779
4780#### Qume (qvt)
4781#
4782# Qume, Inc.
4783# 3475-A North 1st Street
4784# San Jose CA 95134
4785# Vox: (800)-457-4447
4786# Fax: (408)-473-1510
4787# Net: josed@techsupp.wyse.com (Jose D'Oliveira)
4788#
4789# Qume was bought by Wyse, but still (as of early 1995) has its own support
4790# group and production division.
4791#
4792# Discontinued Qume models:
4793#
4794# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+
4795# built to replace them, and a qvt119+ which was a 101+ with available wide
4796# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations
4797# and an ANSI-compatible qvt203 that replaced it. Qume started producing
4798# ANSI-compatible terminals with the qvt323 and qvt61.
4799#
4800# Current Qume models (as of February 1995):
4801#
4802# All current Qume terminals have ANSI-compatible operation modes.
4803# Qume is still producing the qvt62, which features emulations for other
4804# popular lines such as ADDS, and dual-host capabilities. The qvt82 is
4805# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal
4806# with many emulations including Wyse370, Wyse 325, etc. Their newest
4807# model is the qvt520, which is vt420-compatible.
4808#
4809# There are some ancient printing Qume terminals under `Daisy Wheel Printers'
4810#
4811# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its
4812# setup mode. Shift-s should be a configuration save to NVRAM.
4813
4814qvt101|qvt108|qume qvt 101 and QVT 108:\
4815 :sg#1:tc=qvt101+:
4816
4817# This used to have :vs=\E.2: but no :ve: or :vi:. The BSD termcap
4818# file had :vs=\EM4 \200\200\200:. I've done the safe thing and yanked
4819# both. The :mr: is from BSD, which also claimed bold=\E( and dim=\E).
4820# What seems to be going on here is that this entry was designed so that
4821# the normal highlight is bold and standout is dim plus something else
4822# (reverse-video maybe? But then, are there two :mr: sequences?)
4823qvt101+|qvt101p|qume qvt 101 PLUS product:\
4824 :am:bw:hs:ul:\
4825 :co#80:li#24:sg#0:\
4826 :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\
4827 :ct=\E3:dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=:fs=^M:ho=^^:\
4828 :ic=\EQ:im=:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\
4829 :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:\
4830 :kB=\EI:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:\
4831 :kr=^L:ku=^K:le=^H:mk@:nd=^L:pf=\EA:po=\E@:se=\E(:sf=^J:\
4832 :so=\E0P\E):st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:ve=\E.4:\
4833 :tc=adm+sgr:
4834qvt102|qume qvt 102:\
4835 :ve=\E.:tc=qvt101:
4836# (qvt103: added <rmam>/<smam> based on init string -- esr)
4837qvt103|qume qvt 103:\
4838 :am:xn:xo:\
4839 :co#80:it#8:li#24:vt#3:\
4840 :DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\
4841 :UP=\E[%dA:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
4842 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\
4843 :ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\
4844 :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
4845 :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:\
4846 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
4847 :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>:\
4848 :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\
4849 :up=\E[A:us=\E[4m:
4850qvt103-w|qume qvt103 132 cols:\
4851 :co#132:li#24:\
4852 :rs=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=qvt103:
4853qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals:\
4854 :am:hs:mi:ms:\
4855 :co#80:li#24:sg#0:ug#0:\
4856 :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*1:cm=\E=%+ %+ :\
4857 :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:\
4858 :ho=^^:im=\Eq:is=\EDF\EC\EG0\Er\E(\E%EX:k0=^AI\r:\
4859 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
4860 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:\
4861 :ku=^K:le=^H:nd=^L:pf=\EA:po=\E@:sf=^J:sr=\EJ:st=\E1:ta=^I:\
4862 :ts=\Eg\Ef:up=^K:us=\EG8:vb=\En0\En1:ve=\E.4:vs=\E.2:\
4863 :tc=adm+sgr:
4864qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines:\
4865 :li#25:tc=qvt119+:
4866qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode:\
4867 :co#132:\
4868 :is=\EDF\EC\EG0\Er\E(\E%\EX\En4:tc=qvt119+:
4869qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25:\
4870 :li#25:tc=qvt119+:
4871qvt203|qvt203+|qume qvt 203 Plus:\
4872 :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:ip=:k0=\E[29~:\
4873 :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\
4874 :k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[28~:sf=\n:tc=qvt103:
4875qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video):\
4876 :co#132:li#24:\
4877 :rs=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=qvt203:
4878#
4879# Since a command is present for enabling 25 data lines,
4880# a specific terminfo entry may be generated for the 203.
4881# If one is desired for the QVT 119 PLUS then 25 lines must
4882# be selected in the status line (setup line 9).
4883#
4884qvt203-25|QVT 203 PLUS with 25 by 80 column mode:\
4885 :co#80:li#25:\
4886 :is=\E[=40h\E[?3l:tc=qvt203:
4887qvt203-25-w|QVT 203 PLUS with 25 by 132 columns:\
4888 :co#132:li#25:\
4889 :rs=\E[?3h\E[=40h:tc=qvt203:
4890
4891#### Televideo (tvi)
4892#
4893# TeleVideo
4894# 550 East Brokaw Road
4895# PO Box 49048 95161
4896# San Jose CA 95112
4897# Vox: (408)-954-8333
4898# Fax: (408)-954-0623
4899#
4900#
4901# There are some tvi terminals that require incredible amounts of padding and
4902# some that don't. I'm assuming tvi912 and tvi920 are the old slow ones, and
4903# tvi912b, tvi912c, tvi920b, tvi920c are the new ones that don't need padding.
4904#
4905# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer
4906# Televideo terminals are ANSI and PC-ANSI compatible.
4907
4908tvi803|televideo 803:\
4909 :cl=\E*:tc=tvi950:
4910
4911# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
4912# Switch settings are:
4913#
4914# S1 1 2 3 4
4915# D D D D 9600
4916# D D D U 50
4917# D D U D 75
4918# D D U U 110
4919# D U D D 135
4920# D U D U 150
4921# D U U D 300
4922# D U U U 600
4923# U D D D 1200
4924# U D D U 1800
4925# U D U D 2400
4926# U D U U 3600
4927# U U D D 4800
4928# U U D U 7200
4929# U U U D 9600
4930# U U U U 19200
4931#
4932# S1 5 6 7 8
4933# U D X D 7N1 (data bits, parity, stop bits) (X means ignored)
4934# U D X U 7N2
4935# U U D D 7O1
4936# U U D U 7O2
4937# U U U D 7E1
4938# U U U U 7E2
4939# D D X D 8N1
4940# D D X U 8N2
4941# D U D D 8O1
4942# D U U U 8E2
4943#
4944# S1 9 Autowrap
4945# U on
4946# D off
4947#
4948# S1 10 CR/LF
4949# U do CR/LF when CR received
4950# D do CR when CR received
4951#
4952# S2 1 Mode
4953# U block
4954# D conversational
4955#
4956# S2 2 Duplex
4957# U half
4958# D full
4959#
4960# S2 3 Hertz
4961# U 50
4962# D 60
4963#
4964# S2 4 Edit mode
4965# U local
4966# D duplex
4967#
4968# S2 5 Cursor type
4969# U underline
4970# D block
4971#
4972# S2 6 Cursor down key
4973# U send ^J
4974# D send ^V
4975#
4976# S2 7 Screen color
4977# U green on black
4978# D black on green
4979#
4980# S2 8 DSR status (pin 6)
4981# U disconnected
4982# D connected
4983#
4984# S2 9 DCD status (pin 8)
4985# U disconnected
4986# D duplex
4987#
4988# S2 10 DTR status (pin 20)
4989# U disconnected
4990# D duplex
4991# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added :kh:, :le:, :do:,
4992# :sf:, <hpa>, <vpa>, :am:, :ms: from SCO entry -- esr)
4993tvi910|televideo model 910:\
4994 :am:bs:ms:\
4995 :co#80:it#8:li#24:sg#1:\
4996 :bl=^G:bt=\EI:cd=\EY:ce=\ET:ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :\
4997 :cr=^M:cv=\E[%+ :do=^J:ho=\E=\001\001:\
4998 :if=/usr/share/tabset/stdcrt:k0=^AI\r:k1=^A@\r:k2=^AA\r:\
4999 :k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:\
5000 :k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:\
5001 :sf=^J:ta=^I:up=^K:tc=adm+sgr:
5002# From: Alan R. Rogers <rogers%albany@csnet-relay>
5003# as subsequently hacked over by someone at SCO
5004# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr)
5005#
5006# Here are the 910+'s DIP switches (U = up, D = down, X = don't care):
5007#
5008# S1 1 2 3 4:
5009# D D D D 9600 D D D U 50 D D U D 75 D D U U 110
5010# D U D D 135 D U D U 150 D U U D 300 D U U U 600
5011# U D D D 1200 U D D U 1800 U D U D 2400 U D U U 3600
5012# U U D D 4800 U U D U 7200 U U U D 9600 U U U U 19200
5013#
5014# S1 5 6 7 8:
5015# U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2
5016# U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2
5017# D U D D 8O1 D U U U 8E2
5018#
5019# S1 9 Autowrap (U = on, D = off)
5020# S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received)
5021# S2 1 Mode (U = block, D = conversational)
5022# S2 2 Duplex (U = half, D = full)
5023# S2 3 Hertz (U = 50, D = 60)
5024# S2 4 Edit mode (U = local, D = duplex)
5025# S2 5 Cursor type (U = underline, D = block)
5026# S2 6 Cursor down key (U = send ^J, D = send ^V)
5027# S2 7 Screen color (U = green on black, D = black on green)
5028# S2 8 DSR status (pin 6) (U = disconnected, D = connected)
5029# S2 9 DCD status (pin 8) (U = disconnected, D = connected)
5030# S2 10 DTR status (pin 20) (U = disconnected, D = connected)
5031#
5032tvi910+|televideo 910+:\
5033 :al=\EE:dc=\EW:dl=\ER:ei=:ho=^^:ic=\EQ:im=:k0=^A@\r:k1=^AA\r:\
5034 :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\
5035 :k8=^AH\r:k9=^AI\r:ll=\E=7\s:tc=tvi910:
5036
5037# (tvi912: removed obsolete ":ma=^K^P^L :", added :vb: and
5038# :kh: from BRL entry -- esr)
5039tvi912|tvi914|tvi920|old televideo 912/914/920:\
5040 :am:bs:ms:pt:\
5041 :co#80:it#8:li#24:sg#1:ug#1:\
5042 :al=\EE:bl=^G:cd=\Ey:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:\
5043 :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:\
5044 :if=/usr/share/tabset/stdcrt:im=:k0=^AI\r:k1=^A@\r:\
5045 :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\
5046 :k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\
5047 :nd=^L:se=\Ek:sf=^J:so=\Ej:st=\E1:ta=^I:ue=\Em:up=^K:us=\El:\
5048 :vb=\Eb\Ed:
5049# the 912 has a <funct> key that's like shift: <funct>8 xmits "^A8\r".
5050# The 920 has this plus real function keys that xmit different things.
5051# Terminfo makes you use the funct key on the 912 but the real keys on the 920.
5052tvi912c|tvi912b|new televideo 912:\
5053 :al=\EE:dl=\ER:tc=tvi912:
5054# set to page 1 when entering curses application (\E-17 )
5055# reset to page 0 when exiting curses application (\E-07 )
5056tvi912-2p|tvi920-2p|tvi-2p|televideo w/2 pages:\
5057 :te=\E-07\s:ti=\E-17\s:tc=tvi912:
5058# We got some new tvi912c terminals that act really weird on the regular
5059# termcap, so one of our gurus worked this up. Seems that cursor
5060# addressing is broken.
5061tvi912cc|tvi912 at cowell college:\
5062 :cm@:tc=tvi912c:
5063
5064# Here are the switch settings for the tvi920c:
5065#
5066# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down:
5067# 2: 9600 3: 4800 4: 2400 5: 1200
5068# 6: 600 7: 300 8: 150 9: 75
5069# 10: 110
5070#
5071# S2 UART/Terminal options:
5072# Up Down
5073# 1: Not used Not allowed
5074# 2: Alternate character set Standard character set
5075# 3: Full duplex Half duplex
5076# 4: 50 Hz refresh 60 Hz refresh
5077# 5: No parity Send parity
5078# 6: 2 stop bits 1 stop bit
5079# 7: 8 data bits 7 data bits
5080# 8: Not used Not allowed on Rev E or lower
5081# 9: Even parity Odd parity
5082# 10: Steady cursor Blinking cursor
5083# (On Rev E or lower, use W25 instead of switch 10.)
5084#
5085# S5 UART/Terminal options:
5086# Open Closed
5087# 1: P3-6 Not connected DSR received on P3-6
5088# 2: P3-8 Not connected DCD received on P3-8
5089#
5090# 3 Open, 4 Open: P3-20 Not connected
5091# 3 Open, 4 Closed: DTR on when terminal is on
5092# 3 Closed, 4 Open: DTR is connected to RTS
5093# 3 Closed, 4 Closed: Not allowed
5094#
5095# 5 Closed: HDX printer (hardware control) Rev. K with extension port off,
5096# all data transmitted out of the modem port (P3) will also be
5097# transmitted out of the printer port (P4).
5098#
5099# 6 Open, 7 Open: Not allowed
5100# 6 Open, 7 Closed: 20ma current loop input
5101# 6 Closed, 7 Open: RS232 input
5102# 6 Closed, 7 Closed: Not allowed
5103#
5104# Jumper options:
5105# If the jumper is installed, the effect will occur (the next time the terminal
5106# is switched on).
5107#
5108# S4/W31: Enables automatic LF upon receipt of CR from
5109# remote or keyboard.
5110# S4/W32: Enables transmission of EOT at the end of Send. If not
5111# installed, a carriage return is sent.
5112# S4/W33: Disables automatic carriage return in column 80.
5113# S4/W34: Selects Page Print Mode as initial condition. If not
5114# installed, Extension Mode is selected.
5115#
5116tvi920b|tvi920c|new televideo 920:\
5117 :al=\EE:dl=\ER:k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:\
5118 :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\
5119 :tc=tvi912:
5120
5121# Televideo 921 and variants
5122# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995
5123# (tvi921: removed :ko=bt: before translation, I see no backtab cap;
5124# also added empty <acsc> to suppress tic warning -- esr)
5125tvi921|televideo model 921 with sysline same as page & real vi function:\
5126 :am:bs:hs:pt:xn:xs:\
5127 :co#80:li#24:sg#0:\
5128 :ac=:ae=\E%%%:al=\EE:as=\E$:cd=\EY:ce=\ET:cl=^Z:\
5129 :cm=3\E=%+ %+ :cr=^M:dc=\EW:dl=1*\ER:do=^V:ds=\Ef\r\Eg:ei=:\
5130 :fs=\Eg:ho=^^:ic=\EQ:if=/usr/share/tabset/stdcrt:im=:\
5131 :is=\El\E"\EF1\E.3\017\EA\E<:kA=\EE:kC=^Z:kD=\EW:kE=\ET:\
5132 :kI=\EQ:kL=1*\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:ku=^K:le=^H:\
5133 :mk@:nd=^L:nw=^M^J:sf=^J:ta=^I:ts=\Ef\EG0:up=^K:ve=\E.3:\
5134 :vs=\E.2:tc=adm+sgr:
5135# without the beeper
5136# (tvi92B: removed :ko=bt: before translation, I see no backtab cap;
5137# also added empty <acsc> to suppress tic warning -- esr)
5138tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper:\
5139 :am:hs:xn:xs:\
5140 :co#80:li#24:sg#0:\
5141 :ac=:ae=\E%%%:al=\EE:as=\E$:cd=\EY:ce=\ET:cl=^Z:\
5142 :cm=3\E=%+ %+ :cr=^M:dc=\EW:dl=1*\ER:do=^V:ds=\Ef\r\Eg:ei=:\
5143 :fs=\Eg:ho=^^:ic=\EQ:if=/usr/share/tabset/stdcrt:im=:\
5144 :is=\El\E"\EF1\E.3\017\EA\E<:kA=\EE:kC=^Z:kD=\EW:kE=\ET:\
5145 :kI=\EQ:kL=1*\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:ku=^K:le=^H:\
5146 :mk@:nd=^L:nw=^M^J:sf=^J:ta=^I:ts=\Ef\EG0:up=^K:vb=\Eb\Ed:\
5147 :ve=\E.3:vs=\E.2:tc=adm+sgr:
5148# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr)
5149tvi92D|tvi92B with DTR instead of XON/XOFF & better padding:\
5150 :al=2*\EE:dl=2*\ER:is=\El\E"\EF1\E.3\016\EA\E<:kA=2*\EE:\
5151 :kL=2*\ER:tc=tvi92B:
5152
5153# (tvi924: This used to have :ds=\Es0:, :fs=\031:. I put the new strings
5154# in from a BSD termcap file because it looks like they do something the
5155# old ones skip -- esr)
5156tvi924|televideo tvi924:\
5157 :am:bw:hs:in:mi:ms:xn:xo:\
5158 :co#80:it#8:li#24:sg#0:ws#80:\
5159 :F1=^AK\r:F2=^AL\r:F3=^AM\r:F4=^AN\r:F5=^AO\r:al=\EE:bl=^G:\
5160 :bt=\EI:cd=\Ey:ce=\Et:cl=\E*0:cm=\E=%+ %+ :cr=^M:\
5161 :cs=\E_%+ %+ :ct=\E3:dc=\EW:dl=\ER:do=^V:ds=\Es0\Ef\031:\
5162 :ei=:fs=\031\Es1:ho=^^:\
5163 :i1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0:ic=\EQ:\
5164 :if=/usr/share/tabset/stdcrt:im=:k0=^A@\r:k1=^AA\r:\
5165 :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\
5166 :k8=^AH\r:k9=^AI\r:k;=^AJ\r:kA=\EE:kC=\E*0:kD=\EW:kE=\Et:\
5167 :kI=\EQ:kL=\ER:kS=\Ey:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:\
5168 :l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:l9=F10:\
5169 :la=F11:le=^H:mb=\EG2:mk@:nd=^L:pk=\E|%+1%s\031:sf=^J:\
5170 :sr=\Ej:st=\E1:ta=^I:ts=\Ef:up=^K:vb=\Eb\Ed:ve=\E.3:vi=\E.0:\
5171 :vs=\E.1:tc=adm+sgr:
5172
5173# TVI925 DIP switches. In each of these, D = Down and U = Up,
5174#
5175# Here are the settings for the external (baud) switches (S1):
5176#
5177# Position Baud
5178# 7 8 9 10 [Printer]
5179# 1 2 3 4 [Main RS232]
5180# -----------------------------------------------------
5181# D D D D 9600
5182# D D D U 50
5183# D D U D 75
5184# D D U U 110
5185# D U D D 135
5186# D U D U 150
5187# D U U D 300
5188# D U U U 600
5189# U D D D 1200
5190# U D D U 1800
5191# U D U D 2400
5192# U D U U 3600
5193# U U D D 4800
5194# U U D U 7200
5195# U U U D 9600
5196# U U U U 19200
5197#
5198#
5199# Settings for word length and stop-bits (S1)
5200#
5201# Position Description
5202# 5 6
5203# ---------------------------
5204# U - 7-bit word
5205# D - 8-bit word
5206# - U 2 stop bits
5207# - D 1 stop bit
5208#
5209#
5210# S2 (external) settings
5211#
5212# Position Up Dn Description
5213# --------------------------------------------
5214# 1 X Local edit
5215# X Duplex edit (transmit editing keys)
5216# --------------------------------------------
5217# 2 X 912/920 emulation
5218# X 925
5219# --------------------------------------------
5220# 3 X
5221# 4 X No parity
5222# 5 X
5223# --------------------------------------------
5224# 3 X
5225# 4 X Odd parity
5226# 5 X
5227# --------------------------------------------
5228# 3 X
5229# 4 X Even parity
5230# 5 X
5231# --------------------------------------------
5232# 3 X
5233# 4 X Mark parity
5234# 5 X
5235# --------------------------------------------
5236# 3 X
5237# 4 X Space parity
5238# 5 X
5239# --------------------------------------------
5240# 6 X White on black display
5241# X Black on white display
5242# --------------------------------------------
5243# 7 X Half Duplex
5244# 8 X
5245# --------------------------------------------
5246# 7 X Full Duplex
5247# 8 X
5248# --------------------------------------------
5249# 7 X Block mode
5250# 8 X
5251# --------------------------------------------
5252# 9 X 50 Hz
5253# X 60 Hz
5254# --------------------------------------------
5255# 10 X CR/LF (Auto LF)
5256# X CR only
5257#
5258# S3 (internal switch) settings:
5259#
5260# Position Up Dn Description
5261# --------------------------------------------
5262# 1 X Keyclick off
5263# X Keyclick on
5264# --------------------------------------------
5265# 2 X English
5266# 3 X
5267# --------------------------------------------
5268# 2 X German
5269# 3 X
5270# --------------------------------------------
5271# 2 X French
5272# 3 X
5273# --------------------------------------------
5274# 2 X Spanish
5275# 3 X
5276# --------------------------------------------
5277# 4 X Blinking block cursor
5278# 5 X
5279# --------------------------------------------
5280# 4 X Blinking underline cursor
5281# 5 X
5282# --------------------------------------------
5283# 4 X Steady block cursor
5284# 5 X
5285# --------------------------------------------
5286# 4 X Steady underline cursor
5287# 5 X
5288# --------------------------------------------
5289# 6 X Screen blanking timer (ON)
5290# X Screen blanking timer (OFF)
5291# --------------------------------------------
5292# 7 X Page attributes
5293# X Line attributes
5294# --------------------------------------------
5295# 8 X DCD disconnected
5296# X DCD connected
5297# --------------------------------------------
5298# 9 X DSR disconnected
5299# X DSR connected
5300# --------------------------------------------
5301# 10 X DTR Disconnected
5302# X DTR connected
5303# --------------------------------------------
5304#
5305# (tvi925: BSD has :cl=\E*:. I got :is: and :sr: from there -- esr)
5306tvi925|televideo 925:\
5307 :am:bs:bw:hs:ul:\
5308 :co#80:li#24:sg#1:\
5309 :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\
5310 :ct=\E3:dc=\EW:dl=\ER:do=^V:ds=\Eh:ei=:fs=^M\Eg:ho=^^:ic=\EQ:\
5311 :im=:is=\El\E":k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:\
5312 :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\
5313 :kA=\EE:kC=^Z:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:\
5314 :kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:sf=^J:sr=\Ej:st=\E1:\
5315 :ta=^I:ts=\Eh\Ef:up=^K:vb=\Eb\Ed:ve=\E.4:vs=\E.2:\
5316 :tc=adm+sgr:
5317# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL
5318# to avoid "magic cookie" standout glitch:
5319tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\
5320 :sg@:\
5321 :kb=^H:kd=^J:kl=^H:se=\E(:so=\E):tc=tvi925:
5322
5323# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993
5324# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82
5325# for additional capabilities,
5326# The following tvi descriptions from B:pjphar and virus!mike
5327# is for all 950s. It sets the following attributes:
5328# full duplex (\EDF) write protect off (\E()
5329# conversation mode (\EC) graphics mode off (\E%)
5330# white on black (\Ed) auto page flip off (\Ew)
5331# turn off status line (\Eg) clear status line (\Ef\r)
5332# normal video (\E0) monitor mode off (\EX or \Eu)
5333# edit mode (\Er) load blank char to space (\Ee\040)
5334# line edit mode (\EO) enable buffer control (^O)
5335# protect mode off (\E\047) duplex edit keys (\El)
5336# program unshifted send key to send line all (\E016)
5337# program shifted send key to send line unprotected (\E004)
5338# set the following to nulls:
5339# field delimiter (\Ex0\200\200)
5340# line delimiter (\Ex1\200\200)
5341# start-protected field delimiter (\Ex2\200\200)
5342# end-protected field delimiter (\Ex3\200\200)
5343# set end of text delimiter to carriage return/null (\Ex4\r\200)
5344#
5345# TVI 950 Switch Setting Reference Charts
5346#
5347# TABLE 1:
5348#
5349# S1 1 2 3 4 5 6 7 8 9 10
5350# +-----------------------+-----+-----+-----------------------+
5351# | Computer Baud Rate |Data |Stop | Printer Baud Rate |
5352# | |Bits |Bits | |
5353# +------+-----------------------+-----+-----+-----------------------+
5354# | Up | See | 7 | 2 | See |
5355# +------+-----------------------+-----+-----+-----------------------+
5356# | Down | TABLE 2 | 8 | 1 | TABLE 2 |
5357# +------+-----------------------+-----+-----+-----------------------+
5358#
5359#
5360# S2 1 2 3 4 5 6 7 8 9 10
5361# +-----+-----+-----------------+-----+-----------+-----+-----+
5362# |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click|
5363# +------+-----+-----+-----------------+-----+-----------+-----+-----+
5364# | Up | Dplx|Blink| See |GonBk| See | 60 | Off |
5365# +------+-----+-----+-----------------+-----+-----------+-----+-----+
5366# | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On |
5367# +------+-----+-----+-----------------+-----+-----------+-----+-----+
5368#
5369# TABLE 2:
5370#
5371# +-----------+-----+-----+-----+-----+-----------+
5372# | Display | 1 | 2 | 3 | 4 | Baud |
5373# +-----------+-----+-----+-----+-----+ |
5374# | Printer | 7 | 8 | 9 | 10 | Rate |
5375# +-----------+-----+-----+-----+-----+-----------+
5376# | D | D | D | D | 9600 |
5377# | U | D | D | D | 50 |
5378# | D | U | D | D | 75 |
5379# | U | U | D | D | 110 |
5380# | D | D | U | D | 135 |
5381# | U | D | U | D | 150 |
5382# | D | U | U | D | 300 |
5383# | U | U | U | D | 600 |
5384# | D | D | D | U | 1200 |
5385# | U | D | D | U | 1800 |
5386# | D | U | D | U | 2400 |
5387# | U | U | D | U | 3600 |
5388# | D | D | U | U | 4800 |
5389# | U | D | U | U | 7200 |
5390# | D | U | U | U | 9600 |
5391# | U | U | U | U | 19200 |
5392# +-----+-----+-----+-----+-----------+
5393#
5394# TABLE 3:
5395# +-----+-----+-----+-----------+
5396# | 3 | 4 | 5 | Parity |
5397# +-----+-----+-----+-----------+
5398# | X | X | D | None |
5399# | D | D | U | Odd |
5400# | D | U | U | Even |
5401# | U | D | U | Mark |
5402# | U | U | U | Space |
5403# +-----+-----+-----+-----------+
5404# X = don't care
5405#
5406# CHART:
5407# +-----+-----+-----------------+
5408# | 7 | 8 | Communication |
5409# +-----+-----+-----------------+
5410# | D | D | Half Duplex |
5411# | D | U | Full Duplex |
5412# | U | D | Block |
5413# | U | U | Local |
5414# +-----+-----+-----------------+
5415#
5416# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:".
5417# I also inserted :ic: and :kI:; the :ko: string indicated that :IC:
5418# should be present and all tvi native modes use the same string for this.
5419# Finally, note that BSD has cud1=^V. -- esr)
5420tvi950|televideo 950:\
5421 :am:bs:hs:mi:ms:xn:xo:\
5422 :co#80:it#8:li#24:sg#1:\
5423 :ac=b\011c\014d\re\ni\013:ae=^X:al=\EE:as=^U:bl=^G:bt=\EI:\
5424 :cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :cr=^M:ct=\E3:dc=\EW:\
5425 :dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:ho=^^:ic=\EQ:im=\Eq:\
5426 :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r:\
5427 :k0=^A0\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\
5428 :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kB=\EI:kC=\E*:\
5429 :kD=\EW:kE=\Et:kI=\EQ:kL=\ER:kS=\Ey:kb=^H:kd=^V:kh=^^:kl=^H:\
5430 :kr=^L:ku=^K:le=^H:mk@:nd=^L:pf=\Ea:po=\E`:sf=^J:sr=\Ej:\
5431 :st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:tc=adm+sgr:
5432#
5433# is for 950 with two pages adds the following:
5434# set 48 line page (\E\\2)
5435# place cursor at page 0, line 24, column 1 (\E-07 )
5436# set local (no send) edit keys (\Ek)
5437#
5438# two page 950 adds the following:
5439# when entering ex, set 24 line page (\E\\1)
5440# when exiting ex, reset 48 line page (\E\\2)
5441# place cursor at 0,24,1 (\E-07 )
5442# set duplex (send) edit keys (\El) when entering vi
5443# set local (no send) edit keys (\Ek) when exiting vi
5444#
5445tvi950-2p|televideo950 w/2 pages:\
5446 :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07 \011:\
5447 :ke=\Ek:ks=\El:te=\E\\2\E-07\s:ti=\E\\1\E-07\s:tc=tvi950:
5448#
5449# is for 950 with four pages adds the following:
5450# set 96 line page (\E\\3)
5451# place cursor at page 0, line 24, column 1 (\E-07 )
5452#
5453# four page 950 adds the following:
5454# when entering ex, set 24 line page (\E\\1)
5455# when exiting ex, reset 96 line page (\E\\3)
5456# place cursor at 0,24,1 (\E-07 )
5457#
5458tvi950-4p|televideo950 w/4 pages:\
5459 :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07 \011:\
5460 :ke=\Ek:ks=\El:te=\E\\3\E-07\s:ti=\E\\1\E-07\s:tc=tvi950:
5461#
5462# :is: for reverse video 950 changes the following:
5463# set reverse video (\Ed)
5464#
5465# set vb accordingly (\Ed ...delay... \Eb)
5466#
5467tvi950-rv|televideo950 rev video:\
5468 :is=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0:\
5469 :vb=\Ed\Eb:tc=tvi950:
5470
5471# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv
5472tvi950-rv-2p|televideo950 rev video w/2 pages:\
5473 :is=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07\s:\
5474 :ke=\Ek:ks=\El:te=\E\\2\E-07\s:ti=\E\\1\E-07\s:vb=\Ed\Eb:\
5475 :tc=tvi950:
5476
5477# tvi950-rv uses the appropriate entries from 950-4p and 950-rv
5478tvi950-rv-4p|televideo950 rev video w/4 pages:\
5479 :is=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07\s:\
5480 :ke=\Ek:ks=\El:te=\E\\3\E-07\s:ti=\E\\1\E-07\s:vb=\Ed\Eb:\
5481 :tc=tvi950:
5482# From: Andreas Stolcke <stolcke@icsi.berkeley.edu>
5483# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H";
5484# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in
5485# the :rs: string, inserted the :IC: implied by the termcap :ko: string. Note
5486# the :ko: string had :cl: in it, which means that one of the original
5487# :cl=\E*:, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what
5488# the 950 has. Finally, corrected the <kel> string to match the 950 and what
5489# ko implies -- esr)
5490# If the BSD termcap file was right, :cm=\E=%p1%{32}%+%c%p2%{32}%+%c: would
5491# also work.
5492tvi955|televideo 955:\
5493 :5i:bs:ms@:\
5494 :it#8:sg@:\
5495 :RA=\E[=7l:RX=^N:SA=\E[=7h:SX=^O:\
5496 :ac=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ:ae=\E%%%:as=\E$:\
5497 :cm=\E[%i%d;%dH:do=^V:is=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El:\
5498 :kM=\EQ:kN=\EK:kP=\EJ:kT=\E1:ka=\E3:kt=\E2:mb=\EG2:\
5499 :me=\EG0\E[=5l:mh=\E[=5h:mk=\EG1:ps=\EP:\
5500 :r1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r:\
5501 :sf@:ve=\E.2:vi=\E.0:vs=\E.1:tc=tvi950:
5502tvi955-w|955-w|televideo955 w/132 cols:\
5503 :co#132:\
5504 :is=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El:tc=tvi955:
5505# use half-intensity as normal mode, full intensity as :md:
5506tvi955-hb|955-hb|televideo955 half-bright:\
5507 :is=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El:md=\E[=5l:\
5508 :me=\EG0\E[=5h:mh@:tc=tvi955:
5509# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin
5510# (tvi970: removed ":sg#0:"; removed :se:=\E[m, :ue:=\E[m;
5511# added :am:/:cs:/:ho:/<hpa>/<vpa>/:ti:/:te: from BRL.
5512# According to BRL we could have :ke:=\E>, :ks:=\E= but I'm not sure what
5513# it does to the function keys. I deduced <rmam>/<smam>.
5514# also added empty <acsc> to suppress tic warning, -- esr)
5515tvi970|televideo 970:\
5516 :am:bs:da:db:mi:ms:pt:\
5517 :co#80:it#8:li#24:\
5518 :RA=\E[?7h:SA=\E[?7l:ac=:ae=\E(B:al=\E[L:as=\E(B:bt=\E[Z:\
5519 :cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\E[H\E[2J:cm=\E[%i%d;%df:\
5520 :cs=\E[%i%d;%dr:cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=\ED:\
5521 :ds=\Eg\Ef\r:ei=\E[4l:ho=\E[H:im=\E[4h:\
5522 :is=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J:k1=\E?a:\
5523 :k2=\E?b:k3=\E?c:k4=\E?d:k5=\E?e:k6=\E?f:k7=\E?g:k8=\E?h:\
5524 :k9=\E?i:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
5525 :le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:sr=\EM:ta=^I:te=:\
5526 :ti=\E[?20l\E[?7h\E[1Q:ue=\E[m:up=\EM:us=\E[4m:\
5527 :vb=\E[5m\E[m:vs=\E[1Q:
5528tvi970-vb|televideo 970 with visual bell:\
5529 :vb=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l:tc=tvi970:
5530tvi970-2p|televideo 970 with using 2 pages of memory:\
5531 :te=\E[H\E[J\E[V:ti=\E[U\E[?20l\E[?7h\E[1Q:tc=tvi970:
5532# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars
5533# per line (rather than 40), Esc K chooses the normal character set. Not sure
5534# padding is needed, but adapted from the tvi920c termcap. The :so: and
5535# :us: strings are klutzy, but at least use no screen space.
5536# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>,
5537# its absence means <smam>=\Ev isn't safe to use. -- esr)
5538# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84.
5539# The :cd:/:k0:/:k1:/:kh:/<mc4>, and <mc5> caps are from BRL, which says:
5540# F1 and F2 should be programmed as ^A and ^B; required for UNIFY.
5541tvipt|televideo personal terminal:\
5542 :am:bs:\
5543 :co#80:li#24:\
5544 :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dl=\ER:\
5545 :ho=^^:if=/usr/share/tabset/stdcrt:is=\Ev\Eu\EK:k0=^A:\
5546 :k1=^B:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:pf=^T:\
5547 :po=^R:se=\EF:so=\EG1@A\EH:ue=\EF:up=^K:us=\EG1B@\EH:
5548# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996
5549# (untranslatable capabilities removed to fit entry within 1023 bytes)
5550# (sgr removed to fit entry within 1023 bytes)
5551# (acsc removed to fit entry within 1023 bytes)
5552# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
5553tvi9065|televideo 9065:\
5554 :am:bw:hs:mi:ms:xn:xo:\
5555 :co#80:it#8:li#25:lm#0:ma#4:vt#0:ws#30:\
5556 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
5557 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
5558 :ae=\E%%%:al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\
5559 :cm=\E=%+ %+ :cr=^M:cs=\E[%i%d;%dr:ct=\E3:dc=\EW:dl=\ER:\
5560 :dm=\Er:do=^V:ds=\E_30\r:ec=\E[%d@:ed=\0:ei=\Er:fs=^M:ho=^^:\
5561 :i1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er:\
5562 :i2=\E<\E[=4l\E[=8h:if=/usr/share/tabset/stdcrt:im=\Eq:\
5563 :ip=:is=\EF2\EG0\E\\L:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
5564 :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kb=^H:\
5565 :kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=\E[25;1H:mb=\EG2:\
5566 :md=\EG,:me=\EG0:mh=\EGp:mr=\EG4:nd=^L:nw=^M^J:\
5567 :rp=\E[%r%db%.:se=\EG0:sf=^J:so=\EGt:sr=\Ej:st=\E1:ta=^I:\
5568 :te=\E.3\Er\E[1;25r\E[25;0H:ti=\E.2:ts=\E[4;1v\E_30:\
5569 :uc=\EG8\EG0:ue=\EG0:up=^K:us=\EG8:vb=\Eb\Ed:ve=\E.3:\
5570 :vi=\E.0:vs=\E.2:
5571
5572#### Visual (vi)
5573#
5574# In September 1993, Visual Technology of Westboro, Massachusetts,
5575# merged with White Pine Software of Nashua, New Hampshire.
5576#
5577# White Pine Software may be contacted at +1 603/886-9050.
5578# Or visit White Pine on the World Wide Web at URL http://www.wpine.com.
5579#
5580
5581# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs>
5582# Recently I hacked together the following termcap for Visual
5583# Technology's Visual 50 terminal. It's a slight modification of
5584# the vt52 termcap.
5585# It's intended to run when the Visual 50 is in vt52 emulation mode
5586# (I know what you're thinking; if it's emulating a vt52, then why
5587# another termcap? Well, it turns out that the Visual 50 can handle
5588# :dl: and db(?) among other things, which the vt52 can't)
5589# The termcap works OK for the most part. The only problem is on
5590# character inserts. The whole line gets painfully redrawn for each
5591# character typed. Any suggestions?
5592# Beau's entry is combined with the vi50 entry from University of Wisconsin.
5593# Note especially the :al: function. :k4:-:k6: are really l4-l6 in
5594# disguise; :k7:-:k9: are really l1-l3.
5595vi50|visual 50:\
5596 :am:bs:da:db:ms:pt:\
5597 :co#80:it#8:li#24:\
5598 :al=\EL:bl=^G:bt=4\Ez:cd=\EJ:ce=16\EK:cl=\EH\EJ:\
5599 :cm=\EY%+ %+ :cr=^M:dl=3*\EM:do=\EB:ho=\EH:k1=\EP:k2=\EQ:\
5600 :k3=\ER:k4=\EV:k5=\EE:k6=\E]:k7=\EL:k8=\Ev:k9=\EM:kb=^H:\
5601 :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:nl=^J:\
5602 :nw=^M^J:se=\ET:sf=^J:so=\EU:sr=\EI:ta=^I:ue=\EW:up=\EA:\
5603 :us=\ES:
5604# this one was BSD & SCO's vi50
5605vi50adm|visual 50 in adm3a mode:\
5606 :am:ms:\
5607 :co#80:it#8:li#24:\
5608 :al=\EL:bl=^G:cd=\Ek:ce=\EK:cl=^Z:cm=\E=%+ %+ :cr=^M:dl=\EM:\
5609 :do=^J:ho=\EH:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:\
5610 :nd=^L:se=\ET:sf=^J:so=\EU:ta=^I:up=^K:
5611# From: Jeff Siegal <jbs@quiotix.com>
5612vi55|Visual 55:\
5613 :am:bs:mi:ms:\
5614 :co#80:it#8:li#24:\
5615 :al=\EL:cd=\EJ:ce=\EK:cl=\Ev:cm=\EY%+ %+ :cs=\E_%+A%+A:\
5616 :dc=\Ew:dl=\EM:do=^J:ei=\Eb:ho=\EH:im=\Ea:\
5617 :is=\Ev\E_AX\Eb\EW\E9P\ET:kb=^H:kd=\EB:kl=\ED:kr=\EC:\
5618 :ku=\EA:le=^H:nd=\EC:se=\ET:so=\EU:sr=\EI:ta=^I:up=\EA:
5619
5620# Visual 200 from BRL
5621# The following switch settings are assumed for normal operation:
5622# FULL_DUPLEX SCROLL CR
5623# AUTO_NEW_LINE_ON VISUAL_200_EMULATION_MODE
5624# Other switches may be set for operator convenience or communication
5625# requirements.
5626# Character insertion is kludged in order to get around the "beep" misfeature.
5627# (This cap is commented out because :im:/:ei: is more efficient -- esr)
5628# Supposedly "4*" delays should be used for :al:, :cd:, :cl:, :dc:,
5629# and :dl: strings, but we seem to get along fine without them.
5630vi200|visual 200:\
5631 :am:bs:mi:ms:pt:\
5632 :co#80:it#8:kn#10:li#24:\
5633 :ac=:ae=\EG:al=\EL:as=\EF:bl=^G:bt=\Ez:cd=\Ey:ce=\Ex:cl=\Ev:\
5634 :cm=\EY%+ %+ :cr=^M:ct=\Eg:dc=\EO:dl=\EM:do=^J:ho=\EH:\
5635 :k0=\E?p:k1=\E?q:k2=\E?r:k3=\E?s:k4=\E?t:k5=\E?u:k6=\E?v:\
5636 :k7=\E?w:k8=\E?x:k9=\E?y:kA=\EL:kC=\Ev:kD=\EO:kE=\Et:kI=\Ei:\
5637 :kL=\EM:kM=\Ej:kS=\EJ:kT=\E1:kb=^H:kd=\EB:ke=\E>:kh=\EH:\
5638 :kl=\ED:kr=\EC:ks=\E=:kt=\E2:ku=\EA:le=^H:me=\E3\Eb:mh=\E4:\
5639 :mk=\Ea:nd=\EC:pf=\EX:po=\EW:ps=\EH\E]:\
5640 :r1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX:se=\E3:sf=^J:so=\E4:\
5641 :sr=\EI:st=\E1:ta=^I:up=\EA:ve=\Ec:vs=\Ed:
5642# The older Visuals didn't come with function keys. This entry uses
5643# :ks: and :ke: so that the keypad keys can be used as function keys.
5644# If your version of vi doesn't support function keys you may want
5645# to use vi200-f.
5646vi200-f|visual 200 no function keys:\
5647 :is=\E3\Eb\Ej\E\\\El\EG\Ed\Ek:k0=\E?p:k1=\E?q:k2=\E?r:\
5648 :k3=\E?s:k4=\E?t:k5=\E?u:k6=\E?v:k7=\E?w:k8=\E?x:k9=\E?y:\
5649 :ke=\E>:ks=\E=:se@:so@:tc=vi200:
5650vi200-rv|visual 200 reverse video:\
5651 :se=\E3:so=\E4:sr@:ve@:vs@:tc=vi200:
5652
5653# the function keys are programmable but we don't reprogram them to their
5654# default values with :is: because programming them is very verbose. maybe
5655# an initialization file should be made for the 300 and they could be stuck
5656# in it.
5657# (vi300: added <rmam>/<smam> based on init string -- esr)
5658vi300|visual 300 ansi x3.64:\
5659 :am:bw:mi:xn:\
5660 :co#80:li#24:\
5661 :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\
5662 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\
5663 :do=\E[B:ei=\E[4l:ho=\E[H:im=\E[4h:\
5664 :is=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s:\
5665 :k1=\E_A\E\\:k2=\E_B\E\\:k3=\E_C\E\\:k4=\E_D\E\\:\
5666 :k5=\E_E\E\\:k6=\E_F\E\\:k7=\E_G\E\\:k8=\E_H\E\\:\
5667 :k9=\E_I\E\\:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
5668 :me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[1m:sr=\EM:ta=^I:\
5669 :ue=\E[m:up=\E[A:us=\E[4m:
5670# some of the vi300s have older firmware that has the command
5671# sequence for setting editing extent reversed.
5672vi300-old|visual 300 with old firmware (set edit extent reversed):\
5673 :is=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s:\
5674 :tc=vi300:
5675
5676# Visual 500 prototype entry from University of Wisconsin.
5677# The best place to look for the escape sequences is page A1-1 of the
5678# Visual 500 manual. The initialization sequence given here may be
5679# overkill, but it does leave out some of the initializations which can
5680# be done with the menus in set-up mode.
5681# The :xp: line below is so that emacs can understand the padding requirements
5682# of this slow terminal. :xp: is 10 time the padding factor.
5683# (vi500: removed unknown :xp#4: termcap;
5684# also added empty <acsc> to suppress tic warning -- esr)
5685vi500|visual 500:\
5686 :am:mi:ms:\
5687 :co#80:it#8:li#33:\
5688 :ac=:ae=^O:al=3*\EL\Ex:as=^N:bt=4\Ez:cd=3*\Ey:ce=16\Ex:\
5689 :cl=6*\Ev:cm=\EY%+ %+ :cr=^M:cs=\E(%+ %+ :dc=3*\EO:\
5690 :dl=3*\EM:do=\EB:ei=\Ej:ho=\EH:im=\Ei:\
5691 :is=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\\:\
5692 :kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\
5693 :nw=^M^J:se=\E^G:sf=^J:so=\E^H:ta=8\011:ue=\E^C:up=\EA:\
5694 :us=\E^D:
5695
5696# The visual 550 is a visual 300 with tektronix graphics,
5697# and with 33 lines. clear screen is modified here to
5698# also clear the graphics.
5699vi550|visual 550 ansi x3.64:\
5700 :li#33:\
5701 :cl=\030\E[H\E[2J:tc=vi300:
5702
5703vi603|visual603|visual 603:\
5704 :hs:mi:\
5705 :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
5706 :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:ds=\EP2;1~\E\\:ei=\E[4l:\
5707 :fs=\E\\:i1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r:\
5708 :im=\E[4h:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
5709 :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ts=\EP2~:ue=\E[24m:\
5710 :up=\E[A:us=\E[4m:tc=vt100:
5711
5712#### Wyse (wy)
5713#
5714# Wyse Technology
5715# 3471 North First Street
5716# San Jose, CA 95134
5717# Vox: (408)-473-1200
5718# Fax: (408) 473-1222
5719# Web: http://www.wyse.com
5720#
5721# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at
5722# (800)-800-WYSE (option 5 gets you a human). There's a Web page at the
5723# obvious address, <http://www.wyse.com>. They keep terminfo entries at
5724# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>.
5725#
5726# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995.
5727# They now own the Qume and Amdek brands, too. So these are the people to
5728# talk with about all Link, Qume, and Amdek terminals.
5729#
5730# These entries include a few small fixes.
5731# I canceled the bel capacities in the vb entries.
5732# I made two trivial syntax fixes in the wyse30 entry.
5733# I made some entries relative to adm+sgr.
5734#
5735#
5736# Note: The wyse75, wyse85, and wyse99 have been discontinued.
5737
5738# Although the Wyse 30 can support more than one attribute
5739# it requires magic cookies to do so. Many applications do not
5740# function well with magic cookies. The following terminfo uses
5741# the protect mode to support one attribute (dim) without cookies.
5742# If more than one attribute is needed then the wy30-mc terminfo
5743# should be used.
5744#
5745wy30|wyse30|Wyse 30:\
5746 :5i:am:bw:hs:mi:ms:xo:\
5747 :Nl#8:co#80:lh#1:li#24:lw#8:ma#1:ws#45:\
5748 :#2=\E{:&3=\Er:@8=\E7:LF=\EA11:LO=\EA10:\
5749 :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:al=\EE:\
5750 :as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\
5751 :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:\
5752 :ho=^^:im=\Eq:ip=:is=\E'\E(\E^3\E`9\016\024:k1=^A@\r:\
5753 :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\
5754 :k8=^AG\r:kA=\EE:kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:\
5755 :kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\
5756 :ll=^^^K:me=\E(\EH\003:mh=\E`7\E):mp=\E`7\E):nd=^L:\
5757 :nw=^M^J:pf=^T:pn=\Ez%+/%s\r:po=^X:ps=\EP:px=\Ez%+?%s\177:\
5758 :..sa=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\
5759 :se=\E(:sf=\n:so=\E`7\E):sr=\Ej:st=\E1:ta=\011:ts=\EF:up=^K:\
5760 :vb=\E`8\E`9:ve=\E`1:vi=\E`0:
5761#
5762# This terminal description uses the non-hidden attribute mode
5763# (with magic cookie).
5764#
5765# (wy30-mc: added :ti: to suppress tic warning --esr)
5766wy30-mc|wyse30-mc|wyse 30 with magic cookies:\
5767 :ms@:\
5768 :ma@:sg#1:\
5769 :ae=\EG0\EH\003:as=\EG0\EH\002:mb=\EG2:\
5770 :me=\EG0\E(\EH\003:mh=\EGp:mp=\EG0\E):\
5771 :..sa=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\
5772 :se=\EG0:so=\EG4:te=\EG0:ti=:tc=wy30:tc=adm+sgr:
5773# The mandatory pause used by :vb: does not work with
5774# older versions of terminfo. If you see this effect then
5775# unset xon and delete the / from the delay.
5776# i.e. change $<100/> to $<100>
5777wy30-vb|wyse30-vb|wyse 30 visible bell:\
5778 :bl@:tc=wy30:
5779#
5780# The Wyse 50 can support one attribute (e.g. Dim, Inverse,
5781# Normal) without magic cookies by using the protect mode.
5782# The following description uses this feature, but when more
5783# than one attribute is put on the screen at once, all attributes
5784# will be changed to be the same as the last attribute given.
5785# The Wyse 50 can support more attributes when used with magic
5786# cookies. The wy50-mc terminal description uses magic cookies
5787# to correctly handle multiple attributes on a screen.
5788#
5789wy50|wyse50|Wyse 50:\
5790 :5i:am:bw:hs:mi:ms:xo:\
5791 :Nl#8:co#80:lh#1:li#24:lw#8:ma#1:ws#45:\
5792 :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\
5793 :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:\
5794 :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:al=\EE:\
5795 :as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\
5796 :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:\
5797 :ho=^^:i1=\E`\:\E`9:im=\Eq:ip=:is=\016\024\E'\E(:k1=^A@\r:\
5798 :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\
5799 :k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:kE=\ET:\
5800 :kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:\
5801 :kr=^L:ku=^K:le=^H:ll=^^^K:me=\E(\EH\003:mh=\E`7\E):\
5802 :mp=\E`7\E):mr=\E`6\E):nd=^L:nw=^M^J:pf=^T:pn=\Ez%+/%s\r:\
5803 :po=^X:ps=\EP:px=\Ez%+?%s\177:\
5804 :..sa=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\
5805 :se=\E(:sf=\n:so=\E`6\E):sr=\Ej:st=\E1:ta=^I:ts=\EF:up=^K:\
5806 :vb=\E`8\E`9:ve=\E`1:vi=\E`0:
5807#
5808# This terminal description uses the non-hidden attribute mode
5809# (with magic cookie).
5810#
5811# The mandatory pause used by flash does not work with some
5812# older versions of terminfo. If you see this effect then
5813# unset :xo: and delete the / from the delay.
5814# i.e. change $<100/> to $<100>
5815# (wy50-mc: added :ti: to suppress tic warning --esr)
5816wy50-mc|wyse50-mc|wyse 50 with magic cookies:\
5817 :ms@:\
5818 :ma@:sg#1:\
5819 :ae=\EG0\EH\003:as=\EG0\EH\002:mb=\EG2:\
5820 :me=\EG0\E(\EH\003:mh=\EGp:mp=\EG0\E):mr=\EG4:\
5821 :..sa=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\
5822 :se=\EG0:so=\EGt:te=\EG0:ti=:tc=wy50:tc=adm+sgr:
5823wy50-vb|wyse50-vb|wyse 50 visible bell:\
5824 :bl@:tc=wy50:
5825wy50-w|wyse50-w|wyse 50 132-column:\
5826 :Nl#16:co#132:lw#7:ws#97:\
5827 :cm=\Ea%i%dR%dC:dc=\EW:i1=\E`;\E`9:tc=wy50:
5828wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell:\
5829 :bl@:tc=wy50-w:
5830
5831#
5832# The Wyse 350 is a Wyse 50 with color.
5833# Unfortunately this means that it has magic cookies.
5834# The color attributes are designed to overlap the reverse, dim and
5835# underline attributes. This is nice for monochrome applications
5836# because you can make underline stuff green (or any other color)
5837# but for true color applications it's not so hot because you cannot
5838# mix color with reverse, dim or underline.
5839# To further complicate things one of the attributes must be
5840# black (either the foreground or the background). In reverse video
5841# the background changes color with black letters. In normal video
5842# the foreground changes colors on a black background.
5843# This terminfo uses some of the more advanced features of curses
5844# to display both color and blink. In the final analysis I am not
5845# sure that the wy350 runs better with this terminfo than it does
5846# with the wy50 terminfo (with user adjusted colors).
5847#
5848# The mandatory pause used by flash does not work with
5849# older versions of terminfo. If you see this effect then
5850# unset xon and delete the / from the delay.
5851# i.e. change $<100/> to $<100>
5852#
5853# Bug: The <op> capability resets attributes.
5854# (untranslatable capabilities removed to fit entry within 1023 bytes)
5855wy350|wyse350|Wyse 350:\
5856 :5i:am:bw:hs:mi:xo:\
5857 :Co#8:NC#55:Nl#8:co#80:lh#1:li#24:lw#8:pa#8:sg#1:ws#45:\
5858 :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\
5859 :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:Sb=:\
5860 :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EG0\EH\003:al=\EE:\
5861 :as=\EG0\EH\002:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\
5862 :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\
5863 :ei=\Er:fs=^M:ho=^^:i1=\E`\:\E`9:i2=\E%?:im=\Eq:ip=:\
5864 :is=\016\024\E'\E(:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
5865 :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\
5866 :kA=\EE:kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:\
5867 :kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:\
5868 :mb=\EG2:me=\EG0\E(\EH\003%{0}%PA%{0}%PC:mh=\EGp:\
5869 :mp=\EG0\E):nd=^L:nw=^M^J:oc=\E%?:op=\EG0:pf=^T:\
5870 :pn=\Ez%+/%s\r:po=^X:ps=\EP:px=\Ez%+?%s\177:sf=\n:sr=\Ej:\
5871 :st=\E1:ta=^I:ts=\EF:up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:\
5872 :tc=adm+sgr:
5873wy350-vb|wyse350-vb|wyse 350 visible bell:\
5874 :bl@:tc=wy350:
5875wy350-w|wyse350-w|wyse 350 132-column:\
5876 :Nl#16:co#132:lw#7:ws#97:\
5877 :cm=\Ea%i%dR%dC:dc=\EW:i1=\E`;\E`9:tc=wy350:
5878wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell:\
5879 :bl@:tc=wy350-w:
5880#
5881# This terminfo description is untested.
5882# The wyse100 emulates an adm31, so the adm31 entry should work.
5883#
5884wy100|wyse 100:\
5885 :hs:mi:\
5886 :co#80:li#24:sg#1:\
5887 :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :cr=^M:\
5888 :dc=\EW:dl=\ER:do=^J:ds=\EA31:ei=\Er:fs=^M:im=\Eq:is=\Eu\E0:\
5889 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
5890 :k7=^AF\r:k8=^AG\r:kb=^H:kd=^J:kh=\E{:kl=^H:kr=^L:ku=^K:\
5891 :le=^H:mk@:nd=^L:sf=^J:ts=\EF:up=^K:tc=adm+sgr:
5892#
5893# The Wyse 120/150 has most of the features of the Wyse 60.
5894# This terminal does not need padding up to 9600 baud!
5895# :ms: should be set but the clear screen fails when in
5896# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
5897# then set :ms:.
5898#
5899# (untranslatable capabilities removed to fit entry within 1023 bytes)
5900# (sgr removed to fit entry within 1023 bytes)
5901# (acsc removed to fit entry within 1023 bytes)
5902wy120|wyse120|wy150|wyse150|Wyse 120/150:\
5903 :5i:am:bw:hs:km:mi:ms:xo:\
5904 :Nl#8:co#80:it#8:lh#1:li#24:lw#8:pb#9601:ws#45:\
5905 :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\
5906 :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:RA=\Ed.:\
5907 :RX=\Ec20:SA=\Ed/:SX=\Ec21:ae=\EcD:al=\EE:as=\EcE:bl=^G:\
5908 :bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :cr=^M:ct=\E0:\
5909 :dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:ho=^^:\
5910 :i1=\EcB0\EcC1:i2=\EwJ\Ew1:im=\Eq:ip=:\
5911 :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\
5912 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
5913 :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:\
5914 :kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:\
5915 :kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:mb=\EG2:\
5916 :me=\E(\EH\003\EG0\EcD:mh=\EGp:mp=\E):nd=^L:nw=\r\n:pf=^T:\
5917 :pl=\EZ2%+?%s\177:pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:\
5918 :px=\EZ1%+?%s\177:r1=\E~!\E~4:r2=\EeF\E`\::r3=\EwG\Ee(:\
5919 :sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=\011:te=\Ew1:ti=\Ew0:ts=\EF:\
5920 :up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:tc=adm+sgr:
5921#
5922wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column:\
5923 :Nl#16:co#132:lw#7:ws#97:\
5924 :cm=\Ea%i%dR%dC:dc=\EW:ip=:rs=\E`;:tc=wy120:
5925#
5926wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines:\
5927 :Nl@:lh@:li#25:lw@:\
5928 :pn@:r3=\EwG\Ee):tc=wy120:
5929#
5930wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines:\
5931 :Nl@:lh@:li#25:lw@:\
5932 :pn@:r3=\EwG\Ee):tc=wy120-w:
5933#
5934wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell:\
5935 :bl@:tc=wy120:
5936#
5937wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell:\
5938 :bl@:tc=wy120-w:
5939#
5940# The Wyse 60 is like the Wyse 50 but with more padding.
5941# The reset strings are slow and the pad times very depending
5942# on other parameters such as font loading. I have tried
5943# to follow the following outline:
5944#
5945# <rs1> -> set personality
5946# <rs2> -> set number of columns
5947# <rs3> -> set number of lines
5948# :i1: -> select the proper font
5949# :is: -> do the initialization
5950# :i3: -> set up display memory (2 pages)
5951#
5952# The Wyse 60's that have vt100 emulation are slower than the
5953# older Wyse 60's. This change happened mid-1987.
5954# The capabilities effected are :dc: :dl: :al: :sf: :sr:
5955#
5956# The meta key is only half right. This terminal will return the
5957# high order bit set when you hit CTRL-function_key
5958#
5959# It may be useful to assign two function keys with the
5960# values \E=(\s look at old data in page 1
5961# \E=W, look at bottom of page 1
5962# where \s is a space ( ).
5963#
5964# Note:
5965# The Wyse 60 runs faster when the XON/XOFF
5966# handshake is turned off.
5967#
5968# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid
5969# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
5970# (untranslatable capabilities removed to fit entry within 1023 bytes)
5971# (sgr removed to fit entry within 1023 bytes)
5972# (acsc removed to fit entry within 1023 bytes)
5973wy60|wyse60|Wyse 60:\
5974 :5i:am:bw:hs:km:mi:ms:\
5975 :Nl#8:co#80:lh#1:li#24:lw#8:ws#45:\
5976 :#2=\E{:%9=\EP:&3=\Er:@8=\E7:DK=\E`b:F1=^AJ\r:F2=^AK\r:\
5977 :F3=^AL\r:F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:\
5978 :RA=\Ed.:RC=\E`c:RX=\Ec20:SA=\Ed/:SX=\Ec21:ae=\EcD:al=\EE:\
5979 :as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\
5980 :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:\
5981 :ho=\E{:i1=\EcB0\EcC1:i2=\EwJ\Ew1:im=\Eq:ip=:\
5982 :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\
5983 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
5984 :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:\
5985 :kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:\
5986 :kl=^H:kr=^L:ku=^K:le=^H:ll=\E{^K:mb=\EG2:\
5987 :me=\E(\EH\003\EG0\EcD:mh=\EGp:mp=\E):nd=^L:nw=\r\n:pf=^T:\
5988 :pl=\EZ2%+?%s\177:pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:\
5989 :px=\EZ1%+?%s\177:r1=\E~!\E~4:r2=\EeG:r3=\EwG\Ee(:sf=\n:\
5990 :so=\EGt:sr=\Ej:st=\E1:ta=\011:te=\Ew1:ti=\Ew0:ts=\EF:up=^K:\
5991 :vb=\E`8\E`9:ve=\E`1:vi=\E`0:tc=adm+sgr:
5992#
5993wy60-w|wyse60-w|wyse 60 132-column:\
5994 :Nl#16:co#132:lw#7:ws#97:\
5995 :cm=\Ea%i%dR%dC:dc=\EW:ip=:rs=\EeF\E`;:tc=wy60:
5996#
5997wy60-25|wyse60-25|wyse 60 80-column 25-lines:\
5998 :Nl@:lh@:li#25:lw@:\
5999 :pn@:r3=\EwG\Ee):tc=wy60:
6000wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines:\
6001 :Nl@:lh@:li#25:lw@:\
6002 :pn@:r3=\EwG\Ee):tc=wy60-w:
6003#
6004wy60-42|wyse60-42|wyse 60 80-column 42-lines:\
6005 :li#42:\
6006 :al=\EE:cd=\Ey:cl=\E+:cm=\E=%+ %+ :dc=\EW:dl=\ER:\
6007 :i1=\EcB2\EcC3:ip=:nw=\r\n:r3=\Ee*:sf=\n:sr=\Ej:tc=wy60:
6008wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines:\
6009 :Nl#16:co#132:lw#7:ws#97:\
6010 :cd=\Ey:cl=\E+:cm=\Ea%i%dR%dC:dc=\EW:ho=\036:ip=:nw=\r\n:\
6011 :rs=\EeF\E`;:tc=wy60-42:
6012#
6013wy60-43|wyse60-43|wyse 60 80-column 43-lines:\
6014 :Nl@:lh@:li#43:lw@:\
6015 :pn@:r3=\Ee+:tc=wy60-42:
6016wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines:\
6017 :Nl@:lh@:li#43:lw@:\
6018 :pn@:r3=\Ee+:tc=wy60-42-w:
6019#
6020wy60-vb|wyse60-vb|Wyse 60 visible bell:\
6021 :bl@:tc=wy60:
6022wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell:\
6023 :bl@:tc=wy60-w:
6024
6025# The Wyse-99GT looks at lot like the Wyse 60 except that it
6026# does not have the 42/43 line mode. In the Wyse-60 the "lines"
6027# setup parameter controls the number of lines on the screen.
6028# For the Wyse 99GT the "lines" setup parameter controls the
6029# number of lines in a page. The screen can display 25 lines max.
6030# The Wyse-99GT also has personalities for the VT220 and
6031# Tektronix 4014. But this has no bearing on the native mode.
6032#
6033# (msgr) should be set but the clear screen fails when in
6034# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
6035# then set msgr, else use msgr@.
6036#
6037# u0 -> enter Tektronix mode
6038# u1 -> exit Tektronix mode
6039#
6040wy99gt|wyse99gt|Wyse 99gt:\
6041 :ms@:\
6042 :al=\EE:cd=\Ey:ce=\Et:cl=\E+:dc=\EW:dl=\ER:i2=\Ew0:ip=:nw@:\
6043 :rs=\E`\::sf=\n:sr=\Ej:ta=\011:te=\Ew0:ti=\Ew1:u0=\E~>\E8:\
6044 :u1=\E[42h:vb=\E`8\E`9:tc=wy60:
6045#
6046wy99gt-w|wyse99gt-w|wyse 99gt 132-column:\
6047 :Nl#16:co#132:lw#7:ws#97:\
6048 :cd=\Ey:cl=\E+:cm=\Ea%i%dR%dC:dc=\EW:ip=:rs=\E`;:tc=wy99gt:
6049#
6050wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines:\
6051 :Nl@:lh@:li#25:lw@:\
6052 :pn@:r2=\E`\::r3=\EwG\Ee):tc=wy99gt:
6053#
6054wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines:\
6055 :Nl@:lh@:li#25:lw@:\
6056 :pn@:rs=\E`;:tc=wy99gt-w:
6057#
6058wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell:\
6059 :bl@:tc=wy99gt:
6060#
6061wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell:\
6062 :bl@:tc=wy99gt-w:
6063
6064# Can't set tabs! Other bugs (ANSI mode only):
6065# - can't redefine function keys (anyway, key redefinition in ANSI mode
6066# is too much complex to be described);
6067# - meta key can't be described (the terminal forgets it when reset);
6068# The xon-xoff handshaking can't be disabled while in ansi personality, so
6069# emacs can't work at speed greater than 9600 baud. No padding is needed at
6070# this speed.
6071# dch1 has been commented out because it causes annoying glittering when
6072# vi deletes one character at the beginning of a line with tabs in it.
6073# dch makes sysgen(1M) have a horrible behavior when deleting
6074# a screen and makes screen(1) behave badly, so it is disabled too. The nice
6075# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are
6076# not, so smir and rmir are commented out as well.
6077# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
6078# (untranslatable capabilities removed to fit entry within 1023 bytes)
6079# (sgr removed to fit entry within 1023 bytes)
6080# (acsc removed to fit entry within 1023 bytes)
6081# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
6082wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard):\
6083 :am:km:mi:ms:xn:\
6084 :co#80:it#8:li#25:vt#3:\
6085 :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
6086 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
6087 :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
6088 :cs=\E[%i%d;%dr:dl=\E[M:do=\ED:ec=\E[%dX:ei=\E[4l:ho=\E[H:\
6089 :im=\E[4h:\
6090 :is=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i:\
6091 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\
6092 :k7=\E[18~:k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l:\
6093 :kl=\EOD:kr=\EOC:ks=\E[?1h:ku=\EOA:le=\010:ll=\E[24E:\
6094 :mb=\E[5m:md=\E[1m:me=\E[m\017\E["q:mh=\E[2m:mr=\E[7m:\
6095 :nd=\E[C:nw=\EE:rc=\E8:\
6096 :rs=\E[61"p\E[40h\E[?6l\E[1r\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[24E\E[4i:\
6097 :sc=\E7:se=\E[27m:sf=\n:so=\E[7m:sr=\EM:ta=^I:ue=\E[24m:\
6098 :up=\EM:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[34h\E[?25h:\
6099 :vi=\E[?25l:vs=\E[34l\E[?25h:
6100
6101# This is the american terminal. Here tabs work fine.
6102# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
6103wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard):\
6104 :ct=\E[3g:i2=\E[?5l:r3=\E[?5l:st=\EH:tc=wy99-ansi:
6105
6106# This terminal (firmware version 02) has a lot of bugs:
6107# - can't set tabs;
6108# - other bugs in ANSI modes (see above).
6109# This description disables handshaking when using cup. This is because
6110# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal
6111# cannot be used at speeds greater than 9600 baud, because at greater
6112# speeds handshaking is needed even for character sending. If you use
6113# DTR handshaking, you can use even greater speeds.
6114# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
6115# (untranslatable capabilities removed to fit entry within 1023 bytes)
6116# (sgr removed to fit entry within 1023 bytes)
6117# (acsc removed to fit entry within 1023 bytes)
6118# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
6119wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard):\
6120 :am:bw:hs:km:mi:ms:xo:\
6121 :co#80:it#8:li#25:ws#46:\
6122 :K1=^^:K3=\EJ:K4=\ET:K5=\EK:ae=\EcD:al=\EE:as=\EcE:bl=^G:\
6123 :bt=\EI:cd=\EY:ce=\ET:cl=\E'\E(\032:cm=\E=%+ %+ :cr=^M:\
6124 :dc=\EW:dl=\ER:do=\Ej:ds=\EF\r:ei=\Er:fs=^M:ho=^^:im=\Eq:\
6125 :is=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E^0\E`1\E`4\Ee.\E`\:\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024:\
6126 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
6127 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:\
6128 :le=^H:mb=\EG2:me=\E(\EG0:mh=\EGp:mr=\EG4:nd=^L:nw=^_:\
6129 :rs=\Eu\E~4\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E^0\E`1\E`4\Ee.\E`\:\Ee)\Ew\EwG\Ew0\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\Ec@0B\EcD\024:\
6130 :se=\EG0:sf=^J:so=\EG4:sr=\Ej:ta=^I:te=\Ec21\Ec31:\
6131 :ti=\Ec20\Ec30:ts=\EF:up=^K:vb=\E^1\E^0:ve=\E`4\E`1:\
6132 :vi=\E`0:vs=\E`2\E`1:
6133
6134# This is the american terminal. Here tabs work.
6135# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
6136wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard):\
6137 :ct=\E0:st=\E1:tc=wy99f:
6138
6139#
6140# The Wyse 160 is combination of the WY-60 and the WY-99gt.
6141# The reset strings are slow and the pad times very depending
6142# on other parameters such as font loading. I have tried
6143# to follow the following outline:
6144#
6145# <rs1> -> set personality
6146# <rs2> -> set number of columns
6147# <rs3> -> set number of lines
6148# :i1: -> select the proper font
6149# :is: -> do the initialization
6150# :i3: -> set up display memory (2 pages)
6151#
6152# The display memory may be used for either text or graphics.
6153# When "Display Memory = Shared" the terminal will have more pages
6154# but garbage may be left on the screen when you switch from
6155# graphics to text. If "Display Memory = Unshared" then the
6156# text area will be only one page long.
6157#
6158# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid
6159# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
6160# (untranslatable capabilities removed to fit entry within 1023 bytes)
6161# (sgr removed to fit entry within 1023 bytes)
6162# (acsc removed to fit entry within 1023 bytes)
6163wy160|wyse160|Wyse 160:\
6164 :5i:am:bw:hs:km:mi:ms:\
6165 :Nl#8:co#80:lh#1:li#24:lw#8:ws#38:\
6166 :#2=\E{:%9=\EP:&3=\Er:@8=\E7:DK=\E`b:F1=^AJ\r:F2=^AK\r:\
6167 :F3=^AL\r:F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:\
6168 :RA=\Ed.:RC=\E`c:RX=\Ec20:SA=\Ed/:SX=\Ec21:ae=\EcD:al=\EE:\
6169 :as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\
6170 :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:\
6171 :ho=\E{:i1=\EcB0\EcC1:i2=\Ew0:im=\Eq:ip=:\
6172 :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\
6173 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
6174 :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:\
6175 :kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:\
6176 :kl=^H:kr=^L:ku=^K:le=^H:ll=\E{^K:mb=\EG2:\
6177 :me=\E(\EH\003\EG0\EcD:mh=\EGp:mp=\E):nd=^L:nw=\r\n:pf=^T:\
6178 :pl=\EZ2%+?%s\177:pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:\
6179 :px=\EZ1%+?%s\177:r1=\E~!\E~4:r2=\E`\::r3=\EwG\Ee(:sf=\n:\
6180 :so=\EGt:sr=\Ej:st=\E1:ta=^I:te=\Ew0:ti=\Ew1:ts=\EF:up=^K:\
6181 :vb=\E`8\E`9:ve=\E`1:vi=\E`0:tc=adm+sgr:
6182#
6183wy160-w|wyse160-w|wyse 160 132-column:\
6184 :Nl#16:co#132:lw#7:ws#90:\
6185 :cm=\Ea%i%dR%dC:dc=\EW:rs=\EeF\E`;:tc=wy160:
6186#
6187wy160-25|wyse160-25|wyse 160 80-column 25-lines:\
6188 :Nl@:lh@:li#25:lw@:\
6189 :pn@:r3=\EwG\Ee):tc=wy160:
6190wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines:\
6191 :Nl@:lh@:li#25:lw@:\
6192 :pn@:r3=\EwG\Ee):tc=wy160-w:
6193#
6194wy160-42|wyse160-42|wyse 160 80-column 42-lines:\
6195 :li#42:\
6196 :al=\EE:cd=\Ey:cl=\E+:dl=\ER:i1=\EcB2\EcC3:nw=\r\n:r3=\Ee*:\
6197 :sf=\n:sr=\Ej:tc=wy160:
6198wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines:\
6199 :Nl#16:co#132:lw#7:ws#90:\
6200 :cm=\Ea%i%dR%dC:dc=\EW:ip=:rs=\EeF\E`;:tc=wy160-42:
6201#
6202wy160-43|wyse160-43|wyse 160 80-column 43-lines:\
6203 :Nl@:lh@:li#43:lw@:\
6204 :pn@:r3=\Ee+:tc=wy160-42:
6205wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines:\
6206 :Nl@:lh@:li#43:lw@:\
6207 :pn@:r3=\Ee+:tc=wy160-42-w:
6208#
6209wy160-vb|wyse160-vb|Wyse 160 visible bell:\
6210 :bl@:tc=wy160:
6211wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell:\
6212 :bl@:tc=wy160-w:
6213#
6214# The Wyse 75 is a vt100 lookalike without advanced video.
6215#
6216# The Wyse 75 can support one attribute (e.g. Dim, Inverse,
6217# Underline) without magic cookies. The following description
6218# uses this capability, but when more than one attribute is
6219# put on the screen at once, all attributes will be changed
6220# to be the same as the last attribute given.
6221# The Wyse 75 can support more attributes when used with magic
6222# cookies. The wy75-mc terminal description uses magic cookies
6223# to correctly handle multiple attributes on a screen.
6224#
6225# (untranslatable capabilities removed to fit entry within 1023 bytes)
6226# (sgr removed to fit entry within 1023 bytes)
6227# (acsc removed to fit entry within 1023 bytes)
6228# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
6229wy75|wyse75|wyse 75:\
6230 :am:hs:mi:ms:xn:xo:\
6231 :co#80:li#24:ma#1:pb#1201:ws#78:\
6232 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
6233 :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
6234 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
6235 :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
6236 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
6237 :ds=\E[>,\001\001\E[>-\001\001:ec=\E[%dX:ei=\E[4l:fs=^A:\
6238 :ho=\E[H:i1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h:\
6239 :i2=\E[m:im=\E[4h:ip=:is=\E>\E(B\E)0\017:k1=\E[?5i:\
6240 :k2=\E[?3i:k3=\E[2i:k4=\E[@:k5=\E[M:k6=\E[17~:k7=\E[18~:\
6241 :k8=\E[19~:k9=\E[20~:kI=\E[@:kN=\E[6~:kP=\E[5~:kb=^H:\
6242 :kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:kr=\E[C:\
6243 :ks=\E[?1l\E[?7h\E=:ku=\E[A:le=^H:me=\E[m\017:\
6244 :mh=\E[0t\E[2m:mr=\E[1t\E[7m:nd=\E[C:rc=\E8:sc=\E7:\
6245 :se=\E[m:sf=\n:so=\E[1t\E[7m:sr=\EM:st=\EH:ta=^I:\
6246 :ts=\E[>,\001:ue=\E[m:up=\E[A:us=\E[2t\E[4m:\
6247 :vb=\E[30h\E,\E[30l:ve=\E[?25h:vi=\E[?25l:
6248#
6249# This terminal description uses the non-hidden attribute mode
6250# (with magic cookie).
6251#
6252wy75-mc|wyse75-mc|wyse 75 with magic cookies:\
6253 :ms@:\
6254 :ma@:sg#1:ug#1:\
6255 :ae=\E[0p\017:as=\E[0p\016:i2=\E[m\E[p:mb=\E[2p:\
6256 :me=\E[0p\017:mh=\E[1p:mk=\E[4p:mr=\E[16p:\
6257 :..sa=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;:\
6258 :se=\E[0p:so=\E[17p:ue=\E[0p:us=\E[8p:tc=wy75:
6259wy75-vb|wyse75-vb|wyse 75 with visible bell:\
6260 :pb@:\
6261 :bl@:tc=wy75:
6262wy75-w|wyse75-w|wyse 75 in 132 column mode:\
6263 :co#132:ws#130:\
6264 :rs=\E[35h\E[?3h:tc=wy75:
6265wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns:\
6266 :pb@:\
6267 :bl@:tc=wy75-w:
6268#
6269# Wyse 85 emulating a vt220 7 bit mode.
6270# 24 line screen with status line.
6271#
6272# The vt220 mode permits more function keys but it wipes out
6273# the escape key. I strongly recommend that <f11> be set to
6274# escape (esc).
6275# The terminal may have to be set for 8 data bits and 2 stop
6276# bits for the arrow keys to work.
6277# The Wyse 85 runs faster with XON/XOFF enabled. Also the
6278# :DC: and :IC: work best when XON/XOFF is set. :IC: and
6279# :DC: leave trash on the screen when used without XON/XOFF.
6280#
6281# (untranslatable capabilities removed to fit entry within 1023 bytes)
6282# (sgr removed to fit entry within 1023 bytes)
6283# (acsc removed to fit entry within 1023 bytes)
6284# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
6285wy85|wyse85|wyse 85:\
6286 :am:hs:mi:ms:xn:xo:\
6287 :co#80:it#8:li#24:ws#80:\
6288 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
6289 :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
6290 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
6291 :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
6292 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\
6293 :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\
6294 :i1=\E[62;1"p\E[?5W:i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\
6295 :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\
6296 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
6297 :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
6298 :kb=^H:kd=\E[B:ke=\E>:kh=\E[26~:kl=\E[D:kr=\E[C:\
6299 :ks=\E[?1l\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\
6300 :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=\n:\
6301 :so=\E[7m:sr=\EM:st=\EH:ta=\011:ts=\E[40h\E7\E[25;%i%dH:\
6302 :ue=\E[m:up=\E[A:us=\E[4m:vb=\E[30h\E,\E[30l:ve=\E[?25h:\
6303 :vi=\E[?25l:
6304#
6305# Wyse 85 with visual bell.
6306wy85-vb|wyse85-vb|wyse 85 with visible bell:\
6307 :bl@:vb=\E[30h\E,\E[30l:tc=wy85:
6308#
6309# Wyse 85 in 132-column mode.
6310wy85-w|wyse85-w|wyse 85 in 132-column mode:\
6311 :co#132:ws#132:\
6312 :rs=\E[35h\E[?3h:tc=wy85:
6313#
6314# Wyse 85 in 132-column mode with visual bell.
6315wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns:\
6316 :bl@:tc=wy85-w:
6317
6318# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998
6319# This copes with an apparent firmware bug in the wy85. He writes:
6320# "What I did was change leave the terminal cursor keys set to Normal
6321# (instead of application), and change \E[ to \233 for all the keys in
6322# terminfo. At one point, I found some reference indicating that this
6323# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just
6324# me), but I can't find that and the server under my bookmark to "Wyse
6325# Technical" isn't responding. So there's the question of wether the wy85
6326# terminfo should reflect the manufactuer's intended behavior of the terminal
6327# or the actual."
6328# (untranslatable capabilities removed to fit entry within 1023 bytes)
6329# (sgr removed to fit entry within 1023 bytes)
6330# (acsc removed to fit entry within 1023 bytes)
6331# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
6332wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode:\
6333 :am:hs:mi:ms:xn:xo:\
6334 :co#80:it#8:li#24:ws#80:\
6335 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
6336 :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
6337 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
6338 :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
6339 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\
6340 :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\
6341 :i1=\E[62;1"p\E[?5W:i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\
6342 :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\
6343 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\23317~:k7=\23318~:\
6344 :k8=\23319~:k9=\23320~:kD=\2333~:kI=\2332~:kN=\2336~:\
6345 :kP=\2335~:kb=^H:kd=\233B:ke=\E>:kh=\23326~:kl=\233D:\
6346 :kr=\233C:ks=\E[?1l\E=:ku=\233A:le=^H:mb=\E[5m:md=\E[1m:\
6347 :me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\
6348 :se=\E[m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=\011:\
6349 :ts=\E[40h\E7\E[25;%i%dH:ue=\E[m:up=\E[A:us=\E[4m:\
6350 :vb=\E[30h\E,\E[30l:ve=\E[?25h:vi=\E[?25l:
6351#
6352# Wyse 185 emulating a vt320 7 bit mode.
6353#
6354# This terminal always displays 25 lines. These lines may be used
6355# as 24 data lines and a terminal status line (top or bottom) or
6356# 25 data lines. The 48 and 50 line modes change the page size
6357# and not the number of lines on the screen.
6358#
6359# The Compose Character key can be used as a meta key if changed
6360# by set-up.
6361#
6362# (untranslatable capabilities removed to fit entry within 1023 bytes)
6363# (sgr removed to fit entry within 1023 bytes)
6364# (acsc removed to fit entry within 1023 bytes)
6365# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
6366wy185|wyse185|wyse 185:\
6367 :am:hs:km:mi:ms:xn:xo:\
6368 :co#80:it#8:li#24:ws#80:\
6369 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
6370 :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
6371 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
6372 :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
6373 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
6374 :ds=\E7\E[99;0H\E[K\E8:ec=\E[%dX:ei=\E[4l:\
6375 :fs=\E[1;24r\E8:ho=\E[H:i1=\E[?5W:\
6376 :i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\
6377 :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\
6378 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
6379 :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
6380 :kb=^H:kd=\E[B:ke=\E>:kh=\E[26~:kl=\E[D:kr=\E[C:\
6381 :ks=\E[?1l\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\
6382 :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=\n:\
6383 :so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[ R:ti=\E[ Q:\
6384 :ts=\E7\E[99;%i%dH:ue=\E[24m:up=\E[A:us=\E[4m:\
6385 :vb=\E[30h\E,\E[30l:ve=\E[34h\E[?25h:vi=\E[?25l:\
6386 :vs=\E[?25h\E[34l:
6387#
6388# Wyse 185 with 24 data lines and top status (terminal status)
6389wy185-24|wyse185-24|wyse 185 with 24 data lines:\
6390 :hs@:\
6391 :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy185:
6392#
6393# Wyse 185 with visual bell.
6394wy185-vb|wyse185-vb|wyse 185+flash:\
6395 :bl@:tc=wy185:
6396#
6397# Wyse 185 in 132-column mode.
6398wy185-w|wyse185-w|wyse 185 in 132-column mode:\
6399 :co#132:ws#132:\
6400 :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:rs=\E[35h\E[?3h:\
6401 :tc=wy185:
6402#
6403# Wyse 185 in 132-column mode with visual bell.
6404wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols:\
6405 :bl@:tc=wy185-w:
6406
6407# wy325 terminfo entries
6408# Done by Joe H. Davis 3-9-92
6409
6410# lines 25 columns 80
6411#
6412# (untranslatable capabilities removed to fit entry within 1023 bytes)
6413wy325|wyse325|Wyse epc:\
6414 :5i:am:bw:hs:mi:\
6415 :Nl#8:co#80:lh#1:li#24:lw#8:pb#9601:ws#45:\
6416 :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\
6417 :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:RA=\Ed.:\
6418 :SA=\Ed/:\
6419 :ac=+/,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~:\
6420 :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\
6421 :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\
6422 :ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:i2=\Ew0:im=\Eq:ip=:\
6423 :is=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\
6424 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
6425 :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:\
6426 :kE=\ET:kI=\Eq:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:\
6427 :kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:mb=\EG2:\
6428 :me=\E(\EH\003\EG0\EcD:mh=\EGp:mp=\E):nd=^L:pf=^T:\
6429 :pl=\EZ2%+?%s\177:pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:\
6430 :px=\EZ1%+?%s\177:r1=\E~!\E~4:r2=\EeF\E`\::r3=\EwG\Ee(:\
6431 :sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:te=\Ew0:ti=\Ew1:ts=\EF:\
6432 :up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:tc=adm+sgr:
6433
6434#
6435# lines 24 columns 80 vb
6436#
6437wy325-vb|wyse325-vb|wyse-325 with visual bell:\
6438 :bl@:tc=wy325:
6439
6440#
6441# lines 24 columns 132
6442#
6443wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode:\
6444 :Nl#16:co#132:lw#7:ws#97:\
6445 :cm=\Ea%i%dR%dC:dc=\EW:ip=:rs=\E`;:tc=wy325:
6446#
6447# lines 25 columns 80
6448#
6449wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines:\
6450 :Nl@:lh@:li#25:lw@:\
6451 :pn@:r3=\EwG\Ee):tc=wy325:
6452#
6453# lines 25 columns 132
6454#
6455wy325-25w|wyse325-25w|wy325 132 columns:\
6456 :Nl@:lh@:li#25:lw@:\
6457 :pn@:r3=\EwG\Ee):tc=wy325-w:
6458#
6459# lines 25 columns 132 vb
6460#
6461wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video:\
6462 :bl@:tc=wy325-w:
6463
6464#
6465# lines 42 columns 80
6466#
6467wy325-42|wyse325-42|wyse-325 42 lines:\
6468 :Nl@:lh@:li#42:lw@:\
6469 :pn@:r3=\EwG\Ee):tc=wy325:
6470#
6471# lines 42 columns 132
6472#
6473wy325-42w|wyse325-42w|wyse-325 42 lines wide mode:\
6474 :Nl@:lh@:li#42:lw@:\
6475 :pn@:r3=\EwG\Ee):tc=wy325-w:
6476#
6477# lines 42 columns 132 vb
6478#
6479wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell:\
6480 :bl@:tc=wy325-w:
6481#
6482# lines 43 columns 80
6483#
6484wy325-43|wyse325-43|wyse-325 43 lines:\
6485 :Nl@:lh@:li#43:lw@:\
6486 :pn@:tc=wy325:
6487#
6488# lines 43 columns 132
6489#
6490wy325-43w|wyse325-43w|wyse-325 43 lines wide mode:\
6491 :Nl@:lh@:li#43:lw@:\
6492 :pn@:r3=\EwG\Ee):tc=wy325-w:
6493#
6494# lines 43 columns 132 vb
6495#
6496wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell:\
6497 :bl@:tc=wy325-w:
6498
6499# Wyse 370 -- 24 line screen with status line.
6500#
6501# The terminal may have to be set for 8 data bits and 2 stop
6502# bits for the arrow keys to work.
6503#
6504# If you change keyboards the terminal will send different
6505# escape sequences.
6506# The following definition is for the basic terminal without
6507# function keys.
6508#
6509# <u0> -> enter Tektronix 4010/4014 mode
6510# <u1> -> exit Tektronix 4010/4014 mode
6511# <u2> -> enter ASCII mode (from any ANSI mode)
6512# <u3> -> exit ASCII mode (goto native ANSI mode)
6513# <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode)
6514# <u5> -> exit Tek 4207 mode (goto native ANSI mode)
6515#
6516# Bug: The <op> capability resets attributes.
6517# (untranslatable capabilities removed to fit entry within 1023 bytes)
6518# (sgr removed to fit entry within 1023 bytes)
6519# (acsc removed to fit entry within 1023 bytes)
6520# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
6521wy370-nk|wyse 370 without function keys:\
6522 :am:hs:mi:ms:xn:xo:\
6523 :co#80:it#8:li#24:ws#80:\
6524 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
6525 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
6526 :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
6527 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\
6528 :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\
6529 :i1=\E[90;1"p\E[?5W:i2=\E>\017\E)0\E(B\E[63;0w\E[m:\
6530 :im=\E[4h:ip=:\
6531 :is=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h:\
6532 :ke=\E>:ks=\E[?1l\E=:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\
6533 :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=\n:\
6534 :so=\E[7m:sr=\EM:st=\EH:ta=\011:te=\E[ R:ti=\E[ Q:\
6535 :ts=\E[40l\E[40h\E7\E[99;%i%dH:ue=\E[24m:up=\E[A:\
6536 :us=\E[4m:vb=\E[30h\E,\E[30l:ve=\E[34h\E[?25h:\
6537 :vi=\E[?25l:vs=\E[?25h\E[34l:
6538#
6539# Function key set for the ASCII (wy-50 compatible) keyboard
6540# This is the default 370.
6541#
6542wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard:\
6543 :@8=\EOM:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\
6544 :F5=\E[28~:F6=\E[29~:k1=\E[?4i:k2=\E[?3i:k3=\E[2i:k4=\E[@:\
6545 :k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
6546 :k;=\E[21~:kA=\EOP:kB=\E[Z:kD=\EOQ:kI=\EOP:kL=\EOQ:kN=\E[U:\
6547 :kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
6548 :tc=wy370-nk:
6549#
6550# Function key set for the VT-320 (and wy85) compatible keyboard
6551#
6552wy370-105k|Wyse 370 with 105 key keyboard:\
6553 :%1=\E[28~:*6=\E[4~:@0=\E[1~:@8=\EOM:F1=\E[23~:F2=\E[24~:\
6554 :F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:\
6555 :F8=\E[32~:F9=\E[33~:FA=\E[34~:K1=\EOw:K2=\EOu:K3=\EOy:\
6556 :K4=\EOq:K5=\EOs:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:\
6557 :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\E[3~:\
6558 :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[26~:\
6559 :kl=\E[D:kr=\E[C:ku=\E[A:l1=PF1:l2=PF2:l3=PF3:l4=PF4:\
6560 :tc=wy370-nk:
6561#
6562# Function key set for the PC compatible keyboard
6563#
6564wy370-EPC|Wyse 370 with 102 key keyboard:\
6565 :@7=\E[1~:@8=\EOM:F1=\E[23~:F2=\E[24~:k1=\EOP:k2=\EOQ:\
6566 :k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
6567 :k9=\E[20~:k;=\E[21~:kB=\E[Z:kI=\E[2~:kN=\E[U:kP=\E[V:\
6568 :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:tc=wy370-nk:
6569#
6570# Wyse 370 with visual bell.
6571wy370-vb|Wyse 370 with visible bell:\
6572 :bl@:tc=wy370:
6573#
6574# Wyse 370 in 132-column mode.
6575wy370-w|Wyse 370 in 132-column mode:\
6576 :co#132:ws#132:\
6577 :rs=\E[35h\E[?3h:tc=wy370:
6578#
6579# Wyse 370 in 132-column mode with visual bell.
6580wy370-wvb|Wyse 370 with visible bell 132-columns:\
6581 :vb=\E[30h\E,\E[30l:tc=wy370-w:
6582wy370-rv|Wyse 370 reverse video:\
6583 :r3=\E[32h\E[?5h:tc=wy370:
6584#
6585# Wyse 99gt Tektronix 4010/4014 emulator,
6586#
6587wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator:\
6588 :am:os:\
6589 :co#74:li#35:\
6590 :bl=^G:cl=\E^L:\
6591 :..cm=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037:\
6592 :cr=^M:do=^J:ff=^L:\
6593 :hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037:\
6594 :ho=^]7`x @\037:\
6595 :hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037:\
6596 :is=\E8:le=^H:nd=\s:nw=^M^J:u0=\E~>\E8:u1=\E[42h:up=^K:
6597#
6598# Wyse 160 Tektronix 4010/4014 emulator,
6599#
6600wy160-tek|Wyse 160 Tektronix 4010/4014 emulator:\
6601 :..cm=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037:\
6602 :ho=^]8`g @\037:tc=wy99gt-tek:
6603#
6604# Wyse 370 Tektronix 4010/4014 emulator,
6605#
6606wy370-tek|Wyse 370 Tektronix 4010/4014 emulator:\
6607 :am:os:\
6608 :co#80:li#36:\
6609 :bl=^G:cl=\E^L:\
6610 :..cm=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037:\
6611 :cr=^M:do=^J:ff=^L:\
6612 :hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037:\
6613 :ho=^]8g @\037:\
6614 :hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037:\
6615 :is=\E8:kb=^H:kd=^J:kl=^H:kr=^I:ku=^K:le=^H:nd=\s:nw=^M^J:\
6616 :u0=\E[?38h\E8:u1=\E[?38l\E)0:up=^K:
6617
6618# Vendor-supplied Wyse entries end here.
6619
6620#
6621#TITLE: TERMINFO ENTRY WY520
6622#DATE: 8/5/93
6623# The WY520 terminfo is based on the WY285 entry published on the WYSE
6624# BBS with the addition of more function keys and special keys.
6625#
6626# rs1 -> set personality
6627# rs2 -> set number of columns
6628# rs3 -> set number of lines
6629# is1 -> select the proper font
6630# is2 -> do the initialization
6631# is3 -> If this string is empty then rs3 gets sent.
6632#
6633# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard
6634# - The BS key is programmed to generate BS in smcup since
6635# is2 doesn't seem to work.
6636# - Remove and shift/Remove: delete a character
6637# - Insert : enter insert mode
6638# - Find : delete to end of file
6639# - Select : clear a line
6640# - F11, F12, F13: send default sequences (not ESC, BS, LF)
6641# - F14 : Home key
6642# - Bottom status line (host writable line) is used.
6643# - smkx,rmkx are removed because this would put the numeric
6644# keypad in Dec application mode which doesn't seem to work
6645# with SCO applications.
6646#
6647# (untranslatable capabilities removed to fit entry within 1023 bytes)
6648# (sgr removed to fit entry within 1023 bytes)
6649# (acsc removed to fit entry within 1023 bytes)
6650# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
6651wy520|wyse520|wyse 520:\
6652 :am:hs:km:mi:xn:xo:\
6653 :co#80:it#8:li#24:ws#80:\
6654 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
6655 :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\
6656 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
6657 :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
6658 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[0$~:\
6659 :ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:i1=\E[?5W:\
6660 :i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\
6661 :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h:\
6662 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
6663 :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
6664 :kb=^H:kd=\E[B:kh=\E[26~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
6665 :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\
6666 :rc=\E8:sc=\E7:se=\E[m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
6667 :te=\E[ R:ti=\E[ Q\E[?67;8h:ts=\E[2$~\E[1$}\E[%i%d`:\
6668 :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[34h\E[?25h:vi=\E[?25l:\
6669 :vs=\E[?25h\E[34l:
6670#
6671# Wyse 520 with 24 data lines and status (terminal status)
6672wy520-24|wyse520-24|wyse 520 with 24 data lines:\
6673 :hs@:\
6674 :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy520:
6675#
6676# Wyse 520 with visual bell.
6677wy520-vb|wyse520-vb|wyse 520 with visible bell:\
6678 :vb=\E[30h\E,\E[30l:tc=wy520:
6679#
6680# Wyse 520 in 132-column mode.
6681wy520-w|wyse520-w|wyse 520 in 132-column mode:\
6682 :co#132:ws#132:\
6683 :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:rs=\E[35h\E[?3h:\
6684 :tc=wy520:
6685#
6686# Wyse 520 in 132-column mode with visual bell.
6687wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns:\
6688 :vb=\E[30h\E,\E[30l:tc=wy520-w:
6689#
6690#
6691# Wyse 520 emulating a vt420 7 bit mode.
6692# The DEL key is programmed to generate BS in is2.
6693# With EPC keyboard.
6694# - 'End' key will clear till end of line on EPC keyboard
6695# - Shift/End : ignored.
6696# - Insert : enter insert mode.
6697# - Delete : delete a character (have to change interrupt character
6698# to CTRL-C: stty intr '^c') for it to work since the
6699# Delete key sends 7FH.
6700wy520-epc|wyse520-epc|wyse 520 with EPC keyboard:\
6701 :@7=\E[4~:k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:\
6702 :k4=\E[14~:k5=\E[15~:kD=\177:kE=\E[4~:kh=\E[H:tc=wy520:
6703#
6704# Wyse 520 with 24 data lines and status (terminal status)
6705# with EPC keyboard.
6706wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard:\
6707 :hs@:\
6708 :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy520-epc:
6709#
6710# Wyse 520 with visual bell.
6711wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard:\
6712 :vb=\E[30h\E,\E[30l:tc=wy520-epc:
6713#
6714# Wyse 520 in 132-column mode.
6715wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard:\
6716 :co#132:ws#132:\
6717 :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:rs=\E[35h\E[?3h:\
6718 :tc=wy520-epc:
6719#
6720# Wyse 520 in 132-column mode with visual bell.
6721wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard:\
6722 :vb=\E[30h\E,\E[30l:tc=wy520-epc-w:
6723#
6724# Wyse 520 in 80-column, 36 lines
6725wy520-36|wyse520-36|wyse 520 with 36 data lines:\
6726 :hs@:\
6727 :li#36:\
6728 :ds@:fs@:r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r:ts@:\
6729 :tc=wy520:
6730#
6731# Wyse 520 in 80-column, 48 lines
6732wy520-48|wyse520-48|wyse 520 with 48 data lines:\
6733 :hs@:\
6734 :li#48:\
6735 :ds@:fs@:r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r:ts@:\
6736 :tc=wy520:
6737#
6738# Wyse 520 in 132-column, 36 lines
6739wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines:\
6740 :co#132:ws#132:\
6741 :r2=\E[?3h:\
6742 :r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|:\
6743 :tc=wy520-36:
6744#
6745# Wyse 520 in 132-column, 48 lines
6746wy520-48w|wyse520-48w|wyse 520 with 48 data lines:\
6747 :co#132:ws#132:\
6748 :r2=\E[?3h:\
6749 :r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|:\
6750 :tc=wy520-48:
6751#
6752#
6753# Wyse 520 in 80-column, 36 lines with EPC keyboard
6754wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard:\
6755 :hs@:\
6756 :li#36:\
6757 :ds@:fs@:r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r:ts@:\
6758 :tc=wy520-epc:
6759#
6760# Wyse 520 in 80-column, 48 lines with EPC keyboard
6761wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard:\
6762 :hs@:\
6763 :li#48:\
6764 :ds@:fs@:r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r:ts@:\
6765 :tc=wy520-epc:
6766#
6767# Wyse 520 in 132-column, 36 lines with EPC keyboard
6768wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard:\
6769 :co#132:ws#132:\
6770 :r2=\E[?3h:\
6771 :r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|:\
6772 :tc=wy520-36pc:
6773#
6774# Wyse 520 in 132-column, 48 lines with EPC keyboard
6775wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard:\
6776 :co#132:ws#132:\
6777 :r2=\E[?3h:\
6778 :r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|:\
6779 :tc=wy520-48pc:
6780
6781# From: John Gilmore <hoptoad!gnu@lll-crg.arpa>
6782# (wyse-vp: removed :if=/usr/share/tabset/wyse-adds:, there's no such
6783# file and we don't know what :st: is -- esr)
6784wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on:\
6785 :am:bs:\
6786 :co#80:it#8:li#24:\
6787 :al=\EM:bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dc=\EW:\
6788 :dl=\El:do=^J:ei=\Er:ho=^A:im=\Eq:is=\E`\:\E`9\017\Er:\
6789 :kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:ll=^A^Z:me=^O:\
6790 :nd=^F:nw=^M^J:r1=\E`\:\E`9\017\Er:se=^O:sf=^J:so=^N:ta=^I:\
6791 :ue=^O:up=^Z:us=^N:
6792
6793wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad:\
6794 :is=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=:kb=^H:\
6795 :kd=\EOB:ke=10\E[?1l\E>:kh=\EOH:kl=\EOD:kr=\EOC:\
6796 :ks=10\E[?1h\E=:ku=\EOA:tc=wy75:
6797
6798# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu>
6799wy100q|Wyse 100 for Quotron:\
6800 :bs:\
6801 :co#80:li#24:sg#1:\
6802 :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=\EW:\
6803 :dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:\
6804 :is=\E`\:\0\EC\EDF\E0\E'\E(\EA21:kd=^J:kl=^H:kr=^L:ku=^K:\
6805 :le=^H:mk@:nd=^L:sr=\Ej:up=^K:tc=adm+sgr:
6806
6807#### Kermit terminal emulations
6808#
6809# Obsolete Kermit versions may be listed in the section describing obsolete
6810# non-ANSI terminal emulators later in the file.
6811#
6812
6813# KERMIT standard all versions.
6814# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
6815# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
6816# From: greg small <gts@populi.berkeley.edu> 9-25-84
6817kermit|standard kermit:\
6818 :bs:\
6819 :co#80:li#24:\
6820 :cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :ho=\EH:\
6821 :is=K0 Standard Kermit 9-25-84\n:kd=^J:kh=^^:kl=^H:\
6822 :kr=^L:ku=^K:le=^H:nd=\EC:up=\EA:
6823kermit-am|standard kermit plus auto-margin:\
6824 :am:\
6825 :is=K1 Standard Kermit plus Automatic Margins\n:\
6826 :tc=kermit:
6827# IBMPC Kermit 1.2.
6828# Bugs: :cd:, :ce:: do not work except at beginning of line! :cl: does
6829# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of
6830# line).
6831# From: greg small <gts@populi.berkeley.edu> 8-30-84
6832pckermit|pckermit12|UCB IBMPC Kermit 1.2:\
6833 :am:\
6834 :li#25:\
6835 :cd@:ce@:cl=\EH\EJ:\
6836 :is=K2 UCB IBMPC Kermit 1.2 8-30-84\n:tc=kermit:
6837# IBMPC Kermit 1.20
6838# Cannot use line 25, now acts funny like ansi special scrolling region.
6839# Initialization must escape from that region by cursor position to line 24.
6840# Cannot use character insert because 1.20 goes crazy if insert at col 80.
6841# Does not use :am: because autowrap is lost when kermit dropped and restarted.
6842# From: greg small <gts@populi.berkeley.edu> 12-19-84
6843pckermit120|UCB IBMPC Kermit 1.20:\
6844 :it#8:li#24:\
6845 :al=\EL:dc=\EN:dl=\EM:do=\EB:ei@:im@:\
6846 :is=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n:\
6847 :se=\Eq:so=\Ep:ta=^I:vs=\EO\Eq\EEK3:tc=kermit:
6848# MS-DOS Kermit 2.27 for the IBMPC
6849# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
6850# Cannot use line 25, now acts funny like ansi special scrolling region.
6851# Initialization must escape from that region by cursor position to line 24.
6852# Does not use am: because autowrap is lost when kermit dropped and restarted.
6853# Reverse video for standout like H19.
6854# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
6855# From: greg small <gts@populi.berkeley.edu> 3-17-85
6856msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC:\
6857 :am@:bs:\
6858 :co#80:it#8:li#24:\
6859 :al=\EL:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :dc=\EN:dl=\EM:\
6860 :do=\EB:ei=\EO:ho=\EH:im=\E@:\
6861 :is=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n:\
6862 :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=\EC:rc=\Ek:sc=\Ej:\
6863 :se=\Eq:so=\Ep:ta=^I:up=\EA:vs=\EO\Eq\EG\EwK4:
6864# MS-DOS Kermit 2.27 with automatic margins
6865# From: greg small <gts@populi.berkeley.edu> 3-17-85
6866msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins:\
6867 :am:\
6868 :is=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n:\
6869 :vs=\EO\Eq\EG\EvK5:tc=msk227:
6870# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC
6871# Automatic margins now default. Use ansi :sa: for highlights.
6872# Define function keys.
6873# (msk22714: removed obsolete ":kn#10:" -- esr)
6874# From: greg small <gts@populi.berkeley.edu> 3-17-85
6875msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC:\
6876 :am:\
6877 :is=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n:\
6878 :k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:k7=\E7:\
6879 :k8=\E8:k9=\E9:md=\E[1m:me=\E[m:mr=\E[7m:se=\E[m:so=\E[1m:\
6880 :ue=\E[m:us=\E[4m:vs=\EO\Eq\EG\EvK6:tc=mskermit227:
6881# This was designed for a VT320 emulator, but it is probably a good start
6882# at support for the VT320 itself.
6883# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
6884# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
6885# (untranslatable capabilities removed to fit entry within 1023 bytes)
6886# (sgr removed to fit entry within 1023 bytes)
6887# (acsc removed to fit entry within 1023 bytes)
6888# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
6889vt320-k3|MS-Kermit 3.00's vt320 emulation:\
6890 :am:es:hs:km:mi:ms:xn:\
6891 :co#80:it#8:li#49:pb#9600:vt#3:\
6892 :AL=\E[%dL:CC=\E:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
6893 :LE=\E[%dD:RI=\E[%dC:SR=\E[%dL:UP=\E[%dA:ae=\E(B:al=\E[L:\
6894 :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
6895 :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
6896 :ds=\E[0$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:im=\E[4h:\
6897 :is=\E>\E F\E[?1l\E[?7h\E[r\E[2$~:k0=\E[21~:k1=\EOP:\
6898 :k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
6899 :k9=\E[20~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:\
6900 :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
6901 :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:rc=\E8:\
6902 :sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
6903 :ts=\E[1$}\r\E[K:ue=\E[24m:up=\E[A:us=\E[4m:\
6904 :vb=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l:ve=\E[?25h:\
6905 :vi=\E[?25l:
6906# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991
6907# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996
6908# (I removed a bogus boolean :mo: and added :ms:, <smam>, <rmam> -- esr)
6909vt320-k311|dec vt320 series as defined by kermit 3.11:\
6910 :am:es:hs:mi:ms:xn:xo:\
6911 :co#80:it#8:li#24:vt#3:\
6912 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
6913 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
6914 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
6915 :ae=^O:al=3\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\
6916 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
6917 :dl=\E[M:do=^J:ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:\
6918 :fs=\E[$}:ho=\E[H:im=\E[4h:\
6919 :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
6920 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
6921 :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
6922 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\
6923 :le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:\
6924 :r1=\E[?3l:rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:\
6925 :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
6926 :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\
6927 :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
6928
6929######## NON-ANSI TERMINAL EMULATIONS
6930#
6931
6932#### Avatar
6933#
6934# These entries attempt to describe Avatar, a terminal emulation used with
6935# MS-DOS bulletin-board systems. It was designed to give ANSI-like
6936# capabilities, but with cheaper (shorter) control sequences. Messy design,
6937# excessively dependent on PC idiosyncracies, but apparently rather popular
6938# in the BBS world.
6939#
6940# No color support. Avatar doesn't fit either of the Tektronix or HP color
6941# models that terminfo knows about. An Avatar color attribute is the
6942# low 7 bits of the IBM-PC display-memory attribute. Bletch.
6943#
6944# I wrote these entries while looking at the Avatar spec. I don't have
6945# the facilities to test them. Let me know if they work, or don't.
6946#
6947# Avatar escapes not used by these entries (because maybe you're smarter
6948# and more motivated than I am and can figure out how to wrap terminfo
6949# around some of them, and because they are weird enough to be funny):
6950# level 0:
6951# ^L -- clear window/reset current attribute to default
6952# ^V^A%p1%c -- set current color attribute, parameter decodes as follows:
6953#
6954# bit: 6 5 4 3 2 1 0
6955# | | | | |
6956# +---+---+ | +---+---+
6957# | | |
6958# | | foreground color
6959# | foreground intensity
6960# background color
6961# level 0+:
6962# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines
6963# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines
6964# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1
6965# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1
6966# (^V^L and ^V^M set the current attribute as a side-effect.)
6967# ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes
6968# in the pattern, <c> the number of times the pattern
6969# should be repeated. If either value is 0, no-op.
6970# The pattern can contain Avatar console codes,
6971# including other ^V ^Y patterns.
6972# level 1:
6973# ^V^O -- clockwise mode on; turn print direction right each time you
6974# hit a window edge (yes, really). Turned off by CR
6975# ^V^P -- no-op
6976# ^V^Q%c -- query the driver
6977# ^V^R -- driver reset
6978# ^V^S -- Sound tone (PC-specific)
6979# ^V^T -- change highlight at current cursor poition to %c
6980# ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b>
6981# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c
6982# -- define window
6983#
6984# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
6985# (The :mb:/:md:/:mr:/:as:/:us:/:so: capabilities exist only to
6986# tell ncurses that the corresponding highlights exist; it should use :sa:,
6987# which is the only method that will actually work for multiple highlights.)
6988avatar0|avatar terminal emulator level 0:\
6989 :am:ms:ut:\
6990 :co#80:it#8:li#25:\
6991 :as=:ce=^V^G:cm=\026\010%.%.:cr=^M:do=^V^D:le=^V^E:\
6992 :mb=^A^V\177:md=^V^A^P:me=^V^A^G:mk=^V^A\0:mr=^A^Vp:\
6993 :nd=^V^F:rp=\031%.%d:rs=^L:\
6994 :..sa=\026\001%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p4%t{128}%|%;%?%p6%t%{16}%|%;:\
6995 :sf=^J:so=^A^Vp:up=^V^C:us=^V^A:tc=klone+acs:
6996# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
6997avatar0+|avatar terminal emulator level 0+:\
6998 :dc=^V^N:ei=\026\n\0\0\0\0:im=^V^I:tc=avatar0:
6999# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
7000avatar|avatar1|avatar terminal emulator level 1:\
7001 :RA=^V":SA=^V$:al=^V+:dl=^V-:ei=^V^P:ve=^V'^A:vi=^V'^B:\
7002 :vs=^V^C:tc=avatar0+:
7003
7004#### RBcomm
7005#
7006# RBComm is a lean and mean terminal emulator written by the Interrupt List
7007# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early
7008# '90s), especially in the BBS world, and still has some loyal users due to
7009# its very small memory footprint and to a cute macro language.
7010rbcomm|IBM PC with RBcomm and EMACS keybindings:\
7011 :am:bw:mi:ms:xn:\
7012 :co#80:it#8:li#25:\
7013 :AL=\E[%dL:DL=\E[%dM:al=^K:bl=^G:bt=\E[Z:cd=^F5:ce=^P^P:\
7014 :cl=^L:cm=\037%r%+ %+ :cr=^M:cs=\E[%i%d;%dr:dc=^W:dl=^Z:\
7015 :dm=:do=^C:ec=\E[%dX:ed=:ei=^]:im=^\:\
7016 :is=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g:kb=^H:kd=^N:\
7017 :ke=\E>:kh=^A:kl=^B:kr=^F:ks=\E=:ku=^P:le=^H:mb=\E[5m:\
7018 :md=\E[1m:me=\E[m:mk=\E[8m:mr=^R:nd=^B:nw=^M\ED:\
7019 :r1=\017\E(B\E)0\025\E[?3l\E[>8g:rc=\E8:rp=\030%.%.:\
7020 :sc=\E7:se=^U:sf=\ED:so=^R:sr=\EM:ta=^I:te=:ti=:ue=^U:up=^^:\
7021 :us=^T:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
7022rbcomm-nam|IBM PC with RBcomm without autowrap:\
7023 :am@:\
7024 :bl=^G:cr=^M:do=^J:\
7025 :is=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g:kb=^H:kd=^J:\
7026 :kl=^H:nw=^M^J:sf=^J:ta=^I:tc=rbcomm:
7027rbcomm-w|IBM PC with RBcomm in 132 column mode:\
7028 :co#132:\
7029 :bl=^G:cr=^M:do=^J:\
7030 :is=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g:kb=^H:kd=^J:\
7031 :kl=^H:nw=^M^J:sf=^J:ta=^I:tc=rbcomm:
7032
7033######## LCD DISPLAYS
7034#
7035
7036#### Matrix Orbital
7037# from: Eric Z. Ayers (eric@ale.org)
7038#
7039# Matrix Orbital 20x4 LCD display
7040# Command Character is 0xFE (decimal 254, octal 376)
7041#
7042# On this device, cursor addressability isn't possible. The LCD expects:
7043# 0xfe G <col> <row>
7044# for cup: %p1 == row and %p2 is column
7045#
7046# This line:
7047# cup=\376G%p2%c%p1%c
7048# LOOKS like it will work, but sometimes only one of the two numbers is sent.
7049# See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'.
7050#
7051# Alas, there is no cursor upline capability on this display.
7052#
7053# These entries add some 'sanity stuff' to the clear function. That is, it
7054# does a 'clear' and also turns OFF auto scroll, turns ON Auto Line Wrapping,
7055# and turns off the cursor blinking and stuff like that.
7056#
7057# NOTE: calling 'beep' turns on the backlight (bell)
7058# NOTE: calling 'flash' turns it on and back off (visual bell)
7059#
7060MtxOrb| Generic Matrix Orbital LCD display:\
7061 :bl=\376B^A:cl=\376X\376C\376R\376K\376T:ho=\376H:\
7062 :le=\376L:nd=\376M:vb=\376B\001\376F:ve=\376K\376T:
7063MtxOrb204| 20x4 Matrix Orbital LCD display:\
7064 :co#20:li#4:tc=MtxOrb:
7065MtxOrb162| 16x2 Matrix Orbital LCD display:\
7066 :co#16:li#2:tc=MtxOrb:
7067# The end
7068
7069######## OLDER TERMINAL TYPES
7070#
7071# This section is devoted to older commercial terminal brands that are now
7072# discontinued, but known to be still in use or represented by emulations.
7073#
7074
7075#### AT&T (att, tty)
7076#
7077# This section also includes Teletype-branded VDTs.
7078#
7079# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now
7080# Boundless Technologies); for details, see the header comment on the ADDS
7081# section.
7082#
7083# These are AT&T's official terminfo entries. All-caps aliases have been
7084# removed.
7085#
7086att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode:\
7087 :am:eo:mi:ms:xo:\
7088 :co#80:it#8:li#24:\
7089 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[11r:\
7090 :F2=\E[12r:F3=\E[13r:F4=\E[14r:F5=\E[15r:F6=\E[16r:\
7091 :IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:\
7092 :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
7093 :cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:im=\E[4h:\
7094 :k1=\E[1r:k2=\E[2r:k3=\E[3r:k4=\E[4r:k5=\E[5r:k6=\E[6r:\
7095 :k7=\E[7r:k8=\E[8r:k9=\E[9r:k;=\E[10r:kA=\E[L:kB=\E[Z:\
7096 :kC=\E[J:kD=\E[P:kI=\E[@:kL=\E[M:kb=^H:kd=\E[B:kh=\E[H:\
7097 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:mr=\E[7m:nd=\E[C:\
7098 :pf=\E[4i:po=\E[5i:ps=\E[0i:se=\E[m:sf=^J:so=\E[7m:ta=^I:\
7099 :up=\E[A:
7100att2350|AT&T 2350 Video Information Terminal 80 column mode:\
7101 :pf@:po@:ps@:tc=att2300:
7102
7103# Must setup RETURN KEY - CR, REC'VD LF - INDEX.
7104# Seems upward compatible with vt100, plus ins/del line/char.
7105# On sgr, the protection parameter is ignored.
7106# No check is made to make sure that only 3 parameters are output.
7107# standout= reverse + half-intensity = 3 | 5.
7108# bold= reverse + underline = 2 | 3.
7109# note that half-bright blinking doesn't look different from normal blinking.
7110# NOTE:you must program the function keys first, label second!
7111# (att4410: a BSD entry has been seen with the following capabilities:
7112# :is=\E[?6l:, :k1=\EOc:, :k2=\EOd:, :k3=\EOe:, :k4=\EOg:,
7113# :k6=\EOh:, :k7=\EOi:, :k8=\EOj:, -- esr)
7114# (untranslatable capabilities removed to fit entry within 1023 bytes)
7115att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1:\
7116 :am:hs:mi:ms:xo:\
7117 :Nl#8:co#80:it#8:lh#2:li#24:lw#8:ws#80:\
7118 :ac=++,,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
7119 :ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
7120 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:\
7121 :do=\E[B:ei=:fs=\E8:ho=\E[H:i1=\E[?3l\E)0:\
7122 :i2=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW:\
7123 :ic=\E[@:im=:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:\
7124 :k6=\EOU:k7=\EOV:k8=\EOW:kC=\E[2J:kH=\E[24;1H:kb=^H:\
7125 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\
7126 :mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:mk=\E[8m:\
7127 :mr=\E[7m:nd=\E[C:nw=^M^J:rc=\E8:rs=\Ec\E[?3l\E[2;0y:\
7128 :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\
7129 :ts=\E7\E[25;%+^AH:ue=\E[m:up=\E[A:us=\E[4m:
7130
7131att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1:\
7132 :co#132:ws#132:\
7133 :i1=\E[?3h\E)0:rs=\Ec\E[?3h\E[2;0y:tc=att5410v1:
7134
7135att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2:\
7136 :bs:\
7137 :..px=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s:\
7138 :tc=att5410v1:
7139
7140att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode:\
7141 :co#132:ws#132:\
7142 :i1=\E[?3h\E)0:rs=\Ec\E[?3h\E[2;0y:tc=att4410:
7143
7144# 5410 in terms of a vt100
7145# (v5410: added <rmam>/<smam> based on init string -- esr)
7146v5410|att5410 in terms of a vt100:\
7147 :am:mi:ms:xo:\
7148 :co#80:it#8:li#24:vt#3:\
7149 :@8=\EOM:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:RA=\E[?7l:\
7150 :SA=\E[?7h:\
7151 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
7152 :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
7153 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
7154 :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\
7155 :ic=\E[@:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
7156 :k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:kb=^H:\
7157 :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
7158 :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\
7159 :nd=\E[C:rc=\E8:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
7160 :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>:\
7161 :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\
7162 :ue=\E[m:up=\E[A:us=\E[4m:
7163
7164#
7165# Teletype Model 5420 -- A souped up 5410, with multiple windows,
7166# even! the 5420 has three modes: scroll, window or page mode
7167# this terminfo should work in scroll or window mode, but doesn't
7168# take advantage of any of the differences between them.
7169#
7170# Has memory below (2 lines!)
7171# 3 pages of memory (plus some spare)
7172# The 5410 sequences for :cm:, :vs:, :DC:, :DL:, :ec:, :vb:, :ho:,
7173# <hpa>, :st: would work for these, but these work in both scroll and window
7174# mode... Unset insert character so insert mode works
7175# :i1: sets 80 column mode,
7176# :is: escape sequence:
7177# 1) turn off all fonts
7178# 2) function keys off, keyboard lock off, control display off,
7179# insert mode off, erasure mode off,
7180# 3) full duplex, monitor mode off, send graphics off, nl on lf off
7181# 4) reset origin mode
7182# 5) set line wraparound
7183# 6) exit erasure mode, positional attribute mode, and erasure extent mode
7184# 7) clear margins
7185# 8) program ENTER to transmit ^J,
7186# We use \212 to program the ^J because a bare ^J will get translated by
7187# UNIX into a CR/LF. The enter key is needed for AT&T uOMS.
7188# 1 2 3 4 5 6 7 8
7189# :i3: set screen color to black,
7190# No representation in terminfo for the delete word key: kdw1=\Ed
7191# Key capabilities assume the power-up send sequence...
7192# This :te: is not strictly necessary, but it helps maximize
7193# memory usefulness: :te=\Ez:,
7194# Alternate sgr0: :me=\E[m\EW^O:,
7195# Alternate sgr: :sa=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;:,
7196# smkx programs the SYS PF keys to send a set sequence.
7197# It also sets up labels f1, f2, ..., f8, and sends edit keys.
7198# This string causes them to send the strings :k1:-:k8:
7199# when pressed in SYS PF mode.
7200# (att4415: I added <rmam>/<smam> based on the init string -- esr)
7201# (untranslatable capabilities removed to fit entry within 1023 bytes)
7202att4415|tty5420|att5420|AT&T 4415/5420 80 cols:\
7203 :bs:db:mi:xo:\
7204 :Nl#8:lh#2:lm#78:lw#8:ws#55:\
7205 :@1=\Et:@7=\Ez:@8=\Eent:AL=\E[%dL:CM=\E[%i%d;%dt:\
7206 :DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:LF=\E|:\
7207 :LO=\E~:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dE:SR=\E[%dF:\
7208 :UP=\E[%dA:bt=\E[Z:ch=\E[%+^AG:cl=\E[x\E[J:\
7209 :cm=\E[%i%d;%dx:ct=\E[3g:cv=\E[%+^Ad:ec=\E[%ds\E[%dD:\
7210 :ei=\E[4l:ho=\E[x:i1=\E[?3l:i2=\E[?5l:ic@:im=\E[4h:\
7211 :is=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212:\
7212 :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\
7213 :k8=\EOj:kA=\E[L:kB=\E[Z:kD=\E[P:kE=\E[2K:kF=\E[T:kH=\Eu:\
7214 :kI=\E[4h:kL=\E[M:kN=\E[U:kP=\E[V:kR=\E[S:\
7215 :ke=\E[19;0j\E[21;1j\212:ks=\E[19;1j\E[21;4j\Eent:\
7216 :l1=F1:l2=F2:l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:l8=F8:ll=\Ew:\
7217 :me=\E[m\017:mp=\EV:pf=\E[?9i:po=\E[?4i:ps=\E[?2i:st=\EH:\
7218 :ts=\E7\E[25;%+^HH:vb=\E[?5h\E[?5l:ve=\E[11;0j:\
7219 :vs=\E[11;1j:tc=att4410:
7220
7221att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols:\
7222 :co#132:lm#54:ws#97:\
7223 :i1=\E[?3h:tc=att4415:
7224
7225att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv:\
7226 :i2=\E[?5h:vb=\E[?5l\E[?5h:tc=att4415:
7227
7228att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv:\
7229 :co#132:lm#54:ws#97:\
7230 :i1=\E[?3h:i2=\E[?5h:vb=\E[?5l\E[?5h:tc=att4415:
7231
7232# Note that this mode permits programming USER PF KEYS and labels
7233# However, when you program user pf labels you have to reselect
7234# user pf keys to make them appear!
7235att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels:\
7236 :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\
7237 :..pn=\E[%p1%d;0;0;1q%p2%\:-16.16s:\
7238 :..px=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s:
7239
7240att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels:\
7241 :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:tc=att4415+nl:tc=att4415:
7242
7243att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels:\
7244 :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:tc=att4415+nl:tc=att4415-rv:
7245
7246att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels:\
7247 :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:tc=att4415+nl:tc=att4415-w:
7248
7249att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels:\
7250 :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:tc=att4415+nl:\
7251 :tc=att4415-w-rv:
7252
7253# (untranslatable capabilities removed to fit entry within 1023 bytes)
7254# (sgr removed to fit entry within 1023 bytes)
7255# (acsc removed to fit entry within 1023 bytes)
7256# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
7257att5420_2|AT&T 5420 model 2 80 cols:\
7258 :am:db:hs:mi:ms:xo:\
7259 :co#80:it#8:li#24:lm#78:ws#55:\
7260 :AL=\E[%dL:CM=\E[%i%d;%dt:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:\
7261 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:ae=^O:\
7262 :al=\E[L:as=^N:bt=\E[1Z:cd=\E[0J:ce=\E[0K:cl=\EH\EJ:\
7263 :cm=\E[%i%d;%dH:cr=\EG:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
7264 :dl=\E[M:do=\E[1B:ec=\E[%ds\E[%dD:ei=:fs=\E8:ho=\E[H:\
7265 :i1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r:\
7266 :ic=\E[@:im=:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:\
7267 :k6=\EOh:k7=\EOi:k8=\EOj:kD=\E[P:kH=\Eu:kI=\E[4h:kN=\E[U:\
7268 :kP=\E[V:kb=^H:kd=\E[B:ke=\E[19;0j:kh=\E[H:kl=\E[D:kr=\E[C:\
7269 :ks=\E[19;1j:ku=\E[A:le=^H:ll=\Ew:mb=\E[5m:me=\E[m\017:\
7270 :mh=\E[2m:mr=\E[7m:nd=\E[1C:nw=^M^J:rc=\E8:\
7271 :rs=\Ec\E[?3l\E[2;0y:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\
7272 :st=\EH:ta=^I:ts=\E7\E[25;%+^HH:ue=\E[m:us=\E[4m:\
7273 :vb=\E[?5h\E[?5l:ve=\E[11;0j:vs=\E[11;1j:
7274att5420_2-w|AT&T 5420 model 2 in 132 column mode:\
7275 :co#132:\
7276 :i1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r:\
7277 :tc=att5420_2:
7278
7279att4418|att5418|AT&T 5418 80 cols:\
7280 :am:xo:\
7281 :co#80:li#24:\
7282 :@8=\E[:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[n:\
7283 :F2=\E[o:F3=\E[H:F4=\E[I:F5=\E[J:F8=\E[K:F9=\E[L:FA=\E[E:\
7284 :FB=\E[_:FC=\E[M:FD=\E[N:FE=\E[O:IC=\E[%d@:LE=\E[%dD:\
7285 :RI=\E[%dC:UP=\E[%dA:\
7286 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
7287 :ae=^O:al=\E[1L:as=^N:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\
7288 :cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
7289 :i1=\E[?3l:ic=\E[1@:im=:is=\E)0\E?6l\E?5l:k1=\E[h:k2=\E[i:\
7290 :k3=\E[j:k6=\E[k:k7=\E[l:k8=\E[f:k9=\E[w:k;=\E[m:kC=\E[%%%:\
7291 :kd=\EU:kh=\Ec:kl=\E@:kr=\EA:ku=\ES:le=\E[D:mb=\E[5m:\
7292 :me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\
7293 :se=\E[m:sf=^J:so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m:
7294att4418-w|att5418-w|AT&T 5418 132 cols:\
7295 :co#132:\
7296 :i1=\E[?3h:tc=att5418:
7297
7298att4420|tty4420|teletype 4420:\
7299 :bs:da:db:eo:ms:ul:xo:\
7300 :co#80:li#24:lm#72:\
7301 :al=\EL:bl=^G:cd=\EJ:ce=\Ez:cl=\EH\EJ:cm=\EY%+ %+ :cr=\EG:\
7302 :dc=\EP:dl=\EM:dm@:do=\EB:ed@:ho=\EH:k0=\EU:k3=\E@:kA=\EL:\
7303 :kB=\EO:kC=\EJ:kD=\EP:kF=\ES:kI=\E^:kL=\EM:kR=\ET:kd=\EB:\
7304 :kh=\EH:kl=^H:kr=\EC:ku=\EA:l0=segment advance:\
7305 :l3=cursor tab:le=\ED:nd=\EC:se=\E~:sf=\EH\EM\EY7\s:\
7306 :so=\E}:ue=\EZ:up=\EA:us=\E\\:
7307
7308# The following is a terminfo entry for the Teletype 4424
7309# asynchronous keyboard-display terminal. It supports
7310# the vi editor. The terminal must be set up as follows,
7311#
7312# HIGHLIGHT DEFINITION 3-TONE
7313# DISPLAY FUNCTION GROUP III
7314#
7315# The second entry below provides limited (a la adm3a)
7316# operation under GROUP II.
7317#
7318# This must be used with DISPLAY FUNCTION GROUP I or III
7319# and HIGHLIGHT DEFINITION 3-TONE
7320# The terminal has either bold or blink, depending on options
7321#
7322# (att4424: commented out :ti:=\E[1m, we don't need bright locked on -- esr)
7323att4424|tty4424|teletype 4424:\
7324 :am:bs:xo:\
7325 :co#80:li#24:\
7326 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
7327 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\
7328 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
7329 :ae=\E(B:al=\EL:as=\E(0:bl=^G:bt=\EO:cd=\EJ:ce=\Ez:\
7330 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\EF:\
7331 :dc=\EP:dl=\EM:do=\EB:ei=:ho=\E[H:ic=\E^:im=:\
7332 :is=\E[20l\E[?7h:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kC=\EJ:\
7333 :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E3:\
7334 :md=\E3:me=\EX\E~\EZ\E4\E(B:mh=\EW:mr=\E}:nd=\EC:nw=\EE:\
7335 :..sa=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m:\
7336 :se=\E~:sf=^J:so=\E}:sr=\ET:st=\EH:ta=^I:ue=\EZ:up=\EA:\
7337 :us=\E\\:
7338
7339att4424-1|tty4424-1|teletype 4424 in display function group I:\
7340 :kC@:kd=\EB:kh@:kl=\ED:kr=\EC:ku=\EA:tc=att4424:
7341
7342# This entry is not one of AT&T's official ones, it was translated from the
7343# 4.4BSD termcap file. The highlight strings are different from att4424.
7344# I have no idea why this is -- older firmware version, maybe?
7345# The following two lines are the comment originally attached to the entry:
7346# This entry appears to avoid the top line - I have no idea why.
7347# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp
7348att4424m|tty4424m|teletype 4424M:\
7349 :am:da:db:mi:\
7350 :co#80:it#8:li#23:\
7351 :al=\EL:bl=^G:ce=\E[K:cl=\E[2;H\E[J:cm=\E[%i%2;%2H\E[B:\
7352 :cr=^M:dc=\EP:dl=\EM:do=^J:ei=:ic=\E^:im=:ip=2:\
7353 :is=\E[m\E[2;24r:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:\
7354 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:\
7355 :nd=\E[C:nw=^M^J:se=\E[m:sf=^J:so=\E[7m:sr=\ET:ta=^I:\
7356 :ue=\E[m:up=\E[A:us=\E[4m:
7357
7358# The Teletype 5425 is really version 2 of the Teletype 5420. It
7359# is quite similar, except for some minor differences. No page
7360# mode, for example, so all of the :cm: sequences used above have
7361# to change back to what's being used for the 5410. Many of the
7362# option settings have changed their numbering as well.
7363#
7364# This has been tested on a preliminary model.
7365#
7366# (att5425: added <rmam>/<smam> based on the init string -- esr)
7367# (untranslatable capabilities removed to fit entry within 1023 bytes)
7368# (sgr removed to fit entry within 1023 bytes)
7369# (acsc removed to fit entry within 1023 bytes)
7370# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
7371att5425|tty5425|att4425|AT&T 4425/5425:\
7372 :am:da:db:hs:mi:ms:xn:xo:\
7373 :co#80:it#8:li#24:lm#78:ws#55:\
7374 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
7375 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:ae=^O:\
7376 :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
7377 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
7378 :dl=\E[M:do=^J:ec=\E[%ds\E[%dD:ei=\E[4l:fs=\E8:ho=\E[H:\
7379 :i1=\E<\E[?3l:i2=\E[?5l:im=\E[4h:\
7380 :is=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212:\
7381 :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\
7382 :k8=\EOj:kD=\E[P:kI=\E[4h:kb=^H:kd=\E[B:\
7383 :ke=\E[21;0j\E[25;1j\212:kh=\E[H:kl=\E[D:kr=\E[C:\
7384 :ks=\E[21;1j\E[25;4j\Eent\E~:ku=\E[A:le=^H:ll=\E[24H:\
7385 :mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:\
7386 :nd=\E[C:nw=^M^J:rc=\E8:rs=\Ec\E[?3l\E[2;0y:sc=\E7:\
7387 :se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
7388 :ts=\E7\E[25;%+^HH:ue=\E[m:up=\E[A:us=\E[4m:\
7389 :vb=\E[?5h\E[?5l:ve=\E[12;0j:vs=\E[12;1j:
7390
7391att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels:\
7392 :ks=\E[21;1j\E[25;4j\Eent:tc=att4425:
7393
7394att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode:\
7395 :co#132:lm#54:ws#97:\
7396 :i1=\E[?3h:tc=tty5425:
7397
7398# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:.
7399# I also added <rmam>/<smam> -- esr)
7400att4426|tty4426|teletype 4426S:\
7401 :am:da:db:xo:\
7402 :co#80:li#24:lm#48:\
7403 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
7404 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dS:\
7405 :SR=\E[%dT:UP=\E[%dA:\
7406 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
7407 :ae=\E(B:al=\EL:as=\E(0:bl=^G:cd=\E[J:ce=\E[0K:ch=\E[%dG:\
7408 :cl=\E[H\E[2J\E[1U\E[H\E[2J\E[1V:cm=\E[%i%d;%dH:cr=^M:\
7409 :ct=\E[3g:cv=\E[%dd:dc=\EP:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
7410 :i1=\Ec\E[?7h:ic=\E^:im=:is=\E[m\E[1;24r:k1=\EOP:k2=\EOQ:\
7411 :k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:kB=\EO:\
7412 :kC=\E[2J:kH=\E[24;1H:kb=^H:kd=\EB:kh=\E[H:kl=\ED:kr=\EC:\
7413 :ku=\EA:le=\E[D:ll=\E[24H:md=\E[5m:me=\E[m\E(B:mr=\E[7m:\
7414 :nd=\E[C:nw=^M^J:rc=\E8:rs=\Ec\E[?3l\E[2;0y:sc=\E7:\
7415 :se=\E[m:sf=^J:so=\E[5m:sr=\ET:st=\E1:ta=^I:ue=\E[m:up=\EA:\
7416 :us=\E[4m:
7417
7418# Terminfo entry for the AT&T 510 A Personal Terminal
7419# Function keys 9 - 16 are available only after the
7420# screen labeled (soft keys/action blocks) are labeled. Function key
7421# 9 corresponds to the leftmost touch target on the screen,
7422# function key 16 corresponds to the rightmost.
7423#
7424# This entry is based on one done by Ernie Rice at Summit, NJ and
7425# changed by Anne Gallup, Skokie, IL, ttrdc!anne
7426# (untranslatable capabilities removed to fit entry within 1023 bytes)
7427att510a|bct510a|AT&T 510A Personal Terminal:\
7428 :am:mi:ms:xn:xo:\
7429 :Nl#8:co#80:lh#2:li#24:lw#7:\
7430 :#4=\E[u:%i=\E[v:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\
7431 :F1=\EOe:F2=\EOf:F3=\EOg:F4=\EOh:F5=\EOi:F6=\EOj:LE=\E[%dD:\
7432 :RI=\E[%dC:UP=\E[%dA:\
7433 :ac=+g,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~:\
7434 :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[0J:\
7435 :ce=\E[0K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
7436 :dc=\E[P:dl=\E[M:do=\E[1B:eA=\E(B\E)1:ff=^L:ho=\E[H:\
7437 :i1=\E(B\E)1\E[2l:i2=\E[21;1|\212:k1=\EOm:k2=\EOV:\
7438 :k3=\EOu:k4=\ENj:k5=\ENe:k6=\ENf:k7=\ENh:k8=\E[H:k9=\EOc:\
7439 :k;=\EOd:kB=\E[Z:kF=\E[S:kR=\E[T:kb=^H:kd=\E[B:ke=\E[19;0|:\
7440 :kl=\E[D:kr=\E[C:ks=\E[19;1|:ku=\E[A:le=^H:mb=\E[5m:\
7441 :md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\
7442 :pf=\E[?8i:po=\E[?4i:ps=\E[0i:rc=\E8:sc=\E7:se=\E[m:sf=^J:\
7443 :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\
7444 :ve=\E[11;3|:vi=\E[11;0|:vs=\E[11;2|:
7445
7446# Terminfo entry for the AT&T 510 D Personal Terminal
7447# Function keys 9 through 16 are accessed by bringing up the
7448# system blocks.
7449# Function key 9 corresponds to the leftmost touch target on the screen,
7450# function key 16 corresponds to the rightmost.
7451#
7452# There are problems with soft key labeling. These are due to
7453# strangenesses in the native terminal that are impossible to
7454# describe in a terminfo.
7455# (untranslatable capabilities removed to fit entry within 1023 bytes)
7456# (sgr removed to fit entry within 1023 bytes)
7457# (acsc removed to fit entry within 1023 bytes)
7458# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
7459att510d|bct510d|AT&T 510D Personal Terminal:\
7460 :am:da:db:mi:ms:xn:xo:\
7461 :co#80:li#24:lm#48:\
7462 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
7463 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:\
7464 :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[0J:ce=\E[0K:cl=\E[H\E[J:\
7465 :cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[1B:\
7466 :ei=\E[4l:ff=^L:ho=\E[H:i1=\E(B\E)1\E[5;0|:\
7467 :i2=\E[21;1|\212:im=\E[4h:k1=\EOm:k2=\EOV:k3=\EOu:k4=\ENj:\
7468 :k5=\ENe:k6=\ENf:k7=\ENh:k8=\E[H:k9=\EOc:kb=^H:kd=\E[B:\
7469 :ke=\E[19;0|:kl=\E[D:kr=\E[C:ks=\E[19;1|:ku=\E[A:le=^H:\
7470 :ll=\E#2:mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:\
7471 :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:rs=\E[5;0|:sc=\E7:se=\E[m:\
7472 :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:\
7473 :us=\E[4m:ve=\E[11;3|:vs=\E[11;2|:
7474
7475# (att500: I merged this with the att513 entry, att500 just used att513 -- esr)
7476# (untranslatable capabilities removed to fit entry within 1023 bytes)
7477# (sgr removed to fit entry within 1023 bytes)
7478# (acsc removed to fit entry within 1023 bytes)
7479# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
7480att500|att513|AT&T 513 using page mode:\
7481 :am:mi:ms:xn:xo:\
7482 :co#80:li#24:\
7483 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
7484 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:ae=^O:\
7485 :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
7486 :cm=\E[%i%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dc=\E[P:\
7487 :dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\
7488 :i1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l:\
7489 :im=\E[4h:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:\
7490 :k7=\EOi:k8=\EOj:kD=\ENf:kI=\ENj:kN=\E[U:kP=\E[V:kb=^H:\
7491 :kd=\E[B:ke=\E[19;0|\E[21;1|\212:kh=\E[H:kl=\E[D:kr=\E[C:\
7492 :ks=\E[19;1|\E[21;4|\Eent:ku=\E[A:le=^H:ll=\E#2:mb=\E[5m:\
7493 :md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\
7494 :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
7495 :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[11;0|:vs=\E[11;1|:
7496
7497# 01-07-88
7498# printer must be set to EMUL ANSI to accept ESC codes
7499# :up: stops at top margin
7500# :i1: sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font
7501# and alt font ascii,wrap on,tabs cleared
7502# :is: disables newline on LF,Emphasized off
7503# The <u0> capability sets form length
7504# (untranslatable capabilities removed to fit entry within 1023 bytes)
7505att5310|att5320|AT&T Model 53210 or 5320 matrix printer:\
7506 :YA:YD:\
7507 :Ya#8192:Yi#10:Yj#12:Yk#100:Yl#72:Ym#120:co#132:it#8:li#66:\
7508 :DO=\E[%de:RI=\E[%da:ZM=\E[5m:ZU=\E[m:Zl=\E[;%dr:\
7509 :Zm=\E[%+^As:Zn=\E[;%+^As:Zp=\E[%dr:ch=\E[%d`:cr=^M:\
7510 :cv=\E[%dd:do=^J:ff=^L:i1=\Ec:is=\E[20l\r:nd=\s:ta=^I:\
7511 :u0=\E[%dt:up=\EM:
7512
7513# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL
7514# The following SET-UP modes are assumed for normal operation:
7515# CR_DEF=CR NL_DEF=INDEX DUPLEX=FULL
7516# Other SET-UP modes may be set for operator convenience or communication
7517# requirements. This termcap description is for the Resident Terminal Mode.
7518# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
7519# The BRL entry also said: UNSAFE :ll=\E[70H:
7520att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs:\
7521 :am:xo:\
7522 :co#88:it#8:li#70:vt#3:\
7523 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:SF=\E[%dS:\
7524 :SR=\E[%dT:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
7525 :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:\
7526 :ic=\E[@:im=:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:\
7527 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:nw=^M^J:r1=\Ec:\
7528 :rc=\E8:sc=\E7:sf=^J:sr=\E[T:ta=^I:up=\E[A:
7529
7530# 5620 terminfo (2.0 or later ROMS with char attributes)
7531# The following SET-UP modes are assumed for normal operation:
7532# DUPLEX=FULL GEN_FLOW=ON NEWLINE=INDEX RETURN=CR
7533# Other SET-UP modes may be set for operator convenience or communication
7534# requirements. This termcap description is for Resident Terminal Mode. No
7535# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
7536# assumptions: :sf: (scroll forward one line) is only done at screen bottom
7537# Be aware that older versions of the dmd have a firmware bug that affects
7538# parameter defaulting; for this terminal, the 0 in \E[0m is not optional.
7539# :ms: is from an otherwise inferior BRL for this terminal. That entry
7540# also has :ll:=\E[70H commented out and marked unsafe.
7541# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>.
7542att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns:\
7543 :NL:NP:am:bs:ms:xo:\
7544 :co#88:it#8:li#70:\
7545 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:SF=\E[%dS:\
7546 :SR=\E[%dT:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
7547 :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
7548 :ic=\E[@:im=:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:\
7549 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md=\E[2m:me=\E[0m:mh=\E[2m:\
7550 :mr=\E[7m:nd=\E[C:nw=^J:..px=\E[%p1%d;%p2%l%dq%p2%s:\
7551 :r1=\Ec:rc=\E8:sc=\E7:se=\E[0m:sf=\E[S:so=\E[7m:sr=\E[T:\
7552 :ta=^I:ue=\E[0m:up=\E[A:us=\E[4m:
7553att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer:\
7554 :li#24:tc=att5620:
7555att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer:\
7556 :li#34:tc=att5620:
7557# 5620 layer running the "S" system's downloaded graphics handler:
7558att5620-s|tty5620-s|layer|vitty|5620 S layer:\
7559 :am:bs:pt:\
7560 :co#80:it#8:li#72:\
7561 :al=\EI:bl=^G:ce=\EK:cl=^L:cm=\EY%r%+ %+ :cr=^M:dl=\ED:\
7562 :do=^J:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\
7563 :kr=\E[C:ku=\E[A:le=^H:sf=^J:ta=^I:up=^K:vb=\E^G:
7564
7565# Entries for <kf15> thru <kf28> refer to the shifted system pf keys.
7566#
7567# Entries for <kf29> thru <kf46> refer to the alternate keypad mode
7568# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER
7569# (untranslatable capabilities removed to fit entry within 1023 bytes)
7570# (sgr removed to fit entry within 1023 bytes)
7571# (acsc removed to fit entry within 1023 bytes)
7572# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
7573att605|AT&T 605 80 column 102key keyboard:\
7574 :am:eo:xo:\
7575 :co#80:li#24:ws#80:\
7576 :DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:ae=^O:al=\E[L:as=\E)0\016:\
7577 :bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
7578 :cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:\
7579 :i1=\E[8;0|\E[?\E[13;20l\E[?\E[12h:ic=\E[@:im=\E[4h:\
7580 :is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:\
7581 :k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kD=\E[P:kI=\E[@:kN=\E[U:\
7582 :kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
7583 :le=^H:ll=\E[24H:mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:\
7584 :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:rs=\Ec\E[?3l:sc=\E7:\
7585 :se=\E[m:sf=^J:so=\E[7m:ta=^I:ts=\E7\E[25;%i%dx:ue=\E[m:\
7586 :up=\E[A:us=\E[4m:
7587att605-pc|ATT 605 in pc term mode:\
7588 :@7=\E[F:S4=250\E[?11l\E[50;1|:S5=400\E[50;0|:XF=g:XN=e:\
7589 :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\
7590 :al=\E[L:bt=\E[Z:dc=\E[P:dl=\E[M:do=\E[B:ei=:ic=\E[@:im=:\
7591 :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:\
7592 :k8=\E[T:k9=\E[U:k;=\E[V:kB=\E[Z:kD=\E[P:kI=\E[@:kL=\E[M:\
7593 :kN=\E[G:kP=\E[I:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
7594 :le=\E[D:nd=\E[C:up=\E[A:tc=att605:
7595att605-w|AT&T 605-w 132 column 102 key keyboard:\
7596 :co#132:ws#132:\
7597 :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0:\
7598 :tc=att605:
7599# (att610: I added <rmam>/<smam> based on the init string. I also
7600# added :SF: and :SR: because the BSD file says the att615s have them,
7601# and the 615 is like a 610 with a big keyboard, and most of their other
7602# smart terminals support the same sequence -- esr)
7603# (untranslatable capabilities removed to fit entry within 1023 bytes)
7604# (sgr removed to fit entry within 1023 bytes)
7605# (acsc removed to fit entry within 1023 bytes)
7606# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
7607att610|AT&T 610; 80 column; 98key keyboard:\
7608 :am:es:hs:mi:ms:xn:xo:\
7609 :co#80:it#8:li#24:ws#80:\
7610 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
7611 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:\
7612 :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
7613 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:\
7614 :do=\E[B:ei=\E[4l:fs=\E8:ho=\E[H:\
7615 :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0:\
7616 :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\
7617 :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kb=^H:\
7618 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\
7619 :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\
7620 :nw=\EE:rc=\E8:rs=\Ec\E[?3l:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\
7621 :sr=\EM:ta=^I:ts=\E7\E[25;%i%dx:ue=\E[m:up=\E[A:us=\E[4m:\
7622 :vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\
7623 :vs=\E[?12;25h:
7624att610-w|AT&T 610; 132 column; 98key keyboard:\
7625 :co#132:ws#132:\
7626 :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:\
7627 :tc=att610:
7628
7629att610-103k|AT&T 610; 80 column; 103key keyboard:\
7630 :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:%0=\EOt:%1=\EOm:%2=\ENi:\
7631 :%3=\EOl:%4=\ENc:%5=\ENh:%6=\EOv:%7=\EOr:%8=\ENg:%9=\EOz:\
7632 :%a=\EOL:%b=\ENC:%c=\ENH:%d=\EOR:%e=\ENG:%f=\EOZ:%g=\EOT:\
7633 :%h=\EOY:%j=\EOQ:&0=\EOW:&1=\EOb:&2=\ENa:&3=\EOy:&4=\EOB:\
7634 :&5=\EOq:&6=\EOo:&7=\EOp:&8=\EOs:&9=\ENB:*0=\EOX:*1=\EOU:\
7635 :*2=\END:*3=\EON:*4=\ENF:*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:\
7636 :*9=\EOK:@0=\EOx:@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:@5=\ENd:\
7637 :@6=\EOn:@7=\E0:@8=^M:@9=\EOk:F1@:F2@:F3@:F4@:k9@:k;@:kD=\ENf:\
7638 :kE=\EOa:kI=\ENj:kL=\ENe:kM=\ENj:kN=\E[U:kP=\E[V:tc=att610:
7639att610-103k-w|AT&T 610; 132 column; 103key keyboard:\
7640 :co#132:ws#132:\
7641 :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:\
7642 :tc=att610-103k:
7643att615|AT&T 615; 80 column; 98key keyboard:\
7644 :#4=\E[ A:%i=\E[ @:F5=\EOC:F6=\EOD:F7=\EOE:F8=\EOF:F9=\EOG:\
7645 :FA=\EOH:FB=\EOI:FC=\EOJ:FD=\ENO:FE=\ENP:FF=\ENQ:FG=\ENR:\
7646 :FH=\ENS:FI=\ENT:FJ=\EOP:FK=\EOQ:FL=\EOR:FM=\EOS:FN=\EOw:\
7647 :FO=\EOx:FP=\EOy:FQ=\EOm:FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:\
7648 :FV=\EOq:FW=\EOr:FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:tc=att610:
7649att615-w|AT&T 615; 132 column; 98key keyboard:\
7650 :#4=\E[ A:%i=\E[ @:F5=\EOC:F6=\EOD:F7=\EOE:F8=\EOF:F9=\EOG:\
7651 :FA=\EOH:FB=\EOI:FC=\EOJ:FD=\ENO:FE=\ENP:FF=\ENQ:FG=\ENR:\
7652 :FH=\ENS:FI=\ENT:FJ=\EOP:FK=\EOQ:FL=\EOR:FM=\EOS:FN=\EOw:\
7653 :FO=\EOx:FP=\EOy:FQ=\EOm:FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:\
7654 :FV=\EOq:FW=\EOr:FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:\
7655 :tc=att610-w:
7656att615-103k|AT&T 615; 80 column; 103key keyboard:\
7657 :#4=\E[ A:%i=\E[ @:tc=att610-103k:
7658att615-103k-w|AT&T 615; 132 column; 103key keyboard:\
7659 :#4=\E[ A:%i=\E[ @:tc=att610-103k-w:
7660# (att620: I added <rmam>/<smam> based on the init string and
7661# :SR:/:SF: from a BSD termcap -- esr)
7662# (untranslatable capabilities removed to fit entry within 1023 bytes)
7663# (sgr removed to fit entry within 1023 bytes)
7664# (acsc removed to fit entry within 1023 bytes)
7665# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
7666att620|AT&T 620; 80 column; 98key keyboard:\
7667 :am:es:hs:mi:ms:xn:xo:\
7668 :co#80:it#8:li#24:ws#80:\
7669 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
7670 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
7671 :ae=\E(B\017:al=\E[L:as=\E)0\016:bl=^G:bt=\E[Z:cd=\E[J:\
7672 :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
7673 :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:ho=\E[H:\
7674 :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h:\
7675 :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\
7676 :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kb=^H:\
7677 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\
7678 :mb=\E[5m:md=\E[1m:me=\E[m\E(B\017:mh=\E[2m:mr=\E[7m:\
7679 :nd=\E[C:nw=\EE:rc=\E8:rs=\Ec\E[?3l:sc=\E7:se=\E[m:sf=\ED:\
7680 :so=\E[7m:sr=\EM:ta=^I:ts=\E7\E[25;%i%dx:ue=\E[m:up=\E[A:\
7681 :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\
7682 :vs=\E[?12;25h:
7683att620-w|AT&T 620; 132 column; 98key keyboard:\
7684 :co#132:ws#132:\
7685 :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:\
7686 :tc=att620:
7687att620-103k|AT&T 620; 80 column; 103key keyboard:\
7688 :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:%0=\EOt:%1=\EOm:%2=\ENi:\
7689 :%3=\EOl:%4=\ENc:%5=\ENh:%6=\EOv:%7=\EOr:%8=\ENg:%9=\EOz:\
7690 :%a=\EOL:%b=\ENC:%c=\ENH:%d=\EOR:%e=\ENG:%f=\EOZ:%g=\EOT:\
7691 :%h=\EOY:%j=\EOQ:&0=\EOW:&1=\EOb:&2=\ENa:&3=\EOy:&4=\EOB:\
7692 :&5=\EOq:&6=\EOo:&7=\EOp:&8=\EOs:&9=\ENB:*0=\EOX:*1=\EOU:\
7693 :*2=\END:*3=\EON:*4=\ENF:*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:\
7694 :*9=\EOK:@0=\EOx:@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:@5=\ENd:\
7695 :@6=\EOn:@7=\E0:@8=^M:@9=\EOk:F1@:F2@:F3@:F4@:F5@:F6@:F7@:F8@:\
7696 :F9@:FA@:FB@:FC@:FD@:FE@:FF@:FG@:FH@:FI@:FJ@:FK@:FL@:FM@:FN@:FO@:FP@:\
7697 :FQ@:FR@:FS@:FT@:FU@:FV@:FW@:FX@:FY@:FZ@:Fa@:k9@:k;@:kD=\ENf:\
7698 :kE=\EOa:kI=\ENj:kL=\ENe:kM=\ENj:kN=\E[U:kP=\E[V:tc=att620:
7699
7700att620-103k-w|AT&T 620; 132 column; 103key keyboard:\
7701 :co#132:ws#132:\
7702 :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:\
7703 :tc=att620-103k:
7704
7705# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal
7706# The following SETUP modes are assumed for normal operation:
7707# Local_Echo=Off Gen_Flow=On Return=CR Received_Newline=LF
7708# Font_Size=Large Non-Layers_Window_Cols=80
7709# Non-Layers_Window_Rows=60
7710# Other SETUP modes may be set for operator convenience or communication
7711# requirements. Some capabilities assume a printer attached to the Aux EIA
7712# port. This termcap description is for the Fixed Non-Layers Window. No
7713# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
7714# (att630: added :ic:, :mb: and :mh: from a BSD termcap file -- esr)
7715att630|AT&T 630 windowing terminal:\
7716 :NP:am:bs:da:db:mi:ms:xo:\
7717 :co#80:it#8:li#60:lm#0:\
7718 :@8=^M:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\ENq:\
7719 :F2=\ENr:F3=\ENs:F4=\ENt:F5=\ENu:F6=\ENv:F7=\ENw:F8=\ENx:\
7720 :F9=\ENy:FA=\ENz:FB=\EN{:FC=\EN|:FD=\EN}:FE=\EN~:IC=\E[%d@:\
7721 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
7722 :al=\E[L:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:ce=\E[K:\
7723 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:\
7724 :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:is=\E[m:k9=\ENo:k;=\ENp:\
7725 :kA=\E[L:kB=\E[Z:kC=\E[2J:kD=\E[P:kI=\E[@:kL=\E[M:kb=^H:\
7726 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
7727 :me=\E[m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^M^J:pf=\E[?4i:\
7728 :po=\E[?5i:..px=\E[%p1%d;%p2%l%dq%p2%s:rc=\E8:rs=\Ec:\
7729 :..sa=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m:\
7730 :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\
7731 :up=\E[A:us=\E[4m:
7732att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines:\
7733 :li#24:tc=att630:
7734
7735# This is the att700 entry for 700 native emulation of the AT&T 700
7736# terminal. Comments are relative to changes from the 605V2 entry and
7737# att730 on which the entry is based. Comments show the terminfo
7738# capability name, termcap name, and description.
7739#
7740# Here is what's going onm in the init string:
7741# ESC [ 50;4| set 700 native mode (really is 605)
7742# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line)
7743# ESC [ 53;0| set GenFlow to Xon/Xoff
7744# ESC [ 8 ;0| set CR on NL
7745# x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h)
7746# ESC [ ? 4 l jump scroll
7747# ESC [ ? 5 l/h video: normal (l); reverse (h)
7748# ESC [ ?13 l Labels on
7749# ESC [ ?15 l parity check = no
7750# ESC [ 13 l monitor mode off
7751# ESC [ 20 l LF on NL (not CRLF on NL)
7752# ESC [ ? 7 h autowrap on
7753# ESC [ 12 h local echo off
7754# ESC ( B GO = ASCII
7755# ESC ) 0 G1 = Special Char & Line Drawing
7756# ESC [ ? 31 l Set 7 bit controls
7757#
7758# Note: Most terminals, especially the 600 family use Reverse Video for
7759# standout mode. DEC also uses reverse video. The VT100 uses bold in addition
7760# Assume we should stay with reverse video for 70.. However, the 605V2 exits
7761# standout mode with \E[m (all normal attributes). The 730 entry simply
7762# exits reverse video which would leave other current attributes intact. It
7763# was assumed the 730 entry to be more correct so rmso has changed. The
7764# 605V2 has no sequences to turn individual attributes off, thus its setting
7765# and the rmso/smso settings from the 730.
7766#
7767# Note: For the same reason as above in rmso I changed exit under-score mode
7768# to specifically turn off underscore, rather than return to all normal
7769# attributes
7770#
7771# Note: The following pkey_xmit is taken from the 605V2 which contained the
7772# capability as pfxl. It was changed here to pfx since pfxl
7773# will only compile successfully with Unix 4.0 tic. Also note that pfx only
7774# allows strings to be parameters and label values must be programmed as
7775# constant strings. Supposedly the pfxl of Version 4.0 allows both labels
7776# and strings to be parameters. The 605V2 pfx entry should be examined later
7777# in this regard. For reference the 730 pfxl entry is shown here for comparison
7778# 730 pfx entry:
7779# pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s
7780# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s,
7781#
7782# (for 4.0 tic)
7783# pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
7784#
7785# (for <4.0 tic)
7786# pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
7787#
7788# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9
7789#
7790# Port1 Interface
7791#
7792# modular 10 pin Connector
7793# Left side Right side
7794# Pin 1 2 3 4 5 6 7 8 9 10
7795#
7796# Key (notch) at bottom
7797#
7798# Pin 1 DSR
7799# 3 DCD
7800# 4 DTR
7801# 5 Sig Ground
7802# 6 RD
7803# 7 SD
7804# 8 CTS
7805# 9 RTS
7806# 10 Frame Ground
7807#
7808# The manual is 189 pages and is loaded with details about the escape codes,
7809# etc..... Available from AT&T CIC 800-432-6600...
7810# ask for Document number 999-300-660..
7811#
7812# (untranslatable capabilities removed to fit entry within 1023 bytes)
7813# (sgr removed to fit entry within 1023 bytes)
7814# (acsc removed to fit entry within 1023 bytes)
7815# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
7816att700|AT&T 700 24x80 column display w/102key keyboard:\
7817 :am:es:hs:mi:ms:xn:xo:\
7818 :co#80:it#8:li#24:ws#80:\
7819 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
7820 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
7821 :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
7822 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\
7823 :fs=\E8:ho=\E[H:i2=\E(B\E)0:im=\E[4h:\
7824 :is=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017:\
7825 :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\
7826 :k8=\EOj:k9=\ENo:kD=\E[P:kI=\E[@:kN=\E[U:kP=\E[V:kb=^H:\
7827 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\
7828 :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\
7829 :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\
7830 :st=\EH:ta=^I:ts=\E7\E[99;%i%dx:ue=\E[24m:up=\E[A:\
7831 :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\
7832 :vs=\E[?12;25h:
7833
7834# This entry was modified 3/13/90 by JWE.
7835# fixes include additions of <enacs>, correcting :rp:, and modification
7836# of <kHOM>. (See comments below)
7837# att730 has status line of 80 chars
7838# These were commented out: :SF=\E[%p1%dS:, :SR=\E[%p1%dT:,
7839# the <kf25> and up keys are used for shifted system Fkeys
7840# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is
7841# currently the same as :kh: (unshifted HOME or \E[H). On the 102, 102+1
7842# and 122 key keyboards, the 730's translation is \E[2J. For consistency
7843# <kHOM> has been commented out. The user can uncomment <kHOM> if using the
7844# 102, 102+1, or 122 key keyboards
7845# kHOM=\E[2J,
7846# (att730: I added <rmam>/<smam> based on the init string -- esr)
7847# (untranslatable capabilities removed to fit entry within 1023 bytes)
7848# (sgr removed to fit entry within 1023 bytes)
7849# (acsc removed to fit entry within 1023 bytes)
7850# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
7851att730|AT&T 730 windowing terminal:\
7852 :am:da:db:es:hs:mi:ms:xn:xo:\
7853 :co#80:it#8:li#60:lm#0:ws#80:\
7854 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
7855 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
7856 :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
7857 :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:\
7858 :ho=\E[H:\
7859 :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B:\
7860 :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\
7861 :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kI=\E[@:\
7862 :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
7863 :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\
7864 :nw=\EE:rc=\E8:rs=\Ec\E[?3l:sc=\E7:se=\E[27m:sf=\ED:\
7865 :so=\E[7m:sr=\EM:ta=^I:ts=\E7\E[;%i%dx:ue=\E[24m:up=\E[A:\
7866 :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\
7867 :vs=\E[?12;25h:
7868att730-41|730MTG-41|AT&T 730-41 windowing terminal Version:\
7869 :li#41:tc=att730:
7870att730-24|730MTG-24|AT&T 730-24 windowing terminal Version:\
7871 :li#24:tc=att730:
7872att730r|730MTGr|AT&T 730 rev video windowing terminal Version:\
7873 :i1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B:\
7874 :vb=\E[?5l\E[?5h:tc=att730:
7875att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version:\
7876 :li#41:tc=att730r:
7877att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version:\
7878 :li#24:tc=att730r:
7879
7880# The following represents the screen layout along with the associated
7881# bezel buttons for the 5430/pt505 terminal. The "kf" designations do
7882# not appear on the screen but are shown to reference the bezel buttons.
7883# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate
7884# position relative to the screen.
7885#
7886#
7887#
7888# +----------------------------------------------------------------+
7889# | |
7890# XXXX | kf0 kf24 | XXXX
7891# | |
7892# | |
7893# XXXX | kf1 kf23 | XXXX
7894# | |
7895# | |
7896# XXXX | kf2 kf22 | XXXX
7897# | |
7898# | |
7899# XXXX | kf3 kf21 | XXXX
7900# | |
7901# | |
7902# XXXX | kf4 kf20 | XXXX
7903# | |
7904# | |
7905# XXXX | kf5 kf19 | XXXX
7906# | |
7907# | |
7908# XXXX | kf6 kf18 | XXXX
7909# | |
7910# | |
7911# XXXX | | XXXX
7912# | |
7913# | |
7914# +----------------------------------------------------------------+
7915#
7916# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
7917#
7918# Note: XXXX represents the screen buttons
7919# CMD REDRAW
7920#
7921# MAIL
7922#
7923# version 1 note:
7924# The character string sent by key 'kf26' may be user programmable
7925# to send either \E[16s, or \E[26s.
7926# The character string sent by key 'krfr' may be user programmable
7927# to send either \E[17s, or \E[27s.
7928#
7929# Depression of the "CMD" key sends \E! (kcmd)
7930# Depression of the "MAIL" key sends \E[26s (kf26)
7931# "REDRAW" same as "REFRESH" (krfr)
7932#
7933# "kf" functions adds carriage return to output string if terminal is in
7934# 'new line' mode.
7935#
7936# The following are functions not covered in the table above:
7937#
7938# Set keyboard character (SKC): \EPn1;Pn2w
7939# Pn1= 0 Back Space key
7940# Pn1= 1 Break key
7941# Pn2= Program char (hex)
7942#
7943# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t
7944# Pn1= Window number (1-39)
7945# Pn2-Pn5= Y;X;Y;X coordinates
7946#
7947# Screen Selection (SSL): \E[Pnu
7948# Pn= Window number
7949#
7950# Set Terminal Modes (SM): \E[Pnh
7951# Pn= 3 Graphics mode
7952# Pn= > Cursor blink
7953# Pn= < Enter new line mode
7954# Pn= = Enter reverse insert/replace mode
7955# Pn= ? Enter no scroll mode
7956#
7957# Reset Terminal Mode (RM): \E[Pnl
7958# Pn= 3 Exit graphics mode
7959# Pn= > Exit cursor blink
7960# Pn= < Exit new line mode
7961# Pn= = Exit reverse insert/replace mode
7962# Pn= ? Exit no scroll mode
7963#
7964# Screen Status Report (SSR): \E[Pnp
7965# Pn= 0 Request current window number
7966# Pn= 1 Request current window dimensions
7967#
7968# Device Status Report (DSR): \E[6n Request cursor position
7969#
7970# Call Status Report (CSR): \E[Pnv
7971# Pn= 0 Call failed
7972# Pn= 1 Call successful
7973#
7974# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string
7975# Pn1= Button number to be loaded
7976# Pn2= Character count of "string"
7977# Pn3= Key mode being loaded:
7978# 0= Unshifted
7979# 1= Shifted
7980# 2= Control
7981# String= Text string (15 chars max)
7982#
7983# Screen Number Report (SNR): \E[Pnp
7984# Pn= Screen number
7985#
7986# Screen Dimension Report (SDR): \E[Pn1;Pn2r
7987# Pn1= Number of rows available in window
7988# Pn2= Number of columns available in window
7989#
7990# Cursor Position Report (CPR): \E[Pn1;Pn2R
7991# Pn1= "Y" Position of cursor
7992# Pn2= "X" Position of cursor
7993#
7994# Request Answer Back (RAB): \E[c
7995#
7996# Answer Back Response (ABR): \E[?;*;30;VSV
7997# *= 0 No printer available
7998# *= 2 Printer available
7999# V= Software version number
8000# SV= Software sub version number
8001# (printer-available field not documented in v1)
8002#
8003# Screen Alignment Aid: \En
8004#
8005# Bell (lower pitch): \E[x
8006#
8007# Dial Phone Number: \EPdstring\
8008# string= Phone number to be dialed
8009#
8010# Set Phone Labels: \EPpstring\
8011# string= Label for phone buttons
8012#
8013# Set Clock: \EPchour;minute;second\
8014#
8015# Position Clock: \EPsY;X\
8016# Y= "Y" coordinate
8017# X= "X" coordinate
8018#
8019# Delete Clock: \Epr\
8020#
8021# Programming The Function Buttons: \EPfPn;string\
8022# Pn= Button number (00-06, 18-24)
8023# (kf00-kf06, kf18-kf24)
8024# string= Text to sent on button depression
8025#
8026# The following in version 2 only:
8027#
8028# Request For Local Directory Data: \EPp12;\
8029#
8030# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\
8031#
8032# Request for Local Directory Data in print format: \EPp13;\
8033#
8034# Enable 'Prt on Line' mode: \022 (DC2)
8035#
8036# Disable 'Prt on Line' mode: \024 (DC4)
8037#
8038
8039# 05-Aug-86:
8040# The following Terminfo entry describes functions which are supported by
8041# the AT&T 5430/pt505 terminal software version 2 and later.
8042att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal:\
8043 :am:xo:\
8044 :co#80:it#8:li#24:\
8045 :&2=\E[27s:@4=\E!:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\
8046 :F8=\E[18s:F9=\E[19s:FA=\E[20s:FB=\E[21s:FC=\E[22s:\
8047 :FD=\E[23s:FE=\E[24s:FG=\E[26s:LE=\E[%dD:RA=\E[11;1j:\
8048 :RI=\E[%dC:SA=\E[11;0j:UP=\E[%dA:\
8049 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
8050 :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cb=\E[2K:cd=\E[0J:\
8051 :ce=\E[0K:cl=\E[2J\E[H:cm=\E[%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\
8052 :do=\E[B:ei=\E[4l:ho=\E[H:\
8053 :i1=\EPr\\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l:\
8054 :im=\E[4h:k0=\E[00s:k1=\E[01s:k2=\E[02s:k3=\E[03s:\
8055 :k4=\E[04s:k5=\E[05s:k6=\E[06s:kb=^H:kd=\E[B:kl=\E[D:\
8056 :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[m:\
8057 :mr=\E[7m:nd=\E[C:pf=\E[4i:po=\E[5i:r1=\Ec:rc=\E8:sc=\E7:\
8058 :se=\E[m:sf=^J:so=\E[1m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\
8059 :ve=\E[>l:vs=\E[>h:
8060
8061# The following Terminfo entry describes functions which are supported by
8062# the AT&T 5430/pt505 terminal software version 1.
8063att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines:\
8064 :li#24:\
8065 :RA@:SA@:pf@:po@:rc@:sc@:tc=att505:
8066tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines:\
8067 :li#22:tc=att505:
8068#
8069#### ------------------ TERMINFO FILE CAN BE SPLIT HERE ---------------------
8070# This cut mark helps make life less painful for people running ncurses tic
8071# on machines with relatively little RAM. The file can be broken in half here
8072# cleanly and compiled in sections -- no `use' references cross this cut
8073# going forward.
8074#
8075
8076#### Ampex (Dialogue)
8077#
8078# Yes, these are the same people who are better-known for making audio- and
8079# videotape. I'm told they are located in Redwood City, CA.
8080#
8081
8082# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981
8083# (ampex80: some capabilities merged in from SCO's entry -- esr)
8084ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80:\
8085 :am:bs:bw:ul:\
8086 :co#80:it#8:li#24:\
8087 :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :\
8088 :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:ei=:ic=\EQ:im=:is=\EA:le=^H:\
8089 :nd=^L:se=\Ek:sf=^J:so=\Ej:st=\E1:ta=^I:ue=\Em:up=^K:us=\El:
8090# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote:
8091ampex175|ampex d175:\
8092 :am:\
8093 :co#80:li#24:\
8094 :al=\EE:bl=^G:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :cr=^M:\
8095 :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:is=\EX\EA\EF:\
8096 :kA=\EE:kD=\EW:kI=\EQ:kL=\ER:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:\
8097 :le=^H:ll=^^^K:nd=^L:se=\Ek:sf=^J:so=\Ej:te=\EF:ti=\EN:\
8098 :ue=\Em:up=^K:us=\El:
8099# No backspace key in the main QWERTY cluster. Fortunately, it has a
8100# NEWLINE/PAGE key just above RETURN that sends a strange single-character
8101# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS
8102# mode), this key can be used as the erase key; I find I like this. Because
8103# some people and some systems may not, there is another termcap ("ampex175")
8104# that suppresses this little eccentricity by omitting the relevant capability.
8105ampex175-b|ampex d175 using left arrow for erase:\
8106 :kb=^_:tc=ampex175:
8107# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu>
8108# (ampex210: removed obsolete ":kn#10:" -- esr)
8109ampex210|a210|ampex a210:\
8110 :am:bs:hs:xn:\
8111 :co#80:it#8:li#24:sg#1:\
8112 :al=\EE:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :dc=\EW:\
8113 :dl=\ER:ei=:fs=\E.2:ho=^^:ic=\EQ:if=/usr/share/tabset/std:\
8114 :im=:is=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En:\
8115 :k0=^A0\r:k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:\
8116 :k6=^A6\r:k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^V:kh=^^:kl=^H:\
8117 :kr=^L:ku=^K:le=^H:mk@:nd=^L:ta=^I:ts=\E.0\Eg\E}\Ef:up=^K:\
8118 :vb=\EU\EX\EU\EX\EU\EX\EU\EX:tc=adm+sgr:
8119# (ampex219: I added <rmam>/<smam> based on the init string, added :vs:
8120# from ampex219w, added :ve:=\E[?3l, irresistibly suggested by :vs:,
8121# and moved the padding to be *after* the caps -- esr)
8122ampex219|ampex-219|amp219|Ampex with Automargins:\
8123 :hs:xn:\
8124 :co#80:it#8:li#24:\
8125 :RA=\E[?7l:SA=\E[?7h:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\
8126 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=%i\E[%2;%2r:\
8127 :do=\E[B:ho=\E[H:\
8128 :is=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k0=\E[21~:\
8129 :k1=\E[7~:k2=\E[8~:k3=\E[9~:k4=\E[10~:k5=\E[11~:k6=\E[17~:\
8130 :k7=\E[18~:k8=\E[19~:k9=\E[20~:kd=\E[B:ke=\E>:kh=\E[H:\
8131 :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\
8132 :me=\E[m:mh=\E[1m:mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:\
8133 :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?3l:vs=\E[?3h:
8134ampex219w|ampex-219w|amp219w|Ampex 132 cols:\
8135 :co#132:li#24:\
8136 :bl=^G:cr=^M:do=^J:is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\
8137 :sf=^J:tc=ampex219:
8138# (ampex232: removed :if=/usr/share/tabset/ampex:, no file and no :st: --esr)
8139ampex232|ampex-232|Ampex Model 232:\
8140 :am:\
8141 :co#80:li#24:sg#1:\
8142 :al=5*\EE:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :dc=\EW:\
8143 :dl=5*\ER:do=^V:ei=:ic=\EQ:im=:is=\Eg\El:k0=^A@\r:k1=^AA\r:\
8144 :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\
8145 :k8=^AH\r:k9=^AI\r:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\
8146 :mk@:nd=^L:ta=^I:up=^K:vb=\Eb\Ed:ve=\E.4:vi=\E.0:tc=adm+sgr:
8147# (ampex: removed :if=/usr/share/tabset/amp-132:, no file and no :st: -- esr)
8148ampex232w|Ampex Model 232 / 132 columns:\
8149 :co#132:li#24:\
8150 :is=\E\034Eg\El:tc=ampex232:
8151
8152#### Ann Arbor (aa)
8153#
8154# Ann Arbor made dream terminals for hackers -- large screen sizes and huge
8155# numbers of function keys. At least some used monitors in portrait mode,
8156# allowing up to 76-character screen heights! They were reachable at:
8157#
8158# Ann Arbor Terminals
8159# 6175 Jackson Road
8160# Ann Arbor, MI 48103
8161# (313)-663-8000
8162#
8163# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor
8164# can't be found on the Web; I fear they're long dead. R.I.P.
8165#
8166
8167
8168# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs.
8169# Highly modified 6/22 by Mike O'Brien.
8170# split out into several for the various screen sizes by dave-yost@rand
8171# Modifications made 3/82 by Mark Horton
8172# Modified by Tom Quarles at UCB for greater efficiency and more diversity
8173# status line moved to top of screen, :vb: removed 5/82
8174# Some unknown person at SCO then hacked the init strings to make them more
8175# efficient.
8176#
8177# assumes the following setup:
8178# A menu: 0000 1010 0001 0000
8179# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
8180# C menu: 56 66 0 0 9600 0110 1100
8181# D menu: 0110 1001 1 0
8182#
8183# Briefly, the settings are for the following modes:
8184# (values are for bit set/clear with * indicating our preference
8185# and the value used to test these termcaps)
8186# Note that many of these settings are irrelevent to the terminfo
8187# and are just set to the default mode of the terminal as shipped
8188# by the factory.
8189#
8190# A menu: 0000 1010 0001 0000
8191# Block/underline cursor*
8192# blinking/nonblinking cursor*
8193# key click/no key click*
8194# bell/no bell at column 72*
8195#
8196# key pad is cursor control*/key pad is numeric
8197# return and line feed/return for :cr: key *
8198# repeat after .5 sec*/no repeat
8199# repeat at 25/15 chars per sec. *
8200#
8201# hold data until pause pressed/process data unless pause pressed*
8202# slow scroll/no slow scroll*
8203# Hold in area/don't hold in area*
8204# functions keys have default*/function keys disabled on powerup
8205#
8206# show/don't show position of cursor during page transmit*
8207# unused
8208# unused
8209# unused
8210#
8211# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
8212# Baud rate (9600*)
8213#
8214# 2 bits of parity - 00=odd,01=even*,10=space,11=mark
8215# 1 stop bit*/2 stop bits
8216# parity error detection off*/on
8217#
8218# keyboard local/on line*
8219# half/full duplex*
8220# disable/do not disable keyboard after data transmission*
8221#
8222# transmit entire page/stop transmission at cursor*
8223# transfer/do not transfer protected characters*
8224# transmit all characters/transmit only selected characters*
8225# transmit all selected areas/transmit only 1 selected area*
8226#
8227# transmit/do not transmit line separators to host*
8228# transmit/do not transmit page tab stops tabs to host*
8229# transmit/do not transmit column tab stop tabs to host*
8230# transmit/do not transmit graphics control (underline,inverse..)*
8231#
8232# enable*/disable auto XON/XOFF control
8233# require/do not require receipt of a DC1 from host after each LF*
8234# pause key acts as a meta key/pause key is pause*
8235# unused
8236#
8237# unused
8238# unused
8239# unused
8240# unused
8241#
8242# XON character (17*)
8243# XOFF character (19*)
8244#
8245# C menu: 56 66 0 0 9600 0110 1100
8246# number of lines to print data on (printer) (56*)
8247#
8248# number of lines on a sheet of paper (printer) (66*)
8249#
8250# left margin (printer) (0*)
8251#
8252# number of pad chars on new line to printer (0*)
8253#
8254# printer baud rate (9600*)
8255#
8256# printer parity: 00=odd,01=even*,10=space,11=mark
8257# printer stop bits: 2*/1
8258# print/do not print guarded areas*
8259#
8260# new line is: 01=LF,10=CR,11=CRLF*
8261# unused
8262# unused
8263#
8264# D menu: 0110 1001 1 0
8265# LF is newline/LF is down one line, same column*
8266# wrap to preceding line if move left from col 1*/don't wrap
8267# wrap to next line if move right from col 80*/don't wrap
8268# backspace is/is not destructive*
8269#
8270# display*/ignore DEL character
8271# display will not/will scroll*
8272# page/column tab stops*
8273# erase everything*/erase unprotected only
8274#
8275# editing extent: 0=display,1=line*,2=field,3=area
8276#
8277# unused
8278#
8279
8280annarbor4080|aa4080|ann arbor 4080:\
8281 :am:bs:\
8282 :co#80:li#40:\
8283 :bl=^G:cl=\014:\
8284 :..cm=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c:\
8285 :cr=^M:ct=^^P^P:do=^J:ho=^K:kb=^^:kd=^J:kh=^K:kl=^H:kr=^_:\
8286 :ku=^N:le=^H:nd=^_:sf=^J:st=^]^P1:ta=^I:up=^N:
8287
8288# Strange Ann Arbor terminal from BRL
8289aas1901|Ann Arbor K4080 w/S1901 mod:\
8290 :am:\
8291 :co#80:li#40:\
8292 :bl=^G:cl=^L:cr=^M:do=^J:ho=^K:kb=^H:kd=^J:kl=^H:le=^H:\
8293 :ll=^O\0c:nd=^_:nw=^M^J:sf=^J:ta=^I:up=^N:
8294
8295# If you're using the GNU termcap library, add
8296# :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp:
8297# to these capabilities. This is the nonstandard GNU termcap scrolling
8298# capability, arguments are:
8299# 1. Total number of lines on the screen.
8300# 2. Number of lines above desired scroll region.
8301# 3. Number of lines below (outside of) desired scroll region.
8302# 4. Total number of lines on the screen, the same as the first parameter.
8303# The generic Ann Arbor entry is the only one that uses this.
8304# (untranslatable capabilities removed to fit entry within 1023 bytes)
8305# (sgr removed to fit entry within 1023 bytes)
8306# (acsc removed to fit entry within 1023 bytes)
8307# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
8308aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly):\
8309 :am:bs:km:mi:xo:\
8310 :co#80:it#8:\
8311 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
8312 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:bt=\E[Z:\
8313 :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
8314 :ct=\E[2g:dc=\E[P:dl=\E[M:do=^K:ei=:ho=\E[H:\
8315 :i1=\E[m\E7\E[H\E9\E8:i2=\E[1Q\E[>20;30l\EP`+x~M\E\\:\
8316 :ic=\E[@:im=:k1=\EOA:k2=\EOB:k3=\EOC:k4=\EOD:k5=\EOE:\
8317 :k6=\EOF:k7=\EOG:k8=\EOH:k9=\EOI:kD=\E[P:kI=\E[@:kb=^H:\
8318 :kd=\E[B:\
8319 :ke=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\:\
8320 :kh=\E[H:kl=\E[D:kr=\E[C:\
8321 :ks=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\:\
8322 :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mm=\E[>52h:\
8323 :mo=\E[>52l:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=^K:\
8324 :so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
8325
8326aaa+rv|ann arbor ambassador in reverse video:\
8327 :i1=\E[7m\E7\E[H\E9\E8:mb=\E[5;7m:md=\E[1;7m:\
8328 :me=\E[7m\016:mk=\E[7;8m:mr=\E[m:r1=\E[H\E[7m\E[J:\
8329 :..sa=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\
8330 :se=\E[7m:so=\E[m:ue=\E[7m:us=\E[4;7m:
8331# Ambassador with the DEC option, for partial vt100 compatibility.
8332aaa+dec|ann arbor ambassador in dec vt100 mode:\
8333 :ac=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}:\
8334 :ae=^N:as=^O:cs=\E[%i%d;%dr:eA=\E(0:\
8335 :..sa=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;:
8336aaa-18|ann arbor ambassador/18 lines:\
8337 :li#18:\
8338 :is=\E7\E[60;0;0;18p\E8:te=\E[60;0;0;18p\E[60;1H\E[K:\
8339 :ti=\E[18;0;0;18p:tc=aaa+unk:
8340aaa-18-rv|ann arbor ambassador/18 lines+reverse video:\
8341 :tc=aaa+rv:tc=aaa-18:
8342aaa-20|ann arbor ambassador/20 lines:\
8343 :li#20:\
8344 :is=\E7\E[60;0;0;20p\E8:te=\E[60;0;0;20p\E[60;1H\E[K:\
8345 :ti=\E[20;0;0;20p:tc=aaa+unk:
8346aaa-22|ann arbor ambassador/22 lines:\
8347 :li#22:\
8348 :is=\E7\E[60;0;0;22p\E8:te=\E[60;0;0;22p\E[60;1H\E[K:\
8349 :ti=\E[22;0;0;22p:tc=aaa+unk:
8350aaa-24|ann arbor ambassador/24 lines:\
8351 :li#24:\
8352 :is=\E7\E[60;0;0;24p\E8:te=\E[60;0;0;24p\E[60;1H\E[K:\
8353 :ti=\E[24;0;0;24p:tc=aaa+unk:
8354aaa-24-rv|ann arbor ambassador/24 lines+reverse video:\
8355 :tc=aaa+rv:tc=aaa-24:
8356aaa-26|ann arbor ambassador/26 lines:\
8357 :li#26:\
8358 :is=\E7\E[60;0;0;26p\E8:te=\E[60;0;0;26p\E[26;1H\E[K:\
8359 :ti=\E[H\E[J\E[26;0;0;26p:tc=aaa+unk:
8360aaa-28|ann arbor ambassador/28 lines:\
8361 :li#28:\
8362 :is=\E7\E[60;0;0;28p\E8:te=\E[60;0;0;28p\E[28;1H\E[K:\
8363 :ti=\E[H\E[J\E[28;0;0;28p:tc=aaa+unk:
8364aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status:\
8365 :es:hs:\
8366 :li#29:\
8367 :ds=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K:\
8368 :fs=\E[>51l:is=\r\n\E[A\E7\E[60;1;0;30p\E8:\
8369 :te=\E[60;1;0;30p\E[29;1H\E[K:\
8370 :ti=\E[H\E[J\E[30;1;0;30p\E[30;1H\E[K:\
8371 :ts=\E[>51h\E[1;%dH\E[2K:tc=aaa+unk:
8372aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video:\
8373 :tc=aaa+rv:tc=aaa-30-s:
8374aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context:\
8375 :te=\E[60;1;0;30p\E[59;1H\E[K:\
8376 :ti=\E[30;1H\E[K\E[30;1;0;30p:tc=aaa-30-s:
8377aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video:\
8378 :te=\E[60;1;0;30p\E[59;1H\E[K:\
8379 :ti=\E[30;1H\E[K\E[30;1;0;30p:tc=aaa-30-s-rv:
8380aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines:\
8381 :li#30:\
8382 :is=\E7\E[60;0;0;30p\E8:te=\E[60;0;0;30p\E[30;1H\E[K:\
8383 :ti=\E[H\E[J\E[30;0;0;30p:tc=aaa+unk:
8384aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video:\
8385 :tc=aaa+rv:tc=aaa-30:
8386aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context:\
8387 :te=\E[60;0;0;30p\E[60;1H\E[K:ti=\E[30;0;0;30p:\
8388 :tc=aaa-30:
8389aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context:\
8390 :te=\E[60;0;0;30p\E[60;1H\E[K:ti=\E[30;0;0;30p:\
8391 :tc=aaa+rv:tc=aaa-30:
8392aaa-36|ann arbor ambassador/36 lines:\
8393 :li#36:\
8394 :is=\E7\E[60;0;0;36p\E8:te=\E[60;0;0;36p\E[36;1H\E[K:\
8395 :ti=\E[H\E[J\E[36;0;0;36p:tc=aaa+unk:
8396aaa-36-rv|ann arbor ambassador/36 lines+reverse video:\
8397 :tc=aaa+rv:tc=aaa-36:
8398aaa-40|ann arbor ambassador/40 lines:\
8399 :li#40:\
8400 :is=\E7\E[60;0;0;40p\E8:te=\E[60;0;0;40p\E[40;1H\E[K:\
8401 :ti=\E[H\E[J\E[40;0;0;40p:tc=aaa+unk:
8402aaa-40-rv|ann arbor ambassador/40 lines+reverse video:\
8403 :tc=aaa+rv:tc=aaa-40:
8404aaa-48|ann arbor ambassador/48 lines:\
8405 :li#48:\
8406 :is=\E7\E[60;0;0;48p\E8:te=\E[60;0;0;48p\E[48;1H\E[K:\
8407 :ti=\E[H\E[J\E[48;0;0;48p:tc=aaa+unk:
8408aaa-48-rv|ann arbor ambassador/48 lines+reverse video:\
8409 :tc=aaa+rv:tc=aaa-48:
8410aaa-60-s|ann arbor ambassador/59 lines+status:\
8411 :es:hs:\
8412 :li#59:\
8413 :ds=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K:\
8414 :fs=\E[>51l:is=\r\n\E[A\E7\E[60;1;0;60p\E8:\
8415 :ts=\E[>51h\E[1;%dH\E[2K:tc=aaa+unk:
8416aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video:\
8417 :tc=aaa+rv:tc=aaa-60-s:
8418aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video:\
8419 :tc=aaa+dec:tc=aaa+rv:tc=aaa-60-s:
8420aaa-60|ann arbor ambassador/60 lines:\
8421 :li#60:\
8422 :is=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8:tc=aaa+unk:
8423aaa-60-rv|ann arbor ambassador/60 lines+reverse video:\
8424 :tc=aaa+rv:tc=aaa-60:
8425aaa-db|ann arbor ambassador 30/destructive backspace:\
8426 :bs@:\
8427 :i2=\E[1Q\E[m\E[>20l\E[>30h:le=\E[D:tc=aaa-30:
8428
8429guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols:\
8430 :li#33:\
8431 :i2=\E[>59l:is=\E7\E[255;0;0;33;80;80p\E8\E[J:\
8432 :te=\E[255p\E[255;1H\E[K:ti=\E[33p:vb=\E[>59h\E[>59l:\
8433 :tc=aaa+unk:
8434guru+rv|guru changes for reverse video:\
8435 :i2=\E[>59h:vb=\E[>59l\E[>59h:
8436guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video:\
8437 :tc=guru+rv:tc=guru-33:
8438guru+s|guru status line:\
8439 :es:hs:\
8440 :ds=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K:fs=\E[>51l:\
8441 :te=\E[255;1p\E[255;1H\E[K:ti=:ts=\E[>51h\E[1;%dH\E[2K:
8442guru-nctxt|guru with no saved context:\
8443 :ti=\E[H\E[J\E[33p\E[255;1H\E[K:tc=guru:
8444guru-s|guru-33-s|ann arbor guru/33 lines+status:\
8445 :li#32:\
8446 :is=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J:\
8447 :ti=\E[33;1p\E[255;1H\E[K:tc=guru+s:tc=guru+unk:
8448guru-24|ann arbor guru 24 lines:\
8449 :co#80:li#24:\
8450 :is=\E7\E[255;0;0;24;80;80p\E8\E[J:ti=\E[24p:\
8451 :tc=guru+unk:
8452guru-44|ann arbor guru 44 lines:\
8453 :co#97:li#44:\
8454 :is=\E7\E[255;0;0;44;97;100p\E8\E[J:ti=\E[44p:\
8455 :tc=guru+unk:
8456guru-44-s|ann arbor guru/44 lines+status:\
8457 :li#43:\
8458 :is=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J:\
8459 :ti=\E[44;1p\E[255;1H\E[K:tc=guru+s:tc=guru+unk:
8460guru-76|guru with 76 lines by 89 cols:\
8461 :co#89:li#76:\
8462 :is=\E7\E[255;0;0;76;89;100p\E8\E[J:ti=\E[76p:\
8463 :tc=guru+unk:
8464guru-76-s|ann arbor guru/76 lines+status:\
8465 :co#89:li#75:\
8466 :is=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J:\
8467 :ti=\E[76;1p\E[255;1H\E[K:tc=guru+s:tc=guru+unk:
8468guru-76-lp|guru-lp|guru with page bigger than line printer:\
8469 :co#134:li#76:\
8470 :is=\E7\E[255;0;0;76;134;134p\E8\E[J:ti=\E[76p:\
8471 :tc=guru+unk:
8472guru-76-w|guru 76 lines by 178 cols:\
8473 :co#178:li#76:\
8474 :is=\E7\E[255;0;0;76;178;178p\E8\E[J:ti=\E[76p:\
8475 :tc=guru+unk:
8476guru-76-w-s|ann arbor guru/76 lines+status+wide:\
8477 :co#178:li#75:\
8478 :is=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J:\
8479 :ti=\E[76;1p\E[255;1H\E[K:tc=guru+s:tc=guru+unk:
8480guru-76-wm|guru 76 lines by 178 cols with 255 cols memory:\
8481 :co#178:li#76:\
8482 :is=\E7\E[255;0;0;76;178;255p\E8\E[J:ti=\E[76p:\
8483 :tc=guru+unk:
8484aaa-rv-unk|ann arbor unknown type:\
8485 :Nl#0:lh#0:lw#0:\
8486 :ho=\E[H:i1=\E[7m\E7\E[H\E9\E8:mb=\E[5;7m:md=\E[1;7m:\
8487 :me=\E[7m:mk=\E[7;8m:mr=\E[m:r1=\E[H\E[7m\E[J:\
8488 :..sa=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\
8489 :se=\E[7m:so=\E[m:ue=\E[7m:us=\E[4;7m:
8490
8491#### Applied Digital Data Systems (adds)
8492#
8493# ADDS itself is long gone. ADDS was bought by NCR, and the same group made
8494# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for
8495# terminals was merged again. Then AT&T sold the terminal business to
8496# SunRiver, which later changed its name to Boundless Technologies. The
8497# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there
8498# as of early 1995) are at:
8499#
8500# Boundless Technologies
8501# 100 Marcus Boulevard
8502# Hauppauge, NY 11788-3762
8503# Vox: (800)-231-5445
8504# Fax: (516)-342-7378
8505# Web: http://boundless.com
8506#
8507# Their voice mail used to describe the place as "SunRiver (formerly ADDS)".
8508# In 1995 Boundless acquired DEC's terminals business.
8509#
8510
8511# Regent: lowest common denominator, works on all regents.
8512# (regent: renamed ":bc:" to ":le:" -- esr)
8513regent|Adds Regent Series:\
8514 :am:bs:\
8515 :co#80:li#24:\
8516 :bl=^G:cl=^L:cr=^M:do=^J:ho=\EY\s\s:le=^U:ll=^A:nd=^F:sf=^J:\
8517 :up=^Z:
8518# Regent 100 has a bug where if computer sends escape when user is holding
8519# down shift key it gets confused, so we avoid escape.
8520regent100|Adds Regent 100:\
8521 :sg#1:ug#1:\
8522 :bl=^G:cm=\013%+ \020%B%.:k0=^B1\r:k1=^B2\r:k2=^B3\r:\
8523 :k3=^B4\r:k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:l0=F1:l1=F2:\
8524 :l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:me=\E0@:se=\E0@:so=\E0P:\
8525 :ue=\E0@:us=\E0`:tc=regent:
8526regent20|Adds Regent 20:\
8527 :bl=^G:cd=\Ek:ce=\EK:cm=\EY%+ %+ :tc=regent:
8528regent25|Adds Regent 25:\
8529 :bl=^G:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:tc=regent20:
8530regent40|Adds Regent 40:\
8531 :sg#1:ug#1:\
8532 :al=\EM:bl=^G:dl=\El:k0=^B1\r:k1=^B2\r:k2=^B3\r:k3=^B4\r:\
8533 :k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:l0=F1:l1=F2:l2=F3:\
8534 :l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:me=\E0@:se=\E0@:so=\E0P:\
8535 :ue=\E0@:us=\E0`:tc=regent25:
8536regent40+|Adds Regent 40+:\
8537 :is=\EB:tc=regent40:
8538regent60|regent200|Adds Regent 60:\
8539 :dc=\EE:ei=\EF:im=\EF:is=\EV\EB:kD=\EE:kI=\EF:kM=\EF:\
8540 :se=\ER\E0@\EV:so=\ER\E0P\EV:tc=regent40+:
8541# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981
8542# (viewpoint: added :kr:, function key, and :dl: capabilities -- esr)
8543viewpoint|addsviewpoint|adds viewpoint:\
8544 :am:bs:\
8545 :co#80:li#24:\
8546 :bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dl=\El:do=^J:\
8547 :is=\017\E0`:k0=^B1:k2=^B2:k3=^B!:k4=^B":k5=^B#:kd=^J:kh=^A:\
8548 :kl=^U:kr=^F:ku=^Z:le=^H:ll=^A:me=^O:nd=^F:se=^O:sf=^J:so=^N:\
8549 :ue=^O:up=^Z:us=^N:ve=\017\E0`:vs=\017\E0P:
8550# Some viewpoints have bad ROMs that foo up on ^O
8551screwpoint|adds viewpoint with ^O bug:\
8552 :se@:so@:ue@:us@:vs@:tc=viewpoint:
8553
8554# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
8555# The :vi:/:ve:/:sa:/:me: strings were added by ESR from specs.
8556# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000,
8557# underline=01100000, rev=01010000, blink=01000010,dim=01000001,
8558# invis=01000100 and %c is the logical or of desired attributes.
8559# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(.
8560vp3a+|viewpoint3a+|adds viewpoint 3a+:\
8561 :am:bw:\
8562 :co#80:it#8:li#24:\
8563 :cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:kb=^H:\
8564 :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:me=\E(:nd=^L:nw=^M^J:\
8565 :..sa=\E0%{64}%?%p1%tQ%|%;%?%p2%t%{96}%|%;%?%p3%tP%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%?%p7%tD%|%;%c\E):\
8566 :se=\E(:sf=^J:so=\E0Q\E):ta=^I:up=^K:ve=^X:vi=^W:
8567vp60|viewpoint60|addsvp60|adds viewpoint60:\
8568 :tc=regent40:
8569#
8570# adds viewpoint 90 - from cornell
8571# Note: emacs sends ei occasionally to insure the terminal is out of
8572# insert mode. This unfortunately puts the viewpoint90 IN insert
8573# mode. A hack to get around this is :ic=\EF\s\EF^U:. (Also,
8574# - :ei=:im=: must be present in the termcap translation.)
8575# - :xs: indicates glitch that attributes stick to location
8576# - :ms: means it's safe to move in standout mode
8577# - :cl=\EG\Ek:: clears screen and visual attributes without affecting
8578# the status line
8579# Function key and label capabilities merged in from SCO.
8580vp90|viewpoint90|adds viewpoint 90:\
8581 :bs:bw:ms:xs:\
8582 :co#80:li#24:\
8583 :cd=\Ek:ce=\EK:cl=\EG\Ek:cm=\EY%+ %+ :dc=\EE:dl=\El:do=^J:\
8584 :ei=:ho=\EY\s\s:ic=\EF \EF\025:im=:k0=^B1\r:k1=^B2\r:\
8585 :k2=^B3\r:k3=^B4\r:k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:\
8586 :k8=^B9\r:k9=^B\:\r:k;=^B;\r:kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:\
8587 :ku=^Z:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:\
8588 :l9=F10:la=F11:le=^H:ll=^A:me=\ER\E0@\EV:nd=^F:\
8589 :se=\ER\E0@\EV:sf=^J:so=\ER\E0Q\EV:ta=^I:ue=\ER\E0@\EV:\
8590 :up=^Z:us=\ER\E0`\EV:
8591# Note: if return acts weird on a980, check internal switch #2
8592# on the top chip on the CONTROL pc board.
8593adds980|a980|adds consul 980:\
8594 :am:bs:\
8595 :co#80:li#24:\
8596 :al=\E\016:bl=^G:cl=\014\013@:cm=\013%+@\E\005%2:cr=^M:\
8597 :dl=\E\017:do=^J:k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:\
8598 :k6=\E6:k7=\E7:k8=\E8:k9=\E9:le=^H:me=^O:nd=\E^E01:se=^O:\
8599 :sf=^J:so=^Y^^^N:
8600
8601#### C. Itoh Electronics
8602#
8603# As of 1995 these people no longer make terminals (they're still in the
8604# printer business). Their terminals were all clones of the DEC VT series.
8605# They're located in Orange County, CA.
8606#
8607
8608# CIT 80 - vt-52 emulator, the termcap has been modified to remove
8609# the delay times and do an auto tab set rather than the indirect
8610# file used in vt100.
8611cit80|cit-80|citoh 80:\
8612 :am:bs:\
8613 :co#80:li#24:\
8614 :cd=\EJ:ce=\EK:cl=\E[H\EJ:cm=\E[%i%2;%2H:cr=^M:ff=^L:\
8615 :is=\E>:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
8616 :ku=\EOA:le=^H:nd=\E[C:sf=^J:up=\E[A:
8617# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985
8618# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr)
8619cit101|citc|C.itoh fast vt100:\
8620 :am:bs:xn:\
8621 :co#80:li#24:\
8622 :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\
8623 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=:ic=\E[@:\
8624 :im=:is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g:\
8625 :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
8626 :ku=\EOA:le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:\
8627 :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[V\E8:vs=\E7\E[U:
8628# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL
8629# The following termcap entry was created from the Callan cd100 entry. The
8630# last two lines (with the capabilities in caps) are used by RM-cobol to allow
8631# full selection of combinations of reverse video, underline, and blink.
8632# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\
8633# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\
8634# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr)
8635cit101e|C. Itoh CIT-101e:\
8636 :am:bs:mi:ms:pt:\
8637 :co#80:it#8:li#24:\
8638 :ac=:ae=^O:al=\E[L:as=^N:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
8639 :cm=\E[%i%2;%2H:cs=\E[%i%2;%2r:dc=\E[P:dl=\E[M:do=\E[B:\
8640 :ei=\E[4l:if=/usr/share/tabset/vt100:im=\E[4h:k0=\EOT:\
8641 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOm:k6=\EOl:k7=\EOM:\
8642 :k8=\EOn:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:\
8643 :nd=\E[C:rc=\E8:sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ue=\E[m:\
8644 :up=\E[A:us=\E[4m:ve=:vs=\E[?1l\E[?4l\E[?7h:
8645# From: David S. Lawyer, June 1997:
8646# The CIT 101-e was made in Japan in 1983-4 and imported by CIE
8647# Terminals in Irvine, CA. It was part of CITOH Electronics. In the
8648# late 1980's CIT Terminals went out of business.
8649# There is no need to use the initialization string is=... (by invoking
8650# tset or setterm etc.) provided that the terminal has been manually set
8651# up (and the setup saved with ^S) to be compatible with this termcap. To be
8652# compatible it should be in ANSI mode (not VT52). A set-up that
8653# works is to set all the manually setable stuff to factory defaults
8654# by pressing ^D in set-up mode. Then increse the brighness with the
8655# up-arrow key since the factory default will likely be dim on an old
8656# terminal. Then change any options you want (provided that they are
8657# compatible with the termcap). For my terminal I set: Screen
8658# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver:
8659# on. I also set up mine for parity (but you may not need it). Then
8660# save the setup with ^S.
8661# (cit101e-rv: added empty :te: to suppress a tic warning. --esr)
8662cit101e-rv|Citoh CIT-101e (sets reverse video):\
8663 :am:eo:mi:ms:xn:xo:\
8664 :co#80:it#8:li#24:\
8665 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
8666 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
8667 :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%dG:\
8668 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
8669 :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:ic=\E[@:\
8670 :im=\E[4h:\
8671 :is=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H:\
8672 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=\177:kd=\E[B:kl=\E[D:\
8673 :kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\
8674 :nd=\E[C:nl=\EM:nw=\EE:r1=\Ec\E[?7h\E[>5g:rc=\E8:sc=\E7:\
8675 :se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=:\
8676 :ti=\E[>5g\E[?7h\E[?5h:u6=\E[%i%d;%dR:u7=\E[6n:\
8677 :u8=\E[?6c:u9=\E[c:ue=\E[m:up=\E[A:us=\E[4m:\
8678 :vb=200\E[?5l\E[?5h:ve=\E[0;3;4v:vi=\E[1v:vs=\E[3;5v:
8679cit101e-n|CIT-101e w/o am:\
8680 :am@:\
8681 :kb=^H:kd=^J:kl=^H:vs=\E[?1l\E[?4l\E[?7l:tc=cit101e:
8682cit101e-132|CIT-101e with 132 cols:\
8683 :co#132:\
8684 :kb=^H:kd=^J:kl=^H:tc=cit101e:
8685cit101e-n132|CIT-101e with 132 cols w/o am:\
8686 :am@:\
8687 :co#132:\
8688 :kb=^H:kd=^J:kl=^H:vs=\E[?1l\E[?4l\E[?7l:tc=cit101e:
8689# CIE Terminals CIT-500 from BRL
8690# The following SET-UP modes are assumed for normal operation:
8691# GENERATE_XON/XOFF:YES DUPLEX:FULL NEWLINE:OFF
8692# AUTOWRAP:ON MODE:ANSI SCREEN_LENGTH:64_LINES
8693# DSPLY_CNTRL_CODES?NO PAGE_WIDTH:80 EDIT_MODE:OFF
8694# Other SET-UP modes may be set for operator convenience or communication
8695# requirements.
8696# Hardware tabs are assumed to be set every 8 columns; they can be set up
8697# by the "reset", "tset", or "tabs" utilities. No delays are specified; use
8698# "stty ixon -ixany" to enable DC3/DC1 flow control!
8699# (cit500: I added <rmam>/<smam> based on the init string -- esr)
8700cit500|CIE Terminals CIT-500:\
8701 :bs:mi:ms:pt:xo:\
8702 :co#80:it#8:kn#10:li#64:vt#3:\
8703 :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:\
8704 :RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:ac=:ae=^O:al=\E[L:as=^N:\
8705 :bl=^G:bt=\E[Z:cd=\EJ:ce=\EK:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
8706 :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
8707 :ei=\E[4l:ho=\E[H:im=\E[4h:is=\E<\E)0:k0=\EOP:k1=\EOQ:\
8708 :k2=\EOR:k3=\EOS:k4=\EOU:k5=\EOV:k6=\EOW:k7=\EOX:k8=\EOY:\
8709 :k9=\EOZ:kA=\E[L:kB=\E[Z:kD=\E[P:kE=\EK:kI=\E[4h:kL=\E[M:\
8710 :kM=\E[4l:kS=\EJ:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[H:\
8711 :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=PF1:l1=PF2:l2=PF3:\
8712 :l3=PF4:l4=F15:l5=F16:l6=F17:l7=F18:l8=F19:l9=F20:le=^H:\
8713 :ll=\E[64H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
8714 :nw=\EE:\
8715 :r1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>:\
8716 :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
8717 :ue=\E[m:up=\EM:us=\E[4m:
8718
8719# C. Itoh printers begin here
8720citoh|ci8510|8510|c.itoh 8510a:\
8721 :co#80:it#8:\
8722 :is=\E(009,017,025,033,041,049,057,065,073.:le@:md=\E!:\
8723 :me=\E"\EY:rp=\ER%r%03%.:sr=\Er:ue=\EY:us=\EX:tc=lpr:
8724citoh-pica|citoh in pica:\
8725 :i1=\EN:tc=citoh:
8726citoh-elite|citoh in elite:\
8727 :co#96:\
8728 :i1=\EE:\
8729 :is=\E(009,017,025,033,041,049,057,065,073,081,089.:\
8730 :tc=citoh:
8731citoh-comp|citoh in compressed:\
8732 :co#136:\
8733 :i1=\EQ:\
8734 :is=\E(009,017,025,033,041,049,057,065,073,081,089,097,105,113,121,129.:\
8735 :tc=citoh:
8736# citoh has infinite cols because we don't want lp ever inserting \n\t**.
8737citoh-prop|citoh-ps|ips|citoh in proportional spacing mode:\
8738 :co#32767:\
8739 :i1=\EP:tc=citoh:
8740citoh-6lpi|citoh in 6 lines per inch mode:\
8741 :i2=\EA:tc=citoh:
8742citoh-8lpi|citoh in 8 lines per inch mode:\
8743 :li#88:\
8744 :i2=\EB:tc=citoh:
8745
8746#### Control Data (cdc)
8747#
8748
8749cdc456|cdc 456 terminal:\
8750 :am:bs:\
8751 :co#80:li#24:\
8752 :al=\EL:bl=^G:cd=^X:ce=^V:cl=^Y^X:cm=\E1%+ %+ :cr=^M:dl=\EJ:\
8753 :do=^J:ho=^Y:le=^H:nd=^L:sf=^J:up=^Z:
8754
8755# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick)
8756cdc721|CDC Viking:\
8757 :am:bs:\
8758 :co#80:li#24:\
8759 :ce=^K:cl=^L:cm=\002%r%+ %+ :ho=^Y:kd=^J:kh=^Y:kl=^H:kr=^I:\
8760 :ku=^W:nd=^X:up=^W:
8761cdc721ll|CDC Vikingll:\
8762 :am:bs:\
8763 :co#132:li#24:\
8764 :ce=^K:cl=^L:cm=\002%r%+ %+ :ho=^Y:kd=^J:kh=^Y:kl=^H:kr=^I:\
8765 :ku=^W:nd=^X:up=^W:
8766# (cdc752: the BRL entry had :ll=\E1 ^Z: commented out
8767cdc752|CDC 752:\
8768 :am:bs:bw:xs:\
8769 :co#80:li#24:\
8770 :bl=^G:ce=^V:cl=\030\E1\s\s:cm=\E1%r%+ %+ :cr=^M:do=^J:\
8771 :ho=\E1\s\s:le=^H:ll=^Y:nd=^U:r1=\E1 \030\002\003\017:\
8772 :sf=^J:up=^Z:
8773# CDC 756
8774# The following switch/key settings are assumed for normal operation:
8775# 96 chars SCROLL FULL duplex not BLOCK
8776# Other switches may be set according to communication requirements.
8777# Insert/delete-character cannot be used, as the whole display is affected.
8778# "so" & "se" are commented out until jove handles "sg" correctly.
8779cdc756|CDC 756:\
8780 :am:bs:bw:\
8781 :co#80:kn#10:li#24:\
8782 :al=6*\EL:bl=^G:cd=^X:ce=^V:cl=^Y^X:cm=\E1%r%+ %+ :cr=^M:\
8783 :dl=6*\EJ:do=^J:ho=^Y:k0=\EA:k1=\EB:k2=\EC:k3=\ED:k4=\EE:\
8784 :k5=\EF:k6=\EG:k7=\EH:k8=\Ea:k9=\Eb:kA=\EL:kD=\EI:kE=^V:\
8785 :kI=\EK:kL=\EL:kS=^X:kT=^O:kb=^H:kd=^J:kh=^Y:kl=^H:kr=^U:\
8786 :ku=^Z:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:\
8787 :l9=F10:le=^H:ll=^Y^Z:nd=^U:r1=\031\030\002\003\017:sf=^J:\
8788 :up=^Z:
8789#
8790# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL.
8791#
8792# Part of the long initialization string defines the "DOWN" key to the left
8793# of the tab key to send an ESC. The real ESC key is positioned way out
8794# in right field.
8795#
8796# The termcap won't work in 132 column mode due to the way it it moves the
8797# cursor. Termcap doesn't have the capability (as far as I could tell) to
8798# handle the 721 in 132 column mode.
8799#
8800# (cdc721: changed :ri: to :sr: -- esr)
8801cdc721-esc|Control Data 721:\
8802 :am:bs:bw:ms:pt:xo:\
8803 :co#80:it#8:kn#10:li#30:\
8804 :al=^^R:bl=^G:bt=^^^K:cd=^^P:ce=^K:cl=^L:cm=\002%r%+ %+ :\
8805 :ct=^^^RY:dc=^^N:dl=^^Q:do=^Z:ei=:ho=^Y:ic=^^O:im=:\
8806 :is=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022^\036\022b\036\022i\036W =\036\022Z\036\011C1-` `!k/o:\
8807 :k0=^^q:k1=^^r:k2=^^s:k3=^^t:k4=^^u:k5=^^v:k6=^^w:k7=^^x:\
8808 :k8=^^y:k9=^^z:kb=^H:kd=^Z:ke=^^^Rl:kh=^Y:kl=^H:kr=^X:\
8809 :ks=^^^Rk:ku=^W:le=^H:ll=^B =:mb=^N:\
8810 :me=\017\025\035\036E\036\022\\:mh=^\:mk=^^^R[:mr=^^D:\
8811 :nd=^X:se=^^E:sf=\036W =\036U:so=^^D:sr=\036W =\036V:\
8812 :st=^^^RW:ue=^]:up=^W:us=^\:
8813
8814#### Getronics
8815#
8816# Getronics is a Dutch electronics company that at one time was called
8817# `Geveke' and made async terminals; but (according to the company itself!)
8818# they've lost all their documentation on the command set. The hardware
8819# documentation suggests the terminals were actually manufactured by a
8820# Taiwanese electronics company named Cal-Comp. There are known
8821# to have been at least two models, the 33 and the 50.
8822#
8823
8824# The 50 seems to be a top end vt220 clone, with the addition of a higher
8825# screen resolution, a larger screen, at least 1 page of memory above and
8826# below the screen, apparently pages of memory right and left of the screen
8827# which can be panned, and about 75 function keys (15 function keys x normal,
8828# shift, control, func A, func B). It also has more setup possibilities than
8829# the vt220. The monitor case is dated November 1978 and the keyboard case is
8830# May 1982.
8831#
8832# The vt100 emulation works as is. The entry below describes the rather
8833# non-conformant (but more featureful) ANSI mode.
8834#
8835# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995
8836# (untranslatable capabilities removed to fit entry within 1023 bytes)
8837# (sgr removed to fit entry within 1023 bytes)
8838# (acsc removed to fit entry within 1023 bytes)
8839visa50|geveke visa 50 terminal in ansi 80 character mode:\
8840 :bw:mi:ms:\
8841 :co#80:li#25:\
8842 :AL=\E[%dL:DC=\E[%dX:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
8843 :K1=\E[f:K2=\EOP:K3=\EOQ:K4=\EOR:K5=\EOS:LE=\E[%dD:\
8844 :RA=\E[?7l:RI=\E[%dC:SA=\E?7h:UP=\E[%dA:ae=\E[3l:al=\E[L:\
8845 :as=\E3h:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%dG:\
8846 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
8847 :ct=\E[3g:cv=\E[%i%dd:dc=\E[X:dl=\E[M:do=\E[B:ei=\E[4l:\
8848 :ho=\E[H:ic=\E[@:im=\E[4h:\
8849 :is=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h:k0=\E010:\
8850 :k1=\E001:k2=\E002:k3=\E003:k4=\E004:k5=\E005:k6=\E006:\
8851 :k7=\E007:k8=\E008:k9=\E009:k;=\E011:kD=\177:kL=\EOS:kb=^H:\
8852 :kd=\E[A:ke=\E>:kh=\E[f:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:\
8853 :l2=A delete char:l3=A insert line:l4=A delete line:\
8854 :l5=A clear:l6=A ce of/cf gn:l7=A print:l8=A on-line:\
8855 :l9=A funcl0=A send:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0;2m:\
8856 :mh=\E[2m:mk=\E[8m:mr=\E[7m:nd=\E[C:nw=^M^J:se=\E[0;2m:\
8857 :sf=^J:so=\E[2;7m:ta=^I:ue=\E[0m:up=\E[A:us=\E[4m:\
8858 :vb=\E[?5h\E[?5l:
8859
8860#### Human Designed Systems (Concept)
8861#
8862# Human Designed Systems
8863# 400 Fehley Drive
8864# King of Prussia, PA 19406
8865# Vox: (610)-277-8300
8866# Fax: (610)-275-5739
8867# Net: support@hds.com
8868#
8869# John Martin <john@hds.com> is their termcap expert. They're mostly out of
8870# the character-terminal business now (1995) and making X terminals. In
8871# particular, the whole `Concept' line described here was discontinued long
8872# ago.
8873#
8874
8875# From: <vax135!hpk> Sat Jun 27 07:41:20 1981
8876# Extensive changes to c108 by arpavax:eric Feb 1982
8877# Some unknown person at SCO then translated it to terminfo.
8878#
8879# There seem to be a number of different versions of the C108 PROMS
8880# (with bug fixes in its Z-80 program).
8881#
8882# The first one that we had would lock out the keyboard of you
8883# sent lots of short lines (like /usr/dict/words) at 9600 baud.
8884# Try that on your C108 and see if it sends a ^S when you type it.
8885# If so, you have an old version of the PROMs.
8886#
8887# You should configure the C108 to send ^S/^Q before running this.
8888# It is much faster (at 9600 baud) than the c100 because the delays
8889# are not fixed.
8890# new status line display entries for c108-8p:
8891# :i3: - init str #3 - setup term for status display -
8892# set programmer mode, select window 2, define window at last
8893# line of memory, set bkgnd stat mesg there, select window 0.
8894#
8895# :ts: - to status line - select window 2, home cursor, erase to
8896# end-of-window, 1/2 bright on, goto(line#0, col#?)
8897#
8898# :fs: - from status line - 1/2 bright off, select window 0
8899#
8900# :ds: - disable status display - set bkgnd status mesg with
8901# illegal window #
8902#
8903# There are probably more function keys that should be added but
8904# I don't know what they are.
8905#
8906# No delays needed on c108 because of ^S/^Q handshaking
8907#
8908c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages:\
8909 :i2=\EU\E z"\Ev\001\177 !p\E ;"\E z \Ev \001\177p\Ep\n:\
8910 :te=\Ev \001\177p\Ep\r\n:tc=c108-4p:
8911c108-4p|concept108-4p|concept 108 w/4 pages:\
8912 :bs:es:hs:xo:\
8913 :pb@:\
8914 :ac=jEkTl\\mMqLxU:ae=\Ej\s:as=\Ej!:\
8915 :..cm=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c:\
8916 :cr=^M:dc=\E 1:ds=\E ;\177:fs=\Ee\E z\s:i1=\EK\E!\E F:\
8917 :i2=\EU\E z"\Ev\177 !p\E ;"\E z \Ev \001 p\Ep\n:\
8918 :sf=^J:te=\Ev \001 p\Ep\r\n:ti=\EU\Ev 8p\Ep\r\E\025:\
8919 :..ts=\E z"\E?\E\005\EE\Ea %+\s:ve=\Ew:vs=\EW:tc=c100:
8920c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video:\
8921 :te=\Ev \002 p\Ep\r\n:ti=\EU\Ev 8p\Ep\r:\
8922 :tc=c108-rv-4p:
8923c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video:\
8924 :i1=\Ek:se=\Ee:so=\EE:vb=\EK\Ek:tc=c108-4p:
8925c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode:\
8926 :co#132:\
8927 :i1=\E F\E":te=\Ev ^A0\001D\Ep\r\n:\
8928 :ti=\EU\Ev 8\001D\Ep\r:tc=c108-8p:
8929
8930# Concept 100:
8931# These have only window relative cursor addressing, not screen
8932# relative. To get it to work right here, smcup/rmcup (which
8933# were invented for the concept) lock you into a one page
8934# window for screen style programs.
8935#
8936# To get out of the one page window, we use a clever trick:
8937# we set the window size to zero ("\Ev " in rmcup) which the
8938# terminal recognizes as an error and resets the window to all
8939# of memory.
8940#
8941# This trick works on c100 but does not on c108, sigh.
8942#
8943# Some tty drivers use cr3 for concept, others use nl3, hence
8944# the delays on cr and ind below. This padding is only needed at
8945# 9600 baud and up. One or the other is commented out depending on
8946# local conventions.
8947#
8948# 2 ms padding on :te: isn't always enough. 6 works fine. Maybe
8949# less than 6 but more than 2 will work.
8950#
8951# Note: can't use function keys f7-f10 because they are
8952# indistinguishable from arrow keys (!), also, del char and
8953# clear eol use xon/xoff so they probably won't work very well.
8954#
8955# Also note that we don't define insrt/del char/delline/eop/send
8956# because they don't transmit unless we reset them - I figured
8957# it was a bad idea to clobber their definitions.
8958#
8959# The <mc5> sequence changes the escape character to ^^ so that
8960# escapes will be passed through to the printer. Only trouble
8961# is that ^^ won't be - ^^ was chosen to be unlikely.
8962# Unfortunately, if you're sending raster bits through to be
8963# plotted, any character you choose will be likely, so we lose.
8964#
8965# \EQ"\EY(^W (send anything from printer to host, for xon/xoff)
8966# cannot be # in is2 because it will hang a c100 with no printer
8967# if sent twice.
8968c100|concept100|concept|c104|c100-4p|hds concept 100:\
8969 :am:bs:eo:mi:ul:xn:\
8970 :co#80:li#24:pb#9600:vt#8:\
8971 :al=\E\022:bl=^G:cd=\E\005:ce=\E\025:cl=\E?\E\005:\
8972 :cm=\Ea%+ %+ :cr=\r:dc=\E\021:dl=\E\002:do=^J:ei=\E\s\s:\
8973 :i1=\EK:i2=\Ev \Ep\n:im=\E^P:ip=:\
8974 :is=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo!\0\E\007!\E\010A@ \E4#\:"\E\:a\E4#;"\E\:b\E4#<"\E\:c:\
8975 :k1=\E5:k2=\E6:k3=\E7:k4=\E8:k5=\E9:k6=\E\:a:k7=\E\:b:\
8976 :k8=\E\:c:kA=\E^R:kB=\E':kD=\E^Q:kE=\E^S:kF=\E[:kI=\E^P:\
8977 :kL=\E^B:kM=\E\0:kN=\E-:kP=\E.:kR=\E\\:kS=\E^C:kT=\E]:kb=^H:\
8978 :kd=\E<:ke=\Ex:kh=\E?:kl=\E>:kr=\E=:ks=\EX:kt=\E_:ku=\E;:\
8979 :le=^H:mb=\EC:me=\EN@:mh=\EE:mk=\EH:mp=\EI:mr=\ED:nd=\E=:\
8980 :pf=\036o \E\EQ!\EYP\027:po=\EQ"\EY(\027\EYD\Eo \036:\
8981 :rp=\Er%.%+ :se=\Ed:sf=^J:so=\ED:ta=\011:\
8982 :te=\Ev \Ep\r\n:ti=\EU\Ev 8p\Ep\r\E\025:ue=\Eg:\
8983 :up=\E;:us=\EG:vb=\Ek\EK:
8984c100-rv|c100-rv-4p|concept100-rv|c100 rev video:\
8985 :i1=\Ek:se=\Ee:so=\EE:vb=\EK\Ek:ve@:vs@:tc=c100:
8986oc100|oconcept|c100-1p|old 1 page concept 100:\
8987 :in:\
8988 :i3@:tc=c100:
8989
8990# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996.
8991# Lots of notes, originally inline, but ncurses doesn't grok that.
8992#
8993# am: not available in power on mode, but turned on with \E[=107;207h in
8994# is2=. Also, \E=124l in is2= could have been used to prevent needing
8995# to specify xenl:, but that would have rendered the last space on the
8996# last line useless.
8997# bw: Not available in power on mode, but turned on with \E[=107;207h in
8998# is2=.
8999# clear: Could be done with \E[2J alone, except that vi (and probably most
9000# other programs) assume that this also homes the cursor.
9001# dsl: Go to window 2, go to the beginning of the line, use a line feed to
9002# scroll the window, and go back to window 1.
9003# is2: the string may cause a warning to be issued by tic that it
9004# found a very long line and that it suspects that a comma is missing
9005# somewhere. This warning can be ignored (unless it comes up more than
9006# once). The initialization string contains the following commands:
9007#
9008# [Setup mode items changed from factory defaults:]
9009# \E)0 set alternate character set to
9010# graphics
9011# ^O set character set to default
9012# [In case it wasn't]
9013# \E[m turn off all attributes
9014# [In case they weren't off]
9015# \E[=107; cursor wrap and
9016# 207h character wrap on
9017# \E[90;3u set Fkey definitions to "transmit"
9018# defaults
9019# \E[92;3u set cursor key definitions to
9020# "transmit" defaults
9021# \E[43;1u set shift F13 to transmit...
9022# \177\E$P\177
9023# \E[44;1u set shift F14 to transmit...
9024# \177\E$Q\177
9025# \E[45;1u set shift F15 to transmit...
9026# \177\E$R\177
9027# \E[46;1u set shift F16 to transmit...
9028# \177\E$S\177
9029# \E[200;1u set shift up to transmit...
9030# \177\E$A\177
9031# \E[201;1u set shift down to transmit...
9032# \177\E$B\177
9033# \E[202;1u set shift right to transmit...
9034# \177\E$C\177
9035# \E[203;1u set shift left to transmit...
9036# \177\E$D\177
9037# \E[204;1u set shift home to transmit...
9038# \177\E$H\177
9039# \E[212;1u set backtab to transmit...
9040# \177\E$I\177
9041# \E[213;1u set shift backspace to transmit...
9042# \177\E$^H\177
9043# \E[214;1u set shift del to transmit...
9044# "\E$\177"
9045# [Necessary items not mentioned in setup mode:]
9046# \E[2!w move to window 2
9047# \E[25;25w define window as line 25 of memory
9048# \E[!w move to window 1
9049# \E[2*w show current line of window 2 as
9050# status line
9051# \E[2+x set meta key to use high bit
9052# \E[;3+} move underline to bottom of character
9053#
9054# All Fkeys are set to their default transmit definitions with \E[90;3u
9055# in is2=. IMPORTANT: to use this terminal definition, the "quit" stty
9056# setting MUST be redefined or deactivated, because the default is
9057# contained in almost all of this terminal's Fkey strings! If for some
9058# reason "quit" cannot be altered, the Fkeys can, but it would be
9059# necessary to change ^| to ^] in all of these definitions, and add
9060# \E[2;029!t to is2.
9061# lines: is set to 24 because this terminal refuses to treat the 25th
9062# line normally.
9063# ll: Not available in power on mode, but turned on with \E[=107;207h in
9064# is2=.
9065# lm: Pointless, given that this definition locks a single screen of
9066# memory into view, but what the hey...
9067# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any
9068# other attributes alone), but some programs expect this to turn off
9069# everything.
9070# rmul: Could use \E[4!{ to turn off only underline (leaving any other
9071# attributes alone), but some programs expect this to turn off
9072# everything.
9073# sgr: Attributes are set on this terminal with the string \E[ followed by
9074# a list of attribute code numbers (in decimal, separated by
9075# semicolons), followed by the character m. The attribute code
9076# numbers are:
9077# 1 for bold;
9078# 2 for dim (which is ignored in power on mode);
9079# 4 for underline;
9080# 5 for blinking;
9081# 7 for inverse;
9082# 8 for not displayable; and
9083# =99 for protected (except that there are strange side
9084# effects to protected characters which make them inadvisable).
9085# The mapping of terminfo parameters to attributes is as follows:
9086# %p1 (standout) = bold and inverse together;
9087# %p2 (underline) = underline;
9088# %p3 (reverse) = inverse;
9089# %p4 (blink) = blinking;
9090# %p5 (dim) is ignored;
9091# %p6 (bold) = bold;
9092# %p7 (invisible) = not displayable;
9093# %p8 (protected) is ignored; and
9094# %p9 (alt char set) = alt char set.
9095# The code to do this is:
9096# \E[0 OUTPUT \E[0
9097# %?%p1%p6%O IF (standout; bold) OR
9098# %t;1 THEN OUTPUT ;1
9099# %; ENDIF
9100# %?%p2 IF underline
9101# %t;4 THEN OUTPUT ;4
9102# %; ENDIF
9103# %?%p4 IF blink
9104# %t;5 THEN OUTPUT ;5
9105# %; ENDIF
9106# %?%p1%p3%O IF (standout; reverse) OR
9107# %t;7 THEN OUTPUT ;7
9108# %; ENDIF
9109# %?%p7 IF invisible
9110# %t;8 THEN OUTPUT ;8
9111# %; ENDIF
9112# m OUTPUT m
9113# %?%p9 IF altcharset
9114# %t^N THEN OUTPUT ^N
9115# %e^O ELSE OUTPUT ^O
9116# %; ENDIF
9117# sgr0: Everything is turned off (including alternate character set), since
9118# there is no way of knowing what it is that the program wants turned
9119# off.
9120# smul: The "underline" attribute is reconfigurable to an overline or
9121# strikethru, or (as done with \E[;3+} in is2=), to a line at the true
9122# bottom of the character cell. This was done to allow for more readable
9123# underlined characters, and to be able to distinguish between an
9124# underlined space, an underscore, and an underlined underscore.
9125# xenl: Terminal can be configured to not need this, but this "glitch"
9126# behavior is actually preferable with autowrap terminals.
9127#
9128# Parameters kf31= thru kf53= actually contain the strings sent by the shifted
9129# Fkeys. There are no parameters for shifted Fkeys in terminfo. The is2
9130# string modifies the 'O' in kf43 to kf46 to a '$'.
9131#
9132# kcbt was originally ^I but redefined in is2=.
9133# kHOM was \E[H originally but redefined in is2=, as were a number of
9134# other keys.
9135# kDC was originally \177 but redefined in is2=.
9136#
9137# kbs: Shift was also ^H originally but redefined as \E$^H in is2=.
9138# tsl: Go to window 2, then do an hpa=.
9139#
9140#------- flash=\E[8;3!}^G\E[3;3!}
9141#------- flash=\E[?5h$<100>\E[?5l
9142# There are two ways to flash the screen, both of which have their drawbacks.
9143# The first is to set the bell mode to video, transmit a bell character, and
9144# set the bell mode back - but to what? There is no way of knowing what the
9145# user's old bell setting was before we messed with it. Worse, the command to
9146# set the bell mode also sets the key click volume, and there is no way to say
9147# "leave that alone", or to know what it's set to, either.
9148# The second way to do a flash is to set the screen to inverse video, pad for a
9149# tenth of a second, and set it back - but like before, there's no way to know
9150# that the screen wasn't ALREADY in inverse video, or that the user may prefer
9151# it that way. The point is moot anyway, since vi (and probably other
9152# programs) assume that by defining flash=, you want the computer to use it
9153# INSTEAD of bel=, rather than as a secondary type of signal.
9154#
9155#------- cvvis=\E[+{
9156# The is the power on setting, which is also as visible as the cursor
9157# gets.
9158#------- wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw
9159# Windowing is possible, but not defined here because it is also used to
9160# emulate status line functions. Allowing a program to set a window could
9161# clobber the status line or render it unusable. There is additional memory,
9162# but screen scroll functions are destructive and do not make use of it.
9163#
9164#------- dim= Not available in power on mode.
9165# You have a choice of defining low intensity characters as "half bright" and
9166# high intensity as "normal", or defining low as "normal" and high as "bold".
9167# No matter which you choose, only one of either "half bright" or "bold" is
9168# available at any time, so taking the time to override the default is
9169# pointless.
9170#
9171#------- prot=\E[=0;99m
9172# Not defined, because it appears to have some strange side effects.
9173#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
9174#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
9175#------- pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%;
9176# Available, but making them available to programs is inadvisable.
9177# The code to do this is:
9178# %?%p1%{24}%< IF ((key; 24) <;
9179# %p1%{30}%> ((key; 30) >;
9180# %p1%{54}%< (key; 54) <
9181# %A ) AND
9182# %O ) OR
9183# [that is, "IF key < 24 OR (key > 30 AND key < 54)",]
9184# %t\E[ THEN OUTPUT \E[
9185# %p1%d OUTPUT (key) as decimal
9186# [next line applies to pfx only]
9187# ;1 OUTPUT ;1
9188# u OUTPUT u
9189# \177 OUTPUT \177
9190# %p2%s OUTPUT (string) as string
9191# \177 OUTPUT \177
9192# [DEL chosen as delimiter, but could be any character]
9193# [implied: ELSE do nothing]
9194# %; ENDIF
9195#
9196#------- rs2=
9197# Not defined since anything it might do could be done faster and easier with
9198# either Meta-Shift-Reset or the main power switch.
9199#
9200#------- smkx=\E[1!z
9201#------- rmkx=\E[!z
9202# These sequences apply to the cursor and setup keys only, not to the
9203# numeric keypad. But it doesn't matter anyway, since making these
9204# available to programs is inadvisable.
9205# For the key definitions below, all sequences beginning with \E$ are
9206# custom and programmed into the terminal via is2. \E$ also has no
9207# meaning to any other terminal.
9208#
9209#------- cmdch=\E[;%p1%d!t
9210# Available, but making it available to programs is inadvisable.
9211#------- smxon=\E[1*q
9212# Available, but making it available to programs is inadvisable.
9213# Terminal will send XON/XOFF on buffer overflow.
9214#------- rmxon=\E[*q
9215# Available, but making it available to programs is inadvisable.
9216# Terminal will not notify on buffer overflow.
9217#------- smm=\E[2+x
9218#------- rmm=\E[+x
9219# Available, but making them available to programs is inadvisable.
9220#
9221# Printing:
9222# It's not made clear in the manuals, but based on other ansi/vt type
9223# terminals, it's a good guess that this terminal is capable of both
9224# "transparent print" (which doesn't copy data to the screen, and
9225# therefore needs mc5i: specified to say so) and "auxilliary print"
9226# (which does duplicate printed data on the screen, in which case mc4=
9227# and mc5= should use the \E[?4i and \E[?5i strings instead).
9228
9229# (untranslatable capabilities removed to fit entry within 1023 bytes)
9230# (sgr removed to fit entry within 1023 bytes)
9231# (acsc removed to fit entry within 1023 bytes)
9232# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
9233# WARNING: this entry, 1130 bytes long, may core-dump older termcap libraries!
9234hds200|Human Designed Systems HDS200:\
9235 :am:bw:es:hs:km:mi:ms:xn:xo:\
9236 :co#80:it#8:li#24:lm#0:\
9237 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
9238 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
9239 :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
9240 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:\
9241 :ds=\E[2!w\r\n\E[!w:ei=\E[4l:fs=\E[!w:ho=\E[H:im=\E[4h:\
9242 :is=\E)0\017\E[m\E[=107;207h\E[90;3u\E[92;3u\E[43;1u\177\E$P\177\E[44;1u\177\E$Q\177\E[45;1u\177\E$R\177\E[46;1u\177\E$S\177\E[200;1u\177\E$A\177\E[201;1u\177\E$B\177\E[202;1u\177\E$C\177\E[203;1u\177\E$D\177\E[204;1u\177\E$H\177\E[212;1u\177\E$I\177\E[213;1u\177\E$\010\177\E[214;1u"\E$\177"\E[2!w\E[25;25w\E[!w\E[2*w\E[2+x\E[;3+}:\
9243 :k1=^\001\r:k2=^\002\r:k3=^\003\r:k4=^\004\r:k5=^\005\r:\
9244 :k6=^\006\r:k7=^\007\r:k8=^\008\r:k9=^\009\r:kD=\177:\
9245 :kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\
9246 :ku=\E[A:le=\E[D:ll=\E[H\E[A:mb=\E[0;5m:md=\E[0;1m:\
9247 :me=\E[m\017:mr=\E[0;7m:nd=\E[C:nw=\E[E:rc=\E8:sc=\E7:\
9248 :se=\E[m\017:sf=\ED:so=\E[0;1;7m:sr=\EM:st=\EH:ta=^I:\
9249 :ts=\E[2!w\E[%i%dG:ue=\E[m\017:up=\E[A:us=\E[0;4m:\
9250 :ve=\E[+{:vi=\E[6+{:
9251
9252# :ta: through :ce: included to specify padding needed in raw mode.
9253# (avt-ns: added empty <acsc> to suppress a tic warning --esr)
9254# (untranslatable capabilities removed to fit entry within 1023 bytes)
9255avt-ns|concept avt no status line:\
9256 :am:bs:eo:mi:ul:xn:xo:\
9257 :co#80:it#8:li#24:lm#192:\
9258 :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
9259 :RI=\E[%dC:UP=\E[%dA:ac=:ae=\016:al=\E[L:as=\017:bl=^G:\
9260 :bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:cl=\E[H\E[J:\
9261 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[2g:\
9262 :cv=\E[%+^Ad:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\
9263 :i1=\E[=103l\E[=205l:ic=\E[@:im=\E[4h:ip=:\
9264 :is=\E[1*q\E[2!t\E[7!t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[!y\E[!z\E>\E[0\:0\:32!r\E[0*w\E[w\E2\r\n\E[2;27!t:\
9265 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kA=\E^C\r:kD=\E^B\r:\
9266 :kI=\E^A\r:kS=\E^D\r:kb=^H:kd=\E[B:ke=\E[!z\E[0;2u:\
9267 :kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[1!z\E[0;3u:ku=\E[A:le=^H:\
9268 :ll=\E[24H:mb=\E[5m:md=\E[1m:me=\E[m:mh=\E[1!{:mk=\E[8m:\
9269 :mp=\E[99m:mr=\E[7m:nd=\E[C:pf=\E[4i:pl=\E[%d;0u#%s#:\
9270 :po=\E[5i:ps=\E[0i:px=\E[%d;1u#%s#:rc=\E8:sc=\E7:\
9271 :se=\E[7!{:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=\011:\
9272 :te=\E[w\E2\r\n:ti=\E[=4l\E[1;24w\E2\r:ue=\E[4!{:\
9273 :up=\E[A:us=\E[4m:ve=\E[=119l:vs=\E[=119h:
9274avt-rv-ns|concept avt in reverse video mode/no status line:\
9275 :i1=\E[=103l\E[=205h:vb=\E[=205l\E[=205h:tc=avt-ns:
9276avt-w-ns|concept avt in 132 column mode/no status line:\
9277 :i1=\E[=103h\E[=205l:ti=\E[H\E[1;24;1;132w:tc=avt-ns:
9278avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video:\
9279 :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\
9280 :vb=\E[=205l\E[=205h:tc=avt-ns:
9281
9282# Concept AVT with status line. We get the status line using the
9283# "Background status line" feature of the terminal. We swipe the
9284# first line of memory in window 2 for the status line, keeping
9285# 191 lines of memory and 24 screen lines for regular use.
9286# The first line is used instead of the last so that this works
9287# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this
9288# assumes an 8 page AVT but lm isn't currently used anywhere.)
9289#
9290avt+s|concept avt status line changes:\
9291 :es:hs:\
9292 :lm#191:\
9293 :ds=\E[0*w:fs=\E[1;1!w:\
9294 :i2=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n:\
9295 :te=\E[2w\E2\r\n:ti=\E[2;25w\E2\r:\
9296 :ts=\E[2;1!w\E[;%dH\E[2K:
9297avt|avt-s|concept-avt|avt w/80 columns:\
9298 :tc=avt+s:tc=avt-ns:
9299avt-rv|avt-rv-s|avt reverse video w/sl:\
9300 :i1=\E[=103l\E[=205h:vb=\E[=205l\E[=205h:tc=avt+s:\
9301 :tc=avt-ns:
9302avt-w|avt-w-s|concept avt 132 cols+status:\
9303 :i1=\E[=103h\E[=205l:ti=\E[H\E[1;24;1;132w:tc=avt+s:\
9304 :tc=avt-ns:
9305avt-w-rv|avt-w-rv-s|avt wide+status+rv:\
9306 :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\
9307 :vb=\E[=205l\E[=205h:tc=avt+s:tc=avt-ns:
9308
9309#### Contel Business Systems.
9310#
9311
9312# Contel c300 and c320 terminals.
9313contel300|contel320|c300|Contel Business Systems C-300 or C-320:\
9314 :am:in:xo:\
9315 :co#80:li#24:sg#1:\
9316 :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:\
9317 :ct=\E3:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\EN:im=:ip=:k0=\ERJ:\
9318 :k1=\ERA:k2=\ERB:k3=\ERC:k4=\ERD:k5=\ERE:k6=\ERF:k7=\ERG:\
9319 :k8=\ERH:k9=\ERI:kb=^H:le=^H:ll=\EH\EA:me=\E!\0:nd=\EC:\
9320 :se=\E!\0:sf=^J:so=\E!\r:st=\E1:up=\EA:\
9321 :vb=\020\002\020\003:
9322# Contel c301 and c321 terminals.
9323contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321:\
9324 :ei=:ic@:im=:ip@:se=\E!\0:so=\E!\r:vb@:tc=contel300:
9325
9326#### Data General (dg)
9327#
9328# According to James Carlson <carlson@xylogics.com> writing in January 1995,
9329# the terminals group at Data General was shut down in 1991; all these
9330# terminals have thus been discontinued.
9331#
9332# DG terminals have function keys that respond to the SHIFT and CTRL keys,
9333# e.g., SHIFT-F1 generates a different code from F1. To number the keys
9334# sequentially, first the unmodified key codes are listed as F1 through F15.
9335# Then their SHIFT versions are listed as F16 through F30, their CTRL versions
9336# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as
9337# F46 through F60. This is done in the private "includes" below whose names
9338# start with "dgkeys+".
9339#
9340# DG terminals generally support 8 bit characters. For each of these terminals
9341# two descriptions are supplied:
9342# 1) A default description for 8 bits/character communications, which
9343# uses the default DG international character set and keyboard codes.
9344# 2) A description with suffix "-7b" for 7 bits/character communications.
9345# This description must use the NON-DEFAULT native keyboard language.
9346
9347# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33),
9348# Ctrl/Shift fdkeys (kf34-kf44).
9349
9350dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys:\
9351 :%9=\233i:F1=\233011z:F2=\233012z:F3=\233013z:\
9352 :F4=\233014z:F5=\233000z:F6=\233101z:F7=\233102z:\
9353 :F8=\233103z:F9=\233104z:FA=\233105z:FB=\233106z:\
9354 :FC=\233107z:FD=\233108z:FE=\233109z:FF=\233110z:\
9355 :FG=\233111z:FH=\233112z:FI=\233113z:FJ=\233114z:\
9356 :FK=\233100z:FL=\233201z:FM=\233202z:FN=\233203z:\
9357 :FO=\233204z:FP=\233205z:FQ=\233206z:FR=\233207z:\
9358 :FS=\233208z:FT=\233209z:FU=\233210z:FV=\233211z:\
9359 :FW=\233212z:FX=\233213z:FY=\233214z:FZ=\233200z:\
9360 :Fa=\233301z:Fb=\233302z:Fc=\233303z:Fd=\233304z:\
9361 :Fe=\233305z:Ff=\233306z:Fg=\233307z:Fh=\233308z:\
9362 :Fi=\233309z:Fj=\233310z:Fk=\233311z:Fl=\233312z:\
9363 :Fm=\233313z:Fn=\233314z:Fo=\233300z:K1=\233020z:\
9364 :K3=\233021z:K4=\233022z:K5=\233023z:k1=\233001z:\
9365 :k2=\233002z:k3=\233003z:k4=\233004z:k5=\233005z:\
9366 :k6=\233006z:k7=\233007z:k8=\233008z:k9=\233009z:\
9367 :k;=\233010z:kC=\2332J:kE=\233K:kd=\233B:kh=\233H:\
9368 :kl=\233D:kr=\233C:ku=\233A:
9369
9370dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys:\
9371 :%9=\E[i:F1=\E[011z:F2=\E[012z:F3=\E[013z:F4=\E[014z:\
9372 :F5=\E[000z:F6=\E[101z:F7=\E[102z:F8=\E[103z:F9=\E[104z:\
9373 :FA=\E[105z:FB=\E[106z:FC=\E[107z:FD=\E[108z:FE=\E[109z:\
9374 :FF=\E[110z:FG=\E[111z:FH=\E[112z:FI=\E[113z:FJ=\E[114z:\
9375 :FK=\E[100z:FL=\E[201z:FM=\E[202z:FN=\E[203z:FO=\E[204z:\
9376 :FP=\E[205z:FQ=\E[206z:FR=\E[207z:FS=\E[208z:FT=\E[209z:\
9377 :FU=\E[210z:FV=\E[211z:FW=\E[212z:FX=\E[213z:FY=\E[214z:\
9378 :FZ=\E[200z:Fa=\E[301z:Fb=\E[302z:Fc=\E[303z:Fd=\E[304z:\
9379 :Fe=\E[305z:Ff=\E[306z:Fg=\E[307z:Fh=\E[308z:Fi=\E[309z:\
9380 :Fj=\E[310z:Fk=\E[311z:Fl=\E[312z:Fm=\E[313z:Fn=\E[314z:\
9381 :Fo=\E[300z:K1=\E[020z:K3=\E[021z:K4=\E[022z:K5=\E[023z:\
9382 :k1=\E[001z:k2=\E[002z:k3=\E[003z:k4=\E[004z:k5=\E[005z:\
9383 :k6=\E[006z:k7=\E[007z:k8=\E[008z:k9=\E[009z:k;=\E[010z:\
9384 :kC=\E[2J:kE=\E[K:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:
9385
9386dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys:\
9387 :F1=^^{:F2=^^a:F3=^^b:F4=^^c:F5=^^d:F6=^^e:F7=^^f:F8=^^g:\
9388 :F9=^^h:FA=^^i:FB=^^j:FC=^^k:FD=^^1:FE=^^2:FF=^^3:FG=^^4:\
9389 :FH=^^5:FI=^^6:FJ=^^7:FK=^^8:FL=^^9:FM=^^\::FN=^^;:FO=^^!:\
9390 :FP=^^":FQ=^^#:FR=^^$:FS=^^%%%:FT=^^&:FU=^^':FV=^^(:FW=^^):\
9391 :FX=^^*:FY=^^+:k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:k6=^^v:\
9392 :k7=^^w:k8=^^x:k9=^^y:k;=^^z:kC=^L:kE=^K:kd=^Z:kh=^H:kl=^Y:\
9393 :kr=^X:ku=^W:
9394
9395dgkeys+15|Private entry describing 15 DG mode special keys:\
9396 :#2=^^^H:#4=^^^Y:%i=^^^X:F1=^^{:F2=^^|:F3=^^}:F4=^^~:F5=^^p:\
9397 :F6=^^a:F7=^^b:F8=^^c:F9=^^d:FA=^^e:FB=^^f:FC=^^g:FD=^^h:\
9398 :FE=^^i:FF=^^j:FG=^^k:FH=^^l:FI=^^m:FJ=^^n:FK=^^`:FL=^^1:\
9399 :FM=^^2:FN=^^3:FO=^^4:FP=^^5:FQ=^^6:FR=^^7:FS=^^8:FT=^^9:\
9400 :FU=^^\::FV=^^;:FW=^^<:FX=^^=:FY=^^>:FZ=^^0:Fa=^^!:Fb=^^":\
9401 :Fc=^^#:Fd=^^$:Fe=^^%%%:Ff=^^&:Fg=^^':Fh=^^(:Fi=^^):Fj=^^*:\
9402 :Fk=^^+:Fl=^^,:Fm=^^-:Fn=^^.:Fo=^^\s:K1=^^\\:K3=^^]:K4=^^^:\
9403 :K5=^^_:k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:k6=^^v:k7=^^w:\
9404 :k8=^^x:k9=^^y:k;=^^z:
9405
9406# Data General color terminals use the "Tektronix" color model. The total
9407# number of colors varies with the terminal model, as does support for
9408# attributes used in conjunction with color.
9409
9410# Removed u7, u8 definitions since they conflict with tack:
9411# Preserve user-defined colors in at least some cases.
9412# u7=^^Fh,
9413# Default is ACM mode.
9414# u8=^^F}20^^Fi^^F}21,
9415#
9416dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode:\
9417 :ut:\
9418 :Co#16:NC#53:pa#256:\
9419 :..AB=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\
9420 :..AF=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\
9421 :Sb=\036B%+0:Sf=\036A%+0:op=\036Ad\036Bd:
9422
9423dg+fixed|Fixed color info for DG D430C terminals in DG mode:\
9424 :tc=dgunix+fixed:
9425
9426# Video attributes are coordinated using static variables set by "sgr", then
9427# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings.
9428# (D=dim, U=underline, B=blink, R=reverse.)
9429dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode:\
9430 :ut:\
9431 :Co#8:NC#16:pa#64:\
9432 :..AB=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
9433 :..AF=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
9434 :..Sb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
9435 :..Sf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
9436 :op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m:
9437
9438dg+color|Color info for Data General D470C terminals in ANSI mode:\
9439 :Co#16:NC#53:pa#256:\
9440 :..AB=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
9441 :..AF=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
9442 :..Sb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
9443 :..Sf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
9444 :tc=dg+color8:
9445
9446dgmode+color8|Color info for Data General D220/D230C terminals in DG mode:\
9447 :ut:\
9448 :Co#8:NC#16:pa#64:\
9449 :AB=\036B%+^B:AF=\036A%+^B:Sb=\036B%+0:Sf=\036A%+0:\
9450 :op=\036Ad\036Bd:
9451
9452dgmode+color|Color info for Data General D470C terminals in DG mode:\
9453 :Co#16:pa#256:\
9454 :..AB=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\
9455 :..AF=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\
9456 :tc=dgmode+color8:
9457
9458dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode:\
9459 :cc:ut:\
9460 :Co#52:NC#53:pa#26:\
9461 :..Ip=\036RG0%p1%02X%p2%{256}%*%{1001}%/%02X%p3%{256}%*%{1001}%/%02X%p4%{256}%*%{1001}%/%02X%p5%{256}%*%{1001}%/%02X%p6%{256}%*%{1001}%/%02X%p7%{256}%*%{1001}%/%02X:\
9462 :oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00:\
9463 :op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D:\
9464 :..sp=\036RG2%p1%02X:
9465
9466# Colors are in the order: normal, reverse, dim, dim + reverse.
9467dg+ccc|Configurable color info for DG D430C terminals in DG mode:\
9468 :cc:ut:\
9469 :Co#52:NC#53:pa#26:\
9470 :..Ip=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c:\
9471 :oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00:\
9472 :op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=:\
9473 :sp=\036RG2%+^P%+^P:
9474
9475# The generic DG terminal type (an 8-bit-clean subset of the 6053)
9476# Initialization string 1 sets:
9477# ^R - vertical scrolling enabled
9478# ^C - blinking enabled
9479dg-generic|Generic Data General terminal in DG mode:\
9480 :NL:am:bw:ms:xo:\
9481 :co#80:li#24:\
9482 :bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:i1=^R^C:le=^Y:\
9483 :mb=^N:me=^O^U^]:mh=^\:nd=^X:nw=^J:ps=^Q:se=^]:sf=^J:so=^\:\
9484 :ue=^U:up=^W:us=^T:tc=dgkeys+11:
9485
9486# According to the 4.4BSD termcap file, the dg200 :cm: should be the
9487# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap
9488# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious,
9489# maybe they were originally nuls (which would fit).
9490
9491dg200|data general dasher 200:\
9492 :NL:am:bs:bw:\
9493 :co#80:li#24:\
9494 :bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:k0=^^z:\
9495 :k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:k6=^^v:k7=^^w:k8=^^x:\
9496 :k9=^^y:kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:l0=f10:le=^Y:nd=^X:\
9497 :nw=^J:se=^^E:sf=^J:so=^^D:ue=^U:up=^W:us=^T:
9498
9499# Data General 210/211 (and 410?) from Lee Pearson (umich!lp) via BRL
9500dg210|dg-ansi|Data General 210/211:\
9501 :am:\
9502 :co#80:li#24:\
9503 :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:do=\E[B:ho=\E[H:\
9504 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:nl=\E[B:\
9505 :nw=\r\E[H\E[A\n:se=\E[0;m:so=\E[7;m:ue=\E[0;m:up=\E[A:\
9506 :us=\E[4;m:
9507# From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
9508# courtesy of Carlos Rucalde of Vantage Software, Inc.
9509# (dg211: this had :cm=\020%r%.%:., which was an ancient termcap hangover.
9510# I suspect the d200 function keys actually work on the dg211, check it out.)
9511dg211|Data General d211:\
9512 :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb=^Y:l0@:nw=^M^Z:\
9513 :se=\036E\0/>:sf@:so=5\036D:ta=^I:te=^L:ti=^L^R:ve=^L:\
9514 :vs=^L^R:tc=dg200:
9515
9516# dg450 from Cornell (not official)
9517dg450|dg6134|data general 6134:\
9518 :le@:nd=^X:tc=dg200:
9519
9520# Not official...
9521# Note: lesser Dasher terminals will not work with vi because vi insists upon
9522# having a command to move straight down from any position on the bottom line
9523# and scroll the screen up, or a direct vertical scroll command. The 460 and
9524# above have both, the D210/211, for instance, has neither. We must use ANSI
9525# mode rather than DG mode because standard UNIX tty drivers assume that ^H is
9526# backspace on all terminals. This is not so in DG mode.
9527# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the
9528# grounds that there is no matching ":ml:"
9529# fixed garbled ":k9=\E[00\:z:" capability -- esr)
9530dg460-ansi|Data General Dasher 460 in ANSI-mode:\
9531 :am:bs:ms:ul:\
9532 :co#80:it#8:li#24:\
9533 :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%2;%2H:dc=\E[P:\
9534 :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=^^F@:k0=\E[001z:\
9535 :k1=\E[002z:k2=\E[003z:k3=\E[004z:k4=\E[005z:k5=\E[006z:\
9536 :k6=\E[007z:k7=\E[008z:k8=\E[009z:k9=\E[010z:kb=\E[D:\
9537 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:l0=f1:l1=f2:l2=f3:\
9538 :l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:l9=f10:le=^H:mb=\E[5m:me=\E[m:\
9539 :mh=\E[2m:mr=\E[7m:nd=\E[C:nl=\ED:se=\E[m:sf=\E[S:so=\E[7m:\
9540 :sr=\E[T:ta=^I:ue=\E[05:up=\E[A:us=\E[4m:
9541# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
9542# Data General 605x
9543# Ought to work for a Model 6242, Type D210 as well as a 605x.
9544# Note that the cursor-down key transmits ^Z. Job control users, beware!
9545# This also matches a posted description of something called a `Dasher 100'
9546# so there's a dg100 alias here.
9547# (dg6053: the 4.4BSD file had :le=^H:, :do=^J:, :nd=^S:. -- esr)
9548dg6053-old|dg100|data general 6053:\
9549 :am:bs:bw:ul:\
9550 :co#80:li#24:\
9551 :bc=^Y:bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:\
9552 :is=^R:k0=^^q:k1=^^r:k2=^^s:k3=^^t:k4=^^u:k5=^^v:k6=^^w:\
9553 :k7=^^x:k8=^^y:k9=^^z:kb=^Y:kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:\
9554 :le=^Y:nd=^X:se=\0^^E:so=\0\0\0\0\0\036D:ta=^I:te=^L:\
9555 :ti=^L^R:ue=^U:up=^W:us=^T:ve=^L:vs=^L^R:
9556
9557# (Some performance can be gained over the generic DG terminal type)
9558dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053:\
9559 :xo@:\
9560 :ho=^P\0\0:ll=^P\0^W:tc=dg-generic:
9561
9562# Like 6053, but adds reverse video and more keypad and function keys.
9563d200|d200-dg|Data General DASHER D200:\
9564 :ho@:ll@:md=^^D^T:me=\017\025\035\036E:mr=^^D:\
9565 :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;:\
9566 :se=^^E^]:so=^^D^\:tc=dgkeys+15:tc=dg6053:
9567
9568# DASHER D210 series terminals in ANSI mode.
9569# Reverse video, no insert/delete character/line, 7 bits/character only.
9570#
9571# Initialization string 1 sets:
9572# <0 - scrolling enabled
9573# <1 - blink enabled
9574# <4 - print characters regardless of attributes
9575d210|d214|Data General DASHER D210 series:\
9576 :NL:am:bw:ms:xo:\
9577 :co#80:li#24:\
9578 :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bl=^G:cb=\E[1K:\
9579 :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:do=\E[B:\
9580 :ho=\E[H:i1=\E[<0;<1;<4l:le=^H:ll=\E[H\E[A:mb=\E[5m:\
9581 :md=\E[4;7m:me=\E[m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^J:\
9582 :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m:\
9583 :se=\E[m:sf=^J:so=\E[2;7m:ue=\E[m:up=\E[A:us=\E[4m:\
9584 :tc=dgkeys+7b:
9585
9586# DASHER D210 series terminals in DG mode.
9587# Like D200, but adds clear to end-of-screen and needs XON/XOFF.
9588d210-dg|d214-dg|Data General DASHER D210 series in DG mode:\
9589 :xo:\
9590 :cd=^^FF:tc=d200-dg:
9591
9592# DASHER D211 series terminals in ANSI mode.
9593# Like the D210, but with 8-bit characters and local printer support.
9594#
9595# Initialization string 2 sets:
9596# \E[2;1;1;1v
9597# 2;1 - 8 bit operations
9598# 1;1 - 8 bit (international) keyboard language
9599# \E(B - default primary character set (U.S. ASCII)
9600# \E)4 - default secondary character set (international)
9601# ^O - primary character set
9602#
9603d211|d215|Data General DASHER D211 series:\
9604 :km:\
9605 :is=\E[2;1;1;1v\E(B\E)4\017:ps=\E[i:tc=dgkeys+8b:\
9606 :tc=d210:
9607
9608# Initialization string 2 sets:
9609# \E[2;0;1;0v
9610# 2;0 - 7 bit operations
9611# 1;0 - 7 bit (native) keyboard language
9612# \E(0 - default character set (the keyboard native language)
9613# ^O - primary character set
9614d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode:\
9615 :km@:\
9616 :is=\E[2;0;1;0v\E(0\017:tc=dgkeys+7b:tc=d211:
9617
9618# Like the D210 series, but adds support for 8-bit characters.
9619#
9620# Reset string 2 sets:
9621# ^^N - secondary character set
9622# ^^FS0> - 8 bit international character set
9623# ^^O - primary character set
9624# ^^FS00 - default character set (matching the native keyboard language)
9625#
9626d211-dg|d215-dg|Data General DASHER D211 series in DG mode:\
9627 :km:\
9628 :rs=\036N\036FS0>\036O\036FS00:tc=d210-dg:
9629
9630d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode:\
9631 :tc=d211-dg:
9632
9633# Enhanced DG mode with changes to be more UNIX compatible.
9634d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode:\
9635 :5i:\
9636 :it#8:\
9637 :#2=^^Pf:#4=^^Pd:%9=^^P0:%f=^^P1:%i=^^Pc:\
9638 :ac=a\177j$k"l!m#n)q+t'u&v(w%x*:ae=\036FS00:\
9639 :as=\036FS11:ce=^^PE:ch=\020%.\177:cl=^^PH:cv=\020\177%.:\
9640 :do=^^PB:ho=^^PF:i1=\022\003\036P@1:i2=\036Fz0:kC=^^PH:\
9641 :kE=^^PE:kd=^^PB:kh=^^PF:kl=^^PD:kr=^^PC:ku=^^PA:le=^^PD:\
9642 :mb=^^PI:me=\036PJ\025\035\036E\036FS00:nd=^^PC:pf=^^Fa:\
9643 :po=^^F`:ps=\036F?9:rs=\036N\036FS0E\036O\036FS00:\
9644 :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;:\
9645 :sf=^J:ta=^I:up=^^PA:tc=dgkeys+15:tc=d216-dg:
9646d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines:\
9647 :li#25:\
9648 :i2=\036Fz2:tc=d216+:
9649
9650d217-unix|Data General DASHER D217 in DG-UNIX mode:\
9651 :tc=d216-unix:
9652d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines:\
9653 :tc=d216-unix-25:
9654
9655# DASHER D220 color terminal in ANSI mode.
9656# Like the D470C but with fewer colors and screen editing features.
9657#
9658# Initialization string 1 sets:
9659# \E[<0;<1;<4l
9660# <0 - scrolling enabled
9661# <1 - blink enabled
9662# <4 - print characters regardless of attributes
9663# \E[m - all attributes off
9664# Reset string 1 sets:
9665# \Ec - initial mode defaults (RIS)
9666#
9667d220|Data General DASHER D220:\
9668 :5i@:\
9669 :AL@:DL@:al@:dl@:i1=\E[<0;<1;<4l\E[m:pf@:po@:r1=\Ec:\
9670 :tc=dg+color8:tc=d470c:
9671
9672d220-7b|Data General DASHER D220 in 7 bit mode:\
9673 :5i@:\
9674 :AL@:DL@:al@:dl@:i1=\E[<0;<1;<4l\E[m:pf@:po@:r1=\Ec:\
9675 :tc=dg+color8:tc=d470c-7b:
9676
9677# Initialization string 3 sets:
9678# - default cursor (solid rectangle)
9679# Reset string 2 sets:
9680# ^^N - secondary character set
9681# ^^FS0> - 8 bit international character set
9682# ^^O - primary character set
9683# ^^FS00 - default character set (matching the native keyboard language)
9684#
9685d220-dg|Data General DASHER D220 color terminal in DG mode:\
9686 :5i@:\
9687 :al@:dl@:ho@:i2=\036FQ2:is@:ll@:pf@:po@:r1@:\
9688 :rs=\036N\036FS0>\036O\036FS00:tc=dgmode+color8:\
9689 :tc=d470c-dg:
9690
9691# DASHER D230C color terminal in ANSI mode.
9692# Like the D220 but with minor ANSI compatibility improvements.
9693#
9694d230c|d230|Data General DASHER D230C:\
9695 :ke=\E[2;1v:ks=\E[2;0v:mb=\E[5;50m:md=\E[4;7;50m:\
9696 :me=\E[50m\E)4\017:mh=\E[2;50m:mr=\E[7;50m:nw=^M^J:\
9697 :..sa=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;:\
9698 :se=\E[50m:so=\E[2;7;50m:ue=\E[50m:us=\E[4;50m:\
9699 :tc=dgkeys+7b:tc=d220:
9700
9701d230c-dg|d230-dg|Data General DASHER D230C in DG mode:\
9702 :tc=d220-dg:
9703
9704# DASHER D400/D450 series terminals.
9705# These add intelligent features like insert/delete to the D200 series.
9706#
9707# Initialization string 2 sets:
9708# ^^FQ2 - default cursor (solid rectangle)
9709# ^^FW - character protection disabled
9710# ^^FJ - normal (80 column) mode
9711# ^^F\^ - horizontal scrolling enabled (for alignment)
9712# ^^FX004? - margins at columns 0 and 79
9713# ^^F] - horizontal scrolling disabled
9714# ^^O - primary character set
9715# ^^FS00 - default character set (the keyboard native language)
9716# - (should reset scrolling regions, but that glitches the screen)
9717# Reset string 1 sets:
9718# ^^FA - all terminal defaults except scroll rate
9719# Reset string 2 sets:
9720# ^^F] - horizontal scrolling disabled
9721# ^^FT0 - jump scrolling
9722#
9723d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series:\
9724 :5i:\
9725 :ac=j$k"l!m#n)q+t'u&v(w%x*:ae=^^O:al=^^FH:as=^^N:\
9726 :ch=\020%.\177:cv=\020\177%.:dc=^^K:dl=^^FI:\
9727 :eA=\036N\036FS11\036O:ei=:ho=^^FG:ic=^^J:im=:\
9728 :is=\036FQ2\036FW\036FJ\036F^\036FX004?\036F]\036O\036FS00:\
9729 :ll=\036FG\027:me=\017\025\035\036E\036O:pf=^^Fa:\
9730 :po=^^F`:r1=^^FA:r2=\036F]\036FT0:\
9731 :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;:\
9732 :sr=^^I:ve=\036FQ2:vi=\036FQ0:tc=d210-dg:
9733
9734# DASHER D410/D460 series terminals in ANSI mode.
9735# These add a large number of intelligent terminal features.
9736#
9737# Initialization string 1 sets:
9738# \E[<0;<1;<2;<4l
9739# <0 - scrolling enabled
9740# <1 - blink enabled
9741# <2 - horizontal scrolling enabled (for alignment)
9742# <4 - print characters regardless of attributes
9743# \E[5;0v - normal (80 column) mode
9744# \E[1;1;80w - margins at columns 1 and 80
9745# \E[1;6;<2h
9746# 1 - print all characters even if protected
9747# 6 - character protection disabled
9748# <2 - horizontal scrolling disabled
9749# - (should reset scrolling regions, but that glitches the screen)
9750#
9751# Initialization string 2 sets:
9752# \E[3;2;2;1;1;1v
9753# 3;2 - default cursor (solid rectangle)
9754# 2;1 - 8 bit operations
9755# 1;1 - international keyboard language
9756# \E(B - default primary character set (U.S. ASCII)
9757# \E)4 - default secondary character set (international)
9758# ^O - primary character set
9759#
9760# Reset string 1 sets:
9761# \Ec - initial mode defaults (RIS)
9762# \E[<2h - horizontal scrolling disabled
9763#
9764# Reset string 2 sets:
9765# \E[4;0;2;1;1;1v
9766# 4;0 - jump scrolling
9767# 2;1 - 8 bit operations
9768# 1;1 - 8 bit (international) keyboard language
9769# \E(B - default primary character set (U.S. ASCII)
9770# \E)4 - default secondary character set (international)
9771#
9772d410|d411|d460|d461|Data General DASHER D410/D460 series:\
9773 :5i:\
9774 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:\
9775 :ac=j$k"l!m#n)q+t'u&v(w%x*:ae=\E)4\017:al=\E[L:\
9776 :as=\E)6\016:dc=\E[P:dl=\E[M:ei=:\
9777 :i1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h:\
9778 :ic=\E[@:im=:is=\E[3;2;2;1;1;1v\E(B\E)4\017:\
9779 :me=\E[m\E)4\017:pf=\E[4i:po=\E[5i:r1=\Ec\E[<2h:\
9780 :r2=\E[4;0;2;1;1;1v\E(B\E)4:\
9781 :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;:\
9782 :sr=\EM:ve=\E[3;2v:vi=\E[3;0v:tc=d211:
9783
9784# Initialization string 2 sets:
9785# \E[3;2;2;0;1;0v
9786# 3;2 - default cursor (solid rectangle)
9787# 2;0 - 7 bit operations
9788# 1;0 - 7 bit (native) keyboard language
9789# \E(0 - default character set (the keyboard native language)
9790# ^O - primary character set
9791#
9792# Reset string 2 sets:
9793# \E[4;0;2;0;1;0v
9794# 4;0 - jump scrolling
9795# 2;0 - 7 bit operations
9796# 1;0 - 7 bit (native) keyboard language
9797# \E(0 - default character set (the keyboard native language)
9798#
9799d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode:\
9800 :km@:\
9801 :ae=^O:as=^N:eA=\E)6:is=\E[3;2;2;0;1;0v\E(0\017:\
9802 :me=\E[m\017:rs=\E[4;0;2;0;1;0v\E(0:\
9803 :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;:\
9804 :tc=dgkeys+7b:tc=d410:
9805
9806d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode:\
9807 :km:\
9808 :ae=\036FS00:as=\036FS11:eA@:\
9809 :me=\017\025\035\036E\036FS00:\
9810 :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;:\
9811 :tc=d400-dg:
9812
9813# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode.
9814#
9815# Initialization string 1 sets:
9816# \E[<0;<1;<2;<4l
9817# <0 - scrolling enabled
9818# <1 - blink enabled
9819# <2 - horizontal scrolling enabled (for alignment)
9820# <4 - print characters regardless of attributes
9821# \E[5;1v - compressed (135 column) mode
9822# \E[1;1;126 - margins at columns 1 and 126
9823# \E[1;6;<2h
9824# 1 - print all characters even if protected
9825# 6 - character protection disabled
9826# <2 - horizontal scrolling disabled
9827# - (should reset scrolling regions, but that glitches the screen)
9828#
9829# Reset string 1 sets:
9830# \Ec - initial mode defaults (RIS)
9831# \E[5;1v - compressed (135 column) mode
9832# \E[1;1;126w - margins at columns 1 and 126
9833# \E[<2h - horizontal scrolling disabled
9834#
9835d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode:\
9836 :co#126:\
9837 :i1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h:\
9838 :r1=\Ec\E[5;1v\E[1;1;126w\E[<2h:tc=d410:
9839
9840d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode:\
9841 :co#126:\
9842 :i1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h:\
9843 :r1=\Ec\E[5;1v\E[1;1;126w\E[<2h:tc=d410-7b:
9844
9845d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode:\
9846 :tc=d410-dg:
9847
9848# These add intelligent features like scrolling regions.
9849d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode:\
9850 :al=^^FH:..ch=\036FP%p1%2.2XFF:cl=^^FE:\
9851 :..cm=\036FP%p2%2.2X%p1%2.2X:..cv=\036FPFF%p1%2.2X:\
9852 :dc=^^K:dl=^^FI:ei=:ho=^^FG:ic=^^J:im=:\
9853 :is=\036FQ5\036FW\036FJ\036F^\036FX004F\036O\036FS00:\
9854 :ll=\036FG\036PA:ps=^A:r1=\036FA\036FT0:r2=\036P@1:\
9855 :rc=\036F}11:sc=\036F}10:sr=^^I:ve=\036FQ5:vi=\036FQ0:\
9856 :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X:\
9857 :tc=d216+:
9858d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode:\
9859 :co#132:\
9860 :is=\036FQ5\036FW\036FK\036F^\036FX0083\036O\036FS00:\
9861 :rs=\036P@1\036FK\036FX0083:\
9862 :..wi=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X:\
9863 :tc=d412-unix:
9864d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines:\
9865 :li#25:\
9866 :i2=\036Fz2:\
9867 :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X:\
9868 :tc=d462+:
9869d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line:\
9870 :es:hs:\
9871 :cl=\036FG\036PH:fs=\036F}01\022:\
9872 :i2=\036Fz2\036F}00\036FB180000\036F}01:ll@:\
9873 :..ts=\036F}00\036FP%p1%2.2X18\036PG:\
9874 :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X:\
9875 :tc=d462+:
9876
9877# Relative cursor motions are confined to the current window,
9878# which is not what the scrolling region specification expects.
9879# Thus, relative vertical cursor positioning must be deleted.
9880d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region:\
9881 :..cs=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;:\
9882 :do@:ll@:up@:tc=d462+:
9883
9884d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode:\
9885 :tc=d412-unix:
9886d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode:\
9887 :tc=d412-unix-w:
9888d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines:\
9889 :tc=d412-unix-25:
9890d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line:\
9891 :tc=d412-unix-s:
9892d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region:\
9893 :tc=d412-unix-sr:
9894
9895d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode:\
9896 :tc=d413-unix:
9897d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode:\
9898 :tc=d413-unix-w:
9899d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines:\
9900 :tc=d413-unix-25:
9901d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line:\
9902 :tc=d413-unix-s:
9903d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region:\
9904 :tc=d413-unix-sr:
9905
9906d430c-dg|d430-dg|Data General D430C in DG mode:\
9907 :tc=d413-dg:tc=dg+fixed:
9908d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors:\
9909 :tc=d413-dg:tc=dg+ccc:
9910
9911d430c-unix|d430-unix|Data General D430C in DG-UNIX mode:\
9912 :tc=d413-unix:tc=dgunix+fixed:
9913d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode:\
9914 :tc=d413-unix-w:tc=dgunix+fixed:
9915d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines:\
9916 :tc=d413-unix-25:tc=dgunix+fixed:
9917d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line:\
9918 :tc=d413-unix-s:tc=dgunix+fixed:
9919d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region:\
9920 :tc=d413-unix-sr:tc=dgunix+fixed:
9921d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors:\
9922 :tc=d413-unix:tc=dgunix+ccc:
9923d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors:\
9924 :tc=d413-unix-w:tc=dgunix+ccc:
9925d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors:\
9926 :tc=d413-unix-25:tc=dgunix+ccc:
9927d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors:\
9928 :tc=d413-unix-s:tc=dgunix+ccc:
9929d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors:\
9930 :tc=d413-unix-sr:tc=dgunix+ccc:
9931
9932# DASHER D470C color terminal in ANSI mode.
9933# Like the D460 but with 16 colors and without a compressed mode.
9934#
9935# Initialization string 1 sets:
9936# \E[<0;<1;<2;<4l
9937# <0 - scrolling enabled
9938# <1 - blink enabled
9939# <2 - horizontal scrolling enabled (for alignment)
9940# <4 - print characters regardless of attributes
9941# \E[1;1;80w - margins at columns 1 and 80
9942# \E[1;6;<2h
9943# 1 - print all characters even if protected
9944# 6 - character protection disabled
9945# <2 - horizontal scrolling disabled
9946# - (should reset scrolling regions, but that glitches the screen)
9947#
9948d470c|d470|Data General DASHER D470C:\
9949 :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:\
9950 :..sa=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;:\
9951 :tc=dg+color:tc=d460:
9952
9953d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode:\
9954 :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:\
9955 :..sa=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;:\
9956 :tc=dg+color:tc=d460-7b:
9957
9958# Initialization string 2 sets:
9959# ^^FQ2 - default cursor (solid rectangle)
9960# ^^FW - character protection disabled
9961# ^^F\^ - horizontal scrolling enabled (for alignment)
9962# ^^FX004? - margins at columns 0 and 79
9963# ^^F] - horizontal scrolling disabled
9964# ^^O - primary character set
9965# ^^FS00 - default character set (the keyboard native language)
9966# - (should reset scrolling regions, but that glitches the screen)
9967#
9968d470c-dg|d470-dg|Data General DASHER D470C in DG mode:\
9969 :is=\036FQ2\036FW\036F^\036FX004?\036F]\036O\036FS00:\
9970 :tc=dgmode+color:tc=d460-dg:
9971
9972# DASHER D555 terminal in ANSI mode.
9973# Like a D411, but has an integrated phone.
9974d555|Data General DASHER D555:\
9975 :tc=d411:
9976d555-7b|Data General DASHER D555 in 7-bit mode:\
9977 :tc=d411-7b:
9978d555-w|Data General DASHER D555 in wide mode:\
9979 :tc=d411-w:
9980d555-7b-w|Data General DASHER D555 in wide 7-bit mode:\
9981 :tc=d411-7b-w:
9982d555-dg|Data General DASHER D555 series in DG mode:\
9983 :tc=d411-dg:
9984
9985# DASHER D577 terminal in ANSI mode.
9986# Like a D411, but acts as a keyboard for serial printers ("KSR" modes).
9987d577|Data General DASHER D577:\
9988 :tc=d411:
9989d577-7b|Data General DASHER D577 in 7-bit mode:\
9990 :tc=d411-7b:
9991d577-w|Data General DASHER D577 in wide mode:\
9992 :tc=d411-w:
9993d577-7b-w|Data General DASHER D577 in wide 7-bit mode:\
9994 :tc=d411-7b-w:
9995
9996d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode:\
9997 :tc=d411-dg:
9998
9999# DASHER D578 terminal.
10000# Like a D577, but without compressed mode; like a D470C in this respect.
10001#
10002# Initialization string 1 sets:
10003# \E[<0;<1;<2;<4l
10004# <0 - scrolling enabled
10005# <1 - blink enabled
10006# <2 - horizontal scrolling enabled (for alignment)
10007# <4 - print characters regardless of attributes
10008# \E[1;1;80w - margins at columns 1 and 80
10009# \E[1;6;<2h
10010# 1 - print all characters even if protected
10011# 6 - character protection disabled
10012# <2 - horizontal scrolling disabled
10013# - (should reset scrolling regions, but that glitches the screen)
10014#
10015d578|Data General DASHER D578:\
10016 :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:tc=d577:
10017d578-7b|Data General DASHER D578 in 7-bit mode:\
10018 :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:tc=d577-7b:
10019
10020#### Datamedia (dm)
10021#
10022# Datamedia was headquartered in Nashua, New Hampshire until it went
10023# out of business in 1993, but the ID plates on the terminals referred
10024# to the factory in Pennsauken, NJ. The factory was sold to a PCB board
10025# manufacturer which threw out all information about the terminals.
10026#
10027
10028cs10|colorscan|Datamedia Color Scan 10:\
10029 :ms:\
10030 :co#80:li#24:\
10031 :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%02;%02H:cr=^M:\
10032 :do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:kl=\E[D:\
10033 :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:\
10034 :so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m:
10035cs10-w|Datamedia Color Scan 10 with 132 columns:\
10036 :co#132:\
10037 :cm=\E[%i%02;%03H:tc=cs10:
10038
10039# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr)
10040dm1520|dm1521|datamedia 1520:\
10041 :am:bs:xn:\
10042 :co#80:it#8:li#24:\
10043 :bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:ho=^Y:\
10044 :kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:nd=^\:sf=^J:ta=^I:up=^_:
10045# dm2500: this terminal has both :IC: and :im:. Applications using
10046# termcap/terminfo directly (rather than through ncurses) might be confused.
10047dm2500|datamedia2500|datamedia 2500:\
10048 :bs:nc:\
10049 :co#80:li#24:\
10050 :al=\020\n\030\035\030\035:bl=^G:ce=^W:cl=^^^^\177:\
10051 :cm=\014%r%n%.%.:dc=\020\010\030\035:\
10052 :dl=\020\032\030\035:dm=^P:do=^J:ed=^X^]:\
10053 :ei=\377\377\030\035:ho=^B:ic=\020\034\030\035:im=^P:\
10054 :le=^H:nd=^\:pc=\377:se=^X^]:sf=^J:so=^N:up=^Z:
10055# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82)
10056# also, has a meta-key.
10057# From: <goldberger@su-csli.arpa>
10058# (dmchat: ":MT:" changed to ":km:" -- esr)
10059dmchat|dmchat version of datamedia 2500:\
10060 :km:\
10061 :al=1*\020\n\030\035\030\035:dl=2\020\032\030\035:\
10062 :tc=dm2500:
10063# (dm3025: ":MT:" changed to ":km:" -- esr)
10064dm3025|datamedia 3025a:\
10065 :bs:km:\
10066 :co#80:it#8:li#24:\
10067 :al=\EP\n\EQ:bl=^G:cd=\EJ:ce=\EK:cl=\EM:cm=\EY%r%+ %+ :\
10068 :cr=^M:dc=\010:dl=\EP\EA\EQ:dm=\EP:do=^J:ed=\EQ:ei=\EQ:\
10069 :ho=\EH:im=\EP:ip=:is=\EQ\EU\EV:le=^H:nd=\EC:se=\EO0:sf=^J:\
10070 :so=\EO1:ta=^I:up=\EA:
10071dm3045|datamedia 3045a:\
10072 :am:bs:eo:km@:ul:xn:\
10073 :al@:dc=\EB:dl@:dm@:ed@:ei=\EP:is=\EU\EV:k0=\Ey\r:k1=\Ep\r:\
10074 :k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:\
10075 :k8=\Ew\r:k9=\Ex\r:kh=\EH:kr=\EC:ku=\EA:pc=\177:se@:so@:\
10076 :tc=dm3025:
10077# Datamedia DT80 soft switches:
10078# 1 0=Jump 1=Smooth
10079# Autorepeat 0=off 1=on
10080# Screen 0=Dark 1=light
10081# Cursor 0=u/l 1=block
10082#
10083# 2 Margin Bell 0=off 1=on
10084# Keyclick 0=off 1=on
10085# Ansi/VT52 0=VT52 1=Ansi
10086# Xon/Xoff 0=Off 1=On
10087#
10088# 3 Shift3 0=Hash 1=UK Pound
10089# Wrap 0=Off 1=On
10090# Newline 0=Off 1=On
10091# Interlace 0=Off 1=On
10092#
10093# 4 Parity 0=Odd 1=Even
10094# Parity 0=Off 1=On
10095# Bits/Char 0=7 1=8
10096# Power 0=60Hz 1=50Hz
10097#
10098# 5 Line Interface 0=EIA 1=Loop
10099# Aux Interface 0=EIA 1=Loop
10100# Local Copy 0=Off 1=On
10101# Spare
10102#
10103# 6 Aux Parity 0=Odd 1=Even
10104# Aux Parity 0=Off 1=On
10105# Aux Bits/Char 0=7 1=8
10106# CRT Saver 0=Off 1=On
10107# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding.
10108dm80|dmdt80|dt80|datamedia dt80/1:\
10109 :cd=\E[J:ce=\E[K:cl=\E[2J\E[H:cm=%i\E[%d;%dH:do=^J:\
10110 :ho=\E[H:me=\E[m:nd=\E[C:pf=\E[4i:po=\E[5i:ps=\E[0i:\
10111 :se=\E[m:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m:tc=vt100:
10112# except in 132 column mode, where it needs a little padding.
10113# This is still less padding than the vt100, and you can always turn on
10114# the ^S/^Q handshaking, so you can use vt100 flavors for things like
10115# reverse video.
10116dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode:\
10117 :co#132:\
10118 :cd=20\E[0J:ce=20\E[0K:cl=50\E[H\E[2J:cm=5\E[%i%d;%dH:\
10119 :do=^J:up=5\E[A:tc=dm80:
10120# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
10121dt80-sas|Datamedia DT803/DTX for SAS usage:\
10122 :am:bw:\
10123 :co#80:li#24:\
10124 :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\
10125 :ae=\EG:al=\EL:as=\EF:bl=^G:cd=^K:ce=^]:cl=^L:\
10126 :cm=\E=%r%+ %+ :cr=^M:\
10127 :..cs=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2:\
10128 :ct=\E'0:dl=\EM:do=\EB:ff=^L:ho=^Y:is=\E)0\E<\EP\E'0\E$2:\
10129 :kC=^L:kE=^]:kS=^K:kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:me=^X:\
10130 :mr=\E$2\004:nd=^\:pf=^O:po=^N:se=^X:sf=\EB:so=\E$2\004:\
10131 :sr=\EI:st=\E'1:ta=^I:up=^_:
10132
10133# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL
10134# These aren't end-all Excel termcaps; but do insert/delete char/line
10135# and name some of the extra function keys. (Mike Feldman ccvaxa!feldman)
10136# The naming convention has been bent somewhat, with the use of E? (where
10137# E is for 'Excel') as # a name. This was done to distinguish the entries
10138# from the other Datamedias in use here, and yet to associate a model of
10139# the Excel terminals with the regular datamedia terminals that share
10140# major characteristics.
10141excel62|excel64|datamedia Excel 62:\
10142 :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\
10143 :k9=\EOy:kb=^H:kd=^J:kl=^H:tc=dt80:
10144excel62-w|excel64-w|datamedia Excel 62 in 132 char mode:\
10145 :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\
10146 :k9=\EOy:kb=^H:kd=^J:kl=^H:tc=dt80w:
10147excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode:\
10148 :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\
10149 :k9=\EOy:kb=^H:kd=^J:kl=^H:vb=\E[?5l\E[?5h:tc=dt80:
10150
10151#### Falco
10152#
10153# Falco Data Products
10154# 440 Potrero Avenue
10155# Sunnyvale, CA 940864-196
10156# Vox: (800)-325-2648
10157# Fax: (408)-745-7860
10158# Net: techsup@charm.sys.falco.com
10159#
10160# Current Falco models as of 1995 are generally ANSI-compatible and support
10161# emulations of DEC VT-series, Wyse, and Televideo types.
10162#
10163
10164# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info
10165# This terminal was released around 1983 and was discontinued long ago.
10166# The standout and underline highlights are the same.
10167falco|ts1|ts-1|falco ts-1:\
10168 :am:bs:\
10169 :co#80:it#8:li#24:\
10170 :al=\EE:bl=^G:cd=\EY:ce=\ET\EG0\010:cl=\E*:cm=\E=%+ %+ :\
10171 :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:is=\Eu\E3:\
10172 :k0=^A0\r:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:me=\Eg0:nd=^L:\
10173 :se=\Eg0:sf=^J:so=\Eg1:ta=^I:ue=\Eg0:up=^K:us=\Eg1:
10174falco-p|ts1p|ts-1p|falco ts-1 with paging option:\
10175 :am:bs:da:db:mi:ms:ul:\
10176 :co#80:it#8:li#24:\
10177 :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET\EG0\010\Eg0:cl=\E*:\
10178 :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=\E[B:ei=\Er:im=\Eq:\
10179 :is=\EZ\E3\E_c:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
10180 :le=^H:me=\Eg0:nd=\E[C:se=\Eg0:sf=^J:so=\Eg4:ta=^I:te=\E_b:\
10181 :ti=\E_d:ue=\Eg0:up=\E[A:us=\Eg1:
10182# (ts100: I added <rmam>/<smam> based on the init string -- esr)
10183ts100|ts100-sp|falco ts100-sp:\
10184 :am:mi:ms:xn:xo:\
10185 :co#80:it#8:li#24:vt#3:\
10186 :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\
10187 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
10188 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
10189 :ae=^O:al=\E~E:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
10190 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
10191 :ct=\E[3g:dc=\E~W:dl=\E~R:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\
10192 :i1=\E~)\E~ea:ic=\E~Q:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\
10193 :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\
10194 :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
10195 :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\
10196 :nd=\E[C:rc=\E8:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
10197 :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>:\
10198 :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\
10199 :ue=\E[m:up=\E[A:us=\E[4m:
10200ts100-ctxt|falco ts-100 saving context:\
10201 :te=\E~_b:ti=\E~_d\E[2J:tc=ts100:
10202
10203#### Florida Computer Graphics
10204#
10205
10206# Florida Computer Graphics Beacon System, using terminal emulator program
10207# "host.com", as provided by FCG. This description is for an early release
10208# of the "host" program. Known bug: :cd: clears the whole screen, so it's
10209# commented out.
10210
10211# From: David Bryant <cbosg!djb> 1/7/83
10212beacon|FCG Beacon System:\
10213 :am:da:db:\
10214 :co#80:li#32:\
10215 :al=\EE:bl=\ESTART\r\E37\r\EEND\r:ce=\ET:cl=\EZ:\
10216 :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=\EH:ic=\EQ:\
10217 :im=:le=^H:mb=\ESTART\r\E61,1\r\EEND\r:\
10218 :me=\ESTART\r\E78\r\E70,0\r\EEND\r:\
10219 :mr=\ESTART\r\E59,1\r\EEND\r:nd=\EV:\
10220 :se=\ESTART\r\E70,0\r\EEND\r:sf=^J:\
10221 :so=\ESTART\r\E70,6\r\EEND\r:te=:\
10222 :ti=\ESTART\r\E2,0\r\E12\r\EEND\r:\
10223 :ue=\ESTART\r\E60,0\r\EEND\r:up=\EU:\
10224 :us=\ESTART\r\E60,1\r\EEND\r:
10225
10226#### Fluke
10227#
10228
10229# The f1720a differences from ANSI: no auto margin, destructive
10230# tabs, # of lines, funny highlighting and underlining
10231f1720|f1720a|fluke 1720A:\
10232 :xt:\
10233 :co#80:li#16:sg#1:ug#1:\
10234 :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
10235 :do=\E[B:is=\E[H\E[2J:kd=^]:kl=^_:kr=^^:ku=^\:le=^H:me=\E[m:\
10236 :nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:\
10237 :us=\E[4m:
10238
10239#### Liberty Electronics (Freedom)
10240#
10241# Liberty Electronics
10242# 48089 Fremont Blvd
10243# Fremont CA 94538
10244# Vox: (510)-623-6000
10245# Fax: (510)-623-7021
10246
10247# From: <faletti@berkeley.edu>
10248# (f100: added empty <acsc> to suppress a tic warning;
10249# made this relative to adm+sgr -- note that <invis> isn't
10250# known to work for f100 but does on the f110. --esr)
10251f100|freedom|freedom100|freedom model 100:\
10252 :am:bs:bw:hs:mi:ms:xo:\
10253 :co#80:li#24:\
10254 :ac=:ae=\E$:al=\EE:as=\E%%%:bl=^G:bt=\EI:cd=\EY:ce=\ET:\
10255 :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:cv=\E[%+ :\
10256 :dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:ho=^^:im=\Eq:\
10257 :ip=:is=\Eg\Ef\r\Ed:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
10258 :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\
10259 :kB=\EI:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:\
10260 :sr=\Ej:st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:tc=adm+sgr:
10261f100-rv|freedom-rv|freedom 100 in reverse video:\
10262 :is=\Eg\Ef\r\Eb:vb=\Ed\Eb:tc=f100:
10263# The f110 and f200 have problems with vi(1). They use the ^V
10264# code for the down cursor key. When kcud1 is defined in terminfo
10265# as ^V, the Control Character Quoting capability (^V in insert mode)
10266# is lost! It cannot be remapped in vi because it is necessary to enter
10267# a ^V to to quote the ^V that is being remapped!!!
10268#
10269# f110/f200 users will have to decide whether
10270# to lose the down cursor key or the quoting capability. We will opt
10271# initially for leaving the quoting capability out, since use of VI
10272# is not generally applicable to most interactive applications
10273# (f110: added :ta:, :kh: & <kcbt> from f100 -- esr)
10274f110|freedom110|Liberty Freedom 110:\
10275 :bw@:es:\
10276 :it#8:ws#80:\
10277 :ae=\E%%%:al=\EE:as=\E$:dl=\ER:do=^V:ds=\Ef\r:ei=\Er\EO:\
10278 :im=\EO\Eq:ip@:is@:k0=^AI\r:k;@:kA=\EE:kC=^^:kD=\EW:kE=\ET:\
10279 :kI=\EQ:kL=\ER:kS=\EY:mb=\EG2:md=\EG0:mh=\EG@:pf=\Ea:po=\E`:\
10280 :so=\EG<:sr=\EJ:ts=\Ef:vb=\Eb\Ed:ve=\E.2:vi=\E.1:vs=\E.2:\
10281 :tc=f100:
10282f110-14|Liberty Freedom 110 14inch:\
10283 :dc@:tc=f110:
10284f110-w|Liberty Freedom 110 - 132 cols:\
10285 :co#132:tc=f110:
10286f110-14w|Liberty Freedom 110 14in/132 cols:\
10287 :co#132:\
10288 :dc@:tc=f110:
10289# (f200: added <acsc> to suppress tic warnings re :as:/:ae: --esr)
10290f200|freedom200|Liberty Freedom 200:\
10291 :am:bs:es:hs:mi:ms:xo:\
10292 :co#80:it#8:li#24:ws#80:\
10293 :ac=:ae=\E%%%:al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:\
10294 :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:cs=\Em0%+ %+ :ct=\E3:\
10295 :cv=\E[%+ :dc=\EW:dl=\ER:do=^V:ds=\Ef\r:ei=\Er:fs=^M:ho=^^:\
10296 :im=\Eq:k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
10297 :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kC=^^:\
10298 :kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:\
10299 :ku=^K:le=^H:mb=\EG2:md=\EG0:mh=\EG@:nd=^L:pf=\Ea:po=\E`:\
10300 :sf=^J:so=\EG<:sr=\EJ:st=\E1:ts=\Ef:up=^K:vb=\Eo\En:ve=\E.1:\
10301 :vi=\E.0:vs=\E.1:tc=adm+sgr:
10302f200-w|Liberty Freedom 200 - 132 cols:\
10303 :co#132:tc=f200:
10304# The f200 has the ability to reprogram the down cursor key. The key is
10305# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM,
10306# so powering the terminal off and on will not cause the change to be lost.
10307f200vi|Liberty Freedom 200 for vi:\
10308 :kd=^J:vb=\Eb\Ed:tc=f200:
10309f200vi-w|Liberty Freedom 200 - 132 cols for vi:\
10310 :co#132:tc=f200vi:
10311
10312#### GraphOn (go)
10313#
10314# Graphon Corporation
10315# 544 Division Street
10316# Campbell, CA 95008
10317# Vox: (408)-370-4080
10318# Fax: (408)-370-5047
10319# Net: troy@graphon.com (Troy Morrison)
10320#
10321#
10322# The go140 and go225 have been discontinued. GraphOn now makes X terminals,
10323# including one odd hybrid that starts out life on power-up as a character
10324# terminal, than can be switched to X graphics mode (driven over the serial
10325# line) by an escape sequence. No info on this beast yet.
10326# (go140: I added <rmam>/<smam> based on the init string -- esr)
10327go140|graphon go-140:\
10328 :bs:\
10329 :co#80:it#8:li#24:\
10330 :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=10\E[J:ce=\E[K:\
10331 :cl=10\E[H\E[2J:cm=\E[%i%2;%2H:dc=\E[P:dl=\E[M:ei=\E[4l:\
10332 :if=/usr/share/tabset/vt100:im=\E[4h:\
10333 :is=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q:\
10334 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\EOB:ke=\E[?1l\E>:\
10335 :kh=\E[H:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
10336 :me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\
10337 :up=\E[A:us=\E[4m:
10338go140w|graphon go-140 in 132 column mode:\
10339 :am:\
10340 :co#132:\
10341 :is=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q:\
10342 :tc=go140:
10343# Hacked up vt200 termcap to handle GO-225/VT220
10344# From: <edm@nwnexus.WA.COM>
10345# (go225: I added <rmam>/<smam> based on the init string -- esr)
10346go225|go-225|Graphon 225:\
10347 :am:bs:mi:xn:\
10348 :co#80:it#8:li#25:vt#3:\
10349 :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
10350 :cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:\
10351 :ei=\E[4l:ho=\E[H:im=\E[4h:\
10352 :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k1=\EOP:k2=\EOQ:\
10353 :k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\
10354 :kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\
10355 :mr=\E[7m:nd=\E[C:r1=\E[!p\E[?7h\E[2;1;1#w:rc=\E8:\
10356 :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[27m:sf=\ED:\
10357 :so=\E[7m:sr=\EM:ta=^I:te=\E[!p\E[?7h\E[2;1;1#w:\
10358 :ti=\E[2;0#w\E[1;25r:ue=\E[24m:up=\E[A:us=\E[4m:
10359
10360#### Harris (Beehive)
10361#
10362# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine.
10363# Their terminal group is ancient history now (1995) though the parent
10364# company is still in business.
10365#
10366
10367# Beehive documentation is undated and marked Preliminary and has no figures
10368# so we must have early Superbee2 (Model 600, according to phone conversation
10369# with mfr.). It has proved reliable except for some missing padding
10370# (notably after \EK and <nl> at bottom of screen).
10371#
10372# The key idea is that AEP mode is poison for :cm: & that US's in
10373# the local memory should be avoided like the plague. That means
10374# that the 2048 character local buffer is used as 25 lines of 80
10375# characters, period. No scrolling local memory, folks. It also
10376# appears that we cannot use naked INS LINE feature since it uses
10377# US. The sbi fakes :al: with an 80-space insert that may be too
10378# slow at low speeds; also spaces get converted to \040 which is
10379# too long for some programs (not vi). DEL LINE is ok but slow.
10380#
10381# The <nl> string is designed for last line of screen ONLY; cup to
10382# 25th line corrects the motion inherent in scrolling to Page 1.
10383#
10384# There is one understood bug. It is that the screen appears to
10385# pop to a new (blank) page after a :nw:, or leave a half-line
10386# ellipsis to a quad that is the extra 48 memory locations. The
10387# data received is dumped into memory but not displayed. Not to
10388# worry if :cm: is being used; the lines not displayed will be,
10389# whenever the cursor is moved up there. Since :cm: is addressed
10390# relative to MEMORY of window, nothing is lost; but beware of
10391# relative cursor motion (:up:,:do:,:nd:,:le:). Recommended,
10392# therefore, is setenv MORE -c .
10393#
10394# WARNING: Not all features tested.
10395#
10396# Timings are assembled from 3 sources. Some timings may reflect
10397# SB2/Model 300 that were used if more conservative.
10398# Tested on a Model 600 at 1200 and 9600 bd.
10399#
10400# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly
10401# placed on the keyboard and useless because of AEP, is made
10402# into a backspace key. In use ESC must be pressed twice (to send)
10403# and sending ^C must be prefixed by ESC to avoid that weird
10404# transmit mode associated with ENTER key.
10405#
10406# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across
10407# the screen, then it has dropped into ENTER mode; hit
10408# RESET--ONLINE--!tset.
10409#
10410# As delivered this machine has a FATAL feature that will throw
10411# it into that strange transmit state (SPOW) if the space bar is
10412# hit after a CR is received, but before receiving a LF (or a
10413# few others).
10414#
10415# The circuits MUST be modified to eliminate the SPOW latch.
10416# This is done by strapping on chip A46 of the I/O board; cut
10417# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that
10418# chip. This mod has been checked out on a Mod 600 of Superbee II.
10419# With this modification absurdly high timings on cr are
10420# unnecessary.
10421#
10422# NOTE WELL that the rear panel switch should be set to CR/LF,
10423# not AEP!
10424#
10425sb1|beehive superbee:\
10426 :am:bs:bw:da:db:mi:ul:xb:\
10427 :co#80:li#25:sg#1:ug#1:\
10428 :al=\EN\EL\EQ \EP \EO\ER\EA:\
10429 :bl=^G:bt=\E`:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EF%r%03%03:cr=\r:\
10430 :ct=\E3:dc=\EP:dl=\EM:do=^J:ei=\ER:ho=\EH:im=\EQ\EO:\
10431 :is=\EE\EX\EZ\EO\Eb\Eg\ER:k0=\E2:k1=\Ep:k2=\Eq:k3=\Er:\
10432 :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:k9=\E1:kE=\EK:kI=\EQ\EO:\
10433 :kL=\EM:kM=\ER:kS=\EJ:kb=^_:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\
10434 :ku=\EA:l0=TAB CLEAR:l9=TAB SET:le=^H:me=\E_3:nd=\EC:\
10435 :se=\E_3:sf=^J:so=\E_1:st=\E1:ta=^I:te=:ti=\EO:ue=\E_3:\
10436 :up=\EA:us=\E_0:
10437sbi|superbee|beehive superbee at Indiana U.:\
10438 :xb:\
10439 :al=1\EN\EL\EQ \EP \EO\ER\EA:cr=\r:tc=sb1:
10440# Alternate (older) description of Superbee - f1=escape, f2=^C.
10441# Note: there are at least 3 kinds of superbees in the world. The sb1
10442# holds onto escapes and botches ^C's. The sb2 is the best of the 3.
10443# The sb3 puts garbage on the bottom of the screen when you scroll with
10444# the switch in the back set to CRLF instead of AEP. This description
10445# is tested on the sb2 but should work on all with either switch setting.
10446# The f1/f2 business is for the sb1 and the :xb: can be taken out for
10447# the other two if you want to try to hit that tiny escape key.
10448# This description is tricky: being able to use cup depends on there being
10449# 2048 bytes of memory and the hairy <nl> string.
10450superbee-xsb|beehive super bee:\
10451 :am:da:db:xb:\
10452 :co#80:it#8:li#25:\
10453 :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EF%r%3%3:cr=\r:ct=\E3:dc=\EP:\
10454 :dl=\EM:do=^J:ho=\EH:is=\EH\EJ:k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:\
10455 :k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\
10456 :ku=\EA:le=^H:me=\E_3:nd=\EC:se=\E_3:\
10457 :sf=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET:so=\E_1:st=\E1:\
10458 :ta=^I:up=\EA:ve=^J:
10459# This loses on lines > 80 chars long, use at your own risk
10460superbeeic|super bee with insert char:\
10461 :ei=\ER:ic=:im=\EQ:tc=superbee-xsb:
10462sb2|sb3|fixed superbee:\
10463 :xb@:tc=superbee:
10464
10465#### Beehive Medical Electronics
10466#
10467# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999):
10468# Regarding your question though; Beehive terminals weren't made by Harris.
10469# They were made by Beehive Medical Electronics in Utah. They went out of
10470# business in the early '80s.
10471#
10472# (OK, then, I don't know why a couple of these say "harris beehive".)
10473#
10474
10475# Reports are that most of these Beehive entries (except superbee) have not
10476# been tested and do not work right. :se: is a trouble spot. Be warned.
10477
10478# (bee: :ic: was empty, which is obviously bogus -- esr)
10479beehive|bee|harris beehive:\
10480 :am:bs:mi:\
10481 :co#80:li#24:\
10482 :al=\EL:bt=\E>:cd=\EJ:ce=\EK:cl=\EE:cm=\EF%+ %+ :dc=\EP:\
10483 :dl=\EM:do=\EB:ei=\E@:ho=\EH:im=\EQ:kA=\EL:kB=\E>:kC=\EE:\
10484 :kD=\EP:kE=\EK:kI=\EQ:kL=\EM:kM=\E@:kb=^H:kd=\EB:kh=\EH:\
10485 :kl=\ED:kr=\EC:ku=\EA:le=^H:me=\Ed@:nd=\EC:se=\Ed@:so=\EdP:\
10486 :ue=\Ed@:up=\EA:us=\Ed`:
10487# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs.
10488# good grief - does this entry make :sg:/:ug: when it doesn't have to?
10489# look at those spaces in :se:/:so:. Seems strange to me...
10490# (beehive: :if=/usr/share/tabset/beehive: removed, no such file. If you
10491# really care, cook up one using ^F -- esr)
10492beehive3|bh3m|beehiveIIIm|harris beehive 3m:\
10493 :am:bs:\
10494 :co#80:it#8:li#20:\
10495 :al=\023:bl=^G:cd=^R:ce=^P:cl=^E^R:cr=^M:dl=\021:do=^J:ho=^E:\
10496 :le=^H:ll=^E^K:nd=^L:se=\s^_:sf=^J:so=^]\s:st=^F:ta=^I:up=^K:
10497beehive4|bh4|beehive 4:\
10498 :am:\
10499 :co#80:li#24:\
10500 :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cr=^M:do=^J:ho=\EH:le=\ED:nd=\EC:\
10501 :sf=^J:up=\EA:
10502# There was an early Australian kit-built computer called a "Microbee".
10503# It's not clear whether this is for one of those or for a relative
10504# of the Beehive.
10505microb|microbee|micro bee series:\
10506 :am:bs:\
10507 :co#80:it#8:li#24:\
10508 :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EF%+ %+ :cr=^M:do=^J:k1=\Ep:\
10509 :k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:k9=\Ex:\
10510 :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:me=\Ed@:nd=\EC:\
10511 :se=\Ed@:sf=^J:so=\s\EdP:ta=^I:ue=\Ed@:up=\EA:us=\Ed`:
10512
10513# 8675, 8686, and bee from Cyrus Rahman
10514# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr)
10515ha8675|harris 8675:\
10516 :F1=^W:F2=\ER:F3=\EE:F4=\EI:F5=\Ei:F6=\Eg:\
10517 :is=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU:k1=^F:k2=^P:k3=^N:\
10518 :k4=^V:k5=^J:k6=^T:k7=^H:k8=\177:k9=\Ee:k;=\Ed:tc=bee:
10519# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation
10520# in :is: -- esr)
10521ha8686|harris 8686:\
10522 :F1=\EW:F2=\002\E{\003:F3=\002\E|\003:F4=\002\E}\003:\
10523 :F5=\002\E~\003:F6=\002\E\177\003:\
10524 :is=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#:\
10525 :k1=\002\Ep\003:k2=\002\Eq\003:k3=\002\Er\003:\
10526 :k4=\002\Es\003:k5=\E3:k6=\EI:k7=\ER:k8=\EJ:k9=\E(:k;=\Ej:\
10527 :tc=bee:
10528
10529#### Hazeltine
10530#
10531# Hazeltine appears to be out of the terminal business as of 1995. These
10532# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with
10533# Harris. They have a hazeltine.com domain (but no web page there ) and can
10534# be reached at:
10535#
10536# Hazeltine
10537# 450 East Pulaski Road
10538# Greenlawn, New York 11740
10539#
10540# As late as 1993, manuals for the terminal product line could still be
10541# purchased from:
10542#
10543# TRW Customer Service Division
10544# 15 Law Drive
10545# P.O. Box 2076
10546# Fairfield, NJ 07007-2078
10547#
10548# They're now (1998) a subsidiary of General Electric, operating under the
10549# marque "GEC-Marconi Hazeltine" and doing military avionics. Web page
10550# at <http://www.gec.com/cpd/1ncpd.htm#1.55>.
10551#
10552
10553# Since :nd: is blank, when you want to erase something you
10554# are out of luck. You will have to do ^L's a lot to
10555# redraw the screen. h1000 is untested. It doesn't work in
10556# vi - this terminal is too dumb for even vi. (The code is
10557# there but it isn't debugged for this case.)
10558hz1000|hazeltine 1000:\
10559 :bs:\
10560 :co#80:li#12:\
10561 :bl=^G:cl=^L:cr=^M:do=^J:ho=^K:le=^H:nd=\s:sf=^J:
10562# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
10563hz1420|hazeltine 1420:\
10564 :am:bs:\
10565 :co#80:li#24:\
10566 :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%+ :\
10567 :cr=^M:dl=\E^S:do=^J:le=^H:nd=^P:se=\E^Y:sf=^J:so=\E^_:ta=^N:\
10568 :up=\E^L:
10569# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents
10570# freakout with out-of-range args and tn3270. No hz since it needs to
10571# receive tildes.
10572hz1500|hazeltine 1500:\
10573 :am:bs:hz:\
10574 :co#80:li#24:\
10575 :al=~\032:bl=^G:cd=~\030:ce=~^O:cl=~^\:\
10576 :cm=~\021%r%>^^ %+`%+`:cr=^M:dl=~\023:do=~^K:ho=~^R:kd=^J:\
10577 :kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:nd=^P:se=~^Y:sf=^J:so=~^_:\
10578 :up=~^L:
10579# h1510 assumed to be in sane escape mode. Else use h1500.
10580# (h1510: early versions of this entry apparently had ":se=\E^_:,
10581# :so=\E^Y:, but these caps were commented out in 8.3; also,
10582# removed incorrect and overridden ":do=^J:" -- esr)
10583hz1510|hazeltine 1510:\
10584 :am:bs:\
10585 :co#80:li#24:\
10586 :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%.:\
10587 :cr=^M:dl=\E^S:do=\E^K:le=^H:nd=^P:sf=^J:up=\E^L:
10588# Hazeltine 1520
10589# The following switch settings are assumed for normal operation:
10590# FULL CR U/L_CASE ESCAPE
10591# FORMAT_OFF EOM_A_OFF EOM_B_OFF WRAPAROUND_ON
10592# Other switches may be set for operator convenience or communication
10593# requirements.
10594hz1520|Hazeltine 1520:\
10595 :am:bs:bw:ms:\
10596 :co#80:li#24:\
10597 :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%.:\
10598 :cr=^M:dl=\E^S:do=^J:ho=\E^R:kA=\E^Z:kC=\E^\:kE=\E^O:\
10599 :kL=\E^S:kS=\E^X:kb=^H:kd=\E^K:kh=\E^R:kl=^H:kr=^P:ku=\E^L:\
10600 :le=^H:md=\E^_:me=\E^Y:nd=^P:r1=\E$\E\005\E?\E\031:\
10601 :se=\E^Y:sf=^J:so=\E^_:up=\E^L:
10602# This version works with the escape switch off
10603# (h1520: removed incorrect and overridden ":do=^J:" -- esr)
10604hz1520-noesc|hazeltine 1520:\
10605 :am:hz:\
10606 :co#80:li#24:\
10607 :al=~^Z:bl=^G:cd=~^X:ce=~^O:cl=~^\:cm=~\021%r%.%.:cr=^M:\
10608 :dl=~^S:do=~^K:ho=~^R:le=^H:nd=^P:se=~^Y:sf=^J:so=~^_:up=~^L:
10609# Note: the h1552 appears to be the first Hazeltine terminal which
10610# is not braindamaged. It has tildes and backprimes and everything!
10611# Be sure the auto lf/cr switch is set to cr.
10612hz1552|hazeltine 1552:\
10613 :bs:\
10614 :al=\EE:dl=\EO:do=^J:k1=\EP:k2=\EQ:k3=\ER:l1=blue:l2=red:\
10615 :l3=green:tc=vt52:
10616hz1552-rv|hazeltine 1552 reverse video:\
10617 :do=^J:se=\ET:so=\ES:tc=hz1552:
10618# Note: h2000 won't work well because of a clash between upper case and ~'s.
10619hz2000|hazeltine 2000:\
10620 :am:bs:nc:\
10621 :co#74:li#27:\
10622 :al=~\032:bl=^G:cl=~\034:cm=~\021%r%.%.:dl=~\023:do=^J:\
10623 :ho=~^R:le=^H:pc=\177:sf=^J:
10624# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote:
10625# I tested this termcap entry for the Hazeltine Esprit with vi. It seems
10626# to work ok. There is one problem though if one types a lot of garbage
10627# characters very fast vi seems not able to keep up and hangs while trying
10628# to insert. That's in insert mode while trying to insert in the middle of
10629# a line. It might be because the Esprit doesn't have insert char and delete
10630# char as a built in function. Vi has to delete to end of line and then
10631# redraw the rest of the line.
10632esprit|Hazeltine Esprit I:\
10633 :am:bs:bw:\
10634 :co#80:li#24:\
10635 :al=\E^Z:bl=^G:bt=\E^T:cd=\E^W:ce=\E^O:cl=\E^\:\
10636 :cm=\E\021%r%.%.:cr=^M:dl=\E^S:do=\E^K:ho=\E^R:is=\E?:\
10637 :k0=^B0^J:k1=^B1^J:k2=^B2^J:k3=^B3^J:k4=^B4^J:k5=^B5^J:\
10638 :k6=^B6^J:k7=^B7^J:k8=^B8^J:k9=^B9^J:kb=^H:kd=\E^K:ke=\E>:\
10639 :kh=\E^R:kl=^H:kr=^P:ks=\E<:ku=\E^L:l0=0:l1=1:l2=2:l3=3:l4=4:\
10640 :l5=5:l6=6:l7=7:l8=8:l9=9:le=^H:nd=^P:se=\E^Y:sf=^J:so=\E^_:\
10641 :up=\E^L:
10642esprit-am|hazeltine esprit auto-margin:\
10643 :am:tc=esprit:
10644# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL
10645# Vi it seems always wants to send a control J for "do" and it turned out
10646# that the terminal would work somewhat if the auto LF/CR was turned off.
10647# (hmod1: removed :dn=~^K: -- esr)
10648hmod1|Hazeltine Modular 1:\
10649 :am:bs:hz:\
10650 :co#80:li#24:\
10651 :al=~^Z:bl=^G:bt=~^T:cl=~^\:cm=~\021%r%.%.:cr=^M:dl=~^S:\
10652 :do=~^K:ho=~^R:kd=~^K:kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:me=~^Y:\
10653 :nd=^P:rc=~^Q:sc=~^E:se=~^Y:sf=^J:so=~^_:up=~^L:
10654#
10655# Hazeltine Executive 80 Model 30 (1554?)
10656# from Will Martin <control@ALMSA-1.ARPA> via BRL
10657# Like VT100, except for different "am" behavior.
10658hazel|exec80|h80|he80|Hazeltine Executive 80:\
10659 :am:bs:pt:\
10660 :co#80:it#8:li#24:vt#3:\
10661 :bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\
10662 :cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:do=^J:ho=\E[H:\
10663 :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
10664 :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
10665 :ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\
10666 :nd=2\E[C:nl=^J:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
10667 :rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:se=2\E[m:\
10668 :so=2\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m:
10669
10670#### IBM
10671#
10672
10673ibm327x|line mode IBM 3270 style:\
10674 :gn:\
10675 :ce=^M:cl=^M^J:ho=^M:
10676
10677ibm3101|i3101|IBM 3101-10:\
10678 :am:bs:xo:\
10679 :co#80:li#24:\
10680 :bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EY%+ %+ :cr=^M:ct=\EH:do=^J:\
10681 :ho=\EH:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:nw=^M^J:\
10682 :sf=^J:st=\E0:up=\EA:
10683ibm3151|IBM 3151 display:\
10684 :ae=\E>B:as=\E>A:is=\E S:me=\E4@\E>B:rs=\E S:s0=\E>B:\
10685 :..sa=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;:\
10686 :te=\E>B:ti=\E>B:tc=ibm3162:
10687# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
10688# removed kend, knp, kpp -TD
10689ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display:\
10690 :am:bs:mi:ms:\
10691 :co#80:it#8:li#24:\
10692 :F1=\Ek\r:F2=\El\r:F3=\E!a\r:F4=\E!b\r:F5=\E!c\r:\
10693 :F6=\E!d\r:F7=\E!e\r:F8=\E!f\r:F9=\E!g\r:FA=\E!h\r:\
10694 :FB=\E!i\r:FC=\E!j\r:FD=\E!k\r:FE=\E!l\r:\
10695 :ac=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370:\
10696 :bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:dc=\EQ:\
10697 :dl=\EO:do=\EB:ho=\EH:k1=\Ea\r:k2=\Eb\r:k3=\Ec\r:k4=\Ed\r:\
10698 :k5=\Ee\r:k6=\Ef\r:k7=\Eg\r:k8=\Eh\r:k9=\Ei\r:k;=\Ej\r:\
10699 :kA=\EN:kB=\E2:kC=\EL\r:kD=\EQ:kE=\EI:kI=\EP \010:kL=\EO:\
10700 :kS=\EJ:kT=\E0:ka=\E 1:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\
10701 :kt=\E1:ku=\EA:le=\ED:mb=\E4D:md=\E4H:me=\E4@\E<@:mk=\E4P:\
10702 :mr=\E4A:nd=\EC:pf=^P^T:po=^P^R:\
10703 :..sa=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;:\
10704 :se=\E4@:sf=^J:so=\E4A:te=\E>A:ti=\E>A:ue=\E4@:up=\EA:\
10705 :us=\E4B:
10706
10707ibm3161-C|IBM 3161-C NLS terminal using cartridge:\
10708 :s0=\E>B:s1=\E>A:te=\E>B:ti=\E>B:tc=ibm3161:
10709ibm3162|IBM 3162 display:\
10710 :al=\EN:mb=\E4$a:md=\E4(a:me=\E4@:mk=\E40a:mr=\E4!a:\
10711 :se=\E4>b:so=\E4!a:ue=\E4=b:us=\E4"a:tc=ibm3161-C:
10712
10713# This really should not use setab/setaf, but it is clear that the
10714# original terminfo does not toggle red/blue colors as in setb/setf.
10715ibm3164|i3164|IBM 3164:\
10716 :ms:\
10717 :Co#8:pa#64:\
10718 :AB=\E4 %+@:..AF=\E4%?%p1%t %p1%{32}%+%c%e!'%;@:\
10719 :op=\E4 "@:s0=\E>B:s1=\E>A:te=\E!9(N\E>B:ti=\E!9/N\E>B:\
10720 :tc=ibm3161:
10721
10722# (untranslatable capabilities removed to fit entry within 1023 bytes)
10723# (sgr removed to fit entry within 1023 bytes)
10724# (acsc removed to fit entry within 1023 bytes)
10725# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
10726ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display:\
10727 :am:bw:ms:xo:\
10728 :co#80:it#8:li#25:\
10729 :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\
10730 :SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:\
10731 :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\
10732 :do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:is=\Ec:\
10733 :k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\
10734 :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:kD=\E[P:\
10735 :kI=\E[139q:kN=\E[154q:kP=\E[150q:kb=^H:kd=\E[B:kh=\E[H:\
10736 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\
10737 :mr=\E[7m:nd=\E[C:rs=\Ec:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:\
10738 :ue=\E[m:up=\E[A:us=\E[4m:
10739
10740ibmaed|IBM Experimental display:\
10741 :am:bs:eo:ms:\
10742 :co#80:it#8:li#52:\
10743 :al=\EN:cd=\EJ:ce=\EI:cl=\EH\EK:cm=\EY%+ %+ :dc=\EQ:dl=\EO:\
10744 :do=\EB:ei=:ho=\EH:ic=\EP:im=:kb=^H:kd=\EB:kl=\ED:kr=\EC:\
10745 :ku=\EA:le=^H:me=\E0:nd=\EC:se=\E0:so=\E0:ta=^I:up=\EA:\
10746 :vb=\EG:
10747ibm-apl|apl|IBM apl terminal simulator:\
10748 :li#25:tc=dm1520:
10749# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
10750# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr)
10751ibmmono|IBM workstation monochrome:\
10752 :es:hs:\
10753 :al=\EL:dl=\EM:ds=\Ej\EY8 \EI\Ek:fs=\Ek:k0=\E<:k1=\ES:\
10754 :k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:k9=\EY:\
10755 :kF=\EE:kI=\0:kN=\EE:kP=\Eg:kR=\EG:kb=^H:kh=\EH:l0=f10:\
10756 :md=\EZ:me=\Ew\Eq\Ez\EB:mk=\EF\Ef0;\Eb0;:mr=\Ep:se=\Ez:\
10757 :so=\EZ:sr=\EA:..ts=\Ej\EY8%+ \Eo:ue=\Ew:us=\EW:\
10758 :tc=ibm3101:
10759ibmega|IBM Enhanced Color Display:\
10760 :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:\
10761 :tc=ibmmono:
10762# This color scheme is assumed in some recent IBM terminal descriptions
10763# (green on black, emulated on a 16-color terminal).
10764ibm+color|IBM color definitions:\
10765 :Co#8:NC#3:pa#64:\
10766 :..Sb=\E[%?%p1%{0}%=%t40m%e%p1%{1}%=%t41m%e%p1%{2}%=%t42m%e%p1%{3}%=%t43m%e%p1%{4}%=%t44m%e%p1%{5}%=%t45m%e%p1%{6}%=%t46m%e%p1%{7}%=%t107m%;:\
10767 :..Sf=\E[%?%p1%{0}%=%t30m%e%p1%{1}%=%t31m%e%p1%{2}%=%t32m%e%p1%{3}%=%t33m%e%p1%{4}%=%t34m%e%p1%{5}%=%t35m%e%p1%{6}%=%t36m%e%p1%{7}%=%t97m%;:\
10768 :op=\E[32m\E[40m:
10769ibm5154|IBM 5154 Color display:\
10770 :Co#8:NC@:pa#64:\
10771 :AB=\E[4%dm:AF=\E[3%dm:md@:tc=ibm5151:tc=ibm+color:
10772ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline:\
10773 :se=\EB:so=\EF\Ef3;:ue=\EB:us=\EF\Ef2;:tc=ibmmono:
10774ibmvga-c|IBM VGA display color termcap:\
10775 :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:\
10776 :tc=ibmega-c:
10777ibmvga|IBM VGA display:\
10778 :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ibmega:
10779# ibmapa* and ibmmono entries come from ACIS 4.3 distribution
10780rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display:\
10781 :li#32:\
10782 :ds=\Ej\EY@ \EI\Ek:..ts=\Ej\EY@%+ \Eo:tc=ibmmono:
10783ibm6155|IBM 6155 Black & White display:\
10784 :mb@:md@:tc=ibm5151:
10785# Advanced Monochrome (6153) and Color (6154) Graphics Display:
10786ibmapa8c|ibmapa8|IBM 6154 Advanced Graphics Display:\
10787 :li#31:\
10788 :ds=\Ej\EY? \EI\Ek:..ts=\Ej\EY?%+ \Eo:tc=ibmmono:
10789ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display:\
10790 :li#31:\
10791 :ds=\Ej\EY? \EI\Ek:mh=\EF\Ef7;:..ts=\Ej\EY?%+ \Eo:\
10792 :tc=ibmega-c:
10793ibm6154|IBM 6154 Color displays:\
10794 :mb@:md=\E[12m:me=\E[0;10m:s0=\E[10m:s1=\E[11m:s2=\E[12m:\
10795 :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m:\
10796 :tc=ibm5154:
10797ibm6153|IBM 6153 Black & White display:\
10798 :mb@:md=\E[12m:me=\E[0;10m:s0=\E[10m:s1=\E[11m:s2=\E[12m:\
10799 :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m:\
10800 :tc=ibm5151:
10801ibm6153-90|IBM 6153 Black & White display:\
10802 :co#90:li#36:\
10803 :mb@:md@:tc=ibm5151:
10804ibm6153-40|IBM 6153 Black & White display:\
10805 :co#40:li#12:tc=ibm6153-90:
10806ibm8512|ibm8513|IBM color VGA Terminal:\
10807 :am:mi:ms:\
10808 :co#80:it#8:li#25:\
10809 :AL=\E[%dL:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\
10810 :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:cd=\E[J:\
10811 :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:dl=\E[M:dm=\E[4h:\
10812 :do=^J:ec=\E[%dX:ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:\
10813 :is=\Eb\E[m\017\E[?7h:k0=\E[010q:k1=\E[001q:k2=\E[002q:\
10814 :k3=\E[003q:k4=\E[004q:k5=\E[005q:k6=\E[006q:k7=\E[007q:\
10815 :k8=\E[008q:k9=\E[009q:kd=\E[B:kh=\E[H:ku=\E[A:le=\E[D:\
10816 :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
10817 :r1=\Eb\E[m\017\E[?7h\E[H\E[J:rc=\E[u:sc=\E[s:se=\E[m:\
10818 :so=\E[7m:te=\E[20h:ti=\E[20;4l\E[?7h\Eb:ue=\E[m:up=\E[A:\
10819 :us=\E[4m:tc=ibm8503:
10820hft-c|HFT with Color:\
10821 :Co#8:pa#64:\
10822 :AB=\E[4%dm:AF=\E[3%dm:ac=jjkkllmmnnqqttuuvvwwxx:\
10823 :me=\E[0m\E(B:s0=\E(B:s1=\E(0:tc=ibm5151:tc=ibm+color:
10824hft-c-old|HFT with Color PC850:\
10825 :Co#8:pa#64:\
10826 :AB=\E[4%dm:AF=\E[3%dm:tc=ibm5151:tc=ibm+color:
10827hft-old|AIWS High Function Terminal:\
10828 :am:xo:\
10829 :co#80:li#25:\
10830 :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
10831 :cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=\E6:ho=\E[H:ic=\E[@:im=\E6:\
10832 :k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\
10833 :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:kN=\E[153q:\
10834 :kP=\E[159q:ka=\E[010q:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\
10835 :kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mk=\E[8m:\
10836 :mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:ta=^I:ue=\E[m:\
10837 :up=\E[A:us=\E[4m:tc=ibm+color:
10838ibm-system1|system1|ibm system/1 computer:\
10839 :am:xt:\
10840 :co#80:li#24:\
10841 :bl=^G:cl=^Z:cm=\005%+ %+ :ho=^K:le=^H:nd=^\:sf=^J:up=^^:
10842# lft-pc850 : IBM Low Function Terminal Device
10843# lft "supports" underline, bold, and blink in the sense that the lft code
10844# sets all the right bits. HOWEVER, depending upon the adapter, these
10845# attributes may or may not be supported by the device driver.
10846# (untranslatable capabilities removed to fit entry within 1023 bytes)
10847# (sgr removed to fit entry within 1023 bytes)
10848# (acsc removed to fit entry within 1023 bytes)
10849# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
10850lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device:\
10851 :am:bw:ms:xo:\
10852 :co#80:it#8:li#25:\
10853 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
10854 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
10855 :ae=\E(B:al=\E[L:as=\E(0:bl=^G:bt=\E[Z:cd=\E[2J:ce=\E[0K:\
10856 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dc=\E[P:\
10857 :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:is=\Ec:\
10858 :k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\
10859 :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:kD=\E[P:\
10860 :kI=\E[139q:kN=\E[154q:kP=\E[150q:kb=^H:kd=\E[B:kh=\E[H:\
10861 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\
10862 :mr=\E[7m:nd=\E[C:rs=\Ec:se=\E[0m:sf=\ED:so=\E[7m:sr=\EL:\
10863 :ue=\E[0m:up=\E[A:us=\E[4m:
10864ibm5081|hft|IBM Megapel Color display:\
10865 :ac=jjkkllmmnnqqttuuvvwwxx:mb@:md@:me=\E[0m\E(B:s0=\E(B:\
10866 :s1=\E(0:tc=ibm5154:
10867ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display:\
10868 :es:hs:\
10869 :li#33:\
10870 :ds=\Ej\EYA \EI\Ek:fs=\Ek:..ts=\Ej\EYA%+ \Eo:\
10871 :tc=ibmega-c:
10872ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display:\
10873 :tc=hft-c:
10874ibm8514|IBM 8514/a color VGA display:\
10875 :es:hs:\
10876 :ds=\Ej\EYI \EI\Ek:fs=\Ek:..ts=\Ej\EYI%+ \Eo:tc=hft:
10877ibm8514-c|IBM 8514 color display with standout and underline:\
10878 :es:hs:\
10879 :li#41:\
10880 :cr=^M:do=^J:ds=\Ej\EYI \EI\Ek:fs=\Ek:kb=^H:kd=^J:kl=^H:\
10881 :nw=^M^J:sf=^J:ta=^I:..ts=\Ej\EYI%+ \Eo:tc=ibmega-c:
10882
10883#
10884# AIX entries. IBM ships these with AIX 3.2.5.
10885# -- added rc, sc based on manpage -TD
10886aixterm|IBM Aixterm Terminal Emulator:\
10887 :es:hs:\
10888 :ac=jjkkllmmnnqqttuuvvwwxx:ds=\E[?E:fs=\E[?F:md=\E[1m:\
10889 :me=\E[0;10m\E(B:rc=\E8:s0=\E(B:s1=\E(0:\
10890 :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;:\
10891 :sc=\E7:sr@:ts=\E[?%dT:tc=ibm6154:
10892aixterm-m|IBM AIXterm Monochrome Terminal Emulator:\
10893 :es:hs:\
10894 :ac=jjkkllmmnnqqttuuvvwwxx:ds=\E[?E:fs=\E[?F:md=\E[1m:\
10895 :me=\E[0;10m\E(B:s0=\E(B:s1=\E(0:\
10896 :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\
10897 :sr@:ts=\E[?%dT:tc=ibm6153:
10898aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator:\
10899 :es:hs:\
10900 :ds=\E[?E:fs=\E[?F:md=\E[1m:\
10901 :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\
10902 :sr@:ts=\E[?%dT:tc=ibm6153:
10903jaixterm|IBM Kanji Aixterm Terminal Eemulator:\
10904 :ac@:tc=aixterm:
10905jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator:\
10906 :ac@:tc=aixterm-m:
10907
10908#### Infoton/General Terminal Corp.
10909#
10910
10911# gt100 sounds like something DEC would come out with. Let's hope they don't.
10912i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100):\
10913 :am:bs:\
10914 :co#80:li#24:\
10915 :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\Ef%r%+ %+ :cr=^M:\
10916 :dl=\EM:do=^J:ho=\EH:le=^H:nd=\EC:se=\Ea:sf=^J:so=\Eb:up=\EA:\
10917 :vb=\Eb\Ea:
10918i400|infoton 400:\
10919 :am:bs:\
10920 :co#80:li#25:\
10921 :al=\E[L:bl=^G:ce=\E[N:cl=\E[2J:cm=%i\E[%3;%3H:cr=^M:\
10922 :dc=\E[4h\E[2Q\E[P\E[4l\E[0Q:dl=\E[M:do=^J:\
10923 :ei=\E[4l\E[0Q:im=\E[4h\E[2Q:le=^H:nd=\E[C:sf=^J:up=\E[A:
10924# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
10925addrinfo:\
10926 :am:\
10927 :co#80:li#24:\
10928 :bl=^G:cd=^K:cl=^L:..cm=\037%p1%{1}%-%c%p2%{1}%-%c:cr=^M:\
10929 :do=^J:ho=^H:le=^Z:ll=^H^\:nd=^Y:sf=^J:up=^\:
10930# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
10931infoton:\
10932 :am:\
10933 :co#80:li#24:\
10934 :bl=^G:cd=^K:cl=^L:cr=^M:do=^J:le=^Z:ll=^H^\:nd=^Y:sf=^J:\
10935 :up=^\:
10936
10937# The ICL6402 was actually the Kokusai Display System 6402.
10938# The 6404 was the KDS7372 (color version of the 6402).
10939#
10940# ICL6404 control codes follow:
10941#
10942#code function
10943#~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10944#ctrl-A set SOM position at cursor position
10945#ctrl-G Bell
10946#ctrl-H Backspace
10947#ctrl-I Horiz tab
10948#ctrl-J Linefeed
10949#ctrl-K Cursor up
10950#ctrl-L Cursor right
10951#ctrl-M Carriage return
10952#ctrl-N Disable xon/xoff to host
10953#ctrl-O Enable xon/xoff to host
10954#ctrl-R Enable bidirectional mode
10955#ctrl-T Disable bidirectional mode
10956#ctrl-V Cursor down
10957#ctrl-Z Clear unprotected data to insert char
10958#ctrl-^ Cursor home
10959#ctrl-_ Newline
10960#
10961#ESC lead-in char for multiple character command
10962#
10963#ESC space R execute power on sequence
10964#ESC ! p1 p2 define scroll region:
10965# p1 = scroll top line: 20h - 37h
10966# p1 = scroll bottom line: 20h - 37h
10967#ESC " unlock keyboard
10968#ESC # lock keyboard
10969#ESC $ Semi-graphics mode on
10970#ESC % Semi-graphics mode off
10971#ESC & protect mode on
10972#ESC ' protect mode off
10973#ESC ( write protect mode off (full intensity)
10974#ESC ) write protect mode on (half intensity)
10975#
10976#ESC * clear screen
10977#ESC + clear unprotected data to insert char
10978#ESC , clear unprotected data to half intensity spaces
10979#ESC - p1 p2 p3 p4 address cursor to page, row, column:
10980# p1 = page number 0 - 3
10981# p2 = row 20h - 7fh
10982# p3 = column (lo) 20h - 7fh
10983# p4 = column (hi) 20h - 21h (only 132 col)
10984#ESC . p1 set cursor style:
10985# p1 = 0 invisible cursor
10986# p1 = 1 block blinking cursor
10987# p1 = 2 block steady cursor
10988# p1 = 3 underline blinking cursor
10989# p1 = 4 underline steady cursor
10990#ESC / transmit cursor location (page, row, column)
10991#ESC 0 p1 p2 p3 p4 program edit key:
10992# p1 = edit key code: '@'-'S', '`'-'s'
10993# p2 p3 p4 = program data (3 bytes)
10994#
10995#ESC 1 set tab
10996#ESC 2 clear tab at cursor
10997#ESC 3 clear all tabs
10998#ESC 4 send unprotect line to cursor
10999#ESC 5 send unprotect page to cursor
11000#ESC 6 send line to cursor
11001#ESC 7 send page to cursor
11002#ESC 8 n set scroll mode:
11003# n = 0 set jump scroll
11004# n = 1 set smooth scroll
11005#ESC 9 n control display:
11006# n = 0 display off
11007# n = 1 display on
11008#ESC : clear unprotected data to null
11009#ESC ; clear unprotected data to insert char
11010#
11011#ESC < keyclick on
11012#ESC = p1 p2 address cursor to row, column
11013# p1 = row 20h - 7fh
11014# p2 = column (lo) 20h - 7fh
11015# p3 = column (hi) 20h - 21h (only 132 col)
11016#ESC > keyclick off
11017#ESC ? transmit cursor location (row, column)
11018#
11019#ESC @ copy print mode on
11020#ESC A copy print mode off
11021#ESC B block mode on
11022#ESC C block mode off (conversation mode)
11023#ESC D F set full duplex
11024#ESC D H set half duplex
11025#ESC E line insert
11026#ESC F p1 p2 set page color (p1 = f/grnd, p2 = b/grnd)
11027# 0 = black, 1 = red, 2 = green, 3 = yellow
11028# 4 = blue, 5 = magenta, 6 = cyan, 7 = white
11029#ESC G n set serial field attribute (n = 30h - 3Fh)
11030#ESC H n full graphics mode:
11031# n = 0 exit full graphics mode
11032# n = 1 enter full graphics mode
11033#ESC I back tab
11034#ESC J back page
11035#ESC K forward page
11036#
11037#ESC L unformatted page print
11038#ESC M L move window left (132 col mode only)
11039#ESC M R move window right (132 col mode only)
11040#ESC N set page edit (clear line edit)
11041#ESC O set line edit (clear page edit)
11042#ESC P formatted page print
11043#ESC Q character insert
11044#ESC R line delete
11045#ESC S send message unprotected only
11046#ESC T erase line to insert char
11047#ESC U set monitor mode (see ESC X, ESC u)
11048#
11049#ESC V n select video attribute mode:
11050# n = 0 serial field attribute mode
11051# n = 1 parallel character attribute mode
11052#ESC V 2 n define line attribute:
11053# n = 0 single width single height
11054# n = 1 single width double height
11055# n = 2 double width single height
11056# n = 3 double width double height
11057#ESC V 3 n select character font:
11058# n = 0 system font
11059# n = 1 user defined font
11060#ESC V 4 n select screen mode:
11061# n = 0 page screen mode
11062# n = 1 virtual screen mode
11063#ESC V 5 n control mouse mode:
11064# n = 0 disable mouse
11065# n = 1 enable sample mode
11066# n = 2 send mouse information
11067# n = 3 enable request mode
11068#ESC W character delete
11069#ESC X clear monitor mode (see ESC U, ESC u)
11070#ESC Y erase page to insert char
11071#
11072#ESC Z n send user/status line:
11073# n = 0 send user line
11074# n = 1 send status line
11075# n = 2 send terminal ID
11076#ESC [ p1 p2 p3 set character attribute (parallel char mode):
11077# p1: 0 = normal
11078# 1 = blank
11079# 2 = blink
11080# 3 = blink blank (= blank)
11081# 4 = reverse
11082# 5 = reverse blank
11083# 6 = reverse blink
11084# 7 = reverse blink blank (= reverse blank)
11085# 8 = underline
11086# 9 = underline blank
11087# : = underline blink
11088# ; = underline blink blank
11089# < = reverse underline
11090# = = reverse underline blank
11091# > = reverse underline blink
11092# ? = reverse underline blink blank
11093# p2, p3: f/grnd, b/grnd color
11094# (see ESC F for colors)
11095# use ZZ for mono, eg.
11096# ESC [ 0 Z Z for normal
11097# ESC [ 4 Z Z for inverse etc.
11098#
11099#ESC \ n set page size:
11100# n = 1 24 lines/page
11101# n = 2 48 lines/page
11102# n = 3 72 lines/page
11103# n = 4 96 lines/page
11104#ESC ] n set Wordstar mode:
11105# n = 0 normal (KDS7372) mode
11106# n = 1 Wordstar mode
11107#
11108#ESC b set foreground color screen
11109#
11110#ESC c n enter self-test mode:
11111# n = 0 exit self test mode
11112# n = 1 ROM test
11113# n = 2 RAM test
11114# n = 3 NVRAM test
11115# n = 4 screen display test
11116# n = 5 main/printer port test
11117# n = 6 mouse port test
11118# n = 7 graphics board test
11119# n = 8 graphics memory test
11120# n = 9 display all 'E'
11121# n = : display all 'H'
11122#ESC d set background color screen
11123#
11124#ESC e n program insert char (n = insert char)
11125#ESC f text CR load user status line with 'text'
11126#
11127#ESC g display user status line on 25th line
11128#ESC h display system status line on 25th line
11129#ESC i tab
11130#ESC j reverse linefeed
11131#ESC k n duplex/local edit mode:
11132# n = 0 duplex edit mode
11133# n = 1 local edit mode
11134#ESC l n select virtual screen:
11135# n = 0 screen 1
11136# n = 1 screen 2
11137#ESC m save current config to NVRAM
11138#ESC n p1 select display screen:
11139# p1 = 0 screen 1
11140# p1 = 1 screen 2
11141# p1 = 2 screen 3
11142# p1 = 3 screen 4
11143#ESC o p1 p2 set characters/line and attribute:
11144# p1 = 0 80 chars/line
11145#
11146#ESC o p1 p2 set characters/line and attribute:
11147# p1 = 0 80 chars/line
11148# p1 = 1 132 chars/line
11149# p2 = 0 single width single height
11150# p2 = 1 single width double height
11151# p2 = 2 double width single height
11152# p2 = 3 double width double height
11153#
11154#ESC q insert mode on
11155#ESC r edit mode on
11156#ESC s send message all
11157#ESC t erase line to null
11158#ESC u clear monitor mode (see ESC U, ESC X)
11159#ESC v autopage mode on
11160#ESC w autopage mode off
11161#ESC x p1 p2 p3 define delimiter code...
11162#ESC y erase page to null
11163#
11164#ESC z 2 p1 p2 p3 p4 draw quadrangle:
11165# p1 = starting row
11166# p2 = starting column
11167# p3 = end row
11168# p4 = end column
11169#
11170#ESC { p1 p2 p3 p4 configure main port
11171# (baud, stop bits, parity, word length)
11172#
11173#ESC | p1 p2 text Ctrl-Y program function key with 'text':
11174# p1 = function key code:
11175# '1' - ';' normal f1- f11
11176# '<' - 'F' shifted f1 - f11
11177# p2 = program mode:
11178# 1 = FDX
11179# 2 = LOC
11180# 3 = HDX
11181# Ctrl-Y = terminator
11182# (use Ctrl-P to escape ^P, ^Y )
11183#
11184#ESC } p1 p2 p3 p4 configure printer port
11185# (baud, stop bits, parity, word length)
11186#ESC ~ send system status
11187#
11188# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997
11189#
11190# Entry is by esr going solely on above information and is UNTESTED.
11191# This actually looks a lot like a Televideo 9xx.
11192# This entry uses page 0 and is monochrome; I'm not brave enough to try
11193# to make color work without a test terminal. The :am: capability is a guess.
11194# The initialization string sets conversation mode, blinking underline cursor,
11195# full duplex, parallel attribute mode, display user status line, white
11196# foreground, black background, normal highlight.
11197#
11198icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372:\
11199 :am:bs:hs:\
11200 :co#80:li#24:\
11201 :al=\EE:bl=^G:bt=\EI:cl=\E*:cm=\E=%+ %+P%+P:cr=^M:\
11202 :..cs=\E!%+%p1%{32}%+%p2%{32} cud1=\026:ct=\E3:dc=\EW:\
11203 :dl=\ER:ei=\Er:ho=^^:i1=\EC\E.3\EDF\EV1\Eg\E[0ZZ:im=\Eq:\
11204 :mb=\E[2ZZ:me=\E[0ZZ:mk=\E[1ZZ:mr=\E[4ZZ:nd=^L:nw=^_:\
11205 :rs=\Eo1:\
11206 :..sa=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ:\
11207 :se=\E[%gh%{4}%^%Ph%gh%dZZ:so=\E[8ZZ:st=\E1:ta=^I:\
11208 :ue=\E[%gh%{8}%^%Ph%gh%dZZ:up=^K:us=\E[8ZZ:ve=\E.3:\
11209 :vi=\E.0:vs=\E.1:
11210icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols:\
11211 :rs=\Eo1:tc=icl6404:
11212
11213#### Interactive Systems Corp
11214#
11215# ISC used to sell OEMed and customized hardware to support ISC UNIX.
11216# ISC UNIX still exists in 1995, but ISC itself is no more; they got
11217# bought out by Sun.
11218#
11219
11220# From: <cithep!eric> Wed Sep 16 08:06:44 1981
11221# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the
11222# ":le=^_:" later overridden -- esr)
11223intext|Interactive Systems Corporation modified owl 1200:\
11224 :am:bs:\
11225 :co#80:it#8:li#24:sg#1:\
11226 :al=\020:bl=^G:bt=^Y:cd=\026J:ce=^Kp^R:cl=\014:\
11227 :cm=\017%+ %+ :cr=^M:dc=\022:dl=\021:do=^J:ei=^V<:im=^V;:\
11228 :ip=:k0=^VJ\r:k1=^VA\r:k2=^VB\r:k3=^VC\r:k4=^VD\r:k5=^VE\r:\
11229 :k6=^VF\r:k7=^VG\r:k8=^VH\r:k9=^VI\r:kb=^H:kd=^J:ke=^V9:\
11230 :kh=^Z:kl=^_:kr=^^:ks=\036\:\264\026%%%:ku=^\:le=^H:nd=^^:\
11231 :se=^V#\s:sf=^J:so=^V$,:ta=^I:up=^\:
11232intext2|intextii|INTERACTIVE modified owl 1251:\
11233 :am:bw:ul:\
11234 :co#80:li#24:sg#0:ug#0:\
11235 :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:\
11236 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\
11237 :do=\E[B:ei=:ic=\E[@:im=:k0=\E@\r:k1=\EP\r:k2=\EQ\r:\
11238 :k3=\ES\r:k4=\ET\r:k5=\EU\r:k6=\EV\r:k7=\EW\r:k8=\EX\r:\
11239 :k9=\EY\r:kb=^H:kd=\EB\r:kh=\ER\r:kl=\ED\r:kr=\EC\r:\
11240 :ku=\EA\r:l0=REFRSH:l1=DEL CH:l2=TABSET:l3=GOTO:l4=+PAGE:\
11241 :l5=+SRCH:l6=-PAGE:l7=-SRCH:l8=LEFT:l9=RIGHT:nd=\E[C:\
11242 :se=\E[2 D:sf=\E[S:so=\E[6 D:sr=\E[T:ta=^I:ue=\E[2 D:\
11243 :up=\E[A:us=\E[18 D:\
11244 :vb=\E[;;;;;;;;;2;;u\E[;;;;;;;;;1;;u:
11245
11246#### Kimtron (abm, kt)
11247#
11248# Kimtron seems to be history, but as March 1998 these people are still
11249# offering repair services for Kimtron equipment:
11250#
11251# Com/Pair Monitor Service
11252# 1105 N. Cliff Ave.
11253# Sioux Falls, South Dakota 57103
11254#
11255# WATS voice: 1-800/398-4946
11256# POTS fax: +1 605/338-8709
11257# POTS voice: +1 605/338-9650
11258# Email: <compair@sd.cybernex.net>
11259# Internet/Web: <http://www.com-pair.com>
11260#
11261# Kimtron entries include (undocumented) codes for: enter dim mode,
11262# enter bold mode, enter reverse mode, turn off all attributes.
11263#
11264
11265# Kimtron ABM 85 added by Dual Systems
11266# (abm85: removed duplicated ":kd=^J:" -- esr)
11267abm85|Kimtron ABM 85:\
11268 :am:bs:bw:ms:\
11269 :co#80:it#8:li#24:sg#1:ug#1:\
11270 :al=\EE:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :dc=\EW:\
11271 :dl=\ER:do=^J:ei=\Er:if=/usr/share/tabset/stdcrt:im=\EQ:\
11272 :is=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq:kb=^H:kd=^J:kh=^^:\
11273 :kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\Ek:so=\Ej:ta=^I:ue=\Em:\
11274 :up=^K:us=\El:
11275# Kimtron ABM 85H added by Dual Systems.
11276# Some notes about the abm85h entries:
11277# 1) there are several firmware revs of 85H in the world. Use abm85h-old for
11278# firmware revs prior to SP51
11279# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the
11280# abm85e entry if it is in tvi920 emulation mode. They are incompatible
11281# in some places and NOT software settable i.e., :is: can't fix it)
11282# 3) In 85h mode, the arrow keys and special functions transmit when
11283# the terminal is in dup-edit, and work only locally in local-edit.
11284# Vi won't swallow `del char' for instance, but :ti: turns on
11285# dup-edit anyway so that the arrow keys will work right. If the
11286# arrow keys don't work the way you like, change :ti:, :te:, and
11287# :is:. Note that 920E mode does not have software commands to toggle
11288# between dup and local edit, so you get whatever was set last on the
11289# terminal.
11290# 4) :vb: attribute is nice, but seems too slow to work correctly
11291# (\Eb:pc:\Ed)
11292# 5) Make sure `hidden' attributes are selected. If `embedded' attributes
11293# are selected, the <xmc@> entry should be removed.
11294# 6) auto new-line should be on (selectable from setup mode only)
11295#
11296# From: Erik Fair <fair@ucbarpa> Sun Oct 27 07:21:05 1985
11297abm85h|Kimtron ABM 85H native mode:\
11298 :hs:\
11299 :sg@:\
11300 :bl=^G:ds=\Ee:fs=^M:im=\EZ:\
11301 :is=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El:\
11302 :kd=^V:me=\E(\EG0:mh=\E):mk@:ts=\Eg\Ef:vb@:ve=\E.4:vs=\E.2:\
11303 :tc=adm+sgr:tc=abm85:
11304abm85e|Kimtron ABM 85H in 920E mode:\
11305 :sg@:\
11306 :bl=^G:im=\EZ:\
11307 :is=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em:\
11308 :me=\E(\Ek:mh=\E):mr=\Ej:vb@:tc=abm85:
11309abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev.:\
11310 :sg@:\
11311 :bl=^G:im=\EZ:\
11312 :is=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF:\
11313 :me=\E(\Ek:mh=\E):mr=\Ej:tc=abm85:
11314# From: <malman@bbn-vax.arpa>
11315# (kt7: removed obsolete :ma=^V^J^L :" -- esr)
11316kt7|kimtron model kt-7:\
11317 :am:bs:\
11318 :co#80:it#8:li#24:\
11319 :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=\EW:\
11320 :dl=\ER:do=^V:ei=:fs=\Eg:ho=^^:ic=\EQ:\
11321 :if=/usr/share/tabset/stdcrt:im=:is=\El\E":k0=^AI\r:\
11322 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
11323 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kB=\EI:kC=^Z:kD=\EW:\
11324 :kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:\
11325 :ku=^K:le=^H:mk@:nd=^L:ta=^I:ts=\Ef:up=^K:tc=adm+sgr:
11326# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the
11327# other kt7 entry and the adjacent key capabilities). Removed EE which is
11328# identical to :mh:. Removed :ES=\EGD: which is some kind of highlight
11329# but we can't figure out what.
11330kt7ix|kimtron model kt-7 or 70 in IX mode:\
11331 :am:bw:\
11332 :co#80:it#8:li#25:\
11333 :@7=\EY:PU=\EK:ac=jYk?lZm@nEqDt4uCvAwBx3:ae=\E%%%:al=\EE:\
11334 :as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :\
11335 :cr=^M:dc=\EW:dl=\ER:do=^V:ds=\Ef\r:ei=:fs=^M:ho=^^:ic=\EQ:\
11336 :im=:is=\EG0\E s\017\E~:k0=^AI\r:k1=^A@\r:k2=^AA\r:\
11337 :k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:\
11338 :k9=^AH\r:kA=\EE:kB=\EI:kC=\E*:kE=\ET:kI=\EQ:kL=\ER:kN=\EJ:\
11339 :kS=\EY:kb=^H:kd=\E[B:kh=^^:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
11340 :mb=\EG2:me=\EG0:mh=\EG@:nd=^L:nw=^M^J:se=\EG0:sf=^J:\
11341 :so=\EG4:ta=^I:ts=\Ef:ue=\EG0:up=^K:us=\EG8:ve=\E.3:vi=\E.0:
11342
11343#### Microdata/MDIS
11344#
11345# This was a line of terminals made by McDonnell-Douglas Information Systems.
11346# These entries come direct from MDIS documentation. I have edited them only
11347# to move primary names of the form p[0-9] * to aliases, and to comment out
11348# :ae:/:as: in a couple of entries without <acsc> strings. I have
11349# also removed the change history; the last version indicates this is
11350# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989).
11351#
11352
11353# McDonnell Information Systems Terminal Family History
11354# =========================================
11355#
11356# Prism-1, Prism-2 and P99:
11357# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25.
11358#
11359# Prism-4 and Prism-5:
11360# Slightly less ancient range of Microdata terminals. Follow-on from
11361# Prism-2, but with many enhancements. P5 has eight display pages.
11362#
11363# Prism-6:
11364# A special terminal for use with library systems, primarily in Germany.
11365# Limited numbers. Similar functionality to P5 (except attributes?).
11366#
11367# Prism-7, Prism-8 and Prism-9:
11368# More recent range of MDIS terminals, in which P7 and P8
11369# replace the P4 & P5, with added functionality, and P9 is the flagship.
11370# The P9 has two emulation modes - P8 and ANSI - and includes a
11371# large number of the DEC VT220 control sequences. Both
11372# P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats.
11373#
11374# Prism-12 and Prism-14:
11375# Latest range, functionally very similar to the P9. The P14 has a
11376# black-on-white overscanning screen.
11377#
11378# The terminfo definitions given here are:
11379#
11380# p2 - Prism-2 (or Prism-1 or P99).
11381#
11382# p4 - Prism-4 (and older P7s & P8s).
11383# p5 - Prism-5 (or Prism-6).
11384#
11385# p7 - Prism-7.
11386# p8 - Prism-8 (in national or multinational mode).
11387# p8-w - 132 column version of p8.
11388# p9 - Prism-9 in ANSI mode.
11389# p9-w - 132 column version of p9.
11390# p9-8 - Prism-9 in Prism-8 emulation mode.
11391# p9-8-w - As p9-8, but with 132 columns.
11392#
11393# p12 - Prism-12 in ANSI mode.
11394# p12-w - 132 column version of p12.
11395# p12-m - Prism-12 in MDC emulation mode.
11396# p12-m-w - As p12-m, but with 132 columns.
11397# p14 - Prism-14 in ANSI mode.
11398# p14-w - 132 column version of p14.
11399# p14-m - Prism-14 in MDC emulation mode.
11400# p14-m-w - As p14-m, but with 132 columns.
11401#
11402# p2: Prism-2
11403# -----------
11404#
11405# Includes Prism-1 and basic P99 without SP or MP loaded.
11406# The simplest form of Prism-type terminal.
11407# Basic cursor movement and clearing operations only.
11408# No video attributes.
11409# Notes:
11410# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
11411# value up, followed by backspace.
11412#
11413prism2|MDC Prism-2:\
11414 :am:bw:ms:\
11415 :co#80:li#24:\
11416 :bl=^G:cd=\EJ:ce=\EK:\
11417 :..ch=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\
11418 :cl=\014:\
11419 :..cm=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\
11420 :cr=^M:cv=\013%+ :do=^J:ho=^A:kb=^H:kh=^A:le=^H:nd=^F:sf=^J:\
11421 :up=^Z:
11422
11423# p4: Prism-4
11424# -----------
11425#
11426# Includes early versions of P7 & P8.
11427# Basic family definition for most Prisms (except P2 and P9 ANSI).
11428# Notes:
11429# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
11430# value up, followed by backspace.
11431# Cursor key definitions removed because they interfere with vi and csh keys.
11432#
11433prism4|p4|P4|MDC Prism-4:\
11434 :5i:am:bw:hs:ms:\
11435 :co#80:li#24:sg#1:ug#1:ws#72:\
11436 :bl=^G:cd=\EJ:ce=\EK:\
11437 :..ch=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\
11438 :cl=\014:\
11439 :..cm=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\
11440 :cr=^M:cv=\013%+ :do=^J:ds=\035\343\035\345:fs=^]\345:\
11441 :ho=^A:kb=^H:kh=^A:le=^H:mb=^CB:me=^C\s:mh=^CA:mk=^CH:mr=^CD:\
11442 :nd=^F:pf=\ET:po=\ER:ps=\EU:\
11443 :..sa=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;:\
11444 :se=^C\s:sf=^J:so=^CD:ts=^]\343:ue=^C\s:up=^Z:us=^CP:\
11445 :ve=^]\342:vi=^]\344:
11446
11447# p5: Prism-5
11448# -----------
11449#
11450# Same definition as p4. Includes Prism-6 (not tested!).
11451# Does not use any multi-page features.
11452#
11453prism5|p5|P5|MDC Prism-5:\
11454 :tc=p4:
11455
11456# p7: Prism-7
11457# -----------
11458#
11459# Similar definition to p4. Uses ANSI cursor motion to avoid network problems.
11460# Notes:
11461# Use p4 for very early models of P7.
11462# Rev-index removed; can't send nulls to terminal in 8-bit modes.
11463#
11464prism7|p7|P7|MDC Prism-7:\
11465 :ch@:cm=\E[%i%d;%dH:cv@:tc=p4:
11466
11467# p8: Prism-8
11468# -----------
11469#
11470# Similar definition to p7. Uses ANSI cursor motion to avoid network problems.
11471# Supports national and multinational character sets.
11472# Notes:
11473# Alternate char set operations only work in multinational mode.
11474# Use p4 for very early models of P8.
11475# Rev-index removed; can't send nulls to terminal in 8-bit modes.
11476# (esr: commented out :as:/:ae: because there's no <acsc>)
11477#
11478prism8|p8|P8|MDC Prism-8:\
11479 :ch=\E[%i%d`:cm=\E[%i%d;%dH:cv=\E[%i%dd:is=\E[<12h:tc=p4:
11480
11481# p8-w: Prism-8 in 132 column mode
11482# --------------------------------
11483#
11484# 'Wide' version of p8.
11485# Notes:
11486# Rev-index removed; can't send nulls to terminal in 8-bit modes.
11487#
11488prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode:\
11489 :co#132:\
11490 :is=\E[<12h\E[<14h:tc=p8:
11491
11492# p9: Prism-9 in ANSI mode
11493# -------------------------
11494#
11495# The "flagship" model of this generation of terminals.
11496# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones.
11497# Notes:
11498# Tabs only reset by "reset". Otherwise assumes default (8 cols).
11499# Fixes to deal with terminal firmware bugs:
11500# . 'ri' uses insert-line since rev index doesn't always
11501# . 'sgr0' has extra '0' since esc[m fails
11502# . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25
11503# Not covered in the current definition:
11504# . Labels
11505# . Programming Fn keys
11506# . Graphic characters (defaults correctly to vt100)
11507# . Padding values (sets xon)
11508# (esr: commented out :as:/:ae: because there's no <acsc>)
11509#
11510# (untranslatable capabilities removed to fit entry within 1023 bytes)
11511prism9|p9|P9|MDC Prism-9 in ANSII mode:\
11512 :5i:am:bw:hs:ms:xn:xo:\
11513 :co#80:it#8:li#24:vt#3:ws#72:\
11514 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\
11515 :F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:\
11516 :F7=\E[31~:F8=\E[32~:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\
11517 :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:cl=^L:\
11518 :cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:cv=\E[%i%dd:dc=\E[P:\
11519 :dl=\E[M:do=^J:ds=\E[%}\024:ec=\E[%dX:ei=\E[4l:fs=^T:\
11520 :ho=\E[H:im=\E[4h:is=\E[&p\E[<12l\E F:k1=\E[11~:\
11521 :k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:\
11522 :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kC=^L:kb=^H:\
11523 :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
11524 :md=\E[1m:me=\E[0m:mp=\E[32%{:mr=\E[7m:nd=\E[C:nw=^M^J:\
11525 :pf=\E[4i:po=\E[5i:ps=\E[i:rc=\E[%z:rp=\E[%r%db%.:\
11526 :rs=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N:\
11527 :sc=\E[%y:se=\E[27m:sf=^J:so=\E[7m:sr=\E[L:st=\EH:ta=^I:\
11528 :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[<4h:vi=\E[<4l:
11529
11530# p9-w: Prism-9 in 132 column mode
11531# --------------------------------
11532#
11533# 'Wide' version of p9.
11534#
11535prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode:\
11536 :co#132:\
11537 :is=\E[&p\E[<12l\E F\E[<14h:\
11538 :rs=\E[&p\E[<12l\E F\E[<14h:tc=p9:
11539
11540# p9-8: Prism-9 in P8 mode
11541# ------------------------
11542#
11543# P9 terminal in P8 emulation mode.
11544# Similar to p8 definition.
11545# Insertion and deletion operations possible.
11546#
11547prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode:\
11548 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:dc=\E[P:\
11549 :dl=\E[M:ei=:ic=\E[@:im=:tc=p8:
11550
11551# p9-8-w: Prism-9 in P8 and 132 column modes
11552# ------------------------------------------
11553#
11554# P9 terminal in P8 emulation mode and 132 column mode.
11555#
11556prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode:\
11557 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:dc=\E[P:\
11558 :dl=\E[M:ei=:ic=\E[@:im=:tc=p8-w:
11559
11560# p12: Prism-12 in ANSI mode
11561# ---------------------------
11562#
11563# See p9 definition.
11564#
11565prism12|p12|P12|MDC Prism-12 in ANSI mode:\
11566 :tc=p9:
11567
11568# p12-w: Prism-12 in 132 column mode
11569# ----------------------------------
11570#
11571# 'Wide' version of p12.
11572#
11573prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode:\
11574 :tc=p9-w:
11575
11576# p12-m: Prism-12 in MDC emulation mode
11577# -------------------------------------
11578#
11579# P12 terminal in MDC emulation mode.
11580# Similar to p8 definition.
11581# Insertion and deletion operations possible.
11582#
11583prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode:\
11584 :tc=p9-8:
11585
11586# p12-m-w: Prism-12 in MDC emulation and 132 column modes
11587# -------------------------------------------------------
11588#
11589# P12 terminal in MDC emulation mode and 132 column mode.
11590#
11591prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode:\
11592 :tc=p9-8-w:
11593
11594# p14: Prism-14 in ANSII mode
11595# ---------------------------
11596#
11597# See p9 definition.
11598#
11599prism14|p14|P14|MDC Prism-14 in ANSII mode:\
11600 :tc=p9:
11601
11602# p14-w: Prism-14 in 132 column mode
11603# ----------------------------------
11604#
11605# 'Wide' version of p14.
11606#
11607prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode:\
11608 :tc=p9-w:
11609
11610# p14-m: Prism-14 in MDC emulation mode
11611# -------------------------------------
11612#
11613# P14 terminal in MDC emulation mode.
11614# Similar to p8 definition.
11615# Insertion and deletion operations possible.
11616#
11617prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode:\
11618 :tc=p9-8:
11619
11620# p14-m-w: Prism-14 in MDC emulation and 132 column modes
11621# -------------------------------------------------------
11622#
11623# P14 terminal in MDC emulation mode and 132 column mode.
11624#
11625prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode:\
11626 :tc=p9-8-w:
11627
11628# End of McDonnell Information Systems Prism definitions
11629
11630# These things were popular in the Pick database community at one time
11631# From: George Land <georgeland@aol.com> 24 Sep 1996
11632p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition:\
11633 :am:bw:hs:mi:\
11634 :co#80:li#24:ma#1:sg#1:ug#1:ws#78:\
11635 :F2=^AJ\r:F3=^AK\r:F4=^AL\r:F5=^AM\r:F6=^AN\r:F7=^AO\r:\
11636 :bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\E[%i%d;%dH:cr=^M:dc=\s^H:\
11637 :dl=^P:do=^J:ho=^A:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
11638 :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\
11639 :kD=\s^H:kE=\EK:kL=^P:kS=\EJ:kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:\
11640 :ku=^Z:l1=F1:l2=F2:l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:l8=F8:l9=F9:\
11641 :la=F10:le=^U:mb=^CB:me=^C\s:mh=^CA:mk=^CH:mr=^CD:nd=^F:\
11642 :nw=^J^M:pc=\0:se=^C\s:sf=^J:so=^CE:ue=^C\s:up=^Z:us=^C0:
11643
11644#### Microterm (act, mime)
11645#
11646# The mime1 entries refer to the Microterm Mime I or Mime II.
11647# The default mime is assumed to be in enhanced act iv mode.
11648#
11649
11650# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>. Prevents
11651# freakout with out-of-range args on Sytek multiplexors. No :so=^N: and
11652# :se=^N: since it gets confused and it's too dim anyway. No :ic:
11653# since Sytek insists ^S means xoff.
11654# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr)
11655act4|microterm|microterm act iv:\
11656 :am:bs:\
11657 :co#80:li#24:\
11658 :al=2.3*\001<2.3*/>:bl=^G:cd=2.2*\037:ce=.1*\036:\
11659 :cl=12\014:cm=\024%+^X%>/0%+P:cr=^M:dc=.1*\004:\
11660 :dl=2.3*\027:do=^K:ho=^]:kd=^K:kl=^H:kr=^X:ku=^Z:le=^H:nd=^X:\
11661 :sf=^J:up=^Z:
11662# The padding on :sr: and :ta: for act5 and mime is a guess and not final.
11663# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)...
11664# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr)
11665act5|microterm5|microterm act v:\
11666 :kd=^K:kl=^H:kr=^X:ku=^Z:sr=\EH:uc=^H\EA:tc=act4:
11667# Mimes using brightness for standout. Half bright is really dim unless
11668# you turn up the brightness so far that lines show up on the screen.
11669mime-fb|full bright mime1:\
11670 :is=^S\E:se=^S:so=^Y:tc=mime:
11671mime-hb|half bright mime1:\
11672 :is=^Y\E:se=^Y:so=^S:tc=mime:
11673# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode
11674# the more plausible ":do=^J:" -- esr)
11675# uc was at one time disabled to get around a curses bug, be wary of it
11676mime|mime1|mime2|mimei|mimeii|microterm mime1:\
11677 :am:bs:\
11678 :co#80:it#8:li#24:vt#9:\
11679 :al=\001:bl=^G:cd=^_:ce=^^:cl=^]^C:cm=\024%+^X%> 0%+P:\
11680 :cr=^M:dl=\027:do=^J:ho=^]:is=^S\E^Q:kd=^K:kl=^H:kr=^X:ku=^Z:\
11681 :le=^H:nd=^X:sf=^J:sr=\022:ta=\011:uc=^U:up=^Z:
11682# These termcaps (for mime2a) put the terminal in low intensity mode
11683# since high intensity mode is so obnoxious.
11684mime2a-s|microterm mime2a (emulating an enhanced soroc iq120):\
11685 :am:bs:\
11686 :co#80:li#24:\
11687 :al=\001:bl=^G:cd=\EJ:ce=\EK:cl=\EL:cm=\E=%+ %+ :cr=^M:\
11688 :dc=\ED:dl=\027:do=^J:ei=^Z:ho=^^:im=\EE:ip=:is=\E):kd=^J:\
11689 :kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\E;:sf=^J:so=\E\::sr=\EI:\
11690 :ue=\E7:up=\EI:us=\E6:
11691# This is the preferred mode (but ^X can't be used as a kill character)
11692mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52):\
11693 :bs:\
11694 :co#80:it#8:li#24:\
11695 :al=\001:bl=^G:cd=\EQ:ce=\EP:cl=\EL:cm=\EY%+ %+ :cr=^M:\
11696 :dc=^N:dl=\027:do=^J:ei=^Z:ho=\EH:im=^O:ip=:is=^Y:kd=\EB:\
11697 :kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:se=\E9:sf=^J:so=\E8:\
11698 :sr=\EA:ta=^I:ue=\E5:up=\EA:us=\E4:
11699# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr)
11700mime3a|mime1 emulating 3a:\
11701 :am@:\
11702 :kd=^K:kl=^H:kr=^X:ku=^Z:tc=adm3a:
11703mime3ax|mime-3ax|mime1 emulating enhanced 3a:\
11704 :it#8:\
11705 :al=\001:cd=^_:ce=^X:dl=\027:ta=\011:tc=mime3a:
11706# Wed Mar 9 18:53:21 1983
11707# We run our terminals at 2400 baud, so there might be some timing problems at
11708# higher speeds. The major improvements in this model are the terminal now
11709# scrolls down and insert mode works without redrawing the rest of the line
11710# to the right of the cursor. This is done with a bit of a kludge using the
11711# exit graphics mode to get out of insert, but it does not appear to hurt
11712# anything when using vi at least. If you have some users using act4s with
11713# programs that use curses and graphics mode this could be a problem.
11714mime314|mm314|mime 314:\
11715 :am:\
11716 :co#80:li#24:\
11717 :al=^A:cd=^_:ce=^^:cl=^L:cm=\024%.%.:dc=^D:dl=^W:ei=^V:ho=^]:\
11718 :im=^S:kd=^K:kl=^H:kr=^X:ku=^Z:le=^H:nd=^X:ta=^I:up=^Z:
11719# Microterm mime 340 from University of Wisconsin
11720mm340|mime340|mime 340:\
11721 :co#80:li#24:\
11722 :al=46\EU:cd=2*\037:ce=2.1\EL:cl=12\032:cm=\E=%+ %+ :\
11723 :cr=^M:dc=2.1*\E#:dl=49.6\EV:do=^J:is=\E,:kb=^H:kd=^J:kl=^H:\
11724 :ku=^K:le=^H:nd=^L:nw=^M^J:sf=^J:ta=^I:up=^K:
11725# This came from University of Wisconsin marked "astro termcap for jooss".
11726# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:";
11727# also added <rmam>/<smam> based on the init string -- esr)
11728mt4520-rv|micro-term 4520 reverse video:\
11729 :am:hs:ms:xn:xo:\
11730 :co#80:it#8:li#24:ws#80:\
11731 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
11732 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
11733 :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
11734 :cr=^M:cs=\E[%i%d;%dr:ct=\E[g:dc=\E[P:dl=\E[M:do=\E[B:ei=:\
11735 :fs=\E[?5l\E[?5h:ho=\E[H:ic=\E[@:im=:\
11736 :is=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J:\
11737 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kh=\E[H:\
11738 :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;1H:me=\E[m:\
11739 :nd=\E[C:nw=\EE:\
11740 :r1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J:\
11741 :rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:se=\E[0m:\
11742 :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:ts=\E[25;1H:ue=\E[24m:\
11743 :up=\E[A:us=\E[4m:vb=\E[?5l\E[?5h:ve=\E[0V\E8:\
11744 :vs=\E7\E[0U:
11745
11746# Fri Aug 5 08:11:57 1983
11747# This entry works for the ergo 4000 with the following setups:
11748# ansi,wraparound,newline disabled, xon/xoff disabled in both
11749# setup a & c.
11750#
11751# WARNING!!! There are multiple versions of ERGO 4000 microcode
11752# Be advised that very early versions DO NOT WORK RIGHT !!
11753# Microterm does have a ROM exchange program- use it or lose big
11754# (ergo400: added <rmam>/<smam> based on the init string -- esr)
11755ergo4000|microterm ergo 4000:\
11756 :da:db:ms:\
11757 :co#80:li#66:\
11758 :RA=\E[?7l:SA=\E[?7m:al=\E[1L:bl=^G:cd=\E[0J:ce=\E[0K:\
11759 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[1M:\
11760 :do=\E[B:ei=\E[4l:im=\E[4h:\
11761 :is=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h:k1=\EOP:\
11762 :k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:ke=\E=:kl=\E[D:kr=\E[C:\
11763 :ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:le=^H:me=\E[m:\
11764 :nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:up=\E[A:
11765
11766#### NCR
11767#
11768# NCR's terminal group was merged with AT&T's when AT&T bought the company.
11769# For what happened to that group, see the ADDS section.
11770#
11771# There is an NCR4103 terminal that's just a re-badged Wyse-50.
11772#
11773
11774# The following vendor-supplied termcaps were captured from the Boundless
11775# Technologies site, 8 March 1998. I removed all-upper-case names that were
11776# identical, except for case, to lower-case ones. I also uncommented the acsc
11777# capabilities.X
11778#
11779# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
11780# DEC vt200/300 with color capabilities added.
11781ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard:\
11782 :Co#8:pa#64:\
11783 :AB=\E[4%dm:AF=\E[3%dm:op=\E[0m:tc=ncr260vt300an:
11784# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
11785# DEC vt200/300 with color capabilities added.
11786ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard:\
11787 :Co#8:pa#64:\
11788 :AB=\E[4%dm:AF=\E[3%dm:op=\E[0m:tc=ncr260vt300wan:
11789# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
11790# DEC vt200/300 with color capabilities added.
11791ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard:\
11792 :Co#8:pa#64:\
11793 :AB=\E[4%dm:AF=\E[3%dm:op=\E[0m:tc=ncr260vt300pp:
11794# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a
11795# DEC vt200/300 with color capabilities added.
11796ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode:\
11797 :Co#8:pa#64:\
11798 :AB=\E[4%dm:AF=\E[3%dm:op=\E[0m:tc=ncr260vt300wpp:
11799# This definition for ViewPoint supports several attributes. This means
11800# that it has magic cookies (extra spaces where the attributes begin).
11801# Some applications do not function well with magic cookies. The System
11802# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
11803# If supporting various attributes is not vital, 'xmc#1' and the extra
11804# attributes can be removed.
11805# Mapping to ASCII character set ('acsc' capability) can also be
11806# restored if needed.
11807# (untranslatable capabilities removed to fit entry within 1023 bytes)
11808# (sgr removed to fit entry within 1023 bytes)
11809# (acsc removed to fit entry within 1023 bytes)
11810# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
11811ncr260vppp|NCR 2900_260 viewpoint:\
11812 :am:bw:hs:km:mi:ms:xo:\
11813 :co#80:li#24:sg#1:ug#1:\
11814 :K1=^A:K3=\EJ:K4=\ET:K5=\EJ:ae=\EcB0\EH\003:al=\EM:\
11815 :as=\EcB1\EH\002:bl=^G:bt=\EI:cd=\Ek:ce=\EK:cl=\014:\
11816 :cm=\EY%+ %+ :cr=\r:dc=\EW:dl=\El:do=\n:ds=\E`c:ei=\Er:\
11817 :fs=^M:ho=\036:im=\Eq:\
11818 :is=\Ee6\E~%\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\
11819 :k1=^B1\r:k2=^B2\r:k3=^B3\r:k4=^B4\r:k5=^B5\r:k6=^B6\r:\
11820 :k7=^B7\r:k8=^B8\r:k9=^B9\r:kD=\EW:kI=\Eq:kN=\EJ:kP=\EJ:\
11821 :kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=\010:ll=\001:mb=\EG2:\
11822 :me=\EG0\EH\003:mh=\EGp:mr=\EG4:nd=\006:nw=\037:\
11823 :rs=\Ee6\E~%\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\
11824 :se=\EG0:sf=\n:so=\EG4:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:\
11825 :up=\032:us=\EG8:ve=\E`5:vi=\E`0:vs=\E`5:
11826ncr260vpwpp|NCR 2900_260 viewpoint wide mode:\
11827 :co#132:\
11828 :cm=\Ea%i%dR%dC:\
11829 :is=\Ee6\E~%\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\
11830 :rs=\Ee6\E~%\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\
11831 :tc=ncr260vppp:
11832# (untranslatable capabilities removed to fit entry within 1023 bytes)
11833# (sgr removed to fit entry within 1023 bytes)
11834# (acsc removed to fit entry within 1023 bytes)
11835ncr260vt100an|NCR 2900_260 vt100 with ansi kybd:\
11836 :am:hs:mi:ms:xn:xo:\
11837 :Nl#32:co#80:li#24:\
11838 :%0=\E[29~:%1=\E[28~:*6=\E[4~:@0=\E[1~:@8=\EOM:AL=\E[%dL:\
11839 :DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:K1=\EOw:K2=\EOy:\
11840 :K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:\
11841 :UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[0J:\
11842 :ce=\E[0K:ch=\E[%dG:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:cr=\r:\
11843 :cs=\E[%i%d;%dr:ct=\E[3g:cv=\E[%dd:dc=\E[1P:dl=\E[M:\
11844 :do=\E[B:ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:\
11845 :ho=\E[H:im=\E[4h:\
11846 :is=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11847 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kD=\E[3~:kI=\E[2~:\
11848 :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
11849 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\
11850 :me=\E[0m\017:mk=\E[8m:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:\
11851 :rs=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11852 :sc=\E7:se=\E[0m:sf=\ED:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\
11853 :ts=\E[2$~\E[1$}:ue=\E[0m:up=\E[A:us=\E[4m:ve=\E[?25h:\
11854 :vi=\E[?25l:
11855ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd:\
11856 :co#132:\
11857 :cm=\E[%i%d;%dH:\
11858 :is=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11859 :rs=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11860 :tc=ncr260vt100an:
11861ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd:\
11862 :@7=\E[5~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:\
11863 :is=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11864 :kD=\E[4~:kI=\E[1~:kN=\E[6~:kP=\E[3~:kd=\E[B:ke=\E>:\
11865 :kh=\E[2~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:\
11866 :l3=pf3:l4=pf4:\
11867 :rs=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11868 :tc=ncr260vt100an:
11869ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd:\
11870 :co#132:\
11871 :cm=\E[%i%d;%dH:\
11872 :is=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11873 :rs=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11874 :tc=ncr260vt100pp:
11875# (untranslatable capabilities removed to fit entry within 1023 bytes)
11876# (sgr removed to fit entry within 1023 bytes)
11877# (acsc removed to fit entry within 1023 bytes)
11878# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
11879ncr260vt200an|NCR 2900_260 vt200 with ansi kybd:\
11880 :am:hs:mi:ms:xn:xo:\
11881 :co#80:li#24:\
11882 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
11883 :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\
11884 :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=\017:al=\E[L:as=\016:\
11885 :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:\
11886 :cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\
11887 :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\
11888 :im=\E[4h:\
11889 :is=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11890 :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\
11891 :k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\
11892 :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\
11893 :ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\
11894 :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:\
11895 :rs=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11896 :sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
11897 :ts=\E[2$~\E[1$}:ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:\
11898 :vi=\E[?25l:
11899ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd:\
11900 :co#132:\
11901 :cm=\E[%i%d;%dH:\
11902 :is=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H:\
11903 :rs=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H:\
11904 :tc=ncr260vt200an:
11905ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd:\
11906 :@7=\E[1~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:kD=\E[4~:\
11907 :kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\
11908 :kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\
11909 :tc=ncr260vt200an:
11910ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd:\
11911 :co#132:\
11912 :cm=\E[%i%d;%dH:\
11913 :is=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11914 :rs=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
11915 :tc=ncr260vt200pp:
11916# (untranslatable capabilities removed to fit entry within 1023 bytes)
11917# (sgr removed to fit entry within 1023 bytes)
11918# (acsc removed to fit entry within 1023 bytes)
11919# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
11920ncr260vt300an|NCR 2900_260 vt300 with ansi kybd:\
11921 :am:hs:mi:ms:xn:xo:\
11922 :co#80:li#24:\
11923 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
11924 :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\
11925 :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=\017:al=\E[L:as=\016:\
11926 :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:\
11927 :cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\
11928 :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\
11929 :im=\E[4h:\
11930 :is=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\
11931 :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\
11932 :k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\
11933 :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\
11934 :ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\
11935 :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:\
11936 :rs=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\
11937 :sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
11938 :ts=\E[2$~\E[1$}:ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:\
11939 :vi=\E[?25l:
11940ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd:\
11941 :co#132:\
11942 :cm=\E[%i%d;%dH:\
11943 :is=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H:\
11944 :rs=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H:\
11945 :tc=ncr260vt300an:
11946ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd:\
11947 :@7=\E[1~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:kD=\E[4~:\
11948 :kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\
11949 :kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\
11950 :tc=ncr260vt300an:
11951NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd:\
11952 :co#132:\
11953 :cm=\E[%i%d;%dH:\
11954 :is=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\
11955 :rs=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\
11956 :tc=ncr260vt300pp:
11957# This terminfo file contains color capabilities for the Wyse325 emulation of
11958# the NCR 2900/260C color terminal. Because of the structure of the command
11959# (escape sequence) used to set color attributes, one of the fore/background
11960# colors must be preset to a given value. I have set the background color to
11961# black. The user can change this setup by altering the last section of the
11962# 'setf' definition. The escape sequence to set color attributes is
11963# ESC d y <foreground_color> <background_color> 1
11964# In addition, the background color can be changed through the desk accessories.
11965# The capablitiy 'op' sets colors to green on black (default combination).
11966#
11967# NOTE: The NCR Unix System Administrator's Shell will not function properly
11968# if the 'pairs' capability is defined. Un-Comment the 'pairs'
11969# capability and recompile if you wish to have it included.
11970#
11971# (untranslatable capabilities removed to fit entry within 1023 bytes)
11972# (sgr removed to fit entry within 1023 bytes)
11973# (acsc removed to fit entry within 1023 bytes)
11974# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
11975ncr260wy325pp|NCR 2900_260 wyse 325:\
11976 :am:bw:hs:km:mi:ms:xo:\
11977 :co#80:li#24:\
11978 :K1=^^:K2=\EJ:K4=\ET:K5=\EK:ae=\EH\003\EcB0:al=\EE:\
11979 :as=\EH\002\EcB1:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:\
11980 :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=\n:ds=\E`c:\
11981 :ei=\Er:fs=^M:ho=\036:im=\Eq:\
11982 :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
11983 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
11984 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\
11985 :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\
11986 :me=\EG0\EcB0\EcD:mr=\EG4:nd=\014:nw=\037:\
11987 :rs=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
11988 :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:\
11989 :up=\013:us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5:
11990ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode:\
11991 :co#132:\
11992 :cm=\Ea%i%dR%dC:\
11993 :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
11994 :rs=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
11995 :tc=ncr260wy325pp:
11996# This definition for Wyse 350 supports several attributes. This means
11997# that it has magic cookies (extra spaces where the attributes begin).
11998# Some applications do not function well with magic cookies. The System
11999# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
12000# If supporting various attributes is not vital, 'xmc#1' and the extra
12001# attributes can be removed.
12002# Mapping to ASCII character set ('acsc' capability) can also be
12003# restored if needed.
12004# In addition, color capabilities have been added to this file. The drawback,
12005# however, is that the background color has to be black. The foreground colors
12006# are numbered 0 through 15.
12007#
12008# NOTE: The NCR Unix System Administrator's Shell does not function properly
12009# with the 'pairs' capability defined as below. If you wish to
12010# have it included, Un-comment it and recompile (using 'tic').
12011#
12012# (untranslatable capabilities removed to fit entry within 1023 bytes)
12013# (sgr removed to fit entry within 1023 bytes)
12014# (acsc removed to fit entry within 1023 bytes)
12015# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
12016ncr260wy350pp|NCR 2900_260 wyse 350:\
12017 :am:bw:hs:km:mi:ms:xo:\
12018 :co#80:li#24:sg#1:ug#1:\
12019 :K1=^^:K4=\ET:K5=\EK:ae=\EH\003\EcB0:al=\EE:\
12020 :as=\EH\002\EcB1:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:\
12021 :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=\n:ds=\E`c:\
12022 :ei=\Er:fs=^M:ho=\036:im=\Eq:\
12023 :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12024 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
12025 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\
12026 :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\
12027 :me=\EG0\EH\003\EcD:mh=\EGp:mr=\EG4:nd=\014:nw=\037:\
12028 :rs=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12029 :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:\
12030 :up=\013:us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5:
12031ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode:\
12032 :co#132:\
12033 :cm=\Ea%i%dR%dC:\
12034 :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12035 :rs=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12036 :tc=ncr260wy350pp:
12037# This definition for Wyse 50+ supports several attributes. This means
12038# that it has magic cookies (extra spaces where the attributes begin).
12039# Some applications do not function well with magic cookies. The System
12040# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
12041# If supporting various attributes is not vital, 'xmc#1' and the extra
12042# attributes can be removed.
12043# Mapping to ASCII character set ('acsc' capability) can also be
12044# restored if needed.
12045# (ncr260wy50+pp: originally contained commented-out
12046# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
12047# (untranslatable capabilities removed to fit entry within 1023 bytes)
12048# (sgr removed to fit entry within 1023 bytes)
12049# (acsc removed to fit entry within 1023 bytes)
12050# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
12051ncr260wy50+pp|NCR 2900_260 wyse 50+:\
12052 :am:bw:hs:km:mi:ms:xo:\
12053 :co#80:li#24:sg#1:ug#1:\
12054 :K1=^^:K4=\ET:K5=\EK:ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:\
12055 :cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:\
12056 :dl=\ER:do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:im=\Eq:\
12057 :is=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12058 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
12059 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\
12060 :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\
12061 :me=\EG0\EH\003:mh=\EGp:mr=\EG4:nd=\014:nw=\037:\
12062 :rs=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12063 :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=\011:ts=\EF:ue=\EG0:\
12064 :up=\013:us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5:
12065ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode:\
12066 :co#132:\
12067 :cm=\Ea%i%dR%dC:\
12068 :is=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12069 :rs=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12070 :tc=ncr260wy50+pp:
12071# (untranslatable capabilities removed to fit entry within 1023 bytes)
12072# (sgr removed to fit entry within 1023 bytes)
12073# (acsc removed to fit entry within 1023 bytes)
12074# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
12075ncr260wy60pp|NCR 2900_260 wyse 60:\
12076 :am:bw:hs:km:mi:ms:xo:\
12077 :co#80:li#24:\
12078 :K1=^^:K2=\EJ:K4=\ET:K5=\EK:ae=\EH^C:al=\EE:as=\EH^B:bl=^G:\
12079 :bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :cr=^M:ct=\E0:\
12080 :dc=\EW:dl=\ER:do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:im=\Eq:\
12081 :is=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12082 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
12083 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\
12084 :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\
12085 :me=\EG0\EcB0\EcD:mr=\EG4:nd=\014:nw=\037:\
12086 :rs=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12087 :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=\011:ts=\EF:ue=\EG0:\
12088 :up=\013:us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5:
12089ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode:\
12090 :co#132:\
12091 :cm=\Ea%i%dR%dC:\
12092 :is=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12093 :rs=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7:\
12094 :tc=ncr260wy60pp:
12095ncr160vppp|NCR 2900_160 viewpoint:\
12096 :tc=ncr260vppp:
12097ncr160vpwpp|NCR 2900_160 viewpoint wide mode:\
12098 :tc=ncr260vpwpp:
12099ncr160vt100an|NCR 2900_160 vt100 with ansi kybd:\
12100 :tc=ncr260vt100an:
12101ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd:\
12102 :tc=ncr260vt100pp:
12103ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd:\
12104 :tc=ncr260vt100wan:
12105ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd:\
12106 :tc=ncr260vt100wpp:
12107ncr160vt200an|NCR 2900_160 vt200 with ansi kybd:\
12108 :tc=ncr260vt200an:
12109ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd:\
12110 :tc=ncr260vt200pp:
12111ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd:\
12112 :tc=ncr260vt200wan:
12113ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd:\
12114 :tc=ncr260vt200wpp:
12115ncr160vt300an|NCR 2900_160 vt300 with ansi kybd:\
12116 :tc=ncr260vt300an:
12117ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd:\
12118 :tc=ncr260vt300pp:
12119ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd:\
12120 :tc=ncr260vt300wan:
12121ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd:\
12122 :tc=ncr260vt300wpp:
12123ncr160wy50+pp|NCR 2900_160 wyse 50+:\
12124 :tc=ncr260wy50+pp:
12125ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode:\
12126 :tc=ncr260wy50+wpp:
12127ncr160wy60pp|NCR 2900_160 wyse 60:\
12128 :tc=ncr260wy60pp:
12129ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode:\
12130 :tc=ncr260wy60wpp:
12131ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal:\
12132 :5i:am:hs:mi:ms:xo:\
12133 :Nl#32:co#80:it#8:li#24:\
12134 :#4=\E[D:%i=\E[C:@8=^M:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
12135 :DO=\E[%dB:K1=\E[H:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\
12136 :ac=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~:ae=\017:\
12137 :al=\E[B\E[L:as=\016:bl=^G:cb=\E[1K:cd=\E[0J:ce=\E[0K:\
12138 :cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
12139 :ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:ds=\E[31l:eA=\E(B\E)0:\
12140 :ei=\E[4l:fs=1:ho=\E[H:im=\E[4h:\
12141 :is=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0:k1=\EOP:\
12142 :k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:\
12143 :ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\017\E[0m:mr=\E[7m:\
12144 :nd=\E[C:nw=\EE:ps=\E[i:rc=\E8:\
12145 :rs=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031:\
12146 :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>:\
12147 :sc=\E7:se=\E[0m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
12148 :ts=\E[>+1:ue=\E[0m:up=\E[A:us=\E[4m:
12149ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal:\
12150 :co#132:\
12151 :is=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0:\
12152 :rs=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031:\
12153 :tc=ncrvt100an:
12154#
12155# Vendor-supplied NCR termcaps end here
12156
12157# NCR7900 DIP switches:
12158#
12159# Switch A:
12160# 1-4 - Baud Rate
12161# 5 - Parity (Odd/Even)
12162# 6 - Don't Send or Do Send Spaces
12163# 7 - Parity Enable
12164# 8 - Stop Bits (One/Two)
12165#
12166# Switch B:
12167# 1 - Upper/Lower Shift
12168# 2 - Typewriter Shift
12169# 3 - Half Duplex / Full Duplex
12170# 4 - Light/Dark Background
12171# 5-6 - Carriage Return Without / With Line Feed
12172# 7 - Extended Mode
12173# 8 - Suppress Keyboard Display
12174#
12175# Switch C:
12176# 1 - End of line entry disabled/enabled
12177# 2 - Conversational mode / (Local?) Mode
12178# 3 - Control characters displayed / not displayed
12179# 4 - (2-wire?) / 4-wire communications
12180# 5 - RTS on and off for each character
12181# 6 - (50Hz?) / 60 Hz
12182# 7 - Exit after level zero diagnostics
12183# 8 - RS-232 interface
12184#
12185# Switch D:
12186# 1 - Reverse Channel (yes / no)
12187# 2 - Manual answer (no / yes)
12188# 3-4 - Cursor appearance
12189# 5 - Communication Rate
12190# 6 - Enable / Disable EXT turnoff
12191# 7 - Enable / Disable CR turnoff
12192# 8 - Enable / Disable backspace
12193#
12194# Since each attribute parameter is 0 or 1, we shift each attribute (standout,
12195# reverse, blink, dim, and underline) the appropriate number of bits (by
12196# multiplying the 0 or 1 by a correct factor to shift) so the bias character,
12197# '@' is (effectively) "or"ed with each attribute to generate the proper third
12198# character in the <ESC>0 sequence. The :sa: string implements the following
12199# equation:
12200#
12201# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17)) =>
12202# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17))
12203#
12204# Where: P1 <==> Standout attribute parameter
12205# P2 <==> Underline attribute parameter
12206# P3 <==> Reverse attribute parameter
12207# P4 <==> Blink attribute parameter
12208# P5 <==> Dim attribute parameter
12209# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO.
12210ncr7900i|ncr7900|ncr 7900 model 1:\
12211 :am:bw:ul:\
12212 :co#80:li#24:sg#1:ug#1:\
12213 :bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\E1%r%.%.:cr=^M:do=^J:\
12214 :is=\E0@\010\E3\E4\E7:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:\
12215 :ll=^A:mb=\E0B:me=\E0@:mh=\E0A:mr=\E0P:nd=^F:pf=^T:po=^R:\
12216 :..sa=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c:\
12217 :se=\E0@:sf=^J:so=\E0Q:ue=\E0@:up=^Z:us=\E0`:
12218ncr7900iv|ncr 7900 model 4:\
12219 :am:bw:es:hs:\
12220 :co#80:li#24:\
12221 :al=\E^N:bl=^G:cl=^L:cm=\013%+@\E\005%02:cr=^M:dl=\E^O:\
12222 :do=^J:ds=\Ey1:fs=\Ek\Ey5:ho=\013@\E^E00:k1=\ES:k2=\ET:\
12223 :k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:kb=^H:kd=\EB:\
12224 :kh=\EH:kl=\ED:kr=\EC:ku=\EA:l6=blue:l7=red:l8=white:le=^H:\
12225 :nw=^M^J:sf=^J:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:
12226# Warning: This terminal will lock out the keyboard when it receives a CTRL-D.
12227# The user can enter a CTRL-B to get out of this locked state.
12228# In <hpa>, we want to output the character given by the formula:
12229# ((col / 10) * 16) + (col % 10) where "col" is "p1"
12230ncr7901|ncr 7901 model:\
12231 :am:bw:ul:\
12232 :co#80:li#24:\
12233 :bl=^G:cd=\Ek:ce=\EK:ch=\020%B%.:cl=^L:cm=\EY%+ %+ :cr=^M:\
12234 :cv=\013%+@:do=^J:is=\E4^O:kC=^L:kd=^J:kh=^H:kl=^U:kr=^F:\
12235 :ku=^Z:le=^H:ll=^A:mb=\E0B:me=^O:mh=\E0A:mr=\E0P:nd=^F:pf=^T:\
12236 :po=^R:\
12237 :..sa=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016:\
12238 :se=^O:sf=^J:so=\E0Q\016:ue=^O:up=^Z:us=\E0`\016:ve=^X:\
12239 :vi=^W:
12240
12241#### Perkin-Elmer (Owl)
12242#
12243# These are official terminfo entries from within Perkin-Elmer.
12244#
12245
12246bantam|pe550|pe6100|perkin elmer 550:\
12247 :bs:\
12248 :co#80:li#24:\
12249 :bl=^G:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:do=^J:ho=\EH:\
12250 :le=^H:ll=\EH\EA:nd=\EC:sf=^J:up=\EA:
12251fox|pe1100|perkin elmer 1100:\
12252 :am:bs:\
12253 :co#80:li#24:\
12254 :bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EX%+ \EY%+ :cr=^M:\
12255 :ct=\E3:do=^J:ho=\EH:le=^H:ll=\EH\EA:nd=\EC:sf=^J:st=\E1:\
12256 :up=\EA:vb=\020\002\020\003:
12257owl|pe1200|perkin elmer 1200:\
12258 :am:bs:in:\
12259 :co#80:li#24:\
12260 :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EX%+ \EY%+ :\
12261 :cr=^M:ct=\E3:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\EN:im=:ip=:\
12262 :k0=\ERJ:k1=\ERA:k2=\ERB:k3=\ERC:k4=\ERD:k5=\ERE:k6=\ERF:\
12263 :k7=\ERG:k8=\ERH:k9=\ERI:kb=^H:le=^H:ll=\EH\EA:me=\E!\0:\
12264 :nd=\EC:se=\E!\0:sf=^J:so=\E!^H:st=\E1:up=\EA:\
12265 :vb=\020\002\020\003:
12266pe1251|pe6300|pe6312|perkin elmer 1251:\
12267 :am:\
12268 :co#80:it#8:li#24:pb#300:sg#1:vt#8:\
12269 :bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:ct=\E3:\
12270 :do=\EB:ho=\EH:k0=\ERA:k1=\ERB:k2=\ERC:k3=\ERD:k4=\ERE:\
12271 :k5=\ERF:k6=\ERG:k7=\ERH:k8=\ERI:k9=\ERJ:k;=\ERK:le=\ED:\
12272 :nd=\EC:sf=^J:st=\E1:up=\EA:
12273# (pe7000m: this had
12274# rmul=\E!\0, smul=\E!\040,
12275# which is probably wrong, it collides with kf0
12276pe7000m|perkin elmer 7000 series monochrome monitor:\
12277 :am:\
12278 :co#80:li#24:\
12279 :bl=^G:bt=\E!Y:cd=\EJ:ce=\EI:cl=\EK:cm=\ES%+ %+ :cr=^M:\
12280 :do=\EB:ho=\EH:i1=\E!\0\EW 7o\Egf\ES7\s:k0=\E!\0:\
12281 :k1=\E!^A:k2=\E!^B:k3=\E!^C:k4=\E!^D:k5=\E!^E:k6=\E!^F:\
12282 :k7=\E!^G:k8=\E!^H:k9=\E!^I:k;=\E!^J:kb=^H:kd=\E!U:kh=\E!S:\
12283 :kl=\E!V:kr=\E!W:ku=\E!T:le=\ED:ll=\ES7\s:nd=\EC:sf=^J:\
12284 :sr=\ER:up=\EA:
12285pe7000c|perkin elmer 7000 series color monitor:\
12286 :i1=\E!\0\EW 7o\Egf\Eb0\Ec7\ES7\s:se=\Eb0:so=\Eb2:\
12287 :ue=\E!\0:us=\E!\s:tc=pe7000m:
12288
12289#### Sperry Univac
12290#
12291# Sperry Univac has merged with Burroughs to form Unisys.
12292#
12293
12294# This entry is for the Sperry UTS30 terminal running the TTY
12295# utility under control of CP/M Plus 1R1. The functionality
12296# provided is comparable to the DEC vt100.
12297# (uts30: I added <rmam>/<smam> based on the init string -- esr)
12298uts30|sperry uts30 with cp/m@1R1:\
12299 :am:bw:hs:\
12300 :co#80:li#24:ws#40:\
12301 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
12302 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7m:SF=\E[%dB:\
12303 :SR=\E[%dA:UP=\E[%dA:\
12304 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
12305 :ae=\Ed:al=\EN:as=\EF:bl=^G:cd=\E[J:ce=\E[K:cl=^L:\
12306 :cm=\E[%i%d;%dH:cr=^M:cs=\EU%+ %+ :dc=\EM:dl=\EL:do=\EB:\
12307 :ei=:fs=^M:ho=\E[H:ic=\EO:im=:is=\E[U 7\E[24;1H:kb=^H:\
12308 :kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:mb=\E[5m:\
12309 :md=\E[1m:me=\E[m:mr=\E[7m:nd=\EC:rc=\EX:\
12310 :rf=/usr/share/tabset/vt100:\
12311 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:sc=\EW:se=\E[m:\
12312 :sf=^J:so=\E[7m:sr=\EI:ta=^I:ts=\E]:uc=\EPB:ue=\E[m:up=\E[A:\
12313 :us=\E[4m:ve=\ES:vi=\ER:
12314
12315#### Tandem
12316#
12317# Tandem builds these things for use with its line of fault-tolerant
12318# transaction-processing computers. They aren't generally available
12319# on the merchant market, and so are fairly uncommon.
12320#
12321
12322tandem6510|adm3a repackaged by Tandem:\
12323 :tc=adm3a:
12324
12325# A funny series of terminal that TANDEM uses. The actual model numbers
12326# have a fourth digit after 653 that designates minor variants. These are
12327# natively block-mode and rather ugly, but they have a character mode which
12328# this doubtless(?) exploits. There is a 6520 that is slightly dumber.
12329# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also,
12330# removed :if=/usr/share/tabset/tandem653:, no such file -- esr)
12331tandem653|t653x|Tandem 653x multipage terminal:\
12332 :am:bs:da:db:hs:\
12333 :co#80:li#24:sg#1:ug#1:ws#64:\
12334 :cd=\EJ:ce=\EK:cl=\EI:cm=\023%+ %+ :do=^J:ds=\Eo\r:fs=^M:\
12335 :ho=\EH:le=^H:me=\E6\s:nd=\EC:se=\E6\s:sf=\ES:so=\E6$:\
12336 :sr=\ET:ts=\Eo:ue=\E6\s:up=\EA:us=\E60:
12337
12338#### Tandy/Radio Shack
12339#
12340# Tandy has a line of VDTs distinct from its microcomputers.
12341#
12342
12343dmterm|deskmate terminal:\
12344 :am:bw:\
12345 :co#80:li#24:\
12346 :al=\EP:bl=^G:cd=\EJ:ce=\EK:cl=\Ej:cm=\EY%+ %+ :cr=^M:\
12347 :dc=\ES:dl=\ER:do=\EB:ei=:ho=\EH:ic=\EQ:im=:k0=\E1:k1=\E2:\
12348 :k2=\E3:k3=\E4:k4=\E5:k5=\E6:k6=\E7:k7=\E8:k8=\E9:k9=\E0:\
12349 :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:l0=f1:l1=f2:l2=f3:l3=f4:\
12350 :l4=f5:l5=f6:l6=f7:l7=f8:l8=f9:l9=f10:le=^H:ll=\EE:mk@:nd=\EC:\
12351 :sf=\EX:ta=^I:ue@:up=\EA:us@:ve=\EG6:vi=\EG5:tc=adm+sgr:
12352dt100|dt-100|Tandy DT-100 terminal:\
12353 :xo:\
12354 :co#80:li#24:sg#1:ug#1:\
12355 :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:bl=^G:\
12356 :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\010\E[%i%d;%dH:cr=^M:\
12357 :cs=\E[%2;%2r:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:\
12358 :im=:is=\E[?3l\E)0\E(B:k1=\E[?3i:k2=\E[2i:k3=\E[@:k4=\E[M:\
12359 :k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:k9=\E[21~:\
12360 :k;=\E[?5i:kN=\E[29~:kP=\E[28~:kd=\E[B:kh=\E[H:kl=\E[D:\
12361 :kr=\E[C:ku=\E[A:l1=f1:l2=f2:l3=f3:l4=f4:l5=f5:l6=f6:l7=f7:\
12362 :l8=f8:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\
12363 :ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l:
12364dt100w|dt-100w|Tandy DT-100 terminal (wide mode):\
12365 :co#132:tc=dt100:
12366dt110|Tandy DT-110 emulating ansi:\
12367 :xo:\
12368 :co#80:li#24:\
12369 :@7=\E[K:ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[0L:as=^N:\
12370 :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:cm=\010\E[%i%d;%dH:\
12371 :cr=^M:cs=\E[%i%d;%dr:dc=\E[0P:dl=\E[0M:do=\E[0B:\
12372 :eA=\E(B\E)0:ei=:ho=\E[H:ic=\E[0@:im=:is=\E[?3l\E)0\E(B:\
12373 :k1=\E[1~:k2=\E[2~:k3=\E[3~:k4=\E[4~:k5=\E[5~:k6=\E[6~:\
12374 :k7=\E[7~:k8=\E[8~:k9=\E[9~:k;=\E[10~:kI=\E[@:kN=\E[26~:\
12375 :kP=\E[25~:kd=\E[B:kh=\E[G:kl=\E[D:kr=\E[C:ku=\E[A:l0=f1:\
12376 :l1=f2:l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:l8=f9:l9=f10:le=^H:\
12377 :me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\
12378 :ue=\E[m:up=\E[0A:us=\E[4m:ve=\E[?25h:vi=\E[?25l:
12379pt210|TRS-80 PT-210 printing terminal:\
12380 :hc:os:\
12381 :co#80:\
12382 :bl=^G:cr=^M:do=^J:sf=^J:
12383
12384#### Tektronix (tek)
12385#
12386# Tektronix tubes are graphics terminals. Most of them use modified
12387# oscilloscope technology incorporating a long-persistence green phosphor,
12388# and support vector graphics on a main screen with an attached "dialogue
12389# area" for interactive text.
12390#
12391
12392tek|tek4012|tektronix 4012:\
12393 :bs:os:\
12394 :co#75:li#35:\
12395 :bl=^G:cl=\E\014:cr=^M:do=^J:ff=\014:is=\E^O:le=^H:
12396# (tek4013: added <acsc> to suppress tic warnings re :as:/:ae: --esr)
12397tek4013|tektronix 4013:\
12398 :ac=:ae=\E^O:as=\E^N:tc=tek4012:
12399tek4014|tektronix 4014:\
12400 :co#81:li#38:\
12401 :is=\E\017\E9:tc=tek4012:
12402# (tek4015: added <acsc> to suppress tic warnings re :as:/:ae: --esr)
12403tek4015|tektronix 4015:\
12404 :ac=:ae=\E^O:as=\E^N:tc=tek4014:
12405tek4014-sm|tektronix 4014 in small font:\
12406 :co#121:li#58:\
12407 :is=\E\017\E\::tc=tek4014:
12408# (tek4015-sm: added <acsc> to suppress tic warnings re :as:/:ae: --esr)
12409tek4015-sm|tektronix 4015 in small font:\
12410 :ac=:ae=\E^O:as=\E^N:tc=tek4014-sm:
12411# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay>
12412#
12413# You need to have "stty nl2" in effect. Some versions of tset(1) know
12414# how to set it for you.
12415#
12416# It's got the Magic Cookie problem around stand-out mode. If you can't
12417# live with Magic Cookie, remove the :so: and :se: fields and do without
12418# reverse video. If you like reverse video stand-out mode but don't want
12419# it to flash, change the letter 'H' to 'P' in the :so: field.
12420tek4023|tektronix 4023:\
12421 :am:bs:\
12422 :co#80:dN#4:li#24:sg#1:vt#4:\
12423 :bl=^G:cl=4\E\014:cm=\034%r%+ %+ :cr=^M:do=^J:kb=^H:le=^H:\
12424 :nd=^I:nl=^J:se=^_@:so=^_P:
12425# It is recommended that you run the 4025 at 4800 baud or less;
12426# various bugs in the terminal appear at 9600. It wedges at the
12427# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed
12428# on keyboard don't work. You have to hit BREAK twice to get
12429# one break at any speed - this is a documented feature.
12430# Can't use cursor motion because it's memory relative, and
12431# because it only works in the workspace, not the monitor.
12432# Same for home. Likewise, standout only works in the workspace.
12433#
12434# :ce: was commented out since vi and rogue seem to work better
12435# simulating it with lots of spaces!
12436#
12437# :al: and :AL: had 145ms of padding, but that slowed down vi's ^U
12438# and didn't seem necessary.
12439#
12440tek4024|tek4025|tek4027|tektronix 4024/4025/4027:\
12441 :am:bs:da:db:\
12442 :co#80:it#8:li#34:lm#0:\
12443 :AL=\037up\r\037ili %d\r:CC=^_:DL=\037dli %d\r\006:\
12444 :DO=\037dow %d\r:LE=\037lef %d\r:RI=\037rig %d\r:\
12445 :UP=\037up %d\r:al=\037up\r\037ili\r:bl=^G:\
12446 :cd=\037dli 50\r:cl=\037era\r\n\n:cr=^M:dc=\037dch\r:\
12447 :dl=\037dli\r\006:do=^F^J:ei=:ic=\037ich\r \010:im=:\
12448 :is=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r:\
12449 :ke=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r:\
12450 :ks=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r:\
12451 :le=^H:nd=\037rig\r:sf=^F^J:ta=^I:up=^K:
12452tek4025-17|tek 4025 17 line window:\
12453 :li#17:tc=tek4025:
12454tek4025-17-ws|tek 4025 17 line window in workspace:\
12455 :is=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r:\
12456 :se=\037att s\r:so=\037att e\r:te=\037mon h\r:\
12457 :ti=\037wor h\r:tc=tek4025-17:
12458tek4025-ex|tek4027-ex|tek 4025/4027 w/!:\
12459 :is=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r:\
12460 :te=\037com 33\r:ti=!com 31\r:tc=tek4025:
12461# Tektronix 4025a
12462# From: Doug Gwyn <gwyn@brl-smoke.ARPA>
12463# The following status modes are assumed for normal operation (replace the
12464# initial "!" by whatever the current command character is):
12465# !COM 29 # NOTE: changes command character to GS (^])
12466# ^]DUP
12467# ^]ECH R
12468# ^]EOL
12469# ^]RSS T
12470# ^]SNO N
12471# ^]STO 9 17 25 33 41 49 57 65 73
12472# Other modes may be set according to communication requirements.
12473# If the command character is inadvertently changed, termcap can't restore it.
12474# Insert-character cannot be made to work on both top and bottom rows.
12475# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas.
12476# There also seems to be a problem with vertical motion, perhaps involving
12477# delete/insert-line, following a typed carriage return. This terminal sucks.
12478# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
12479# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't
12480# work any more. -- esr)
12481tek4025a|Tektronix 4025A:\
12482 :am:bs:bw:da:db:pt:xo:\
12483 :co#80:it#8:li#34:\
12484 :CC=^]:DC=\035dch %d;:DL=\035dli %d;:DO=\035dow %d;:\
12485 :LE=\035lef %d;:RI=\035rig %d;:SF=\035dow %d;:\
12486 :UP=\035up %d;:al=\013\035ili;:bl=^G:bt=\035bac;:\
12487 :ce=\035dch 80;:ch=\r\035rig %d;:cl=\035era;\n\035rup;:\
12488 :cr=^M:ct=\035sto;:dc=\035dch;:dl=\035dli;:do=^J:le=^H:\
12489 :nd=\035rig;:\
12490 :rs=!com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;:\
12491 :sf=^J:ta=^I:up=^K:
12492# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981
12493# Here's the command file that I use to get rogue to work on the 4025.
12494# It should work with any program using the old curses (e.g. it better
12495# not try to scroll, or cursor addressing won't work. Also, you can't
12496# see the cursor.)
12497# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh)
12498tek4025-cr|tek 4025 for curses and rogue:\
12499 :am:bs:\
12500 :co#80:it#8:li#33:\
12501 :cl=\037era;:cm=\037jum%i%d,%d;:do=^F^J:\
12502 :is=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r:\
12503 :le=^H:nd=\037rig;:sf=^F^J:ta=^I:te=\037wor 0:\
12504 :ti=\037wor 33h:up=^K:
12505# next two lines commented out since curses only allows 128 chars, sigh.
12506# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\
12507# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0:
12508tek4025ex|4025ex|4027ex|tek 4025 w/!:\
12509 :is=\037com 33\r\n!sto 9,17,25,33,41,49,57,65,73\r:\
12510 :te=\037com 33\r:ti=!com 31\r:tc=tek4025:
12511tek4105|tektronix 4105:\
12512 :am:bs:mi:ms:ul:xn:xt:\
12513 :co#79:it#8:li#29:\
12514 :ac=:ae=\E[m:al=\E[1L:as=\E[1m:bl=^G:bt=\E[Z:cd=\E[J:\
12515 :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%2;%2H:cr=^M:ct=\E[1g:\
12516 :dc=\E[1P:dl=\E[1M:do=\E[1B:ei=\E[4l:ho=\E[H:i1=\E%!1\E[m:\
12517 :im=\E[4h:is=\E%!1\E[?6141\E[m:kb=^H:kd=\E[1B:kl=\E[1D:\
12518 :kr=\E[1C:ku=\E[1A:mb=\E[=3;<7m:md=\E[=7;<4m:\
12519 :me=\E[=0;<1m:mh=\E[=1;<6m:mk=\E[=6;<5:mr=\E[=1;<3m:\
12520 :nd=\E[1C:se=\E[=0;<1m:sf=\E[S:so=\E[=2;<3m:sr=\E[T:ta=^I:\
12521 :te=:ti=\E%!1\E[?6l\E[2J:ue=\E[=0;<1m:up=\E[1A:\
12522 :us=\E[=5;<2m:
12523
12524# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr)
12525tek4105-30|4015 emulating 30 line vt100:\
12526 :am:mi:ms:xn:xo:\
12527 :co#80:it#8:li#30:vt#3:\
12528 :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\
12529 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
12530 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
12531 :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
12532 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\
12533 :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\
12534 :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\
12535 :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
12536 :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\
12537 :nd=\E[C:rc=\E8:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
12538 :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>:\
12539 :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\
12540 :ue=\E[m:up=\E[A:us=\E[4m:
12541
12542# Tektronix 4105 from BRL
12543# The following setup modes are assumed for normal operation:
12544# CODE ansi CRLF no DABUFFER 141
12545# DAENABLE yes DALINES 30 DAMODE replace
12546# DAVISIBILITY yes ECHO no EDITMARGINS 1 30
12547# FLAGGING input INSERTREPLACE replace LFCR no
12548# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B
12549# SELECTCHARSET G1 0 TABS -2
12550# Other setup modes may be set for operator convenience or communication
12551# requirements; I recommend
12552# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
12553# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
12554# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
12555# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1
12556# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
12557# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132
12558# XMTDELAY 0
12559# and factory color maps. After setting these modes, save them with NVSAVE. No
12560# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
12561# "IC" cannot be used in combination with "im" & "ei".
12562# "tek4105a" is just a guess:
12563tek4105a|Tektronix 4105:\
12564 :bs:ms:pt:xo:\
12565 :co#80:it#8:kn#8:li#30:vt#3:\
12566 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
12567 :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:ae=^O:al=\E[L:\
12568 :as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
12569 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
12570 :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\
12571 :is=\E%!1:k0=\EOA:k1=\EOB:k2=\EOC:k3=\EOD:k4=\EOP:k5=\EOQ:\
12572 :k6=\EOR:k7=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
12573 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:\
12574 :l5=F6:l6=F8:le=^H:ll=\E[30;H:mb=\E[5m:md=\E[1m:me=\E[m:\
12575 :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:\
12576 :rs=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>:\
12577 :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
12578 :te=\E%!0\ELBH=\E%!1:ti=\E[?6l:ue=\E[m:up=\EM:us=\E[4m:\
12579 :ve=\E%!0\ETD10\E%!1:vi=\E%!0\ETD00\E%!1:\
12580 :vs=\E%!0\ETD70\E%!1:
12581
12582#
12583# Tektronix 4106/4107/4109 from BRL
12584# The following setup modes are assumed for normal operation:
12585# CODE ansi COLUMNMODE 80 CRLF no
12586# DABUFFER 141 DAENABLE yes DALINES 32
12587# DAMODE replace DAVISIBILITY yes ECHO no
12588# EDITMARGINS 1 32 FLAGGING input INSERTREPLACE replace
12589# LFCR no LOCKKEYBOARD no ORIGINMODE relative
12590# PROMPTMODE no SELECTCHARSET G0 B SELECTCHARSET G1 0
12591# TABS -2
12592# Other setup modes may be set for operator convenience or communication
12593# requirements; I recommend
12594# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
12595# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
12596# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
12597# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3
12598# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
12599# PROMPTSTRING '' QUEUESIZE 2620 WINDOW 0 0 4095 3132
12600# XMTDELAY 0
12601# and factory color maps. After setting these modes, save them with NVSAVE. No
12602# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
12603# "IC" cannot be used in combination with "im" & "ei".
12604tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109:\
12605 :ms:xo:\
12606 :co#80:it#8:li#32:vt#3:\
12607 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
12608 :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:ae=^O:al=\E[L:\
12609 :as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
12610 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
12611 :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\
12612 :is=\E%!1:k0=\EOA:k1=\EOB:k2=\EOC:k3=\EOD:k4=\EOP:k5=\EOQ:\
12613 :k6=\EOR:k7=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
12614 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:\
12615 :l5=F6:l6=F8:le=^H:ll=\E[32;H:mb=\E[5m:md=\E[1m:me=\E[m:\
12616 :mr=\E[7m:nd=\E[C:nw=\EE:\
12617 :r1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>:\
12618 :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7;42m:sr=\EM:st=\EH:\
12619 :ta=^I:te=\E%!0\ELBH=\E%!1:ti=\E[?6l:ue=\E[m:up=\EM:\
12620 :us=\E[4m:ve=\E%!0\ETD10\E%!1:vi=\E%!0\ETD00\E%!1:\
12621 :vs=\E%!0\ETD70\E%!1:
12622
12623tek4107|tek4109|tektronix terminals 4107 4109:\
12624 :am:bs:mi:ms:ul:xn:xt:\
12625 :co#79:it#8:li#29:\
12626 :bl=^G:cd=\EJ:ce=\EK:cl=\ELZ:cm=\EY%+ %+ :cr=^M:do=^J:kb=^H:\
12627 :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:mb=\E%!1\E[5m\E%!0:\
12628 :md=\E%!1\E[1m\E%!0:me=\E%!1\E[m\E%!0:\
12629 :mh=\E%!1\E[<0m\E%!0:mr=\E%!1\E[7m\E%0:nd=\EC:\
12630 :..sa=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>\E%%!0:\
12631 :se=\E%!1\E[m\E%!0:sf=^J:so=\E%!1\E[7;5m\E%!0:sr=\EI:\
12632 :ta=^I:ue=\E%!1\E[m\E%!0:up=\EA:us=\E%!1\E[4m\E%!0:\
12633 :ve=\E%!0:vs=\E%!3:
12634# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s;
12635# see the note attached to tek4207.
12636tek4207-s|Tektronix 4207 with sysline but no memory:\
12637 :es:hs:\
12638 :ds=\E7\E[?6l\E[2K\E[?6h\E8:fs=\E[?6h\E8:\
12639 :i1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J:\
12640 :is=\E7\E[?6l\E[2K\E[?6h\E8:\
12641 :ts=\E7\E[?6l\E[2K\E[;%i%df:tc=tek4107:
12642
12643# The 4110 series may be a wonderful graphics series, but they make the 4025
12644# look good for screen editing. In the dialog area, you can't move the cursor
12645# off the bottom line. Out of the dialog area, ^K moves it up, but there
12646# is no way to scroll.
12647#
12648# Note that there is a floppy for free from Tek that makes the
12649# 4112 emulate the vt52 (use the vt52 termcap). There is also
12650# an expected enhancement that will use ANSI standard sequences.
12651#
12652# 4112 in non-dialog area pretending to scroll. It really wraps
12653# but vi is said to work (more or less) in this mode.
12654#
12655# 'vi' works reasonably well with this entry.
12656#
12657otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series:\
12658 :am:\
12659 :co#80:li#34:\
12660 :bl=^G:cl=\E^L:cr=^M:do=^J:le=^H:sf=^J:te=\EKA1\ELV1:\
12661 :ti=\EKA0\ELV0\EMG0:up=^K:
12662# The 4112 with the ANSI compatibility enhancement
12663tek4112|tek4114|tektronix 4110 series:\
12664 :am:bs:db:\
12665 :co#80:li#34:\
12666 :al=\E[L:bt=\E[Z:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[0;0H:\
12667 :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=:ic=\E[@:im=:is=\E3!1:\
12668 :le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=\E7\E[0;0H\E[M\E8:\
12669 :so=\E[7m:sr=\E7\E[0;0H\E[L\E8:ue=\E[m:up=\EM:us=\E[4m:
12670tek4112-nd|4112 not in dialog area:\
12671 :ns:\
12672 :up=^K:tc=tek4112:
12673tek4112-5|4112 in 5 line dialog area:\
12674 :li#5:tc=tek4112:
12675# (tek4113: this used to have ":nd=\LM1\s\LM0:", someone's mistake;
12676# removed ":as=\E^N:, :ae=\E^O:", which had been commented out in 8.3.
12677# Note, the !0 and !1 sequences in :te:/:ti:/:ve:/:vi: were
12678# previously \0410 and \0411 sequences...I don't *think* they were supposed
12679# to be 4-digit octal -- esr)
12680tek4113|tektronix 4113 color graphics with 5 line dialog area:\
12681 :am:bs:da:eo:\
12682 :co#80:li#5:\
12683 :cl=\ELZ:do=^J:is=\EKA1\ELL5\ELV0\ELV1:le=^H:\
12684 :nd=\ELM1 \ELM0:uc=\010\ELM1_\ELM0:\
12685 :vb=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0:
12686tek4113-34|tektronix 4113 color graphics with 34 line dialog area:\
12687 :li#34:\
12688 :is=\EKA1\ELLB2\ELV0\ELV1:tc=tek4113:
12689# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not
12690# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up .
12691# :vb: needs enough delay to let you see the background color being toggled.
12692tek4113-nd|tektronix 4113 color graphics with no dialog area:\
12693 :am:bs:eo:\
12694 :co#80:it#8:li#34:\
12695 :cl=\E^L:do=^J:ho=\ELF7l\177 @:is=\ELZ\EKA0\ELF7l\177 @:\
12696 :le=^H:ll=\ELF hl @:nd=^I:se=\EMT1:so=\EMT2:ta=^I:\
12697 :uc=\010\EMG1_\EMG0:up=^K:\
12698 :vb=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0:\
12699 :vs=\ELZ\EKA0:
12700# This entry is from Tek. Inc. (Brian Biehl)
12701# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr)
12702otek4115|Tektronix 4115:\
12703 :am:bs:da:db:eo:\
12704 :co#80:it#8:li#34:\
12705 :RA=\E[?7l:SA=\E[?7h:al=\E[L:bt=\E[Z:cd=\E[J:ce=\E[K:\
12706 :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:\
12707 :ei=\E[4l:ho=\E[H:if=/usr/share/tabset/vt100:im=\E[4h:\
12708 :is=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m:\
12709 :kb=^H:ke=\E>:ks=\E=:le=\E[D:me=\E[m:nd=\E[C:se=\E[m:\
12710 :so=\E[7m:sr=\EM:ta=^I:te=\E%!0\ELBG8\E%!1\E[34;1H\E[J:\
12711 :ti=\E%!0\ELBB2\E%!1:ue=\E[m:up=\E[A:us=\E[4m:\
12712 :ve=\E%!0\ELBG8\E%!1\E[34;1H:vs=\E%!0\ELBB2\E%!1:
12713tek4115|newer tektronix 4115 entry with more ANSI capabilities:\
12714 :am:xo:\
12715 :co#80:li#34:\
12716 :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
12717 :RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:al=\E[L:bl=^G:\
12718 :bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:cl=\E[H\E[J:\
12719 :cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:cv=\E[%+^Ad:dc=\E[P:\
12720 :dl=\E[M:do=^J:ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=\E[B:kh=\E[H:\
12721 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\
12722 :mk=\E[8m:mr=\E[7m:nd=\E[C:..rp=%p1%c\E[%p2%{1}%-%db:\
12723 :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\
12724 :se=\E[m:sf=^J:so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\E[A:\
12725 :us=\E[4m:
12726# The tek4125 emulates a vt100 incorrectly - the scrolling region
12727# command is ignored. The following entry replaces :cs: with the needed
12728# :AL:, :AL:, and :im:; removes some cursor pad commands that the tek4125
12729# chokes on; and adds a lot of initialization for the tek dialog area.
12730# Note that this entry uses all 34 lines and sets the cursor color to green.
12731# Steve Jacobson 8/85
12732# (tek4125: there were two "\!"s in the is that I replaced with "\E!";
12733# commented out, :im:=\E1 because there's no :ei: -- esr)
12734tek4125|tektronix 4125:\
12735 :li#34:\
12736 :al=\E[1L:cs@:dl=\E[1M:\
12737 :is=\E%\E!0\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E!1\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
12738 :ks=\E=:rc@:sc@:tc=vt100:
12739
12740# From: <jcoker@ucbic>
12741# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO
12742# supplied another, less capable 4107 entry. So we'll use that for 4107 and
12743# note that if jcoker wasn't confused you may be able to use this one.
12744# I merged in :ms:,:sf:,:sr:,<invis>,:ct: from a BRL entry -- esr)
12745tek4207|Tektronix 4207 graphics terminal with memory:\
12746 :am:bw:mi:ms:ul:xn:\
12747 :co#80:it#8:li#32:\
12748 :al=3\E[L:bt=\E[Z:cd=\E[J:ce=5\E[K:cl=156\E[H\E[J:\
12749 :cm=\E[%i%d;%dH:ct=\E[1g:dc=4\E[P:dl=3\E[M:do=^J:ei=:\
12750 :ho=\E[H:ic=4\E[@:im=:\
12751 :is=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J:\
12752 :kd=\ED:kh=\E[H:kl=\E[D:kr=\E[C:ku=\EM:le=^H:mb=\E[5m:\
12753 :md=\E[1m:me=\E[m:mk=\E[=6;<5:mr=\E[7m:nd=\E[C:se=\E[m:\
12754 :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:\
12755 :te=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f:ti=\E[?6l\E[H\E[J:\
12756 :ue=\E[m:up=\EM:us=\E[4m:
12757
12758# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985
12759# (tek4404: There was a "\!" in :ti: that I replaced with "\E!".
12760# Tab had been given as \E2I,that must be the tab-set capability -- esr)
12761tek4404|tektronix 4404:\
12762 :bs:\
12763 :co#80:it#8:li#32:\
12764 :al=\E[1L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\
12765 :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[1M:do=^J:ei=\E[4l:ho=\E[H:\
12766 :im=\E[4h:kd=\E[B:ke=\E[?1h:kl=\E[D:kr=\E[C:ks=\E[?1l:\
12767 :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:nd=\E[C:rc=\E8:\
12768 :sc=\E7:se=\E[27m:so=\E[7m:st=\E[2I:ta=^I:\
12769 :te=\E[1;1H\E[0J\E[?6h\E[?1l:\
12770 :ti=\E%\E!1\E[1;32r\E[?6l\E>:ue=\E[m:up=\E[A:us=\E[4m:
12771# Some unknown person wrote:
12772# I added the is string - straight Unix has ESC ; in the login
12773# string which sets a ct8500 into monitor mode (aka 4025 snoopy
12774# mode). The is string here cleans up a few things (but not
12775# everything).
12776ct8500|tektronix ct8500:\
12777 :am:bw:da:db:\
12778 :co#80:li#25:\
12779 :al=\E^L:bl=^G:bt=\E^I:cd=\E^U:ce=\E^T:cl=\E^E:\
12780 :cm=\E|%+ %+ :cr=^M:dc=\E^]:dl=\E^M:do=^J:ei=:ic=\E^\:im=:\
12781 :is=\037\EZ\Ek:le=^H:me=\E\s:nd=\ES:se=\E\s:sf=^J:so=\E$:\
12782 :sr=\E^A:ta=^I:ue=\E\s:up=\ER:us=\E!:
12783
12784# Tektronix 4205 terminal.
12785#
12786# am is not defined because the wrap around occurs not when the char.
12787# is placed in the 80'th column, but when we are attempting to type
12788# the 81'st character on the line. (esr: hmm, this is like the vt100
12789# version of xenl, perhaps am + xenl would work!)
12790#
12791# Bold, dim, and standout are simulated by colors and thus not allowed
12792# with colors. The tektronix color table is mapped into the RGB color
12793# table by setf/setb. All colors are reset to factory specifications by oc.
12794# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the
12795# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub-
12796# interval then maps into pre-defined value.
12797# (untranslatable capabilities removed to fit entry within 1023 bytes)
12798tek4205|tektronix 4205:\
12799 :cc:mi:ms:\
12800 :Co#8:NC#49:co#80:it#8:li#30:pa#63:\
12801 :AL=\E[%dL:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:\
12802 :UP=\E[%dA:\
12803 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
12804 :ae=^O:al=\E[1L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\
12805 :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:ct=\E[1g:\
12806 :dc=\E[1P:dl=\E[1M:do=\E[B:eA=\E)0:ec=\E%dX:ei=\E[4l:\
12807 :ho=\E[H:i1=\E%!0\ETM1\E%!1\E[m:im=\E[4h:k0=\EOA:k1=\EOB:\
12808 :k2=\EOC:k3=\EOD:k4=\EP:k5=\EQ:k6=\ER:k7=\ES:kb=^H:kd=\E[B:\
12809 :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[=7;<4m:\
12810 :me=\E[=0;<1m\E[24;25;27m\017:mh=\E[=1;<6m:mk=\E[=6;<5:\
12811 :mr=\E[7m:nd=\E[C:\
12812 :oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1:\
12813 :op=\E[39;40m:se=\E[=0;<1m:sf=\ED:so=\E[=2;<3m:sr=\EM:\
12814 :ta=^I:te=:ti=\E%%%!1\E[?6l\E[2J:ue=\E[24m:up=\E[A:\
12815 :us=\E[4m:
12816
12817#### Teletype (tty)
12818#
12819# These are the hardcopy Teletypes from before AT&T bought the company,
12820# clattering electromechanical dinosaurs in Bakelite cases that printed on
12821# pulpy yellow roll paper. If you remember these you go back a ways.
12822# Teletype-branded VDTs are listed in the AT&T section.
12823#
12824# The earliest UNIXes were designed to use these clunkers; nroff and a few
12825# other programs still default to emitting codes for the Model 37.
12826#
12827
12828tty33|tty35|model 33 or 35 teletype:\
12829 :hc:os:xo:\
12830 :co#72:\
12831 :bl=^G:cr=^M:do=^J:sf=^J:
12832tty37|model 37 teletype:\
12833 :bs:hc:os:xo:\
12834 :bl=^G:cr=^M:do=^J:hd=\E9:hu=\E8:le=^H:sf=^J:up=\E7:
12835
12836# There are known to be at least three flavors of the tty40, all seem more
12837# like IBM half duplex forms fillers than ASCII terminals. They have lots of
12838# awful braindamage, such as printing a visible newline indicator after each
12839# newline. The 40-1 is a half duplex terminal and is hopeless. The 40-2 is
12840# braindamaged but has hope and is described here. The 40-4 is a 3270
12841# lookalike and beyond hope. The terminal has visible bell but I don't know
12842# it - it's null here to prevent it from showing the BL character.
12843# There is an \EG in <nl> because of a bug in old vi (if stty says you have
12844# a "newline" style terminal (-crmode) vi figures all it needs is nl
12845# to get crlf, even if :cr: is not ^M.)
12846# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr)
12847tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2:\
12848 :bs:xo:\
12849 :co#80:li#24:\
12850 :al=\EL:cd=\EJ:cl=\EH\EJ:cr=\EG:ct=\EH\E2:dc=\EP:dl=\EM:\
12851 :do=\EB:ei=:ho=\EH:ic=\E^:im=:kb=^]:kl=^H:le=^H:nd=\EC:pf=^T:\
12852 :po=\022:rs=\023\ER:se=\E4:sf=\ES:so=\E3:sr=\ET:st=\E1:\
12853 :ta=\E@:up=\E7:
12854tty43|model 43 teletype:\
12855 :am:bs:hc:os:xo:\
12856 :co#132:\
12857 :bl=^G:cr=^M:do=^J:kb=^H:le=^H:sf=^J:
12858
12859#### Tymshare
12860#
12861
12862# You can add :is=\E<: to put this 40-column mode, though I can't
12863# for the life of me think why anyone would want to.
12864scanset|sc410|sc415|Tymshare Scan Set:\
12865 :am:bw:ms:\
12866 :co#80:li#24:\
12867 :ac=j%k4l<m-q,x5:ae=^O:as=^N:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:\
12868 :cm=\EY%+ %+ :cr=^M:do=^J:ho=\EH:kd=\EB:kl=\ED:kr=\EC:\
12869 :ku=\EA:le=^H:nd=^I:pf=\E;0:po=\E;0:ps=\E;3:r1=\E>:rc=^C:\
12870 :sc=^B:sf=^J:up=^K:
12871
12872#### Volker-Craig (vc)
12873#
12874# If you saw a Byte Magazine cover with a terminal on it during the early
12875# 1980s, it was probably one of these. Carl Helmers liked them because
12876# they could crank 19.2 and were cheap (that is, he liked them until he tried
12877# to program one...)
12878#
12879
12880# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time
12881# every other linefeed.
12882vc303|vc103|vc203|volker-craig 303:\
12883 :am:bs:ns:\
12884 :co#80:li#24:\
12885 :bl=^G:cl=\014:cr=^M:do=^J:ho=\013:kd=^J:kl=^H:kr=^I:ku=^N:\
12886 :le=^H:ll=\017W:nd=^I:up=^N:
12887vc303a|vc403a|volker-craig 303a:\
12888 :ce=\026:cl=\030:ho=\031:kr=^U:ku=^Z:ll=^P:nd=^U:up=^Z:\
12889 :tc=vc303:
12890# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr)
12891vc404|volker-craig 404:\
12892 :am:bs:\
12893 :co#80:li#24:\
12894 :bl=^G:cd=\027:ce=\026:cl=\030:cm=\020%+ %+ :cr=^M:do=^J:\
12895 :ho=\031:kd=^J:kl=^H:kr=^U:ku=^Z:le=^H:nd=^U:sf=^J:up=^Z:
12896vc404-s|volker-craig 404 w/standout mode:\
12897 :do=^J:se=^O:so=^N:tc=vc404:
12898# From: <wolfgang@cs.sfu.ca>
12899# (vc414: merged in cup/dl1/home from an old vc414h-noxon)
12900vc414|vc414h|Volker-Craig 414H in sane escape mode.:\
12901 :am:bs:\
12902 :co#80:li#24:\
12903 :al=\E\032:cd=\E^X:ce=10\E\017:cl=\E\034:cm=\E\021%r%.%.:\
12904 :dc=\E3:dl=\E\023:do=\E^K:ei=:ho=\E^R:ic=\E\::im=:k0=\EA:\
12905 :k1=\EB:k2=\EC:k3=\ED:k4=\EE:k5=\EF:k6=\EG:k7=\EH:kd=\E^K:\
12906 :kh=\E^R:kl=^H:kr=^P:ku=\E^L:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\
12907 :l4=PF5:l5=PF6:l6=PF7:l7=PF8:nd=^P:se=\E^_:so=\E^Y:up=\E^L:
12908vc415|volker-craig 415:\
12909 :cl=^L:tc=vc404:
12910
12911######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS
12912#
12913
12914#### IBM PC and clones
12915#
12916
12917# The pcplot IBM-PC terminal emulation program is really messed up. It is
12918# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly,
12919# doesn't support scrolling regions, ignores add line commands, and ignores
12920# delete line commands. Consequently, the resulting behavior looks like a
12921# crude adm3a-type terminal.
12922# Steve Jacobson 8/85
12923pcplot|pc-plot terminal emulation program:\
12924 :xn@:\
12925 :AL@:DL@:al@:cs@:dl@:rc@:sc@:tc=vt100:
12926# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA>
12927# I've found that my KayPro II, running MDM730, continues to emulate an
12928# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX
12929# system the following termcap entry works well:
12930# I have noticed a couple of minor glitches, but nothing I can't work
12931# around. (I added two capabilities from the BRL entry -- esr)
12932kaypro|kaypro2|kaypro II:\
12933 :am:bs:\
12934 :co#80:li#24:\
12935 :al=\EE:bl=^G:cd=^W:ce=^X:cl=1\032:cm=\E=%+ %+ :cr=^M:\
12936 :dl=\ER:do=^J:ho=^^:kd=^J:kr=^L:ku=^K:nd=^L:sf=^J:up=^K:
12937
12938# From IBM, Thu May 5 19:35:27 1983
12939# (ibmpc: commented out :im:=\200R because we don't know :ei: -- esr)
12940ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS):\
12941 :am:bs:\
12942 :co#80:li#24:\
12943 :bl=^G:cl=^L^K:cr=^M^^:do=^J:ho=^K:kd=^_:le=^]:nd=^\:sf=\n:\
12944 :up=^^:
12945
12946ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX:\
12947 :am:bs:bw:eo:hs:km:ms:ul:\
12948 :co#80:it#8:li#24:\
12949 :@7=\E[Y:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS\E[%dB:\
12950 :SR=\E[%dT\E[%dA:UP=\E[%dA:\
12951 :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\
12952 :bl=^G:cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\Ec:cm=\E[%i%d;%dH:\
12953 :cr=^M:do=\E[B:ec=\E[%dX:ho=\E[H:k1=\240:k2=\241:k3=\242:\
12954 :k4=\243:k5=\244:k6=\245:k7=\246:k8=\247:k9=\250:k;=\251:\
12955 :kB=^]:kD=\177:kI=\E[^H:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:\
12956 :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;1H:\
12957 :mb=\E[5m:md=\E[1m:me=\E[m:mk=\E[30;40m:mr=\E[7m:nd=\E[C:\
12958 :nw=^M:\
12959 :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\
12960 :se=\E[m:sf=\E[S\E[B:so=\E[7m:sr=\E[T\E[A:ue=\E[m:up=\E[A:\
12961 :us=\E[4m:
12962
12963#### Apple II
12964#
12965# Apple II firmware console first, then various 80-column cards and
12966# terminal emulators. For two cents I'd toss all these in the UFO file
12967# along with the 40-column apple entries.
12968#
12969
12970# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL
12971# 'it#8' tells UNIX that you have tabs every 8 columns. This is a
12972# function of TIC, not the firmware.
12973# The clear key on a IIgs will do something like clear-screen,
12974# depending on what you're in.
12975appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface:\
12976 :am:bs:bw:eo:ms:\
12977 :co#80:it#8:li#24:\
12978 :bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:ho=^Y:\
12979 :kC=^X:kD=\177:kb=^H:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:nd=^\:\
12980 :nw=^M^W:se=^N:sf=^W:so=^O:sr=^V:ta=^I:up=^_:
12981# Apple //e with 80-column card, entry from BRL
12982# The modem interface is permitted to discard LF (maybe DC1), otherwise
12983# passing characters to the 80-column firmware via COUT (PR#3 assumed).
12984# Auto-wrap does not work right due to newline scrolling delay, which also
12985# requires that you set "stty cr2".
12986# Note: Cursor addressing is only available via the Pascal V1.1 entry,
12987# not via the BASIC PR#3 hook. All this nonsense can be avoided only by
12988# using a terminal emulation program instead of the built-in firmware.
12989apple2e|Apple //e:\
12990 :bw:ms:\
12991 :co#80:li#24:\
12992 :bl=^G:cd=4*\013:ce=4\035:cl=100\014:do=^J:ho=^Y:is=^R^N:\
12993 :kb=^H:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:me=^N:mr=^O:nw=100\r:\
12994 :r1=^R^N:se=^N:sf=^W:so=^O:sr=^V:ta=^I:up=^_:
12995# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro
12996# 4.20, with incoming and outgoing terminals both on 0, emulation On.
12997apple2e-p|Apple //e via Pascal:\
12998 :cm=\036%r%+ %+ :kb=^H:kd=^J:kl=^H:tc=apple2e:
12999# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL
13000# Enable DC3/DC1 flow control with "stty ixon -ixany".
13001apple-ae|ASCII Express:\
13002 :am:bs:bw:ms:nx:xo:\
13003 :co#80:it#8:li#24:\
13004 :bl=500\007:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:\
13005 :ho=^Y:is=^R^N:kC=^X:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:me=^N:\
13006 :mr=^O:nd=^U:r1=^R^N:se=^N:sf=^W:so=^O:sr=^V:up=^_:
13007appleII|apple ii plus:\
13008 :am:bs:\
13009 :co#80:it#8:li#24:\
13010 :cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :do=^J:ho=\E^Y:\
13011 :is=\024T1\016:kd=^J:kr=^U:le=^H:me=^N:nd=^\:se=^N:so=^O:\
13012 :ta=^I:up=^_:vb=\024G1\024T1:ve=^TC2:vs=^TC6:
13013# Originally by Gary Ford 21NOV83
13014# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985
13015apple-80|apple II with smarterm 80 col:\
13016 :am:bs:bw:\
13017 :co#80:li#24:\
13018 :bt=^R:cd=10*\013:ce=10\035:cl=10*\014:cm=\036%r%+ %+ :\
13019 :cr=10*\r:do=^J:ho=^Y:le=^H:nd=^\:up=^_:
13020apple-soroc|apple emulating soroc 120:\
13021 :am:\
13022 :co#80:li#24:\
13023 :bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:\
13024 :kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K:
13025# From Peter Harrison, Computer Graphics Lab, San Francisco
13026# ucbvax!ucsfmis!harrison .....uucp
13027# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA
13028# "These two work. If you don't have the inverse video chip for the
13029# Apple with videx then remove the :so: and :se: fields."
13030# (apple-videx: this used to be called DaleApple -- esr)
13031apple-videx|Apple with videx videoterm 80 column board with inverse video:\
13032 :am:bs:xn:\
13033 :co#80:it#8:li#24:\
13034 :cd=^K:ce=^]:cl=300\014:cm=\036%r%+ %+ :do=^J:ho=^Y:kd=^J:\
13035 :kh=^Y:kl=^H:kr=^U:le=^H:me=^Z2:nd=^\:se=^Z2:so=^Z3:ta=^I:\
13036 :up=^_:
13037# My system [for reference] : Apple ][+, 64K, Ultraterm display card,
13038# Apple Cat ][ 212 modem, + more all
13039# controlled by ASCII Express: Pro.
13040# From Dave Shaver <isucs1!shaver>
13041apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell:\
13042 :am:bs:eo:xt:\
13043 :co#80:li#24:\
13044 :ac=:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :ho=^Y:\
13045 :is=^V4^W06\017\rVisible Bell Installed.\016\r\n:\
13046 :nd=^\:se=^N:so=^O:up=^_:vb=^W35^W06:
13047apple-uterm|Ultraterm for Apple micros:\
13048 :am:bs:eo:xt:\
13049 :co#80:li#24:\
13050 :ac=:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :ho=^Y:\
13051 :is=^V4^W06\016:nd=^\:se=^N:so=^O:up=^_:
13052# from trwrba!bwong (Bradley W. Wong):
13053#
13054# This entry assumes that you are using an apple with the UCSD Pascal
13055# language card. SYSTEM.MISCINFO is assumed to be the same as that
13056# supplied with the standard apple except that screenwidth should be set
13057# using SETUP to 80 columns. Note that the right arrow in not mapped in
13058# this termcap entry. This is because that key, on the Apple, transmits
13059# a ^U and would thus preempt the more useful "up" function of vi.
13060#
13061# HMH 2/23/81
13062apple80p|80-column apple with Pascal card:\
13063 :am:bw:\
13064 :co#80:li#24:\
13065 :cd=^K:ce=^]:cl=^Y^L:cm=\036%r%+ %+ :ho=^Y:kl=^H:nd=^\\::\
13066 :up=^_:
13067#
13068# Apple II+ equipped with Videx 80 column card
13069#
13070# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL;
13071# manually converted by D A Gwyn
13072#
13073# DO NOT use any terminal emulation with this data base, it works directly
13074# with the Videx card. This has been tested with vi 1200 baud and works fine.
13075#
13076# This works great for vi, except I've noticed in pre-R2, ^U will scroll back
13077# 1 screen, while in R2 ^U doesn't.
13078# For inverse alternate character set add:
13079# :as:=^O::ae:=^N:
13080# (apple-v: added it#8 -- esr)
13081apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520):\
13082 :am:xn:\
13083 :co#80:it#8:li#24:\
13084 :bl=100\007:cd=16*\013:ce=^]:cl=16*\014:cm=\036%r%+ %+ :\
13085 :cr=^M:do=^J:ho=^Y:kb=^H:kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:\
13086 :nd=^\:se=^Z2:sf=^J:so=^Z3:ta=8\011:up=^_:
13087apple-videx3|vapple|Apple II with 80 col card:\
13088 :am:bs:\
13089 :co#80:li#24:\
13090 :ce=\Ex:cl=\Ev:cm=\EY%+ %+ :ho=\EH:k0=\EP:k1=\EQ:k2=\ER:\
13091 :k3=\E\s:k4=\E!:k5=\E":k6=\E#:k7=\E$:k8=\E%%%:k9=\E&:kd=\EB:\
13092 :kh=\EH:kl=\ED:kr=\EC:ku=\EA:nd=\EC:up=\EA:
13093#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
13094aepro|Apple II+ running ASCII Express Pro--vt52:\
13095 :bs:\
13096 :co#80:li#24:\
13097 :cd=\EJ:ce=\EK:cl=300\014:cm=\EY%+ %+ :ho=\EH:nd=\EC:\
13098 :up=\EA:
13099# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
13100apple-vm80|ap-vm80|apple with viewmax-80:\
13101 :bs:\
13102 :co#80:li#24:\
13103 :cd=300\013:ce=^]:cl=300\014:cm=100\036%+ %+ :ho=200\031:\
13104 :nd=^\\::up=^_:
13105
13106#### Apple Lisa & Macintosh
13107#
13108
13109# (lisa: changed :vs: to :ve: -- esr)
13110lisa|apple lisa console display (black on white):\
13111 :am:bs:eo:ms:\
13112 :co#88:it#8:li#32:\
13113 :ac=jdkclfmenbqattuvvuwsx`:ae=\E[10m:al=\E[L:as=\E[11m:\
13114 :cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:\
13115 :do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=\E>\E[m\014:kb=^H:\
13116 :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:\
13117 :se=\E[m:so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[5l:\
13118 :vi=\E[5h:
13119liswb|apple lisa console display (white on black):\
13120 :is=\E>\E[0;7m\014:se=\E[0;7m:so=\E[m:ue=\E[0;7m:\
13121 :us=\E[4m:tc=lisa:
13122
13123# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL;
13124# :is: revised by Ferd Brundick <fsbrn@BRL.ARPA>
13125#
13126# These entries assume that the 'Auto Wraparound' is enabled.
13127# Xon-Xoff flow control should also be enabled.
13128#
13129# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab
13130# settings are in non-volatile memory and don't need to be reset upon login.
13131# Also setting the number of columns glitches the screen annoyingly.
13132# You can type "reset" to get them set.
13133#
13134lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation:\
13135 :am:bs:pt:xn:xo:\
13136 :co#80:it#8:kn#4:li#24:vt#3:\
13137 :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bl=^G:cd=\E[J:\
13138 :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
13139 :cs=\E[%i%d;%dr:ct=\E[3g:do=^J:ho=\E[H:k0=\EOP:k1=\EOQ:\
13140 :k2=\EOR:k3=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
13141 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:le=^H:\
13142 :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
13143 :r1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r:\
13144 :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
13145 :ue=\E[m:up=\E[A:us=\E[4m:
13146# Lisaterm in 132 column ("wide") mode.
13147lisaterm-w|Apple Lisa with Lisaterm in 132 column mode:\
13148 :co#132:\
13149 :kb=^H:kd=^J:kl=^H:tc=lisaterm:
13150# Although MacTerminal has insert/delete line, it is commented out here
13151# since it is much faster and cleaner to use the "lock scrolling region"
13152# method of inserting and deleting lines due to the MacTerminal implementation.
13153# Also, the "Insert/delete ch" strings have an extra character appended to them
13154# due to a bug in MacTerminal V1.1. Blink is disabled since it is not
13155# supported by MacTerminal.
13156mac|macintosh|Macintosh with MacTerminal:\
13157 :xn:\
13158 :dN#30:\
13159 :dc=7\E[P:ei=:ic=9\E[@:im=:ip=7:mb@:tc=lisa:
13160# Lisaterm in 132 column ("wide") mode.
13161mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode:\
13162 :co#132:tc=mac:
13163
13164# The AppKit Terminal.app descriptions all have names beginning with
13165# "nsterm". Note that the statusline (-s) versions use the window
13166# titlebar as a phony status line, and may produce warnings during
13167# compilation as a result ("tsl uses 0 parameters, expected 1".) Ignore
13168# these warnings, or even ignore these entries entirely. Apps which
13169# need to position the cursor or do other fancy stuff inside the status
13170# line won't work with these entries. They're primarily useful for
13171# programs like Pine which provide simple notifications in the status
13172# line. Please note that non-ASCII characters don't work right in the
13173# status line, since Terminal.app incorrectly interprets their Unicode
13174# codepoints as MacRoman codepoints.
13175#
13176# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
13177# "nsterm" to comply with the name length and case conventions and
13178# limitations of various software packages [notably Solaris terminfo
13179# and UNIX.] A single Apple_Terminal alias is retained for
13180# backwards-compatbility.
13181#
13182# * Added function key support (F1-F4). These only work in Terminal.app
13183# version 51, hopefully the capabilities won't cause problems for people
13184# using version 41.
13185#
13186# * Added "full color" (-c) entries which support the 16-color mode in
13187# version 51.
13188#
13189# * By default, version 51 uses UTF-8 encoding with broken altcharset
13190# support, so "ASCII" (-7) entries without altcharset support were
13191# added.
13192
13193# nsterm - AppKit Terminal.app
13194#
13195# Apple's Mac OS X includes a Terminal.app derived from the old NeXT
13196# Terminal.app. It is a partial VT100 emulation with some xterm-like
13197# extensions. This terminfo was written to describe versions 41
13198# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X
13199# version 10.1) of Terminal.app.
13200#
13201# Terminal.app runs under the Mac OS X Quartz windowing system (and
13202# other AppKit-supported windowing systems.) On the Mac OS X machine I
13203# use, the executable for Terminal.app is:
13204# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
13205#
13206# If you're looking for a description of the full-screen system
13207# console which runs under Apple's Darwin operating system on PowerPC
13208# platforms, see the "xnuppc" entry instead.
13209#
13210# There were no function keys in version 41. In version 51, there are
13211# four working function keys (F1, F2, F3 and F4.) The function keys
13212# are included in all of these entries.
13213#
13214# It does not support mouse pointer position reporting. Under some
13215# circumstances the cursor can be positioned using option-click; this
13216# works by comparing the cursor position and the selected position,
13217# and simulating enough cursor-key presses to move the cursor to the
13218# selected position. This technique fails in all but the simplest
13219# applications.
13220#
13221# It provides partial ANSI color support (background colors interacted
13222# badly with bold in version 41, though, as reflected in :ncv:.) The
13223# monochrome (-m) entries are useful if you've disabled color support
13224# or use a monochrome monitor. The full color (-c) entries are useful
13225# in version 51, which doesn't exhibit the background color bug. They
13226# also enable an xterm-compatible 16-color mode.
13227#
13228# The configurable titlebar is set using xterm-compatible sequences;
13229# it is used as a status bar in the statusline (-s) entries. Its width
13230# depends on font sizes and window sizes, but 50 characters seems to
13231# be the default for an 80x24 window.
13232#
13233# The MacRoman character encoding is used for some of the alternate
13234# characters in the "MacRoman" entries; the "ASCII" (-7) entries
13235# disable alternate character set support entirely, and the "VT100"
13236# (-acs) entries rely instead on Terminal.app's own buggy VT100
13237# graphics emulation, which seems to think the character encoding is
13238# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries
13239# are useful in Terminal.app version 51, which supports UTF-8 and
13240# other ASCII-compatible character encodings but does not correctly
13241# implement VT100 graphics; once VT100 graphics are correctly
13242# implemented in Terminal.app, the "VT100" (-acs) entries should be
13243# usable in any ASCII-compatible character encoding [except perhaps
13244# in UTF-8, where some experts argue for disallowing alternate
13245# characters entirely.]
13246#
13247# Terminal.app reports "vt100" as the terminal type, but exports
13248# several environment variables which may aid detection in a shell
13249# profile (i.e. .profile or .login):
13250#
13251# TERM=vt100
13252# TERM_PROGRAM=Apple_Terminal
13253# TERM_PROGRAM_VERSION=41 # in Terminal.app version 41
13254# TERM_PROGRAM_VERSION=51 # in Terminal.app version 51
13255#
13256# For example, the following Bourne shell script would detect the
13257# correct terminal type:
13258#
13259# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ]
13260# then
13261# export TERM
13262# if [ :"$TERM_PROGRAM_VERSION" = :41 ]
13263# then
13264# TERM="nsterm"
13265# else
13266# TERM="nsterm-c-7"
13267# fi
13268# fi
13269#
13270# In a C shell derivative, this would be accomplished by:
13271#
13272# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then
13273# if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then
13274# if ( :"$TERM_PROGRAM_VERSION" == :41 ) then
13275# setenv TERM "nsterm"
13276# else
13277# setenv TERM "nsterm-c-7"
13278# endif
13279# endif
13280# endif
13281
13282# The '+' entries are building blocks
13283nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset:\
13284 :am:bw:ms:xn:xo:\
13285 :co#80:it#8:li#24:\
13286 :@8=\EOM:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:K1=\EOq:K2=\EOr:\
13287 :K3=\EOs:K4=\EOp:K5=\EOn:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:\
13288 :SA=\E[?7h:UP=\E[%dA:al=\E[L:bl=^G:cb=\E[1K:cd=\E[J:\
13289 :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
13290 :ct=\E[3g:dl=\E[M:do=^J:ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:\
13291 :k4=\EOS:kb=\177:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\
13292 :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\
13293 :mr=\E[7m:nd=\E[C:rc=\E8:\
13294 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
13295 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m:\
13296 :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
13297 :u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:ue=\E[m:\
13298 :up=\E[A:us=\E[4m:
13299
13300nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset:\
13301 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
13302 :ae=^O:as=^N:eA=\E(B\E)0:\
13303 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
13304 :tc=nsterm+7:
13305
13306nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset:\
13307 :ac=0#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245+\335-\366,\334.\377:\
13308 :ae=^O:as=^N:eA=\E(B\E)0:\
13309 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
13310 :tc=nsterm+7:
13311
13312nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support:\
13313 :hs:\
13314 :ws#50:\
13315 :ds=\E]2;\007:fs=^G:ts=\E]2;:
13316
13317nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors):\
13318 :Co#16:pa#256:\
13319 :..AB=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm:\
13320 :..AF=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm:\
13321 :op=\E[0m:
13322
13323nsterm+c41|AppKit Terminal.app v41 color support:\
13324 :Co#8:NC#37:pa#64:\
13325 :AB=\E[4%dm:AF=\E[3%dm:op=\E[0m:
13326
13327# These are different combinations of the building blocks
13328
13329# ASCII charset (-7)
13330nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome):\
13331 :tc=nsterm+7:
13332
13333nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline):\
13334 :tc=nsterm+s:tc=nsterm+7:
13335
13336nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color):\
13337 :tc=nsterm+c41:tc=nsterm+7:
13338
13339nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color):\
13340 :tc=nsterm+c:tc=nsterm+7:
13341
13342nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline):\
13343 :tc=nsterm+s:tc=nsterm+c41:tc=nsterm+7:
13344
13345nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline):\
13346 :tc=nsterm+s:tc=nsterm+c:tc=nsterm+7:
13347
13348# VT100 alternate-charset (-acs)
13349nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome):\
13350 :tc=nsterm+acs:
13351
13352nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline):\
13353 :tc=nsterm+s:tc=nsterm+acs:
13354
13355nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color):\
13356 :tc=nsterm+c41:tc=nsterm+acs:
13357
13358nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color):\
13359 :tc=nsterm+c:tc=nsterm+acs:
13360
13361nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline):\
13362 :tc=nsterm+s:tc=nsterm+c41:tc=nsterm+acs:
13363
13364nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline):\
13365 :tc=nsterm+s:tc=nsterm+c:tc=nsterm+acs:
13366
13367# MacRoman charset
13368nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome):\
13369 :tc=nsterm+mac:
13370
13371nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline):\
13372 :tc=nsterm+s:tc=nsterm+mac:
13373
13374nsterm|Apple_Terminal|AppKit Terminal.app v41+ w/MacRoman charset (color):\
13375 :tc=nsterm+c41:tc=nsterm+mac:
13376
13377nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color):\
13378 :tc=nsterm+c:tc=nsterm+mac:
13379
13380nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline):\
13381 :tc=nsterm+s:tc=nsterm+c41:tc=nsterm+mac:
13382
13383nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline):\
13384 :tc=nsterm+s:tc=nsterm+c:tc=nsterm+mac:
13385
13386# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
13387#
13388# On PowerPC platforms, Apple's Darwin operating system uses a
13389# full-screen system console derived from a NetBSD framebuffer
13390# console. It is an ANSI-style terminal, and is not really VT-100
13391# compatible.
13392#
13393# Under Mac OS X, this is the system console driver used while in
13394# single-user mode [reachable by holding down Command-S during the
13395# boot process] and when logged in using console mode [reachable by
13396# typing ">console" at the graphical login prompt.]
13397#
13398# If you're looking for a description of the Terminal.app terminal
13399# emulator which runs under the Mac OS X Quartz windowing system (and
13400# other AppKit-supported windowing systems,) see the "nsterm"
13401# entry instead.
13402#
13403# NOTE: Under Mac OS X version 10.1, the default login window does not
13404# prompt for user name, instead requiring an icon to be selected from
13405# a list of known users. Since the special ">console" login is not in
13406# this list, you must make one of two changes in the Login Window
13407# panel of the Login section of System Prefs to make the special
13408# ">console" login accessible. The first option is to enable 'Show
13409# "Other User" in list for network users', which will add a special
13410# "Other..." icon to the graphical login panel. Selecting "Other..."
13411# will present the regular graphical login prompt. The second option
13412# is to change the 'Display Login Window as:' setting to 'Name and
13413# password entry fields', which replaces the login panel with a
13414# graphical login prompt.
13415#
13416# There are no function keys, at least not in Darwin 1.3.
13417#
13418# It has no mouse support.
13419#
13420# It has full ANSI color support, and color combines correctly with
13421# all three supported attributes: bold, inverse-video and underline.
13422# However, bold colored text is almost unreadable (bolding is
13423# accomplished using shifting and or-ing, and looks smeared) so bold
13424# has been excluded from the list of color-compatible attributes
13425# [using (ncv)]. The monochrome entry (-m) is useful if you use a
13426# monochrome monitor.
13427#
13428# There is one serious bug with this terminal emulation's color
13429# support: repositioning the cursor onto a cell with non-matching
13430# colors obliterates that cell's contents, replacing it with a blank
13431# and displaying a colored cursor in the "current" colors. There is
13432# no complete workaround at present [other than using the monochrome
13433# (-m) entries,] but removing the (msgr) capability seemed to help.
13434#
13435# The "standout" chosen was simple reverse-video, although a colorful
13436# standout might be more aesthetically pleasing. Similarly, the bold
13437# chosen is the terminal's own smeared bold, although a simple
13438# color-change might be more readable. The color-bold (-b) entries
13439# uses magenta colored text for bolding instead. The fancy color (-f
13440# and -f2) entries use color for bold, standout and underlined text
13441# (underlined text is still underlined, though.)
13442#
13443# Apparently the terminal emulator does support a VT-100-style
13444# alternate character set, but all the alternate character set
13445# positions have been left blank in the font. For this reason, no
13446# alternate character set capabilities have been included in this
13447# description. The console driver appears to be ASCII-only, so (enacs)
13448# has been excluded [although the VT-100 sequence does work.]
13449#
13450# The default Mac OS X and Darwin installation reports "vt100" as the
13451# terminal type, and exports no helpful environment variables. To fix
13452# this, change the "console" entry in /etc/ttys from "vt100" to
13453# "xnuppc-WxH", where W and H are the character dimensions of your
13454# console (see below.)
13455#
13456# The font used by the terminal emulator is apparently one originally
13457# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This
13458# file includes descriptions for the following geometries:
13459#
13460# Pixels Characters Entry Name (append -m for monochrome)
13461# -------------------------------------------------------------------
13462# 640x400 80x25 xnuppc-80x25
13463# 640x480 80x30 xnuppc-80x30
13464# 720x480 90x30 xnuppc-90x30
13465# 800x600 100x37 xnuppc-100x37
13466# 896x600 112x37 xnuppc-112x37
13467# 1024x640 128x40 xnuppc-128x40
13468# 1024x768 128x48 xnuppc-128x48
13469# 1152x768 144x48 xnuppc-144x48
13470# 1280x1024 160x64 xnuppc-160x64
13471# 1600x1024 200x64 xnuppc-200x64
13472# 1600x1200 200x75 xnuppc-200x75
13473# 2048x1536 256x96 xnuppc-256x96
13474#
13475# The basic "xnuppc" entry includes no size information, and the
13476# emulator includes no reporting capability, so you'll be at the mercy
13477# of the TTY device (which reports incorrectly on my hardware.) The
13478# color-bold entries do not include size information.
13479
13480# The '+' entries are building blocks
13481xnuppc+basic|Darwin PowerPC Console basic capabilities:\
13482 :am:mi:ut:xn:\
13483 :it#8:\
13484 :DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\
13485 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
13486 :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
13487 :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=\E[B:ds=\E]2;\007:\
13488 :ho=\E[H:kb=\177:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\
13489 :ks=\E[?1h\E=:ku=\EOA:le=\E[D:md=\E[1m:me=\E[m\017:\
13490 :mr=\E[7m:nd=\E[C:rc=\E8:\
13491 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
13492 :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m:\
13493 :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\
13494 :up=\E[A:us=\E[4m:
13495
13496xnuppc+c|Darwin PowerPC Console ANSI color support:\
13497 :Co#8:NC#32:pa#64:\
13498 :AB=\E[4%dm:AF=\E[3%dm:op=\E[37;40m:
13499
13500xnuppc+b|Darwin PowerPC Console color-bold support:\
13501 :NC#32:\
13502 :md=\E[35m:\
13503 :..sa=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m:\
13504 :tc=xnuppc+basic:
13505
13506xnuppc+f|Darwin PowerPC Console fancy color support:\
13507 :NC#35:\
13508 :..sa=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%p3%t;7%;m:\
13509 :so=\E[33;44m:us=\E[36;4m:tc=xnuppc+b:
13510
13511xnuppc+f2|Darwin PowerPC Console alternate fancy color support:\
13512 :NC#35:\
13513 :md=\E[33m:\
13514 :..sa=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%p3%t;7%;m:\
13515 :so=\E[31;47m:us=\E[34m:tc=xnuppc+basic:
13516
13517# Building blocks for specific screen sizes
13518xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels):\
13519 :co#80:li#25:
13520
13521xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels):\
13522 :co#80:li#30:
13523
13524xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels):\
13525 :co#90:li#30:
13526
13527xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels):\
13528 :co#100:li#37:
13529
13530xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels):\
13531 :co#112:li#37:
13532
13533xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels):\
13534 :co#128:li#40:
13535
13536xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels):\
13537 :co#128:li#48:
13538
13539xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels):\
13540 :co#144:li#48:
13541
13542xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels):\
13543 :co#160:li#64:
13544
13545xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels):\
13546 :co#200:li#64:
13547
13548xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels):\
13549 :co#200:li#75:
13550
13551xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels):\
13552 :co#256:li#96:
13553
13554# These are different combinations of the building blocks
13555
13556xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome):\
13557 :tc=xnuppc+basic:
13558
13559xnuppc|darwin|Darwin PowerPC Console (color):\
13560 :tc=xnuppc+c:tc=xnuppc+basic:
13561
13562xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold):\
13563 :tc=xnuppc+b:
13564
13565xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold):\
13566 :tc=xnuppc+b:tc=xnuppc+c:
13567
13568xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome):\
13569 :tc=xnuppc+f:
13570
13571xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color):\
13572 :tc=xnuppc+f:tc=xnuppc+c:
13573
13574xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome):\
13575 :tc=xnuppc+f2:
13576
13577xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color):\
13578 :tc=xnuppc+f2:tc=xnuppc+c:
13579
13580# Combinations for specific screen sizes
13581xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25:\
13582 :tc=xnuppc+80x25:tc=xnuppc+basic:
13583
13584xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25:\
13585 :tc=xnuppc+c:tc=xnuppc+80x25:tc=xnuppc+basic:
13586
13587xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30:\
13588 :tc=xnuppc+80x30:tc=xnuppc+basic:
13589
13590xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30:\
13591 :tc=xnuppc+c:tc=xnuppc+80x30:tc=xnuppc+basic:
13592
13593xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30:\
13594 :tc=xnuppc+90x30:tc=xnuppc+basic:
13595
13596xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30:\
13597 :tc=xnuppc+c:tc=xnuppc+90x30:tc=xnuppc+basic:
13598
13599xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37:\
13600 :tc=xnuppc+100x37:tc=xnuppc+basic:
13601
13602xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37:\
13603 :tc=xnuppc+c:tc=xnuppc+100x37:tc=xnuppc+basic:
13604
13605xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37:\
13606 :tc=xnuppc+112x37:tc=xnuppc+basic:
13607
13608xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37:\
13609 :tc=xnuppc+c:tc=xnuppc+112x37:tc=xnuppc+basic:
13610
13611xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40:\
13612 :tc=xnuppc+128x40:tc=xnuppc+basic:
13613
13614xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40:\
13615 :tc=xnuppc+c:tc=xnuppc+128x40:tc=xnuppc+basic:
13616
13617xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48:\
13618 :tc=xnuppc+128x48:tc=xnuppc+basic:
13619
13620xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48:\
13621 :tc=xnuppc+c:tc=xnuppc+128x48:tc=xnuppc+basic:
13622
13623xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48:\
13624 :tc=xnuppc+144x48:tc=xnuppc+basic:
13625
13626xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48:\
13627 :tc=xnuppc+c:tc=xnuppc+144x48:tc=xnuppc+basic:
13628
13629xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64:\
13630 :tc=xnuppc+160x64:tc=xnuppc+basic:
13631
13632xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64:\
13633 :tc=xnuppc+c:tc=xnuppc+160x64:tc=xnuppc+basic:
13634
13635xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64:\
13636 :tc=xnuppc+200x64:tc=xnuppc+basic:
13637
13638xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64:\
13639 :tc=xnuppc+c:tc=xnuppc+200x64:tc=xnuppc+basic:
13640
13641xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75:\
13642 :tc=xnuppc+200x75:tc=xnuppc+basic:
13643
13644xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75:\
13645 :tc=xnuppc+c:tc=xnuppc+200x75:tc=xnuppc+basic:
13646
13647xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96:\
13648 :tc=xnuppc+256x96:tc=xnuppc+basic:
13649
13650xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96:\
13651 :tc=xnuppc+c:tc=xnuppc+256x96:tc=xnuppc+basic:
13652
13653#### Radio Shack/Tandy
13654#
13655
13656# (coco3: This had "ta" used incorrectly as a boolean and bl given as "bl#7".
13657# I read these as mistakes for ":it#8:" and ":bl=\007:" respectively -- esr)
13658# From: <{pbrown,ctl}@ocf.berkeley.edu> 12 Mar 90
13659coco3|os9LII|Tandy CoCo3 24*80 OS9 Level II:\
13660 :am:bs:\
13661 :co#80:it#8:li#24:\
13662 :al=^_0:bl=^G:cd=^K:ce=^D:cl=5*\014:cm=2\002%r%+ %+ :\
13663 :dl=^_1:do=^J:ho=^A:kd=^J:kl=^H:kr=^I:ku=^L:le=^H:mb=^_":\
13664 :md=\E\:^A:me=\037!\E\:\0:mr=^_\s:nd=^F:se=^_!:so=^_\s:\
13665 :ue=^_#:up=^I:us=^_":ve=^E!:vi=^E\s:
13666# (trs2: removed obsolete ":nl=^_:" -- esr)
13667trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M:\
13668 :am:bs:ms:\
13669 :co#80:it#8:li#24:\
13670 :al=^D:bl=^G:cd=^B:ce=^A:cl=^L:cm=\EY%+ %+ :cr=^M:dl=^K:\
13671 :do=^_:ho=^F:kb=^H:kd=^_:kl=^\:kr=^]:ku=^^:le=^H:me=^O:nd=^]:\
13672 :se=^O:sf=^J:so=^N:ta=^I:up=^^:
13673# From: Kevin Braunsdorf <ksb@mentor.cc.purdue.edu>
13674# (This had extension capabilities
13675# :BN=\E[?33h:BF=\E[?33l:UC=\E[_ q:BC=\E[\177 q:\
13676# :CN=\ERC:CF=\ERc:NR=\ERD:NM=\ER@:
13677# I also deleted the unnecessary ":kn#2:", ":sg#0:" -- esr)
13678trs16|trs-80 model 16 console:\
13679 :am:bs:\
13680 :co#80:it#8:li#24:\
13681 :ac=jak`l_mbquvewcxs:ae=\ERg:al=\EL:as=\ERG:bl=^G:cd=\EJ:\
13682 :ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dc=\EQ:dl=\EM:do=\EB:ei=:\
13683 :ho=\EH:ic=\EP:im=:k0=^A:k1=^B:k2=^D:k3=^L:k4=^U:k5=^P:k6=^N:\
13684 :k7=^S:kb=^H:kd=\EB:kh=^W:kl=\ED:kr=\EC:ku=\EA:l0=f1:l1=f2:\
13685 :l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:le=^H:me=\ER@:nd=\EC:\
13686 :pf=\E]+:po=\E]=:se=\ER@:sf=^J:so=\ERD:ta=^I:up=\EA:ve=\ERC:\
13687 :vi=\ERc:
13688
13689#### Atari ST
13690#
13691
13692# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
13693atari|atari st:\
13694 :am:bs:\
13695 :co#80:it#8:li#25:\
13696 :al=\EL:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :dl=\EM:do=\EB:\
13697 :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=\ED:me=\Eq:nd=\EC:se=\Eq:\
13698 :so=\Ep:sr=\EI:ta=^I:up=\EA:
13699# UniTerm terminal program for the Atari ST: 49-line VT220 emulation mode
13700# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
13701uniterm|uniterm49|UniTerm VT220 emulator with 49 lines:\
13702 :li#49:\
13703 :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H:\
13704 :tc=vt220:
13705# MiNT VT52 emulation. 80 columns, 25 rows.
13706# MiNT is Now TOS, the operating system which comes with all Ataris now
13707# (mainly Atari Falcon). This termcap is for the VT52 emulation you get
13708# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode
13709# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996
13710st52|Atari ST with VT52 emulation:\
13711 :am:km:\
13712 :co#80:li#25:\
13713 :K1=\E#7:K2=\E#9:K3=\E#5:K4=\E#1:K5=\E#3:al=\EL:bl=^G:\
13714 :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:dl=\EM:do=\EB:\
13715 :ho=\EH:k0=\E#D:k1=\E#;:k2=\E#<:k3=\E#=:k4=\E#>:k5=\E#?:\
13716 :k6=\E#@:k7=\E#A:k8=\E#B:k9=\E#C:kA=\E#R:kC=\E#7:kF=\E#2:\
13717 :kR=\E#8:kb=^H:kd=\E#P:kh=\E#G:kl=\E#K:kr=\E#M:ku=\E#H:\
13718 :l0=f10:le=\ED:me=\Eq:nd=\EC:nw=^M^J:r1=\Ez_\Eb@\EcA:\
13719 :rc=\Ek:sc=\Ej:se=\Eq:sf=^J:so=\Ep:sr=\EI:ta=^I:te=:ti=\Ee:\
13720 :up=\EA:ve=\Ee:vi=\Ef:
13721
13722#### Commodore Business Machines
13723#
13724# Formerly located in West Chester, PA; went spectacularly bust in 1994
13725# after years of shaky engineering and egregious mismanagement. Made one
13726# really nice machine (the Amiga) and boatloads of nasty ones (PET, C-64,
13727# C-128, VIC-20). The C-64 is said to have been the most popular machine
13728# ever (most units sold); they can still be found gathering dust in closets
13729# everywhere.
13730#
13731
13732# From: Kent Polk <kent@swrinde.nde.swri.edu>, 30 May 90
13733# Added a few more entries, converted caret-type control sequence (^x) entries
13734# to '\0xx' entries since a couple of people mentioned losing '^x' sequences.
13735# Corrections by Ty Sarna <tsarna@endicor.com>, Sat Feb 28 18:55:15 1998
13736#
13737# :as:, :ae: Support for alternate character sets.
13738# :ve=\E[\040p:vi=\E[\060\040p: cursor visible/invisible.
13739# :xn: vt100 kludginess at column 80/NEWLINE ignore after 80 cols(Concept)
13740# This one appears to fix a problem I always had with a line ending
13741# at 'width+1' (I think) followed by a blank line in vi. The blank
13742# line tended to disappear and reappear depending on how the screen
13743# was refreshed. Note that this is probably needed only if you use
13744# something like a Dnet Fterm with the window sized to some peculiar
13745# dimension larger than 80 columns.
13746# :k0=\E9~: map F10 to k0 - could have F0-9 -> k0-9, but ... F10 was 'k;'
13747# (amiga: removed obsolete :kn#10:,
13748# also added empty <acsc> to suppress a warning --esr)
13749amiga|Amiga ANSI:\
13750 :am:bs:bw:xn:\
13751 :co#80:li#24:\
13752 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
13753 :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:\
13754 :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\
13755 :cl=\E[H\E[J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=:\
13756 :ho=\E[H:ic=\E[@:im=:is=\E[20l:k0=\E[9~:k1=\E[0~:k2=\E[1~:\
13757 :k3=\E[2~:k4=\E[3~:k5=\E[4~:k6=\E[5~:k7=\E[6~:k8=\E[7~:\
13758 :k9=\E[8~:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:\
13759 :mb=\E[7;2m:md=\E[1m:me=\E[m:mh=\E[2m:mk=\E[8m:mr=\E[7m:\
13760 :nd=\E[C:r1=\Ec:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:ue=\E[m:\
13761 :up=\E[A:us=\E[4m:ve=\E[ p:vi=\E[0 p:
13762
13763# From: Hans Verkuil <hans@wyst.hobby.nl>, 4 Dec 1995
13764# (amiga: added empty <acsc> to suppress a warning.
13765# I'm told this entry screws up badly with AS225, the Amiga
13766# TCP/IP package once from Commodore, and now sold by InterWorks.--esr)
13767amiga-h|Hans Verkuil's Amiga ANSI:\
13768 :bs:bw:ms:\
13769 :co#80:li#24:\
13770 :DC=\233%dP:DO=\233%dB:IC=\233%d@:LE=\233%dD:RI=\233%dC:\
13771 :SF=\233%dS:SR=\233%dT:UP=\233%dA:ac=:ae=^O:as=^N:bl=^G:\
13772 :bt=\233Z:cd=\233J:ce=\233K:cl=\233H\233J:\
13773 :cm=\233%i%d;%dH:cr=^M:dc=\233P:do=\233B:ec=\233%dP:ei=:\
13774 :ho=\233H:ic=\233@:im=:is=\23320l:k0=\2339~:k1=\2330~:\
13775 :k2=\2331~:k3=\2332~:k4=\2333~:k5=\2334~:k6=\2335~:\
13776 :k7=\2336~:k8=\2337~:k9=\2338~:kD=\177:kb=^H:kd=\233B:\
13777 :kl=\233D:kr=\233C:ku=\233A:le=\233D:mb=\2337;2m:\
13778 :md=\2331m:me=\2330m:mh=\2332m:mk=\2338m:mr=\2337m:\
13779 :nd=\233C:nw=\233B\r:r1=\Ec:se=\2330m:sf=\233S:so=\2337m:\
13780 :sr=\233T:ta=^I:te=\233?7h:ti=\233?7l:ue=\2330m:up=\233A:\
13781 :us=\2334m:vb=^G:ve=\233 p:vi=\2330 p:
13782
13783# From: Henning 'Faroul' Peters <Faroul@beyond.kn-bremen.de>, 25 Sep 1999
13784amiga-8bit|Amiga ANSI using 8-bit controls:\
13785 :AL=\233%dL:DL=\233%dM:SF@:SR@:ac=:al=\233L:dl=\233M:\
13786 :sf=\204:sr=\215:tc=amiga-h:
13787
13788# From: Ruediger Kuhlmann <terminfo@ruediger-kuhlmann.de>, 18 Jul 2000
13789# requires use of appropriate preferences settings.
13790# (untranslatable capabilities removed to fit entry within 1023 bytes)
13791amiga-vnc|Amiga using VNC console (black on light gray):\
13792 :ND:am:da:db:ms:\
13793 :BT#1:Co#16:NC#0:co#80:li#24:lm#0:pa#256:\
13794 :%1=\E[?~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\
13795 :IC=\E[%d@:Km=\E[M:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:\
13796 :SR=\E[%dT:UP=\E[%dA:al=\E[1L:bl=^G:cd=\E[J:ce=\E[K:\
13797 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:\
13798 :dl=\E[1M:do=\E[B:ei=:ic=\E[@:im=:\
13799 :is=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h:\
13800 :k0=\E[9~:k1=\E[0~:k2=\E[1~:k3=\E[2~:k4=\E[3~:k5=\E[4~:\
13801 :k6=\E[5~:k7=\E[6~:k8=\E[7~:k9=\E[8~:kB=\233Z:kD=\177:\
13802 :kH=\E[45~:kN=\E[42~:kP=\E[41~:kb=^H:kd=\E[B:ke=\E[?1l:\
13803 :kh=\E[44~:kl=\E[D:kr=\E[C:ks=\E[?1h:ku=\E[A:le=\E[D:\
13804 :mb=\E[7;2m:md=\E[1m:me=\E[0m\017\E[30;85;>15m:mh=\E[2m:\
13805 :mk=\E8m:mr=\E[7m:nd=\E[C:nw=\EE:oc=\E[0m:r1=\Ec:\
13806 :r2=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h:\
13807 :se=\E[21m:sf=\ED:so=\E[1m:sr=\EM:te=\E[?7h\E[r\E[J:\
13808 :ti=\E[?7h:ue=\E[24m:up=\E[A:us=\E[4m:vb=^G:\
13809 :ve=\E[p\E[>?6l:vi=\E[0p:vs=\E[>?6h:
13810
13811# Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA>
13812# I'm trying to write a termcap for a commodore b-128, and I'm
13813# having a little trouble. I've had to map most of my control characters
13814# to something that unix will accept (my delete-char is a ctrl-t, etc),
13815# and create some functions (like cm), but thats life.
13816# The problem is with the arrow keys - right, and up work fine, but
13817# left deletes the previous character and down I just can't figure out.
13818# Jove knows what I want, but I don't know what it's sending to me (it
13819# isn't thats bound to next-line in jove).
13820# Anybody got any ideas? Here's my termcap.
13821# DAG -- I changed his "^n" entries to "\n"; see if that works.
13822#
13823commodore|b-128|Commodore B-128 micro:\
13824 :am:bw:\
13825 :co#80:dN#20:li#24:pb#150:\
13826 :al=10\Ei:bc=^H:ce=10\Eq:cl=10\E\006:cm=20\E\013%2,%2,:\
13827 :cr=^M:dc=10*\177:dl=10*\Ed:do=^J:ei=:ho=\E^E:ic=5\E\n:im=:\
13828 :kd=^J:kh=\E^E:kl=^B:kr=^F:ku=^P:nd=^F:nl=^M:ta=5\011:up=^P:
13829
13830#### North Star
13831#
13832# North Star Advantage from Lt. Fickie <brl-ibd!fickie> via BRL
13833northstar|North Star Advantage:\
13834 :bs:\
13835 :co#80:li#24:\
13836 :cd=200\017:ce=200\016:cl=200\004:cm=1\E=%+ %+ :\
13837 :ho=200\034\032:
13838
13839#### Osborne
13840#
13841# Thu Jul 7 03:55:16 1983
13842#
13843# As an aside, be careful; it may sound like an anomaly on the
13844# Osborne, but with the 80-column upgrade, it's too easy to
13845# enter lines >80 columns!
13846#
13847# I've already had several comments...
13848# The Osborne-1 with the 80-col option is capable of being
13849# 52, 80, or 104 characters wide; default to 80 for compatibility
13850# with most systems.
13851#
13852# The tab is destructive on the Ozzie; make sure to 'stty -tabs'.
13853osborne-w|osborne1-w|osborne I in 104-column mode:\
13854 :ms:ul:xt:\
13855 :co#104:li#24:\
13856 :al=\EE:bl=^G:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:\
13857 :do=^J:ei=:ic=\EQ:im=:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:\
13858 :se=\E(:sf=^J:so=\E):ue=\Em:up=^K:us=\El:
13859# Osborne I from ptsfa!rhc (Robert Cohen) via BRL
13860osborne|osborne1|osborne I in 80-column mode:\
13861 :am:bs:mi:ms:ul:xs:\
13862 :co#80:dB#4:li#24:\
13863 :al=\EE:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=4\EW:dl=\ER:do=^J:ei=:\
13864 :im=\EQ:is=^Z:kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:le=\010:nd=^L:\
13865 :se=\E):so=\E(:ue=\Em:up=^K:us=\El:
13866#
13867# Osborne Executive definition from BRL
13868# Similar to tvi920
13869# Added by David Milligan and Tom Smith (SMU)
13870osexec|Osborne executive:\
13871 :am:bs:\
13872 :co#80:li#24:sg#1:ug#1:\
13873 :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:\
13874 :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:\
13875 :is=\Eq\Ek\Em\EA\Ex0:k0=^A@\r:k1=^AA\r:k2=^AB\r:k3=^AC\r:\
13876 :k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:k8=^AH\r:k9=^AI\r:\
13877 :kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:nl=^J:se=\Ek:\
13878 :so=\Ej:st=\E1:ue=\Em:up=^K:us=\El:
13879
13880#### Console types for obsolete UNIX clones
13881#
13882# Coherent, Minix, Venix, and several lesser-known kin were OSs for 8088
13883# machines that tried to emulate the UNIX look'n'feel. Coherent and Venix
13884# were commercial, Minix an educational tool sold in conjunction with a book.
13885# Memory-segmentation limits and a strong tendency to look like V7 long after
13886# it was obsolete made all three pretty lame. Venix croaked early. Coherent
13887# and Minix were ported to 32-bit Intel boxes, only to be run over by a
13888# steamroller named `Linux' (which, to be fair, traces some lineage to Minix).
13889# Coherent's vendor, the Mark Williams Company, went belly-up in 1994. There
13890# are also, I'm told, Minix ports that ran on Amiga and Atari machines and
13891# even as single processes under SunOS and the Macintosh OS.
13892#
13893
13894# This is the entry provided with minix 1.7.4, with bogus :ri: removed.
13895minix|minix console (v1.7):\
13896 :am:xn:\
13897 :co#80:it#8:li#25:\
13898 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
13899 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[0J:\
13900 :ce=\E[K:cl=\E[H\E[0J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\
13901 :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=\E[0m:k0=\E[Y:\
13902 :k1=\E[V:k2=\E[U:k3=\E[T:k4=\E[S:k5=\E[G:kb=^H:kd=\E[B:\
13903 :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:l0=End:l1=PgUp:l2=PgDn:\
13904 :l3=Num +:l4=Num -:l5=Num 5:le=^H:mb=\E[5m:md=\E[1m:\
13905 :me=\E[0m:mr=\E[7m:nd=\E[C:nw=^M^J:se=\E[0m:sf=^J:so=\E[7m:\
13906 :sr=\EM:ta=^I:ue=\E[0m:up=\E[A:us=\E[4m:
13907# Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil>
13908minix-old|minix console (v1.5):\
13909 :xo:\
13910 :co#80:it#8:li#25:\
13911 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
13912 :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[0J:\
13913 :ce=\E[K:cl=\E[H\E[0J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\
13914 :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k0=\E[Y:k1=\E[V:\
13915 :k2=\E[U:k3=\E[T:k4=\E[S:k5=\E[G:kb=^H:kd=\E[B:kh=\E[H:\
13916 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\
13917 :mr=\E[7m:nd=\E[C:nw=^M^J:se=\E[0m:sf=^J:so=\E[7m:sr=\EM:\
13918 :ta=^I:ue=\E[0m:up=\E[A:us=\E[4m:
13919# The linewrap option can be specified by editing /usr/include/minix/config.h
13920# before recompiling the minix 1.5 kernel.
13921minix-old-am|minix console with linewrap:\
13922 :am:tc=minix-old:
13923
13924pc-minix|minix console on an Intel box:\
13925 :tc=klone+acs:tc=minix:
13926
13927# According to the Coherent 2.3 manual, the PC console is similar
13928# to a z19. The differences seem to be (1) 25 lines, (2) no status
13929# line, (3) standout is broken, (4) ins/del line is broken, (5)
13930# has blinking and bold.
13931pc-coherent|pcz19|coherent|IBM PC console running Coherent:\
13932 :am:mi:\
13933 :co#80:it#8:li#25:\
13934 :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :cr=^M:dc=\EN:\
13935 :do=\EB:ei=\EO:ho=\EH:im=\E@:kb=^H:kd=\EB:kh=\EH:kl=\ED:\
13936 :kr=\EC:ku=\EA:le=^H:me=\Eq:nd=\EC:se=\Eq:sf=^J:so=\Ep:\
13937 :sr=\EI:ta=^I:up=\EA:
13938
13939# According to the Venix 1.1 manual, the PC console is similar
13940# to a DEC vt52. Differences seem to be (1) arrow keys send
13941# different strings, (2) enhanced standout, (3) added insert/delete line.
13942# Note in particular that it doesn't have automatic margins.
13943# There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they
13944# not described here because this derives from an old termcap entry.
13945pc-venix|venix|IBM PC console running Venix:\
13946 :co#80:it#8:li#25:\
13947 :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\
13948 :dl=\EM:do=^J:kb=^H:kd=\EP:kh=\EG:kl=\EK:kr=\EM:ku=\EH:le=^H:\
13949 :nd=\EC:sf=^J:sr=\EI:ta=^I:up=\EA:
13950
13951#### Miscellaneous microcomputer consoles
13952#
13953# If you know anything more about any of these, please tell me.
13954#
13955
13956# The MAI Basic Four computer was obsolete at the end of the 1980s.
13957# It may be used as a terminal by putting it in "line" mode as seen on
13958# one of the status lines.
13959# Initialization is similar to CIT80. :is: will set ANSI mode for you.
13960# Hardware tabs set by :if: at 8-spacing. Auto line wrap causes glitches so
13961# wrap mode is reset by :vs:. Using :sf:=\E[S caused errors so I
13962# used \ED instead.
13963# From: bf347@lafn.org (David Lawyer), 28 Jun 1997
13964mai|basic4|MAI Basic Four in ansi mode:\
13965 :am:da:db:mi:ms:\
13966 :co#82:it#8:li#25:\
13967 :al=\E[L:bl=^G:cd=^_:ce=^^:cl=^]^_:cm=\E[%i%d;%dH:cr=^M:\
13968 :cs=\E[%i%d;%dr:dc=\E[1P:dl=\E[M:do=^J:ei=\E[4l:ho=^]:\
13969 :if=/usr/lib/tabset/vt100:im=\E[4h:\
13970 :is=\E>\E[?1h\E[?7h\E[?5l\017\E(B\E[m\E[20l\E[1;24r\E[24;1H:\
13971 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:\
13972 :k8=\EOW:kb=^H:kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:\
13973 :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=^X:nw=^M\ED:rc=\E8:\
13974 :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=^Z:\
13975 :us=\E[4m:ve=\E[?7h:vs=\E[?7l:
13976# basis from Peter Harrison, Computer Graphics Lab, San Francisco
13977# ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA
13978#
13979# On Sat, 7 Aug 1999, Torsten Jerzembeck <toje@nightingale.ms.sub.org> wrote:
13980# The Basis 108 was a Apple II clone, manufactured by the "Basis
13981# Mikrocomputer GmbH" in Munster, Germany (the company still exists today,
13982# about 1,5 km from where I live, but doesn't build own computers any
13983# more). A Basis 108 featured a really heavy (cast aluminum?) case, was
13984# equipped with one or two 5.25" disk drives, had a monochrome and color
13985# video output for a TV set or a dedicated monitor and several slots for
13986# Apple II cards. Basis 108 were quite popular at german schools before
13987# the advent of the IBM PC. They run, for example, the UCSD Pascal
13988# development system (which I used even in 1993 to program the steering
13989# and data recording for our school's experimental solar panel :), Apple DOS
13990# or CP/M.
13991# (basis: removed obsolete ":ma=^K^P^R^L^L :nl=5000*^J:" -- esr)
13992basis|BASIS108 computer with terminal translation table active:\
13993 :cd=\EY:ce=\ET:cl=300\E*:do=5000\n:kb=^H:kd=^J:kl=^H:kr=^L:\
13994 :ku=^K:me=\E):se=\E):so=\E(:tc=adm3a:
13995# luna's BMC terminal emulator
13996luna|luna68k|LUNA68K Bitmap console:\
13997 :co#88:li#46:tc=ansi-mini:
13998megatek|pegasus workstation terminal emulator:\
13999 :am:os:\
14000 :co#83:li#60:
14001# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived
14002# interface (pre-Macintosh by several years) that went nowhere.
14003xerox820|x820|Xerox 820:\
14004 :am:\
14005 :co#80:li#24:\
14006 :bl=^G:cd=^Q:ce=^X:cl=1^Z:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:\
14007 :le=^H:nd=^L:sf=^J:up=^K:
14008
14009#### Videotex and teletext
14010#
14011
14012# \E\:1} switch to te'le'informatique mode (ascii terminal/ISO 6429)
14013# \E[?3l 80 columns
14014# \E[?4l scrolling on
14015# \E[12h local echo off
14016# \Ec reset: G0 U.S. charset (to get #,@,{,},...), 80 cols, clear screen
14017# \E)0 G1 DEC set (line graphics)
14018#
14019# From: Igor Tamitegama <igor@ppp1493-ft.teaser.fr>, 18 Jan 1997
14020m2-nam|minitel|minitel-2|minitel-2-nam|France Telecom Minitel 2 mode te'le'informatique:\
14021 :bs:es:hs:xn:\
14022 :co#80:it#8:li#24:sg#0:ug#0:ws#72:\
14023 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
14024 :RI=\E[%dC:UP=\E[%dA:\
14025 :ac=aaffggjjkkllmmnnooqqssttuuvvwwxx:ae=^O:al=\E[L:\
14026 :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
14027 :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\
14028 :fs=^J:ho=\E[H:i1=\E\:1}\Ec\E[?4l\E[12h:\
14029 :i2=\E[?3l kbs=\010:im=\E[4h:ip=7:is=\Ec\E[12h\E)0:\
14030 :k0=\EOp:k1=\EOq:k2=\EOr:k3=\EOs:k4=\EOt:k5=\EOu:k6=\EOv:\
14031 :k7=\EOw:k8=\EOx:k9=\EOy:k;=\EOp:kA=\E[4l:kC=\E[2J:kD=\E[P:\
14032 :kI=\E[4h:kL=\E[M:kN=\EOn:kP=\EOR:kd=\E[B:kh=\E[H:kl=\E[D:\
14033 :kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;80H:mb=\E[5m:md=\E[1m:\
14034 :me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:ps=\E[i:\
14035 :r1=\Ec\E[?4l\E[12h:r2=\Ec\E)0:rc=\E8:sc=\E7:se=\E[27m:\
14036 :sf=^J:so=\E[7m:sr=\EM:ta=^I:ts=^_@A:u6=\E[%i%d;%dR:\
14037 :u7=\E[6n:ue=\E[24m:up=\E[A:us=\E[4m:vb=^G:ve=\E[<1l:\
14038 :vi=\E[<1h:
14039
14040# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998
14041#
14042minitel1|minitel 1:\
14043 :am:bw:es:hs:hz:ms:\
14044 :Co#8:co#40:li#24:pa#8:\
14045 :..Sf=\E%?%p1%{1}%=%tD%e%p1%{3}%=%tF%e%p1%{4}%=%tA%e%p1%{6}%=%tC%e%p1%{64}%+%c%;:\
14046 :ac=+.,,./f0g1:bl=^G:ce=^X:cl=^L:cm=\037%+A%+A:cr=^M:do=^J:\
14047 :eA=^Y:fs=^J:ho=^^:is=\E;`ZQ\E\:iC\E\:iE\021:le=^H:mb=\EH:\
14048 :me=\EI\E\\:mr=\E]:nd=^I:nw=^M^J:op=\EG:rp=%.\022%+?:\
14049 :..sa=%?%p1%t\E]%;%?%p3%t\E]%;%?%p4%t\EH%;:se=\E\\:\
14050 :sf=^J:so=\E]:sr=^K:ts=\037@%+A:up=^K:ve=^Q:vi=^T:
14051# is2=Fnct TE, Fnct MR, Fnct CM et pour finir: curseur ON.
14052minitel1b|minitel 1-bistandard (in 40cols mode):\
14053 :mi:\
14054 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
14055 :RI=\E[%dC:UP=\E[%dA:al=\E[L:cb=\E[1K:cd=\E[J:dc=\E[P:\
14056 :dl=\E[M:ei=\E[4l:i1=\E;iYA\E;jYC:im=\E[4h:kA=\E[L:\
14057 :kC=\E[2J:kD=\E[P:kE=^X:kI=\E[4h:kL=\E[M:kd=\E[B:kh=\E[H:\
14058 :kl=\E[D:kr=\E[C:ks=\E;iYA\E;jYC:kt=^I:ku=\E[A:\
14059 :tc=minitel1:
14060# :ke: posait des problemes (logout en sortant de vi).
14061minitel1b-80|minitel 1-bistandard (standard teleinformatique):\
14062 :am@:bw@:hz@:\
14063 :Co@:co#80:it#8:pa@:\
14064 :@8=\EOM:Sf@:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:ho=\E[H:\
14065 :i1@:is@:k0=\EOp:k1=\EOq:k2=\EOr:k3=\EOs:k4=\EOt:k5=\EOu:\
14066 :k6=\EOv:k7=\EOw:k8=\EOx:k9=\EOy:ke@:ks@:mb=\E[5m:md=\E[1m:\
14067 :me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:op@:rc=\E8:rp@:\
14068 :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\
14069 :sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[24m:\
14070 :up=\E[A:us=\E[4m:ve=\037@A\021\n:vi=\037@A\024\n:\
14071 :tc=minitel1b:
14072
14073######## OBSOLETE VDT TYPES
14074#
14075# These terminals are *long* dead -- these entries are retained for
14076# historical interest only.
14077
14078#### Amtek Business Machines
14079#
14080
14081# (abm80: early versions of this entry apparently had ":se=\E^_:so=\E^Y",
14082# but these caps were commented out in 8.3; also, removed overridden
14083# ":do=^J:" -- esr)
14084abm80|amtek business machines 80:\
14085 :am:bs:bw:\
14086 :co#80:li#24:\
14087 :al=\E^Z:bt=^T:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%+ %+ :\
14088 :dl=\E^S:do=\E^K:ho=\E^R:le=^H:nd=^P:up=\E^L:
14089
14090#### Bell Labs blit terminals
14091#
14092# These were AT&T's official entries. The 5620 FAQ maintained by
14093# David Breneman <daveb@dgtl.com> has this to say:
14094#
14095# Actually, in the beginning was the Jerq, and the Jerq was white with a
14096# green face, and Locanthi and Pike looked upon the Jerq and said the Jerq
14097# was good. But lo, upon the horizon loomed a mighty management-type person
14098# (known now only by the initials VP) who said, the mighty Jerq must stay
14099# alone, and could not go forth into the world. So Locanthi and Pike put the
14100# Jerq to sleep, cloned its parts, and the Blit was brought forth unto the
14101# world. And the Jerq lived the rest of its days in research, but never
14102# strayed from those paths.
14103#
14104# In all seriousness, the Blit was originally known as the Jerq, but when
14105# it started to be shown outside of the halls of the Bell Labs Research
14106# organization, the management powers that be decided that the name could
14107# not remain. So it was renamed to be Blit. This was in late 1981.
14108#
14109# (The AT&T 5620 was the commercialized Blit. Its successors were the 630,
14110# 730, and 730+.)
14111#
14112
14113blit|jerq|blit running teletype rom:\
14114 :am:eo:ul:xo:\
14115 :co#87:it#8:li#72:\
14116 :AL=\EF%+ :DC=\Ee%+ :DL=\EE%+ :IC=\Ef%+ :al=\EF!:bl=^G:\
14117 :ce=\EK:cl=^L:cm=\EY%r%+ %+ :cr=^M:dc=\Ee!:dl=\EE!:do=^J:\
14118 :ei=:ic=\Ef!:im=:k1=\Ex:k2=\Ey:k3=\Ez:kb=^H:kd=\EB:kl=\ED:\
14119 :kr=\EC:ku=\EA:le=\ED:nd=\EC:sf=^J:ta=^I:up=\EA:
14120
14121# (cbblit: here's a BSD termcap that says :do=\EG: -- esr)
14122cbblit|fixterm|blit running columbus code:\
14123 :co#88:\
14124 :cd=\EJ:ei=\ER:ic@:im=\EQ:pO=\EP%03:pf=^T:po=^R:se=\EV!:\
14125 :so=\EU!:ue=\EV":us=\EU":vb=\E^G:tc=blit:
14126
14127oblit|ojerq|first version of blit rom:\
14128 :am:da:db:eo:mi:ul:xo:\
14129 :co#88:it#8:li#72:\
14130 :AL=\Ef%+ :DL=\Ee%+ :al=\EF:bl=^G:cd=\EJ:ce=\EK:cl=^L:\
14131 :cm=\EY%r%+ %+ :cr=^M:dc=\EO:dl=\EE:do=^J:ei=\ER:im=\EQ:\
14132 :kb=^H:le=\ED:nd=\EC:sf=^J:ta=^I:up=\EA:vb=\E^G:
14133
14134#### Bolt, Beranek & Newman (bbn)
14135#
14136# The BitGraph was a product of the now-defunct BBN Computer Corporation.
14137# The parent company, best known as the architects of the Internet, is
14138# still around.
14139#
14140# Jeff DelPapa <dp@world.std.com> writes:
14141# The bitgraph was a large white box that contained a monochrome bitmap
14142# display, and a 68000 to run it. You could download code and run it on
14143# the cpu, it had 128kb (I think) of memory. I used one in the late
14144# 70's, sure beat a vt100. It had one strange feature tho -- it used
14145# the cpu to bitblt pixels to scroll, it took longer than the refresh
14146# rate, and looked like a rubber sheet stretching, then snapping
14147# upwards. It had everything the early mac had, except a floppy drive a
14148# small screen (it had a 17" crisp beauty) and a real OS. They (Bolt
14149# Beranek and Neuman) sold at most a few hundred of them to the real
14150# world. DOD may have bought more...
14151#
14152
14153# Entries for the BitGraph terminals. The problem
14154# with scrolling in vi can only be fixed by getting BBN to put
14155# smarter scroll logic in the terminal or changing vi or padding
14156# scrolls with about 500 ms delay.
14157#
14158# I always thought the problem was related to the terminal
14159# counting newlines in its input buffer before scrolling and
14160# then moving the screen that much. Then vi comes along and
14161# paints lines in on the bottom line of the screen, so you get
14162# this big white gap.
14163
14164bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video):\
14165 :is=\E>\E[?5l\E[?7h:vb=\E[?5h\E[?5l:tc=bg2.0:
14166bg2.0rv|bg3.10rv|bbn bitgraph 2.0 (reverse video):\
14167 :is=\E>\E[?5h\E[?7h:vb=\E[?5l\E[?5h:tc=bg2.0:
14168bg2.0|bg3.10|bbn bitgraph 2.0 or later (no init):\
14169 :bs:xn:\
14170 :co#85:li#64:\
14171 :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=%i\E[%d;%dH:\
14172 :cr=^M:cs=\E[%i%d;%dr:dl=\E[M:do=\E[B:k1=\EOP:k2=\EOQ:\
14173 :k3=\EOR:k4=\EOS:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:\
14174 :ku=\E[A:l1=PF1:l2=PF2:l3=PF3:l4=PF4:le=^H:me=\E[m:nd=\E[C:\
14175 :rc=\E8:sc=\E7:se=\E[m:sf=\n:so=\E[7m:ta=^I:up=\E[A:
14176
14177bg1.25rv|bbn bitgraph 1.25 (reverse video):\
14178 :is=\E>\E[?5h\E[?7h:vb=\E[?5l\E[?5h:tc=bg1.25:
14179bg1.25nv|bbn bitgraph 1.25 (normal video):\
14180 :is=\E>\E[?5l\E[?7h:vb=\E[?5h\E[?5l:tc=bg1.25:
14181# (bg1.25: I added <rmam>/<smam> based on the init string -- esr)
14182bg1.25|bbn bitgraph 1.25:\
14183 :co#85:li#64:\
14184 :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\
14185 :cl=\E[H\E[J:cm=%i\E[%d;%dH:cr=^M:dl=\E[M:do=\E[B:k1=\EP:\
14186 :k2=\EQ:k3=\ER:k4=\ES:kd=\EB:ke=\E>:kl=\ED:kr=\EC:ks=\E=:\
14187 :ku=\EA:l1=PF1:l2=PF2:l3=PF3:l4=PF4:le=^H:ll=\E[64;1H:\
14188 :me=\E[m:nd=\E[C:se=\E[m:sf=\n:so=\E[7m:ta=^I:up=\E[A:
14189
14190#### Bull (bq, dku, vip)
14191#
14192# (Adapted for terminfo; AIX extension capabilities translated -- esr)
14193
14194#============================================#
14195# BULL QUESTAR 210 `SDP' terminals emulation #
14196#============================================#
14197#
14198# Description written by R.K.Saunders (Bull Transac)
14199#
14200# Modifications written by F. Girard (Bull MTS)
14201# 19-05-87 V02.00.01
14202# 17-12-87 V02.00.02
14203# 15-09-89 V02.00.05
14204#
14205# Typical technical selections F1 (modes SDP/ROLL):
14206# -------------------------------------------------------
14207# | 01 02 03 04 05 06 07 08 09 10 |
14208# | 1010 0011 1010 0110 0110 0001 0100 0000 0000 0000 |
14209# | |
14210# | 11 12 13 14 15 16 17 18 19 20 |
14211# | 0000 0110 100? 0000 0000 0000 0001 0000 0000 0001 |
14212# | |
14213# | 21 22 23 24 25 26 27 28 29 30 |
14214# | 0011 0000 0001 1000 0000 0000 0000 0000 0000 0000 |
14215# | |
14216# | 31 32 33 34 35 36 37 38 39 40 |
14217# | 1010 0011 0000 0000 0000 0000 0000 0000 0000 0000 |
14218# -------------------------------------------------------
14219# Typical firmware identification F5 "etat 6":
14220# P287.02.04b (AZERTY)
14221# P297.11.04 (24-pin: 2732) or P798.11.04 (28-pin: 2764)
14222# P298.03.03 (monochrome) or P374.03.02 (color)
14223#
14224# SM SDP mode (VIP command): ^[[?=h
14225# RIS (erases screen): ^[c
14226# DMI disable keyboard: ^[`
14227# SM double rendition mode: ^[[?>h
14228# RM solicited status mode: ^[[5l
14229# RM character mode: ^[[>l
14230# RM echoplex mode: ^[[12l
14231# RM column tab mode: ^[[18l
14232# RM forbid SS2 keyboard mode: ^[[?<l
14233# SM scroll mode: ^[[=h
14234# FCF enable XON/XOFF: ^[P1s^[\
14235# MTL select end msg character: ^[[^Wp
14236# EMI enable keyboard: ^[b
14237# RIS retour etat initial: ^[c
14238# enable FC keypad: ^[[?<h,
14239# MPW map status line window: ^[PY99:98^[\
14240# SCP select status line: ^[[0;98v
14241# ED erase entire partition: ^[[2J
14242# SCP select main partition: ^[[v
14243# SM character insertion mode: ^[[4h
14244# RM character replacement mode: ^[[4l
14245# COO cursor on: ^[[r
14246# COO cursor off: ^[[1r
14247# SGR dim (turquoise) rev attr: ^[[2;7m
14248# SGR Data normal attr: ^[[m
14249# SO Line-graphic mode ON: ^N
14250# SI Line-graphic mode OFF: ^O
14251# MC start routing to printer: ^[[5i
14252# MC stop routing to printer: ^M^[[4i
14253#
14254
14255# This entry covers the following terminals:
14256# dku7102, tws2102, and tws models 2105 to 2112
14257# (untranslatable capabilities removed to fit entry within 1023 bytes)
14258# (sgr removed to fit entry within 1023 bytes)
14259# (acsc removed to fit entry within 1023 bytes)
14260# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
14261tws-generic|dku7102|Bull Questar tws terminals:\
14262 :am:es:hs:mi:ms:xn:xo:xs@:\
14263 :co#80:it#8:li#24:ws#80:\
14264 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
14265 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
14266 :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%df:cr=^M:ct=\E[2g:\
14267 :dc=\E[P:dl=\E[M:do=^J:\
14268 :ds=\EPY99\:98\E\\\E[0;98v\E[2J\E[v:ei=\E[4l:fs=\E[v:\
14269 :ho=\E[H:i1=\E[?=h\Ec\E`\E[?>h\EPY99\:98\E\\:\
14270 :i2=\Eb\E[?<h:im=\E[4h:\
14271 :is=\E[5;>;12;18;?<l\E[=h\EP1s\E\\\E[\027p:\
14272 :k1=\E[1u\027:k2=\E[2u\027:k3=\E[3u\027:k4=\E[4u\027:\
14273 :k5=\E[5u\027:k6=\E[6u\027:k7=\E[7u\027:k8=\E[8u\027:\
14274 :kD=\E[P:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
14275 :le=^H:ll=\E[H\E[A:mb=\E[0;5m:me=\E[m\017:mh=\E[0;2m:\
14276 :mr=\E[0;7m:nd=\E[C:rs=\E[?=h\Ec:se=\E[m:sf=^J:so=\E[0;7m:\
14277 :st=\EH:ta=\E[I:te=\E[0;98v\E[2J\E[v:\
14278 :ti=\E[?>h\EPY99\:98\E\\:\
14279 :ts=\EPY99\:98\E\\\E[0;98v\E[2;7m:ue=\E[m:up=\E[A:\
14280 :us=\E[0;4m:ve=\E[r:vi=\E[1r:
14281tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA:\
14282 :ds=\E[0;98v\E[2J\E[v:fs=\E[v:i2=\Eb:ts=\E[0;98v:\
14283 :tc=tws-generic:
14284tws2103|xdku|BULL Questar tws2103:\
14285 :ta=^I:tc=tws-generic:
14286tws2103-sna|dku7103-sna|BULL Questar tws2103 for SNA:\
14287 :ta=^I:tc=tws2102-sna:
14288dku7102-old|BULL Questar 200 DKU7102 (microcode version < 6):\
14289 :AL@:DL@:al@:ce=\E[K\E[m:cl=\E[2J\E[H:cm@:dl@:\
14290 :ds=\EPY99\:98\E\\\E[0;98v\E[2J\E[H\E[v:\
14291 :ts=\EPY99\:98\E\\\E[0;98v\E[H\E[2;7m:tc=tws-generic:
14292dku7202|BULL Questar 200 DKU7202 (color/character attributes):\
14293 :i2=\E[?3h\Eb:mb=\E[0;2;4m:mh=\E[0;5m:so=\E[0;4;5;7m:\
14294 :ta=^I:us=\E[0;2m:tc=tws-generic:
14295
14296#=========================================================#
14297# BULL QUESTAR 303 & 310 `DEC VT 320' terminals emulation #
14298#=========================================================#
14299#
14300# Description written by J. Staerck (BULL SA)
14301# Copyright (c) 1989 BULL SA
14302#---------------------------------------------------------------------------
14303# This entry is used for terminals with vt320 emulation mode
14304# and following set-up :
14305# 8 bit ISO Latin Character Set (ISO 8859-1),
14306# 7 bit Control Characters,
14307# 80 columns screen.
14308# Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300)
14309# They are used in string capabilities with vt220-320 emulation mode.
14310# In the following DEC definitions, two kinds of terminfo databases are
14311# provided :
14312# 1. the first with Command Sequence Introducer starting with escape
14313# sequence in 7 bits characters ex. ESC [ : 2 chars. in 7-bit mode.
14314# 2. the second with Command Sequence Introducer starting with escape
14315# sequence in 8 bits characters ex. ESC [ : 1 char. 'CSI' =x9B.
14316# Soft Terminal Reset esc [ ! p
14317# RIS (erases screen): esc c
14318# DECKPNM numeric keypad mode: esc >
14319# DECKPAM applic. keypad mode: esc =
14320# DECSTBM Scrolling region: esc [ r
14321# SCS select G0 = US: esc ( B
14322# SCS select G1 = line-graphic: esc ) 0
14323# Select 7-bit C1 controls: esc sp F
14324# Select 8-bit C1 controls: esc sp G
14325# Select cursor home: esc [ H
14326# Select erase screen: esc [ J
14327# SM KAM lock keyboard: esc [ 2 h
14328# RM KAM unlock keyboard: esc [ 2 l
14329# SM SRM local echo off: esc [ 1 2 h
14330# RM SRM local echo on: esc [ 1 2 l
14331# SM LNM New line : esc [ 2 0 h
14332# RM LNM return = CR only: esc [ 2 0 l
14333# SM DECCKM cursor keys mode: esc [ ? 1 h
14334# RM DECCKM appli. keys mode: esc [ ? 1 l
14335# SM DECANM ANSI mode on: esc [ ? 2 h
14336# RM DECANM ANSI mode off: esc [ ? 2 l
14337# SM DECCOLM 132-column screen: esc [ ? 3 h
14338# RM DECCOLM 80-column screen: esc [ ? 3 l
14339# SM DECSCLM Smooth scroll: esc [ ? 4 h
14340# RM DECSCLM Jump scroll: esc [ ? 4 l
14341# SM DECSCNM screen light backgr. esc [ ? 5 h
14342# RM DECSCNM screen dark backgr. esc [ ? 5 l
14343# SM DECOM move within margins: esc [ ? 6 h
14344# RM DECOM move outside margins: esc [ ? 6 l
14345# SM DECAWM auto right margin: esc [ ? 7 h
14346# RM DECAWM auto right margin: esc [ ? 7 l
14347# SM DECARM auto repeat: esc [ ? 8 h
14348# RM DECARM auto repeat: esc [ ? 8 l
14349# DECSASD Select active main: esc [ 0 $ }
14350# DECSASD Select active status: esc [ 1 $ }
14351# DECSSDT Select status none: esc [ 0 $ ~
14352# DECSSDT Select status indic.: esc [ 1 $ ~
14353# DECSSDT Select status host-wr: esc [ 2 $ ~
14354# SM DECTCEM Visible cursor: esc [ ? 2 5 h
14355# RM DECTCEM Invisible cursor: esc [ ? 2 5 l
14356# SM DECNCRM 7 bits NCR set: esc [ ? 4 2 h
14357# RM DECNCRM Multi or ISO latin: esc [ ? 4 2 l
14358# SM DECNKM numeric keypad mode: esc [ ? 6 6 h
14359# RM DECNKM numeric keypad appl.: esc [ ? 6 6 l
14360# SM DECKBUM clavier informatique esc [ ? 6 8 h
14361# RM DECKBUM clavier bureautique: esc [ ? 6 8 l
14362# DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 " p
14363# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 0 " p
14364# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 2 " p
14365# DECSCL vt300 mode 7-bit ctrl: esc [ 6 3 ; 1 " p
14366# Char. and Line attributes: esc [ Ps ... Ps m
14367# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
14368# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
14369#
14370
14371# This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310
14372# (untranslatable capabilities removed to fit entry within 1023 bytes)
14373# (sgr removed to fit entry within 1023 bytes)
14374# (acsc removed to fit entry within 1023 bytes)
14375# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
14376bq300|Bull vt320 ISO Latin 1 80 columns terminal:\
14377 :am:eo:es:hs:km:mi:ms:xn:xo:\
14378 :co#80:it#8:li#24:vt#3:ws#80:\
14379 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
14380 :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
14381 :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
14382 :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
14383 :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:\
14384 :ds=\E[1$}\E[2$~\n\E[0$}:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:\
14385 :ho=\E[H:i1=\E[63;1"p\E[2h:\
14386 :i2=\E[0$}\E[?25h\E[2l\E[H\E[J:im=\E[4h:\
14387 :is=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
14388 :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
14389 :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
14390 :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ku=\E[A:\
14391 :le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0m\E(B:mr=\E[7m:nd=\E[C:\
14392 :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\
14393 :st=\EH:ta=^I:te=\E[?7h:ti=\E[?7l\E[?1l\E(B:\
14394 :ts=\E[1$}\E[2$~:ue=\E[24m:up=\E[A:us=\E[4m:\
14395 :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
14396bq300-rv|Bull vt320 reverse 80 columns:\
14397 :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
14398 :vb=\E[?5l\E[?5h:tc=bq300:
14399bq300-w|Bull vt320 132 columns:\
14400 :co#132:ws#132:\
14401 :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
14402 :rs=\E[?3h:tc=bq300:
14403bq300-w-rv|Bull vt320 reverse mode 132 columns:\
14404 :co#132:ws#132:\
14405 :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
14406 :rs=\E[?3h:vb=\E[?5l\E[?5h:tc=bq300:
14407
14408# This entry is used for terminals with vt320 emulation mode
14409# and following set-up :
14410# 8 bit ISO Latin Character Set (ISO 8859-1),
14411# 8 bit Control Characters, (CSI coded as x9B for ESC [)
14412# 80 columns screen.
14413# Soft Terminal Reset csi ! p
14414# RIS (erases screen): esc c
14415# DECKPNM numeric keypad mode: esc >
14416# DECKPAM applic. keypad mode: esc =
14417# DECSTBM Scrolling region: esc [ r
14418# SCS select G0 = US: esc ( B
14419# SCS select G1 = line-graphic: esc ) 0
14420# Select 7-bit C1 controls: esc sp F
14421# Select 8-bit C1 controls: esc sp G
14422# Select cursor home: csi H
14423# Select erase screen: csi J
14424# SM KAM lock keyboard: csi 2 h
14425# RM KAM unlock keyboard: csi 2 l
14426# SM SRM local echo off: csi 1 2 h
14427# RM SRM local echo on: csi 1 2 l
14428# SM LNM New line : csi 2 0 h
14429# RM LNM return = CR only: csi 2 0 l
14430# SM DECCKM cursor keys mode: csi ? 1 h
14431# RM DECCKM appli. keys mode: csi ? 1 l
14432# SM DECANM ANSI mode on: csi ? 2 h
14433# RM DECANM ANSI mode off: csi ? 2 l
14434# SM DECCOLM 132-column screen: csi ? 3 h
14435# RM DECCOLM 80-column screen: csi ? 3 l
14436# SM DECSCLM Smooth scroll: csi ? 4 h
14437# RM DECSCLM Jump scroll: csi ? 4 l
14438# SM DECSCNM screen light backgr. csi ? 5 h
14439# RM DECSCNM screen dark backgr. csi ? 5 l
14440# SM DECOM move within margins: csi ? 6 h
14441# RM DECOM move outside margins: csi ? 6 l
14442# SM DECAWM auto right margin: csi ? 7 h
14443# RM DECAWM auto right margin: csi ? 7 l
14444# SM DECARM auto repeat: csi ? 8 h
14445# RM DECARM auto repeat: csi ? 8 l
14446# DECSASD Select active main: csi 0 $ }
14447# DECSASD Select active status: csi 1 $ }
14448# DECSSDT Select status none: csi 0 $ ~
14449# DECSSDT Select status indic.: csi 1 $ ~
14450# DECSSDT Select status host-wr: csi 2 $ ~
14451# SM DECTCEM Visible cursor: csi ? 2 5 h
14452# RM DECTCEM Invisible cursor: csi ? 2 5 l
14453# SM DECNCRM 7 bits NCR set: csi ? 4 2 h
14454# RM DECNCRM Multi or ISO latin: csi ? 4 2 l
14455# DECSCL vt300 mode 8-bit ctrl: csi 6 3 " p
14456# or DECSCL vt300 mode 8-bit ctrl: csi 6 3 ; 0 " p
14457# DECSCL vt300 mode 7-bit ctrl: csi 6 3 ; 1 " p
14458# Char. and Line attributes: csi Ps ... Ps m
14459# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
14460# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
14461# (bq300-8: :le:,:nd:,:up:,:do:,:dl:,:al: to get under 1024 --esr)
14462# (untranslatable capabilities removed to fit entry within 1023 bytes)
14463# (sgr removed to fit entry within 1023 bytes)
14464# (acsc removed to fit entry within 1023 bytes)
14465# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
14466bq300-8|Bull vt320 full 8 bits 80 columns:\
14467 :am:eo:es:hs:km:mi:ms:xn:xo:\
14468 :co#80:it#8:li#24:vt#3:ws#80:\
14469 :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\
14470 :K1=\217w:K2=\217u:K3=\217y:K4=\217q:K5=\217s:LE=\233%dD:\
14471 :RI=\233%dC:UP=\233%dA:ae=^O:as=^N:bl=^G:cd=\233J:ce=\233K:\
14472 :cl=\233H\233J:cm=\233%i%d;%dH:cr=^M:cs=\233%i%d;%dr:\
14473 :ct=\2333g:dc=\233P:ds=\2331$}\2332$~\n\2330$}:\
14474 :ec=\233%dX:ei=\2334l:fs=\2330$}:ho=\233H:\
14475 :i1=\E[63;2"p\E[2h:i2=\2330$}\233?25h\2332l\233H\233J:\
14476 :im=\2334h:\
14477 :is=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
14478 :k1=\217P:k2=\217Q:k3=\217R:k4=\217S:k6=\23317~:\
14479 :k7=\23318~:k8=\23319~:k9=\23320~:kD=\2333~:kI=\2332~:\
14480 :kN=\2336~:kP=\2335~:kb=^H:kd=\233B:ke=\233?1l\E>:\
14481 :kl=\233D:kr=\233C:ku=\233A:mb=\2335m:md=\2331m:\
14482 :me=\2330m\E(B:mr=\2337m:nw=\EE:rc=\E8:sc=\E7:se=\23327m:\
14483 :sf=\ED:so=\2337m:sr=\EM:st=\EH:ta=^I:te=\233?7h:\
14484 :ti=\233?7l\233?1l\E(B:ts=\2331$}\2332$~:ue=\23324m:\
14485 :us=\2334m:vb=\233?5h\233?5l:ve=\233?25h:vi=\233?25l:\
14486 :vs=\233?25h:
14487bq300-8rv|Bull vt320 8-bit reverse mode 80 columns:\
14488 :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
14489 :vb=\233?5l\233?5h:tc=bq300-8:
14490bq300-8w|Bull vt320 8-bit 132 columns:\
14491 :co#132:ws#132:\
14492 :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
14493 :rs=\233?3h:tc=bq300-8:
14494bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns:\
14495 :co#132:ws#132:\
14496 :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
14497 :rs=\233?3h:vb=\233?5l\233?5h:tc=bq300-8:
14498
14499# This entry is used for terminals with vt320 emulation mode
14500# a 102 keys keyboard (PC scancode !) and following set-up :
14501# 8 bit ISO Latin Character Set (ISO 8859-1),
14502# 7 bit Control Characters,
14503# 80 columns screen.
14504bq300-pc|Questar 303 with PC keyboard ISO Latin 1 80 columns:\
14505 :%0@:%1@:*6@:@0@:@7=\E[4~:F1=\E[29~:F2=\E[31~:F3@:F4@:F5@:F6@:\
14506 :F7@:F8@:F9@:FA@:k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:\
14507 :k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[26~:\
14508 :k;=\E[28~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:\
14509 :kh=\E[1~:l1@:l2@:l3@:l4@:tc=bq300:
14510bq300-pc-rv|Questar 303 with PC keyboard reverse mode 80 columns:\
14511 :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
14512 :vb=\E[?5l\E[?5h:tc=bq300-pc:
14513bq300-pc-w|Questar 303 with PC keyboard 132 columns terminal:\
14514 :co#132:ws#132:\
14515 :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
14516 :rs=\E[?3h:tc=bq300-pc:
14517bq300-pc-w-rv|Questar 303 with PC keyboard reverse mode 132 columns:\
14518 :co#132:ws#132:\
14519 :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
14520 :rs=\E[?3h:vb=\E[?5l\E[?5h:tc=bq300-pc:
14521# 8 bit ISO Latin Character Set (ISO 8859-1),
14522# 8 bit Control Characters,
14523# 80 columns screen.
14524bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns:\
14525 :%0@:%1@:*6@:@0@:@7=\2334~:F1=\23329~:F2=\23331~:F3@:F4@:F5@:\
14526 :F6@:F7@:F8@:F9@:FA@:k1=\23317~:k2=\23318~:k3=\23319~:\
14527 :k4=\23320~:k5=\23321~:k6=\23323~:k7=\23324~:k8=\23325~:\
14528 :k9=\23326~:k;=\23328~:kD=\2333~:kI=\2332~:kN=\2336~:\
14529 :kP=\2335~:kb=^H:kh=\2331~:l1@:l2@:l3@:l4@:tc=bq300-8:
14530bq300-8-pc-rv|Questar 303 with PC keyboard full 8 bits reverse mode 80 columns:\
14531 :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
14532 :vb=\E[?5l\E[?5h:tc=bq300-8-pc:
14533bq300-8-pc-w|Questar 303 with PC keyboard full 8 bits 132 columns:\
14534 :co#132:ws#132:\
14535 :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
14536 :rs=\E[?3h:tc=bq300-8-pc:
14537bq300-8-pc-w-rv|Questar 303 with PC keyboard full 8 bits reverse 132 columns:\
14538 :co#132:ws#132:\
14539 :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
14540 :rs=\E[?3h:vb=\E[?5l\E[?5h:tc=bq300-8-pc:
14541
14542#======================================================#
14543# BULL QUESTAR 310 `VIP 7800/8800' terminals emulation #
14544#======================================================#
14545
14546# normal mode, 8 bits, 80 columns terminal.
14547# RES reset : ^[e
14548# RIS reset initial state: ^[c
14549# BLE bell enable ^[h
14550# BLD bell disable ^[g
14551# CAMS char. attr. mode set ^[[D
14552# CAMR char. attr. mode reset ^[[G
14553# CLR clear ^[`
14554# KBU keyboard unlock (set) ^[[W
14555# KBL keyboard lock (reset) ^[[X
14556# CM character mode (async.) ^[k
14557# NEP non echoplex mode (by host) ^[l
14558# EP echoplex mode (by host) ^[m
14559# IM insert mode set ^[[I
14560# IM insert mode reset ^[[J
14561# RMS roll mode set ^[r
14562# RMR roll mode reset ^[q
14563# SM78 set mode vip7800 ^[[1q
14564# SD scroll up (72 lines) ^[[0s
14565# SD scroll down (72 lines) ^[[1s
14566# RBM block mode reset ^[[E
14567# SLS status line set ^[w
14568# SLR status line reset ^[v
14569# SLL status line lock ^[O
14570# LGS Line-graphic mode set ^[G
14571# LGR Line-graphic mode reset ^[F
14572# TBC tab clear (at cursor pos.) ^[[g
14573# TBI tab initialize ^[[N
14574# TBS tab set (at cursor pos.) ^[p
14575# PDS print data space ^[[0p
14576# PHD print host data ^[[3p
14577# PDT print data terminator ^[[<p
14578# PRES print adapter reset ^[[2p
14579# SSPR multi-part. reset ^[[<>u
14580# SSP0 partition 0 set ^[[00u
14581# SSP1 partition n format 1 ^[[PnPnSTRINGu
14582# SSP2 partition n format 2 ^[[PnPnSTRINGu
14583# SSP3 partition n format 3 ^[[PnPnu
14584# ATR attribute (visual)
14585# blink : ^[sB
14586# dim : ^[sL
14587# hide (blank) : ^[sH
14588# restore : ^[sR
14589# inverse video : ^[sI
14590# prot. : ^[sP
14591# underline : ^[s_
14592# reset : ^{
14593#
14594# This covers the vip7800 and BQ3155-vip7800
14595# (untranslatable capabilities removed to fit entry within 1023 bytes)
14596# (sgr removed to fit entry within 1023 bytes)
14597# (acsc removed to fit entry within 1023 bytes)
14598vip|Bull Questar 3155-7800:\
14599 :5i:am:es:hs:km:ms:xn:xo:\
14600 :co#80:it#8:li#24:vt#3:ws#80:\
14601 :#2=\EH:#4=\Eo:%i=\Eu:F1=\E\\:F2=\E^:F3@:F4@:F5@:F6@:F7@:F8@:\
14602 :F9@:FA@:FB=\E1:FC=\E5:FD=\E7:FE=\E9:FF=\E;:FG=\E=:FH=\E?:\
14603 :FI=\EQ:FJ=\ES:FK=\EV:FL=\E]:FM=\E_:ae=\EF:as=\EG:bl=^G:\
14604 :bt=\E[Z:cd=\EJ:ce=\EK:cl=\E`:cm=\E[%i%03%03f:cr=^M:\
14605 :ct=\E[N:dc=\E[P:dl=\E[M:do=^J:ds=\Ev:ei=\E[J:fs=\EO:ho=\EH:\
14606 :i2=\Er\E[W\E`:ic=\E[I:im=\E[I:\
14607 :is=\E[00u\E[<>001001024080024080u\E[01u:k1=\E0:k2=\E2:\
14608 :k3=\E6:k4=\E8:k5=\E\::k6=\E<:k7=\E>:k8=\EP:k9=\ER:k;=\ET:\
14609 :kA=\E[L:kB=\E[Z:kC=\E`:kD=\E[P:kE=\EK:kF=\E[0s:kH=\EH\EA:\
14610 :kI=\E[I:kL=\E[M:kM=\E[J:kR=\E[1s:kS=\EJ:kT=\Ep:ka=\E[N:\
14611 :kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:kt=\E[g:ku=\EA:l1=pf1:\
14612 :l2=pf2:l3=pf3:l4=pf4:le=^H:ll=\EH\EA:mb=\EsB:\
14613 :me=\EsR\EsU\EF:mh=\EsL:mk=\EsH:mp=\EsP:mr=\EsI:nd=\EC:\
14614 :nw=^M:pf=\E[<p:po=\E[3p:ps=\E[0p:r1=\Ec:r2=\E[G:s0=\EF:\
14615 :s1=\EG:se=\EsR:sf=^J:so=\EsI:sr=\EA\EJ\EH\E[L:st=\Ep:\
14616 :ta=^I:ts=\Ew:ue=\EsR:up=\EA:us=\Es_:vb=\007\007\007:
14617# normal screen, 8 bits, 132 columns terminal.
14618vip-w|vip7800-w|Q310-vip-w|Q310-vip-w-am|Questar 3155-vip7800 wide:\
14619 :co#132:ws#132:\
14620 :is=\E[00u\E[<>001001024132024132u\E[01u:tc=vip:
14621vip-H|vip7800-H|Q310-vip-H|Q310-vip-H-am|Questar 3155-vip7800 72 lines:\
14622 :li#72:\
14623 :is=\E[00u\E[<>001001024080072080u\E[01u:tc=vip:
14624vip-Hw|vip7800-Hw|Q310-vip-Hw|Questar 3155-vip7800 wide 72 lines:\
14625 :co#132:li#72:ws#132:\
14626 :is=\E[00u\E[<>001001024132072132u\E[01u:tc=vip:
14627
14628#### Chromatics
14629#
14630
14631# I have put the long strings in :ti:/:te:. Ti sets up a window
14632# that is smaller than the screen, and puts up a warning message
14633# outside the window. Te erases the warning message, puts the
14634# window back to be the whole screen, and puts the cursor at just
14635# below the small window. I defined :ve: and :vi: to really turn
14636# the cursor on and off, but I have taken this out since I don't
14637# like the cursor being turned off when vi exits.
14638cg7900|chromatics|chromatics 7900:\
14639 :am:\
14640 :co#80:li#40:\
14641 :al=^A>2:bl=^G:cd=^Al:ce=^A`:cl=^L:cm=\001M%r%d,%d,:cr=^M:\
14642 :dc=^A<1:dl=^A<2:do=^J:ei=:ho=^\:ic=^A>1:im=:le=^H:ll=^A|:\
14643 :nd=^]:se=\001C1,\001c2,:sf=^J:so=\001C4,\001c7,:\
14644 :te=\001W0,40,85,48,\014\001W0,0,85,48,\001M0,40,:\
14645 :ti=\001P0\001O1\001R1\001C4,\001c0,\014\001M0,42,WARNING DOUBLE ENTER ESCAPE and \025\001C1,\001c2,\001W0,0,79,39,:\
14646 :uc=\001\001_\001\0:up=^K:
14647
14648#### Computer Automation
14649#
14650
14651ca22851|computer automation 22851:\
14652 :am:\
14653 :co#80:li#24:\
14654 :bl=^G:cd=^\:ce=^]:cl=\014:cm=\002%i%.%.:cr=^M:do=^J:ho=^^:\
14655 :kd=^W:kh=^^:kl=^U:ku=^V:le=^U:nd=^I:sf=^J:up=^V:
14656
14657#### Cybernex
14658#
14659
14660# This entry has correct padding and the undocumented "ri" capability
14661cyb83|xl83|cybernex xl-83:\
14662 :am:bs:\
14663 :co#80:li#24:\
14664 :bl=^G:cd=\020:ce=\017:cl=\014:cm=\027%+ %+ :cr=^M:do=^J:\
14665 :ho=^K:kd=^J:kl=^H:kr=^I:ku=^N:le=^H:nd=^I:sf=^J:sr=^N:up=^N:
14666# (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr)
14667cyb110|mdl110|cybernex mdl-110:\
14668 :am:bs:\
14669 :co#80:li#24:\
14670 :al=\016A\016\035:bl=^G:cd=\016@\026:ce=\016@\026:\
14671 :cl=\030:cm=\020%+ %+ :cr=^M:dc=\016A\036:\
14672 :dl=\016A\016\036:do=^J:ei=:ho=^Y:ic=\016A\035:im=:le=^H:\
14673 :nd=^U:se=^NG:sf=^J:so=^NF:ta=\011:up=^Z:
14674
14675#### Datapoint
14676#
14677# Datapoint is gone. They used to be headquartered in Texas.
14678# They created ARCnet, an Ethernet competitor that flourished for a while
14679# in the early 1980s before 3COM got wise and cut its prices. The service
14680# side of Datapoint still lives (1995) in the form of Intelogic Trace.
14681#
14682
14683dp3360|datapoint|datapoint 3360:\
14684 :am:bs:\
14685 :co#82:li#25:\
14686 :bl=^G:cd=^_:ce=^^:cl=^]^_:cr=^M:do=^J:ho=^]:le=^H:nd=^X:\
14687 :sf=^J:up=^Z:
14688
14689# From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997
14690# The Datapoint 8242 Workstation was sold at least between 1985
14691# and 1989. To make the terminal work with this entry, press
14692# CONTROL-INT-INT to take the terminal off-line, and type (opt).
14693# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO
14694# CR/LF off. Use control-shift-[] as escape key, control-I as tab,
14695# shift-F1 to shift-F5 as F6 to F10 (unshifted F1 to F5 are in
14696# fact unusable because the strings sent by the terminal conflict
14697# with other keys).
14698# The terminal is capable of displaying "box draw" characters.
14699# For each graphic character you must send 2 ESC's (\E\E) followed
14700# by a control character as follows:
14701# character meaning
14702# ========= =======
14703# ctrl-E top tee
14704# ctrl-F right tee
14705# ctrl-G bottom tee
14706# ctrl-H left tee
14707# ctrl-I cross
14708# ctrl-J top left corner
14709# ctrl-K top right corner
14710# ctrl-L bottom left corner
14711# ctrl-M bottom right corner
14712# ctrl-N horizontal line
14713# ctrl-O vertical line
14714# Unfortunately this cannot be fitted into the termcap/terminfo
14715# description scheme.
14716dp8242|datapoint 8242:\
14717 :ms:\
14718 :co#80:li#25:\
14719 :al=\E^T:bl=^G:cd=^W:ce=^V:cl=\025\E\004\027\030:\
14720 :cm=\011%r%+\\%+\\:cr=^M:dl=\E^Z:do=^J:ho=^U:\
14721 :i1=\E\014\E\016\0\230\0\317\025\027\030\E\004:\
14722 :k1=^G\Ee:k2=^I\Ed:k3=^J\Ec:k4=^J\Eb:k5=^S\Ea:k6=\EO\Ee:\
14723 :k7=\EN\Ed:k8=\EM\Ec:k9=\EL\Eb:k;=\EK\Ea:kb=^H:kd=^B:kl=^D:\
14724 :kr=^F:ku=^E:le=^H:nw=^M^J:\
14725 :r1=\E\014\E\016\0\230\0\317\025\027\030\E\004:\
14726 :rp=\E\023%.%.:se=\E^D:sf=^C:so=\E^E:sr=^K:ta=^I:ue=\E^D:\
14727 :us=\E^F:ve=^X:vi=^Y:\
14728 :..wi=\E\014\E\016%p1%'\0'%+%c%p2%'\0'%+%c%p3%'\0'%+%c%p4%'\0'%+%c\025:
14729
14730#### DEC terminals (Obsolete types: DECwriter and vt40/42/50)
14731#
14732# These entries are DEC's official terminfos for its older terminals.
14733# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
14734# Engineering for more information. Updated terminfos and termcaps
14735# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
14736#
14737
14738gt40|dec gt40:\
14739 :bs:os:\
14740 :co#72:li#30:\
14741 :bl=^G:cr=^M:do=^J:le=^H:
14742gt42|dec gt42:\
14743 :bs:os:\
14744 :co#72:li#40:\
14745 :bl=^G:cr=^M:do=^J:le=^H:
14746vt50|dec vt50:\
14747 :bs:\
14748 :co#80:li#12:\
14749 :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cr=^M:do=^J:le=^H:nd=\EC:\
14750 :sf=^J:ta=^I:up=\EA:
14751vt50h|dec vt50h:\
14752 :bs:\
14753 :co#80:li#12:\
14754 :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:do=^J:\
14755 :le=^H:nd=\EC:sf=^J:sr=\EI:ta=^I:up=\EA:
14756# (vt61: there's a BSD termcap that claims :dl=\EPd:, :al=\EPf.: :kb=^H:)
14757vt61|vt-61|vt61.5|dec vt61:\
14758 :co#80:li#24:\
14759 :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=\r:do=^J:\
14760 :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:sf=\n:sr=\EI:ta=^I:\
14761 :up=\EA:
14762
14763# The gigi does standout with red!
14764# (gigi: I added <rmam>/<smam> based on the init string, corrected cub1 -- esr)
14765gigi|vk100|dec gigi graphics terminal:\
14766 :am:bs:xn:\
14767 :co#84:li#24:\
14768 :DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\
14769 :UP=\E[%dA:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
14770 :cm=\E[%i%d;%dH:cr=^M:do=^J:\
14771 :is=\E>\E[?3l\E[?4l\E[?5l\E[?20l\E[?7h\E[?8h:k1=\EOP:\
14772 :k2=\EOQ:k3=\EOR:k4=\EOS:kd=\EOB:ke=\E[?1l\E>:kh=\E[H:\
14773 :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:me=\E[m:\
14774 :nd=\E[C:se=\E[m:sf=^J:so=\E[7;31m:sr=\EM:ta=^I:ue=\E[m:\
14775 :up=\E[A:us=\E[4m:
14776
14777# DEC PRO-350 console (VT220-style). The 350 was DEC's attempt to produce
14778# a PC differentiated from the IBM clones. It was a total, ludicrous,
14779# grossly-overpriced failure (among other things, DEC's OS didn't include
14780# a format program, so you had to buy pre-formatted floppies from DEC at
14781# a hefty premium!).
14782pro350|decpro|dec pro console:\
14783 :bs:\
14784 :co#80:it#8:li#24:\
14785 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
14786 :ae=\EG:as=\EF:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :do=\EB:\
14787 :ho=\EH:k0=\EE:k1=\EF:k2=\EG:k3=\EH:k4=\EI:k5=\EJ:k6=\Ei:\
14788 :k7=\Ej:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\
14789 :se=\E^N:so=\E^H:sr=\EI:ta=^I:ue=\E^C:up=\EA:us=\E^D:
14790
14791dw1|decwriter I:\
14792 :bs:hc:os:\
14793 :co#72:\
14794 :bl=^G:cr=^M:do=^J:le=^H:sf=^J:
14795dw2|decwriter|dw|decwriter II:\
14796 :bs:hc:os:\
14797 :co#132:\
14798 :bl=^G:cr=^M:do=^J:kb=^H:le=^H:sf=^J:
14799# \E(B Use U.S. character set (otherwise # => british pound !)
14800# \E[20l Disable "linefeed newline" mode (else puts \r after \n,\f,\v)
14801# \E[w 10 char/in pitch
14802# \E[1;132 full width horizontal margins
14803# \E[2g clear all tab stops
14804# \E[z 6 lines/in
14805# \E[66t 66 lines/page (for \f)
14806# \E[1;66r full vertical page can be printed
14807# \E[4g clear vertical tab stops
14808# \E> disable alternate keypad mode (so it transmits numbers!)
14809# \E[%i%p1%du set tab stop at column %d (origin == 1)
14810# (Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is
14811# a tab stop)
14812#
14813# The dw3 does standout with wide characters.
14814#
14815dw3|la120|decwriter III:\
14816 :bs:hc:os:\
14817 :co#132:\
14818 :bl=^G:cr=^M:do=^J:\
14819 :i1=\E(B\E[20l\E[w\E[0;132s\E[2g\E[z\E[66t\E[1;66r\E[4g\E>:\
14820 :is=\E[9;17;25;33;41;49;57;65;73;81;89;97;105;113;121;129u\r:\
14821 :kb=^H:le=^H:me=\E[w:se=\E[w:sf=^J:so=\E[6w:ta=^I:
14822dw4|decwriter IV:\
14823 :am:bs:hc:os:\
14824 :co#132:\
14825 :bl=^G:cr=^M:do=^J:is=\Ec:k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:\
14826 :kb=^H:le=^H:sf=^J:ta=^I:
14827
14828# These aren't official
14829ln03|dec ln03 laser printer:\
14830 :hc:\
14831 :co#80:li#66:\
14832 :bl=^G:cr=^M:do=^J:hd=\EK:hu=\EL:me=\E[m:nw=^M^J:se=\E[22m:\
14833 :sf=^J:so=\E[1m:ta=^I:ue=\E[24m:us=\E[4m:
14834ln03-w|dec ln03 laser printer 132 cols:\
14835 :co#132:\
14836 :bl=^G:cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:\
14837 :tc=ln03:
14838
14839#### Delta Data (dd)
14840#
14841
14842# Untested. The cup sequence is hairy enough that it probably needs work.
14843# The idea is ctrl(O), dd(row), dd(col), where dd(x) is x - 2*(x%16) + '9'.
14844# There are BSD-derived termcap entries floating around for this puppy
14845# that are *certainly* wrong.
14846delta|dd5000|delta data 5000:\
14847 :am:bs:\
14848 :co#80:li#27:\
14849 :bl=^G:ce=^NU:cl=^NR:cm=\017%+^P%+^P:dc=^NV:do=^J:ho=^NQ:\
14850 :le=^H:nd=^Y:sf=^J:up=^Z:
14851
14852#### Digital Data Research (ddr)
14853#
14854
14855# (ddr: I added <rmam>/<smam> based on the init string -- esr)
14856ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator:\
14857 :am:bs:xn:\
14858 :co#80:it#8:li#24:vt#3:\
14859 :RA=\E[7l:SA=\E[7l:cd=50\E[J:ce=3\E[K:cl=50\E[H\E[2J:\
14860 :cm=5\E[%i%d;%dH:cs=\E[%i%d;%dr:do=^J:ho=\E[H:\
14861 :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
14862 :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ks=\E[?1h\E=:\
14863 :ku=\E[A:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\
14864 :nd=2\E[C:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
14865 :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[m:sf=5\ED:\
14866 :so=\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m:
14867
14868#### Evans & Sutherland
14869#
14870
14871# Jon Leech <leech@cs.unc.edu> tells us:
14872# The ps300 was the Evans & Sutherland Picture System 300, a high
14873# performance 3D vector graphics system with a bunch of specialized hardware.
14874# Approximate date of release was 1982 (early 80s, anyway), and it had several
14875# evolutions including (limited) color versions such as the PS330C. PS300s
14876# were effectively obsolete by the late 80s, replaced by raster graphics
14877# systems, although specialized applications like molecular modeling
14878# hung onto them for a while longer. AFAIK all E&S vector graphics systems
14879# are out of production, though of course E&S is very much alive (in 1996).
14880# (ps300: changed ":pt@:" to "it@" -- esr)
14881#
14882ps300|Picture System 300:\
14883 :xt:\
14884 :it@:\
14885 :se@:so@:ue@:us@:tc=vt100:
14886
14887#### General Electric (ge)
14888#
14889
14890terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200:\
14891 :bs:hc:os:\
14892 :co#120:\
14893 :bl=^G:cr=^M:do=^J:sf=^J:
14894
14895#### Heathkit/Zenith
14896#
14897
14898# Here is a description of the H19 DIP switches:
14899#
14900# S401
14901# 0-3 = baud rate as follows:
14902#
14903# 3 2 1 0
14904# --- --- --- ---
14905# 0 0 1 1 300 baud
14906# 0 1 0 1 1200 baud
14907# 1 0 0 0 2400 baud
14908# 1 0 1 0 4800 baud
14909# 1 1 0 0 9600 baud
14910# 1 1 0 1 19.2K baud
14911#
14912# 4 = parity (0 = no parity)
14913# 5 = even parity (0 = odd parity)
14914# 6 = stick parity (0 = normal parity)
14915# 7 = full duplex (0 = half duplex)
14916#
14917# S402
14918# 0 = block cursor (0 = underscore cursor)
14919# 1 = no key click (0 = keyclick)
14920# 2 = wrap at end of line (0 = no wrap)
14921# 3 = auto LF on CR (0 = no LF on CR)
14922# 4 = auto CR on LF (0 = no CR on LF)
14923# 5 = ANSI mode (0 = VT52 mode)
14924# 6 = keypad shifted (0 = keypad unshifted)
14925# 7 = 50Hz refresh (1 = 60Hz refresh)
14926#
14927# Factory Default settings are as follows:
14928# 7 6 5 4 3 2 1 0
14929# S401 1 0 0 0 1 1 0 0
14930# S402 0 0 0 0 0 0 0 0
14931# (h19: I added <rmam>/<smam> based on the init string;
14932# also added empty <acsc> to suppress a tic warning -- esr)
14933h19-a|h19a|heath-ansi|heathkit-a|heathkit h19 ansi mode:\
14934 :am:bs:mi:ms:\
14935 :co#80:it#8:li#24:\
14936 :RA=\E[?7l:SA=\E[?7h:ac=:ae=\E[11m:al=\E[1L:as=\E[10m:\
14937 :bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:\
14938 :dc=\E[1P:dl=\E[1M:do=\E[1B:ei=\E[4l:ho=\E[H:im=\E[4h:\
14939 :is=\E<\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m\E[?7h:k1=\EOS:\
14940 :k2=\EOT:k3=\EOU:k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:\
14941 :kb=^H:kd=\E[1B:kh=\E[H:kl=\E[1D:kr=\E[1C:ku=\E[1A:l6=blue:\
14942 :l7=red:l8=white:le=^H:nd=\E[1C:se=\E[m:sf=^J:so=\E[7m:\
14943 :sr=\EM:ta=^I:up=\E[1A:ve=\E[>4l:vs=\E[>4h:
14944h19-bs|heathkit w/keypad shifted:\
14945 :ke=\Eu:ks=\Et:tc=h19-b:
14946h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor:\
14947 :ke=\Eu:ks=\Et:tc=h19-u:
14948# (h19: merged in :ip: from BSDI hp19-e entry>;
14949# also added empty <acsc> to suppress a tic warning --esr)
14950# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998
14951# Tim tells us that:
14952# I have an old Zenith-19 terminal at home that still gets a lot of use.
14953# This terminal suffers from the same famous insert-mode padding lossage
14954# that has been acknowledged for the Z29 terminal. Emacs is nearly
14955# unusable on this box, since even a half-scroll up or down the window
14956# causes flaming terminal death.
14957#
14958# On the Z19, the only way I have found around this problem is to remove
14959# the :al: and :dl: entries entirely. No amount of extra padding will
14960# help (I have tried up to 20000). Removing :al=\EL$: and :dl=\EM$:
14961# makes Emacs a little slower, but it remains in the land of the living.
14962# Big win.
14963h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19:\
14964 :am:bs:es:hs:mi:ms:\
14965 :co#80:it#8:li#24:\
14966 :ac=:ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :\
14967 :cr=^M:dc=\EN:do=\EB:ei=\EO:fs=\Ek\Ey5:ho=\EH:im=\E@:\
14968 :ip=1.5<1.5/>:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:\
14969 :k7=\EQ:k8=\ER:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:\
14970 :l6=blue:l7=red:l8=white:le=^H:nd=\EC:se=\Eq:sf=^J:so=\Ep:\
14971 :sr=\EI:ta=^I:ts=\Ej\Ex5\EY8%+ \Eo\Eo:up=\EA:ve=\Ey4:\
14972 :vs=\Ex4:
14973h19-u|heathkit with underscore cursor:\
14974 :ve@:vs@:tc=h19-b:
14975h19-g|h19g|heathkit w/block cursor:\
14976 :ve=\Ex4:tc=h19-b:
14977alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19:\
14978 :li#60:\
14979 :al=\EL:dl=\EM:tc=h19:
14980
14981# The major problem with the Z29 is that it requires more padding than the Z19.
14982#
14983# The problem with declaring an H19 to be synonymous with a Z29 is that
14984# it needs more padding. It especially loses if a program attempts
14985# to put the Z29 into insert mode and insert text at 9600 baud. It
14986# even loses worse if the program attempts to insert tabs at 9600
14987# baud. Adding padding to text that is inserted loses because in
14988# order to make the Z29 not die, one must add so much padding that
14989# whenever the program tries to use insert mode, the effective
14990# rate is about 110 baud.
14991#
14992# What program would want to put the terminal into insert mode
14993# and shove stuff at it at 9600 baud you ask?
14994#
14995# Emacs. Emacs seems to want to do the mathematically optimal
14996# thing in doing a redisplay rather than the practical thing.
14997# When it is about to output a line on top of a line that is
14998# already on the screen, instead of just killing to the end of
14999# the line and outputting the new line, it compares the old line
15000# and the new line and if there are any similarities, it
15001# constructs the new line by deleting the text on the old line
15002# on the terminal that is already there and then inserting new
15003# text into the line to transform it into the new line that is
15004# to be displayed. The Z29 does not react kindly to this.
15005#
15006# But don't cry for too long.... There is a solution. You can make
15007# a termcap entry for the Z29 that says the Z29 has no insert mode.
15008# Then Emacs cannot use it. "Oh, no, but now inserting into a
15009# line will be really slow", you say. Well there is a sort of a
15010# solution to that too. There is an insert character option on
15011# the Z29 that will insert one character. Unfortunately, it
15012# involves putting the terminal into ansi mode, inserting the
15013# character, and changing it back to H19 mode. All this takes 12
15014# characters. Pretty expensive to insert one character, but it
15015# works. Either Emacs doesn't try to use its inserting hack when
15016# it's only given an insert character ability or the Z29 doesn't
15017# require padding with this (the former is probably more likely,
15018# but I haven't checked it out).
15019# (z29: added empty <acsc> to suppress a tic warning, merged in
15020# status line capabilities from BRL entry --esr)
15021z29|zenith29|z29b|zenith z29b:\
15022 :am:bs:es:hs:mi:ms:pt:\
15023 :co#80:kn#10:li#24:\
15024 :ac=:ae=\EF:al=1\EL:as=\EG:bc=\ED:bl=^G:bt=\E-:cd=\EJ:ce=\EK:\
15025 :cl=\EE:cm=\EY%+ %+ :cr=^M:dc=\EN:dl=1\EM:do=\EB:ds=\Ey1:\
15026 :ei=\EO:fs=\Ek\Ey5:ho=\EH:ic=\E<\E[1@\E[?2h:im=\E@:\
15027 :is=\E<\E[?2h\Ev:k0=\E~:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:\
15028 :k6=\EP:k7=\EQ:k8=\ER:k9=\E0I:kb=^H:kd=\EB:kh=\EH:kl=\ED:\
15029 :kr=\EC:ku=\EA:l0=home:le=^H:nd=\EC:se=\Eq:sf=\n:so=\Ep:\
15030 :sr=2\EI:ta=^I:..ts=\Ej\Ex5\Ex1\EY8%+ \Eo:ue=\Es0:up=\EA:\
15031 :us=\Es8:ve=\Ey4:vs=\Ex4:
15032# z29 in ansi mode. Assumes that the cursor is in the correct state, and that
15033# the world is stable. <rs1> causes the terminal to be reset to the state
15034# indicated by the name. kc -> key click, nkc -> no key click, uc -> underscore
15035# cursor, bc -> block cursor.
15036# From: Mike Meyers
15037# (z29a: replaced nonexistent :if=/usr/share/tabset/zenith29: befause :st:
15038# looks vt100-compatible -- esr)
15039z29a|z29a-kc-bc|h29a-kc-bc|heath/zenith 29 in ansi mode:\
15040 :am:bs:es:hs:mi:ms:pt:\
15041 :co#80:it#8:kn#10:li#24:\
15042 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
15043 :RI=\E[%dC:UP=\E[%dA:bc=\ED:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:\
15044 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:\
15045 :do=^J:ds=\E[>1l:fs=\E[u\E[>5l:ho=\E[H:\
15046 :if=/usr/share/tabset/vt100:k0=\E[~:k1=\EOS:k2=\EOT:\
15047 :k3=\EOU:k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:k9=\EOX:\
15048 :kC=\E[J:kS=\E[J:kb=^H:kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:\
15049 :ku=\EOA:l0=help:le=^H:mb=\E[5m:md=\E[2m:me=\E[m:mh=\E[2m:\
15050 :mr=\E[7m:nd=\E[C:nw=^M\ED:ps=\E#7:\
15051 :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m:\
15052 :rc=\E[r:sc=\E[s:se=\E[m:sf=\ED:so=\E[7;2m:sr=\EM:st=\EH:\
15053 :ta=^I:te=\E[?7h:ti=\E[?7l:\
15054 :ts=\E[s\E[>5;1h\E[25;%i%dH\E[1K:ue=\E[m:up=\E[A:\
15055 :us=\E[4m:
15056z29a-kc-uc|h29a-kc-uc|z29 ansi mode with keyckick and underscore cursor:\
15057 :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m:\
15058 :tc=z29a:
15059z29a-nkc-bc|h29a-nkc-bc|z29 ansi mode with block cursor and no keyclick:\
15060 :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2;4h\E[>1;3;5;6;7;8;9l\E[m\E[11m:\
15061 :tc=z29a:
15062z29a-nkc-uc|h29a-nkc-uc|z29 ansi mode with underscore cursor and no keyclick:\
15063 :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2h\E[>1;3;4;5;6;7;8;9l\E[m\E[11m:\
15064 :tc=z29a:
15065# From: Jeff Bartig <jeffb@dont.doit.wisc.edu> 31 Mar 1995
15066z39-a|z39a|zenith39-a|zenith39-ansi|Zenith 39 in ANSI mode:\
15067 :5i:am:es:hs:mi:ms:xo:\
15068 :co#80:li#24:\
15069 :%1=\E[~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:K1=\EOw:\
15070 :K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:RI=\E[%dC:\
15071 :UP=\E[%dA:ac=0a``aaffggjjkkllmmnnooqqssttuuvvwwxx~~:\
15072 :ae=\E(B:al=\E[1L:as=\E(0:bl=^G:bt=\E[1Z:cb=\E[1K:cd=\E[0J:\
15073 :ce=\E[0K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:\
15074 :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[1M:do=\E[B:\
15075 :ds=\E[>1l:ei=\E[4l:fs=\E[u:ho=\E[H:im=\E[4h:\
15076 :is=\E<\E[>1;3;5;6;7l\E[0m\E[2J:k1=\EOS:k2=\EOT:k3=\EOU:\
15077 :k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:k9=\EOX:kS=\E[J:\
15078 :kb=^H:kd=\E[B:ke=\E[>7l:kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[>7h:\
15079 :ku=\E[A:le=^H:ll=\E[24;1H:mb=\E[5m:md=\E[1m:me=\E[0m:\
15080 :mh=\E[2m:mr=\E[7m:nd=\E[C:pf=\E[4i:po=\E[5i:\
15081 :ps=\E[?19h\E[i:rc=\E[u:rs=\E<\Ec\0:sc=\E[s:se=\E[0m:\
15082 :sf=^J:so=\E[7m:st=\EH:ta=^I:ts=\E[s\E[>1h\E[25;%i%dH:\
15083 :ue=\E[0m:up=\E[A:us=\E[4m:ve=\E[>5l:vi=\E[>5h:
15084
15085# From: Brad Brahms <Brahms@USC-ECLC>
15086z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor:\
15087 :ve=\Ey4\Em70:vs=\Ex4\Em71:tc=z100bw:
15088# (z100bw: removed obsolete ":kn#10:", added empty <acsc> -- esr)
15089z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc:\
15090 :bs:mi:ms:pt:\
15091 :co#80:it#8:kn#10:li#24:\
15092 :ac=:ae=\EG:al=5*\EL:as=\EF:cd=\EJ:ce=\EK:cl=5*\EE:\
15093 :cm=1*\EY%+ %+ :dc=1*\EN:dl=5*\EM:do=\EB:ei=\EO:ho=\EH:\
15094 :im=\E@:k0=\EJ:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:\
15095 :k7=\EQ:k8=\ER:k9=\EOI:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\
15096 :ku=\EA:le=^H:nd=\EC:se=\Eq:so=\Ep:sr=\EI:ta=^I:up=\EA:\
15097 :ve=\Ey4:vs=\Ex4:
15098p19|h19-b with il1/dl1:\
15099 :al=2*\EL:dl=2*\EM:tc=h19-b:
15100# From: <ucscc!B.fiatlux@ucbvax.berkeley.edu>
15101# (ztx: removed duplicate :sr: -- esr)
15102ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11:\
15103 :am:bs:es:hs:\
15104 :co#80:it#8:li#24:\
15105 :al=\EL:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :dl=\EM:do=^J:\
15106 :ds=\Ey1:fs=\Ek\Ey5:ho=\EH:\
15107 :is=\Ej\EH\Eq\Ek\Ev\Ey1\Ey5\EG\Ey8\Ey9\Ey>:k0=\ES:\
15108 :k1=\EB:k2=\EU:k3=\EV:k4=\EW:k5=\EP:k6=\EQ:k7=\ER:kb=^H:\
15109 :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:se=\Eq:so=\Es5:\
15110 :sr=\EI:ta=^I:..ts=\Ej\Ex5\Ex1\EY8%+ \Eo:ue=\Eq:up=\EA:\
15111 :us=\Es2:
15112
15113#### IMS International (ims)
15114#
15115# There was a company called IMS International located in Carson City,
15116# Nevada, that flourished from the mid-70s to mid-80s. They made S-100
15117# bus/Z80 hardware and a line of terminals called Ultimas.
15118#
15119
15120# From: Erik Fair <fair@ucbarpa.berkeley.edu> Sun Oct 27 07:21:05 1985
15121ims950-b|bare ims950 no init string:\
15122 :is@:tc=ims950:
15123# (ims950: removed obsolete ":ko@:" -- esr)
15124ims950|ims televideo 950 emulation:\
15125 :xn@:\
15126 :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb@:kd@:kh@:kl@:kr@:ku@:vb@:\
15127 :tc=tvi950:
15128# (ims950-rv: removed obsolete ":ko@:" -- esr)
15129ims950-rv|ims tvi950 rev video:\
15130 :xn@:\
15131 :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb@:kd@:kh@:kl@:kr@:ku@:vb@:\
15132 :tc=tvi950-rv:
15133ims-ansi|ultima2|ultimaII|IMS Ultima II:\
15134 :am:bs:\
15135 :co#80:it#8:li#24:\
15136 :cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:cm=\E[%i%2;%2H:do=\ED:\
15137 :if=/usr/share/tabset/vt100:\
15138 :is=\E[m\E[>14l\E[?1;?5;20l\E>\E[1m\r:kd=\E[B:kh=\E[H:\
15139 :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:se=\E[m\E[1m:\
15140 :so=\E[7m:sr=\EM:ta=^I:ue=\E[m\E[1m:up=\EM:us=\E[4m:
15141
15142#### Intertec Data Systems
15143#
15144# I think this company is long dead as of 1995. They made an early CP/M
15145# micro called the "Intertec Superbrain" that was moderately popular,
15146# then sank out of sight.
15147#
15148
15149superbrain|intertec superbrain:\
15150 :am:bs:bw:\
15151 :co#80:li#24:\
15152 :bc=^U:bl=^G:cd=\E~k<10*>:ce=\E~K:cl=\014:cm=\EY%+ %+ :\
15153 :cr=^M:do=^J:kd=^J:kl=^U:kr=^F:ku=^K:le=^H:nd=^F:sf=^J:ta=^I:\
15154 :te=^L:ti=^L:up=^K:
15155# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>,
15156# rmul=\E0A$<200/>; my guess is the highlight letter is bit-coded like an ADM,
15157# and the reverse is actually true. Try it. -- esr)
15158intertube|intertec|Intertec InterTube:\
15159 :am:bs:\
15160 :co#80:li#25:\
15161 :bl=^G:cl=^L:cm=\EY%+ %+ :cr=^M:do=^J:ho=^A:le=^H:nd=^F:\
15162 :se=\E0@:sf=^J:so=\E0P:up=^Z:
15163# The intertube 2 has the "full duplex" problem like the tek 4025: if you
15164# are typing and a command comes in, the keystrokes you type get interspersed
15165# with the command and it messes up
15166intertube2|intertec data systems intertube 2:\
15167 :bs:\
15168 :ce=\EK:ch=\020%B%.:cm=\016%.\020%B%.:cv=\013%.:\
15169 :ll=^K^X\r:tc=intertube:
15170
15171#### Ithaca Intersystems
15172#
15173# This company made S100-bus personal computers long ago in the pre-IBM-PC
15174# past. They used to be reachable at:
15175#
15176# Ithaca Intersystems
15177# 1650 Hanshaw Road
15178# Ithaca, New York 14850
15179#
15180# However, the outfit went bankrupt years ago.
15181#
15182
15183# The Graphos III was a color graphics terminal from Ithaca Intersystems.
15184# These entries were written (originally in termcap syntax) by Brian Yandell
15185# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the
15186# University of Wisconsin.
15187
15188# (graphos: removed obsolete and syntactically incorrect :kn=4:,
15189# removed :if=/usr/share/tabset/init.graphos: and
15190# <rf=/usr/share/tabset/init.graphos> no such file & no :st: -- esr)
15191graphos|graphos III:\
15192 :am:mi:\
15193 :co#80:it#8:li#24:\
15194 :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\
15195 :UP=\E[%dA:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
15196 :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:dm=\E[4h:do=\E[B:\
15197 :ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:k1=\EOP:k2=\EOQ:\
15198 :k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\
15199 :ku=\E[A:le=^H:me=\E[m:nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:\
15200 :se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:up=\E[A:\
15201 :ve=\Ez56;2;0;0z\Ez73z\Ez4;1;1z:\
15202 :vs=\Ez4;2;1z\Ez56;2;80;24z:
15203graphos-30|graphos III with 30 lines:\
15204 :li#30:\
15205 :vs=\Ez4;2;1z\Ez56;2;80;30z:tc=graphos:
15206
15207#### Modgraph
15208#
15209# These people used to be reachable at:
15210#
15211# Modgraph, Inc
15212# 1393 Main Street,
15213# Waltham, MA 02154
15214# Vox: (617)-890-5796.
15215#
15216# However, if you call that number today you'll get an insurance company.
15217# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated
15218# 26 Feb 1997 that says:
15219#
15220# Modgraph GX-1000, replaced by GX-2000. Both are out of production, have been
15221# for ~7 years. Modgraph still in business. Products are rugged laptop and
15222# portable PC's and specialized CRT and LCD monitors (rugged, rack-mount
15223# panel-mount etc). I can be emailed at sonfour@aol.com
15224#
15225# Peter D. Smith <pdsmith@nbbn.com> notes that his modgraph manual was
15226# dated 1984. According to the manual, it featured Tek 4010/4014
15227# graphics and DEC VT100/VT52 + ADM-3A emulation with a VT220-style keyboard.
15228#
15229
15230modgraph|mod24|modgraph terminal emulating vt100:\
15231 :xn@:\
15232 :co#80:li#24:\
15233 :is=\E^9;0s\E^7;1s\E[3g\E^11;9s\E^11;17s\E^11;25s\E^11;33s\E^11;41s\E^11;49s\E^11;57s\E^11;65s\E^11;73s\E^11;81s\E^11;89s:\
15234 :rf@:sr=5\EM\E[K:vs=\E^9;0s\E^7;1s:tc=vt100:
15235# The GX-1000 manual is dated 1984. This looks rather like a VT-52.
15236modgraph2|modgraph gx-1000 80x24 with keypad not enabled:\
15237 :am:da:db:\
15238 :co#80:it#8:li#24:\
15239 :cd=50\EJ:ce=3\EK:cl=50\EH\EJ:cm=5\EY%+ %+ :\
15240 :is=\E<\E^5;2s\E^7;1s\E[3g\E^11;9s\E^11;17s\E^11;25s\E^11;33s\E^11;41s\E^11;49s\E^11;57s\E^11;65s\E^11;73s\E^11;81s\E^11;89s\E^12;0s\E^14;2s\E^15;9s\E^25;1s\E^9;1s\E^27;1:\
15241 :le=^H:nd=2\EC:sr=5\EI:ta=^I:up=2\EA:
15242#
15243# Modgraph from Nancy L. Cider <nancyc@brl-tbd>
15244# BUG NOTE from Barbara E. Ringers <barb@brl-tbd>:
15245# If we set TERM=vt100, and set the Modgraph screen to 24 lines, setting a
15246# mark and using delete-to-killbuffer work correctly. However, we would
15247# like normal mode of operation to be using a Modgraph with 48 line setting.
15248# If we set TERM=mod (which is a valid entry in termcap with 48 lines)
15249# the setting mark and delete-to-killbuffer results in the deletion of only
15250# the line the mark is set on.
15251# We've discovered that the delete-to-killbuffer works correctly
15252# with TERM=mod and screen set to 80x48 but it's not obvious. Only
15253# the first line disappears but a ctrl-l shows that it did work
15254# correctly.
15255modgraph48|mod|Modgraph w/48 lines:\
15256 :am:bs:pt:xn:\
15257 :co#80:it#8:li#48:vt#3:\
15258 :bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
15259 :cs=\E[%i%d;%dr:do=^J:ho=\E[H:\
15260 :is=\E<\E[1;48r\E[0q\E[3;4q\E=\E[?1h:k1=\EOP:k2=\EOQ:\
15261 :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
15262 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\
15263 :me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:r1=\E=\E[0q\E>:rc=\E8:\
15264 :sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\
15265 :us=\E[4m:vb=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q:
15266
15267#### Morrow Designs
15268#
15269# This was George Morrow's company. They started in the late 1970s making
15270# S100-bus machines. They used to be reachable at:
15271#
15272# Morrow
15273# 600 McCormick St.
15274# San Leandro, CA 94577
15275#
15276# but they're long gone now (1995).
15277#
15278
15279# The mt70 terminal was shipped with the Morrow MD-3 microcomputer.
15280# Jeff's specimen was dated June 1984.
15281# From: Jeff Wieland <wieland@acn.purdue.edu> 24 Feb 1995
15282mt70|mt-70|Morrow MD-70; native Morrow mode:\
15283 :am:mi:ms:xo:\
15284 :co#80:it#8:li#24:\
15285 :%1=^AO\r:F1=^A`\r:F2=^Aa\r:F3=^Ab\r:F4=^Ac\r:F5=^Ad\r:\
15286 :F6=^Ae\r:F7=^Af\r:F8=^Ag\r:F9=^Ah\r:FA=^Ai\r:\
15287 :ac=+z,{-x.yOi`|jGkFlEmDnHqJtLuKvNwMxI:ae=\E%%%:al=\EE:\
15288 :as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\
15289 :ct=\E0:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:i1=\E"2\EG0\E]:ic=\EQ:\
15290 :im=:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
15291 :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kB=^A^Z\r:kC=^An\r:\
15292 :kD=\177:kb=^H:kd=^AK\r:kh=^AN\r:kl=^AL\r:kr=^AM\r:\
15293 :ku=^AJ\r:le=^H:mh=\EG2:mk@:nd=^L:nw=^_:sf=^J:ta=^I:te=:\
15294 :ti=\E"2\EG0\E]:up=^K:us=\EG1:vb=\EK1\EK0:ve=\E"2:vi=\E"0:\
15295 :tc=adm+sgr:
15296
15297#### Motorola
15298#
15299
15300# Motorola EXORterm 155 from {decvax, ihnp4}!philabs!sbcs!megad!seth via BRL
15301# (Seth H Zirin)
15302ex155|Motorola Exorterm 155:\
15303 :am:bs:bw:\
15304 :co#80:kn#5:li#24:ug#1:\
15305 :bt=\E[:cd=\ET:ce=\EU:cl=\EX:cm=\EE%+ %+ :do=\EB:ho=\E@:\
15306 :kB=\E[:kC=\EX:kE=\EU:kS=\ET:kb=^H:kd=^J:kh=\E@:kl=^H:kr=^L:\
15307 :ku=^K:nd=\ED:se=\Ec\ED:so=\Eb\ED:ta=\EZ:ue=\Eg\ED:\
15308 :us=\Ef\ED:
15309
15310#### Omron
15311#
15312# This company is still around in 1995, manufacturing point-of-sale systems.
15313
15314omron|Omron 8025AG:\
15315 :am:bs:da:db:\
15316 :co#80:li#24:\
15317 :al=\EL:bl=^G:cd=\ER:ce=\EK:cl=\EJ:cr=^M:dc=\EP:dl=\EM:do=^J:\
15318 :ho=\EH:le=^H:nd=\EC:se=\E4:sf=\ES:so=\Ef:sr=\ET:up=\EA:\
15319 :vs=\EN:
15320
15321#### Ramtek
15322#
15323# Ramtek was a vendor of high-end graphics terminals around 1979-1983; they
15324# were competition for things like the Tektronics 4025.
15325#
15326
15327# Ramtek 6221 from BRL, probably by Doug Gwyn
15328# The following SET-UP modes are assumed for normal operation:
15329# UNDERLINE_CURSOR ANSI_MODE AUTO_XON/XOFF_ON
15330# NEWLINE_OFF 80_COLUMNS
15331# Other SET-UP modes may be set for operator convenience or communication
15332# requirements; I recommend
15333# SMOOTH_SCROLL AUTO_REPEAT_ON 3_#_SHIFTED WRAP_AROUND_ON
15334# Hardware tabs are assumed to be every 8 columns; they can be set up by the
15335# "reset", "tset", or "tabs" utilities (use rt6221-w, 160 columns, for this).
15336# Note that the Control-E key is useless on this brain-damaged terminal. No
15337# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
15338rt6221|Ramtek 6221 80x24:\
15339 :bs:ms:pt:xo:\
15340 :co#80:it#8:kn#4:li#24:vt#3:\
15341 :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ac=:ae=^O:as=^N:\
15342 :bl=^G:cd=\E[J:ce=\E[K:cl=\E[1;1H\E[J:cm=\E[%i%d;%dH:\
15343 :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^K:ho=\E[1;1H:is=\E)0:\
15344 :k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:kb=^H:kd=\E[B:ke=\E>:\
15345 :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\
15346 :le=^H:ll=\E[24;1H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\
15347 :nd=\E[C:nw=\EE:\
15348 :r1=\E[1w\E[>37m\E[>39m\E[1v\E[20l\E[?3l\E[?6l\E[>5h\E[>6h\E[>7h\E[>8l\E[>9h\E[>10l\E[1;24r\E[m\E[q\E(B\017\E)0\E#5\E>:\
15349 :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
15350 :ue=\E[m:up=\EM:us=\E[4m:ve=\E[>5h\E[>9h:vi=\E[>5l:\
15351 :vs=\E[>7h\E[>9l:
15352# [TO DO: Check out: short forms of ho/cl and ll; reset (\Ec)].
15353rt6221-w|Ramtek 6221 160x48:\
15354 :co#160:li#48:\
15355 :ll=\E[48;1H:tc=rt6221:
15356
15357#### RCA
15358#
15359
15360# RCA VP3301 or VP3501
15361rca|rca vp3301/vp3501:\
15362 :bs:\
15363 :co#40:li#24:\
15364 :cl=^L:cm=\EY%+ %+ :ho=^Z:nd=^U:se=\E\ES0:so=\E\ES1:up=^K:
15365
15366
15367#### Selanar
15368#
15369
15370# Selanar HiREZ-100 from BRL, probably by Doug Gwyn
15371# The following SET-UP modes are assumed for normal operation:
15372# SET_DEFAULT_TABS 48_LINES 80_COLUMNS
15373# ONLINE ANSI CURSOR_VISIBLE
15374# VT102_AUTO_WRAP_ON VT102_NEWLINE_OFF VT102_MONITOR_MODE_OFF
15375# LOCAL_ECHO_OFF US_CHAR_SET WPS_TERMINAL_DISABLED
15376# CPU_AUTO_XON/XOFF_ENABLED PRINT_FULL_SCREEN
15377# For use with graphics software, all graphics modes should be set to factory
15378# default. Other SET-UP modes may be set for operator convenience or
15379# communication requirements. No delays are specified; use "stty ixon -ixany"
15380# to enable DC3/DC1 flow control!
15381# I commented out the scrolling capabilities since they are too slow.
15382hirez100|Selanar HiREZ-100:\
15383 :bs:mi:ms:pt:xo:\
15384 :co#80:it#8:kn#4:li#48:vt#3:\
15385 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
15386 :RI=\E[%dC:UP=\E[%dA:ac=:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
15387 :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
15388 :dc=\E[P:dl=\E[M:do=^J:ho=\E[H:is=\E<\E)0:k0=\EOP:k1=\EOQ:\
15389 :k2=\EOR:k3=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
15390 :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\
15391 :le=^H:ll=\E[48H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\
15392 :nd=\E[C:nw=\EE:pf=\E[4i\E[?4i:po=\E[?5i\E[5i:ps=\E[i:\
15393 :r1=\030\E2\E<\E[4i\E[?4i\E[12h\E[2;4;20l\E[?0;7h\E[?1;3;6;19l\E[r\E[m\E(B\017\E)0\E>:\
15394 :rc=\E8:sc=\E7:se=\E[m:so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\EM:\
15395 :us=\E[4m:
15396hirez100-w|Selanar HiREZ-100 in 132-column mode:\
15397 :co#132:tc=hirez100:
15398
15399#### Signetics
15400#
15401
15402# From University of Wisconsin
15403vsc|Signetics Vsc Video driver by RMC:\
15404 :am:ms:\
15405 :co#80:it#8:li#26:\
15406 :ce=\E[K:cl=50\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:do=^J:\
15407 :ho=\E[H:kb=^H:kd=^J:kl=^H:le=^H:me=^_!:mr=^_\s:nd=\E[C:\
15408 :nw=^M^J:se=^_!:sf=^J:so=^_\s:ta=^I:ue=^_#:up=\E[A:us=^_":
15409
15410#### Soroc
15411#
15412# Alan Frisbie <frisbie@flying-disk.com> writes:
15413#
15414# As you may recall, the Soroc logo consisted of their name,
15415# with the letter "S" superimposed over an odd design. This
15416# consisted of a circle with a slightly smaller 15 degree (approx.)
15417# wedge with rounded corners inside it. The color was sort of
15418# a metallic gold/yellow.
15419#
15420# If I had been more of a beer drinker it might have been obvious
15421# to me, but it took a clue from their service department to make
15422# me exclaim, "Of course!" The circular object was the top of
15423# a beer can (the old removable pop-top style) and "Soroc" was an
15424# anagram for "Coors".
15425#
15426# I can just imagine the founders of the company sitting around
15427# one evening, tossing back a few and trying to decide what to
15428# call their new company and what to use for a logo.
15429#
15430
15431# (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr)
15432soroc120|iq120|soroc|soroc iq120:\
15433 :cd=\EY:ce=\ET:cl=\E*:do=^J:kd=^J:kl=^H:kr=^L:ku=^K:tc=adm3a:
15434soroc140|iq140|soroc iq140:\
15435 :am:bs:mi:\
15436 :co#80:li#24:\
15437 :al=\Ee:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :\
15438 :cr=^M:dc=\Ew:dl=\Er:do=^J:ei=\E8:ho=^^:im=\E9:k0=^A0\r:\
15439 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
15440 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kh=^^:kr=^L:ku=^K:le=^H:\
15441 :ll=^^^K:nd=^L:se=\E\177:sf=^J:so=\E\177:ue=\E^A:up=^K:\
15442 :us=\E^A:
15443
15444#### Southwest Technical Products
15445#
15446# These guys made an early personal micro called the M6800.
15447# The ct82 was probably its console terminal.
15448#
15449
15450# (swtp: removed obsolete ":bc=^D:" -- esr)
15451swtp|ct82|southwest technical products ct82:\
15452 :am:\
15453 :co#82:li#20:\
15454 :al=^^Y:bl=^G:cd=^V:ce=^F:cl=^L:cm=\013%r%.%.:cr=^M:dc=^^H:\
15455 :dl=^Z:do=^J:ei=:ho=^P:ic=^^X:im=:\
15456 :is=\034\022\036\023\036\004\035\027\011\023\036\035\036\017\035\027\022\011:\
15457 :le=^D:ll=^C:nd=^S:se=^^^F:sf=^N:so=^^^V:sr=^O:up=^A:
15458
15459#### Synertek
15460#
15461# Bob Manson <manson@pattyr.acs.ohio-state.edu> writes (28 Apr 1995):
15462#
15463# Synertek used to make ICs, various 6502-based single-board process
15464# control and hobbyist computers, and assorted peripherals including a
15465# series of small inexpensive terminals (I think they were one of the
15466# first to have a "terminal-on-a-keyboard", where the terminal itself
15467# was only slightly larger than the keyboard).
15468#
15469# They apparently had a KTM-1 model, which I've never seen. The KTM-2/40
15470# was a 40x24 terminal that could connect to a standard TV through a
15471# video modulator. The KTM-2/80 was the 80-column version (the 2/40
15472# could be upgraded to the 2/80 by adding 2 2114 SRAMs and a new ROM).
15473# I have a KTM-2/80 still in working order. The KTM-2s had fully
15474# socketed parts, used 2 6507s, a 6532 as keyboard scanner, a program
15475# ROM and 2 ROMs as character generators. They were incredibly simple,
15476# and I've never had any problems with mine (witness the fact that mine
15477# was made in 1981 and is still working great... I've blown the video
15478# output transistor a couple of times, but it's a 2N2222 :-)
15479#
15480# The KTM-3 (which is what is listed in the terminfo file) was their
15481# attempt at putting a KTM-2 in a box (and some models came with a
15482# CRT). It wasn't much different from the KTM-2 hardware-wise, but the
15483# control and escape sequences are very different. The KTM-3 was always
15484# real broken, at least according to the folks I've talked to about it.
15485#
15486# The padding in the entry is probably off--these terminals were very
15487# slow (it takes like 100ms for the KTM-2 to clear the screen...) And
15488# anyone with any sanity replaced the ROMs with something that provided
15489# a reasonable subset of VT100 functionality, since the usual ROMs were
15490# obviously very primitive... oh, you could get an upgraded ROM from
15491# Synertek for some incredible amount of money, but what hacker with an
15492# EPROM burner would do that? :)
15493#
15494# Sorry I don't have any contact info; I believe they were located in
15495# Sunnyvale, and I'm fairly sure they are still manufacturing ICs
15496# (they've gone to ASICs and FPGAs), but I doubt they're in the computer
15497# business these days.
15498#
15499
15500# Tested, seems to work fine with vi.
15501synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal:\
15502 :am:\
15503 :co#80:li#24:\
15504 :cd=\EJ:ce=\EK:cl=^Z:cm=\E=%+ %+ :le=^H:nd=^L:up=^K:
15505
15506#### Tab Office Products
15507#
15508# TAB Products Co. - Palo Alto, California
15509# Electronic Office Products,
15510# 1451 California Avenue 94304
15511#
15512# I think they're out of business.
15513#
15514
15515# The tab 132 uses xon/xoff, so no padding needed.
15516# :ks:/:ke: have nothing to do with arrow keys.
15517# :is: sets 80 col mode, normal video, autowrap on (for :am:).
15518# Seems to be no way to get rid of status line.
15519# The manual for this puppy was dated June 1981. It claims to be VT52-
15520# compatible but looks more vt100-like.
15521tab132|tab|tab132-15|tab 132/15:\
15522 :da:db:\
15523 :co#80:dN@:li#24:lm#96:\
15524 :al=\E[L:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\
15525 :im=\E[4h:is=\E[?7h\E[?3l\E[?5l:kd=\E[B:ke@:kl=\E[D:ks@:\
15526 :ku=\E[A:tc=vt100:
15527tab132-w|tab132 in wide mode:\
15528 :co#132:\
15529 :is=\E[?7h\E[?3h\E[?5l:tc=tab132:
15530tab132-rv|tab132 in reverse-video mode:\
15531 :is=\E[?7h\E[?3l\E[?5h:tc=tab132:
15532tab132-w-rv|tab132 in reverse-video/wide mode:\
15533 :is=\E[?7h\E[?3h\E[?5h:tc=tab132-w:
15534
15535
15536#### Teleray
15537#
15538# Research Incorporated
15539# 6425 Flying Cloud Drive
15540# Eden Prairie, MN 55344
15541# Vox: (612)-941-3300
15542#
15543# The Teleray terminals were all discontinued in 1992-93. RI still services
15544# and repairs these beasts, but no longer manufactures them. The Teleray
15545# people believe that all the types listed below are very rare now (1995).
15546# There was a newer line of Telerays (Model 7, Model 20, Model 30, and
15547# Model 100) that were ANSI-compatible.
15548#
15549# Note two things called "teleray". Reorder should move the common one
15550# to the front if you have either. A dumb teleray with the cursor stuck
15551# on the bottom and no obvious model number is probably a 3700.
15552#
15553
15554t3700|dumb teleray 3700:\
15555 :bs:\
15556 :co#80:li#24:\
15557 :bl=^G:cl=^L:cr=^M:do=^J:le=^H:sf=^J:
15558t3800|teleray 3800 series:\
15559 :bs:\
15560 :co#80:it#8:li#24:\
15561 :bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:do=^J:ho=\EH:\
15562 :le=^H:ll=\EY7\s:nd=\EC:sf=^J:ta=^I:up=^K:
15563t1061|teleray|teleray 1061:\
15564 :am:bs:km:xs:xt:\
15565 :co#80:it#8:li#24:sg#1:ug#1:\
15566 :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\014:cm=\EY%+ %+ :cr=^M:\
15567 :ct=\EG:dc=\EQ:dl=\EM:do=^J:ei=:ho=\EH:ic=\EP:im=:ip=:\
15568 :is=\Ee\EU01^Z1\EV\EU02^Z2\EV\EU03^Z3\EV\EU04^Z4\EV\EU05^Z5\EV\EU06^Z6\EV\EU07^Z7\EV\EU08^Z8\EV\Ef:\
15569 :k1=^Z1:k2=^Z2:k3=^Z3:k4=^Z4:k5=^Z5:k6=^Z6:k7=^Z7:k8=^Z8:\
15570 :le=^H:nd=\EC:se=\ER@:sf=^J:so=\s\ERD:st=\EF:ta=^I:ue=\ER@:\
15571 :up=\EA:us=\ERH:
15572t1061f|teleray 1061 with fast PROMs:\
15573 :al=\EL:dl=\EM:ip@:tc=t1061:
15574# "Teleray Arpa Special", officially designated as
15575# "Teleray Arpa network model 10" with "Special feature 720".
15576# This is the new (1981) fast microcode updating the older "arpa" proms
15577# (which gave meta-key and programmable-fxn keys). 720 is much much faster,
15578# converts the keypad to programmable function keys, and has other goodies.
15579# Standout mode is still broken (magic cookie, etc) so is suppressed as no
15580# programs handle such lossage properly.
15581# Note: this is NOT the old termcap's "t1061f with fast proms."
15582# From: J. Lepreau <lepreau@utah-cs> Tue Feb 1 06:39:37 1983, Univ of Utah
15583# (t10: removed overridden ":so@:se@:us@:ue@:" -- esr)
15584t10|teleray 10 special:\
15585 :bs:km:xs:xt:\
15586 :co#80:it#8:li#24:sg#2:ug#2:\
15587 :al=\EL:cd=\EJ:ce=\EK:cl=30\Ej:cm=\EY%+ %+ :dc=\EQ:dl=\EM:\
15588 :ei=:ho=\EH:ic=\EP:im=:le=^H:nd=\EC:pc=\0:se=\ER@:sf=\Eq:\
15589 :so=\ERD:sr=\Ep:ta=^I:ue=\ER@:up=\EA:us=\ERH:
15590# teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and
15591# back/forth words. Put the function keys (f1-f10) where they can be
15592# found, and turn off the other magic keys along the top row, except
15593# for line/local. Do the magic appropriate to make the page shifts work.
15594# Also toggle ^S/^Q for those of us who use Emacs.
15595t16|teleray 16:\
15596 :am:da:db:mi:xs:xt:\
15597 :co#80:li#24:\
15598 :al=\E[L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\
15599 :cm=%i\E[%d;%df:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\
15600 :ho=\E[H:im=\E[4h:k1=^Z1:k2=^Z2:k3=^Z3:k4=^Z4:k5=^Z5:k6=^Z6:\
15601 :k7=^Z7:k8=^Z8:k9=^Z9:k;=^Z0:le=^H:me=\E[m:nd=\E[C:se=\E[m:\
15602 :sf=^J:so=\E[7m:sr=\E[T:ta=^I:te=\E[V\E[24;1f\E[?38h:\
15603 :ti=\E[U\E[?38l:ue=\E[m:up=\E[A:us=\E[4m:
15604
15605#### Texas Instruments (ti)
15606#
15607
15608# The Silent 700 was so called because it was built around a quiet thermal
15609# printer. It was portable, equipped with an acoustic coupler, and pretty
15610# neat for its day.
15611ti700|ti733|ti735|ti745|ti800|ti silent 700/733/735/745 or omni 800:\
15612 :bs:hc:os:\
15613 :co#80:\
15614 :bl=^G:cr=\r:do=^J:le=^H:sf=^J:
15615
15616#
15617# Texas Instruments 916 VDT 7 bit control mode
15618#
15619ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL:\
15620 :da:db:in:ms:\
15621 :%9=^X:@4=\E[29~:@8=^J:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
15622 :DO=\E[%dB:F1=\E[29~:F2=\E[31~:IC=\E[%d@:LE=\E[%dD:\
15623 :RI=\E[%dC:UP=\E[%dA:ae=\017:as=\016:bt=\E[Z:cb=\E[1K:\
15624 :cd=\E[J:ce=\E[0K:ch=\E[%+^AG:cl=\E[H\E[2J:\
15625 :cm=\E[%i%d;%dH:ct=\E[3g:cv=\E[%+^Ad:dc=\E[P:eA=\E(B\E)0:\
15626 :ec=\E[%dX:ei=:ff=^L:im=:ip=:is=\E[1;24r\E[24;1H:k1=\E[17~:\
15627 :k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:k6=\E[23~:\
15628 :k7=\E[24~:k8=\E[25~:k9=\E[26~:k;=\E[28~:kD=\E[P:kI=\E[@:\
15629 :kN=\E[S:kP=\E[T:kh=\E[H:mp=\E&:rs=\E[!p:st=\E[0W:\
15630 :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:\
15631 :tc=vt220:
15632#
15633# Texas Instruments 916 VDT 8 bit control mode
15634#
15635ti916-8|ti916-220-8|Texas Instruments 916 VDT 8859/1 8 vt220 mode bit CTRL:\
15636 :%9=^X:@4=\23329~:@8=^J:F1=\23329~:F2=\23331~:k1=\23317~:\
15637 :k2=\23318~:k3=\23319~:k4=\23320~:k5=\23321~:k6=\23323~:\
15638 :k7=\23324~:k8=\23325~:k9=\23326~:k;=\23328~:kD=\233P:\
15639 :kI=\233@:kN=\233S:kP=\233T:kd=\233B:kh=\233H:kl=\233D:\
15640 :kr=\233C:ku=\233A:tc=ti916:
15641#
15642# Texas Instruments 916 VDT 8859/1 7 bit control 132 column mode
15643#
15644ti916-132|Texas Instruments 916 VDT vt220 132 column:\
15645 :co#132:tc=ti916:
15646#
15647# Texas Instruments 916 VDT 8859/1 8 bit control 132 column mode
15648#
15649ti916-8-132|Texas Instruments 916 VDT 8-bit vt220 132 column:\
15650 :co#132:tc=ti916-8:
15651ti924|Texas Instruments 924 VDT 8859/1 7 bit CTRL:\
15652 :am:bs:xo:\
15653 :co#80:it#8:li#24:\
15654 :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\
15655 :cm=%i\E[%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dl=\E[M:\
15656 :do=\E[B:ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[16~:\
15657 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[P:kI=\E[@:\
15658 :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:\
15659 :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:\
15660 :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:\
15661 :us=\E[4m:ve=\E[?25h:vi=\E[?25l:vs=\E[?31h:
15662ti924-8|Texas Instruments 924 VDT 8859/1 8 bit CTRL:\
15663 :am:xo:\
15664 :co#80:it#8:li#24:\
15665 :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\
15666 :cm=%i\E[%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dl=\E[M:\
15667 :do=\E[B:ho=\E[H:k1=P\217>:k2=Q\217>:k3=R\217>:k4=S\217>:\
15668 :k5=~\23316>:k6=~\23317>:k7=~\23318>:k8=~\23319>:\
15669 :k9=~\23320>:kD=P\233>:kI=@\233>:kb=^H:kd=\E[B:kl=\E[D:\
15670 :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[m:\
15671 :mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\
15672 :sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:\
15673 :vi=\E[?25l:vs=\E[?31h:
15674ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode:\
15675 :co#132:tc=ti924:
15676ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode:\
15677 :co#132:tc=ti924-8:
15678ti931|Texas Instruments 931 VDT:\
15679 :am:bs:xo:\
15680 :co#80:li#24:\
15681 :al=\EN:bl=^G:cd=\EJ:ce=\EI:cl=\EL:cm=\EY%+ %+ :cr=^M:\
15682 :dc=\EQ:dl=\EO:do=\EB:ei=:ho=\EH:ic=\ER\EP\EM:im=:\
15683 :is=\EGB\E(@B@@\E):k1=\Ei1:k2=\Ei2:k3=\Ei3:k4=\Ei4:\
15684 :k5=\Ei5:k6=\Ei6:k7=\Ei7:k8=\Ei8:k9=\Ei9:kA=\EN:kD=\EQ:\
15685 :kI=\EP:kL=\EO:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=\ED:mb=\E4P:\
15686 :me=\E4@:mk=\E4H:mr=\E4B:nd=\EC:se=\E4@:sf=\Ea:so=\E4A:\
15687 :sr=\Eb:ue=\E4@:up=\EA:us=\E4D:ve=\E4@:
15688ti926|Texas Instruments 926 VDT 8859/1 7 bit CTRL:\
15689 :cs@:sf=\E[1S:sr=\E[1T:tc=ti924:
15690# (ti926-8: I corrected this from the broken SCO entry -- esr)
15691ti926-8|Texas Instruments 926 VDT 8859/1 8 bit CTRL:\
15692 :cs@:sf=\2331S:sr=\2331T:tc=ti924-8:
15693ti_ansi|basic entry for ti928:\
15694 :am:eo:ut:xn:xo:\
15695 :Co#8:co#80:it#8:li#25:pa#64:\
15696 :@7=\E[F:AB=\E[4%dm:AF=\E[3%dm:al=\E[L:bl=^G:bt=\E[Z:\
15697 :cd=\E[J:ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:\
15698 :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
15699 :ic=\E[@:im=:k0=\E[V:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:\
15700 :k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:kN=\E[G:kP=\E[I:\
15701 :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
15702 :mb=\E[5m:md=\E[1m:me=\E[m:nd=\E[C:op=\E[37;40m:se=\E[m:\
15703 :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
15704#
15705# 928 VDT 7 bit control mode
15706#
15707ti928|Texas Instruments 928 VDT 8859/1 7 bit CTRL:\
15708 :%9=\E[35~:@7=\E_1\E\\:@8=\E[8~:F1=\E[29~:F2=\E[31~:\
15709 :F3=\E[32~:F5=\E[34~:k1=\E[17~:k2=\E[18~:k3=\E[19~:\
15710 :k4=\E[20~:k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:\
15711 :k9=\E[26~:k;=\E[28~:kD=\E[P:kI=\E[@:kN=\E[S:kP=\E[T:\
15712 :tc=ti_ansi:
15713#
15714# 928 VDT 8 bit control mode
15715#
15716ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL:\
15717 :%9=\23335~:@7=\2371\234:@8=\2338~:F1=\23329~:F2=\23331~:\
15718 :F3=\23332~:F5=\23334~:k1=\23317~:k2=\23318~:k3=\23319~:\
15719 :k4=\23320~:k5=\23321~:k6=\23323~:k7=\23324~:k8=\23325~:\
15720 :k9=\23326~:k;=\23328~:kD=\233P:kI=\233@:kN=\233S:\
15721 :kP=\233T:kh=\233H:tc=ti_ansi:
15722
15723#### Zentec (zen)
15724#
15725
15726# (zen30: removed obsolete :ma=^L ^R^L^K^P:. This entry originally
15727# had just :so:=\EG6 which I think means standout was supposed to be
15728# dim-reverse using ADM12-style attributes. ADM12 :us:/:ue: and
15729# <invis> might work-- esr)
15730zen30|z30|zentec 30:\
15731 :am:bs:mi:ul:\
15732 :co#80:li#24:\
15733 :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:\
15734 :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:le=^H:mh=\EG2:nd=^L:\
15735 :sf=^J:so=\EG6:ue@:up=^K:us@:tc=adm+sgr:
15736# (zen50: this had extension capabilities
15737# :BS=^U:CL=^V:CR=^B:
15738# UK/DK/RK/LK/HM were someone's aliases for ku/kd/kl/kr/kh,
15739# which were also in the original entry -- esr)
15740# (zen50: removed obsolete ":ma=^Hh^Ll^Jj^Kk:" -- esr)
15741zen50|z50|zentec zephyr:\
15742 :am:bs:\
15743 :co#80:li#24:sg#1:\
15744 :al=\EE:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :dc=\EW:dl=\ER:ei=:\
15745 :ic=\EQ:im=:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:ue@:up=^K:\
15746 :us@:tc=adm+sgr:
15747
15748# CCI 4574 (Office Power) from Will Martin <wmartin@BRL.ARPA> via BRL
15749cci|cci1|z8001|zen8001|CCI Custom Zentec 8001:\
15750 :am:bs:bw:\
15751 :co#80:li#24:\
15752 :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cs=\ER%+ %+ :do=^J:\
15753 :ho=\EH:is=\EM \EF\ET\EP\ER 7:kb=^H:kd=\EB:kh=\EH:kl=\ED:\
15754 :kr=\EC:ku=\EA:le=^H:mb=\EM":me=\EM\s:mh=\EM!:mk=\EM(:\
15755 :mr=\EM$:nd=\EC:pf=^T:po=^R:se=\EM\s:so=\EM$:sr=\EI:\
15756 :ue=\EM\s:up=\EA:us=\EM0:ve=\EP:vs=\EF\EQ\EM \ER 7:
15757
15758######## OBSOLETE UNIX CONSOLES
15759#
15760
15761#### Apollo consoles
15762#
15763# Apollo got bought by Hewlett-Packard. The Apollo workstations are
15764# labeled HP700s now.
15765#
15766
15767# From: Gary Darland <goodmanc@garnet.berkeley.edu>
15768apollo|apollo console:\
15769 :am:bs:mi:\
15770 :co#88:li#53:\
15771 :al=\EI:cd=\EJ:ce=\EK:ch=\EN%d:cl=^L:cm=\EM%+ %d):\
15772 :cv=\EO+\s:dc=\EP:dl=\EL:do=\EB:ei=\ER:im=\EQ:le=^H:nd=\EC:\
15773 :se=\ET:sf=\EE:so=\ES:sr=\ED:te=\EX:ti=\EW:ue=\EV:up=\EA:\
15774 :us=\EU:
15775
15776# We don't know whether or not the apollo guys replicated DEC's firmware bug
15777# in the VT132 that reversed :ei:/:im:. To be on the safe side, disable
15778# both these capabilities.
15779apollo_15P|apollo 15 inch display:\
15780 :ei@:im@:tc=vt132:
15781apollo_19L|apollo 19 inch display:\
15782 :ei@:im@:tc=vt132:
15783apollo_color|apollo color display:\
15784 :ei@:im@:tc=vt132:
15785
15786#### Convergent Technology
15787#
15788# Burroughs bought Convergent shortly before it merged with Univac.
15789# CTOS is (I believe) dead. Probably the aws is too (this entry dates
15790# from 1991 or earlier).
15791#
15792
15793# Convergent AWS workstation from Gould/SEL UTX/32 via BRL
15794# (aws: removed unknown :dn=^K: -- esr)
15795aws|Convergent Technologies AWS workstation under UTX and Xenix:\
15796 :am:\
15797 :co#80:li#28:sg#0:ug#0:\
15798 :ac=:ae=\EAAF:al=\EIL:as=\EAAN:bc=^H:cd=\EEF:ce=\EEL:\
15799 :ch=\EH%.:cl=^L:cm=\EC%r%.%.:cv=\EV%.:dc=\EDC:dl=\EDL:\
15800 :do=^K:ei=:ic=\EIC:im=:kb=^H:kd=^K:kl=^N:kr=^R:ku=^A:\
15801 :ma=\016h\013j\001k\022l\002m:nd=^R:nl=^J:se=\EARF:\
15802 :sf=\ESU:so=\EARN:sr=\ESD:ue=\EAUF:up=^A:us=\EAUN:
15803awsc|Convergent Technologies AWS workstation under CTOS:\
15804 :am:\
15805 :co#80:li#24:sg#0:ug#0:\
15806 :ac=:ae=\EAAF:as=\EAAN:bc=^N:cd=\EEF:ce=\EEL:cl=^L:\
15807 :cm=\EC%r%.%.:do=^K:kb=^H:kd=^K:kl=^N:kr=^R:ku=^A:\
15808 :ma=\016h\013j\001k\022l\002m:nd=^R:se=\EAA:so=\EAE:\
15809 :ue=\EAA:up=^A:us=\EAC:
15810
15811#### DEC consoles
15812#
15813
15814# The MicroVax console. Tim Theisen <tim@cs.wisc.edu> writes:
15815# The digital uVax II's had a graphic display called a qdss. It was
15816# supposed to be a high performance graphic accelerator, but it was
15817# late to market and barely appeared before faster dumb frame buffers
15818# appeared. I have only used this display while running X11. However,
15819# during bootup, it was in text mode, and probably had a terminal emulator
15820# within it. And that is what your termcap entry is for. In graphics
15821# mode the screen size is 1024x864 pixels.
15822qdss|qdcons|qdss glass tty:\
15823 :am:bs:\
15824 :co#128:li#57:\
15825 :cl=1\032:cm=\E=%.%.:do=^J:le=^H:nd=^L:up=^K:
15826
15827#### Fortune Systems consoles
15828#
15829# Fortune made a line of 68K-based UNIX boxes that were pretty nifty
15830# in their day; I (esr) used one myself for a year or so around 1984.
15831# They had no graphics, though, and couldn't compete against Suns and
15832# the like. R.I.P.
15833#
15834
15835# From: Robert Nathanson <c160-3bp@Coral> via tut Wed Oct 5, 1983
15836# (This had extension capabilities
15837# :rv=\EH:re=\EI:rg=0:GG=0:\
15838# :CO=\E\\:WL=^Aa\r:WR=^Ab\r:CL=^Ac\r:CR=^Ad\r:DL=^Ae\r:RF=^Af\r:\
15839# :RC=^Ag\r:CW=^Ah\r:NU=^Aj\r:EN=^Ak\r:HM=^Al:PL=^Am\r:\
15840# :PU=^An\r:PD=^Ao\r:PR=^Ap\r:HP=^A@\r:RT=^Aq\r:TB=\r:CN=\177:MP=\E+F:
15841# It had both ":bs:" and ":bs=^H:"; I removed the latter. Also, it had
15842# ":sg=0:" and ":ug=0:"; evidently the composer was trying (unnecessarily)
15843# to force both magic cookie glitches off. Once upon a time, I
15844# used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are
15845# function keys; thus the "Al" value for HM was certainly an error. I renamed
15846# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC.
15847# I think :rv: and :re: are start/end reverse video and :rg: is a nonexistent
15848# "reverse-video-glitch" capability; I have put :rv: and :re: in with standard
15849# names below. I've removed obsolete ":nl=5^J:" as there is a :do: -- esr)
15850fos|fortune|Fortune system:\
15851 :am:bs:bw:\
15852 :co#80:li#25:\
15853 :@7=^Ak\r:@8=^Aq:ac=j*k(l m"q&v%w#x-:ae=^O:al=\034E:\
15854 :as=\Eo:bl=^G:cd=\034Y:ce=^\Z:cl=\014:cm=\034C%+ %+ :cr=^M:\
15855 :dc=\034W:dl=\034R:do=\n:ei=:ho=\036:ic=\034Q:im=:is=^_..:\
15856 :k1=^Aa\r:k2=^Ab\r:k3=^Ac\r:k4=^Ad\r:k5=^Ae\r:k6=^Af\r:\
15857 :k7=^Ag\r:k8=^Ah\r:kN=^Ao\r:kP=^An\r:kb=^H:kd=^Ay\r:\
15858 :kh=^A?\r:kl=^Aw\r:kr=^Az\r:ku=^Ax\r:le=^H:mb=\EN:me=\EI:\
15859 :mr=\EH:nw=^M^J:se=^\I`:sf=^J:so=^\H`:ta=^Z:ue=^\IP:up=\013:\
15860 :us=^\HP:ve=\E\\:vi=\E]:vs=\E\::
15861
15862#### Masscomp consoles
15863#
15864# Masscomp has gone out of business. Their product line was purchased by
15865# comany in Georgia (US) called "XS International", parts and service may
15866# still be available through them.
15867#
15868
15869# (masscomp: ":MT:" changed to ":km:"; -- esr)
15870masscomp|masscomp workstation console:\
15871 :bs:km:mi:\
15872 :co#80:it#8:li#24:\
15873 :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:dc=\E[P:\
15874 :dl=\E[M:do=\E[B:ei=\E[4l:im=\E[4h:is=\EGc\EGb\EGw:kb=^H:\
15875 :kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:nd=\E[C:se=\E[m:\
15876 :so=\E[7m:ta=^I:ue=\EGau:up=\E[A:us=\EGu:
15877masscomp1|masscomp large screen version 1:\
15878 :co#104:li#36:tc=masscomp:
15879masscomp2|masscomp large screen version 2:\
15880 :co#64:li#21:tc=masscomp:
15881
15882######## OTHER OBSOLETE TYPES
15883#
15884# These terminals are *long* dead -- these entries are retained for
15885# historical interest only.
15886#
15887
15888#### Obsolete non-ANSI software emulations
15889#
15890
15891# CTRM terminal emulator
15892# 1. underlining is not allowed with colors: first, is is simulated by
15893# black on white, second, it disables background color manipulations.
15894# 2. BLINKING, REVERSE and BOLD are allowed with colors,
15895# so we have to save their status in the static registers A, B and H
15896# respectively, to be able to restore them when color changes
15897# (because any color change turns off ALL attributes)
15898# 3. :md: and :mr: sequences alternate modes,
15899# rather then simply entering them. Thus we have to check the
15900# static register B and H to determine the status, before sending the
15901# escape sequence.
15902# 4. :me: now must set the status of all 3 register (A,B,H) to zero
15903# and then reset colors
15904# 5. implementation of the protect mode would badly penalize the performance.
15905# we would have to use \E&bn sequence to turn off colors (as well as all
15906# other attributes), and keep the status of protect mode in yet another
15907# static variable. If someone really needs this mode, they would have to
15908# create another terminfo entry.
15909# 6. original color-pair is white on black.
15910# store the information about colors into static registers
15911# 7. set foreground color. it performs the following steps.
15912# 1) turn off all attributes
15913# 2) turn on the background and video attributes that have been turned
15914# on before (this information is stored in static registers X,Y,Z,A,B,H,D).
15915# 3) turn on foreground attributes
15916# 4) store information about foreground into U,V,W static registers
15917# 8. turn on background: similar to turn on foreground above
15918# (untranslatable capabilities removed to fit entry within 1023 bytes)
15919ctrm|C terminal emulator:\
15920 :am:ut:xo:\
15921 :Co#8:NC#2:Nl#0:co#80:lh#0:li#24:lm#0:lw#0:pa#63:pb#19200:vt#6:\
15922 :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:\
15923 :cm=\E&a%r%dc%dY:cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:\
15924 :do=^J:ei=\ER:im=\EQ:ip=:is=\E&jA\r:k1=\Ep\r:k2=\Eq\r:\
15925 :k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:k8=\Ew\r:\
15926 :kb=^H:kd=\Ew\r:ke=\E&jA:kh=\Ep\r:kl=\Eu\r:kr=\Ev\r:\
15927 :ks=\E&jB:ku=\Et\r:le=^H:mb=\E&dA%{1}%PA:\
15928 :md=%?%gH%{0}%=%t\E&dH%{1}%PH%;:\
15929 :me=\E&d@%{0}%PA%{0}%PB%{0}%PH:\
15930 :mr=%?%gB%{0}%=%t\E&dB%{1}%PB%;:nd=\EC:\
15931 :op=\E&bn\E&bB\E&bG\E&bR%{0}%PX%{0}%PY%{0}%PZ%{1}%PW%{1}%PV%{1}%PU:\
15932 :sf=^J:so=\E&dD:st=\E1:ta=\011:up=\EA:us=\E&dD:
15933
15934# gs6300 - can't use blue foreground, it clashes with underline;
15935# it's simulated with cyan
15936# Bug: The <op> capability probably resets attributes.
15937# (gs6300: commented out <rmln> (no <smln>) --esr)
15938gs6300|emots|AT&T PC6300 with EMOTS terminal emulator:\
15939 :am:ms:ut:xo:\
15940 :Co#8:co#80:it#8:li#24:pa#63:\
15941 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
15942 :LE=\E[%dD:RI=\E[%dC:Sb=\E[?;%dm:\
15943 :..Sf=\E[?%?%p1%{0}%=%t0%e%p1%{1}%=%t2%e%p1%{1}%-%d%;m:\
15944 :UP=\E[%dA:\
15945 :ac=++,,--..``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
15946 :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cd=\E[J:ce=\E[K:\
15947 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:\
15948 :ei=:ho=\E[H:ic=\E[@:im=:is=\E[m:k1=\E[0s:k2=\E[24s:\
15949 :k3=\E[1s:k4=\E[23s:k5=\E[2s:k6=\E[22s:k7=\E[3s:k8=\E[21s:\
15950 :kB=^R^I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
15951 :le=^H:mb=\E[5m:md=\E[1m:me=\E[m\E[10m:mr=\E[7m:nd=\E[C:\
15952 :op=\E[?;m:pf=\E[4i:po=\E[5i:r1=\Ec:sf=^J:so=\E[1m:sr=\E[L:\
15953 :ta=^I:up=\E[A:us=\E[4m:
15954
15955# From: <earle@smeagol.UUCP> 29 Oct 85 05:40:18 GMT
15956# MS-Kermit with Heath-19 emulation mode enabled
15957# (h19k: changed ":pt@:" to ":it@"
15958h19k|h19kermit|heathkit emulation provided by Kermit (no auto margin):\
15959 :am@:da:db:xt:\
15960 :it@:\
15961 :ta@:tc=h19-u:
15962
15963# Apple Macintosh with Versaterm, a terminal emulator distributed by Synergy
15964# Software (formerly Peripherals Computers & Supplies, Inc) of
15965# 2457 Perkiomen Ave., Reading, PA 19606, 1-800-876-8376. They can
15966# also be reached at support@synergy.com.
15967versaterm|versaterm vt100 emulator for the macintosh:\
15968 :am:xn:\
15969 :co#80:it#8:li#24:\
15970 :al=9\E[1L:bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\
15971 :cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=7\E[1P:\
15972 :dl=9\E[1M:do=^J:ei=:ho=\E[H:ic=7\E[1@:im=:\
15973 :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
15974 :kb=^H:kd=\EOB:ke=\E>\E[?1l:kl=\EOD:kr=\EOC:ks=\E=\E[?1h:\
15975 :ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\
15976 :nd=2\E[C:nw=^M^J:r1=\E>:rc=\E8:\
15977 :rf=/usr/share/tabset/vt100:sc=\E7:se=2\E[m:so=2\E[7m:\
15978 :sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m:
15979
15980# From: Rick Thomas <ihnp4!btlunix!rbt>
15981# (xtalk: I added <rmam>/<smam> based on the init string.
15982xtalk|IBM PC with xtalk communication program (versions up to 3.4):\
15983 :am:mi:ms:xo:\
15984 :co#80:it#8:li#24:sg#1:vt#3:\
15985 :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\
15986 :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
15987 :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
15988 :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
15989 :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dl=\E[M:do=^J:\
15990 :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\
15991 :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\
15992 :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
15993 :ku=\EOA:le=^H:me=\E[m:nd=\E[C:\
15994 :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:se=\E[m\s:sf=^J:\
15995 :so=\E[7m\s:sr=\EM:st=\EH:ta=^I:up=\E[A:
15996
15997# The official PC terminal emulator program of the AT&T Product Centers.
15998# Note - insert mode commented out - doesn't seem to work on AT&T PC.
15999simterm|attpc running simterm:\
16000 :am:\
16001 :co#80:li#24:\
16002 :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\E=%+ %+ :cr=^M:\
16003 :dc=\ER:dl=\EM:do=\EB:ho=\EH:le=^H:me=\E&d@:nd=\EC:se=\E&d@:\
16004 :sf=^J:so=\E&dB:te=\EVE:ti=\EVS:up=\EA:
16005
16006#### Daisy wheel printers
16007#
16008# This section collects Diablo, DTC, Xerox, Qume, and other daisy
16009# wheel terminals. These are now largely obsolete.
16010#
16011
16012# (diablo1620: removed :if=/usr/share/tabset/xerox1720:, no such file -- esr)
16013diablo1620|diablo1720|diablo450|ipsi|diablo 1620:\
16014 :hc:os:\
16015 :co#132:it#8:\
16016 :ch=\E\011%i%.:ct=\E2:do=^J:hd=\ED:hu=\EU:kb=^H:le=^H:\
16017 :st=\E1:ta=^I:up=\E^J:
16018diablo1620-m8|diablo1640-m8|diablo 1620 w/8 column left margin:\
16019 :co#124:\
16020 :is=\r \E9:tc=diablo1620:
16021# (diablo1640: removed :if=/usr/share/tabset/xerox1730:, no such file -- esr)
16022diablo1640|diablo1730|diablo1740|diablo630|x1700|diablo|xerox|diablo 1640:\
16023 :bl=^G:se=\E&:so=\EW:ue=\ER:us=\EE:tc=diablo1620:
16024# (diablo1640-lm: removed :if=/usr/share/tabset/xerox1730-lm:, no such
16025# file -- esr)
16026diablo1640-lm|diablo-lm|xerox-lm|diablo 1640 with indented left margin:\
16027 :co#124:\
16028 :se=\E&:so=\EW:ue=\ER:us=\EE:tc=diablo1620:
16029diablo1740-lm|630-lm|1730-lm|x1700-lm|diablo 1740 printer:\
16030 :tc=diablo1640-lm:
16031# DTC 382 with VDU. Has no :cd: so we fake it with :ce:. Standout
16032# :so=^P\s\002^PF: works but won't go away without dynamite :se=^P\s\0:.
16033# The terminal has tabs, but I'm getting tired of fighting the braindamage.
16034# If no tab is set or the terminal's in a bad mood, it glitches the screen
16035# around all of memory. Note that return puts a blank ("a return character")
16036# in the space the cursor was at, so we use ^P return (and thus ^P newline for
16037# newline). Note also that if you turn off :pt: and let Unix expand tabs,
16038# curses won't work (some old BSD versions) because it doesn't clear this bit,
16039# and cursor addressing sends a tab for row/column 9. What a losing terminal!
16040# I have been unable to get tabs set in all 96 lines - it always leaves at
16041# least one line with no tabs in it, and once you tab through that line,
16042# it completely weirds out.
16043# (dtc382: change :te: to :ti: -- it just does a clear --esr)
16044dtc382|DTC 382:\
16045 :am:da:db:xs:\
16046 :co#80:li#24:lm#96:\
16047 :al=^P^Z:bl=^G:cd=\020\025\020\023\020\023:ce=^P^U:\
16048 :cl=\020\035:cm=\020\021%r%.%.:cr=^P^M:dc=^X:dl=^P^S:\
16049 :ei=^Pi:ho=^P^R:im=^PI:le=^H:nd=^PR:pc=\177:sf=^J:te=:\
16050 :ti=\020\035:ue=^P \0:up=^P^L:us=^P ^P:ve=^Pb:vs=^PB:
16051dtc300s|DTC 300s:\
16052 :hc:os:\
16053 :co#132:\
16054 :bl=^G:cr=^M:ct=\E3:do=^J:ff=^L:hd=\Eh:hu=\EH:kb=^H:le=^H:\
16055 :sf=^J:st=\E1:ta=^I:up=^Z:
16056gsi|mystery gsi terminal:\
16057 :hc:os:\
16058 :co#132:\
16059 :bl=^G:cr=^M:do=^J:hd=\Eh:hu=\EH:le=^H:sf=^J:ta=^I:up=^Z:
16060aj830|aj832|aj|anderson jacobson:\
16061 :hc:os:\
16062 :bl=^G:cr=^M:do=^J:hd=\E9:hu=\E8:le=^H:sf=^J:up=\E7:
16063# From: Chris Torek <chris@gyre.umd.edu> Thu, 7 Nov 85 18:21:58 EST
16064aj510|Anderson-Jacobson model 510:\
16065 :am:mi:\
16066 :co#80:li#24:\
16067 :al=2*\E&I:cd=\E'P:ce=\E'L:cl=^L:cm=\E#%+ %+ :dc=.1*\E'D:\
16068 :dl=2*\E&D:ei=\E'J:ic=:im=\E'I:ip=.1*:kd=\EZ:kl=\EW:kr=\EX:\
16069 :ku=\EY:le=^H:nd=\EX:pc=\177:se=\E"I:so=\E"I:te=\E"N:\
16070 :ti=\E"N:ue=\E"U:up=\EY:us=\E"U:
16071# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
16072# This is incomplete, but it's a start.
16073nec5520|nec|spinwriter|nec 5520:\
16074 :hc:os:\
16075 :co#132:it#8:\
16076 :bl=^G:cr=^M:ct=\E3:do=^J:ff=^L:hd=\E]s\n\E]W:\
16077 :hu=\E]s\E9\E]W:kb=^H:le=^H:sf=^J:st=\E1:ta=^I:up=\E9:
16078qume5|qume|Qume Sprint 5:\
16079 :hc:os:\
16080 :co#80:it#8:\
16081 :bl=^G:cr=^M:ct=\E3:do=^J:ff=^L:hd=\Eh:hu=\EH:kb=^H:le=^H:\
16082 :sf=^J:st=\E1:ta=^I:up=^Z:
16083# I suspect the xerox 1720 is the same as the diablo 1620.
16084xerox1720|x1720|x1750|xerox 1720:\
16085 :hc:os:\
16086 :co#132:it#8:\
16087 :bl=^G:cr=^M:ct=\E2:do=^J:ff=^L:le=^H:sf=^J:st=\E1:ta=^I:
16088
16089#### Miscellaneous obsolete terminals, manufacturers unknown
16090#
16091# If you have any information about these (like, a manufacturer's name,
16092# and a date on the serial-number plate) please send it!
16093
16094cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars:\
16095 :am:bs:\
16096 :co#73:li#36:\
16097 :cl=^Z:ho=^^:le=^H:nd=^L:up=^K:
16098cad68-2|cgc2|cad68 basic monitor transparent mode size 2 chars:\
16099 :am:bs:\
16100 :co#85:li#39:\
16101 :cl=^Z:ho=^^:k1=\E5:k2=\E6:k3=\E7:k4=\E8:kd=\E2:kl=\E3:\
16102 :kr=\E4:ku=\E1:le=^H:nd=^L:se=\Em^C:so=\Em^L:up=^K:
16103cops10|cops|cops-10|cops 10:\
16104 :am:bw:\
16105 :co#80:li#24:\
16106 :bl=^G:cd=^W:ce=^V:cl=30\030:cm=\020%+ %+ :cr=^M:do=^J:\
16107 :kb=^H:kd=^J:kh=^Y:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K:
16108# (d132: removed duplicate :ic=\E5:,
16109# merged in capabilities from a BRL entry -- esr)
16110d132|datagraphix|datagraphix 132a:\
16111 :da:db:in:\
16112 :co#80:li#30:\
16113 :al=\E3:bl=^G:cl=^L:cm=\E8%i%3%3:cr=^M:dc=\E6:do=^J:ei=:\
16114 :ho=\ET:ic=\E5:im=:kb=^H:kd=^J:kl=^H:le=^H:nd=\EL:nw=^M^J:\
16115 :sf=^J:sr=\Ew:ta=^I:up=\EK:ve=\Em\En:vs=\Ex:
16116# The d800 was an early portable terminal from c.1984-85 that looked a lot
16117# like the original Compaq `lunchbox' portable (but no handle). It had a vt220
16118# mode (which is what this entry looks like) and several other lesser-known
16119# emulations.
16120d800|Direct 800/A:\
16121 :am:bs:da:db:ms:xs:\
16122 :co#80:it#8:li#24:\
16123 :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\
16124 :ae=\E[m:as=\E[1m:bl=^G:cd=\E[J:ce=\E[K:cl=\E[1;1H\E[2J:\
16125 :cm=\E[%i%d;%dH:cr=^M:do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:\
16126 :k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:kd=\E[B:kl=\E[D:\
16127 :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=\ED:\
16128 :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[>12h:\
16129 :vs=\E[>12l:
16130digilog|digilog 333:\
16131 :bs:\
16132 :co#80:li#16:\
16133 :bl=^G:ce=^X:cr=^M:do=^J:ho=^N:le=^H:nd=^I:sf=^J:up=^O:
16134# The DWK was a terminal manufactured in the Soviet Union c.1986
16135dwk|dwk-vt|dwk terminal:\
16136 :am:\
16137 :co#80:it#8:li#24:\
16138 :ac=+^,Q-S.M0\177`+a\:f'g#h#i#jXkClJmFnNo~qUs_tEuPv\\wKxW~_:\
16139 :ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\
16140 :cr=^M:dc=\EP:do=^J:ei=:ho=\EH:ic=\EQ:im=:k1=\Ef1:k2=\Ef2:\
16141 :k3=\Ef3:k4=\Ef4:k5=\Ef5:k6=\Ef6:k7=\Ef7:k8=\Ef8:k9=\Ef9:\
16142 :k;=\Ef0:kD=\Ee:kI=\Ed:kN=\Eh:kP=\Eg:kb=\177:kd=\EB:kl=\ED:\
16143 :kr=\EC:ku=\EA:le=^H:me=\EX:mr=\ET:nd=\EC:nw=^M^J:se=\EX:\
16144 :sf=^J:so=\ET:sr=\ES:ta=^I:up=\EA:
16145env230|envision230|envision 230 graphics terminal:\
16146 :xn@:\
16147 :pf=\E[4i:po=\E[5i:ps=\E[0i:\
16148 :..sa=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>:\
16149 :tc=vt100:
16150# These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
16151# coupler attached, the whole rig fitting in a suitcase and more or less
16152# portable. Hot stuff for c.1977 :-) -- esr
16153ep48|ep4080|execuport 4080:\
16154 :am:bs:os:\
16155 :co#80:\
16156 :bl=^G:cr=^M:do=^J:hd=^\:hu=^^:le=^H:sf=^J:
16157ep40|ep4000|execuport 4000:\
16158 :co#136:tc=ep4080:
16159# Adam Thompson <athompso@pangea.ca> tells us:
16160# Informer series - these are all portable units, resembling older
16161# automatic bread-baking machines. The terminal looks like a `clamshell'
16162# design, but isn't. The structure is similar to the Direct terminals,
16163# but only half the width. The entire unit is only about 10" wide.
16164# It features an 8" screen (6" or 7" if you have color!), and an 9"x6"
16165# keyboard. All the keys are crammed together, much like some laptop
16166# PCs today, but perhaps less well organized...all these units have a
16167# bewildering array of plugs on the back, including a built-in modem.
16168# The 305 was a color version of the 304; the 306 and 307 were mono and
16169# color terminals built for IBM bisync protocols.
16170# From: Paul Leondis <unllab@amber.berkeley.edu>
16171ifmr|Informer D304:\
16172 :am:bs:\
16173 :co#80:li#24:\
16174 :cd=\E/:ce=\EQ:cl=\EZ:cm=\EY%r%+ %+ :dc=\E\\:do=^J:ei=:\
16175 :ho=\EH:ic=\E[:im=:le=^H:me=\EK:nd=\EC:se=\EK:so=\EJ:sr=\En:\
16176 :up=\EA:
16177# Entry largely based on wy60 and has the features of wy60ak.
16178# (untranslatable capabilities removed to fit entry within 1023 bytes)
16179# (sgr removed to fit entry within 1023 bytes)
16180# (acsc removed to fit entry within 1023 bytes)
16181# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
16182opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys:\
16183 :am:bw:hs:km:mi:ms:ul:xo:\
16184 :co#80:li#24:ws#80:\
16185 :ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E*:\
16186 :cm=\Ea%i%dR%dC:cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\Ez(\r:\
16187 :ei=\Er:fs=^M:ho=\036:if=/usr/share/tabset/std:im=\Eq:ip=:\
16188 :is=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177\Ezz`\E[F\177\EA1*\EZH12:\
16189 :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
16190 :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\
16191 :kb=^H:kd=\E[B:kh=^^:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\EG2:\
16192 :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=^J:sr=\Ej:\
16193 :st=\E1:ta=\011:te=:\
16194 :ti=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177:\
16195 :ts=\Ez(:uc=\EG8\EG0:up=^K:ve=\E`1:vi=\E`0:tc=adm+sgr:
16196teletec|Teletec Datascreen:\
16197 :am:bs:\
16198 :co#80:li#24:\
16199 :bl=^G:cl=^L:cr=^M:do=^J:ho=^^:le=^H:nd=^_:sf=^J:up=^K:
16200# From: Mark Dornfeld <romwa@ucbvax.berkeley.edu>
16201# This description is for the LANPAR Technologies VISION 3220
16202# terminal from 1984/85. The function key definitions k0-k5 represent the
16203# edit keypad: FIND, INSERT HERE, REMOVE, SELECT, PREV SCREEN,
16204# NEXT SCREEN. The key definitions k6-k9 represent the PF1 to PF4 keys.
16205#
16206# Kenneth Randell <kenr@datametrics.com> writes on 31 Dec 1998:
16207# I had a couple of scopes (3221) like this once where I used to work, around
16208# the 1987 time frame if memory serves me correctly. These scopes were made
16209# by an outfit called LANPAR Technologies, and were meant to me DEC VT 220
16210# compatible. The 3220 was a plain text terminal like the VT-220, the 3221
16211# was a like the VT-240 (monochrome with Regis + Sixel graphics), and the 3222
16212# was like the VT-241 (color with Regis + Sixel Graphics). These terminals
16213# (3221) cost about $1500 each, and one was always broken -- had to be sent
16214# back to the shop for repairs.
16215# The only real advantage these scopes had over the VT-240's were:
16216# 1) They were faster in the Regis display, or at least the ones I did
16217# 2) They had a handy debugging feature where you could split-screen the
16218# scope, the graphics would appear on the top, and the REGIS commands would
16219# appear on the bottom. I don't remember the VT-240s being able to do that.
16220# I would swear that LANPAR Technologies was in MA someplace, but since I
16221# don't work at the same place anymore, and those terminals and manuals were
16222# long since junked, I cannot be any more sure than that.
16223#
16224# (v3220: removed obsolete ":kn#10:",
16225# I added <rmam>/<smam> based on the init string -- esr)
16226v3220|LANPAR Vision II model 3220/3221/3222:\
16227 :am:bs:mi:xn:\
16228 :co#80:it#8:li#24:\
16229 :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
16230 :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:\
16231 :is=\E>\E[?3l\E[?7h\E[?8h\E[p:k0=\E[1~:k1=\E[2~:\
16232 :k2=\E[3~:k3=\E[4~:k4=\E[5~:k5=\E[6~:k6=\E[OP:k7=\E[OQ:\
16233 :k8=\E[OR:k9=\E[OS:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:kr=\E[C:\
16234 :ks=\E=:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:\
16235 :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
16236######## ICH/ICH1 VERSUS RMIR/SMIR
16237#
16238# Some non-curses applications get confused if both ich/ich1 and rmir/smir
16239# are present; the symptom is doubled characters in an update using insert.
16240# These applications are technically correct; in both 4.3BSD termcap and
16241# terminfo, you're not actually supposed to specify both ich/ich1 and rmir/smir
16242# unless the terminal needs both. To my knowledge, no terminal still in this
16243# file requires both other than the very obsolete dm2500.
16244#
16245# For ncurses-based applications this is not a problem, as ncurses uses
16246# one or the other as appropriate but never mixes the two. Therefore we
16247# have not corrected entries like `linux' and `xterm' that specify both.
16248# If you see doubled characters from these, use the linux-nic and xterm-nic
16249# entries that suppress ich/ich1. And upgrade to ncurses!
16250#
16251
16252######## VT100/ANSI/ISO 6429/ECMA-48/PC-TERM TERMINAL STANDARDS
16253#
16254# ANSI X3.64 has been withdrawn and replaced by ECMA-48. The ISO 6429 and
16255# ECMA-48 standards are said to be almost identical, but are not the same
16256# as X3.64 (though for practical purposes they are close supersets of it).
16257#
16258# You can obtain ECMA-48 for free by sending email to helpdesk@ecma.ch
16259# requesting the standard(s) you want (i.e. ECMA-48, "Control Functions for
16260# Coded Character Sets"), include your snail-mail address, and you should
16261# receive the document in due course. Don't expect an email acknowledgement.
16262#
16263# Related standards include "X3.4-1977: American National Standard Code for
16264# Information Interchange" (the ASCII standard) and "X3.41.1974:
16265# Code-Extension Techniques for Use with the 7-Bit Coded Character Set of
16266# American National Standard for Information Interchange." I believe (but
16267# am not certain) that these are effectively identical to ECMA-6 and ECMA-35
16268# respectively.
16269#
16270
16271#### VT100/ANSI/ECMA-48
16272#
16273# ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals
16274# and ECMA-48 Control Functions for Coded Character Sets.
16275#
16276# Much of the content of this comment is adapted from a table prepared by
16277# Richard Shuford, based on a 1984 Byte article. Terminfo correspondences,
16278# discussion of some terminfo-related issues, and updates to capture ECMA-48
16279# have been added. Control functions described in ECMA-48 only are tagged
16280# with * after their names.
16281#
16282# The table is a complete list of the defined ANSI X3.64/ECMA-48 control
16283# sequences. In the main table, \E stands for an escape (\033) character,
16284# SPC for space. Pn stands for a single numeric parameter to be inserted
16285# in decimal ASCII. Ps stands for a list of such parameters separated by
16286# semicolons. Parameter meanings for most parametrized sequences are
16287# decribed in the notes.
16288#
16289# Sequence Sequence Parameter or
16290# Mnemonic Name Sequence Value Mode terminfo
16291# -----------------------------------------------------------------------------
16292# APC Applicatn Program Command \E _ - Delim -
16293# BEL Bell * ^G - - bel
16294# BPH Break Permitted Here * \E B - * -
16295# BS Backpace * ^H - EF -
16296# CAN Cancel * ^X - - - (A)
16297# CBT Cursor Backward Tab \E [ Pn Z 1 eF cbt
16298# CCH Cancel Previous Character \E T - - -
16299# CHA Cursor Horizntal Absolute \E [ Pn G 1 eF hpa (B)
16300# CHT Cursor Horizontal Tab \E [ Pn I 1 eF tab (C)
16301# CMD Coding Method Delimiter * \E
16302# CNL Cursor Next Line \E [ Pn E 1 eF nel (D)
16303# CPL Cursor Preceding Line \E [ Pn F 1 eF -
16304# CPR Cursor Position Report \E [ Pn ; Pn R 1, 1 - - (E)
16305# CSI Control Sequence Intro \E [ - Intro -
16306# CTC Cursor Tabulation Control \E [ Ps W 0 eF - (F)
16307# CUB Cursor Backward \E [ Pn D 1 eF cub
16308# CUD Cursor Down \E [ Pn B 1 eF cud
16309# CUF Cursor Forward \E [ Pn C 1 eF cuf
16310# CUP Cursor Position \E [ Pn ; Pn H 1, 1 eF cup (G)
16311# CUU Cursor Up \E [ Pn A 1 eF cuu
16312# CVT Cursor Vertical Tab \E [ Pn Y - eF - (H)
16313# DA Device Attributes \E [ Pn c 0 - -
16314# DAQ Define Area Qualification \E [ Ps o 0 - -
16315# DCH Delete Character \E [ Pn P 1 eF dch
16316# DCS Device Control String \E P - Delim -
16317# DL Delete Line \E [ Pn M 1 eF dl
16318# DLE Data Link Escape * ^P - - -
16319# DMI Disable Manual Input \E \ - Fs -
16320# DSR Device Status Report \E [ Ps n 0 - - (I)
16321# DTA Dimension Text Area * \E [ Pn ; Pn SPC T - PC -
16322# EA Erase in Area \E [ Ps O 0 eF - (J)
16323# ECH Erase Character \E [ Pn X 1 eF ech
16324# ED Erase in Display \E [ Ps J 0 eF ed (J)
16325# EF Erase in Field \E [ Ps N 0 eF -
16326# EL Erase in Line \E [ Ps K 0 eF el (J)
16327# EM End of Medium * ^Y - - -
16328# EMI Enable Manual Input \E b Fs -
16329# ENQ Enquire ^E - - -
16330# EOT End Of Transmission ^D - * -
16331# EPA End of Protected Area \E W - - - (K)
16332# ESA End of Selected Area \E G - - -
16333# ESC Escape ^[ - - -
16334# ETB End Transmission Block ^W - - -
16335# ETX End of Text ^C - - -
16336# FF Form Feed ^L - - -
16337# FNK Function Key * \E [ Pn SPC W - - -
16338# GCC Graphic Char Combination* \E [ Pn ; Pn SPC B - - -
16339# FNT Font Selection \E [ Pn ; Pn SPC D 0, 0 FE -
16340# GSM Graphic Size Modify \E [ Pn ; Pn SPC B 100, 100 FE - (L)
16341# GSS Graphic Size Selection \E [ Pn SPC C none FE -
16342# HPA Horz Position Absolute \E [ Pn ` 1 FE - (B)
16343# HPB Char Position Backward \E [ j 1 FE -
16344# HPR Horz Position Relative \E [ Pn a 1 FE - (M)
16345# HT Horizontal Tab * ^I - FE - (N)
16346# HTJ Horz Tab w/Justification \E I - FE -
16347# HTS Horizontal Tab Set \E H - FE hts
16348# HVP Horz & Vertical Position \E [ Pn ; Pn f 1, 1 FE - (G)
16349# ICH Insert Character \E [ Pn @ 1 eF ich
16350# IDCS ID Device Control String \E [ SPC O - * -
16351# IGS ID Graphic Subrepertoire \E [ SPC M - * -
16352# IL Insert Line \E [ Pn L 1 eF il
16353# IND Index \E D - FE -
16354# INT Interrupt \E a - Fs -
16355# JFY Justify \E [ Ps SPC F 0 FE -
16356# IS1 Info Separator #1 * ^_ - * -
16357# IS2 Info Separator #1 * ^^ - * -
16358# IS3 Info Separator #1 * ^] - * -
16359# IS4 Info Separator #1 * ^\ - * -
16360# LF Line Feed ^J - - -
16361# LS1R Locking Shift Right 1 * \E ~ - - -
16362# LS2 Locking Shift 2 * \E n - - -
16363# LS2R Locking Shift Right 2 * \E } - - -
16364# LS3 Locking Shift 3 * \E o - - -
16365# LS3R Locking Shift Right 3 * \E | - - -
16366# MC Media Copy \E [ Ps i 0 - - (S)
16367# MW Message Waiting \E U - - -
16368# NAK Negative Acknowledge * ^U - * -
16369# NBH No Break Here * \E C - - -
16370# NEL Next Line \E E - FE nel (D)
16371# NP Next Page \E [ Pn U 1 eF -
16372# NUL Null * ^@ - - -
16373# OSC Operating System Command \E ] - Delim -
16374# PEC Pres. Expand/Contract * \E Pn SPC Z 0 - -
16375# PFS Page Format Selection * \E Pn SPC J 0 - -
16376# PLD Partial Line Down \E K - FE - (T)
16377# PLU Partial Line Up \E L - FE - (U)
16378# PM Privacy Message \E ^ - Delim -
16379# PP Preceding Page \E [ Pn V 1 eF -
16380# PPA Page Position Absolute * \E [ Pn SPC P 1 FE -
16381# PPB Page Position Backward * \E [ Pn SPC R 1 FE -
16382# PPR Page Position Forward * \E [ Pn SPC Q 1 FE -
16383# PTX Parallel Texts * \E [ \ - - -
16384# PU1 Private Use 1 \E Q - - -
16385# PU2 Private Use 2 \E R - - -
16386# QUAD Typographic Quadding \E [ Ps SPC H 0 FE -
16387# REP Repeat Char or Control \E [ Pn b 1 - rep
16388# RI Reverse Index \E M - FE - (V)
16389# RIS Reset to Initial State \E c - Fs -
16390# RM Reset Mode * \E [ Ps l - - - (W)
16391# SACS Set Add. Char. Sep. * \E [ Pn SPC / 0 - -
16392# SAPV Sel. Alt. Present. Var. * \E [ Ps SPC ] 0 - - (X)
16393# SCI Single-Char Introducer \E Z - - -
16394# SCO Sel. Char. Orientation * \E [ Pn ; Pn SPC k - - -
16395# SCS Set Char. Spacing * \E [ Pn SPC g - - -
16396# SD Scroll Down \E [ Pn T 1 eF rin
16397# SDS Start Directed String * \E [ Pn ] 1 - -
16398# SEE Select Editing Extent \E [ Ps Q 0 - - (Y)
16399# SEF Sheet Eject & Feed * \E [ Ps ; Ps SPC Y 0,0 - -
16400# SGR Select Graphic Rendition \E [ Ps m 0 FE sgr (O)
16401# SHS Select Char. Spacing * \E [ Ps SPC K 0 - -
16402# SI Shift In ^O - - - (P)
16403# SIMD Sel. Imp. Move Direct. * \E [ Ps ^ - - -
16404# SL Scroll Left \E [ Pn SPC @ 1 eF -
16405# SLH Set Line Home * \E [ Pn SPC U - - -
16406# SLL Set Line Limit * \E [ Pn SPC V - - -
16407# SLS Set Line Spacing * \E [ Pn SPC h - - -
16408# SM Select Mode \E [ Ps h none - - (W)
16409# SO Shift Out ^N - - - (Q)
16410# SOH Start Of Heading * ^A - - -
16411# SOS Start of String * \E X - - -
16412# SPA Start of Protected Area \E V - - - (Z)
16413# SPD Select Pres. Direction * \E [ Ps ; Ps SPC S 0,0 - -
16414# SPH Set Page Home * \E [ Ps SPC G - - -
16415# SPI Spacing Increment \E [ Pn ; Pn SPC G none FE -
16416# SPL Set Page Limit * \E [ Ps SPC j - - -
16417# SPQR Set Pr. Qual. & Rapid. * \E [ Ps SPC X 0 - -
16418# SR Scroll Right \E [ Pn SPC A 1 eF -
16419# SRCS Set Reduced Char. Sep. * \E [ Pn SPC f 0 - -
16420# SRS Start Reversed String * \E [ Ps [ 0 - -
16421# SSA Start of Selected Area \E F - - -
16422# SSU Select Size Unit * \E [ Pn SPC I 0 - -
16423# SSW Set Space Width * \E [ Pn SPC [ none - -
16424# SS2 Single Shift 2 (G2 set) \E N - Intro -
16425# SS3 Single Shift 3 (G3 set) \E O - Intro -
16426# ST String Terminator \E \ - Delim -
16427# STAB Selective Tabulation * \E [ Pn SPC ^ - - -
16428# STS Set Transmit State \E S - - -
16429# STX Start pf Text * ^B - - -
16430# SU Scroll Up \E [ Pn S 1 eF indn
16431# SUB Substitute * ^Z - - -
16432# SVS Select Line Spacing * \E [ Pn SPC \ 1 - -
16433# SYN Synchronous Idle * ^F - - -
16434# TAC Tabul. Aligned Centered * \E [ Pn SPC b - - -
16435# TALE Tabul. Al. Leading Edge * \E [ Pn SPC a - - -
16436# TATE Tabul. Al. Trailing Edge* \E [ Pn SPC ` - - -
16437# TBC Tab Clear \E [ Ps g 0 FE tbc
16438# TCC Tabul. Centered on Char * \E [ Pn SPC c - - -
16439# TSR Tabulation Stop Remove * \E [ Pn SPC d - FE -
16440# TSS Thin Space Specification \E [ Pn SC E none FE -
16441# VPA Vert. Position Absolute \E [ Pn d 1 FE vpa
16442# VPB Line Position Backward * \E [ Pn k 1 FE -
16443# VPR Vert. Position Relative \E [ Pn e 1 FE - (R)
16444# VT Vertical Tabulation * ^K - FE -
16445# VTS Vertical Tabulation Set \E J - FE -
16446#
16447# ---------------------------------------------------------------------------
16448#
16449# Notes:
16450#
16451# Some control characters are listed in the ECMA-48 standard without
16452# being assigned functions relevant to terminal control there (they
16453# referred to other standards such as ISO 1745 or ECMA-35). They are listed
16454# here anyway for completeness.
16455#
16456# (A) ECMA-48 calls this "CancelCharacter" but retains the CCH abbreviation.
16457#
16458# (B) There seems to be some confusion abroad between CHA and HPA. Most
16459# `ANSI' terminals accept the CHA sequence, not the HPA. but terminfo calls
16460# the capability (hpa). ECMA-48 calls this "Cursor Character Absolute" but
16461# preserved the CHA abbreviation.
16462#
16463# (C) CHT corresponds to terminfo (tab). Usually it has the value ^I.
16464# Occasionally (as on, for example, certain HP terminals) this has the HTJ
16465# value. ECMA-48 calls this "Cursor Forward Tabulation" but preserved the
16466# CHT abbreviation.
16467#
16468# (D) terminfo (nel) is usually \r\n rather than ANSI \EE.
16469#
16470# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR
16471# abbreviation.
16472#
16473# (F) CTC parameter values: 0 = set char tab, 1 = set line tab, 2 = clear
16474# char tab, 3 = clear line tab, 4 = clear all char tabs on current line,
16475# 5 = clear all char tabs, 6 = clear all line tabs.
16476#
16477# (G) CUP and HVP are identical in effect. Some ANSI.SYS versions accept
16478# HVP, but always allow CUP as an alternate. ECMA-48 calls HVP "Character
16479# Position Absolute" but retains the HVP abbreviation.
16480#
16481# (H) ECMA calls this "Cursor Line Tabulation" but preserves the CVT
16482# abbreviation.
16483#
16484# (I) DSR parameter values: 0 = ready, 1 = busy, 2 = busy, will send DSR
16485# later, 3 = malfunction, 4 = malfunction, will send DSR later, 5 = request
16486# DSR, 6 = request CPR response.
16487#
16488# (J) ECMA calls ED "Erase In Page". EA/ED/EL parameters: 0 = clear to end,
16489# 1 = clear from beginning, 2 = clear.
16490#
16491# (K) ECMA calls this "End of Guarded Area" but preserves the EPA abbreviation.
16492#
16493# (L) The GSM parameters are vertical and horizontal parameters to scale by.
16494#
16495# (M) Some ANSI.SYS versions accept HPR, but more commonly `ANSI' terminals
16496# use CUF for this function and ignore HPR. ECMA-48 calls this "Character
16497# Position Relative" but retains the HPR abbreviation.
16498#
16499# (N) ECMA-48 calls this "Character Tabulation" but retains the HT
16500# abbreviation.
16501#
16502# (O) SGR parameter values: 0 = default mode (attributes off), 1 = bold,
16503# 2 = dim, 3 = italicized, 4 = underlined, 5 = slow blink, 6 = fast blink,
16504# 7 = reverse video, 8 = invisible, 9 = crossed-out (marked for deletion),
16505# 10 = primary font, 10 + n (n in 1..9) = nth alternative font, 20 = Fraktur,
16506# 21 = double underline, 22 = turn off 2, 23 = turn off 3, 24 = turn off 4,
16507# 25 = turn off 5, 26 = proportional spacing, 27 = turn off 7, 28 = turn off
16508# 8, 29 = turn off 9, 30 = black fg, 31 = red fg, 32 = green fg, 33 = yellow
16509# fg, 34 = blue fg, 35 = magenta fg, 36 = cyan fg, 37 = white fg, 38 = set
16510# fg color as in CCIT T.416, 39 = set default fg color, 40 = black bg
16511# 41 = red bg, 42 = green bg, 43 = yellow bg, 44 = blue bg, 45 = magenta bg,
16512# 46 = cyan bg, 47 = white bg, 48 = set bg color as in CCIT T.416, 39 = set
16513# default bg color, 50 = turn off 26, 51 = framed, 52 = encircled, 53 =
16514# overlined, 54 = turn off 51 & 52, 55 = not overlined, 56-59 = reserved,
16515# 61-65 = variable highlights for ideograms.
16516#
16517# (P) SI is also called LSO, Locking Shift Zero.
16518#
16519# (Q) SI is also called LS1, Locking Shift One.
16520#
16521# (R) Some ANSI.SYS versions accept VPR, but more commonly `ANSI' terminals
16522# use CUD for this function and ignore VPR. ECMA calls it `Line Position
16523# Absolute' but retains the VPA abbreviation.
16524#
16525# (S) MC parameters: 0 = start xfer to primary aux device, 1 = start xfer from
16526# primary aux device, 2 = start xfer to secondary aux device, 3 = start xfer
16527# from secondary aux device, 4 = stop relay to primary aux device, 5 =
16528# start relay to primary aux device, 6 = stop relay to secondary aux device,
16529# 7 = start relay to secondary aux device.
16530#
16531# (T) ECMA-48 calls this "Partial Line Forward" but retains the PLD
16532# abbreviation.
16533#
16534# (U) ECMA-48 calls this "Partial Line Backward" but retains the PLD
16535# abbreviation.
16536#
16537# (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation.
16538#
16539# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM),
16540# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM),
16541# 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM),
16542# 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional
16543# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM),
16544# 10 = Character Editing Mode (HEM), 11 = Positioning Unit Mode (PUM),
16545# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM),
16546# 14 = Format Effector Transfer Mode (FETM), 15 = Multiple Area Transfer
16547# Mode (MATM), 16 = Transfer Termination Mode, 17 = Selected Area Transfer
16548# Mode, 18 = Tabulation Stop Mode, 19 = Editing Boundary Mode, 20 = Line Feed
16549# New Line Mode (LF/NL), Graphic Rendition Combination Mode (GRCM), 22 =
16550# Zero Default Mode (ZDM). The EBM and LF/NL modes have actually been removed
16551# from ECMA-48's 5th edition but are listed here for reference.
16552#
16553# (X) Select Alternate Presentation Variants is used only for non-Latin
16554# alphabets.
16555#
16556# (Y) "Select Editing Extent" (SEE) was ANSI "Select Edit Extent Mode" (SEM).
16557#
16558# (Z) ECMA-48 calls this "Start of Guarded Area" but retains the SPA
16559# abbreviation.
16560#
16561# ---------------------------------------------------------------------------
16562#
16563# Abbreviations:
16564#
16565# Intro an Introducer of some kind of defined sequence; the normal 7-bit
16566# X3.64 Control Sequence Introducer is the two characters "Escape ["
16567#
16568# Delim a Delimiter
16569#
16570# x/y identifies a character by position in the ASCII table (column/row)
16571#
16572# eF editor function (see explanation)
16573#
16574# FE format effector (see explanation)
16575#
16576# F is a Final character in
16577# an Escape sequence (F from 3/0 to 7/14 in the ASCII table)
16578# a control sequence (F from 4/0 to 7/14)
16579#
16580# Gs is a graphic character appearing in strings (Gs ranges from
16581# 2/0 to 7/14) in the ASCII table
16582#
16583# Ce is a control represented as a single bit combination in the C1 set
16584# of controls in an 8-bit character set
16585#
16586# C0 the familiar set of 7-bit ASCII control characters
16587#
16588# C1 roughly, the set of control chars available only in 8-bit systems.
16589# This is too complicated to explain fully here, so read Jim Fleming's
16590# article in the February 1983 BYTE, especially pages 214 through 224.
16591#
16592# Fe is a Final character of a 2-character Escape sequence that has an
16593# equivalent representation in an 8-bit environment as a Ce-type
16594# (Fe ranges from 4/0 to 5/15)
16595#
16596# Fs is a Final character of a 2-character Escape sequence that is
16597# standardized internationally with identical representation in 7-bit
16598# and 8-bit environments and is independent of the currently
16599# designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14)
16600#
16601# I is an Intermediate character from 2/0 to 2/15 (inclusive) in the
16602# ASCII table
16603#
16604# P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII
16605# table
16606#
16607# Pn is a numeric parameter in a control sequence, a string of zero or
16608# more characters ranging from 3/0 to 3/9 in the ASCII table
16609#
16610# Ps is a variable number of selective parameters in a control sequence
16611# with each selective parameter separated from the other by the code
16612# 3/11 (which usually represents a semicolon); Ps ranges from
16613# 3/0 to 3/9 and includes 3/11
16614#
16615# * Not relevant to terminal control, listed for completeness only.
16616#
16617# Format Effectors versus Editor Functions
16618#
16619# A format effector specifies how following output is to be displayed.
16620# An editor function allows you to modify the display. Informally
16621# format effectors may be destructive; format effectors should not be.
16622#
16623# For instance, a format effector that moves the "active position" (the
16624# cursor or equivalent) one space to the left would be useful when you want to
16625# create an overstrike, a compound character made of two standard characters
16626# overlaid. Control-H, the Backspace character, is actually supposed to be a
16627# format effector, so you can do this. But many systems use it in a
16628# nonstandard fashion, as an editor function, deleting the character to the
16629# left of the cursor and moving the cursor left. When Control-H is assumed to
16630# be an editor function, you cannot predict whether its use will create an
16631# overstrike unless you also know whether the output device is in an "insert
16632# mode" or an "overwrite mode". When Control-H is used as a format effector,
16633# its effect can always be predicted. The familiar characters carriage
16634# return, linefeed, formfeed, etc., are defined as format effectors.
16635#
16636# NOTES ON THE DEC VT100 IMPLEMENTATION
16637#
16638# Control sequences implemented in the VT100 are as follows:
16639#
16640# CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND,
16641# LNM, NEL, RI, RIS, RM, SGR, SM, TBC
16642#
16643# plus several private DEC commands.
16644#
16645# Erasing parts of the display (EL and ED) in the VT100 is performed thus:
16646#
16647# Erase from cursor to end of line Esc [ 0 K or Esc [ K
16648# Erase from beginning of line to cursor Esc [ 1 K
16649# Erase line containing cursor Esc [ 2 K
16650# Erase from cursor to end of screen Esc [ 0 J or Esc [ J
16651# Erase from beginning of screen to cursor Esc [ 1 J
16652# Erase entire screen Esc [ 2 J
16653#
16654# Some brain-damaged terminal/emulators respond to Esc [ J as if it were
16655# Esc [ 2 J, but this is wrong; the default is 0.
16656#
16657# The VT100 responds to receiving the DA (Device Attributes) control
16658#
16659# Esc [ c (or Esc [ 0 c)
16660#
16661# by transmitting the sequence
16662#
16663# Esc [ ? l ; Ps c
16664#
16665# where Ps is a character that describes installed options.
16666#
16667# The VT100's cursor location can be read with the DSR (Device Status
16668# Report) control
16669#
16670# Esc [ 6 n
16671#
16672# The VT100 reports by transmitting the CPR sequence
16673#
16674# Esc [ Pl ; Pc R
16675#
16676# where Pl is the line number and Pc is the column number (in decimal).
16677#
16678# The specification for the DEC VT100 is document EK-VT100-UG-003.
16679
16680#### ANSI.SYS
16681#
16682# Here is a description of the color and attribute controls supported in the
16683# the ANSI.SYS driver under MS-DOS. Most console drivers and ANSI
16684# terminal emulators for Intel boxes obey these. They are a proper subset
16685# of the ECMA-48 escapes.
16686#
16687# 0 all attributes off
16688# 1 foreground bright
16689# 4 underscore on
16690# 5 blink on/background bright (not reliable with brown)
16691# 7 reverse-video
16692# 8 set blank (non-display)
16693# 10 set primary font
16694# 11 set first alternate font (on PCs, display ROM characters 1-31)
16695# 12 set second alternate font (on PCs, display IBM high-half chars)
16696#
16697# Color attribute sets
16698# 3n set foreground color / 0=black, 1=red, 2=green, 3=brown,
16699# 4n set background color \ 4=blue, 5=magenta, 6=cyan, 7=white
16700# Bright black becomes gray. Bright brown becomes yellow,
16701# These coincide with the prescriptions of the ISO 6429/ECMA-48 standard.
16702#
16703# * If the 5 attribute is on and you set a background color (40-47) it is
16704# supposed to enable bright background.
16705#
16706# * Many VGA cards (such as the Paradise and compatibles) do the wrong thing
16707# when you try to set a "bright brown" (yellow) background with attribute
16708# 5 (you get a blinking yellow foreground instead). A few displays
16709# (including the System V console) support an attribute 6 that undoes this
16710# braindamage (this is required by iBCS2).
16711#
16712# * Some older versions of ANSI.SYS have a bug that causes thems to require
16713# ESC [ Pn k as EL rather than the ANSI ESC [ Pn K. (This is not ECMA-48
16714# compatible.)
16715
16716#### Intel Binary Compatibility Standard
16717#
16718# For comparison, here are the capabilities implied by the Intel Binary
16719# Compatibility Standard for UNIX systems (Intel order number 468366-001).
16720# These recommendations are optional. IBCS2 allows the leading escape to
16721# be either the 7-bit \E[ or 8-bit \0233 introducer, in accordance with
16722# the ANSI X.364/ISO 6429/ECMA-48 standard. Here are the iBCS2 capabilities
16723# (as described in figure 9-3 of the standard). Those expressed in the ibcs2
16724# terminfo entry are followed with the corresponding capability in parens:
16725#
16726# CSI <n>k disable (n=0) or enable (n=1) keyclick
16727# CSI 2h lock keyboard
16728# CSI 2i send screen as input
16729# CSI 2l unlock keyboard
16730# CSI 6m enable background color intensity
16731# CSI <0-2>c reserved
16732# CSI <0-59>m select graphic rendition
16733# CSI <n>;<m>H (cup) cursor to line n and column m
16734# CSI <n>;<m>f cursor to line n and column m
16735# CSI <n>@ (ich) insert characters
16736# CSI <n>A (cuu) cursor up n lines
16737# CSI <n>B (cud) cursor down n lines
16738# CSI <n>C (cuu) cursor right n characters
16739# CSI <n>D (cud) cursor left n characters
16740# CSI <n>E cursor down n lines and in first column
16741# CSI <n>F cursor up n lines and in first column
16742# CSI <n>G (hpa) position cursor at column n-1
16743# CSI <n>J (ed) erase in display
16744# CSI <n>K (el) erase in line
16745# CSI <n>L (il) insert line(s)
16746# CSI <n>P (dch) delete characters
16747# CSI <n>S (indn) scroll up n lines
16748# CSI <n>T (rin) scroll down n lines
16749# CSI <n>X (ech) erase characters
16750# CSI <n>Z (cbt) back up n tab stops
16751# CSI <n>` cursor to column n on line
16752# CSI <n>a (cuu) cursor right n characters
16753# CSI <n>d (vpa) cursor to line n
16754# CSI <n>e cursor down n lines and in first column
16755# CSI <n>g (cbt) clear all tabs
16756# CSI <n>z make virtual terminal n active
16757# CSI ?7h (smam) turn automargin on
16758# CSI ?7l (rmam) turn automargin off
16759# CSI s save cursor position
16760# CSI u restore cursor position to saved value
16761# CSI =<c>A set overscan color
16762# CSI =<c>F set normal foreground color
16763# CSI =<c>G set normal background color
16764# CSI =<c>H set reverse foreground color
16765# CSI =<c>I set reverse foreground color
16766# CSI =<c>J set graphic foreground color
16767# CSI =<c>K set graphic foreground color
16768# CSI =<n>g (dispc) display n from alternate graphics character set
16769# CSI =<p>;<d>B set bell parameters
16770# CSI =<s>;<e>C set cursor parameters
16771# CSI =<x>D enable/disable intensity of background color
16772# CSI =<x>E set/clear blink vs. bold background
16773# CSI 7 (sc) (sc) save cursor position
16774# CSI 8 (rc) (rc) restore cursor position to saved value
16775# CSI H (hts) (hts) set tab stop
16776# CSI Q<n><string> define function key string
16777# (string must begin and end with delimiter char)
16778# CSI c (clear) clear screen
16779#
16780# The lack of any specification for attributes in SGR (among other things)
16781# makes this a wretchedly weak standard. The table above is literally
16782# everything iBSC2 has to say about terminal escape sequences; there is
16783# no further discussion of their meaning or how to set the parameters
16784# in these sequences at all.
16785#
16786
16787######## NONSTANDARD CAPABILITY TRANSLATIONS USED IN THIS FILE
16788#
16789# The historical termcap file entries were written primarily in 4.4BSD termcap.
16790# The 4.4BSD termcap set was substantially larger than the original 4.1BSD set,
16791# with the extension names chosen for compatibility with the termcap names
16792# assigned in System V terminfo. There are some variant extension sets out
16793# there. We try to describe them here.
16794#
16795# XENIX extensions:
16796#
16797# The XENIX extensions include a set of function-key capabilities as follows:
16798#
16799# code XENIX variable name terminfo name name clashes?
16800# ---- ------------------- ------------- -----------------------
16801# CL key_char_left
16802# CR key_char_right
16803# CW key_change_window create_window
16804# EN key_end kend
16805# HM key_home khome
16806# HP ??
16807# LD key_delete_line kdl1
16808# LF key_linefeed label_off
16809# NU key_next_unlocked_cell
16810# PD key_page_down knp
16811# PL ??
16812# PN start_print mc5
16813# PR ??
16814# PS stop_print mc4
16815# PU key_page_up kpp pulse
16816# RC key_recalc remove_clock
16817# RF key_toggle_ref req_for_input
16818# RT key_return kent
16819# UP key_up_arrow kcuu1 parm_up_cursor
16820# WL key_word_left
16821# WR key_word_right
16822#
16823# The XENIX extensions also include the following character-set and highlight
16824# capabilities:
16825#
16826# XENIX terminfo function
16827# ----- -------- ------------------------------
16828# GS smacs start alternate character set
16829# GE rmacs end alternate character set
16830# GG :as:/:ae: glitch (analogous to :sg:/:ug:)
16831# bo blink begin blink (not used in /etc/termcap)
16832# be end blink (not used in /etc/termcap)
16833# bb blink glitch (not used in /etc/termcap)
16834# it dim begin dim (not used in /etc/termcap)
16835# ie end dim (not used in /etc/termcap)
16836# ig dim glitch (not used in /etc/termcap)
16837#
16838# Finally, XENIX also used the following forms-drawing capabilities:
16839#
16840# single double type ASCII approximation
16841# ------ ------ ------------- -------------------
16842# GV Gv vertical line |
16843# GH Gv horizontal line - _
16844# G1 G5 top right corner _ |
16845# G2 G6 top left corner |
16846# G3 G7 bottom left corner |_
16847# G4 G8 bottom right corner _|
16848# GD Gd down-tick character T
16849# GL Gl left-tick character -|
16850# GR Gr right-tick character |-
16851# GC Gc middle intersection -|-
16852# GU Gu up-tick character _|_
16853#
16854# These were invented to take advantage of the IBM PC ROM character set. One
16855# can compose an acsc string from the single-width characters as follows
16856# "j{G4}k{G1}l{G2}m{G3}q{GH}x{GV}t{GR}u{GL}v{GU}w{GD}n{GC}"
16857# When translating a termcap file, ncurses tic will do this automatically.
16858# The double forms characters don't fit the SVr4 terminfo model.
16859#
16860# AT&T Extensions:
16861#
16862# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
16863# nonstandard capabilities. Its signature is the KM capability, used to name
16864# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this
16865# set. Comments in the original, and a little cross-checking with other AT&T
16866# documentation, seem to establish that BO=:mr: (start reverse video), DS=:mh:
16867# (start dim), XS=:mk: (secure/invisible mode), EE=:me: (end highlights),
16868# FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make
16869# cursor invisible), and CV=:ve: (make cursor normal).
16870#
16871# HP Extensions
16872#
16873# The HP library (as of mid-1995, their term.h file version 70.1) appears to
16874# have the System V capabilities up to SVr1 level. After that, it supports
16875# two nonstandard caps meml and memu corresponding to the old termcap :ml:,
16876# :mu: capabilities. After that, it supports caps plab_norm, label_on,
16877# label_off, and key_f11..key_f63 capabilities like SVr4's. This makes the
16878# HP binary format incompatible with SVr4's.
16879#
16880# IBM Extensions
16881#
16882# There is a set of nonstandard terminfos used by IBM's AIX operating system.
16883# The AIX terminfo library diverged from SVr1 terminfo, and replaces all
16884# capabilities following prtr_non with the following special capabilties:
16885# box[12], batt[12], colb[0123456789], colf[0123456789], f[01234567], kbtab,
16886# kdo, kcmd, kcpn, kend, khlp, knl, knpn, kppn, kppn, kquit, ksel, kscl, kscr,
16887# ktab, kmpf[123456789], apstr, ksf1..ksf10, kf11...kf63, kact, topl, btml,
16888# rvert, lvert. Some of these are identical to XPG4/SVr4 equivalents:
16889# kcmd, kend, khlp, and kf11...kf63. Two others (kbtab and ksel) can be
16890# renamed (to kcbt and kslt). The places in the box[12] capabilities
16891# correspond to acsc chars, here is the mapping:
16892#
16893# box1[0] = ACS_ULCORNER
16894# box1[1] = ACS_HLINE
16895# box1[2] = ACS_URCORNER
16896# box1[3] = ACS_VLINE
16897# box1[4] = ACS_LRCORNER
16898# box1[5] = ACS_LLCORNER
16899# box1[6] = ACS_TTEE
16900# box1[7] = ACS_RTEE
16901# box1[8] = ACS_BTEE
16902# box1[9] = ACS_LTEE
16903# box1[10] = ACS_PLUS
16904#
16905# The box2 characters are the double-line versions of these forms graphics.
16906# The AIX binary terminfo format is incompatible with SVr4's.
16907#
16908# Iris console extensions:
16909#
16910# HS is half-intensity start; HE is half-intensity end
16911# CT is color terminal type (for Curses & rogue)
16912# CP is color change escape sequence
16913# CZ are color names (for Curses & rogue)
16914#
16915# The ncurses tic utility recognizes HS as an alias for mh <dim>.
16916#
16917# TC Extensions:
16918#
16919# There is a set of extended termcaps associated with something
16920# called the "Terminal Control" or TC package created by MainStream Systems,
16921# Winfield Kansas. This one also uses GS/GE for as/ae, and also uses
16922# CF for civis and CO for cvvis. Finally, they define a boolean :ct:
16923# that flags color terminals.
16924#
16925######## CHANGE HISTORY
16926#
16927# The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94.
16928# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses
16929# project.
16930#
16931# This file contains all the capability information present in John Kunze's
16932# last version of the termcap master file, except as noted in the change
16933# comments at end of file. Some information about very ancient obsolete
16934# capabilities has been moved to comments. Some all-numeric names of older
16935# terminals have been retired.
16936#
16937# I changed :MT: to :km: (the 4.4BSD name) everywhere. I commented out some
16938# capabilities (EP, dF, dT, dV, kn, ma, ml, mu, xr, xx) that are no longer
16939# used by BSD curses.
16940#
16941# The 9.1.0 version of this file was translated from my lightly-edited copy of
16942# 8.3, then mechanically checked against 8.3 using Emacs Lisp code written for
16943# the purpose. Unless the ncurses tic implementation and the Lisp code were
16944# making perfectly synchronized mistakes which I then failed to catch by
16945# eyeball, the translation was correct and perfectly information-preserving.
16946#
16947# Major version number bumps correspond to major version changes in ncurses.
16948#
16949# Here is a log of the changes since then:
16950#
16951# 9.1.0 (Wed Feb 1 04:50:32 EST 1995):
16952# * First terminfo master translated from 8.3.
16953# 9.2.0 (Wed Feb 1 12:21:45 EST 1995):
16954# * Replaced Wyse entries with updated entries supplied by vendor.
16955#
16956# 9.3.0 (Mon Feb 6 19:14:40 EST 1995):
16957# * Added contact & status info from G. Clark Brown <clark@sssi.com>.
16958# 9.3.1 (Tue Feb 7 12:00:24 EST 1995):
16959# * Better XENIX keycap translation. Describe TC termcaps.
16960# * Contact and history info supplied by Qume.
16961# 9.3.2 (Sat Feb 11 23:40:02 EST 1995):
16962# * Raided the Shuford FTP site for recent termcaps/terminfos.
16963# * Added information on X3.64 and VT100 standard escape sequences.
16964# 9.3.3 (Mon Feb 13 12:26:15 EST 1995):
16965# * Added a correct X11R6 xterm entry.
16966# * Fixed terminfo translations of padding.
16967# 9.3.4 (Wed Feb 22 19:27:34 EST 1995):
16968# * Added correct acsc/smacs/rmacs strings for vt100 and xterm.
16969# * Added u6/u7/u8/u9 capabilities.
16970# * Added PCVT entry.
16971# 9.3.5 (Thu Feb 23 09:37:12 EST 1995):
16972# * Emacs uses :so:, not :mr:, for its mode line. Fix linux entry
16973# to use reverse-video standout so Emacs will look right.
16974# * Added el1 capability to ansi.
16975# * Added smacs/rmacs to ansi.sys.
16976#
16977# 9.4.0 (Sat Feb 25 16:43:25 EST 1995):
16978# * New mt70 entry.
16979# * Added COPYRIGHTS AND OTHER DELUSIONS.
16980# * Added AT&T 23xx & 500/513, vt220 and vt420, opus3n1+, netronics
16981# smartvid & smarterm, ampex 175 & 219 & 232,
16982# env230, falco ts100, fluke, intertube, superbrain, ncr7901, vic20,
16983# ozzie, trs200, tr600, Tandy & Texas Instruments VDTs, intext2,
16984# screwpoint, fviewpoint, Contel Business Systems, Datamedia Colorscan,
16985# adm36, mime314, ergo4000, ca22851. Replaced att7300, esprit, dd5500.
16986# * Replaced the Perkin-Elmer entries with vendor's official ones.
16987# * Restored the old minimal-ansi entry, luna needs it.
16988# * Fixed some incorrect ip and proportional-padding translations.
16989# 9.4.1 (Mon Feb 27 14:18:33 EST 1995):
16990# * Fix linux & AT386 sgr strings to do A_ALTCHARSET turnoff correctly.
16991# * Make the xterm entry 65 lines again; create xterm25 and xterm24
16992# to force a particular height.
16993# * Added beehive4 and reorganized other Harris entries.
16994# 9.4.2 (Thu Mar 9 01:45:44 EST 1995):
16995# * Merged in DEC's official entries for its terminals. The only old
16996# entry I kept was Doug Gwyn's alternate vt100 (as vt100-avo).
16997# * Replaced the translated BBN Bitgraph entries with purpose-built
16998# ones from AT&T's SVr3.
16999# * Replaced the AT&T entries with AT&T's official terminfos.
17000# * Added teleray 16, vc415, cops10.
17001# * Merged in many individual capabilities from SCO terminfo files.
17002# 9.4.3 (Mon Mar 13 02:37:53 EST 1995):
17003# * Typo fixes.
17004# * Change linux entry so A_PROTECT enables IBM-PC ROM characters.
17005# 9.4.4 (Mon Mar 27 12:32:35 EST 1995):
17006# * Added tty35, Ann Arbor Guru series. vi300 and 550, cg7900, tvi803,
17007# pt210, ibm3164, IBM System 1, ctrm, Tymshare scanset, dt200, adm21,
17008# simterm, citoh and variants.
17009# * Replaced sol entry with sol1 and sol2.
17010# * Replaced Qume QVT and Freedom-series entries with purpose-built
17011# terminfo entries.
17012# * Enhanced vt220, tvi910, tvi924, hpterm, hp2645, adm42, tek
17013# and dg200 entries using caps from from SCO.
17014# * Added the usual set of function-key mappings to ANSI entry.
17015# * Corrected xterm's function-key capabilities.
17016# 9.4.5 (Tue Mar 28 14:27:49 EST 1995):
17017# * Fix in xterm entry, cub and cud are not reliable under X11R6.
17018# 9.4.6 (Thu Mar 30 14:52:15 EST 1995):
17019# * Fix in xterm entry, get the arrow keys right.
17020# * Change some \0 escapes to \200.
17021# 9.4.7 (Tue Apr 4 11:27:11 EDT 1995)
17022# * Added apple (Videx card), adm1a, oadm31.
17023# * Fixed malformed ampex csr.
17024# * Fixed act4, cyb110; they had old-style prefix padding left in.
17025# * Changed mandatory to advisory padding in many entries.
17026# * Replaced HP entries up to hpsub with purpose-built ones.
17027# * Blank rmir/smir/rmdc/smdc capabilities removed.
17028# * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924.
17029# 9.4.8 (Fri Apr 7 09:36:34 EDT 199):
17030# * Replaced the Ann Arbor entries with SCO's, the init strings are
17031# more efficient (but the entries otherwise identical).
17032# * Added dg211 from Shuford archive.
17033# * Added synertek, apple-soroc, ibmpc, pc-venix, pc-coherent, xtalk,
17034# adm42-nl, pc52, gs6300, xerox820, uts30.
17035# * Pull SCO's padding into vi200 entry.
17036# * Improved capabilities for tvi4107 and other Televideo and Viewpoint
17037# entries merged in from SCO's descriptions.
17038# * Fixed old-style prefix padding on zen50, h1500.
17039# * Moved old superbee entry to superbee-xsb, pulled in new superbee
17040# entry from SCO's description.
17041# * Reorganized the special entries.
17042# * Added lm#0 to cbunix and virtual entries.
17043#
17044# 9.5.0 (Mon Apr 10 11:30:00 EDT 1995):
17045# * Restored cdc456tst.
17046# * Fixed sb1 entry, SCO erroneously left out the xsb glitch.
17047# * Added megatek, beacon, microkit.
17048# * Freeze for ncurses-1.9 release.
17049# 9.5.1 (Fri Apr 21 12:46:42 EDT 1995):
17050# * Added historical data for TAB.
17051# * Comment fixes from David MacKenzie.
17052# * Added the new BSDI pc3 entry.
17053# 9.5.2 (Tue Apr 25 17:27:52 EDT 1995)
17054# * A change in the tic -C logic now ensures that all entries in
17055# the termcap translation will fit in < 1024 bytes.
17056# * Added `bobcat' and `gator' HP consoles and the Nu machine entries
17057# from GNU termcap file. This merges in all their local information.
17058# 9.5.3 (Tue Apr 25 22:28:13 EDT 1995)
17059# * Changed tic -C logic to dump all capabilities used by GNU termcap.
17060# * Added warnings about entries with long translations (restoring
17061# all the GNU termcaps pushes a few over the edge).
17062# 9.5.4 (Wed Apr 26 15:35:09 EDT 1995)
17063# * Yet another tic change, and a couple of entry tweaks, to reduce the
17064# number of long (> 1024) termcap translations back to 0.
17065#
17066# 9.6.0 (Mon May 1 10:35:54 EDT 1995)
17067# * Added kf13-kf20 to Linux entry.
17068# * Regularize Prime terminal names.
17069# * Historical data on Synertek.
17070# * Freeze for ncurses-1.9.1.
17071# 9.6.1 (Sat May 6 02:00:52 EDT 1995):
17072# * Added true xterm-color entry, renamed djm's pseudo-color entry.
17073# * Eliminate whitespace in short name fields, this tanks some scripts.
17074# * Name field changes to shorten some long entries.
17075# * Termcap translation now automatically generates empty rmir/smir
17076# when ich1/ich is present (copes with an ancient vi bug).
17077# * Added `screen' entries from FSF's screen-3.6.2.
17078# * Added linux-nic and xterm-nic entries.
17079# 9.6.2 (Sat May 6 17:00:55 EDT 1995):
17080# * Change linux entry to use smacs=\E[11m and have an explicit acsc,
17081# eliminating some special-case code in ncurses.
17082#
17083# 9.7.0 (Tue May 9 18:03:12 EDT 1995):
17084# * Added vt320-k3, rsvidtx from the Emacs termcap.dat file. I think
17085# that captures everything unique from it.
17086# * Added reorder script generator.
17087# * Freeze for ncurses 1.9.2 release.
17088# 9.7.1 (Thu Jun 29 09:35:22 EDT 1995):
17089# * Added Sean Farley's kspd, flash, rs1 capabilities for linux.
17090# * Added Olaf Siebert's corrections for adm12.
17091# * ansi-pc-color now includes the colors and pairs caps, so that
17092# entries which use it will inherit them automatically.
17093# * The linux entry can now recognize the center (keypad 5) key.
17094# * Removed some junk that found its way into Linux acsc.
17095#
17096# 9.8.0 (Fri Jul 7 04:46:57 EDT 1995):
17097# * Add 50% cut mark as a desperate hack to reduce tic's core usage.
17098# * xterm doesn't try to use application keypad mode any more.
17099# * Freeze for ncurses-1.9.3 release.
17100# 9.8.1 (Thu Jul 19 17:02:12 EDT 1995):
17101# * Added corrected sun entry from vendor.
17102# * Added csr capability to linux entry.
17103# * Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG.
17104# * Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators.
17105# * Some commented-out caps in long entries come back in, my code
17106# for computing string-table lengths had a bug in it.
17107# * pcansi series modified to fit comm-program reality better.
17108# 9.8.2 (Sat Sep 9 23:35:00 EDT 1995):
17109# * BSD/OS actually ships the ibmpc3 bold entry as its console.
17110# * Correct some bad aliases in the pcansi series
17111# * Added entry for QNX console.
17112# * Clean up duplicate long names for use with 4.4 library.
17113# * Change vt100 standout to be normal reverse vide, not bright reverse;
17114# this makes the Emacs status line look better.
17115# 9.8.3 (Sun Sep 10 13:07:34 EDT 1995):
17116# * Added Adam Thompson's VT320 entries, also his dtx-sas and z340.
17117# * Minor surgery, mostly on name strings, to shorten termcap version.
17118#
17119# 9.9.0 (Sat Sep 16 23:03:48 EDT 1995):
17120# * Added dec-vt100 for use with the EWAN emulator.
17121# * Added kmous to xterm for use with xterm's mouse-tracking facility.
17122# * Freeze for 1.9.5 alpha release.
17123# 9.9.1 (Wed Sep 20 13:46:09 EDT 1995):
17124# * Changed xterm lines to 24, the X11R6 default.
17125# 9.9.2 (Sat Sep 23 21:29:21 EDT 1995):
17126# * Added 7 newly discovered, undocumented acsc characters to linux
17127# entry (the pryz{|} characters).
17128# * ncurses no longer steals A_PROTECT. Simplify linux sgr accordingly.
17129# * Correct two typos in the xterm entries introduced in 9.9.1.
17130# * I finally figured out how to translate ko capabilities. Done.
17131# * Added tvi921 entries from Tim Theisen.
17132# * Cleanup: dgd211 -> dg211, adm42-nl -> adm42-nsl.
17133# * Removed mystery tec entry, it was neither interesting nor useful.
17134# * shortened altos3, qvt203, tvi910+, tvi92D, tvi921-g, tvi955, vi200-f,
17135# vi300-ss, att505-24, contel301, dm3045, f200vi, pe7000c, vc303a,
17136# trs200, wind26, wind40, wind50, cdc456tst, dku7003, f110, dg211,
17137# by making them relative to use capabilities
17138# * Added cuf1=^L to tvi925 from deleted variant tvi925a.
17139# * fixed cup in adm22 entry and parametrized strings in vt320-k3.
17140# * added it#8 to entries that used to have :pt: -- tvi912, vi200,
17141# ampex80,
17142# * Translate all home=\E[;H capabilities to home=\E[H, they're
17143# equivalent.
17144# * Translate \E[0m -> \E[m in [rs]mso, [rs]mul, and init strings of
17145# vt100 and ANSI-like terminals.
17146# 9.9.3 (Tue Sep 26 20:11:15 EDT 1995):
17147# * Added it#8 and ht=\t to *all* entries with :pt:; the ncurses tic
17148# does this now, too.
17149# * fviewpoint is gone, it duplicated screwpoint.
17150# * Added hp2627, graphos, graphos-30, hpex, ibmega, ibm8514, ibm8514-c,
17151# ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3,
17152# versaterm, vi500, vsc, vt131, vt340, vt400 entries from UW.
17153# The UW vi50 replaces the old one, which becomes vi50adm,
17154# * No more embedded commas in name fields.
17155#
17156# 9.10.0 (Wed Oct 4 15:39:37 EDT 1995):
17157# * XENIX forms characters in fos, trs16, scoansi become acsc strings,
17158# * Introduced klone+* entries for describing Intel-console behavior.
17159# * Linux kbs is default-mapped to delete for some brain-dead reason.
17160# * -nsl -> -ns. The -pp syntax is obsolete.
17161# * Eliminate [A-Z]* primaries in accordance with SVr4 terminfo docs.
17162# * Make xterm entry do application-keypad mode again. I got complaints
17163# that it was messing up someone's 3270 emulator.
17164# * Added some longname fields in order to avoid warning messages from
17165# older tic implementations.
17166# * According to ctlseqs.ms, xterm has a full vt100 graphics set. Use
17167# it! (This gives us pi, greater than, less than, and a few more.)
17168# * Freeze for ncurses-1.9.6 release.
17169# 9.10.1 (Sat Oct 21 22:18:09 EDT 1995):
17170# * Add xon to a number of console entries, they're memory-mapped and
17171# don't need padding.
17172# * Correct the use dependencies in the ansi series.
17173# * Hand-translate more XENIX capabilities.
17174# * Added hpterm entry for HP's X terminal emulator.
17175# * Added aixterm entries.
17176# * Shortened four names so everything fits in 14 chars.
17177#
17178# 9.11.0 (Thu Nov 2 17:29:35 EST 1995):
17179# * Added ibcs2 entry and info on iBCS2 standard.
17180# * Corrected hpa/vpa in linux entry. They still fail the worm test.
17181# * We can handle the HP meml/memu capability now.
17182# * Added smacs to klone entries, just as documentation.
17183# * Carrected ansi.sys and cit-500 entries.
17184# * Added z39, vt320-k311, v220c, and avatar entries.
17185# * Make pcansi use the ansi.sys invis capability.
17186# * Added DIP switch descriptions for vt100, adm31, tvi910, tvi920c,
17187# tvi925, tvi950, dt80, ncr7900i, h19.
17188# * X3.64 has been withdrawn, change some references.
17189# * Removed function keys from ansi-m entry.
17190# * Corrected ansi.sys entry.
17191# * Freeze for ncurses-1.9.7 release.
17192# 9.11.1 (Tue Nov 6 18:18:38 EST 1995):
17193# * Added rmam/smam capabilities to many entries based on init strings.
17194# * Added correct hpa/vpa to linux.
17195# * Reduced several entries relative to vt52.
17196# 9.11.2 (Tue Nov 7 00:21:06 EST 1995):
17197# * Exiled some utterly unidentifiable custom and homebrew types to the
17198# UFO file; also, obsolete small-screen hardware; also, entries which
17199# look flat-out incorrect, garbled, or redundant. These include the
17200# following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec,
17201# tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile,
17202# apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu,
17203# fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55,
17204# yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2,
17205# vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200,
17206# trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40,
17207# att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w,
17208# tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na,
17209# c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na,
17210# regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb,
17211# vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam,
17212# vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms.
17213# * Corrected pcvt25h as suggested by Brian C. Grayson
17214# <bgrayson@pine.ece.utexas.edu>.
17215# 9.11.3 (Thu Nov 9 12:14:40 EST 1995):
17216# * Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H.
17217# * Added kent=\EOM to xterm entry.
17218#
17219# 9.11.4 (Fri Nov 10 08:31:35 EST 1995):
17220# * Corrected gigi entry.
17221# * Restored cuf/cud1 to xterm, their apparent bugginess was due to
17222# bad hpa/vpa capabilities.
17223# * Corrected flash strings to have a uniform delay of .2 sec. No
17224# more speed-dependent NUL-padding!
17225# * terminfo capabilities in comments bracketed with <>.
17226# 9.11.5 (Fri Nov 10 15:35:02 EST 1995):
17227# * Replaced pcvt with the 3.31 pcvt entries.
17228# * Freeze for 1.9.7a.
17229# 9.11.6 (Mon Nov 13 10:20:24 EST 1995):
17230# * Added emu entry from the X11R6 contrib tape sources.
17231#
17232# 9.12.0 (Wed Nov 29 04:22:25 EST 1995):
17233# * Improved iris-ansi and sun entries.
17234# * More flash string improvements.
17235# * Corrected wy160 & wy160 as suggested by Robert Dunn
17236# * Added dim to at386.
17237# * Reconciled pc3 and ibmpc3 with the BSDI termcap file. Keith says
17238# he's ready to start using the termcap generated from this one.
17239# * Added vt102-w, vt220-w, xterm-bold, wyse-vp, wy75ap, att4424m,
17240# ln03, lno3-w, h19-g, z29a*, qdss. Made vt200 an alias of vt220.
17241# * Improved hpterm, apollo consoles, fos, qvt101, tvi924. tvi925,
17242# att610, att620, att630,
17243# * Changed hazeltine name prefix from h to hz.
17244# * Sent t500 to the UFI file.
17245# * I think we've sucked all the juice out of BSDI's termcap file now.
17246# * Freeze for ncurses 1.9.8 release
17247# 9.12.1 (Thu Nov 30 03:14:06 EST 1995)
17248# * Unfreeze, linux kbs needed to be fixed.
17249# * Tim Theisen pinned down a bug in the DMD firmware.
17250# 9.12.2 (Thu Nov 30 19:08:55 EST 1995):
17251# * Fixes to ansi and klone capabilities (thank you, Aaron Ucko).
17252# (The broken ones had been shadowed by sgr.)
17253# 9.12.3 (Thu Dec 7 17:47:22 EST 1995):
17254# * Added documentation on ECMA-48 standard.
17255# * New Amiga entry.
17256# 9.12.4 (Thu Dec 14 04:16:39 EST 1995):
17257# * More ECMA-48 stuff
17258# * Corrected typo in minix entry, added pc-minix.
17259# * Corrected khome/kend in xterm (thank you again, Aaron Ucko).
17260# * Added rxvt entry.
17261# * Added 1.3.x color-change capabilities to linux entry.
17262# 9.12.5 (Tue Dec 19 00:22:10 EST 1995):
17263# * Corrected rxvt entry khome/kend.
17264# * Corrected linux color change capabilities.
17265# * NeXT entries from Dave Wetzel.
17266# * Cleaned up if and rf file names (all in /usr/share now).
17267# * Changed linux op capability to avoid screwing up a background color
17268# pair set by setterm.
17269# 9.12.6 (Wed Feb 7 16:14:35 EST 1996):
17270# * Added xterm-sun.
17271# 9.12.7 (Fri Feb 9 13:27:35 EST 1996):
17272# * Added visa50.
17273#
17274# 9.13.0 (Sun Mar 10 00:13:08 EST 1996):
17275# * Another sweep through the Shuford archive looking for new info.
17276# * Added dg100 alias to dg6053 based on a comp.terminals posting.
17277# * Added st52 from Per Persson.
17278# * Added eterm from the GNU Emacs 19.30 distribution.
17279# * Freeze for 1.9.9.
17280# 9.13.1 (Fri Mar 29 14:06:46 EST 1996):
17281# * FreeBSD console entries from Andrew Chernov.
17282# * Removed duplicate Atari st52 name.
17283# 9.13.2 (Tue May 7 16:10:06 EDT 1996)
17284# * xterm doesn't actually have ACS_BLOCK.
17285# * Change klone+color setf/setb to simpler forms that can be
17286# translated into termcap.
17287# * Added xterm1.
17288# * Removed mechanically-generated junk capabilities from cons* entries.
17289# * Added color support to bsdos.
17290# 9.13.3 (Thu May 9 10:35:51 EDT 1996):
17291# * Added Wyse 520 entries from Wm. Randolph Franklin <wrf@ecse.rpi.edu>.
17292# * Created ecma+color, linux can use it. Also added ech to linux.
17293# * Teach xterm about more keys. Add Thomas Dickey's 3.1.2E updates.
17294# * Add descriptions to FreeBSD console entries. Also shorten
17295# some aliases to <= 14 chars for portability.
17296# * Added x68k console
17297# * Added OTbs to several VT-series entries.
17298# 9.13.4 (Wed May 22 10:54:09 EDT 1996):
17299# * screen entry update for 3.7.1 from Michael Alan Dorfman.
17300# 9.13.5 (Wed Jun 5 11:22:41 EDT 1996):
17301# * kterm correction due to Kenji Rikitake.
17302# * ACS correction in vt320-kll due to Phillippe De Muyter.
17303# 9.13.6 (Sun Jun 16 15:01:07 EDT 1996):
17304# * Sun console entry correction from J.T. Conklin.
17305# * Changed all DEC VT300 and up terminals to use VT300 tab set
17306# 9.13.7 (Mon Jul 8 20:14:32 EDT 1996):
17307# * Added smul to linux entry (we never noticed it was missing
17308# because of sgr!).
17309# * Added rmln to hp+labels (deduced from other HP entries).
17310# * Added vt100 acsc capability to vt220, vt340, vt400, d800, dt80-sas,
17311# pro350, att7300, 5420_2, att4418, att4424, att4426, att505, vt320-k3.
17312# * Corrected vt220 acsc.
17313# * The klone+sgr and klone+sgr-dumb entries now use klone+acs;
17314# this corresponds to reality and helps prevent some tic warnings.
17315# * Added sgr0 to c101, pcix, vt100-nav, screen2, oldsun, next, altos2,
17316# hpgeneric, hpansi, hpsub, hp236, hp700-wy, bobcat, dku7003, adm11,
17317# adm12, adm20, adm21, adm22, adm31, adm36, adm42, pt100, pt200,
17318# qvt101, tvi910, tvi921, tvi92B, tvi925, tvi950, tvi970, wy30-mc,
17319# wy50-mc, wy100, wyse-vp, ampex232, regent100, viewpoint, vp90,
17320# adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p,
17321# f1720a, go140, sb1, superbeeic, microb, ibm8512, kt7, ergo4000,
17322# owl, uts30, dmterm, dt100, dt100, dt110, appleII, apple-videx,
17323# lisa, trsII, atari, st52, pc-coherent, basis, m2-man, bg2.0, bg1.25,
17324# dw3, ln03, ims-ansi, graphos, t16, zen30, xtalk, simterm, d800,
17325# ifmr, v3220, wy100q, tandem653, ibmaed.
17326# * Added DWK terminal description.
17327# 9.13.8 (Wed Jul 10 11:45:21 EDT 1996):
17328# * Many entries now have highlights inherited from adm+sgr.
17329# * xterm entry now corresponds to XFree86 3.1.2E, with color.
17330# * xtitle and xtitle-twm enable access to the X status line.
17331# * Added linux-1.3.6 color palette caps in conventional format.
17332# * Added adm1178 terminal.
17333# * Move fos and apollo terminals to obsolete category.
17334# * Aha! The BRL terminals file told us what the Iris extensions mean.
17335# * Added, from the BRL termcap file: rt6221, rt6221-w, northstar,
17336# commodore, cdc721-esc, excel62, osexec. Replaced from the BRL file:
17337# cit500, adm11.
17338# 9.13.9 (Mon Jul 15 00:32:51 EDT 1996):
17339# * Added, from the BRL termcap file: cdc721, cdc721l, cdc752, cdc756,
17340# aws, awsc, zentec8001, modgraph48, rca vp3301/vp3501, ex155.
17341# * Corrected, from BRL termcap file: vi50.
17342# * Better rxvt entry & corrected xterm entries from Thomas Dickey.
17343# 9.13.10 (Mon Jul 15 12:20:13 EDT 1996):
17344# * Added from BRL: cit101e & variants, hmod1, vi200, ansi77, att5620-1,
17345# att5620-s, att5620-s, dg210, aas1901, hz1520, hp9845, osborne
17346# (old osborne moved to osborne-w), tvi970-vb, tvi970-2p, tvi925-hi,
17347# tek4105brl, tek4106brl, tek4107brl,tek4109brl, hazel, aepro,
17348# apple40p, apple80p, appleIIgs, apple2e, apple2e-p, apple-ae.
17349# * Paired-attribute fixes to various terminals.
17350# * Sun entry corrections from A. Lukyanov & Gert-Jan Vons.
17351# * xterm entry corrections from Thomas Dickey.
17352# 9.13.11 (Tue Jul 30 16:42:58 EDT 1996):
17353# * Added t916 entry, translated from a termcap in SCO's support area.
17354# * New qnx entry from Michael Hunter.
17355# 9.13.12 (Mon Aug 5 14:31:11 EDT 1996):
17356# * Added hpex2 from Ville Sulko.
17357# * Fixed a bug that ran the qnx and pcvtXX together.
17358# 9.13.13 (Fri Aug 9 01:16:17 EDT 1996):
17359# * Added dtterm entry from Solaris CDE.
17360# 9.13.14 (Tue Sep 10 15:31:56 EDT 1996):
17361# * corrected pairs#8 typo in dtterm entry.
17362# * added tvi9065.
17363# 9.13.15 (Sun Sep 15 02:47:05 EDT 1996):
17364# * updated xterm entry to cover 3.1.2E's new features.
17365# 9.13.16 (Tue Sep 24 12:47:43 EDT 1996):
17366# * Added new minix entry
17367# * Removed aliases of the form ^[0-9]* for obsolete terminals.
17368# * Commented out linux-old, nobody's using pre-1.2 kernels now.
17369# 9.13.17 (Fri Sep 27 13:25:38 EDT 1996):
17370# * Added Prism entries and kt7ix.
17371# * Caution notes about EWAN and tabset files.
17372# * Changed /usr/lib/tabset -> /usr/share/tabset.
17373# * Added acsc/rmacs/smacs to vt52.
17374# 9.13.18 (Mon Oct 28 13:24:59 EST 1996):
17375# * Merged in Thomas Dickey's reorganization of the xterm entries;
17376# added technical corrections to avoid warning messages.
17377# 9.13.19 (Sat Nov 16 16:05:49 EST 1996):
17378# * Added rmso=\E[27m in Linux entry.
17379# * Added koi8-r support for Linux console.
17380# * Replace xterm entries with canonical ones from XFree86 3.2.
17381# 9.13.20 (Sun Nov 17 23:02:51 EST 1996):
17382# * Added color_xterm from Jacob Mandelson
17383# 9.13.21 (Mon Nov 18 12:43:42 EST 1996):
17384# * Back off the xterm entry to use r6 as a base.
17385# 9.13.22 (Sat Nov 30 11:51:31 EST 1996):
17386# * Added dec-vt220 at Adrian Garside's request.
17387# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
17388# * Replaced minitel-2 entry.
17389# * Added MGR, ansi-nt.
17390# * Minor corrections to xterm entries.
17391# * Replaced EWAN telnet entry.
17392# * Dropped the reorder script generator. It was a fossil.
17393# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
17394# * Thorsten Lockert added termcap `bs' to a lot of types, working from
17395# the 4.4BSD Lite2 file.
17396# 9.13.25 (Fri Jun 20 12:33:36 EDT 1997):
17397# * Added Datapoint 8242, pilot, ansi_psx, rbcomm, vt220js.
17398# * Updated iris-ansi; corrected vt102-w.
17399# * Switch base xterm entry to 3.3 level.
17400# 9.13.26 (Mon Jun 30 22:45:45 EDT 1997)
17401# * Added basic4.
17402# * Removed rmir/smir from tv92B.
17403#
17404# 10.2.0 (Sat Feb 28 12:47:36 EST 1998):
17405# * add hds200 description (Walter Skorski)
17406# * add beterm entry (Fred Fish)
17407# * add Thomas Dickey's xterm-xf86-v40, xterm-8bit, xterm-16color,
17408# iris-color entries.
17409# * add emx entries.
17410# * Replaced unixpc entry with Benjamin Sittler's corrected version.
17411# * Replaced xterm/rxvt/emu/syscons entries with Thomas Dickey's
17412# versions.
17413# * remove sgr string from qnx based on report by Xiaodan Tang
17414# * Added u8/u9, removed rmul/smul from sun-il.
17415# * 4.2 tic displays \0 rather than \200.
17416# * add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
17417# apparently based on cp-866).
17418# * Merged in Pavel Roskin's acsc for linux-koi8
17419# * Corrected some erroneous \\'s to \.
17420# * 4.2 ncurses has been changed to use setaf/setab, consistent w/SysV.
17421# * II -> ii in pcvtXX, screen, xterm.
17422# * Removed \n chars following ANSI escapes in sgr & friends.
17423# * Updated Wyse entries.
17424# * h19 corrections from Tim Pierce.
17425# * Noted that the dm2500 has both ich and smir.
17426# * added pccons for the Alpha under OSF/1.
17427# * Added Sony NEWS workstation entries and cit101e-rv.
17428# * Reverted `amiga'; to Kent Polk's version, as I'm told
17429# the Verkuil entry messes up with Amiga Telnet.
17430# 10.2.1 (Sun Mar 8 18:32:04 EST 1998):
17431# * Corrected attributions in 10.2.0 release notes.
17432# * Scanned the Shuford archive for new terminfos and information.
17433# * Removed sgr from qnx entry (Thomas Dickey).
17434# * Added entries for ICL and Kokusai Data Systems terminals.
17435# * Incorporated NCR terminfos from the Boundless Technology FTP site.
17436# * Incorporated att700 from the Boundless Technology FTP site.
17437# * Miscellaneous contact-address and Web-page updates.
17438#
17439# 1998/5/9
17440# * add nxterm and xterm-color terminfo description (request by Cristian
17441# Gafton <gafton@redhat.com>).
17442# * modify rxvt terminfo description to clear alternate screen before
17443# switching back to normal screen, for compatibility with applications
17444# which use xterm (reported by Manoj Kasichainula <manojk@io.com>).
17445# * modify linux terminfo description to reset color palette (reported
17446# by Telford Tendys <telford@eng.uts.edu.au>).
17447#
17448# 1998/7/4
17449# * merge changes from current XFree86 xterm terminfo descriptions.
17450#
17451# 1998/7/25
17452# * Added minitel1 entries from Alexander Montaron.
17453# * Added qnxt2 from Federico Bianchi.
17454# * Added arm100 terminfo entries from Dave Millen.
17455#
17456# 1998/8/6
17457# * Added ncsa telnet entries from Francesco Potorti
17458#
17459# 1998/8/15
17460# * modify ncsa telnet entry to reflect color, other capabilities based on
17461# examination of the source code - T.Dickey.
17462#
17463# 1998/8/22
17464# * Corrected some erroneous \\'s to \ (eterm, osborne) - TD.
17465#
17466# 1998/8/29
17467# * Added Francesco Potorti's tuned Wyse 99 entries.
17468# * dtterm enacs correction from Alexander V. Lukyanov.
17469# * Add ncsa-ns, ncsa-m-ns and ncsa-m entries from esr version.
17470# * correct a typo in icl6404 entry.
17471# * add xtermm and xtermc
17472#
17473# 1998/9/26
17474# * format most %'char' sequences to %{number}
17475# * adapt IBM AIX 3.2.5 terminfo - T.Dickey
17476# * merge Data General terminfo from Hasufin <hasufin@vidnet.net> - TD
17477#
17478# 1998/10/10
17479# * update xterm-xfree86 to current (patch 84), for is2/rs2 changes - TD
17480# * correct initialization string in xterm-r5, add misc other features
17481# to correspond with xterm patch 84 - TD
17482#
17483# 1998/12/19
17484# * update xterm-xfree86 to current (patch 90), smcur/rmcur changes - TD
17485# * add Mathew Vernon's mach console entries
17486# * corrections for ncsa function-keys (report by Larry Virden)
17487#
17488# 1998/12/19
17489# * change linux to use ncv#2, since underline does not work with color - TD
17490#
17491# 1999/1/9
17492# * add kbt to iris-ansi, document other shift/control functionkeys - TD
17493# * correct iris-ansi and iris-ansi-ap with respect to normal vs keypad
17494# application modes, change kent to use the correct keypad code - TD
17495#
17496# 1999/1/10
17497# * add entry for Tera Term - TD
17498#
17499# 1999/1/23
17500# * minor improvements for teraterm entry - TD
17501# * rename several entries used by BSDI: bsdos to bsdos-pc-nobold,
17502# and bsdos-bold to bsdos-pc (Jeffrey C Honig)
17503#
17504# 1999/2/20
17505# * resolve ambiguity of kend/kll/kslt and khome/kfnd/kich1 strings in
17506# xterm and ncsa entries by removing the unneeded ones. Note that
17507# some entries will return kend & khome versus kslt and kfnd, for
17508# PC-style keyboards versus strict vt220 compatiblity - TD
17509#
17510# 1999/3/13
17511# * adjust xterm-xfree86 khome/kend to match default PC-style keyboard
17512# tables - TD
17513# * add 'crt' entry - TD
17514# * correct typos in 'linux-c' entry - TD
17515#
17516# 1999/3/14
17517# * update entries for BSD/OS console to use klone+sgr and klone+color
17518# (Jeffrey C Honig)
17519#
17520# 1999/3/27
17521# * adjust xterm-xfree86 miscellaneous keypad keys, as per patch #94 - TD.
17522#
17523# 1999/4/10
17524# * add linux-lat, from RedHat patches to ncurses 4.2
17525#
17526# 1999/4/17
17527# * add complete set of default function-key definitions for scoansi - TD.
17528#
17529# 1999/7/3
17530# * add cnorm, cvvis for Linux 2.2 kernels
17531#
17532# 1999/7/24
17533# * add kmous to xterm-r5 -TD
17534# * correct entries xterm+sl and xterm+sl-twm, which were missing the
17535# parent "use" clause -TD
17536#
17537# 1999/7/31
17538# * corrected cnorm, added el1 in 'screen' description -TD
17539#
17540# 1999/8/14
17541# * add ms-vt100 -TD
17542#
17543# 1999/8/21
17544# * corrections to beterm entry -TD
17545#
17546# 1999/8/28
17547# * add cygwin entry -TD
17548#
17549# 1999/9/4
17550# * minor corrections for beterm entry -TD
17551#
17552# 1999/9/18
17553# * add acsc string to HP 70092 terminfo entry -Joerg Wunsch
17554#
17555# 1999/9/25
17556# * add amiga-8bit entry
17557# * add console entries from NetBSD: ofcons, wsvt25, wsvt25m, rcons,
17558# rcons-color, based on
17559# ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/share/termcap/termcap.src
17560# * add alias for iris-ansi-net
17561#
17562# 1999/10/2
17563# * corrected scoansi entry's acsc, some function keys, add color -TD
17564#
17565# 1999/10/23
17566# * add cnorm, cvvis to cons25w, and modify ncv to add 'dim' -TD
17567# * reorder ncsa entries to make ncsa-vt220 use the alternate function
17568# key mapping, leaving Potorti's entries more like he named them -TD
17569# * remove enter/exit am-mode from cygwin -TD
17570#
17571# 1999/10/30
17572# * correct typos in several entries (missing '[' from CSI):
17573# mgr-sun, ncsa-m, vt320-k3, att505, avt-ns, as well as smir/rmir
17574# strings for avt-ns -TD
17575# * add 'dim' to ncv mask for linux (report by Klaus Weide).
17576#
17577# 1999/11/27
17578# * correct kf1-kf4 in xterm-r6 which were vt100-style PF1-PF4 -TD
17579# * add hts to xterm-r6, and u6-u9 to xterm-r5 -TD
17580# * add xterm-88color and xterm-256color -TD
17581#
17582# 1999/12/4
17583# * add "obsolete" termcap strings -TD
17584# * add kvt and gnome entries -TD
17585#
17586# 1999/12/11
17587# * correct cup string for regent100 -TD
17588#
17589# 2000/1/1
17590# * update mach, add mach-color based on Debian diffs for ncurses 5.0 -TD
17591# * add entries for xterm-hp, xterm-vt220, xterm-vt52 and xterm-noapp -TD
17592# * change OTrs capabilities to rs2 -TD
17593# * add obsolete and extended capabilities to 'screen' -TD
17594#
17595# 2000/1/5
17596# * remove kf0 from rxvt, vt520, vt525 and ibm5151 since it conflicts
17597# with kf10 -TD
17598# * updated xterm-xf86-v40, making kdch1 correspond to vt220 'Remove',
17599# and adding kcbt -TD
17600#
17601# 2000/1/12
17602# * remove incorrect khome/kend from xterm-xf86-v333, which was based on
17603# nonstandard resource settings -TD
17604#
17605# 2000/2/26
17606# * minor fixes for xterm-*, based on Debian #58530 -TD
17607#
17608# 2000/3/4
17609# * add several terminal types from esr's "11.0", as well as comments.
17610# bq300*, dku7102-old, dku7202, hft, lft, pcmw, pmcons, tws*, vip*,
17611# vt220-8bit, vt220-old, wy85-8bit
17612#
17613# 2000/3/18
17614# * add several terminal types from esr's "11.0.1" (ansi-*).
17615# * update OTxx capabilities for changes on 2000/3/4.
17616# * revert part of vt220 change (request by Todd C Miller for OpenBSD)
17617#
17618# 2000/3/26
17619# * move screen's AX extension to ecma+color, modify several entries to
17620# use that, adjusting ncv as needed -TD
17621#
17622# 2000/4/8
17623# * add bsdos-pc-m, bsdos-pc-mono (Jeffrey C Honig)
17624# * correct spelling error in entry name: bq300-rv was given as bg300-rv
17625# in esr's version.
17626#
17627# 2000/4/15
17628# * add cud, ech, etc., to beterm based on feedback from Rico Tudor -TD
17629# * correct color definition for ibm3164, make minor changes to other
17630# IBM terminal definitions based on recent terminfo descriptions -TD
17631#
17632# 2000/4/22
17633# * add mgterm, from NetBSD -TD
17634# * add alias sun-cgsix for sun-ss5 as per NetBSD
17635# * change cons25w to use rs2 for reset rather than rs1 -TD
17636# * add rc/sc to aixterm based on manpage -TD
17637#
17638# 2000/5/13
17639# * remove ncv from xterm-16color, xterm-256 color
17640#
17641# 2000/6/10
17642# * add kmous capability to linux to use Joerg Schoen's gpm patch.
17643#
17644# 2000/7/1
17645# * add Eterm (Michael Jennings)
17646#
17647# 2000-07-18
17648# * add amiga-vnc entry.
17649#
17650# 2000-08-12
17651# * correct description of Top Gun Telnet.
17652# * add kterm-color
17653#
17654# 2000-08-26
17655# * add qansi* entries from QNX ftp site.
17656#
17657# 2000-09-16
17658# * add Matrix Orbital entries by Eric Z. Ayers).
17659# * add xterm-basic, xterm-sco entries, update related entries to XFree86
17660# 4.0.1c -TD
17661#
17662# 2000-09-17
17663# * add S0, E0 extensions to screen's entry -TD
17664#
17665# 2000-09-23
17666# * several corrections based on tic's new parameter-checking code -TD
17667# * modify xterm-r6 and similar rs2 sequences which had \E7...\E8
17668# bracketing sequences that reset video attributes (\E8 would restore
17669# them) -TD
17670#
17671# 2000-11-11
17672# * rename cygwin to cygwinB19, adapt newer entry from Earnie Boyd -TD
17673#
17674# 2000-12-16
17675# * improved scoansi, based on SCO man-page, and testing console,
17676# scoterm with tack -TD
17677#
17678# 2001-01-27
17679# * modify kterm to use acsc via SCS controls.
17680#
17681# 2001-02-10
17682# * screen 3.9.8 allows xterm mouse controls to pass-through
17683#
17684# 2001-03-11
17685# * remove spurious "%|" from some xterm entries.
17686#
17687# 2001-03-31
17688# * modify 'screen' khome/kend to match screen 3.09.08
17689# * add examples of 'screen' customization (screen.xterm-xfree86,
17690# screen.xterm-r6, screen.teraterm) -TD
17691#
17692# 2001-04-14
17693# * correct definitions of shifted editing keys for xterm-xfree86 -TD
17694# * add "Apple_Terminal" entries -Benjamin Sittler
17695# * remove time-delays from "Apple_Terminal" entries -TD
17696# * make sgr entries time-delays consistent with individual caps -TD
17697#
17698# 2001-05-05
17699# * corrected/updated screen.xterm-xfree86
17700#
17701# 2001-05-19
17702# * ELKS descriptions, from Federico Bianchi
17703# * add u6 (CSR) to Eterm (Michael Jennings).
17704#
17705# 2001-07-21
17706# * renamed "Apple_Terminal" entries to "nsterm" to work with Solaris's
17707# tic which handles names no longer than 14 characters. Add
17708# corresponding descriptions for the Darwin PowerPC console named
17709# "xnuppc" -Benjamin Sittler
17710#
17711# 2001-09-01
17712# * change kbs in mach entries to ^? (Marcus Brinkmann).
17713#
17714# 2001-11-17
17715# * add "putty" entry -TD
17716# * updated "Apple_Terminal" entries -Benjamin Sittler
17717#
17718# 2001-11-24
17719# * add ms-vt100-color entry -TD
17720# * add "konsole" entries -TD
17721#
17722# 2001-12-08
17723# * update gnome entry to Redhat 7.2 -TD
17724#
17725# The following sets edit modes for GNU EMACS.
17726# Local Variables:
17727# fill-prefix:"\t"
17728# fill-column:75
17729# comment-column:0
17730# comment-start-skip:"^#+"
17731# comment-start:"# "
17732# compile-command:"tic -c terminfo.master"
17733# End:
17734######## SHANTIH! SHANTIH! SHANTIH!
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 375b5e332a3..97421befeb3 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,8 @@
12008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * etags.c:
4 * emacsclient.c: Remove VMS support.
5
12008-07-27 Dan Nicolaescu <dann@ics.uci.edu> 62008-07-27 Dan Nicolaescu <dann@ics.uci.edu>
2 7
3 Remove support for Mac Carbon. 8 Remove support for Mac Carbon.
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 279dd40b864..8f0231db540 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -64,15 +64,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
64#include <unistd.h> 64#include <unistd.h>
65#endif 65#endif
66 66
67#ifdef VMS
68# include "vms-pwd.h"
69#else /* not VMS */
70#ifdef WINDOWSNT 67#ifdef WINDOWSNT
71# include <io.h> 68# include <io.h>
72#else /* not WINDOWSNT */ 69#else /* not WINDOWSNT */
73# include <pwd.h> 70# include <pwd.h>
74#endif /* not WINDOWSNT */ 71#endif /* not WINDOWSNT */
75#endif /* not VMS */
76#include <sys/stat.h> 72#include <sys/stat.h>
77 73
78#include <signal.h> 74#include <signal.h>
diff --git a/lib-src/etags.c b/lib-src/etags.c
index f577c751a28..56a84d6e0de 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -172,13 +172,8 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38";
172 extern void exit __P((int)); 172 extern void exit __P((int));
173 extern void free __P((void *)); 173 extern void free __P((void *));
174 extern void *memmove __P((void *, const void *, unsigned long)); 174 extern void *memmove __P((void *, const void *, unsigned long));
175# ifdef VMS 175# define EXIT_SUCCESS 0
176# define EXIT_SUCCESS 1 176# define EXIT_FAILURE 1
177# define EXIT_FAILURE 0
178# else /* no VMS */
179# define EXIT_SUCCESS 0
180# define EXIT_FAILURE 1
181# endif
182# endif 177# endif
183#endif /* !WINDOWSNT */ 178#endif /* !WINDOWSNT */
184 179
@@ -1094,131 +1089,6 @@ Relative ones are stored relative to the output file's directory.\n");
1094} 1089}
1095 1090
1096 1091
1097#ifdef VMS /* VMS specific functions */
1098
1099#define EOS '\0'
1100
1101/* This is a BUG! ANY arbitrary limit is a BUG!
1102 Won't someone please fix this? */
1103#define MAX_FILE_SPEC_LEN 255
1104typedef struct {
1105 short curlen;
1106 char body[MAX_FILE_SPEC_LEN + 1];
1107} vspec;
1108
1109/*
1110 v1.05 nmm 26-Jun-86 fn_exp - expand specification of list of file names
1111 returning in each successive call the next file name matching the input
1112 spec. The function expects that each in_spec passed
1113 to it will be processed to completion; in particular, up to and
1114 including the call following that in which the last matching name
1115 is returned, the function ignores the value of in_spec, and will
1116 only start processing a new spec with the following call.
1117 If an error occurs, on return out_spec contains the value
1118 of in_spec when the error occurred.
1119
1120 With each successive file name returned in out_spec, the
1121 function's return value is one. When there are no more matching
1122 names the function returns zero. If on the first call no file
1123 matches in_spec, or there is any other error, -1 is returned.
1124*/
1125
1126#include <rmsdef.h>
1127#include <descrip.h>
1128#define OUTSIZE MAX_FILE_SPEC_LEN
1129static short
1130fn_exp (out, in)
1131 vspec *out;
1132 char *in;
1133{
1134 static long context = 0;
1135 static struct dsc$descriptor_s o;
1136 static struct dsc$descriptor_s i;
1137 static bool pass1 = TRUE;
1138 long status;
1139 short retval;
1140
1141 if (pass1)
1142 {
1143 pass1 = FALSE;
1144 o.dsc$a_pointer = (char *) out;
1145 o.dsc$w_length = (short)OUTSIZE;
1146 i.dsc$a_pointer = in;
1147 i.dsc$w_length = (short)strlen(in);
1148 i.dsc$b_dtype = DSC$K_DTYPE_T;
1149 i.dsc$b_class = DSC$K_CLASS_S;
1150 o.dsc$b_dtype = DSC$K_DTYPE_VT;
1151 o.dsc$b_class = DSC$K_CLASS_VS;
1152 }
1153 if ((status = lib$find_file(&i, &o, &context, 0, 0)) == RMS$_NORMAL)
1154 {
1155 out->body[out->curlen] = EOS;
1156 return 1;
1157 }
1158 else if (status == RMS$_NMF)
1159 retval = 0;
1160 else
1161 {
1162 strcpy(out->body, in);
1163 retval = -1;
1164 }
1165 lib$find_file_end(&context);
1166 pass1 = TRUE;
1167 return retval;
1168}
1169
1170/*
1171 v1.01 nmm 19-Aug-85 gfnames - return in successive calls the
1172 name of each file specified by the provided arg expanding wildcards.
1173*/
1174static char *
1175gfnames (arg, p_error)
1176 char *arg;
1177 bool *p_error;
1178{
1179 static vspec filename = {MAX_FILE_SPEC_LEN, "\0"};
1180
1181 switch (fn_exp (&filename, arg))
1182 {
1183 case 1:
1184 *p_error = FALSE;
1185 return filename.body;
1186 case 0:
1187 *p_error = FALSE;
1188 return NULL;
1189 default:
1190 *p_error = TRUE;
1191 return filename.body;
1192 }
1193}
1194
1195#ifndef OLD /* Newer versions of VMS do provide `system'. */
1196system (cmd)
1197 char *cmd;
1198{
1199 error ("%s", "system() function not implemented under VMS");
1200}
1201#endif
1202
1203#define VERSION_DELIM ';'
1204char *massage_name (s)
1205 char *s;
1206{
1207 char *start = s;
1208
1209 for ( ; *s; s++)
1210 if (*s == VERSION_DELIM)
1211 {
1212 *s = EOS;
1213 break;
1214 }
1215 else
1216 *s = lowcase (*s);
1217 return start;
1218}
1219#endif /* VMS */
1220
1221
1222int 1092int
1223main (argc, argv) 1093main (argc, argv)
1224 int argc; 1094 int argc;
@@ -1231,9 +1101,6 @@ main (argc, argv)
1231 int current_arg, file_count; 1101 int current_arg, file_count;
1232 linebuffer filename_lb; 1102 linebuffer filename_lb;
1233 bool help_asked = FALSE; 1103 bool help_asked = FALSE;
1234#ifdef VMS
1235 bool got_err;
1236#endif
1237 char *optstring; 1104 char *optstring;
1238 int opt; 1105 int opt;
1239 1106
@@ -1441,21 +1308,7 @@ main (argc, argv)
1441 analyse_regex (argbuffer[i].what); 1308 analyse_regex (argbuffer[i].what);
1442 break; 1309 break;
1443 case at_filename: 1310 case at_filename:
1444#ifdef VMS
1445 while ((this_file = gfnames (argbuffer[i].what, &got_err)) != NULL)
1446 {
1447 if (got_err)
1448 {
1449 error ("can't find file %s\n", this_file);
1450 argc--, argv++;
1451 }
1452 else
1453 {
1454 this_file = massage_name (this_file);
1455 }
1456#else
1457 this_file = argbuffer[i].what; 1311 this_file = argbuffer[i].what;
1458#endif
1459 /* Input file named "-" means read file names from stdin 1312 /* Input file named "-" means read file names from stdin
1460 (one per line) and use them. */ 1313 (one per line) and use them. */
1461 if (streq (this_file, "-")) 1314 if (streq (this_file, "-"))
@@ -1468,9 +1321,6 @@ main (argc, argv)
1468 } 1321 }
1469 else 1322 else
1470 process_file_name (this_file, lang); 1323 process_file_name (this_file, lang);
1471#ifdef VMS
1472 }
1473#endif
1474 break; 1324 break;
1475 case at_stdin: 1325 case at_stdin:
1476 this_file = argbuffer[i].what; 1326 this_file = argbuffer[i].what;
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 893c919df4b..9bf7870786d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,42 @@
12008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * textmodes/texinfmt.el:
4 * nxml/nxml-enc.el:
5 * mail/feedmail.el:
6 * international/mule.el:
7 * international/latexenc.el:
8 * emulation/viper-util.el:
9 * emulation/viper-init.el:
10 * emulation/viper-ex.el:
11 * emacs-lisp/bytecomp.el:
12 * version.el:
13 * subr.el:
14 * startup.el:
15 * sort.el:
16 * shadowfile.el:
17 * recentf.el:
18 * printing.el:
19 * paths.el:
20 * minibuffer.el:
21 * ls-lisp.el:
22 * loadup.el:
23 * hippie-exp.el:
24 * finder.el:
25 * files.el:
26 * ediff-util.el:
27 * ediff-ptch.el:
28 * ediff-init.el:
29 * ediff-diff.el:
30 * dired.el:
31 * dired-aux.el:
32 * cus-edit.el:
33 * bindings.el:
34 * arc-mode.el:
35 * add-log.el: Remove VMS support.
36 * obsolete/vmsproc.el:
37 * obsolete/vms-pmail.el:
38 * obsolete/vms-patch.el: Remove file.
39
12008-07-31 Alan Mackenzie <acm@muc.de> 402008-07-31 Alan Mackenzie <acm@muc.de>
2 41
3 * progmodes/cc-mode.el (c-before-hack-hook): New function 42 * progmodes/cc-mode.el (c-before-hack-hook): New function
diff --git a/lisp/add-log.el b/lisp/add-log.el
index e344c0f5dd1..d0a21e8286e 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -556,9 +556,7 @@ If t, use universal time.")
556(defun change-log-name () 556(defun change-log-name ()
557 "Return (system-dependent) default name for a change log file." 557 "Return (system-dependent) default name for a change log file."
558 (or change-log-default-name 558 (or change-log-default-name
559 (if (eq system-type 'vax-vms) 559 "ChangeLog"))
560 "$CHANGE_LOG$.TXT"
561 "ChangeLog")))
562 560
563(defun add-log-edit-prev-comment (arg) 561(defun add-log-edit-prev-comment (arg)
564 "Cycle backward through Log-Edit mode comment history. 562 "Cycle backward through Log-Edit mode comment history.
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index 83ffe65c970..ddbedeba12c 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -1731,7 +1731,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
1731 str archive-file-name-coding-system))) 1731 str archive-file-name-coding-system)))
1732 (isdir (and (= ucsize 0) 1732 (isdir (and (= ucsize 0)
1733 (string= (file-name-nondirectory efnname) ""))) 1733 (string= (file-name-nondirectory efnname) "")))
1734 (mode (cond ((memq creator '(2 3)) ; Unix + VMS 1734 (mode (cond ((memq creator '(2 3)) ; Unix
1735 (archive-l-e (+ p 40) 2)) 1735 (archive-l-e (+ p 40) 2))
1736 ((memq creator '(0 5 6 7 10 11 15)) ; Dos etc. 1736 ((memq creator '(0 5 6 7 10 11 15)) ; Dos etc.
1737 (logior ?\444 1737 (logior ?\444
@@ -1800,7 +1800,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
1800 (oldmode (aref fil 3)) 1800 (oldmode (aref fil 3))
1801 (newval (archive-calc-mode oldmode newmode t)) 1801 (newval (archive-calc-mode oldmode newmode t))
1802 (inhibit-read-only t)) 1802 (inhibit-read-only t))
1803 (cond ((memq creator '(2 3)) ; Unix + VMS 1803 (cond ((memq creator '(2 3)) ; Unix
1804 (goto-char (+ p 40)) 1804 (goto-char (+ p 40))
1805 (delete-char 2) 1805 (delete-char 2)
1806 (insert-unibyte (logand newval 255) (lsh newval -8))) 1806 (insert-unibyte (logand newval 255) (lsh newval -8)))
diff --git a/lisp/bindings.el b/lisp/bindings.el
index c09e56ae9a2..559c3a35751 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -583,10 +583,6 @@ is okay. See `mode-line-format'.")
583 (cond ((memq system-type '(ms-dos windows-nt)) 583 (cond ((memq system-type '(ms-dos windows-nt))
584 '(".o" "~" ".bin" ".bak" ".obj" ".map" ".ico" ".pif" ".lnk" 584 '(".o" "~" ".bin" ".bak" ".obj" ".map" ".ico" ".pif" ".lnk"
585 ".a" ".ln" ".blg" ".bbl" ".dll" ".drv" ".vxd" ".386")) 585 ".a" ".ln" ".blg" ".bbl" ".dll" ".drv" ".vxd" ".386"))
586 ((eq system-type 'vax-vms)
587 '(".obj" ".exe" ".bin" ".lbin" ".sbin"
588 ".brn" ".rnt" ".lni"
589 ".olb" ".tlb" ".mlb" ".hlb"))
590 (t 586 (t
591 '(".o" "~" ".bin" ".lbin" ".so" 587 '(".o" "~" ".bin" ".lbin" ".so"
592 ".a" ".ln" ".blg" ".bbl"))) 588 ".a" ".ln" ".blg" ".bbl")))
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 80a6ee5ad9c..e39a50f3a8e 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -292,10 +292,6 @@
292 "Front-ends/assistants for, or emulators of, UNIX features." 292 "Front-ends/assistants for, or emulators of, UNIX features."
293 :group 'environment) 293 :group 'environment)
294 294
295(defgroup vms nil
296 "Support code for vms."
297 :group 'environment)
298
299(defgroup i18n nil 295(defgroup i18n nil
300 "Internationalization and alternate character-set support." 296 "Internationalization and alternate character-set support."
301 :link '(custom-manual "(emacs)International") 297 :link '(custom-manual "(emacs)International")
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 0d351243548..5feed9b2191 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1108,7 +1108,6 @@ See Info node `(emacs)Subdir switches' for more details."
1108 ;; or wildcard lines. 1108 ;; or wildcard lines.
1109 ;; Important: never moves into the next subdir. 1109 ;; Important: never moves into the next subdir.
1110 ;; DIR is assumed to be unhidden. 1110 ;; DIR is assumed to be unhidden.
1111 ;; Will probably be redefined for VMS etc.
1112 (save-excursion 1111 (save-excursion
1113 (or (dired-goto-subdir dir) (error "This cannot happen")) 1112 (or (dired-goto-subdir dir) (error "This cannot happen"))
1114 (forward-line 1) 1113 (forward-line 1)
@@ -1936,7 +1935,6 @@ This function takes some pains to conform to `ls -lR' output."
1936 (save-excursion (dired-mark-remembered mark-alist)) 1935 (save-excursion (dired-mark-remembered mark-alist))
1937 (restore-buffer-modified-p modflag))) 1936 (restore-buffer-modified-p modflag)))
1938 1937
1939;; This is a separate function for dired-vms.
1940(defun dired-insert-subdir-validate (dirname &optional switches) 1938(defun dired-insert-subdir-validate (dirname &optional switches)
1941 ;; Check that it is valid to insert DIRNAME with SWITCHES. 1939 ;; Check that it is valid to insert DIRNAME with SWITCHES.
1942 ;; Signal an error if invalid (e.g. user typed `i' on `..'). 1940 ;; Signal an error if invalid (e.g. user typed `i' on `..').
diff --git a/lisp/dired.el b/lisp/dired.el
index afa06d11edd..06a11a6b478 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -719,7 +719,6 @@ for a remote directory. This feature is used by Auto Revert Mode."
719 (file-readable-p dirname) 719 (file-readable-p dirname)
720 (dired-directory-changed-p dirname)))) 720 (dired-directory-changed-p dirname))))
721 721
722;; Separate function from dired-noselect for the sake of dired-vms.el.
723(defun dired-internal-noselect (dir-or-list &optional switches mode) 722(defun dired-internal-noselect (dir-or-list &optional switches mode)
724 ;; If there is an existing dired buffer for DIRNAME, just leave 723 ;; If there is an existing dired buffer for DIRNAME, just leave
725 ;; buffer as it is (don't even call dired-revert). 724 ;; buffer as it is (don't even call dired-revert).
@@ -1987,8 +1986,7 @@ Optional arg GLOBAL means to replace all matches."
1987 ;;"Convert FILE (a file name relative to DIR) to an absolute file name." 1986 ;;"Convert FILE (a file name relative to DIR) to an absolute file name."
1988 ;; We can't always use expand-file-name as this would get rid of `.' 1987 ;; We can't always use expand-file-name as this would get rid of `.'
1989 ;; or expand in / instead default-directory if DIR=="". 1988 ;; or expand in / instead default-directory if DIR=="".
1990 ;; This should be good enough for ange-ftp, but might easily be 1989 ;; This should be good enough for ange-ftp.
1991 ;; redefined (for VMS?).
1992 ;; It should be reasonably fast, though, as it is called in 1990 ;; It should be reasonably fast, though, as it is called in
1993 ;; dired-get-filename. 1991 ;; dired-get-filename.
1994 (concat (or dir default-directory) file)) 1992 (concat (or dir default-directory) file))
@@ -2554,7 +2552,7 @@ non-empty directories is allowed."
2554(defun dired-internal-do-deletions (l arg) 2552(defun dired-internal-do-deletions (l arg)
2555 ;; L is an alist of files to delete, with their buffer positions. 2553 ;; L is an alist of files to delete, with their buffer positions.
2556 ;; ARG is the prefix arg. 2554 ;; ARG is the prefix arg.
2557 ;; Filenames are absolute (VMS needs this for logical search paths). 2555 ;; Filenames are absolute.
2558 ;; (car L) *must* be the *last* (bottommost) file in the dired buffer. 2556 ;; (car L) *must* be the *last* (bottommost) file in the dired buffer.
2559 ;; That way as changes are made in the buffer they do not shift the 2557 ;; That way as changes are made in the buffer they do not shift the
2560 ;; lines still to be changed, so the (point) values in L stay valid. 2558 ;; lines still to be changed, so the (point) values in L stay valid.
@@ -3442,9 +3440,6 @@ Ask means pop up a menu for the user to select one of copy, move or link."
3442 '(dired-mode . dired-restore-desktop-buffer)) 3440 '(dired-mode . dired-restore-desktop-buffer))
3443 3441
3444 3442
3445(if (eq system-type 'vax-vms)
3446 (load "dired-vms"))
3447
3448(provide 'dired) 3443(provide 'dired)
3449 3444
3450(run-hooks 'dired-load-hook) ; for your customizations 3445(run-hooks 'dired-load-hook) ; for your customizations
diff --git a/lisp/ediff-diff.el b/lisp/ediff-diff.el
index 842be4787d3..ec9bf24c493 100644
--- a/lisp/ediff-diff.el
+++ b/lisp/ediff-diff.el
@@ -56,7 +56,6 @@ Must produce output compatible with Unix's diff3 program."
56 (cond ((eq system-type 'emx) "cmd") ; OS/2 56 (cond ((eq system-type 'emx) "cmd") ; OS/2
57 ((memq system-type '(ms-dos windows-nt windows-95)) 57 ((memq system-type '(ms-dos windows-nt windows-95))
58 shell-file-name) ; no standard name on MS-DOS 58 shell-file-name) ; no standard name on MS-DOS
59 ((memq system-type '(vax-vms axp-vms)) "*dcl*") ; VMS
60 (t "sh")) ; UNIX 59 (t "sh")) ; UNIX
61 "*The shell used to run diff and patch. 60 "*The shell used to run diff and patch.
62If user's .profile or .cshrc files are set up correctly, any shell 61If user's .profile or .cshrc files are set up correctly, any shell
@@ -336,9 +335,7 @@ one optional arguments, diff-number to refine.")
336 (erase-buffer) 335 (erase-buffer)
337 (insert (ediff-with-current-buffer diff-buff (buffer-string))) 336 (insert (ediff-with-current-buffer diff-buff (buffer-string)))
338 (goto-char (point-min)) 337 (goto-char (point-min))
339 (delete-matching-lines ok-regexp) 338 (delete-matching-lines ok-regexp))
340 (if (memq system-type '(vax-vms axp-vms))
341 (delete-matching-lines "^$")))
342 ;; If diff reports errors, show them then quit. 339 ;; If diff reports errors, show them then quit.
343 (if (/= 0 (ediff-with-current-buffer ediff-error-buffer (buffer-size))) 340 (if (/= 0 (ediff-with-current-buffer ediff-error-buffer (buffer-size)))
344 (let ((ctl-buf ediff-control-buffer) 341 (let ((ctl-buf ediff-control-buffer)
diff --git a/lisp/ediff-init.el b/lisp/ediff-init.el
index ba9aeecffcc..a3dd91b2fce 100644
--- a/lisp/ediff-init.el
+++ b/lisp/ediff-init.el
@@ -1400,8 +1400,6 @@ Instead, C-h would jump to previous difference."
1400;;; (file-name-as-directory 1400;;; (file-name-as-directory
1401;;; (cond ((memq system-type '(ms-dos windows-nt)) 1401;;; (cond ((memq system-type '(ms-dos windows-nt))
1402;;; (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp")) 1402;;; (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp"))
1403;;; ((memq system-type '(vax-vms axp-vms))
1404;;; (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "SYS$SCRATCH:"))
1405;;; (t 1403;;; (t
1406;;; (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp")))) 1404;;; (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp"))))
1407 "*Prefix to put on Ediff temporary file names. 1405 "*Prefix to put on Ediff temporary file names.
diff --git a/lisp/ediff-ptch.el b/lisp/ediff-ptch.el
index 2135982e67d..ce6e88611be 100644
--- a/lisp/ediff-ptch.el
+++ b/lisp/ediff-ptch.el
@@ -61,7 +61,7 @@ case the default value for this variable should be changed."
61 61
62;; the default backup extension 62;; the default backup extension
63(defconst ediff-default-backup-extension 63(defconst ediff-default-backup-extension
64 (if (memq system-type '(vax-vms axp-vms emx ms-dos)) 64 (if (memq system-type '(emx ms-dos))
65 "_orig" ".orig")) 65 "_orig" ".orig"))
66 66
67 67
diff --git a/lisp/ediff-util.el b/lisp/ediff-util.el
index 9aef531b39a..8705c243d34 100644
--- a/lisp/ediff-util.el
+++ b/lisp/ediff-util.el
@@ -3217,7 +3217,7 @@ Hit \\[ediff-recenter] to reset the windows afterward."
3217;; Quote metacharacters (using \) when executing diff in Unix, but not in 3217;; Quote metacharacters (using \) when executing diff in Unix, but not in
3218;; EMX OS/2 3218;; EMX OS/2
3219;;(defun ediff-protect-metachars (str) 3219;;(defun ediff-protect-metachars (str)
3220;; (or (memq system-type '(emx vax-vms axp-vms)) 3220;; (or (memq system-type '(emx))
3221;; (let ((limit 0)) 3221;; (let ((limit 0))
3222;; (while (string-match ediff-metachars str limit) 3222;; (while (string-match ediff-metachars str limit)
3223;; (setq str (concat (substring str 0 (match-beginning 0)) 3223;; (setq str (concat (substring str 0 (match-beginning 0))
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 5bb2d760980..3de90acf8af 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -197,9 +197,7 @@
197 "Emacs Lisp byte-compiler." 197 "Emacs Lisp byte-compiler."
198 :group 'lisp) 198 :group 'lisp)
199 199
200(defcustom emacs-lisp-file-regexp (if (eq system-type 'vax-vms) 200(defcustom emacs-lisp-file-regexp "\\.el$"
201 "\\.EL\\(;[0-9]+\\)?$"
202 "\\.el$")
203 "*Regexp which matches Emacs Lisp source files. 201 "*Regexp which matches Emacs Lisp source files.
204You may want to redefine the function `byte-compile-dest-file' 202You may want to redefine the function `byte-compile-dest-file'
205if you change this variable." 203if you change this variable."
@@ -225,9 +223,7 @@ If FILENAME matches `emacs-lisp-file-regexp' (by default, files
225with the extension `.el'), add `c' to it; otherwise add `.elc'." 223with the extension `.el'), add `c' to it; otherwise add `.elc'."
226 (setq filename (byte-compiler-base-file-name filename)) 224 (setq filename (byte-compiler-base-file-name filename))
227 (setq filename (file-name-sans-versions filename)) 225 (setq filename (file-name-sans-versions filename))
228 (cond ((eq system-type 'vax-vms) 226 (cond ((string-match emacs-lisp-file-regexp filename)
229 (concat (substring filename 0 (string-match ";" filename)) "c"))
230 ((string-match emacs-lisp-file-regexp filename)
231 (concat (substring filename 0 (match-beginning 0)) ".elc")) 227 (concat (substring filename 0 (match-beginning 0)) ".elc"))
232 (t (concat filename ".elc"))))) 228 (t (concat filename ".elc")))))
233 229
@@ -1788,7 +1784,6 @@ The value is non-nil if there were no errors, nil if errors."
1788 (with-current-buffer output-buffer 1784 (with-current-buffer output-buffer
1789 (goto-char (point-max)) 1785 (goto-char (point-max))
1790 (insert "\n") ; aaah, unix. 1786 (insert "\n") ; aaah, unix.
1791 (let ((vms-stmlf-recfm t))
1792 (if (file-writable-p target-file) 1787 (if (file-writable-p target-file)
1793 ;; We must disable any code conversion here. 1788 ;; We must disable any code conversion here.
1794 (let ((coding-system-for-write 'no-conversion)) 1789 (let ((coding-system-for-write 'no-conversion))
@@ -1808,7 +1803,7 @@ The value is non-nil if there were no errors, nil if errors."
1808 (if (file-exists-p target-file) 1803 (if (file-exists-p target-file)
1809 "cannot overwrite file" 1804 "cannot overwrite file"
1810 "directory not writable or nonexistent") 1805 "directory not writable or nonexistent")
1811 target-file)))) 1806 target-file)))
1812 (kill-buffer (current-buffer))) 1807 (kill-buffer (current-buffer)))
1813 (if (and byte-compile-generate-call-tree 1808 (if (and byte-compile-generate-call-tree
1814 (or (eq t byte-compile-generate-call-tree) 1809 (or (eq t byte-compile-generate-call-tree)
diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el
index b89b321a1fd..75bdadd2d61 100644
--- a/lisp/emulation/viper-ex.el
+++ b/lisp/emulation/viper-ex.el
@@ -331,12 +331,11 @@ Don't put `-c' here, as it is added automatically."
331 (cond (ex-unix-type-shell 'viper-glob-unix-files) 331 (cond (ex-unix-type-shell 'viper-glob-unix-files)
332 ((eq system-type 'emx) 'viper-glob-mswindows-files) ; OS/2 332 ((eq system-type 'emx) 'viper-glob-mswindows-files) ; OS/2
333 (viper-ms-style-os-p 'viper-glob-mswindows-files) ; Microsoft OS 333 (viper-ms-style-os-p 'viper-glob-mswindows-files) ; Microsoft OS
334 (viper-vms-os-p 'viper-glob-unix-files) ; VMS
335 (t 'viper-glob-unix-files) ; presumably UNIX 334 (t 'viper-glob-unix-files) ; presumably UNIX
336 ) 335 )
337 "Expand the file spec containing wildcard symbols. 336 "Expand the file spec containing wildcard symbols.
338The default tries to set this variable to work with Unix, Windows, 337The default tries to set this variable to work with Unix, Windows,
339OS/2, and VMS. 338and OS/2.
340 339
341However, if it doesn't work right for some types of Unix shells or some OS, 340However, if it doesn't work right for some types of Unix shells or some OS,
342the user should supply the appropriate function and set this variable to the 341the user should supply the appropriate function and set this variable to the
diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el
index d1533b3a311..d8eaf253d16 100644
--- a/lisp/emulation/viper-init.el
+++ b/lisp/emulation/viper-init.el
@@ -69,11 +69,6 @@
69 :type 'boolean 69 :type 'boolean
70 :tag "Is it Microsoft-made OS?" 70 :tag "Is it Microsoft-made OS?"
71 :group 'viper-misc) 71 :group 'viper-misc)
72(defcustom viper-vms-os-p (memq system-type '(vax-vms axp-vms))
73 "Tells if Emacs is running under VMS."
74 :type 'boolean
75 :tag "Is it VMS?"
76 :group 'viper-misc)
77 72
78(defcustom viper-suppress-input-method-change-message nil 73(defcustom viper-suppress-input-method-change-message nil
79 "If t, the message notifying about changes in the input method is not displayed. 74 "If t, the message notifying about changes in the input method is not displayed.
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el
index d5e63dd9983..9bb047183dc 100644
--- a/lisp/emulation/viper-util.el
+++ b/lisp/emulation/viper-util.el
@@ -397,11 +397,10 @@ Otherwise return the normal value."
397;;; Support for :e, :r, :w file globbing 397;;; Support for :e, :r, :w file globbing
398 398
399;; Glob the file spec. 399;; Glob the file spec.
400;; This function is designed to work under Unix. It might also work under VMS. 400;; This function is designed to work under Unix.
401(defun viper-glob-unix-files (filespec) 401(defun viper-glob-unix-files (filespec)
402 (let ((gshell 402 (let ((gshell
403 (cond (ex-unix-type-shell shell-file-name) 403 (cond (ex-unix-type-shell shell-file-name)
404 ((memq system-type '(vax-vms axp-vms)) "*dcl*") ; VAX VMS
405 (t "sh"))) ; probably Unix anyway 404 (t "sh"))) ; probably Unix anyway
406 (gshell-options 405 (gshell-options
407 ;; using cond in anticipation of further additions 406 ;; using cond in anticipation of further additions
diff --git a/lisp/files.el b/lisp/files.el
index a26e5cb83cd..1a18a1d1b17 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -70,8 +70,7 @@ the name it is linked to."
70 :group 'abbrev 70 :group 'abbrev
71 :group 'find-file) 71 :group 'find-file)
72 72
73;; Turn off backup files on VMS since it has version numbers. 73(defcustom make-backup-files t
74(defcustom make-backup-files (not (eq system-type 'vax-vms))
75 "Non-nil means make a backup of a file the first time it is saved. 74 "Non-nil means make a backup of a file the first time it is saved.
76This can be done by renaming the file or by copying. 75This can be done by renaming the file or by copying.
77 76
@@ -190,8 +189,6 @@ If the buffer is visiting a new file, the value is nil.")
190 (file-name-as-directory 189 (file-name-as-directory
191 (cond ((memq system-type '(ms-dos windows-nt)) 190 (cond ((memq system-type '(ms-dos windows-nt))
192 (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp")) 191 (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp"))
193 ((memq system-type '(vax-vms axp-vms))
194 (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "SYS$SCRATCH:"))
195 (t 192 (t
196 (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp")))) 193 (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp"))))
197 "The directory for writing temporary files." 194 "The directory for writing temporary files."
@@ -216,7 +213,6 @@ have fast storage with limited space, such as a RAM disk."
216(declare-function dired-unmark "dired" (arg)) 213(declare-function dired-unmark "dired" (arg))
217(declare-function dired-do-flagged-delete "dired" (&optional nomessage)) 214(declare-function dired-do-flagged-delete "dired" (&optional nomessage))
218(declare-function dos-8+3-filename "dos-fns" (filename)) 215(declare-function dos-8+3-filename "dos-fns" (filename))
219(declare-function vms-read-directory "vms-patch" (dirname switches buffer))
220(declare-function view-mode-disable "view" ()) 216(declare-function view-mode-disable "view" ())
221 217
222(defvar file-name-invalid-regexp 218(defvar file-name-invalid-regexp
@@ -625,8 +621,7 @@ Directories are separated by occurrences of `path-separator'
625 "Change current directory to given absolute file name DIR." 621 "Change current directory to given absolute file name DIR."
626 ;; Put the name into directory syntax now, 622 ;; Put the name into directory syntax now,
627 ;; because otherwise expand-file-name may give some bad results. 623 ;; because otherwise expand-file-name may give some bad results.
628 (if (not (eq system-type 'vax-vms)) 624 (setq dir (file-name-as-directory dir))
629 (setq dir (file-name-as-directory dir)))
630 (setq dir (abbreviate-file-name (expand-file-name dir))) 625 (setq dir (abbreviate-file-name (expand-file-name dir)))
631 (if (not (file-directory-p dir)) 626 (if (not (file-directory-p dir))
632 (if (file-exists-p dir) 627 (if (file-exists-p dir)
@@ -1461,11 +1456,7 @@ home directory is a root directory) and removes automounter prefixes
1461 filename))) 1456 filename)))
1462 1457
1463(defcustom find-file-not-true-dirname-list nil 1458(defcustom find-file-not-true-dirname-list nil
1464 "List of logical names for which visiting shouldn't save the true dirname. 1459 "List of logical names for which visiting shouldn't save the true dirname."
1465On VMS, when you visit a file using a logical name that searches a path,
1466you may or may not want the visited file name to record the specific
1467directory where the file was found. If you *do not* want that, add the logical
1468name to this list as a string."
1469 :type '(repeat (string :tag "Name")) 1460 :type '(repeat (string :tag "Name"))
1470 :group 'find-file) 1461 :group 'find-file)
1471 1462
@@ -1765,15 +1756,6 @@ Do you want to revisit the file normally now? ")
1765 (setq buffer-file-truename 1756 (setq buffer-file-truename
1766 (abbreviate-file-name (file-truename buffer-file-name)))) 1757 (abbreviate-file-name (file-truename buffer-file-name))))
1767 (setq buffer-file-number number) 1758 (setq buffer-file-number number)
1768 ;; On VMS, we may want to remember which directory in a search list
1769 ;; the file was found in.
1770 (and (eq system-type 'vax-vms)
1771 (let (logical)
1772 (if (string-match ":" (file-name-directory filename))
1773 (setq logical (substring (file-name-directory filename)
1774 0 (match-beginning 0))))
1775 (not (member logical find-file-not-true-dirname-list)))
1776 (setq buffer-file-name buffer-file-truename))
1777 (if find-file-visit-truename 1759 (if find-file-visit-truename
1778 (setq buffer-file-name (expand-file-name buffer-file-truename))) 1760 (setq buffer-file-name (expand-file-name buffer-file-truename)))
1779 ;; Set buffer's default directory to that of the file. 1761 ;; Set buffer's default directory to that of the file.
@@ -2412,7 +2394,7 @@ we don't actually set it to the same mode the buffer already has."
2412 (while name 2394 (while name
2413 ;; Find first matching alist entry. 2395 ;; Find first matching alist entry.
2414 (setq mode 2396 (setq mode
2415 (if (memq system-type '(vax-vms windows-nt cygwin)) 2397 (if (memq system-type '(windows-nt cygwin))
2416 ;; System is case-insensitive. 2398 ;; System is case-insensitive.
2417 (let ((case-fold-search t)) 2399 (let ((case-fold-search t))
2418 (assoc-default name auto-mode-alist 2400 (assoc-default name auto-mode-alist
@@ -3279,8 +3261,6 @@ the old visited file has been renamed to the new name FILENAME."
3279 (setq buffer-file-name filename) 3261 (setq buffer-file-name filename)
3280 (if filename ; make buffer name reflect filename. 3262 (if filename ; make buffer name reflect filename.
3281 (let ((new-name (file-name-nondirectory buffer-file-name))) 3263 (let ((new-name (file-name-nondirectory buffer-file-name)))
3282 (if (eq system-type 'vax-vms)
3283 (setq new-name (downcase new-name)))
3284 (setq default-directory (file-name-directory buffer-file-name)) 3264 (setq default-directory (file-name-directory buffer-file-name))
3285 ;; If new-name == old-name, renaming would add a spurious <2> 3265 ;; If new-name == old-name, renaming would add a spurious <2>
3286 ;; and it's considered as a feature in rename-buffer. 3266 ;; and it's considered as a feature in rename-buffer.
@@ -3519,22 +3499,11 @@ we do not remove backup version numbers, only true file version numbers."
3519 (if handler 3499 (if handler
3520 (funcall handler 'file-name-sans-versions name keep-backup-version) 3500 (funcall handler 'file-name-sans-versions name keep-backup-version)
3521 (substring name 0 3501 (substring name 0
3522 (if (eq system-type 'vax-vms) 3502 (if keep-backup-version
3523 ;; VMS version number is (a) semicolon, optional 3503 (length name)
3524 ;; sign, zero or more digits or (b) period, option 3504 (or (string-match "\\.~[-[:alnum:]:#@^._]+~\\'" name)
3525 ;; sign, zero or more digits, provided this is the 3505 (string-match "~\\'" name)
3526 ;; second period encountered outside of the 3506 (length name)))))))
3527 ;; device/directory part of the file name.
3528 (or (string-match ";[-+]?[0-9]*\\'" name)
3529 (if (string-match "\\.[^]>:]*\\(\\.[-+]?[0-9]*\\)\\'"
3530 name)
3531 (match-beginning 1))
3532 (length name))
3533 (if keep-backup-version
3534 (length name)
3535 (or (string-match "\\.~[-[:alnum:]:#@^._]+~\\'" name)
3536 (string-match "~\\'" name)
3537 (length name))))))))
3538 3507
3539(defun file-ownership-preserved-p (file) 3508(defun file-ownership-preserved-p (file)
3540 "Return t if deleting FILE and rewriting it would preserve the owner." 3509 "Return t if deleting FILE and rewriting it would preserve the owner."
@@ -3737,8 +3706,6 @@ the index in the name where the version number begins."
3737 (string-to-number (substring fn backup-extract-version-start -1)) 3706 (string-to-number (substring fn backup-extract-version-start -1))
3738 0)) 3707 0))
3739 3708
3740;; I believe there is no need to alter this behavior for VMS;
3741;; since backup files are not made on VMS, it should not get called.
3742(defun find-backup-file-name (fn) 3709(defun find-backup-file-name (fn)
3743 "Find a file name for a backup file FN, and suggestions for deletions. 3710 "Find a file name for a backup file FN, and suggestions for deletions.
3744Value is a list whose car is the name for the backup file 3711Value is a list whose car is the name for the backup file
@@ -3984,19 +3951,6 @@ Before and after saving the buffer, this function runs
3984 (if (buffer-modified-p) 3951 (if (buffer-modified-p)
3985 (let ((recent-save (recent-auto-save-p)) 3952 (let ((recent-save (recent-auto-save-p))
3986 setmodes) 3953 setmodes)
3987 ;; On VMS, rename file and buffer to get rid of version number.
3988 (if (and (eq system-type 'vax-vms)
3989 (not (string= buffer-file-name
3990 (file-name-sans-versions buffer-file-name))))
3991 (let (buffer-new-name)
3992 ;; Strip VMS version number before save.
3993 (setq buffer-file-name
3994 (file-name-sans-versions buffer-file-name))
3995 ;; Construct a (unique) buffer name to correspond.
3996 (let ((buf (create-file-buffer (downcase buffer-file-name))))
3997 (setq buffer-new-name (buffer-name buf))
3998 (kill-buffer buf))
3999 (rename-buffer buffer-new-name)))
4000 ;; If buffer has no file name, ask user for one. 3954 ;; If buffer has no file name, ask user for one.
4001 (or buffer-file-name 3955 (or buffer-file-name
4002 (let ((filename 3956 (let ((filename
@@ -5036,15 +4990,13 @@ by `sh' are supported."
5036 (concat "\\`" result "\\'"))) 4990 (concat "\\`" result "\\'")))
5037 4991
5038(defcustom list-directory-brief-switches 4992(defcustom list-directory-brief-switches
5039 (if (eq system-type 'vax-vms) "" "-CF") 4993 "-CF"
5040 "Switches for `list-directory' to pass to `ls' for brief listing." 4994 "Switches for `list-directory' to pass to `ls' for brief listing."
5041 :type 'string 4995 :type 'string
5042 :group 'dired) 4996 :group 'dired)
5043 4997
5044(defcustom list-directory-verbose-switches 4998(defcustom list-directory-verbose-switches
5045 (if (eq system-type 'vax-vms) 4999 "-l"
5046 "/PROTECTION/SIZE/DATE/OWNER/WIDTH=(OWNER:10)"
5047 "-l")
5048 "Switches for `list-directory' to pass to `ls' for verbose listing." 5000 "Switches for `list-directory' to pass to `ls' for verbose listing."
5049 :type 'string 5001 :type 'string
5050 :group 'dired) 5002 :group 'dired)
@@ -5328,8 +5280,6 @@ normally equivalent short `-D' option is just passed on to
5328 (if handler 5280 (if handler
5329 (funcall handler 'insert-directory file switches 5281 (funcall handler 'insert-directory file switches
5330 wildcard full-directory-p) 5282 wildcard full-directory-p)
5331 (if (eq system-type 'vax-vms)
5332 (vms-read-directory file switches (current-buffer))
5333 (let (result (beg (point))) 5283 (let (result (beg (point)))
5334 5284
5335 ;; Read the actual directory using `insert-directory-program'. 5285 ;; Read the actual directory using `insert-directory-program'.
@@ -5558,7 +5508,7 @@ normally equivalent short `-D' option is just passed on to
5558 ;; Replace "total" with "used", to avoid confusion. 5508 ;; Replace "total" with "used", to avoid confusion.
5559 (replace-match "total used in directory" nil nil nil 1) 5509 (replace-match "total used in directory" nil nil nil 1)
5560 (end-of-line) 5510 (end-of-line)
5561 (insert " available " available))))))))))) 5511 (insert " available " available))))))))))
5562 5512
5563(defun insert-directory-adj-pos (pos error-lines) 5513(defun insert-directory-adj-pos (pos error-lines)
5564 "Convert `ls --dired' file name position value POS to a buffer position. 5514 "Convert `ls --dired' file name position value POS to a buffer position.
@@ -5610,7 +5560,7 @@ With prefix arg, silently save all file-visiting buffers, then kill."
5610 (buffer-list)))) 5560 (buffer-list))))
5611 (yes-or-no-p "Modified buffers exist; exit anyway? ")) 5561 (yes-or-no-p "Modified buffers exist; exit anyway? "))
5612 (or (not (fboundp 'process-list)) 5562 (or (not (fboundp 'process-list))
5613 ;; process-list is not defined on VMS. 5563 ;; process-list is not defined on MSDOS.
5614 (let ((processes (process-list)) 5564 (let ((processes (process-list))
5615 active) 5565 active)
5616 (while processes 5566 (while processes
diff --git a/lisp/finder.el b/lisp/finder.el
index cb51217192b..e72424a74d3 100644
--- a/lisp/finder.el
+++ b/lisp/finder.el
@@ -83,8 +83,6 @@
83 (tex . "supporting code for the TeX formatter") 83 (tex . "supporting code for the TeX formatter")
84 (tools . "programming tools") 84 (tools . "programming tools")
85 (unix . "front-ends/assistants for, or emulators of, UNIX-like features") 85 (unix . "front-ends/assistants for, or emulators of, UNIX-like features")
86;; Not a custom group and not currently useful.
87;; (vms . "support code for vms")
88 (wp . "word processing") 86 (wp . "word processing")
89 )) 87 ))
90 88
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index 18163fe452f..ba641388939 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -258,9 +258,7 @@ considered precious) will not be trimmed."
258 (if (and (eq system-type 'ms-dos) 258 (if (and (eq system-type 'ms-dos)
259 (not (gnus-long-file-names))) 259 (not (gnus-long-file-names)))
260 "%s#%d.tm#" ; MSDOS limits files to 8+3 260 "%s#%d.tm#" ; MSDOS limits files to 8+3
261 (if (memq system-type '(vax-vms axp-vms)) 261 "%s#tmp#%d")
262 "%s$tmp$%d"
263 "%s#tmp#%d"))
264 working-dir (setq i (1+ i)))) 262 working-dir (setq i (1+ i))))
265 (file-exists-p working-file))) 263 (file-exists-p working-file)))
266 264
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 1b2458cb89e..f28bc17eccc 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -2799,9 +2799,7 @@ If FORCE is non-nil, the .newsrc file is read."
2799 (if (and (eq system-type 'ms-dos) 2799 (if (and (eq system-type 'ms-dos)
2800 (not (gnus-long-file-names))) 2800 (not (gnus-long-file-names)))
2801 "%s#%d.tm#" ; MSDOS limits files to 8+3 2801 "%s#%d.tm#" ; MSDOS limits files to 8+3
2802 (if (memq system-type '(vax-vms axp-vms)) 2802 "%s#tmp#%d")
2803 "%s$tmp$%d"
2804 "%s#tmp#%d"))
2805 working-dir (setq i (1+ i)))) 2803 working-dir (setq i (1+ i))))
2806 (file-exists-p working-file))) 2804 (file-exists-p working-file)))
2807 2805
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index ac4de57a736..181d2f92177 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -5296,7 +5296,7 @@ In posting styles use `(\"Expires\" (make-expires-date 30))'."
5296 (* 25 25))) 5296 (* 25 25)))
5297 (let ((tm (current-time))) 5297 (let ((tm (current-time)))
5298 (concat 5298 (concat
5299 (if (or (memq system-type '(ms-dos emx vax-vms)) 5299 (if (or (memq system-type '(ms-dos emx))
5300 ;; message-number-base36 doesn't handle bigints. 5300 ;; message-number-base36 doesn't handle bigints.
5301 (floatp (user-uid))) 5301 (floatp (user-uid)))
5302 (let ((user (downcase (user-login-name)))) 5302 (let ((user (downcase (user-login-name))))
@@ -6858,14 +6858,13 @@ header line with the old Message-ID."
6858 (interactive) 6858 (interactive)
6859 (let ((file-name (make-auto-save-file-name))) 6859 (let ((file-name (make-auto-save-file-name)))
6860 (cond ((save-window-excursion 6860 (cond ((save-window-excursion
6861 (if (not (eq system-type 'vax-vms)) 6861 (with-output-to-temp-buffer "*Directory*"
6862 (with-output-to-temp-buffer "*Directory*" 6862 (with-current-buffer standard-output
6863 (with-current-buffer standard-output 6863 (fundamental-mode)) ; for Emacs 20.4+
6864 (fundamental-mode)) ; for Emacs 20.4+ 6864 (buffer-disable-undo standard-output)
6865 (buffer-disable-undo standard-output) 6865 (let ((default-directory "/"))
6866 (let ((default-directory "/")) 6866 (call-process
6867 (call-process 6867 "ls" nil standard-output nil "-l" file-name)))
6868 "ls" nil standard-output nil "-l" file-name))))
6869 (yes-or-no-p (format "Recover auto save file %s? " file-name))) 6868 (yes-or-no-p (format "Recover auto save file %s? " file-name)))
6870 (let ((buffer-read-only nil)) 6869 (let ((buffer-read-only nil))
6871 (erase-buffer) 6870 (erase-buffer)
diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el
index 69674f508bb..c8722df46b3 100644
--- a/lisp/hippie-exp.el
+++ b/lisp/hippie-exp.el
@@ -439,13 +439,13 @@ string). It returns t if a new completion is found, nil otherwise."
439 (if (not old) 439 (if (not old)
440 (progn 440 (progn
441 (he-init-string (he-file-name-beg) (point)) 441 (he-init-string (he-file-name-beg) (point))
442 (let ((name-part (he-file-name-nondirectory he-search-string)) 442 (let ((name-part (file-name-nondirectory he-search-string))
443 (dir-part (expand-file-name (or (he-file-name-directory 443 (dir-part (expand-file-name (or (file-name-directory
444 he-search-string) "")))) 444 he-search-string) ""))))
445 (if (not (he-string-member name-part he-tried-table)) 445 (if (not (he-string-member name-part he-tried-table))
446 (setq he-tried-table (cons name-part he-tried-table))) 446 (setq he-tried-table (cons name-part he-tried-table)))
447 (if (and (not (equal he-search-string "")) 447 (if (and (not (equal he-search-string ""))
448 (he-file-directory-p dir-part)) 448 (file-directory-p dir-part))
449 (setq he-expand-list (sort (file-name-all-completions 449 (setq he-expand-list (sort (file-name-all-completions
450 name-part 450 name-part
451 dir-part) 451 dir-part)
@@ -460,7 +460,7 @@ string). It returns t if a new completion is found, nil otherwise."
460 (if old (he-reset-string)) 460 (if old (he-reset-string))
461 ()) 461 ())
462 (let ((filename (he-concat-directory-file-name 462 (let ((filename (he-concat-directory-file-name
463 (he-file-name-directory he-search-string) 463 (file-name-directory he-search-string)
464 (car he-expand-list)))) 464 (car he-expand-list))))
465 (he-substitute-string filename) 465 (he-substitute-string filename)
466 (setq he-tried-table (cons (car he-expand-list) (cdr he-tried-table))) 466 (setq he-tried-table (cons (car he-expand-list) (cdr he-tried-table)))
@@ -476,11 +476,11 @@ otherwise."
476 (if (not old) 476 (if (not old)
477 (progn 477 (progn
478 (he-init-string (he-file-name-beg) (point)) 478 (he-init-string (he-file-name-beg) (point))
479 (let ((name-part (he-file-name-nondirectory he-search-string)) 479 (let ((name-part (file-name-nondirectory he-search-string))
480 (dir-part (expand-file-name (or (he-file-name-directory 480 (dir-part (expand-file-name (or (file-name-directory
481 he-search-string) "")))) 481 he-search-string) ""))))
482 (if (and (not (equal he-search-string "")) 482 (if (and (not (equal he-search-string ""))
483 (he-file-directory-p dir-part)) 483 (file-directory-p dir-part))
484 (setq expansion (file-name-completion name-part 484 (setq expansion (file-name-completion name-part
485 dir-part))) 485 dir-part)))
486 (if (or (eq expansion t) 486 (if (or (eq expansion t)
@@ -493,16 +493,14 @@ otherwise."
493 (if old (he-reset-string)) 493 (if old (he-reset-string))
494 ()) 494 ())
495 (let ((filename (he-concat-directory-file-name 495 (let ((filename (he-concat-directory-file-name
496 (he-file-name-directory he-search-string) 496 (file-name-directory he-search-string)
497 expansion))) 497 expansion)))
498 (he-substitute-string filename) 498 (he-substitute-string filename)
499 (setq he-tried-table (cons expansion (cdr he-tried-table))) 499 (setq he-tried-table (cons expansion (cdr he-tried-table)))
500 t)))) 500 t))))
501 501
502(defvar he-file-name-chars 502(defvar he-file-name-chars
503 (cond ((memq system-type '(vax-vms axp-vms)) 503 (cond ((memq system-type '(ms-dos windows-nt cygwin))
504 "-a-zA-Z0-9_/.,~^#$+=:\\[\\]")
505 ((memq system-type '(ms-dos windows-nt cygwin))
506 "-a-zA-Z0-9_/.,~^#$+=:\\\\") 504 "-a-zA-Z0-9_/.,~^#$+=:\\\\")
507 (t ;; More strange file formats ? 505 (t ;; More strange file formats ?
508 "-a-zA-Z0-9_/.,~^#$+=")) 506 "-a-zA-Z0-9_/.,~^#$+="))
@@ -516,43 +514,11 @@ otherwise."
516 op 514 op
517 (point))))) 515 (point)))))
518 516
519;; Thanks go to Richard Levitte <levitte@e.kth.se> who helped to make these 517;; Thanks go to David Hughes <ukchugd@ukpmr.cs.philips.nl> who
520;; work under VMS, and to David Hughes <ukchugd@ukpmr.cs.philips.nl> who
521;; helped to make it work on PC. 518;; helped to make it work on PC.
522(defun he-file-name-nondirectory (file)
523 "Fix to make `file-name-nondirectory' work for hippie-expand under VMS."
524 (if (memq system-type '(axp-vms vax-vms))
525 (let ((n (file-name-nondirectory file)))
526 (if (string-match "^\\(\\[.*\\)\\.\\([^\\.]*\\)$" n)
527 (concat "[." (substring n (match-beginning 2) (match-end 2)))
528 n))
529 (file-name-nondirectory file)))
530
531(defun he-file-name-directory (file)
532 "Fix to make `file-name-directory' work for hippie-expand under VMS."
533 (if (memq system-type '(axp-vms vax-vms))
534 (let ((n (file-name-nondirectory file))
535 (d (file-name-directory file)))
536 (if (string-match "^\\(\\[.*\\)\\.\\([^\\.]*\\)$" n)
537 (concat d (substring n (match-beginning 1) (match-end 1)) "]")
538 d))
539 (file-name-directory file)))
540
541(defun he-file-directory-p (file)
542 "Fix to make `file-directory-p' work for hippie-expand under VMS."
543 (if (memq system-type '(vax-vms axp-vms))
544 (or (file-directory-p file)
545 (file-directory-p (concat file "[000000]")))
546 (file-directory-p file)))
547
548(defun he-concat-directory-file-name (dir-part name-part) 519(defun he-concat-directory-file-name (dir-part name-part)
549 "Try to slam together two parts of a file specification, system dependently." 520 "Try to slam together two parts of a file specification, system dependently."
550 (cond ((null dir-part) name-part) 521 (cond ((null dir-part) name-part)
551 ((memq system-type '(axp-vms vax-vms))
552 (if (and (string= (substring dir-part -1) "]")
553 (string= (substring name-part 0 2) "[."))
554 (concat (substring dir-part 0 -1) (substring name-part 1))
555 (concat dir-part name-part)))
556 ((memq system-type '(ms-dos w32)) 522 ((memq system-type '(ms-dos w32))
557 (if (and (string-match "\\\\" dir-part) 523 (if (and (string-match "\\\\" dir-part)
558 (not (string-match "/" dir-part)) 524 (not (string-match "/" dir-part))
diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el
index 79786fb2d34..70e77377426 100644
--- a/lisp/international/latexenc.el
+++ b/lisp/international/latexenc.el
@@ -63,8 +63,6 @@
63 ("cp852" . cp852) ; IBM code page 852 63 ("cp852" . cp852) ; IBM code page 852
64 ("cp858" . cp858) ; IBM code page 850 but with a euro symbol 64 ("cp858" . cp858) ; IBM code page 850 but with a euro symbol
65 ("cp865" . cp865) ; IBM code page 865 65 ("cp865" . cp865) ; IBM code page 865
66 ;; The DECMultinational charaterset used by the OpenVMS system
67 ;; ("decmulti" . undecided)
68 ("latin1" . iso-8859-1) 66 ("latin1" . iso-8859-1)
69 ("latin2" . iso-8859-2) 67 ("latin2" . iso-8859-2)
70 ("latin3" . iso-8859-3) 68 ("latin3" . iso-8859-3)
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 35c696dc916..be4a679fafd 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1662,7 +1662,7 @@ This is used for loading and byte-compiling Emacs Lisp files.")
1662(defun auto-coding-alist-lookup (filename) 1662(defun auto-coding-alist-lookup (filename)
1663 "Return the coding system specified by `auto-coding-alist' for FILENAME." 1663 "Return the coding system specified by `auto-coding-alist' for FILENAME."
1664 (let ((alist auto-coding-alist) 1664 (let ((alist auto-coding-alist)
1665 (case-fold-search (memq system-type '(vax-vms windows-nt ms-dos cygwin))) 1665 (case-fold-search (memq system-type '(windows-nt ms-dos cygwin)))
1666 coding-system) 1666 coding-system)
1667 (while (and alist (not coding-system)) 1667 (while (and alist (not coding-system))
1668 (if (string-match (car (car alist)) filename) 1668 (if (string-match (car (car alist)) filename)
diff --git a/lisp/loadup.el b/lisp/loadup.el
index c913be436ac..99abe3a48a8 100644
--- a/lisp/loadup.el
+++ b/lisp/loadup.el
@@ -166,9 +166,6 @@
166(message "%s" (garbage-collect)) 166(message "%s" (garbage-collect))
167 167
168(load "replace") 168(load "replace")
169(if (eq system-type 'vax-vms)
170 (progn
171 (load "vmsproc")))
172(load "buff-menu") 169(load "buff-menu")
173 170
174(if (fboundp 'x-create-frame) 171(if (fboundp 'x-create-frame)
@@ -187,9 +184,6 @@
187 184
188(message "%s" (garbage-collect)) 185(message "%s" (garbage-collect))
189 186
190(if (eq system-type 'vax-vms)
191 (progn
192 (load "vms-patch")))
193(if (eq system-type 'windows-nt) 187(if (eq system-type 'windows-nt)
194 (progn 188 (progn
195 (load "w32-vars") 189 (load "w32-vars")
@@ -230,7 +224,7 @@
230;doc strings kept in the DOC file rather than in core, 224;doc strings kept in the DOC file rather than in core,
231;you may load them with a "site-load.el" file. 225;you may load them with a "site-load.el" file.
232;But you must also cause them to be scanned when the DOC file 226;But you must also cause them to be scanned when the DOC file
233;is generated. For VMS, you must edit ../vms/makedoc.com. 227;is generated.
234;For other systems, you must edit ../src/Makefile.in. 228;For other systems, you must edit ../src/Makefile.in.
235(if (load "site-load" t) 229(if (load "site-load" t)
236 (garbage-collect)) 230 (garbage-collect))
@@ -341,11 +335,7 @@
341 335
342(if (or (member (nth 3 command-line-args) '("dump" "bootstrap")) 336(if (or (member (nth 3 command-line-args) '("dump" "bootstrap"))
343 (member (nth 4 command-line-args) '("dump" "bootstrap"))) 337 (member (nth 4 command-line-args) '("dump" "bootstrap")))
344 (if (eq system-type 'vax-vms) 338 (progn
345 (progn
346 (message "Dumping data as file temacs.dump")
347 (dump-emacs "temacs.dump" "temacs")
348 (kill-emacs))
349 (if (memq system-type '(ms-dos windows-nt cygwin)) 339 (if (memq system-type '(ms-dos windows-nt cygwin))
350 (message "Dumping under the name emacs") 340 (message "Dumping under the name emacs")
351 (message "Dumping under the name emacs")) 341 (message "Dumping under the name emacs"))
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
index 08d07eb03a7..feedce0790f 100644
--- a/lisp/ls-lisp.el
+++ b/lisp/ls-lisp.el
@@ -30,7 +30,7 @@
30;; This file redefines the function `insert-directory' to implement it 30;; This file redefines the function `insert-directory' to implement it
31;; directly from Emacs lisp, without running ls in a subprocess. It 31;; directly from Emacs lisp, without running ls in a subprocess. It
32;; is useful if you cannot afford to fork Emacs on a real memory UNIX, 32;; is useful if you cannot afford to fork Emacs on a real memory UNIX,
33;; under VMS or other non-UNIX platforms if you don't have the ls 33;; or other non-UNIX platforms if you don't have the ls
34;; program, or if you want a different format from what ls offers. 34;; program, or if you want a different format from what ls offers.
35 35
36;; This function can use regexps instead of shell wildcards. If you 36;; This function can use regexps instead of shell wildcards. If you
diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el
index dfc14c02164..d0cbbb6a89a 100644
--- a/lisp/mail/feedmail.el
+++ b/lisp/mail/feedmail.el
@@ -808,30 +808,21 @@ without having to answer no to the individual message prompts."
808 :type 'boolean) 808 :type 'boolean)
809 809
810 810
811;; I provided a default for VMS because someone asked for it (the
812;; normal default doesn't work there), but, puh-lease!, it is a user
813;; definable option, so if you don't like the default, change it to
814;; whatever you want. I am unable to directly test the VMS goop
815;; provided here by levitte@lp.se (Richard Levitte - VMS Whacker).
816(defcustom feedmail-queue-directory 811(defcustom feedmail-queue-directory
817 (if (memq system-type '(axp-vms vax-vms)) 812 (concat (getenv "HOME") "/mail/q")
818 (expand-file-name (concat (getenv "HOME") "[.MAIL.Q]"))
819 (concat (getenv "HOME") "/mail/q"))
820 "*Name of a directory where messages will be queued. 813 "*Name of a directory where messages will be queued.
821Directory will be created if necessary. Should be a string that 814Directory will be created if necessary. Should be a string that
822doesn't end with a slash. Default, except on VMS, is \"$HOME/mail/q\"." 815doesn't end with a slash. Default is \"$HOME/mail/q\"."
823 :group 'feedmail-queue 816 :group 'feedmail-queue
824 :type 'string 817 :type 'string
825 ) 818 )
826 819
827 820
828(defcustom feedmail-queue-draft-directory 821(defcustom feedmail-queue-draft-directory
829 (if (memq system-type '(axp-vms vax-vms)) 822 (concat (getenv "HOME") "/mail/draft")
830 (expand-file-name (concat (getenv "HOME") "[.MAIL.DRAFT]"))
831 (concat (getenv "HOME") "/mail/draft"))
832 "*Name of a directory where draft messages will be queued. 823 "*Name of a directory where draft messages will be queued.
833Directory will be created if necessary. Should be a string that 824Directory will be created if necessary. Should be a string that
834doesn't end with a slash. Default, except on VMS, is \"$HOME/mail/draft\"." 825doesn't end with a slash. Default is \"$HOME/mail/draft\"."
835 :group 'feedmail-queue 826 :group 'feedmail-queue
836 :type 'string 827 :type 'string
837 ) 828 )
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 6bae7cdfda4..87318f8fe24 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1068,7 +1068,7 @@ specified by COMMON-SUBSTRING."
1068 "Current predicate used by `read-file-name-internal'.") 1068 "Current predicate used by `read-file-name-internal'.")
1069 1069
1070(defcustom read-file-name-completion-ignore-case 1070(defcustom read-file-name-completion-ignore-case
1071 (if (memq system-type '(ms-dos windows-nt darwin macos vax-vms axp-vms)) 1071 (if (memq system-type '(ms-dos windows-nt darwin))
1072 t nil) 1072 t nil)
1073 "Non-nil means when reading a file name completion ignores case." 1073 "Non-nil means when reading a file name completion ignores case."
1074 :group 'minibuffer 1074 :group 'minibuffer
diff --git a/lisp/nxml/nxml-enc.el b/lisp/nxml/nxml-enc.el
index 8877fee8db2..26d028becf4 100644
--- a/lisp/nxml/nxml-enc.el
+++ b/lisp/nxml/nxml-enc.el
@@ -32,7 +32,7 @@
32;;; Code: 32;;; Code:
33 33
34(defvar nxml-file-name-ignore-case 34(defvar nxml-file-name-ignore-case
35 (memq system-type '(vax-vms windows-nt))) 35 (memq system-type '(windows-nt)))
36 36
37(defvar nxml-cached-file-name-auto-coding-regexp nil) 37(defvar nxml-cached-file-name-auto-coding-regexp nil)
38(defvar nxml-cached-auto-mode-alist nil) 38(defvar nxml-cached-auto-mode-alist nil)
diff --git a/lisp/obsolete/vms-patch.el b/lisp/obsolete/vms-patch.el
deleted file mode 100644
index 14c9bd19e88..00000000000
--- a/lisp/obsolete/vms-patch.el
+++ /dev/null
@@ -1,270 +0,0 @@
1;; -*- no-byte-compile: t -*-
2;; Not byte compiled because it uses functions that are not part of
3;; emacs, so it would generate unnecessary warnings.
4;;; vms-patch.el --- override parts of files.el for VMS
5
6;; Copyright (C) 1986, 1992, 2001, 2002, 2003, 2004,
7;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
8
9;; Maintainer: FSF
10;; Keywords: vms
11
12;; This file is part of GNU Emacs.
13
14;; GNU Emacs is free software: you can redistribute it and/or modify
15;; it under the terms of the GNU General Public License as published by
16;; the Free Software Foundation, either version 3 of the License, or
17;; (at your option) any later version.
18
19;; GNU Emacs is distributed in the hope that it will be useful,
20;; but WITHOUT ANY WARRANTY; without even the implied warranty of
21;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22;; GNU General Public License for more details.
23
24;; You should have received a copy of the GNU General Public License
25;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
26
27;;; Commentary:
28
29;;; Code:
30
31(defvar print-region-function)
32
33(setq auto-mode-alist (cons '(("\\.com\\'" . dcl-mode)) auto-mode-alist))
34
35;;; Functions that need redefinition
36
37;;; VMS file names are upper case, but buffer names are more
38;;; convenient in lower case.
39
40(defun create-file-buffer (filename)
41 "Create a suitably named buffer for visiting FILENAME, and return it.
42FILENAME (sans directory) is used unchanged if that name is free;
43otherwise a string <2> or <3> or ... is appended to get an unused name."
44 (generate-new-buffer (downcase (file-name-nondirectory filename))))
45
46;;; Given a string FN, return a similar name which is a valid VMS filename.
47;;; This is used to avoid invalid auto save file names.
48(defun make-valid-file-name (fn)
49 (setq fn (copy-sequence fn))
50 (let ((dot nil) (indx 0) (len (length fn)) chr)
51 (while (< indx len)
52 (setq chr (aref fn indx))
53 (cond
54 ((eq chr ?.) (if dot (aset fn indx ?_) (setq dot t)))
55 ((not (or (and (>= chr ?a) (<= chr ?z)) (and (>= chr ?A) (<= chr ?Z))
56 (and (>= chr ?0) (<= chr ?9))
57 (eq chr ?$) (eq chr ?_) (and (eq chr ?-) (> indx 0))))
58 (aset fn indx ?_)))
59 (setq indx (1+ indx))))
60 fn)
61
62(define-obsolete-function-alias 'make-legal-file-name 'make-valid-file-name "23.1")
63
64;;; Auto save filesnames start with _$ and end with $.
65
66(defun make-auto-save-file-name ()
67 "Return file name to use for auto-saves of current buffer.
68This function does not consider `auto-save-visited-file-name';
69the caller should check that before calling this function.
70This is a separate function so that your `.emacs' file or the site's
71`site-init.el' can redefine it.
72See also `auto-save-file-name-p'."
73 (if buffer-file-name
74 (concat (file-name-directory buffer-file-name)
75 "_$"
76 (file-name-nondirectory buffer-file-name)
77 "$")
78 (expand-file-name (concat "_$_" (make-valid-file-name (buffer-name)) "$"))))
79
80(defun auto-save-file-name-p (filename)
81 "Return t if FILENAME can be yielded by `make-auto-save-file-name'.
82FILENAME should lack slashes.
83This is a separate function so that your `.emacs' file or the site's
84`site-init.el' can redefine it."
85 (string-match "^_\\$.*\\$" filename))
86
87;;;
88;;; This goes along with kepteditor.com which defines these logicals
89;;; If EMACS_COMMAND_ARGS is defined, it supersedes EMACS_FILE_NAME,
90;;; which is probably set up incorrectly anyway.
91;;; The function command-line-again is a kludge, but it does the job.
92;;;
93(defun vms-suspend-resume-hook ()
94 "When resuming suspended Emacs, check for file to be found.
95If the logical name `EMACS_FILE_NAME' is defined, `find-file' that file."
96 (let ((file (vms-system-info "LOGICAL" "EMACS_FILE_NAME"))
97 (args (vms-system-info "LOGICAL" "EMACS_COMMAND_ARGS"))
98 (line (vms-system-info "LOGICAL" "EMACS_FILE_LINE")))
99 (if (not args)
100 (if file
101 (progn (find-file file)
102 (if line (goto-line (string-to-number line)))))
103 (cd (file-name-directory file))
104 (vms-command-line-again))))
105
106(setq suspend-resume-hook 'vms-suspend-resume-hook)
107
108(defun vms-suspend-hook ()
109 "Don't allow suspending if logical name `DONT_SUSPEND_EMACS' is defined."
110 (if (vms-system-info "LOGICAL" "DONT_SUSPEND_EMACS")
111 (error "Can't suspend this emacs"))
112 nil)
113
114(setq suspend-hook 'vms-suspend-hook)
115
116;;;
117;;; A kludge that allows reprocessing of the command line. This is mostly
118;;; to allow a spawned VMS mail process to do something reasonable when
119;;; used in conjunction with the modifications to sysdep.c that allow
120;;; Emacs to attach to a "foster" parent.
121;;;
122(defun vms-command-line-again ()
123 "Reprocess command line arguments. VMS specific.
124Command line arguments are initialized from the logical EMACS_COMMAND_ARGS
125which is defined by kepteditor.com. On VMS this allows attaching to a
126spawned Emacs and doing things like \"emacs -l myfile.el -f doit\""
127 (let* ((args (downcase (vms-system-info "LOGICAL" "EMACS_COMMAND_ARGS")))
128 (command-line-args (list "emacs"))
129 (beg 0)
130 (end 0)
131 (len (length args))
132 this-char)
133 (if args
134 (progn
135;;; replace non-printable stuff with spaces
136 (while (< beg (length args))
137 (if (or (> 33 (setq this-char (aref args beg)))
138 (< 127 this-char))
139 (aset args beg 32))
140 (setq beg (1+ beg)))
141 (setq beg (1- (length args)))
142 (while (= 32 (aref args beg)) (setq beg (1- beg)))
143 (setq args (substring args 0 (1+ beg)))
144 (setq beg 0)
145;;; now start parsing args
146 (while (< beg (length args))
147 (while (and (< beg (length args))
148 (or (> 33 (setq this-char (aref args beg)))
149 (< 127 this-char))
150 (setq beg (1+ beg))))
151 (setq end (1+ beg))
152 (while (and (< end (length args))
153 (< 32 (setq this-char (aref args end)))
154 (> 127 this-char))
155 (setq end (1+ end)))
156 (setq command-line-args (append
157 command-line-args
158 (list (substring args beg end))))
159 (setq beg (1+ end)))
160 (command-line)))))
161
162(defun vms-read-directory (dirname switches buffer)
163 (save-excursion
164 (set-buffer buffer)
165 (subprocess-command-to-buffer
166 (concat "DIRECTORY " switches " " dirname)
167 buffer)
168 (goto-char (point-min))
169 ;; Remove all the trailing blanks.
170 (while (search-forward " \n")
171 (forward-char -1)
172 (delete-horizontal-space))
173 (goto-char (point-min))))
174
175(setq dired-listing-switches
176 "/SIZE/DATE/OWNER/WIDTH=(FILENAME=32,SIZE=5)")
177
178(setq print-region-function
179 (lambda (start end command ign1 ign2 ign3 &rest switches)
180 (write-region start end "sys$login:delete-me.txt")
181 (send-command-to-subprocess
182 1
183 (concat command
184 " sys$login:delete-me.txt/name=\"GNUprintbuffer\" "
185 (mapconcat 'identity switches " "))
186 nil nil nil)))
187
188;;;
189;;; Fuctions for using Emacs as a VMS Mail editor
190;;;
191(autoload 'vms-pmail-setup "vms-pmail"
192 "Set up file assuming use by VMS Mail utility.
193The buffer is put into text-mode, auto-save is turned off and the
194following bindings are established.
195
196\\[vms-pmail-save-and-exit] vms-pmail-save-and-exit
197\\[vms-pmail-abort] vms-pmail-abort
198
199All other Emacs commands are still available."
200 t)
201
202;;;
203;;; Filename handling in the minibuffer
204;;;
205(defun vms-magic-right-square-brace ()
206 "\
207Insert a right square brace, but do other things first depending on context.
208During filename completion, when point is at the end of the line and the
209character before is not a right square brace, do one of three things before
210inserting the brace:
211 - If there are already two left square braces preceding, do nothing special.
212 - If there is a previous right-square-brace, convert it to dot.
213 - If the character before is dot, delete it.
214Additionally, if the preceding chars are right-square-brace followed by
215either \"-\" or \"..\", strip one level of directory hierarchy."
216 (interactive)
217 (when (and minibuffer-completing-file-name
218 (= (point) (point-max))
219 (not (= 93 (char-before))))
220 (cond
221 ;; Avoid clobbering: user:[one.path][another.path
222 ((search-backward "[" (field-beginning) t 2))
223 ((search-backward "]" (field-beginning) t)
224 (delete-char 1)
225 (insert ".")
226 (goto-char (point-max)))
227 ((= ?. (char-before))
228 (delete-char -1)))
229 (goto-char (point-max))
230 (let ((specs '(".." "-"))
231 (pmax (point-max)))
232 (while specs
233 (let* ((up (car specs))
234 (len (length up))
235 (cut (- (point) len)))
236 (when (and (< (1+ len) pmax)
237 (= ?. (char-before cut))
238 (string= up (buffer-substring cut (point))))
239 (delete-char (- (1+ len)))
240 (while (not (let ((c (char-before)))
241 (or (= ?. c) (= 91 c))))
242 (delete-char -1))
243 (when (= ?. (char-before)) (delete-char -1))
244 (setq specs nil)))
245 (setq specs (cdr specs)))))
246 (insert "]"))
247
248(defun vms-magic-colon ()
249 "\
250Insert a colon, but do other things first depending on context.
251During filename completion, when point is at the end of the line
252and the line contains a right square brace, remove all characters
253from the beginning of the line up to and including such brace.
254This enables one to type a new filespec without having to delete
255the old one."
256 (interactive)
257 (when (and minibuffer-completing-file-name
258 (= (point) (point-max))
259 (search-backward "]" (field-beginning) t))
260 (delete-region (field-beginning) (1+ (point)))
261 (goto-char (point-max)))
262 (insert ":"))
263
264(let ((m minibuffer-local-completion-map))
265 (define-key m "]" 'vms-magic-right-square-brace)
266 (define-key m "/" 'vms-magic-right-square-brace)
267 (define-key m ":" 'vms-magic-colon))
268
269;; arch-tag: c178494e-2c37-4d02-99b7-e47e615656cf
270;;; vms-patch.el ends here
diff --git a/lisp/obsolete/vms-pmail.el b/lisp/obsolete/vms-pmail.el
deleted file mode 100644
index d4eb15cdcca..00000000000
--- a/lisp/obsolete/vms-pmail.el
+++ /dev/null
@@ -1,125 +0,0 @@
1;; -*- no-byte-compile: t -*-
2;; Not byte compiled because it uses functions that are not part of
3;; emacs, so it would generate unnecessary warnings.
4;;; vms-pmail.el --- use Emacs as the editor within VMS mail
5
6;; Copyright (C) 1992, 2001, 2002, 2003, 2004, 2005,
7;; 2006, 2007, 2008 Free Software Foundation, Inc.
8
9;; Author: Roland B Roberts <roberts@panix.com>
10;; Maintainer: FSF
11;; Keywords: vms
12
13;; This file is part of GNU Emacs.
14
15;; GNU Emacs is free software: you can redistribute it and/or modify
16;; it under the terms of the GNU General Public License as published by
17;; the Free Software Foundation, either version 3 of the License, or
18;; (at your option) any later version.
19
20;; GNU Emacs is distributed in the hope that it will be useful,
21;; but WITHOUT ANY WARRANTY; without even the implied warranty of
22;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;; GNU General Public License for more details.
24
25;; You should have received a copy of the GNU General Public License
26;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
27
28;;; Commentary:
29
30;;; Code:
31
32;;;
33;;; Quick hack to use emacs as mail editor. There are a *bunch* of
34;;; changes scattered throughout emacs to make this work, namely:
35;;; (1) mod to sysdep.c to allow emacs to attach to a process other
36;;; than the one that originally spawned it.
37;;; (2) mod to kepteditor.com to define the logical emacs_parent_pid
38;;; which is what sysdep.c looks for, and define the logical
39;;; emacs_command_args which contains the command line
40;;; (3) mod to re-parse command line arguments from emacs_command_args
41;;; then execute them as though emacs were just starting up.
42;;;
43(defun vms-pmail-save-and-exit ()
44 "Save current buffer and exit Emacs.
45If this Emacs cannot be suspended, you will be prompted about modified
46buffers other than the mail buffer. BEWARE --- suspending Emacs without
47saving your mail buffer causes mail to abort the send (potentially useful
48since the mail buffer is still here)."
49 (interactive)
50 (basic-save-buffer)
51 (if (vms-system-info "LOGICAL" "DONT_SUSPEND_EMACS")
52 (progn
53 (save-some-buffers)
54 (kill-emacs 1))
55 (kill-buffer (current-buffer))
56 (suspend-emacs)))
57
58(defun vms-pmail-abort ()
59 "Mark buffer as unmodified and exit Emacs.
60When the editor is exited without saving its buffer, VMS mail does not
61send a message. If you have other modified buffers you will be
62prompted for what to do with them."
63 (interactive)
64 (if (not (yes-or-no-p "Really abort mail? "))
65 (ding)
66 (not-modified)
67 (if (vms-system-info "LOGICAL" "DONT_SUSPEND_EMACS")
68 (progn
69 (save-some-buffers)
70 (kill-emacs 1))
71 (kill-buffer (current-buffer))
72 (suspend-emacs))))
73
74(defun vms-pmail-setup ()
75 "Set up file assuming use by VMS MAIL utility.
76The buffer is put into text-mode, auto-save is turned off and the
77following bindings are established.
78
79\\[vms-pmail-save-and-exit] vms-pmail-save-and-exit
80\\[vms-pmail-abort] vms-pmail-abort
81
82All other Emacs commands are still available."
83 (interactive)
84 (auto-save-mode -1)
85 (text-mode)
86 (let ((default (vms-system-info "LOGICAL" "SYS$SCRATCH"))
87 (directory (file-name-directory (buffer-file-name)))
88 (filename (file-name-nondirectory (buffer-file-name))))
89 (if (string= directory "SYS$SCRATCH:")
90 (progn
91 (cd default)
92 (setq buffer-file-name (concat default filename))))
93 (use-local-map (copy-keymap (current-local-map)))
94 (local-set-key "\C-c\C-c" 'vms-pmail-save-and-exit)
95 (local-set-key "\C-c\C-g" 'vms-pmail-abort)))
96
97(defun indicate-mail-reply-text ()
98 "Prepares received mail for re-sending by placing >'s on each line."
99 (interactive)
100 (goto-char (point-min))
101 (while (not (eobp))
102 (insert ">")
103 (beginning-of-line)
104 (forward-line 1))
105 (set-buffer-modified-p nil)
106 (goto-char (point-min)))
107
108(defun insert-signature ()
109 "Moves to the end of the buffer and inserts a \"signature\" file.
110First try the file indicated by environment variable MAIL$TRAILER.
111If that fails, try the file \"~/.signature\".
112If neither file exists, fails quietly."
113 (interactive)
114 (goto-char (point-max))
115 (newline)
116 (if (vms-system-info "LOGICAL" "MAIL$TRAILER")
117 (if (file-attributes (vms-system-info "LOGICAL" "MAIL$TRAILER"))
118 (insert-file-contents (vms-system-info "LOGICAL" "MAIL$TRAILER"))
119 (if (file-attributes "~/.signature")
120 (insert-file-contents "~/.signature")))))
121
122(provide 'vms-pmail)
123
124;; arch-tag: 336850fc-7812-4663-8e4d-b9c13f47dce1
125;;; vms-pmail.el ends here
diff --git a/lisp/obsolete/vmsproc.el b/lisp/obsolete/vmsproc.el
deleted file mode 100644
index 83de4d9350f..00000000000
--- a/lisp/obsolete/vmsproc.el
+++ /dev/null
@@ -1,148 +0,0 @@
1;; -*- no-byte-compile: t -*-
2;; Not byte compiled because it uses functions that are not part of
3;; emacs, so it would generate unnecessary warnings.
4;;; vmsproc.el --- run asynchronous VMS subprocesses under Emacs
5
6;; Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
7;; 2006, 2007, 2008 Free Software Foundation, Inc.
8
9;; Author: Mukesh Prasad
10;; Maintainer: FSF
11;; Keywords: vms
12
13;; This file is part of GNU Emacs.
14
15;; GNU Emacs is free software: you can redistribute it and/or modify
16;; it under the terms of the GNU General Public License as published by
17;; the Free Software Foundation, either version 3 of the License, or
18;; (at your option) any later version.
19
20;; GNU Emacs is distributed in the hope that it will be useful,
21;; but WITHOUT ANY WARRANTY; without even the implied warranty of
22;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;; GNU General Public License for more details.
24
25;; You should have received a copy of the GNU General Public License
26;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
27
28;;; Commentary:
29
30;;; Code:
31
32(defvar display-subprocess-window nil
33 "If non-nil, the subprocess window is displayed whenever input is received.")
34
35(defvar command-prefix-string "$ "
36 "String to insert to distinguish commands entered by user.")
37
38(defvar subprocess-running nil)
39(defvar subprocess-buf nil)
40
41(defvar command-mode-map
42 (let ((map (make-sparse-keymap)))
43 (define-key map "\C-m" 'command-send-input)
44 (define-key map "\C-u" 'command-kill-line)
45 map))
46
47(defun subprocess-input (name str)
48 "Handle input from a subprocess. Called by Emacs."
49 (if display-subprocess-window
50 (display-buffer subprocess-buf))
51 (with-current-buffer subprocess-buf
52 (goto-char (point-max))
53 (insert str ?\n)))
54
55(defun subprocess-exit (name)
56 "Called by Emacs upon subprocess exit."
57 (setq subprocess-running nil))
58
59(defun start-subprocess ()
60 "Spawn an asynchronous subprocess with output redirected to
61the buffer *COMMAND*. Within this buffer, use C-m to send
62the last line to the subprocess or to bring another line to
63the end."
64 (if subprocess-running
65 (return t))
66 (setq subprocess-buf (get-buffer-create "*COMMAND*"))
67 (with-current-buffer subprocess-buf
68 (use-local-map command-mode-map))
69 (setq subprocess-running (spawn-subprocess 1 'subprocess-input
70 'subprocess-exit))
71 ;; Initialize subprocess so it doesn't panic and die upon
72 ;; encountering the first error.
73 (and subprocess-running
74 (send-command-to-subprocess 1 "ON SEVERE_ERROR THEN CONTINUE")))
75
76(defun subprocess-command-to-buffer (command buffer)
77 "Execute COMMAND and redirect output into BUFFER."
78 (let (cmd args)
79 (setq cmd (substring command 0 (string-match " " command)))
80 (setq args (substring command (string-match " " command)))
81 (call-process cmd nil buffer nil "*dcl*" args)))
82 ;; BUGS: only the output up to the end of the first image activation is trapped.
83 ;; (if (not subprocess-running)
84 ;; (start-subprocess))
85 ;; (with-current-buffer buffer
86 ;; (let ((output-filename (concat "SYS$SCRATCH:OUTPUT-FOR-"
87 ;; (getenv "USER") ".LISTING")))
88 ;; (while (file-exists-p output-filename)
89 ;; (delete-file output-filename))
90 ;; (define-logical-name "SYS$OUTPUT" (concat output-filename "-NEW"))
91 ;; (send-command-to-subprocess 1 command)
92 ;; (send-command-to-subprocess 1 (concat
93 ;; "RENAME " output-filename
94 ;; "-NEW " output-filename))
95 ;; (while (not (file-exists-p output-filename))
96 ;; (sleep-for 1))
97 ;; (define-logical-name "SYS$OUTPUT" nil)
98 ;; (insert-file output-filename)
99 ;; (delete-file output-filename))))
100
101(defun subprocess-command ()
102 "Start asynchronous subprocess if not running and switch to its window."
103 (interactive)
104 (if (not subprocess-running)
105 (start-subprocess))
106 (and subprocess-running
107 (progn (pop-to-buffer subprocess-buf) (goto-char (point-max)))))
108
109(defun command-send-input ()
110 "If at last line of buffer, send the current line to
111the spawned subprocess. Otherwise bring back current
112line to the last line for resubmission."
113 (interactive)
114 (beginning-of-line)
115 (let ((current-line (buffer-substring (point) (line-end-position))))
116 (if (eobp)
117 (progn
118 (if (not subprocess-running)
119 (start-subprocess))
120 (if subprocess-running
121 (progn
122 (beginning-of-line)
123 (send-command-to-subprocess 1 current-line)
124 (if command-prefix-string
125 (progn (beginning-of-line) (insert command-prefix-string)))
126 (forward-line 1))))
127 ;; else -- if not at last line in buffer
128 (goto-char (point-max))
129 (backward-char)
130 (forward-line 1)
131 (insert
132 (if (compare-strings command-prefix-string nil nil
133 current-line 0 (length command-prefix-string))
134 (substring current-line (length command-prefix-string))
135 current-line)))))
136
137(defun command-kill-line ()
138 "Kill the current line. Used in command mode."
139 (interactive)
140 (beginning-of-line)
141 (kill-line))
142
143(define-key esc-map "$" 'subprocess-command)
144
145(provide 'vmsproc)
146
147;; arch-tag: 600b2512-f903-4887-bcd2-e76b306f5b66
148;;; vmsproc.el ends here
diff --git a/lisp/paths.el b/lisp/paths.el
index 15705fc8cae..2dc1f977cb7 100644
--- a/lisp/paths.el
+++ b/lisp/paths.el
@@ -176,15 +176,13 @@ Its name should end with a slash.")
176 :group 'environment 176 :group 'environment
177 :type 'file) 177 :type 'file)
178 178
179(defvar term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/") "\ 179(defvar term-file-prefix "term/" "\
180If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\"))) 180If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\")))
181You may set this variable to nil in your `.emacs' file if you do not wish 181You may set this variable to nil in your `.emacs' file if you do not wish
182the terminal-initialization file to be loaded.") 182the terminal-initialization file to be loaded.")
183 183
184(defvar abbrev-file-name 184(defvar abbrev-file-name
185 (if (eq system-type 'vax-vms) 185 (convert-standard-filename "~/.abbrev_defs")
186 "~/abbrev.def"
187 (convert-standard-filename "~/.abbrev_defs"))
188 "*Default name of file to read abbrevs from.") 186 "*Default name of file to read abbrevs from.")
189 187
190;; arch-tag: bae27ffb-9944-4c87-b569-30d4635a99e1 188;; arch-tag: bae27ffb-9944-4c87-b569-30d4635a99e1
diff --git a/lisp/printing.el b/lisp/printing.el
index 8fac4bf2981..85e4b5ea4bb 100644
--- a/lisp/printing.el
+++ b/lisp/printing.el
@@ -2214,7 +2214,6 @@ Useful links:
2214 (file-name-as-directory 2214 (file-name-as-directory
2215 (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") 2215 (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP")
2216 (cond (ps-windows-system "c:/temp") 2216 (cond (ps-windows-system "c:/temp")
2217 ((memq system-type '(vax-vms axp-vms)) "SYS$SCRATCH:")
2218 (t "/tmp") 2217 (t "/tmp")
2219 ))))) 2218 )))))
2220 "*Specify a directory for temporary files during printing. 2219 "*Specify a directory for temporary files during printing.
diff --git a/lisp/recentf.el b/lisp/recentf.el
index 589e5ebbd3b..0a21a9dcc8e 100644
--- a/lisp/recentf.el
+++ b/lisp/recentf.el
@@ -300,7 +300,7 @@ used as shortcuts to open the Nth file."
300;;; Utilities 300;;; Utilities
301;; 301;;
302(defconst recentf-case-fold-search 302(defconst recentf-case-fold-search
303 (memq system-type '(vax-vms windows-nt cygwin)) 303 (memq system-type '(windows-nt cygwin))
304 "Non-nil if recentf searches and matches should ignore case.") 304 "Non-nil if recentf searches and matches should ignore case.")
305 305
306(defsubst recentf-string-equal (s1 s2) 306(defsubst recentf-string-equal (s1 s2)
diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el
index 5481bbaf2b0..8b311d5e9ff 100644
--- a/lisp/shadowfile.el
+++ b/lisp/shadowfile.el
@@ -762,7 +762,7 @@ look for files that have been changed and need to be copied to other systems."
762 (buffer-list)))) 762 (buffer-list))))
763 (yes-or-no-p "Modified buffers exist; exit anyway? ")) 763 (yes-or-no-p "Modified buffers exist; exit anyway? "))
764 (or (not (fboundp 'process-list)) 764 (or (not (fboundp 'process-list))
765 ;; process-list is not defined on VMS. 765 ;; process-list is not defined on MSDOS.
766 (let ((processes (process-list)) 766 (let ((processes (process-list))
767 active) 767 active)
768 (while processes 768 (while processes
diff --git a/lisp/sort.el b/lisp/sort.el
index d08e07dc4b9..02e45158df1 100644
--- a/lisp/sort.el
+++ b/lisp/sort.el
@@ -491,7 +491,7 @@ Use \\[untabify] to convert tabs to spaces before sorting."
491 (setq col-end (max col-beg1 col-end1)) 491 (setq col-end (max col-beg1 col-end1))
492 (if (search-backward "\t" beg1 t) 492 (if (search-backward "\t" beg1 t)
493 (error "sort-columns does not work with tabs -- use M-x untabify")) 493 (error "sort-columns does not work with tabs -- use M-x untabify"))
494 (if (not (or (memq system-type '(vax-vms windows-nt)) 494 (if (not (or (memq system-type '(windows-nt))
495 (let ((pos beg1) plist fontified) 495 (let ((pos beg1) plist fontified)
496 (catch 'found 496 (catch 'found
497 (while (< pos end1) 497 (while (< pos end1)
@@ -516,7 +516,7 @@ Use \\[untabify] to convert tabs to spaces before sorting."
516 (when sort-fold-case 516 (when sort-fold-case
517 (push "-f" sort-args)) 517 (push "-f" sort-args))
518 (apply #'call-process-region beg1 end1 "sort" t t nil sort-args)) 518 (apply #'call-process-region beg1 end1 "sort" t t nil sort-args))
519 ;; On VMS and ms-windows, use Emacs's own facilities. 519 ;; On ms-windows, use Emacs's own facilities.
520 (save-excursion 520 (save-excursion
521 (save-restriction 521 (save-restriction
522 (narrow-to-region beg1 end1) 522 (narrow-to-region beg1 end1)
diff --git a/lisp/startup.el b/lisp/startup.el
index 3d2217f3eab..dd387672091 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -491,20 +491,19 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'."
491 ;; the end, because the subdirs.el files may add elements to the end 491 ;; the end, because the subdirs.el files may add elements to the end
492 ;; of load-path and we want to take it into account. 492 ;; of load-path and we want to take it into account.
493 (setq tail (cdr tail)))) 493 (setq tail (cdr tail))))
494 (unless (eq system-type 'vax-vms) 494 ;; If the PWD environment variable isn't accurate, delete it.
495 ;; If the PWD environment variable isn't accurate, delete it. 495 (let ((pwd (getenv "PWD")))
496 (let ((pwd (getenv "PWD"))) 496 (and (stringp pwd)
497 (and (stringp pwd) 497 ;; Use FOO/., so that if FOO is a symlink, file-attributes
498 ;; Use FOO/., so that if FOO is a symlink, file-attributes 498 ;; describes the directory linked to, not FOO itself.
499 ;; describes the directory linked to, not FOO itself. 499 (or (equal (file-attributes
500 (or (equal (file-attributes 500 (concat (file-name-as-directory pwd) "."))
501 (concat (file-name-as-directory pwd) ".")) 501 (file-attributes
502 (file-attributes 502 (concat (file-name-as-directory default-directory)
503 (concat (file-name-as-directory default-directory) 503 ".")))
504 "."))) 504 (setq process-environment
505 (setq process-environment 505 (delete (concat "PWD=" pwd)
506 (delete (concat "PWD=" pwd) 506 process-environment)))))
507 process-environment))))))
508 (setq default-directory (abbreviate-file-name default-directory)) 507 (setq default-directory (abbreviate-file-name default-directory))
509 (let ((menubar-bindings-done nil)) 508 (let ((menubar-bindings-done nil))
510 (unwind-protect 509 (unwind-protect
@@ -1007,8 +1006,6 @@ opening the first frame (e.g. open a connection to an X server).")
1007 "~/_emacs" 1006 "~/_emacs"
1008 ;; But default to .emacs if _emacs does not exist. 1007 ;; But default to .emacs if _emacs does not exist.
1009 "~/.emacs"))) 1008 "~/.emacs")))
1010 ((eq system-type 'vax-vms)
1011 "sys$login:.emacs")
1012 (t 1009 (t
1013 (concat "~" init-file-user "/.emacs"))))) 1010 (concat "~" init-file-user "/.emacs")))))
1014 ;; This tells `load' to store the file name found 1011 ;; This tells `load' to store the file name found
diff --git a/lisp/subr.el b/lisp/subr.el
index b673980510c..b15e463693a 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2406,14 +2406,10 @@ passing the command to the shell.
2406Wildcards and redirection are handled as usual in the shell. 2406Wildcards and redirection are handled as usual in the shell.
2407 2407
2408\(fn NAME BUFFER COMMAND &rest COMMAND-ARGS)" 2408\(fn NAME BUFFER COMMAND &rest COMMAND-ARGS)"
2409 (cond
2410 ((eq system-type 'vax-vms)
2411 (apply 'start-process name buffer args))
2412 ;; We used to use `exec' to replace the shell with the command, 2409 ;; We used to use `exec' to replace the shell with the command,
2413 ;; but that failed to handle (...) and semicolon, etc. 2410 ;; but that failed to handle (...) and semicolon, etc.
2414 (t 2411 (start-process name buffer shell-file-name shell-command-switch
2415 (start-process name buffer shell-file-name shell-command-switch 2412 (mapconcat 'identity args " ")))
2416 (mapconcat 'identity args " ")))))
2417 2413
2418(defun start-file-process-shell-command (name buffer &rest args) 2414(defun start-file-process-shell-command (name buffer &rest args)
2419 "Start a program in a subprocess. Return the process object for it. 2415 "Start a program in a subprocess. Return the process object for it.
@@ -2445,16 +2441,12 @@ If BUFFER is 0, `call-process-shell-command' returns immediately with value nil.
2445Otherwise it waits for COMMAND to terminate and returns a numeric exit 2441Otherwise it waits for COMMAND to terminate and returns a numeric exit
2446status or a signal description string. 2442status or a signal description string.
2447If you quit, the process is killed with SIGINT, or SIGKILL if you quit again." 2443If you quit, the process is killed with SIGINT, or SIGKILL if you quit again."
2448 (cond 2444 ;; We used to use `exec' to replace the shell with the command,
2449 ((eq system-type 'vax-vms) 2445 ;; but that failed to handle (...) and semicolon, etc.
2450 (apply 'call-process command infile buffer display args)) 2446 (call-process shell-file-name
2451 ;; We used to use `exec' to replace the shell with the command, 2447 infile buffer display
2452 ;; but that failed to handle (...) and semicolon, etc. 2448 shell-command-switch
2453 (t 2449 (mapconcat 'identity (cons command args) " ")))
2454 (call-process shell-file-name
2455 infile buffer display
2456 shell-command-switch
2457 (mapconcat 'identity (cons command args) " ")))))
2458 2450
2459(defun process-file-shell-command (command &optional infile buffer display 2451(defun process-file-shell-command (command &optional infile buffer display
2460 &rest args) 2452 &rest args)
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index bbf0714e8ab..412c25aa091 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -2963,29 +2963,6 @@ Default is to leave paragraph indentation as is."
2963 ("ky" . texinfo-format-kindex))) 2963 ("ky" . texinfo-format-kindex)))
2964 2964
2965 2965
2966;;; Sort and index (for VMS)
2967
2968;; Sort an index which is in the current buffer between START and END.
2969;; Used on VMS, where the `sort' utility is not available.
2970(defun texinfo-sort-region (start end)
2971 (require 'sort)
2972 (save-restriction
2973 (narrow-to-region start end)
2974 (goto-char (point-min))
2975 (sort-subr nil 'forward-line 'end-of-line 'texinfo-sort-startkeyfun)))
2976
2977;; Subroutine for sorting an index.
2978;; At start of a line, return a string to sort the line under.
2979(defun texinfo-sort-startkeyfun ()
2980 (let ((line (buffer-substring-no-properties (point) (line-end-position))))
2981 ;; Canonicalize whitespace and eliminate funny chars.
2982 (while (string-match "[ \t][ \t]+\\|[^a-z0-9 ]+" line)
2983 (setq line (concat (substring line 0 (match-beginning 0))
2984 " "
2985 (substring line (match-end 0)))))
2986 line))
2987
2988
2989;;; @printindex 2966;;; @printindex
2990 2967
2991(put 'printindex 'texinfo-format 'texinfo-format-printindex) 2968(put 'printindex 'texinfo-format 'texinfo-format-printindex)
@@ -3002,9 +2979,7 @@ Default is to leave paragraph indentation as is."
3002 (insert "\n* Menu:\n\n") 2979 (insert "\n* Menu:\n\n")
3003 (setq opoint (point)) 2980 (setq opoint (point))
3004 (texinfo-print-index nil indexelts) 2981 (texinfo-print-index nil indexelts)
3005 (if (memq system-type '(vax-vms windows-nt ms-dos)) 2982 (shell-command-on-region opoint (point) "sort -fd" 1)))
3006 (texinfo-sort-region opoint (point))
3007 (shell-command-on-region opoint (point) "sort -fd" 1))))
3008 2983
3009(defun texinfo-print-index (file indexelts) 2984(defun texinfo-print-index (file indexelts)
3010 (while indexelts 2985 (while indexelts
diff --git a/lisp/version.el b/lisp/version.el
index e8f1ac5b964..c6d2b6ff462 100644
--- a/lisp/version.el
+++ b/lisp/version.el
@@ -85,7 +85,7 @@ to the system configuration; look at `system-configuration' instead."
85(defalias 'version 'emacs-version) 85(defalias 'version 'emacs-version)
86 86
87;; We put version info into the executable in the form that `ident' uses. 87;; We put version info into the executable in the form that `ident' uses.
88(or (memq system-type '(vax-vms windows-nt)) 88(or (eq system-type 'windows-nt)
89 (purecopy (concat "\n$Id: " (subst-char-in-string ?\n ?\s (emacs-version)) 89 (purecopy (concat "\n$Id: " (subst-char-in-string ?\n ?\s (emacs-version))
90 " $\n"))) 90 " $\n")))
91 91
diff --git a/make-dist b/make-dist
index 72af326f5ce..2b3c583b69f 100755
--- a/make-dist
+++ b/make-dist
@@ -337,7 +337,7 @@ for subdir in lisp site-lisp \
337 etc/images/smilies/medium etc/images/tree-widget \ 337 etc/images/smilies/medium etc/images/tree-widget \
338 etc/images/tree-widget/default etc/images/tree-widget/folder \ 338 etc/images/tree-widget/default etc/images/tree-widget/folder \
339 etc/refcards etc/schema etc/tutorials info doc doc/emacs \ 339 etc/refcards etc/schema etc/tutorials info doc doc/emacs \
340 doc/misc doc/man doc/lispref doc/lispintro m4 msdos vms \ 340 doc/misc doc/man doc/lispref doc/lispintro m4 msdos \
341 nextstep nextstep/Cocoa nextstep/Cocoa/Emacs.base \ 341 nextstep nextstep/Cocoa nextstep/Cocoa/Emacs.base \
342 nextstep/Cocoa/Emacs.base/Contents \ 342 nextstep/Cocoa/Emacs.base/Contents \
343 nextstep/Cocoa/Emacs.base/Contents/Resources \ 343 nextstep/Cocoa/Emacs.base/Contents/Resources \
@@ -578,8 +578,7 @@ echo "Making links to \`nextstep/GNUstep/Emacs.base/Resources/preferences.gorm'"
578echo "Making links to \`oldXMenu'" 578echo "Making links to \`oldXMenu'"
579(cd oldXMenu 579(cd oldXMenu
580 ln *.c *.h *.in ../${tempdir}/oldXMenu 580 ln *.c *.h *.in ../${tempdir}/oldXMenu
581 ln README ChangeLog ../${tempdir}/oldXMenu 581 ln README ChangeLog ../${tempdir}/oldXMenu)
582 ln compile.com descrip.mms ../${tempdir}/oldXMenu)
583 582
584echo "Making links to \`lwlib'" 583echo "Making links to \`lwlib'"
585(cd lwlib 584(cd lwlib
@@ -728,12 +727,6 @@ echo "Making links to \`doc/man'"
728(cd doc/man 727(cd doc/man
729 ln *.1 ../../${tempdir}/doc/man) 728 ln *.1 ../../${tempdir}/doc/man)
730 729
731echo "Making links to \`vms'"
732(cd vms
733 test -f README && ln README ../${tempdir}/vms
734 cd ../${tempdir}/vms
735 rm -f *~)
736
737### It would be nice if they could all be symlinks to top-level copy, but 730### It would be nice if they could all be symlinks to top-level copy, but
738### you're not supposed to have any symlinks in distribution tar files. 731### you're not supposed to have any symlinks in distribution tar files.
739echo "Making sure copying notices are all copies of \`COPYING'" 732echo "Making sure copying notices are all copies of \`COPYING'"
diff --git a/oldXMenu/ChangeLog b/oldXMenu/ChangeLog
index 6f027eb854a..3fb280871fe 100644
--- a/oldXMenu/ChangeLog
+++ b/oldXMenu/ChangeLog
@@ -1,3 +1,9 @@
12008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * descrip.mms:
4 * compile.com: Remove file.
5 * Create.c: Remove VMS support.
6
12008-07-23 Dan Nicolaescu <dann@ics.uci.edu> 72008-07-23 Dan Nicolaescu <dann@ics.uci.edu>
2 8
3 * Makefile.in (ALL_CFLAGS): Remove reference to C_SWITCH_SITE. 9 * Makefile.in (ALL_CFLAGS): Remove reference to C_SWITCH_SITE.
diff --git a/oldXMenu/Create.c b/oldXMenu/Create.c
index 2a53844cf66..ca18093f11b 100644
--- a/oldXMenu/Create.c
+++ b/oldXMenu/Create.c
@@ -50,7 +50,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
50#include "../src/bitmaps/stipple.xbm" 50#include "../src/bitmaps/stipple.xbm"
51 51
52#else 52#else
53#ifndef VMS
54 53
55#include <X11/bitmaps/dimple1> 54#include <X11/bitmaps/dimple1>
56#include <X11/bitmaps/dimple3> 55#include <X11/bitmaps/dimple3>
@@ -66,23 +65,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
66#include <X11/bitmaps/cntr_ptrmsk> 65#include <X11/bitmaps/cntr_ptrmsk>
67#include <X11/bitmaps/stipple> 66#include <X11/bitmaps/stipple>
68 67
69#else
70
71#include "[-.src.bitmaps]dimple1.xbm"
72#include "[-.src.bitmaps]dimple3.xbm"
73#include "[-.src.bitmaps]gray1.xbm"
74#include "[-.src.bitmaps]gray3.xbm"
75#include "[-.src.bitmaps]crosswv.xbm"
76
77#include "[-.src.bitmaps]leftptr.xbm"
78#include "[-.src.bitmaps]leftpmsk.xbm"
79#include "[-.src.bitmaps]rtptr.xbm"
80#include "[-.src.bitmaps]rtpmsk.xbm"
81#include "[-.src.bitmaps]cntrptr.xbm"
82#include "[-.src.bitmaps]cntrpmsk.xbm"
83#include "[-.src.bitmaps]stipple.xbm"
84
85#endif /* VMS */
86#endif /* not EMACS_BITMAP_FILES */ 68#endif /* not EMACS_BITMAP_FILES */
87 69
88#define DEF_FREEZE 0 70#define DEF_FREEZE 0
diff --git a/oldXMenu/compile.com b/oldXMenu/compile.com
deleted file mode 100644
index 0ed2a6ba4d4..00000000000
--- a/oldXMenu/compile.com
+++ /dev/null
@@ -1,66 +0,0 @@
1$! This file was autogenerated with the command:
2$!
3$! mms/noaction/output = compile.com
4$ if f$search("ACTIVATE.OBJ") then delete ACTIVATE.OBJ.*
5$ cc /obj=ACTIVATE.OBJ /NOLIST/OBJECT=ACTIVATE.OBJ ACTIVATE.c
6$ if f$search("ADDPANE.OBJ") then delete ADDPANE.OBJ.*
7$ cc /obj=ADDPANE.OBJ /NOLIST/OBJECT=ADDPANE.OBJ ADDPANE.c
8$ if f$search("ADDSEL.OBJ") then delete ADDSEL.OBJ.*
9$ cc /obj=ADDSEL.OBJ /NOLIST/OBJECT=ADDSEL.OBJ ADDSEL.c
10$ if f$search("CHGPANE.OBJ") then delete CHGPANE.OBJ.*
11$ cc /obj=CHGPANE.OBJ /NOLIST/OBJECT=CHGPANE.OBJ CHGPANE.c
12$ if f$search("CHGSEL.OBJ") then delete CHGSEL.OBJ.*
13$ cc /obj=CHGSEL.OBJ /NOLIST/OBJECT=CHGSEL.OBJ CHGSEL.c
14$ if f$search("CREATE.OBJ") then delete CREATE.OBJ.*
15$ cc /obj=CREATE.OBJ /NOLIST/OBJECT=CREATE.OBJ CREATE.c
16$ if f$search("DELPANE.OBJ") then delete DELPANE.OBJ.*
17$ cc /obj=DELPANE.OBJ /NOLIST/OBJECT=DELPANE.OBJ DELPANE.c
18$ if f$search("DELSEL.OBJ") then delete DELSEL.OBJ.*
19$ cc /obj=DELSEL.OBJ /NOLIST/OBJECT=DELSEL.OBJ DELSEL.c
20$ if f$search("DESTROY.OBJ") then delete DESTROY.OBJ.*
21$ cc /obj=DESTROY.OBJ /NOLIST/OBJECT=DESTROY.OBJ DESTROY.c
22$ if f$search("ERROR.OBJ") then delete ERROR.OBJ.*
23$ cc /obj=ERROR.OBJ /NOLIST/OBJECT=ERROR.OBJ ERROR.c
24$ if f$search("EVHAND.OBJ") then delete EVHAND.OBJ.*
25$ cc /obj=EVHAND.OBJ /NOLIST/OBJECT=EVHAND.OBJ EVHAND.c
26$ if f$search("FINDPANE.OBJ") then delete FINDPANE.OBJ.*
27$ cc /obj=FINDPANE.OBJ /NOLIST/OBJECT=FINDPANE.OBJ FINDPANE.c
28$ if f$search("FINDSEL.OBJ") then delete FINDSEL.OBJ.*
29$ cc /obj=FINDSEL.OBJ /NOLIST/OBJECT=FINDSEL.OBJ FINDSEL.c
30$ if f$search("INSPANE.OBJ") then delete INSPANE.OBJ.*
31$ cc /obj=INSPANE.OBJ /NOLIST/OBJECT=INSPANE.OBJ INSPANE.c
32$ if f$search("INSSEL.OBJ") then delete INSSEL.OBJ.*
33$ cc /obj=INSSEL.OBJ /NOLIST/OBJECT=INSSEL.OBJ INSSEL.c
34$ if f$search("INTERNAL.OBJ") then delete INTERNAL.OBJ.*
35$ cc /obj=INTERNAL.OBJ /NOLIST/OBJECT=INTERNAL.OBJ INTERNAL.c
36$ if f$search("LOCATE.OBJ") then delete LOCATE.OBJ.*
37$ cc /obj=LOCATE.OBJ /NOLIST/OBJECT=LOCATE.OBJ LOCATE.c
38$ if f$search("POST.OBJ") then delete POST.OBJ.*
39$ cc /obj=POST.OBJ /NOLIST/OBJECT=POST.OBJ POST.c
40$ if f$search("RECOMP.OBJ") then delete RECOMP.OBJ.*
41$ cc /obj=RECOMP.OBJ /NOLIST/OBJECT=RECOMP.OBJ RECOMP.c
42$ if f$search("SETAEQ.OBJ") then delete SETAEQ.OBJ.*
43$ cc /obj=SETAEQ.OBJ /NOLIST/OBJECT=SETAEQ.OBJ SETAEQ.c
44$ if f$search("SETFRZ.OBJ") then delete SETFRZ.OBJ.*
45$ cc /obj=SETFRZ.OBJ /NOLIST/OBJECT=SETFRZ.OBJ SETFRZ.c
46$ if f$search("SETPANE.OBJ") then delete SETPANE.OBJ.*
47$ cc /obj=SETPANE.OBJ /NOLIST/OBJECT=SETPANE.OBJ SETPANE.c
48$ if f$search("SETSEL.OBJ") then delete SETSEL.OBJ.*
49$ cc /obj=SETSEL.OBJ /NOLIST/OBJECT=SETSEL.OBJ SETSEL.c
50$ if f$search("XDELASSOC.OBJ") then delete XDELASSOC.OBJ.*
51$ cc /obj=XDELASSOC.OBJ /NOLIST/OBJECT=XDELASSOC.OBJ XDELASSOC.c
52$ if f$search("XLOOKASSOC.OBJ") then delete XLOOKASSOC.OBJ.*
53$ cc /obj=XLOOKASSOC.OBJ /NOLIST/OBJECT=XLOOKASSOC.OBJ XLOOKASSOC.c
54$ if f$search("XCRASSOC.OBJ") then delete XCRASSOC.OBJ.*
55$ cc /obj=XCRASSOC.OBJ /NOLIST/OBJECT=XCRASSOC.OBJ XCRASSOC.c
56$ if f$search("XDESTASSOC.OBJ") then delete XDESTASSOC.OBJ.*
57$ cc /obj=XDESTASSOC.OBJ /NOLIST/OBJECT=XDESTASSOC.OBJ XDESTASSOC.c
58$ if f$search("XMAKEASSOC.OBJ") then delete XMAKEASSOC.OBJ.*
59$ cc /obj=XMAKEASSOC.OBJ /NOLIST/OBJECT=XMAKEASSOC.OBJ XMAKEASSOC.c
60$ if f$search("INSQUE.OBJ") then delete INSQUE.OBJ.*
61$ cc /obj=INSQUE.OBJ /NOLIST/OBJECT=INSQUE.OBJ INSQUE.c
62$ if f$search("LIBXMENU11.OLB") then delete LIBXMENU11.OLB.*
63$ library/insert/create LIBXMENU11.OLB Activate.obj, AddPane.obj, AddSel.obj, ChgPane.obj, ChgSel.obj, Create.obj, DelPane.obj, DelSel.obj, Destroy.obj, Error.obj, EvHand.obj, FindPane.obj, FindSel.obj, InsPane.obj, InsSel.obj, Internal.-
64obj, Locate.obj, Post.obj, Recomp.obj, SetAEQ.obj, SetFrz.obj, SetPane.obj, SetSel.obj, XDelAssoc.obj, XLookAssoc.obj, XCrAssoc.obj, XDestAssoc.obj, XMakeAssoc.obj
65$ if ("insque.obj" .nes. "") then library/insert LIBXMENU11.OLB insque.obj
66$ !
diff --git a/oldXMenu/descrip.mms b/oldXMenu/descrip.mms
deleted file mode 100644
index 93f94bcdaf1..00000000000
--- a/oldXMenu/descrip.mms
+++ /dev/null
@@ -1,111 +0,0 @@
1### descrip.mms - port of oldXMenu Makefile to VMS
2
3## Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
4## 2008 Free Software Foundation, Inc.
5
6## Author: Richard Levitte
7
8## This program is free software: you can redistribute it and/or modify
9## it under the terms of the GNU General Public License as published by
10## the Free Software Foundation, either version 3 of the License, or
11## (at your option) any later version.
12
13## This program is distributed in the hope that it will be useful,
14## but WITHOUT ANY WARRANTY; without even the implied warranty of
15## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16## GNU General Public License for more details.
17
18## You should have received a copy of the GNU General Public License
19## along with this program. If not, see <http://www.gnu.org/licenses/>.
20
21
22### Code:
23
24!# Uncomment following line if linking temacs complains about missing insque.
25EXTRA=insque.obj
26
27AS = as
28CC = cc
29LD = link
30TAGS = etags
31RM = delete
32MV = rename
33AR = library/insert
34MAKE = mms
35STD_DEFINES =
36CDEBUGFLAGS = /debug/noopt
37RM_CMD = $(RM) *.BAK.*, *.obj.*
38
39SRCS = Activate.c, -
40 AddPane.c, -
41 AddSel.c, -
42 ChgPane.c, -
43 ChgSel.c, -
44 Create.c, -
45 DelPane.c, -
46 DelSel.c, -
47 Destroy.c, -
48 Error.c, -
49 EvHand.c, -
50 FindPane.c, -
51 FindSel.c, -
52 InsPane.c, -
53 InsSel.c, -
54 Internal.c, -
55 Locate.c, -
56 Post.c, -
57 Recomp.c, -
58 SetAEQ.c, -
59 SetFrz.c, -
60 SetPane.c, -
61 SetSel.c, -
62 XDelAssoc.c, XLookAssoc.c, XCrAssoc.c, XDestAssoc.c, XMakeAssoc.c
63
64OBJS = Activate.obj, -
65 AddPane.obj, -
66 AddSel.obj, -
67 ChgPane.obj, -
68 ChgSel.obj, -
69 Create.obj, -
70 DelPane.obj, -
71 DelSel.obj, -
72 Destroy.obj, -
73 Error.obj, -
74 EvHand.obj, -
75 FindPane.obj, -
76 FindSel.obj, -
77 InsPane.obj, -
78 InsSel.obj, -
79 Internal.obj, -
80 Locate.obj, -
81 Post.obj, -
82 Recomp.obj, -
83 SetAEQ.obj, -
84 SetFrz.obj, -
85 SetPane.obj, -
86 SetSel.obj, -
87 XDelAssoc.obj, XLookAssoc.obj, XCrAssoc.obj, XDestAssoc.obj, -
88 XMakeAssoc.obj
89
90.c.obj :
91 if f$search("$@") then $(RM) $@.*
92 $(CC) /obj=$@ $(CFLAGS) $*.c
93
94all :: libXMenu11.olb
95 !
96
97libXMenu11.olb : $(OBJS) $(EXTRA)
98 if f$search("$@") then $(RM) $@.*
99 $(AR)/create $@ $(OBJS)
100 if ("$(EXTRA)" .nes. "") then $(AR) $@ $(EXTRA)
101#If running ranlib fails, probably there is none.
102#That's ok. So don't stop the build.
103
104distclean : clean
105 !
106
107clean ::
108 $(RM_CMD) \#* libXMenu11.a *.obj,
109tags ::
110 $(TAGS) -t *.[ch]
111
diff --git a/src/ChangeLog b/src/ChangeLog
index 89b730f299d..bb9f3c600a9 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,44 @@
12008-07-31 Dan Nicolaescu <dann@ics.uci.edu> 12008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
2 2
3 * bitmaps/README:
4 * xfns.c:
5 * termcap.c:
6 * term.c:
7 * syswait.h:
8 * systty.h:
9 * systime.h:
10 * syssignal.h:
11 * sysdep.c:
12 * process.h:
13 * process.c:
14 * print.c:
15 * ndir.h:
16 * lread.c:
17 * keyboard.c:
18 * getpagesize.h:
19 * floatfns.c:
20 * fileio.c:
21 * emacs.c:
22 * doc.c:
23 * dispnew.c:
24 * dired.c:
25 * data.c:
26 * callproc.c:
27 * buffer.c:
28 * README:
29 * Makefile.in:
30 * s/template.h:
31 * s/msdos.h:
32 * m/vax.h: Remove VMS support.
33 * s/vms.h:
34 * vlimit.h:
35 * uaf.h:
36 * temacs.opt:
37 * param.h:
38 * ioctl.h: Remove file.
39
402008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
41
3 * s/ms-w32.h (MULTI_KBOARD): Remove. 42 * s/ms-w32.h (MULTI_KBOARD): Remove.
4 * xterm.c: 43 * xterm.c:
5 * xselect.c: 44 * xselect.c:
diff --git a/src/Makefile.in b/src/Makefile.in
index 2fe5990a1a5..3536e816422 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -622,12 +622,6 @@ otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
622#endif 622#endif
623#endif 623#endif
624 624
625#ifdef VMS
626#define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc
627#else
628#define VMS_SUPPORT
629#endif
630
631#ifdef MSDOS 625#ifdef MSDOS
632#define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \ 626#define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
633 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \ 627 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
@@ -762,7 +756,6 @@ lisp= \
762 ${lispsource}ediff-hook.elc \ 756 ${lispsource}ediff-hook.elc \
763 ${lispsource}epa-hook.elc \ 757 ${lispsource}epa-hook.elc \
764 TOOLTIP_SUPPORT \ 758 TOOLTIP_SUPPORT \
765 VMS_SUPPORT \
766 MSDOS_SUPPORT \ 759 MSDOS_SUPPORT \
767 WINNT_SUPPORT \ 760 WINNT_SUPPORT \
768 WINDOW_SUPPORT \ 761 WINDOW_SUPPORT \
@@ -864,7 +857,6 @@ shortlisp= \
864 for the sake of systems which can''t handle large ones. */ 857 for the sake of systems which can''t handle large ones. */
865SOME_MACHINE_LISP = ../lisp/mouse.elc \ 858SOME_MACHINE_LISP = ../lisp/mouse.elc \
866 ../lisp/select.elc ../lisp/scroll-bar.elc \ 859 ../lisp/select.elc ../lisp/scroll-bar.elc \
867 VMS_SUPPORT \
868 ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \ 860 ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \
869 ../lisp/w32-fns.elc ../lisp/dos-w32.elc \ 861 ../lisp/w32-fns.elc ../lisp/dos-w32.elc \
870 ../lisp/disp-table.elc ../lisp/dos-vars.elc \ 862 ../lisp/disp-table.elc ../lisp/dos-vars.elc \
diff --git a/src/README b/src/README
index 2975b2f982e..ad37bb206fb 100644
--- a/src/README
+++ b/src/README
@@ -5,8 +5,7 @@ See the end of the file for license conditions.
5 5
6This directory contains the source files for the C component of GNU Emacs. 6This directory contains the source files for the C component of GNU Emacs.
7Nothing in this directory is needed for using Emacs once it is built 7Nothing in this directory is needed for using Emacs once it is built
8and installed, if the dumped Emacs (on Unix systems) or the Emacs 8and installed, if the dumped Emacs (on Unix systems) is copied elsewhere.
9executable and map files (on VMS systems) are copied elsewhere.
10 9
11See the files ../README and then ../INSTALL for installation instructions. 10See the files ../README and then ../INSTALL for installation instructions.
12 11
@@ -18,20 +17,6 @@ controls the compilation of Emacs. Most of this should work
18transparently to the user; you should only need to run `../configure', 17transparently to the user; you should only need to run `../configure',
19and then type `make'. 18and then type `make'.
20 19
21See the file VMSBUILD in this directory for instructions on compiling,
22linking and building Emacs on VMS.
23
24The files `*.com' and `temacs.opt' are used on VMS only.
25The files `vlimit.h', `ioclt.h' and `param.h' are stubs to
26allow compilation on VMS with the minimum amount of #ifdefs.
27
28`uaf.h' contains VMS uaf structure definitions. This is only needed if
29you define READ_SYSUAF. This should only be done for single-user
30systems where you are not overly concerned with security, since it
31either requires that you install Emacs with SYSPRV or make SYSUAF.DAT
32world readable. Otherwise, Emacs can determine information about the
33current user, but no one else.
34
35 20
36This file is part of GNU Emacs. 21This file is part of GNU Emacs.
37 22
diff --git a/src/bitmaps/README b/src/bitmaps/README
index 016aeb70e1e..2a6e72595cc 100644
--- a/src/bitmaps/README
+++ b/src/bitmaps/README
@@ -1,6 +1,5 @@
1This directory contains bitmap files that Emacs uses from 1This directory contains bitmap files that Emacs uses from
2/usr/include/X11/bitmaps. That directory doesn't seem to exist under 2/usr/include/X11/bitmaps.
3VMS.
4 3
5 4
6COPYRIGHT AND LICENSE INFORMATION 5COPYRIGHT AND LICENSE INFORMATION
diff --git a/src/buffer.c b/src/buffer.c
index 2ba21922ab8..a2d0cfac591 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5312,7 +5312,6 @@ init_buffer ()
5312 if (!pwd) 5312 if (!pwd)
5313 fatal ("`get_current_dir_name' failed: %s\n", strerror (errno)); 5313 fatal ("`get_current_dir_name' failed: %s\n", strerror (errno));
5314 5314
5315#ifndef VMS
5316 /* Maybe this should really use some standard subroutine 5315 /* Maybe this should really use some standard subroutine
5317 whose definition is filename syntax dependent. */ 5316 whose definition is filename syntax dependent. */
5318 len = strlen (pwd); 5317 len = strlen (pwd);
@@ -5323,7 +5322,6 @@ init_buffer ()
5323 pwd[len] = DIRECTORY_SEP; 5322 pwd[len] = DIRECTORY_SEP;
5324 pwd[len + 1] = '\0'; 5323 pwd[len + 1] = '\0';
5325 } 5324 }
5326#endif /* not VMS */
5327 5325
5328 current_buffer->directory = make_unibyte_string (pwd, strlen (pwd)); 5326 current_buffer->directory = make_unibyte_string (pwd, strlen (pwd));
5329 if (! NILP (buffer_defaults.enable_multibyte_characters)) 5327 if (! NILP (buffer_defaults.enable_multibyte_characters))
diff --git a/src/callproc.c b/src/callproc.c
index a6de7668c15..1aad176978e 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -90,13 +90,9 @@ extern int errno;
90#include "msdos.h" 90#include "msdos.h"
91#endif 91#endif
92 92
93#ifdef VMS
94extern noshare char **environ;
95#else
96#ifndef USE_CRT_DLL 93#ifndef USE_CRT_DLL
97extern char **environ; 94extern char **environ;
98#endif 95#endif
99#endif
100 96
101#ifdef HAVE_SETPGID 97#ifdef HAVE_SETPGID
102#if !defined (USG) || defined (BSD_PGRPS) 98#if !defined (USG) || defined (BSD_PGRPS)
@@ -142,8 +138,6 @@ static int call_process_exited;
142 138
143EXFUN (Fgetenv_internal, 2); 139EXFUN (Fgetenv_internal, 2);
144 140
145#ifndef VMS /* VMS version is in vmsproc.c. */
146
147static Lisp_Object 141static Lisp_Object
148call_process_kill (fdpid) 142call_process_kill (fdpid)
149 Lisp_Object fdpid; 143 Lisp_Object fdpid;
@@ -843,7 +837,6 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
843 Vlocale_coding_system, 0); 837 Vlocale_coding_system, 0);
844 return make_number (synch_process_retcode); 838 return make_number (synch_process_retcode);
845} 839}
846#endif
847 840
848static Lisp_Object 841static Lisp_Object
849delete_temp_file (name) 842delete_temp_file (name)
@@ -999,8 +992,6 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r
999 RETURN_UNGCPRO (unbind_to (count, Fcall_process (nargs, args))); 992 RETURN_UNGCPRO (unbind_to (count, Fcall_process (nargs, args)));
1000} 993}
1001 994
1002#ifndef VMS /* VMS version is in vmsproc.c. */
1003
1004static int relocate_fd (); 995static int relocate_fd ();
1005 996
1006static char ** 997static char **
@@ -1448,7 +1439,6 @@ egetenv (var)
1448 return 0; 1439 return 0;
1449} 1440}
1450 1441
1451#endif /* not VMS */
1452 1442
1453/* This is run before init_cmdargs. */ 1443/* This is run before init_cmdargs. */
1454 1444
@@ -1551,16 +1541,9 @@ init_callproc ()
1551 dir_warning ("Warning: arch-independent data dir (%s) does not exist.\n", 1541 dir_warning ("Warning: arch-independent data dir (%s) does not exist.\n",
1552 Vdata_directory); 1542 Vdata_directory);
1553 1543
1554#ifdef VMS
1555 Vshell_file_name = build_string ("*dcl*");
1556#else
1557 sh = (char *) getenv ("SHELL"); 1544 sh = (char *) getenv ("SHELL");
1558 Vshell_file_name = build_string (sh ? sh : "/bin/sh"); 1545 Vshell_file_name = build_string (sh ? sh : "/bin/sh");
1559#endif
1560 1546
1561#ifdef VMS
1562 Vtemp_file_name_pattern = build_string ("tmp:emacsXXXXXX.");
1563#else
1564 if (getenv ("TMPDIR")) 1547 if (getenv ("TMPDIR"))
1565 { 1548 {
1566 char *dir = getenv ("TMPDIR"); 1549 char *dir = getenv ("TMPDIR");
@@ -1570,7 +1553,6 @@ init_callproc ()
1570 } 1553 }
1571 else 1554 else
1572 Vtemp_file_name_pattern = build_string ("/tmp/emacsXXXXXX"); 1555 Vtemp_file_name_pattern = build_string ("/tmp/emacsXXXXXX");
1573#endif
1574 1556
1575#ifdef DOS_NT 1557#ifdef DOS_NT
1576 Vshared_game_score_directory = Qnil; 1558 Vshared_game_score_directory = Qnil;
@@ -1686,10 +1668,8 @@ use.
1686See `setenv' and `getenv'. */); 1668See `setenv' and `getenv'. */);
1687 Vprocess_environment = Qnil; 1669 Vprocess_environment = Qnil;
1688 1670
1689#ifndef VMS
1690 defsubr (&Scall_process); 1671 defsubr (&Scall_process);
1691 defsubr (&Sgetenv_internal); 1672 defsubr (&Sgetenv_internal);
1692#endif
1693 defsubr (&Scall_process_region); 1673 defsubr (&Scall_process_region);
1694} 1674}
1695 1675
diff --git a/src/data.c b/src/data.c
index ab52c20c77f..54c0d7c211c 100644
--- a/src/data.c
+++ b/src/data.c
@@ -3271,10 +3271,6 @@ arith_error (signo)
3271 must reestablish each time */ 3271 must reestablish each time */
3272 signal (signo, arith_error); 3272 signal (signo, arith_error);
3273#endif /* USG */ 3273#endif /* USG */
3274#ifdef VMS
3275 /* VMS systems are like USG. */
3276 signal (signo, arith_error);
3277#endif /* VMS */
3278 sigsetmask (SIGEMPTYMASK); 3274 sigsetmask (SIGEMPTYMASK);
3279 3275
3280 SIGNAL_THREAD_CHECK (signo); 3276 SIGNAL_THREAD_CHECK (signo);
diff --git a/src/dired.c b/src/dired.c
index 2d82c4bfdc3..5e82fef0df2 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -27,18 +27,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
27#ifdef HAVE_PWD_H 27#ifdef HAVE_PWD_H
28#include <pwd.h> 28#include <pwd.h>
29#endif 29#endif
30#ifndef VMS
31#include <grp.h> 30#include <grp.h>
32#endif
33 31
34#include <errno.h> 32#include <errno.h>
35 33
36#ifdef VMS
37#include <string.h>
38#include <rms.h>
39#include <rmsdef.h>
40#endif
41
42#ifdef HAVE_UNISTD_H 34#ifdef HAVE_UNISTD_H
43#include <unistd.h> 35#include <unistd.h>
44#endif 36#endif
@@ -62,15 +54,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
62 54
63#else /* not SYSV_SYSTEM_DIR */ 55#else /* not SYSV_SYSTEM_DIR */
64 56
65#ifdef NONSYSTEM_DIR_LIBRARY
66#include "ndir.h"
67#else /* not NONSYSTEM_DIR_LIBRARY */
68#ifdef MSDOS 57#ifdef MSDOS
69#include <dirent.h> 58#include <dirent.h>
70#else 59#else
71#include <sys/dir.h> 60#include <sys/dir.h>
72#endif 61#endif
73#endif /* not NONSYSTEM_DIR_LIBRARY */
74 62
75#include <sys/stat.h> 63#include <sys/stat.h>
76 64
@@ -174,10 +162,6 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
174 compile_pattern to do the work for us. */ 162 compile_pattern to do the work for us. */
175 /* Pass 1 for the MULTIBYTE arg 163 /* Pass 1 for the MULTIBYTE arg
176 because we do make multibyte strings if the contents warrant. */ 164 because we do make multibyte strings if the contents warrant. */
177#ifdef VMS
178 bufp = compile_pattern (match, 0,
179 buffer_defaults.downcase_table, 0, 1);
180#else /* !VMS */
181# ifdef WINDOWSNT 165# ifdef WINDOWSNT
182 /* Windows users want case-insensitive wildcards. */ 166 /* Windows users want case-insensitive wildcards. */
183 bufp = compile_pattern (match, 0, 167 bufp = compile_pattern (match, 0,
@@ -185,7 +169,6 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
185# else /* !WINDOWSNT */ 169# else /* !WINDOWSNT */
186 bufp = compile_pattern (match, 0, Qnil, 0, 1); 170 bufp = compile_pattern (match, 0, Qnil, 0, 1);
187# endif /* !WINDOWSNT */ 171# endif /* !WINDOWSNT */
188#endif /* !VMS */
189 } 172 }
190 173
191 /* Note: ENCODE_FILE and DECODE_FILE can GC because they can run 174 /* Note: ENCODE_FILE and DECODE_FILE can GC because they can run
@@ -215,11 +198,9 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
215 re_match_object = Qt; 198 re_match_object = Qt;
216 199
217 /* Decide whether we need to add a directory separator. */ 200 /* Decide whether we need to add a directory separator. */
218#ifndef VMS
219 if (directory_nbytes == 0 201 if (directory_nbytes == 0
220 || !IS_ANY_SEP (SREF (directory, directory_nbytes - 1))) 202 || !IS_ANY_SEP (SREF (directory, directory_nbytes - 1)))
221 needsep = 1; 203 needsep = 1;
222#endif /* not VMS */
223 204
224 /* Loop reading blocks until EOF or error. */ 205 /* Loop reading blocks until EOF or error. */
225 for (;;) 206 for (;;)
@@ -483,21 +464,7 @@ file_name_completion (file, dirname, all_flag, ver_flag, predicate)
483 464
484 elt = Qnil; 465 elt = Qnil;
485 466
486#ifdef VMS
487 extern DIRENTRY * readdirver ();
488
489 DIRENTRY *((* readfunc) ());
490
491 /* Filename completion on VMS ignores case, since VMS filesys does. */
492 specbind (Qcompletion_ignore_case, Qt);
493
494 readfunc = readdir;
495 if (ver_flag)
496 readfunc = readdirver;
497 file = Fupcase (file);
498#else /* not VMS */
499 CHECK_STRING (file); 467 CHECK_STRING (file);
500#endif /* not VMS */
501 468
502#ifdef FILE_SYSTEM_CASE 469#ifdef FILE_SYSTEM_CASE
503 file = FILE_SYSTEM_CASE (file); 470 file = FILE_SYSTEM_CASE (file);
@@ -535,9 +502,6 @@ file_name_completion (file, dirname, all_flag, ver_flag, predicate)
535 int len; 502 int len;
536 int canexclude = 0; 503 int canexclude = 0;
537 504
538#ifdef VMS
539 dp = (*readfunc) (d);
540#else
541 errno = 0; 505 errno = 0;
542 dp = readdir (d); 506 dp = readdir (d);
543 if (dp == NULL && (0 507 if (dp == NULL && (0
@@ -549,7 +513,6 @@ file_name_completion (file, dirname, all_flag, ver_flag, predicate)
549# endif 513# endif
550 )) 514 ))
551 { QUIT; continue; } 515 { QUIT; continue; }
552#endif
553 516
554 if (!dp) break; 517 if (!dp) break;
555 518
@@ -830,10 +793,8 @@ file_name_completion_stat (dirname, dp, st_addr)
830#endif /* MSDOS */ 793#endif /* MSDOS */
831 794
832 bcopy (SDATA (dirname), fullname, pos); 795 bcopy (SDATA (dirname), fullname, pos);
833#ifndef VMS
834 if (!IS_DIRECTORY_SEP (fullname[pos - 1])) 796 if (!IS_DIRECTORY_SEP (fullname[pos - 1]))
835 fullname[pos++] = DIRECTORY_SEP; 797 fullname[pos++] = DIRECTORY_SEP;
836#endif
837 798
838 bcopy (dp->d_name, fullname + pos, len); 799 bcopy (dp->d_name, fullname + pos, len);
839 fullname[pos + len] = 0; 800 fullname[pos + len] = 0;
@@ -856,47 +817,6 @@ file_name_completion_stat (dirname, dp, st_addr)
856#endif /* S_IFLNK */ 817#endif /* S_IFLNK */
857} 818}
858 819
859#ifdef VMS
860
861DEFUN ("file-name-all-versions", Ffile_name_all_versions,
862 Sfile_name_all_versions, 2, 2, 0,
863 doc: /* Return a list of all versions of file name FILE in directory DIRECTORY. */)
864 (file, directory)
865 Lisp_Object file, directory;
866{
867 return file_name_completion (file, directory, 1, 1, Qnil);
868}
869
870DEFUN ("file-version-limit", Ffile_version_limit, Sfile_version_limit, 1, 1, 0,
871 doc: /* Return the maximum number of versions allowed for FILE.
872Returns nil if the file cannot be opened or if there is no version limit. */)
873 (filename)
874 Lisp_Object filename;
875{
876 Lisp_Object retval;
877 struct FAB fab;
878 struct RAB rab;
879 struct XABFHC xabfhc;
880 int status;
881
882 filename = Fexpand_file_name (filename, Qnil);
883 fab = cc$rms_fab;
884 xabfhc = cc$rms_xabfhc;
885 fab.fab$l_fna = SDATA (filename);
886 fab.fab$b_fns = strlen (fab.fab$l_fna);
887 fab.fab$l_xab = (char *) &xabfhc;
888 status = sys$open (&fab, 0, 0);
889 if (status != RMS$_NORMAL) /* Probably non-existent file */
890 return Qnil;
891 sys$close (&fab, 0, 0);
892 if (xabfhc.xab$w_verlimit == 32767)
893 return Qnil; /* No version limit */
894 else
895 return make_number (xabfhc.xab$w_verlimit);
896}
897
898#endif /* VMS */
899
900Lisp_Object 820Lisp_Object
901make_time (time) 821make_time (time)
902 time_t time; 822 time_t time;
@@ -1132,10 +1052,6 @@ syms_of_dired ()
1132 defsubr (&Sdirectory_files); 1052 defsubr (&Sdirectory_files);
1133 defsubr (&Sdirectory_files_and_attributes); 1053 defsubr (&Sdirectory_files_and_attributes);
1134 defsubr (&Sfile_name_completion); 1054 defsubr (&Sfile_name_completion);
1135#ifdef VMS
1136 defsubr (&Sfile_name_all_versions);
1137 defsubr (&Sfile_version_limit);
1138#endif /* VMS */
1139 defsubr (&Sfile_name_all_completions); 1055 defsubr (&Sfile_name_all_completions);
1140 defsubr (&Sfile_attributes); 1056 defsubr (&Sfile_attributes);
1141 defsubr (&Sfile_attributes_lessp); 1057 defsubr (&Sfile_attributes_lessp);
diff --git a/src/dispnew.c b/src/dispnew.c
index 4c55f2e7adb..e3e73919fe4 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -6836,12 +6836,7 @@ init_display ()
6836 if (! inhibit_window_system && ! display_arg) 6836 if (! inhibit_window_system && ! display_arg)
6837 { 6837 {
6838 char *display; 6838 char *display;
6839#ifdef VMS
6840 display = getenv ("DECW$DISPLAY");
6841#else
6842 display = getenv ("DISPLAY"); 6839 display = getenv ("DISPLAY");
6843#endif
6844
6845 display_arg = (display != 0 && *display != 0); 6840 display_arg = (display != 0 && *display != 0);
6846 6841
6847 if (display_arg && !x_display_ok (display)) 6842 if (display_arg && !x_display_ok (display))
@@ -6912,40 +6907,15 @@ init_display ()
6912#endif 6907#endif
6913 if (!terminal_type) 6908 if (!terminal_type)
6914 { 6909 {
6915#ifdef VMS
6916 fprintf (stderr, "Please specify your terminal type.\n\
6917For types defined in VMS, use set term /device=TYPE.\n\
6918For types not defined in VMS, use define emacs_term \"TYPE\".\n\
6919\(The quotation marks are necessary since terminal types are lower case.)\n");
6920#else /* not VMS */
6921
6922#ifdef HAVE_WINDOW_SYSTEM 6910#ifdef HAVE_WINDOW_SYSTEM
6923 if (! inhibit_window_system) 6911 if (! inhibit_window_system)
6924 fprintf (stderr, "Please set the environment variable DISPLAY or TERM (see `tset').\n"); 6912 fprintf (stderr, "Please set the environment variable DISPLAY or TERM (see `tset').\n");
6925 else 6913 else
6926#endif /* HAVE_WINDOW_SYSTEM */ 6914#endif /* HAVE_WINDOW_SYSTEM */
6927 fprintf (stderr, "Please set the environment variable TERM; see `tset'.\n"); 6915 fprintf (stderr, "Please set the environment variable TERM; see `tset'.\n");
6928#endif /* not VMS */
6929 exit (1); 6916 exit (1);
6930 } 6917 }
6931 6918
6932#ifdef VMS
6933 /* VMS DCL tends to up-case things, so down-case term type.
6934 Hardly any uppercase letters in terminal types; should be none. */
6935 {
6936 char *new = (char *) xmalloc (strlen (terminal_type) + 1);
6937 char *p;
6938
6939 strcpy (new, terminal_type);
6940
6941 for (p = new; *p; p++)
6942 if (isupper (*p))
6943 *p = tolower (*p);
6944
6945 terminal_type = new;
6946 }
6947#endif /* VMS */
6948
6949 { 6919 {
6950 struct terminal *t; 6920 struct terminal *t;
6951 struct frame *f = XFRAME (selected_frame); 6921 struct frame *f = XFRAME (selected_frame);
diff --git a/src/doc.c b/src/doc.c
index 433a6109afc..7f9ab5d3b38 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -58,28 +58,6 @@ extern Lisp_Object Voverriding_local_map;
58 58
59extern Lisp_Object Qremap; 59extern Lisp_Object Qremap;
60 60
61/* For VMS versions with limited file name syntax,
62 convert the name to something VMS will allow. */
63static void
64munge_doc_file_name (name)
65 char *name;
66{
67#ifdef VMS
68#ifndef NO_HYPHENS_IN_FILENAMES
69 extern char * sys_translate_unix (char *ufile);
70 strcpy (name, sys_translate_unix (name));
71#else /* NO_HYPHENS_IN_FILENAMES */
72 char *p = name;
73 while (*p)
74 {
75 if (*p == '-')
76 *p = '_';
77 p++;
78 }
79#endif /* NO_HYPHENS_IN_FILENAMES */
80#endif /* VMS */
81}
82
83/* Buffer used for reading from documentation file. */ 61/* Buffer used for reading from documentation file. */
84static char *get_doc_string_buffer; 62static char *get_doc_string_buffer;
85static int get_doc_string_buffer_size; 63static int get_doc_string_buffer_size;
@@ -169,7 +147,6 @@ get_doc_string (filepos, unibyte, definition)
169 name = (char *) alloca (minsize + SCHARS (file) + 8); 147 name = (char *) alloca (minsize + SCHARS (file) + 8);
170 strcpy (name, SDATA (Vdoc_directory)); 148 strcpy (name, SDATA (Vdoc_directory));
171 strcat (name, SDATA (file)); 149 strcat (name, SDATA (file));
172 munge_doc_file_name (name);
173 } 150 }
174 else 151 else
175 { 152 {
@@ -186,7 +163,6 @@ get_doc_string (filepos, unibyte, definition)
186 So check in ../etc. */ 163 So check in ../etc. */
187 strcpy (name, "../etc/"); 164 strcpy (name, "../etc/");
188 strcat (name, SDATA (file)); 165 strcat (name, SDATA (file));
189 munge_doc_file_name (name);
190 166
191 fd = emacs_open (name, O_RDONLY, 0); 167 fd = emacs_open (name, O_RDONLY, 0);
192 } 168 }
@@ -618,7 +594,6 @@ the same file name is found in the `doc-directory'. */)
618 strcpy (name, SDATA (Vdoc_directory)); 594 strcpy (name, SDATA (Vdoc_directory));
619 } 595 }
620 strcat (name, SDATA (filename)); /*** Add this line ***/ 596 strcat (name, SDATA (filename)); /*** Add this line ***/
621 munge_doc_file_name (name);
622 597
623 /* Vbuild_files is nil when temacs is run, and non-nil after that. */ 598 /* Vbuild_files is nil when temacs is run, and non-nil after that. */
624 if (NILP (Vbuild_files)) 599 if (NILP (Vbuild_files))
diff --git a/src/emacs.c b/src/emacs.c
index 9d1e69f600f..ece0e41487d 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -27,10 +27,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
27#include <sys/types.h> 27#include <sys/types.h>
28#include <sys/file.h> 28#include <sys/file.h>
29 29
30#ifdef VMS
31#include <ssdef.h>
32#endif
33
34#ifdef HAVE_UNISTD_H 30#ifdef HAVE_UNISTD_H
35#include <unistd.h> 31#include <unistd.h>
36#endif 32#endif
@@ -378,9 +374,6 @@ fatal_error_signal (sig)
378 shut_down_emacs (sig, 0, Qnil); 374 shut_down_emacs (sig, 0, Qnil);
379 } 375 }
380 376
381#ifdef VMS
382 LIB$STOP (SS$_ABORT);
383#else
384 /* Signal the same code; this time it will really be fatal. 377 /* Signal the same code; this time it will really be fatal.
385 Remember that since we're in a signal handler, the signal we're 378 Remember that since we're in a signal handler, the signal we're
386 going to send is probably blocked, so we have to unblock it if we 379 going to send is probably blocked, so we have to unblock it if we
@@ -393,7 +386,6 @@ fatal_error_signal (sig)
393 fatal_error_signal_hook (); 386 fatal_error_signal_hook ();
394 387
395 kill (getpid (), fatal_error_code); 388 kill (getpid (), fatal_error_code);
396#endif /* not VMS */
397} 389}
398 390
399#ifdef SIGDANGER 391#ifdef SIGDANGER
@@ -591,14 +583,6 @@ DEFUN ("invocation-directory", Finvocation_directory, Sinvocation_directory,
591} 583}
592 584
593 585
594#ifdef VMS
595#ifdef LINK_CRTL_SHARE
596#ifdef SHARABLE_LIB_BUG
597extern noshare char **environ;
598#endif /* SHARABLE_LIB_BUG */
599#endif /* LINK_CRTL_SHARE */
600#endif /* VMS */
601
602#ifdef HAVE_TZSET 586#ifdef HAVE_TZSET
603/* A valid but unlikely value for the TZ environment value. 587/* A valid but unlikely value for the TZ environment value.
604 It is OK (though a bit slower) if the user actually chooses this value. */ 588 It is OK (though a bit slower) if the user actually chooses this value. */
@@ -785,16 +769,7 @@ bug_reporting_address ()
785 769
786/* ARGSUSED */ 770/* ARGSUSED */
787int 771int
788main (argc, argv 772main (int argc, char **argv)
789#ifdef VMS
790, envp
791#endif
792)
793 int argc;
794 char **argv;
795#ifdef VMS
796 char **envp;
797#endif
798{ 773{
799#if GC_MARK_STACK 774#if GC_MARK_STACK
800 Lisp_Object dummy; 775 Lisp_Object dummy;
@@ -921,29 +896,6 @@ main (argc, argv
921 } 896 }
922#endif 897#endif
923 898
924#ifdef VMS
925 /* If -map specified, map the data file in. */
926 {
927 char *file;
928 if (argmatch (argv, argc, "-map", "--map-data", 3, &file, &skip_args))
929 mapin_data (file);
930 }
931
932#ifdef LINK_CRTL_SHARE
933#ifdef SHARABLE_LIB_BUG
934 /* Bletcherous shared libraries! */
935 if (!stdin)
936 stdin = fdopen (0, "r");
937 if (!stdout)
938 stdout = fdopen (1, "w");
939 if (!stderr)
940 stderr = fdopen (2, "w");
941 if (!environ)
942 environ = envp;
943#endif /* SHARABLE_LIB_BUG */
944#endif /* LINK_CRTL_SHARE */
945#endif /* VMS */
946
947#if defined (HAVE_SETRLIMIT) && defined (RLIMIT_STACK) 899#if defined (HAVE_SETRLIMIT) && defined (RLIMIT_STACK)
948 /* Extend the stack space available. 900 /* Extend the stack space available.
949 Don't do that if dumping, since some systems (e.g. DJGPP) 901 Don't do that if dumping, since some systems (e.g. DJGPP)
@@ -1565,9 +1517,6 @@ main (argc, argv
1565#endif 1517#endif
1566 syms_of_textprop (); 1518 syms_of_textprop ();
1567 syms_of_composite (); 1519 syms_of_composite ();
1568#ifdef VMS
1569 syms_of_vmsproc ();
1570#endif /* VMS */
1571#ifdef WINDOWSNT 1520#ifdef WINDOWSNT
1572 syms_of_ntproc (); 1521 syms_of_ntproc ();
1573#endif /* WINDOWSNT */ 1522#endif /* WINDOWSNT */
@@ -1644,16 +1593,8 @@ main (argc, argv
1644 init_editfns (); /* init_process uses Voperating_system_release. */ 1593 init_editfns (); /* init_process uses Voperating_system_release. */
1645 init_process (); /* init_display uses add_keyboard_wait_descriptor. */ 1594 init_process (); /* init_display uses add_keyboard_wait_descriptor. */
1646 init_keyboard (); /* This too must precede init_sys_modes. */ 1595 init_keyboard (); /* This too must precede init_sys_modes. */
1647#ifdef VMS
1648 init_vmsproc (); /* And this too. */
1649#endif /* VMS */
1650 if (!noninteractive) 1596 if (!noninteractive)
1651 { 1597 init_display (); /* Determine terminal type. Calls init_sys_modes. */
1652#ifdef VMS
1653 init_vms_input ();/* init_display calls get_tty_size, that needs this. */
1654#endif /* VMS */
1655 init_display (); /* Determine terminal type. Calls init_sys_modes. */
1656 }
1657 init_fns (); 1598 init_fns ();
1658 init_xdisp (); 1599 init_xdisp ();
1659#ifdef HAVE_WINDOW_SYSTEM 1600#ifdef HAVE_WINDOW_SYSTEM
@@ -1662,9 +1603,6 @@ main (argc, argv
1662#endif /* HAVE_WINDOW_SYSTEM */ 1603#endif /* HAVE_WINDOW_SYSTEM */
1663 init_macros (); 1604 init_macros ();
1664 init_floatfns (); 1605 init_floatfns ();
1665#ifdef VMS
1666 init_vmsfns ();
1667#endif /* VMS */
1668#ifdef HAVE_SOUND 1606#ifdef HAVE_SOUND
1669 init_sound (); 1607 init_sound ();
1670#endif 1608#endif
@@ -1770,9 +1708,6 @@ struct standard_args standard_args[] =
1770#ifdef HAVE_SHM 1708#ifdef HAVE_SHM
1771 { "-nl", "--no-shared-memory", 140, 0 }, 1709 { "-nl", "--no-shared-memory", 140, 0 },
1772#endif 1710#endif
1773#ifdef VMS
1774 { "-map", "--map-data", 130, 0 },
1775#endif
1776 { "-t", "--terminal", 120, 1 }, 1711 { "-t", "--terminal", 120, 1 },
1777 { "-nw", "--no-window-system", 110, 0 }, 1712 { "-nw", "--no-window-system", 110, 0 },
1778 { "-nw", "--no-windows", 110, 0 }, 1713 { "-nw", "--no-windows", 110, 0 },
@@ -2051,12 +1986,6 @@ all of which are called before Emacs is actually killed. */)
2051 1986
2052 UNGCPRO; 1987 UNGCPRO;
2053 1988
2054/* Is it really necessary to do this deassign
2055 when we are going to exit anyway? */
2056/* #ifdef VMS
2057 stop_vms_input ();
2058 #endif */
2059
2060 shut_down_emacs (0, 0, STRINGP (arg) ? arg : Qnil); 1989 shut_down_emacs (0, 0, STRINGP (arg) ? arg : Qnil);
2061 1990
2062 /* If we have an auto-save list file, 1991 /* If we have an auto-save list file,
@@ -2124,10 +2053,6 @@ shut_down_emacs (sig, no_x, stuff)
2124 unlock_all_files (); 2053 unlock_all_files ();
2125#endif 2054#endif
2126 2055
2127#ifdef VMS
2128 kill_vms_processes ();
2129#endif
2130
2131#if 0 /* This triggers a bug in XCloseDisplay and is not needed. */ 2056#if 0 /* This triggers a bug in XCloseDisplay and is not needed. */
2132#ifdef HAVE_X_WINDOWS 2057#ifdef HAVE_X_WINDOWS
2133 /* It's not safe to call intern here. Maybe we are crashing. */ 2058 /* It's not safe to call intern here. Maybe we are crashing. */
@@ -2264,9 +2189,6 @@ You must run Emacs in batch mode in order to dump it. */)
2264#endif 2189#endif
2265 2190
2266 fflush (stdout); 2191 fflush (stdout);
2267#ifdef VMS
2268 mapout_data (SDATA (filename));
2269#else
2270 /* Tell malloc where start of impure now is. */ 2192 /* Tell malloc where start of impure now is. */
2271 /* Also arrange for warnings when nearly out of space. */ 2193 /* Also arrange for warnings when nearly out of space. */
2272#ifndef SYSTEM_MALLOC 2194#ifndef SYSTEM_MALLOC
@@ -2297,7 +2219,6 @@ You must run Emacs in batch mode in order to dump it. */)
2297#ifdef DOUG_LEA_MALLOC 2219#ifdef DOUG_LEA_MALLOC
2298 free (malloc_state_ptr); 2220 free (malloc_state_ptr);
2299#endif 2221#endif
2300#endif /* not VMS */
2301 2222
2302 Vpurify_flag = tem; 2223 Vpurify_flag = tem;
2303 2224
@@ -2455,7 +2376,6 @@ Special values:
2455 `ms-dos' compiled as an MS-DOS application. 2376 `ms-dos' compiled as an MS-DOS application.
2456 `windows-nt' compiled as a native W32 application. 2377 `windows-nt' compiled as a native W32 application.
2457 `cygwin' compiled using the Cygwin library. 2378 `cygwin' compiled using the Cygwin library.
2458 `vax-vms' compiled for a (Open)VMS system.
2459Anything else indicates some sort of Unix system. */); 2379Anything else indicates some sort of Unix system. */);
2460 Vsystem_type = intern (SYSTEM_TYPE); 2380 Vsystem_type = intern (SYSTEM_TYPE);
2461 2381
diff --git a/src/fileio.c b/src/fileio.c
index 918c06fdced..69eac9a7e98 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -50,14 +50,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
50#endif 50#endif
51 51
52#include <ctype.h> 52#include <ctype.h>
53
54#ifdef VMS
55#include "vmsdir.h"
56#include <perror.h>
57#include <stddef.h>
58#include <string.h>
59#endif
60
61#include <errno.h> 53#include <errno.h>
62 54
63#ifndef vax11c 55#ifndef vax11c
@@ -111,13 +103,6 @@ extern int errno;
111#define DRIVE_LETTER(x) (tolower (x)) 103#define DRIVE_LETTER(x) (tolower (x))
112#endif 104#endif
113 105
114#ifdef VMS
115#include <file.h>
116#include <rmsdef.h>
117#include <fab.h>
118#include <nam.h>
119#endif
120
121#include "systime.h" 106#include "systime.h"
122 107
123#ifdef HPUX 108#ifdef HPUX
@@ -200,10 +185,6 @@ Lisp_Object Vwrite_region_annotations_so_far;
200/* File name in which we write a list of all our auto save files. */ 185/* File name in which we write a list of all our auto save files. */
201Lisp_Object Vauto_save_list_file_name; 186Lisp_Object Vauto_save_list_file_name;
202 187
203/* On VMS, nonzero means write new files with record format stmlf.
204 Zero means use var format. */
205int vms_stmlf_recfm;
206
207/* On NT, specifies the directory separator character, used (eg.) when 188/* On NT, specifies the directory separator character, used (eg.) when
208 expanding file names. This can be bound to / or \. */ 189 expanding file names. This can be bound to / or \. */
209Lisp_Object Vdirectory_sep_char; 190Lisp_Object Vdirectory_sep_char;
@@ -404,8 +385,7 @@ DEFUN ("file-name-directory", Ffile_name_directory, Sfile_name_directory,
404 doc: /* Return the directory component in file name FILENAME. 385 doc: /* Return the directory component in file name FILENAME.
405Return nil if FILENAME does not include a directory. 386Return nil if FILENAME does not include a directory.
406Otherwise return a directory name. 387Otherwise return a directory name.
407Given a Unix syntax file name, returns a string ending in slash; 388Given a Unix syntax file name, returns a string ending in slash. */)
408on VMS, perhaps instead a string ending in `:', `]' or `>'. */)
409 (filename) 389 (filename)
410 Lisp_Object filename; 390 Lisp_Object filename;
411{ 391{
@@ -433,9 +413,6 @@ on VMS, perhaps instead a string ending in `:', `]' or `>'. */)
433 p = beg + SBYTES (filename); 413 p = beg + SBYTES (filename);
434 414
435 while (p != beg && !IS_DIRECTORY_SEP (p[-1]) 415 while (p != beg && !IS_DIRECTORY_SEP (p[-1])
436#ifdef VMS
437 && p[-1] != ':' && p[-1] != ']' && p[-1] != '>'
438#endif /* VMS */
439#ifdef DOS_NT 416#ifdef DOS_NT
440 /* only recognise drive specifier at the beginning */ 417 /* only recognise drive specifier at the beginning */
441 && !(p[-1] == ':' 418 && !(p[-1] == ':'
@@ -500,9 +477,6 @@ or the entire name if it contains no slash. */)
500 end = p = beg + SBYTES (filename); 477 end = p = beg + SBYTES (filename);
501 478
502 while (p != beg && !IS_DIRECTORY_SEP (p[-1]) 479 while (p != beg && !IS_DIRECTORY_SEP (p[-1])
503#ifdef VMS
504 && p[-1] != ':' && p[-1] != ']' && p[-1] != '>'
505#endif /* VMS */
506#ifdef DOS_NT 480#ifdef DOS_NT
507 /* only recognise drive specifier at beginning */ 481 /* only recognise drive specifier at beginning */
508 && !(p[-1] == ':' 482 && !(p[-1] == ':'
@@ -557,64 +531,6 @@ file_name_as_directory (out, in)
557 return out; 531 return out;
558 } 532 }
559 533
560#ifdef VMS
561 /* Is it already a directory string? */
562 if (in[size] == ':' || in[size] == ']' || in[size] == '>')
563 return out;
564 /* Is it a VMS directory file name? If so, hack VMS syntax. */
565 else if (! index (in, '/')
566 && ((size > 3 && ! strcmp (&in[size - 3], ".DIR"))
567 || (size > 3 && ! strcmp (&in[size - 3], ".dir"))
568 || (size > 5 && (! strncmp (&in[size - 5], ".DIR", 4)
569 || ! strncmp (&in[size - 5], ".dir", 4))
570 && (in[size - 1] == '.' || in[size - 1] == ';')
571 && in[size] == '1')))
572 {
573 register char *p, *dot;
574 char brack;
575
576 /* x.dir -> [.x]
577 dir:x.dir --> dir:[x]
578 dir:[x]y.dir --> dir:[x.y] */
579 p = in + size;
580 while (p != in && *p != ':' && *p != '>' && *p != ']') p--;
581 if (p != in)
582 {
583 strncpy (out, in, p - in);
584 out[p - in] = '\0';
585 if (*p == ':')
586 {
587 brack = ']';
588 strcat (out, ":[");
589 }
590 else
591 {
592 brack = *p;
593 strcat (out, ".");
594 }
595 p++;
596 }
597 else
598 {
599 brack = ']';
600 strcpy (out, "[.");
601 }
602 dot = index (p, '.');
603 if (dot)
604 {
605 /* blindly remove any extension */
606 size = strlen (out) + (dot - p);
607 strncat (out, p, dot - p);
608 }
609 else
610 {
611 strcat (out, p);
612 size = strlen (out);
613 }
614 out[size++] = brack;
615 out[size] = '\0';
616 }
617#else /* not VMS */
618 /* For Unix syntax, Append a slash if necessary */ 534 /* For Unix syntax, Append a slash if necessary */
619 if (!IS_DIRECTORY_SEP (out[size])) 535 if (!IS_DIRECTORY_SEP (out[size]))
620 { 536 {
@@ -625,7 +541,6 @@ file_name_as_directory (out, in)
625#ifdef DOS_NT 541#ifdef DOS_NT
626 CORRECT_DIR_SEPS (out); 542 CORRECT_DIR_SEPS (out);
627#endif 543#endif
628#endif /* not VMS */
629 return out; 544 return out;
630} 545}
631 546
@@ -636,8 +551,7 @@ This operation exists because a directory is also a file, but its name as
636a directory is different from its name as a file. 551a directory is different from its name as a file.
637The result can be used as the value of `default-directory' 552The result can be used as the value of `default-directory'
638or passed as second argument to `expand-file-name'. 553or passed as second argument to `expand-file-name'.
639For a Unix-syntax file name, just appends a slash. 554For a Unix-syntax file name, just appends a slash. */)
640On VMS, converts \"[X]FOO.DIR\" to \"[X.FOO]\", etc. */)
641 (file) 555 (file)
642 Lisp_Object file; 556 Lisp_Object file;
643{ 557{
@@ -662,9 +576,6 @@ On VMS, converts \"[X]FOO.DIR\" to \"[X.FOO]\", etc. */)
662 576
663/* 577/*
664 * Convert from directory name to filename. 578 * Convert from directory name to filename.
665 * On VMS:
666 * xyzzy:[mukesh.emacs] => xyzzy:[mukesh]emacs.dir.1
667 * xyzzy:[mukesh] => xyzzy:[000000]mukesh.dir.1
668 * On UNIX, it's simple: just make sure there isn't a terminating / 579 * On UNIX, it's simple: just make sure there isn't a terminating /
669 580
670 * Value is nonzero if the string output is different from the input. 581 * Value is nonzero if the string output is different from the input.
@@ -675,130 +586,9 @@ directory_file_name (src, dst)
675 char *src, *dst; 586 char *src, *dst;
676{ 587{
677 long slen; 588 long slen;
678#ifdef VMS
679 long rlen;
680 char * ptr, * rptr;
681 char bracket;
682 struct FAB fab = cc$rms_fab;
683 struct NAM nam = cc$rms_nam;
684 char esa[NAM$C_MAXRSS];
685#endif /* VMS */
686 589
687 slen = strlen (src); 590 slen = strlen (src);
688#ifdef VMS 591
689 if (! index (src, '/')
690 && (src[slen - 1] == ']'
691 || src[slen - 1] == ':'
692 || src[slen - 1] == '>'))
693 {
694 /* VMS style - convert [x.y.z] to [x.y]z, [x] to [000000]x */
695 fab.fab$l_fna = src;
696 fab.fab$b_fns = slen;
697 fab.fab$l_nam = &nam;
698 fab.fab$l_fop = FAB$M_NAM;
699
700 nam.nam$l_esa = esa;
701 nam.nam$b_ess = sizeof esa;
702 nam.nam$b_nop |= NAM$M_SYNCHK;
703
704 /* We call SYS$PARSE to handle such things as [--] for us. */
705 if (SYS$PARSE (&fab, 0, 0) == RMS$_NORMAL)
706 {
707 slen = nam.nam$b_esl;
708 if (esa[slen - 1] == ';' && esa[slen - 2] == '.')
709 slen -= 2;
710 esa[slen] = '\0';
711 src = esa;
712 }
713 if (src[slen - 1] != ']' && src[slen - 1] != '>')
714 {
715 /* what about when we have logical_name:???? */
716 if (src[slen - 1] == ':')
717 { /* Xlate logical name and see what we get */
718 ptr = strcpy (dst, src); /* upper case for getenv */
719 while (*ptr)
720 {
721 if ('a' <= *ptr && *ptr <= 'z')
722 *ptr -= 040;
723 ptr++;
724 }
725 dst[slen - 1] = 0; /* remove colon */
726 if (!(src = egetenv (dst)))
727 return 0;
728 /* should we jump to the beginning of this procedure?
729 Good points: allows us to use logical names that xlate
730 to Unix names,
731 Bad points: can be a problem if we just translated to a device
732 name...
733 For now, I'll punt and always expect VMS names, and hope for
734 the best! */
735 slen = strlen (src);
736 if (src[slen - 1] != ']' && src[slen - 1] != '>')
737 { /* no recursion here! */
738 strcpy (dst, src);
739 return 0;
740 }
741 }
742 else
743 { /* not a directory spec */
744 strcpy (dst, src);
745 return 0;
746 }
747 }
748 bracket = src[slen - 1];
749
750 /* If bracket is ']' or '>', bracket - 2 is the corresponding
751 opening bracket. */
752 ptr = index (src, bracket - 2);
753 if (ptr == 0)
754 { /* no opening bracket */
755 strcpy (dst, src);
756 return 0;
757 }
758 if (!(rptr = rindex (src, '.')))
759 rptr = ptr;
760 slen = rptr - src;
761 strncpy (dst, src, slen);
762 dst[slen] = '\0';
763 if (*rptr == '.')
764 {
765 dst[slen++] = bracket;
766 dst[slen] = '\0';
767 }
768 else
769 {
770 /* If we have the top-level of a rooted directory (i.e. xx:[000000]),
771 then translate the device and recurse. */
772 if (dst[slen - 1] == ':'
773 && dst[slen - 2] != ':' /* skip decnet nodes */
774 && strcmp (src + slen, "[000000]") == 0)
775 {
776 dst[slen - 1] = '\0';
777 if ((ptr = egetenv (dst))
778 && (rlen = strlen (ptr) - 1) > 0
779 && (ptr[rlen] == ']' || ptr[rlen] == '>')
780 && ptr[rlen - 1] == '.')
781 {
782 char * buf = (char *) alloca (strlen (ptr) + 1);
783 strcpy (buf, ptr);
784 buf[rlen - 1] = ']';
785 buf[rlen] = '\0';
786 return directory_file_name (buf, dst);
787 }
788 else
789 dst[slen - 1] = ':';
790 }
791 strcat (dst, "[000000]");
792 slen += 8;
793 }
794 rptr++;
795 rlen = strlen (rptr) - 1;
796 strncat (dst, rptr, rlen);
797 dst[slen + rlen] = '\0';
798 strcat (dst, ".DIR.1");
799 return 1;
800 }
801#endif /* VMS */
802 /* Process as Unix format: just remove any final slash. 592 /* Process as Unix format: just remove any final slash.
803 But leave "/" unchanged; do not change it to "". */ 593 But leave "/" unchanged; do not change it to "". */
804 strcpy (dst, src); 594 strcpy (dst, src);
@@ -821,9 +611,7 @@ DEFUN ("directory-file-name", Fdirectory_file_name, Sdirectory_file_name,
821This is the name of the file that holds the data for the directory DIRECTORY. 611This is the name of the file that holds the data for the directory DIRECTORY.
822This operation exists because a directory is also a file, but its name as 612This operation exists because a directory is also a file, but its name as
823a directory is different from its name as a file. 613a directory is different from its name as a file.
824In Unix-syntax, this function just removes the final slash. 614In Unix-syntax, this function just removes the final slash. */)
825On VMS, given a VMS-syntax directory name such as \"[X.Y]\",
826it returns a file name such as \"[X]Y.DIR.1\". */)
827 (directory) 615 (directory)
828 Lisp_Object directory; 616 Lisp_Object directory;
829{ 617{
@@ -841,14 +629,7 @@ it returns a file name such as \"[X]Y.DIR.1\". */)
841 if (!NILP (handler)) 629 if (!NILP (handler))
842 return call2 (handler, Qdirectory_file_name, directory); 630 return call2 (handler, Qdirectory_file_name, directory);
843 631
844#ifdef VMS
845 /* 20 extra chars is insufficient for VMS, since we might perform a
846 logical name translation. an equivalence string can be up to 255
847 chars long, so grab that much extra space... - sss */
848 buf = (char *) alloca (SBYTES (directory) + 20 + 255);
849#else
850 buf = (char *) alloca (SBYTES (directory) + 20); 632 buf = (char *) alloca (SBYTES (directory) + 20);
851#endif
852 directory_file_name (SDATA (directory), buf); 633 directory_file_name (SDATA (directory), buf);
853 return make_specified_string (buf, -1, strlen (buf), 634 return make_specified_string (buf, -1, strlen (buf),
854 STRING_MULTIBYTE (directory)); 635 STRING_MULTIBYTE (directory));
@@ -1038,14 +819,6 @@ See also the function `substitute-in-file-name'. */)
1038 819
1039 int tlen; 820 int tlen;
1040 struct passwd *pw; 821 struct passwd *pw;
1041#ifdef VMS
1042 unsigned char * colon = 0;
1043 unsigned char * close = 0;
1044 unsigned char * slash = 0;
1045 unsigned char * brack = 0;
1046 int lbrack = 0, rbrack = 0;
1047 int dots = 0;
1048#endif /* VMS */
1049#ifdef DOS_NT 822#ifdef DOS_NT
1050 int drive = 0; 823 int drive = 0;
1051 int collapse_newdir = 1; 824 int collapse_newdir = 1;
@@ -1196,9 +969,6 @@ See also the function `substitute-in-file-name'. */)
1196#ifdef WINDOWSNT 969#ifdef WINDOWSNT
1197 && (drive || IS_DIRECTORY_SEP (nm[1])) && !is_escaped 970 && (drive || IS_DIRECTORY_SEP (nm[1])) && !is_escaped
1198#endif 971#endif
1199#ifdef VMS
1200 || index (nm, ':')
1201#endif /* VMS */
1202 ) 972 )
1203 { 973 {
1204 /* If it turns out that the filename we want to return is just a 974 /* If it turns out that the filename we want to return is just a
@@ -1229,92 +999,10 @@ See also the function `substitute-in-file-name'. */)
1229 && IS_DIRECTORY_SEP (p[0]) 999 && IS_DIRECTORY_SEP (p[0])
1230 && IS_DIRECTORY_SEP (p[1])) 1000 && IS_DIRECTORY_SEP (p[1]))
1231 lose = 1; 1001 lose = 1;
1232
1233#ifdef VMS
1234 if (p[0] == '\\')
1235 lose = 1;
1236 if (p[0] == '/') {
1237 /* if dev:[dir]/, move nm to / */
1238 if (!slash && p > nm && (brack || colon)) {
1239 nm = (brack ? brack + 1 : colon + 1);
1240 lbrack = rbrack = 0;
1241 brack = 0;
1242 colon = 0;
1243 }
1244 slash = p;
1245 }
1246 if (p[0] == '-')
1247#ifdef NO_HYPHENS_IN_FILENAMES
1248 if (lbrack == rbrack)
1249 {
1250 /* Avoid clobbering negative version numbers. */
1251 if (dots < 2)
1252 p[0] = '_';
1253 }
1254 else
1255#endif /* NO_HYPHENS_IN_FILENAMES */
1256 if (lbrack > rbrack
1257 && ((p[-1] == '.' || p[-1] == '[' || p[-1] == '<')
1258 && (p[1] == '.' || p[1] == ']' || p[1] == '>')))
1259 lose = 1;
1260#ifdef NO_HYPHENS_IN_FILENAMES
1261 else
1262 p[0] = '_';
1263#endif /* NO_HYPHENS_IN_FILENAMES */
1264 /* count open brackets, reset close bracket pointer */
1265 if (p[0] == '[' || p[0] == '<')
1266 lbrack++, brack = 0;
1267 /* count close brackets, set close bracket pointer */
1268 if (p[0] == ']' || p[0] == '>')
1269 rbrack++, brack = p;
1270 /* detect ][ or >< */
1271 if ((p[0] == ']' || p[0] == '>') && (p[1] == '[' || p[1] == '<'))
1272 lose = 1;
1273 if ((p[0] == ':' || p[0] == ']' || p[0] == '>') && p[1] == '~')
1274 nm = p + 1, lose = 1;
1275 if (p[0] == ':' && (colon || slash))
1276 /* if dev1:[dir]dev2:, move nm to dev2: */
1277 if (brack)
1278 {
1279 nm = brack + 1;
1280 brack = 0;
1281 }
1282 /* if /name/dev:, move nm to dev: */
1283 else if (slash)
1284 nm = slash + 1;
1285 /* if node::dev:, move colon following dev */
1286 else if (colon && colon[-1] == ':')
1287 colon = p;
1288 /* if dev1:dev2:, move nm to dev2: */
1289 else if (colon && colon[-1] != ':')
1290 {
1291 nm = colon + 1;
1292 colon = 0;
1293 }
1294 if (p[0] == ':' && !colon)
1295 {
1296 if (p[1] == ':')
1297 p++;
1298 colon = p;
1299 }
1300 if (lbrack == rbrack)
1301 if (p[0] == ';')
1302 dots = 2;
1303 else if (p[0] == '.')
1304 dots++;
1305#endif /* VMS */
1306 p++; 1002 p++;
1307 } 1003 }
1308 if (!lose) 1004 if (!lose)
1309 { 1005 {
1310#ifdef VMS
1311 if (index (nm, '/'))
1312 {
1313 nm = sys_translate_unix (nm);
1314 nm_in_name = 0;
1315 return make_specified_string (nm, -1, strlen (nm), multibyte);
1316 }
1317#endif /* VMS */
1318#ifdef DOS_NT 1006#ifdef DOS_NT
1319 /* Make sure directories are all separated with / or \ as 1007 /* Make sure directories are all separated with / or \ as
1320 desired, but avoid allocation of a new string when not 1008 desired, but avoid allocation of a new string when not
@@ -1367,9 +1055,6 @@ See also the function `substitute-in-file-name'. */)
1367 if (nm[0] == '~') /* prefix ~ */ 1055 if (nm[0] == '~') /* prefix ~ */
1368 { 1056 {
1369 if (IS_DIRECTORY_SEP (nm[1]) 1057 if (IS_DIRECTORY_SEP (nm[1])
1370#ifdef VMS
1371 || nm[1] == ':'
1372#endif /* VMS */
1373 || nm[1] == 0) /* ~ by itself */ 1058 || nm[1] == 0) /* ~ by itself */
1374 { 1059 {
1375 Lisp_Object tem; 1060 Lisp_Object tem;
@@ -1393,18 +1078,11 @@ See also the function `substitute-in-file-name'. */)
1393#ifdef DOS_NT 1078#ifdef DOS_NT
1394 collapse_newdir = 0; 1079 collapse_newdir = 0;
1395#endif 1080#endif
1396#ifdef VMS
1397 nm++; /* Don't leave the slash in nm. */
1398#endif /* VMS */
1399 } 1081 }
1400 else /* ~user/filename */ 1082 else /* ~user/filename */
1401 { 1083 {
1402 unsigned char *o, *p; 1084 unsigned char *o, *p;
1403 for (p = nm; *p && (!IS_DIRECTORY_SEP (*p) 1085 for (p = nm; *p && (!IS_DIRECTORY_SEP (*p)); p++);
1404#ifdef VMS
1405 && *p != ':'
1406#endif /* VMS */
1407 ); p++);
1408 o = alloca (p - nm + 1); 1086 o = alloca (p - nm + 1);
1409 bcopy ((char *) nm, o, p - nm); 1087 bcopy ((char *) nm, o, p - nm);
1410 o [p - nm] = 0; 1088 o [p - nm] = 0;
@@ -1415,14 +1093,10 @@ See also the function `substitute-in-file-name'. */)
1415 if (pw) 1093 if (pw)
1416 { 1094 {
1417 newdir = (unsigned char *) pw -> pw_dir; 1095 newdir = (unsigned char *) pw -> pw_dir;
1418#ifdef VMS
1419 nm = p + 1; /* skip the terminator */
1420#else
1421 nm = p; 1096 nm = p;
1422#ifdef DOS_NT 1097#ifdef DOS_NT
1423 collapse_newdir = 0; 1098 collapse_newdir = 0;
1424#endif 1099#endif
1425#endif /* VMS */
1426 } 1100 }
1427 1101
1428 /* If we don't find a user of that name, leave the name 1102 /* If we don't find a user of that name, leave the name
@@ -1465,9 +1139,6 @@ See also the function `substitute-in-file-name'. */)
1465#ifdef WINDOWSNT 1139#ifdef WINDOWSNT
1466 && !(IS_DIRECTORY_SEP (nm[0]) && IS_DIRECTORY_SEP (nm[1])) 1140 && !(IS_DIRECTORY_SEP (nm[0]) && IS_DIRECTORY_SEP (nm[1]))
1467#endif 1141#endif
1468#ifdef VMS
1469 && !index (nm, ':')
1470#endif
1471 && !newdir) 1142 && !newdir)
1472 { 1143 {
1473 newdir = SDATA (default_directory); 1144 newdir = SDATA (default_directory);
@@ -1588,7 +1259,6 @@ See also the function `substitute-in-file-name'. */)
1588 1259
1589 if (newdir) 1260 if (newdir)
1590 { 1261 {
1591#ifndef VMS
1592 if (nm[0] == 0 || IS_DIRECTORY_SEP (nm[0])) 1262 if (nm[0] == 0 || IS_DIRECTORY_SEP (nm[0]))
1593 { 1263 {
1594#ifdef DOS_NT 1264#ifdef DOS_NT
@@ -1603,69 +1273,19 @@ See also the function `substitute-in-file-name'. */)
1603 strcpy (target, newdir); 1273 strcpy (target, newdir);
1604 } 1274 }
1605 else 1275 else
1606#endif
1607 file_name_as_directory (target, newdir); 1276 file_name_as_directory (target, newdir);
1608 } 1277 }
1609 1278
1610 strcat (target, nm); 1279 strcat (target, nm);
1611#ifdef VMS
1612 if (index (target, '/'))
1613 strcpy (target, sys_translate_unix (target));
1614#endif /* VMS */
1615
1616 /* ASSERT (IS_DIRECTORY_SEP (target[0])) if not VMS */
1617 1280
1618 /* Now canonicalize by removing `//', `/.' and `/foo/..' if they 1281 /* Now canonicalize by removing `//', `/.' and `/foo/..' if they
1619 appear. */ 1282 appear. */
1620
1621 { 1283 {
1622 unsigned char *p = target; 1284 unsigned char *p = target;
1623 unsigned char *o = target; 1285 unsigned char *o = target;
1624 1286
1625 while (*p) 1287 while (*p)
1626 { 1288 {
1627#ifdef VMS
1628 if (*p != ']' && *p != '>' && *p != '-')
1629 {
1630 if (*p == '\\')
1631 p++;
1632 *o++ = *p++;
1633 }
1634 else if ((p[0] == ']' || p[0] == '>') && p[0] == p[1] + 2)
1635 /* brackets are offset from each other by 2 */
1636 {
1637 p += 2;
1638 if (*p != '.' && *p != '-' && o[-1] != '.')
1639 /* convert [foo][bar] to [bar] */
1640 while (o[-1] != '[' && o[-1] != '<')
1641 o--;
1642 else if (*p == '-' && *o != '.')
1643 *--p = '.';
1644 }
1645 else if (p[0] == '-' && o[-1] == '.'
1646 && (p[1] == '.' || p[1] == ']' || p[1] == '>'))
1647 /* flush .foo.- ; leave - if stopped by '[' or '<' */
1648 {
1649 do
1650 o--;
1651 while (o[-1] != '.' && o[-1] != '[' && o[-1] != '<');
1652 if (p[1] == '.') /* foo.-.bar ==> bar. */
1653 p += 2;
1654 else if (o[-1] == '.') /* '.foo.-]' ==> ']' */
1655 p++, o--;
1656 /* else [foo.-] ==> [-] */
1657 }
1658 else
1659 {
1660#ifdef NO_HYPHENS_IN_FILENAMES
1661 if (*p == '-'
1662 && o[-1] != '[' && o[-1] != '<' && o[-1] != '.'
1663 && p[1] != ']' && p[1] != '>' && p[1] != '.')
1664 *p = '_';
1665#endif /* NO_HYPHENS_IN_FILENAMES */
1666 *o++ = *p++;
1667 }
1668#else /* not VMS */
1669 if (!IS_DIRECTORY_SEP (*p)) 1289 if (!IS_DIRECTORY_SEP (*p))
1670 { 1290 {
1671 *o++ = *p++; 1291 *o++ = *p++;
@@ -1707,7 +1327,6 @@ See also the function `substitute-in-file-name'. */)
1707 { 1327 {
1708 *o++ = *p++; 1328 *o++ = *p++;
1709 } 1329 }
1710#endif /* not VMS */
1711 } 1330 }
1712 1331
1713#ifdef DOS_NT 1332#ifdef DOS_NT
@@ -1777,32 +1396,13 @@ See also the function `substitute-in-file-name'.")
1777 unsigned char *target; 1396 unsigned char *target;
1778 struct passwd *pw; 1397 struct passwd *pw;
1779 int lose; 1398 int lose;
1780#ifdef VMS
1781 unsigned char * colon = 0;
1782 unsigned char * close = 0;
1783 unsigned char * slash = 0;
1784 unsigned char * brack = 0;
1785 int lbrack = 0, rbrack = 0;
1786 int dots = 0;
1787#endif /* VMS */
1788 1399
1789 CHECK_STRING (name); 1400 CHECK_STRING (name);
1790
1791#ifdef VMS
1792 /* Filenames on VMS are always upper case. */
1793 name = Fupcase (name);
1794#endif
1795
1796 nm = SDATA (name); 1401 nm = SDATA (name);
1797 1402
1798 /* If nm is absolute, flush ...// and detect /./ and /../. 1403 /* If nm is absolute, flush ...// and detect /./ and /../.
1799 If no /./ or /../ we can return right away. */ 1404 If no /./ or /../ we can return right away. */
1800 if ( 1405 if (nm[0] == '/')
1801 nm[0] == '/'
1802#ifdef VMS
1803 || index (nm, ':')
1804#endif /* VMS */
1805 )
1806 { 1406 {
1807 p = nm; 1407 p = nm;
1808 lose = 0; 1408 lose = 0;
@@ -1817,87 +1417,10 @@ See also the function `substitute-in-file-name'.")
1817 && (p[2] == '/' || p[2] == 0 1417 && (p[2] == '/' || p[2] == 0
1818 || (p[2] == '.' && (p[3] == '/' || p[3] == 0)))) 1418 || (p[2] == '.' && (p[3] == '/' || p[3] == 0))))
1819 lose = 1; 1419 lose = 1;
1820#ifdef VMS
1821 if (p[0] == '\\')
1822 lose = 1;
1823 if (p[0] == '/') {
1824 /* if dev:[dir]/, move nm to / */
1825 if (!slash && p > nm && (brack || colon)) {
1826 nm = (brack ? brack + 1 : colon + 1);
1827 lbrack = rbrack = 0;
1828 brack = 0;
1829 colon = 0;
1830 }
1831 slash = p;
1832 }
1833 if (p[0] == '-')
1834#ifndef VMS4_4
1835 /* VMS pre V4.4,convert '-'s in filenames. */
1836 if (lbrack == rbrack)
1837 {
1838 if (dots < 2) /* this is to allow negative version numbers */
1839 p[0] = '_';
1840 }
1841 else
1842#endif /* VMS4_4 */
1843 if (lbrack > rbrack
1844 && ((p[-1] == '.' || p[-1] == '[' || p[-1] == '<')
1845 && (p[1] == '.' || p[1] == ']' || p[1] == '>')))
1846 lose = 1;
1847#ifndef VMS4_4
1848 else
1849 p[0] = '_';
1850#endif /* VMS4_4 */
1851 /* count open brackets, reset close bracket pointer */
1852 if (p[0] == '[' || p[0] == '<')
1853 lbrack++, brack = 0;
1854 /* count close brackets, set close bracket pointer */
1855 if (p[0] == ']' || p[0] == '>')
1856 rbrack++, brack = p;
1857 /* detect ][ or >< */
1858 if ((p[0] == ']' || p[0] == '>') && (p[1] == '[' || p[1] == '<'))
1859 lose = 1;
1860 if ((p[0] == ':' || p[0] == ']' || p[0] == '>') && p[1] == '~')
1861 nm = p + 1, lose = 1;
1862 if (p[0] == ':' && (colon || slash))
1863 /* if dev1:[dir]dev2:, move nm to dev2: */
1864 if (brack)
1865 {
1866 nm = brack + 1;
1867 brack = 0;
1868 }
1869 /* If /name/dev:, move nm to dev: */
1870 else if (slash)
1871 nm = slash + 1;
1872 /* If node::dev:, move colon following dev */
1873 else if (colon && colon[-1] == ':')
1874 colon = p;
1875 /* If dev1:dev2:, move nm to dev2: */
1876 else if (colon && colon[-1] != ':')
1877 {
1878 nm = colon + 1;
1879 colon = 0;
1880 }
1881 if (p[0] == ':' && !colon)
1882 {
1883 if (p[1] == ':')
1884 p++;
1885 colon = p;
1886 }
1887 if (lbrack == rbrack)
1888 if (p[0] == ';')
1889 dots = 2;
1890 else if (p[0] == '.')
1891 dots++;
1892#endif /* VMS */
1893 p++; 1420 p++;
1894 } 1421 }
1895 if (!lose) 1422 if (!lose)
1896 { 1423 {
1897#ifdef VMS
1898 if (index (nm, '/'))
1899 return build_string (sys_translate_unix (nm));
1900#endif /* VMS */
1901 if (nm == SDATA (name)) 1424 if (nm == SDATA (name))
1902 return name; 1425 return name;
1903 return build_string (nm); 1426 return build_string (nm);
@@ -1909,18 +1432,11 @@ See also the function `substitute-in-file-name'.")
1909 newdir = 0; 1432 newdir = 0;
1910 1433
1911 if (nm[0] == '~') /* prefix ~ */ 1434 if (nm[0] == '~') /* prefix ~ */
1912 if (nm[1] == '/' 1435 if (nm[1] == '/' || nm[1] == 0)/* ~/filename */
1913#ifdef VMS
1914 || nm[1] == ':'
1915#endif /* VMS */
1916 || nm[1] == 0)/* ~/filename */
1917 { 1436 {
1918 if (!(newdir = (unsigned char *) egetenv ("HOME"))) 1437 if (!(newdir = (unsigned char *) egetenv ("HOME")))
1919 newdir = (unsigned char *) ""; 1438 newdir = (unsigned char *) "";
1920 nm++; 1439 nm++;
1921#ifdef VMS
1922 nm++; /* Don't leave the slash in nm. */
1923#endif /* VMS */
1924 } 1440 }
1925 else /* ~user/filename */ 1441 else /* ~user/filename */
1926 { 1442 {
@@ -1929,11 +1445,6 @@ See also the function `substitute-in-file-name'.")
1929 /* Find end of name. */ 1445 /* Find end of name. */
1930 unsigned char *ptr = (unsigned char *) index (user, '/'); 1446 unsigned char *ptr = (unsigned char *) index (user, '/');
1931 int len = ptr ? ptr - user : strlen (user); 1447 int len = ptr ? ptr - user : strlen (user);
1932#ifdef VMS
1933 unsigned char *ptr1 = index (user, ':');
1934 if (ptr1 != 0 && ptr1 - user < len)
1935 len = ptr1 - user;
1936#endif /* VMS */
1937 /* Copy the user name into temp storage. */ 1448 /* Copy the user name into temp storage. */
1938 o = (unsigned char *) alloca (len + 1); 1449 o = (unsigned char *) alloca (len + 1);
1939 bcopy ((char *) user, o, len); 1450 bcopy ((char *) user, o, len);
@@ -1952,11 +1463,7 @@ See also the function `substitute-in-file-name'.")
1952 nm += len; 1463 nm += len;
1953 } 1464 }
1954 1465
1955 if (nm[0] != '/' 1466 if (nm[0] != '/' && !newdir)
1956#ifdef VMS
1957 && !index (nm, ':')
1958#endif /* not VMS */
1959 && !newdir)
1960 { 1467 {
1961 if (NILP (defalt)) 1468 if (NILP (defalt))
1962 defalt = current_buffer->directory; 1469 defalt = current_buffer->directory;
@@ -1972,19 +1479,13 @@ See also the function `substitute-in-file-name'.")
1972 1479
1973 if (newdir) 1480 if (newdir)
1974 { 1481 {
1975#ifndef VMS
1976 if (nm[0] == 0 || nm[0] == '/') 1482 if (nm[0] == 0 || nm[0] == '/')
1977 strcpy (target, newdir); 1483 strcpy (target, newdir);
1978 else 1484 else
1979#endif
1980 file_name_as_directory (target, newdir); 1485 file_name_as_directory (target, newdir);
1981 } 1486 }
1982 1487
1983 strcat (target, nm); 1488 strcat (target, nm);
1984#ifdef VMS
1985 if (index (target, '/'))
1986 strcpy (target, sys_translate_unix (target));
1987#endif /* VMS */
1988 1489
1989 /* Now canonicalize by removing /. and /foo/.. if they appear */ 1490 /* Now canonicalize by removing /. and /foo/.. if they appear */
1990 1491
@@ -1993,48 +1494,6 @@ See also the function `substitute-in-file-name'.")
1993 1494
1994 while (*p) 1495 while (*p)
1995 { 1496 {
1996#ifdef VMS
1997 if (*p != ']' && *p != '>' && *p != '-')
1998 {
1999 if (*p == '\\')
2000 p++;
2001 *o++ = *p++;
2002 }
2003 else if ((p[0] == ']' || p[0] == '>') && p[0] == p[1] + 2)
2004 /* brackets are offset from each other by 2 */
2005 {
2006 p += 2;
2007 if (*p != '.' && *p != '-' && o[-1] != '.')
2008 /* convert [foo][bar] to [bar] */
2009 while (o[-1] != '[' && o[-1] != '<')
2010 o--;
2011 else if (*p == '-' && *o != '.')
2012 *--p = '.';
2013 }
2014 else if (p[0] == '-' && o[-1] == '.'
2015 && (p[1] == '.' || p[1] == ']' || p[1] == '>'))
2016 /* flush .foo.- ; leave - if stopped by '[' or '<' */
2017 {
2018 do
2019 o--;
2020 while (o[-1] != '.' && o[-1] != '[' && o[-1] != '<');
2021 if (p[1] == '.') /* foo.-.bar ==> bar. */
2022 p += 2;
2023 else if (o[-1] == '.') /* '.foo.-]' ==> ']' */
2024 p++, o--;
2025 /* else [foo.-] ==> [-] */
2026 }
2027 else
2028 {
2029#ifndef VMS4_4
2030 if (*p == '-'
2031 && o[-1] != '[' && o[-1] != '<' && o[-1] != '.'
2032 && p[1] != ']' && p[1] != '>' && p[1] != '.')
2033 *p = '_';
2034#endif /* VMS4_4 */
2035 *o++ = *p++;
2036 }
2037#else /* not VMS */
2038 if (*p != '/') 1497 if (*p != '/')
2039 { 1498 {
2040 *o++ = *p++; 1499 *o++ = *p++;
@@ -2063,7 +1522,6 @@ See also the function `substitute-in-file-name'.")
2063 { 1522 {
2064 *o++ = *p++; 1523 *o++ = *p++;
2065 } 1524 }
2066#endif /* not VMS */
2067 } 1525 }
2068 1526
2069 return make_string (target, o - target); 1527 return make_string (target, o - target);
@@ -2077,13 +1535,6 @@ file_name_absolute_p (filename)
2077{ 1535{
2078 return 1536 return
2079 (IS_DIRECTORY_SEP (*filename) || *filename == '~' 1537 (IS_DIRECTORY_SEP (*filename) || *filename == '~'
2080#ifdef VMS
2081 /* ??? This criterion is probably wrong for '<'. */
2082 || index (filename, ':') || index (filename, '<')
2083 || (*filename == '[' && (filename[1] != '-'
2084 || (filename[2] != '.' && filename[2] != ']'))
2085 && filename[1] != '.')
2086#endif /* VMS */
2087#ifdef DOS_NT 1538#ifdef DOS_NT
2088 || (IS_DRIVE (*filename) && IS_DEVICE_SEP (filename[1]) 1539 || (IS_DRIVE (*filename) && IS_DEVICE_SEP (filename[1])
2089 && IS_DIRECTORY_SEP (filename[2])) 1540 && IS_DIRECTORY_SEP (filename[2]))
@@ -2100,9 +1551,6 @@ search_embedded_absfilename (nm, endp)
2100 for (p = nm + 1; p < endp; p++) 1551 for (p = nm + 1; p < endp; p++)
2101 { 1552 {
2102 if ((0 1553 if ((0
2103#ifdef VMS
2104 || p[-1] == ':' || p[-1] == ']' || p[-1] == '>'
2105#endif /* VMS */
2106 || IS_DIRECTORY_SEP (p[-1])) 1554 || IS_DIRECTORY_SEP (p[-1]))
2107 && file_name_absolute_p (p) 1555 && file_name_absolute_p (p)
2108#if defined (WINDOWSNT) || defined(CYGWIN) 1556#if defined (WINDOWSNT) || defined(CYGWIN)
@@ -2112,11 +1560,7 @@ search_embedded_absfilename (nm, endp)
2112#endif /* not (WINDOWSNT || CYGWIN) */ 1560#endif /* not (WINDOWSNT || CYGWIN) */
2113 ) 1561 )
2114 { 1562 {
2115 for (s = p; *s && (!IS_DIRECTORY_SEP (*s) 1563 for (s = p; *s && (!IS_DIRECTORY_SEP (*s)); s++);
2116#ifdef VMS
2117 && *s != ':'
2118#endif /* VMS */
2119 ); s++);
2120 if (p[0] == '~' && s > p + 1) /* we've got "/~something/" */ 1564 if (p[0] == '~' && s > p + 1) /* we've got "/~something/" */
2121 { 1565 {
2122 unsigned char *o = alloca (s - p + 1); 1566 unsigned char *o = alloca (s - p + 1);
@@ -2147,10 +1591,7 @@ DEFUN ("substitute-in-file-name", Fsubstitute_in_file_name,
2147the value of that variable. The variable name should be terminated 1591the value of that variable. The variable name should be terminated
2148with a character not a letter, digit or underscore; otherwise, enclose 1592with a character not a letter, digit or underscore; otherwise, enclose
2149the entire variable name in braces. 1593the entire variable name in braces.
2150If `/~' appears, all of FILENAME through that `/' is discarded. 1594If `/~' appears, all of FILENAME through that `/' is discarded. */)
2151
2152On VMS, `$' substitution is not done; this function does little and only
2153duplicates what `expand-file-name' does. */)
2154 (filename) 1595 (filename)
2155 Lisp_Object filename; 1596 Lisp_Object filename;
2156{ 1597{
@@ -2189,9 +1630,6 @@ duplicates what `expand-file-name' does. */)
2189 (make_specified_string (p, -1, endp - p, 1630 (make_specified_string (p, -1, endp - p,
2190 STRING_MULTIBYTE (filename))); 1631 STRING_MULTIBYTE (filename)));
2191 1632
2192#ifdef VMS
2193 return filename;
2194#else
2195 1633
2196 /* See if any variables are substituted into the string 1634 /* See if any variables are substituted into the string
2197 and find the total length of their values in `total' */ 1635 and find the total length of their values in `total' */
@@ -2333,7 +1771,6 @@ duplicates what `expand-file-name' does. */)
2333 error ("Substituting nonexistent environment variable \"%s\"", target); 1771 error ("Substituting nonexistent environment variable \"%s\"", target);
2334 1772
2335 /* NOTREACHED */ 1773 /* NOTREACHED */
2336#endif /* not VMS */
2337 return Qnil; 1774 return Qnil;
2338} 1775}
2339 1776
@@ -2347,13 +1784,7 @@ expand_and_dir_to_file (filename, defdir)
2347 register Lisp_Object absname; 1784 register Lisp_Object absname;
2348 1785
2349 absname = Fexpand_file_name (filename, defdir); 1786 absname = Fexpand_file_name (filename, defdir);
2350#ifdef VMS 1787
2351 {
2352 register int c = SREF (absname, SBYTES (absname) - 1);
2353 if (c == ':' || c == ']' || c == '>')
2354 absname = Fdirectory_file_name (absname);
2355 }
2356#else
2357 /* Remove final slash, if any (unless this is the root dir). 1788 /* Remove final slash, if any (unless this is the root dir).
2358 stat behaves differently depending! */ 1789 stat behaves differently depending! */
2359 if (SCHARS (absname) > 1 1790 if (SCHARS (absname) > 1
@@ -2361,7 +1792,6 @@ expand_and_dir_to_file (filename, defdir)
2361 && !IS_DEVICE_SEP (SREF (absname, SBYTES (absname)-2))) 1792 && !IS_DEVICE_SEP (SREF (absname, SBYTES (absname)-2)))
2362 /* We cannot take shortcuts; they might be wrong for magic file names. */ 1793 /* We cannot take shortcuts; they might be wrong for magic file names. */
2363 absname = Fdirectory_file_name (absname); 1794 absname = Fdirectory_file_name (absname);
2364#endif
2365 return absname; 1795 return absname;
2366} 1796}
2367 1797
@@ -2554,10 +1984,6 @@ uid and gid of FILE to NEWNAME. */)
2554 } 1984 }
2555#endif /* S_ISREG && S_ISLNK */ 1985#endif /* S_ISREG && S_ISLNK */
2556 1986
2557#ifdef VMS
2558 /* Create the copy file with the same record format as the input file */
2559 ofd = sys_creat (SDATA (encoded_newname), 0666, ifd);
2560#else
2561#ifdef MSDOS 1987#ifdef MSDOS
2562 /* System's default file type was set to binary by _fmode in emacs.c. */ 1988 /* System's default file type was set to binary by _fmode in emacs.c. */
2563 ofd = emacs_open (SDATA (encoded_newname), 1989 ofd = emacs_open (SDATA (encoded_newname),
@@ -2570,7 +1996,6 @@ uid and gid of FILE to NEWNAME. */)
2570 | (NILP (ok_if_already_exists) ? O_EXCL : 0), 1996 | (NILP (ok_if_already_exists) ? O_EXCL : 0),
2571 0666); 1997 0666);
2572#endif /* not MSDOS */ 1998#endif /* not MSDOS */
2573#endif /* VMS */
2574 if (ofd < 0) 1999 if (ofd < 0)
2575 report_file_error ("Opening output file", Fcons (newname, Qnil)); 2000 report_file_error ("Opening output file", Fcons (newname, Qnil));
2576 2001
@@ -2960,33 +2385,6 @@ This happens for interactive use with M-x. */)
2960#endif /* S_IFLNK */ 2385#endif /* S_IFLNK */
2961} 2386}
2962 2387
2963#ifdef VMS
2964
2965DEFUN ("define-logical-name", Fdefine_logical_name, Sdefine_logical_name,
2966 2, 2, "sDefine logical name: \nsDefine logical name %s as: ",
2967 doc: /* Define the job-wide logical name NAME to have the value STRING.
2968If STRING is nil or a null string, the logical name NAME is deleted. */)
2969 (name, string)
2970 Lisp_Object name;
2971 Lisp_Object string;
2972{
2973 CHECK_STRING (name);
2974 if (NILP (string))
2975 delete_logical_name (SDATA (name));
2976 else
2977 {
2978 CHECK_STRING (string);
2979
2980 if (SCHARS (string) == 0)
2981 delete_logical_name (SDATA (name));
2982 else
2983 define_logical_name (SDATA (name), SDATA (string));
2984 }
2985
2986 return string;
2987}
2988#endif /* VMS */
2989
2990 2388
2991DEFUN ("file-name-absolute-p", Ffile_name_absolute_p, Sfile_name_absolute_p, 2389DEFUN ("file-name-absolute-p", Ffile_name_absolute_p, Sfile_name_absolute_p,
2992 1, 1, 0, 2390 1, 1, 0,
@@ -3182,10 +2580,6 @@ DEFUN ("file-writable-p", Ffile_writable_p, Sfile_writable_p, 1, 1, 0,
3182 ? Qt : Qnil); 2580 ? Qt : Qnil);
3183 2581
3184 dir = Ffile_name_directory (absname); 2582 dir = Ffile_name_directory (absname);
3185#ifdef VMS
3186 if (!NILP (dir))
3187 dir = Fdirectory_file_name (dir);
3188#endif /* VMS */
3189#ifdef MSDOS 2583#ifdef MSDOS
3190 if (!NILP (dir)) 2584 if (!NILP (dir))
3191 dir = Fdirectory_file_name (dir); 2585 dir = Fdirectory_file_name (dir);
@@ -3823,10 +3217,8 @@ variable `last-coding-system-used' to the coding system actually used. */)
3823 3217
3824 record_unwind_protect (close_file_unwind, make_number (fd)); 3218 record_unwind_protect (close_file_unwind, make_number (fd));
3825 3219
3826 /* Supposedly happens on VMS. */
3827 /* Can happen on any platform that uses long as type of off_t, but allows 3220 /* Can happen on any platform that uses long as type of off_t, but allows
3828 file sizes to exceed 2Gb. VMS is no longer officially supported, so 3221 file sizes to exceed 2Gb, so give a suitable message. */
3829 give a message suitable for the latter case. */
3830 if (! not_regular && st.st_size < 0) 3222 if (! not_regular && st.st_size < 0)
3831 error ("Maximum buffer size exceeded"); 3223 error ("Maximum buffer size exceeded");
3832 3224
@@ -4995,9 +4387,6 @@ This does code conversion according to the value of
4995 struct stat st; 4387 struct stat st;
4996 int count = SPECPDL_INDEX (); 4388 int count = SPECPDL_INDEX ();
4997 int count1; 4389 int count1;
4998#ifdef VMS
4999 unsigned char *fname = 0; /* If non-0, original filename (must rename) */
5000#endif /* VMS */
5001 Lisp_Object handler; 4390 Lisp_Object handler;
5002 Lisp_Object visit_file; 4391 Lisp_Object visit_file;
5003 Lisp_Object annotations; 4392 Lisp_Object annotations;
@@ -5131,52 +4520,6 @@ This does code conversion according to the value of
5131#endif /* not DOS_NT */ 4520#endif /* not DOS_NT */
5132 4521
5133 if (desc < 0 && (NILP (append) || errno == ENOENT)) 4522 if (desc < 0 && (NILP (append) || errno == ENOENT))
5134#ifdef VMS
5135 if (auto_saving) /* Overwrite any previous version of autosave file */
5136 {
5137 vms_truncate (fn); /* if fn exists, truncate to zero length */
5138 desc = emacs_open (fn, O_RDWR, 0);
5139 if (desc < 0)
5140 desc = creat_copy_attrs (STRINGP (current_buffer->filename)
5141 ? SDATA (current_buffer->filename) : 0,
5142 fn);
5143 }
5144 else /* Write to temporary name and rename if no errors */
5145 {
5146 Lisp_Object temp_name;
5147 temp_name = Ffile_name_directory (filename);
5148
5149 if (!NILP (temp_name))
5150 {
5151 temp_name = Fmake_temp_name (concat2 (temp_name,
5152 build_string ("$$SAVE$$")));
5153 fname = SDATA (filename);
5154 fn = SDATA (temp_name);
5155 desc = creat_copy_attrs (fname, fn);
5156 if (desc < 0)
5157 {
5158 /* If we can't open the temporary file, try creating a new
5159 version of the original file. VMS "creat" creates a
5160 new version rather than truncating an existing file. */
5161 fn = fname;
5162 fname = 0;
5163 desc = creat (fn, 0666);
5164#if 0 /* This can clobber an existing file and fail to replace it,
5165 if the user runs out of space. */
5166 if (desc < 0)
5167 {
5168 /* We can't make a new version;
5169 try to truncate and rewrite existing version if any. */
5170 vms_truncate (fn);
5171 desc = emacs_open (fn, O_RDWR, 0);
5172 }
5173#endif
5174 }
5175 }
5176 else
5177 desc = creat (fn, 0666);
5178 }
5179#else /* not VMS */
5180#ifdef DOS_NT 4523#ifdef DOS_NT
5181 desc = emacs_open (fn, 4524 desc = emacs_open (fn,
5182 O_WRONLY | O_CREAT | buffer_file_type 4525 O_WRONLY | O_CREAT | buffer_file_type
@@ -5187,7 +4530,6 @@ This does code conversion according to the value of
5187 | (EQ (mustbenew, Qexcl) ? O_EXCL : 0), 4530 | (EQ (mustbenew, Qexcl) ? O_EXCL : 0),
5188 auto_saving ? auto_save_mode_bits : 0666); 4531 auto_saving ? auto_save_mode_bits : 0666);
5189#endif /* not DOS_NT */ 4532#endif /* not DOS_NT */
5190#endif /* not VMS */
5191 4533
5192 if (desc < 0) 4534 if (desc < 0)
5193 { 4535 {
@@ -5222,25 +4564,6 @@ This does code conversion according to the value of
5222 4564
5223 UNGCPRO; 4565 UNGCPRO;
5224 4566
5225#ifdef VMS
5226/*
5227 * Kludge Warning: The VMS C RTL likes to insert carriage returns
5228 * if we do writes that don't end with a carriage return. Furthermore
5229 * it cannot handle writes of more then 16K. The modified
5230 * version of "sys_write" in SYSDEP.C (see comment there) copes with
5231 * this EXCEPT for the last record (if it doesn't end with a carriage
5232 * return). This implies that if your buffer doesn't end with a carriage
5233 * return, you get one free... tough. However it also means that if
5234 * we make two calls to sys_write (a la the following code) you can
5235 * get one at the gap as well. The easiest way to fix this (honest)
5236 * is to move the gap to the next newline (or the end of the buffer).
5237 * Thus this change.
5238 *
5239 * Yech!
5240 */
5241 if (GPT > BEG && GPT_ADDR[-1] != '\n')
5242 move_gap (find_next_newline (GPT, 1));
5243#else
5244#if 0 4567#if 0
5245 /* The new encoding routine doesn't require the following. */ 4568 /* The new encoding routine doesn't require the following. */
5246 4569
@@ -5257,7 +4580,6 @@ This does code conversion according to the value of
5257 SET_PT_BOTH (opoint, opoint_byte); 4580 SET_PT_BOTH (opoint, opoint_byte);
5258 } 4581 }
5259#endif 4582#endif
5260#endif
5261 4583
5262 failure = 0; 4584 failure = 0;
5263 immediate_quit = 1; 4585 immediate_quit = 1;
@@ -5318,29 +4640,14 @@ This does code conversion according to the value of
5318 but who knows about all the other machines with NFS?) */ 4640 but who knows about all the other machines with NFS?) */
5319#if 0 4641#if 0
5320 4642
5321 /* On VMS, must do the stat after the close
5322 since closing changes the modtime. */
5323#ifndef VMS
5324 /* Recall that #if defined does not work on VMS. */
5325#define FOO 4643#define FOO
5326 fstat (desc, &st); 4644 fstat (desc, &st);
5327#endif 4645#endif
5328#endif
5329 4646
5330 /* NFS can report a write failure now. */ 4647 /* NFS can report a write failure now. */
5331 if (emacs_close (desc) < 0) 4648 if (emacs_close (desc) < 0)
5332 failure = 1, save_errno = errno; 4649 failure = 1, save_errno = errno;
5333 4650
5334#ifdef VMS
5335 /* If we wrote to a temporary name and had no errors, rename to real name. */
5336 if (fname)
5337 {
5338 if (!failure)
5339 failure = (rename (fn, fname) != 0), save_errno = errno;
5340 fn = fname;
5341 }
5342#endif /* VMS */
5343
5344#ifndef FOO 4651#ifndef FOO
5345 stat (fn, &st); 4652 stat (fn, &st);
5346#endif 4653#endif
@@ -6256,11 +5563,6 @@ of file names regardless of the current language environment. */);
6256 Fput (Qfile_date_error, Qerror_message, 5563 Fput (Qfile_date_error, Qerror_message,
6257 build_string ("Cannot set file date")); 5564 build_string ("Cannot set file date"));
6258 5565
6259 DEFVAR_BOOL ("vms-stmlf-recfm", &vms_stmlf_recfm,
6260 doc: /* *Non-nil means write new files with record format `stmlf'.
6261nil means use format `var'. This variable is meaningful only on VMS. */);
6262 vms_stmlf_recfm = 0;
6263
6264 DEFVAR_LISP ("directory-sep-char", &Vdirectory_sep_char, 5566 DEFVAR_LISP ("directory-sep-char", &Vdirectory_sep_char,
6265 doc: /* Directory separator character for built-in functions that return file names. 5567 doc: /* Directory separator character for built-in functions that return file names.
6266The value is always ?/. Don't use this variable, just use `/'. */); 5568The value is always ?/. Don't use this variable, just use `/'. */);
@@ -6376,9 +5678,6 @@ When non-nil, the function `move-file-to-trash' will be used by
6376 defsubr (&Srename_file); 5678 defsubr (&Srename_file);
6377 defsubr (&Sadd_name_to_file); 5679 defsubr (&Sadd_name_to_file);
6378 defsubr (&Smake_symbolic_link); 5680 defsubr (&Smake_symbolic_link);
6379#ifdef VMS
6380 defsubr (&Sdefine_logical_name);
6381#endif /* VMS */
6382 defsubr (&Sfile_name_absolute_p); 5681 defsubr (&Sfile_name_absolute_p);
6383 defsubr (&Sfile_exists_p); 5682 defsubr (&Sfile_exists_p);
6384 defsubr (&Sfile_executable_p); 5683 defsubr (&Sfile_executable_p);
diff --git a/src/floatfns.c b/src/floatfns.c
index 8ee28210e43..d454d6e3cf1 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -101,16 +101,6 @@ extern int errno;
101#endif 101#endif
102#endif 102#endif
103 103
104/* Avoid traps on VMS from sinh and cosh.
105 All the other functions set errno instead. */
106
107#ifdef VMS
108#undef cosh
109#undef sinh
110#define cosh(x) ((exp(x)+exp(-x))*0.5)
111#define sinh(x) ((exp(x)-exp(-x))*0.5)
112#endif /* VMS */
113
114#ifdef FLOAT_CATCH_SIGILL 104#ifdef FLOAT_CATCH_SIGILL
115static SIGTYPE float_error (); 105static SIGTYPE float_error ();
116#endif 106#endif
diff --git a/src/getpagesize.h b/src/getpagesize.h
index 928e0440cce..1d29be0d45e 100644
--- a/src/getpagesize.h
+++ b/src/getpagesize.h
@@ -19,10 +19,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19 19
20#ifndef HAVE_GETPAGESIZE 20#ifndef HAVE_GETPAGESIZE
21 21
22# ifdef VMS
23# define getpagesize() 512
24# endif
25
26# ifdef HAVE_UNISTD_H 22# ifdef HAVE_UNISTD_H
27# include <unistd.h> 23# include <unistd.h>
28# endif 24# endif
diff --git a/src/ioctl.h b/src/ioctl.h
deleted file mode 100644
index 34f2a9aa644..00000000000
--- a/src/ioctl.h
+++ /dev/null
@@ -1,4 +0,0 @@
1/* Emacs ioctl emulation for VMS */
2
3/* arch-tag: 48595931-af6e-407d-95c7-484059087767
4 (do not change this comment) */
diff --git a/src/keyboard.c b/src/keyboard.c
index a61eb836f26..51e228b37b0 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -51,9 +51,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
51#include "msdos.h" 51#include "msdos.h"
52#include <time.h> 52#include <time.h>
53#else /* not MSDOS */ 53#else /* not MSDOS */
54#ifndef VMS
55#include <sys/ioctl.h> 54#include <sys/ioctl.h>
56#endif
57#endif /* not MSDOS */ 55#endif /* not MSDOS */
58 56
59#include "syssignal.h" 57#include "syssignal.h"
@@ -4015,9 +4013,6 @@ kbd_buffer_get_event (kbp, used_mouse_menu, end_time)
4015 /* One way or another, wait until input is available; then, if 4013 /* One way or another, wait until input is available; then, if
4016 interrupt handlers have not read it, read it now. */ 4014 interrupt handlers have not read it, read it now. */
4017 4015
4018#ifdef OLDVMS
4019 wait_for_kbd_input ();
4020#else
4021/* Note SIGIO has been undef'd if FIONREAD is missing. */ 4016/* Note SIGIO has been undef'd if FIONREAD is missing. */
4022#ifdef SIGIO 4017#ifdef SIGIO
4023 gobble_input (0); 4018 gobble_input (0);
@@ -4048,7 +4043,6 @@ kbd_buffer_get_event (kbp, used_mouse_menu, end_time)
4048 if (!interrupt_input && kbd_fetch_ptr == kbd_store_ptr) 4043 if (!interrupt_input && kbd_fetch_ptr == kbd_store_ptr)
4049 /* Pass 1 for EXPECT since we just waited to have input. */ 4044 /* Pass 1 for EXPECT since we just waited to have input. */
4050 read_avail_input (1); 4045 read_avail_input (1);
4051#endif /* not VMS */
4052 } 4046 }
4053 4047
4054 if (CONSP (Vunread_command_events)) 4048 if (CONSP (Vunread_command_events))
@@ -6907,7 +6901,6 @@ gobble_input (expected)
6907 xd_read_queued_messages (); 6901 xd_read_queued_messages ();
6908#endif /* HAVE_DBUS */ 6902#endif /* HAVE_DBUS */
6909 6903
6910#ifndef VMS
6911#ifdef SIGIO 6904#ifdef SIGIO
6912 if (interrupt_input) 6905 if (interrupt_input)
6913 { 6906 {
@@ -6930,7 +6923,6 @@ gobble_input (expected)
6930 } 6923 }
6931 else 6924 else
6932#endif 6925#endif
6933#endif
6934 read_avail_input (expected); 6926 read_avail_input (expected);
6935#endif 6927#endif
6936} 6928}
@@ -6980,17 +6972,11 @@ record_asynch_buffer_change ()
6980 } 6972 }
6981} 6973}
6982 6974
6983#ifndef VMS
6984
6985/* Read any terminal input already buffered up by the system 6975/* Read any terminal input already buffered up by the system
6986 into the kbd_buffer, but do not wait. 6976 into the kbd_buffer, but do not wait.
6987 6977
6988 EXPECTED should be nonzero if the caller knows there is some input. 6978 EXPECTED should be nonzero if the caller knows there is some input.
6989 6979
6990 Except on VMS, all input is read by this function.
6991 If interrupt_input is nonzero, this function MUST be called
6992 only when SIGIO is blocked.
6993
6994 Returns the number of keyboard chars read, or -1 meaning 6980 Returns the number of keyboard chars read, or -1 meaning
6995 this is a bad time to try to read input. */ 6981 this is a bad time to try to read input. */
6996 6982
@@ -7238,7 +7224,6 @@ tty_read_avail_input (struct terminal *terminal,
7238 7224
7239 return nread; 7225 return nread;
7240} 7226}
7241#endif /* not VMS */
7242 7227
7243void 7228void
7244handle_async_input () 7229handle_async_input ()
@@ -11011,19 +10996,11 @@ handle_interrupt ()
11011 */ 10996 */
11012 sys_suspend (); 10997 sys_suspend ();
11013#else 10998#else
11014#ifdef VMS
11015 if (sys_suspend () == -1)
11016 {
11017 printf ("Not running as a subprocess;\n");
11018 printf ("you can continue or abort.\n");
11019 }
11020#else /* not VMS */
11021 /* Perhaps should really fork an inferior shell? 10999 /* Perhaps should really fork an inferior shell?
11022 But that would not provide any way to get back 11000 But that would not provide any way to get back
11023 to the original shell, ever. */ 11001 to the original shell, ever. */
11024 printf ("No support for stopping a process on this operating system;\n"); 11002 printf ("No support for stopping a process on this operating system;\n");
11025 printf ("you can continue or abort.\n"); 11003 printf ("you can continue or abort.\n");
11026#endif /* not VMS */
11027#endif /* not SIGTSTP */ 11004#endif /* not SIGTSTP */
11028#ifdef MSDOS 11005#ifdef MSDOS
11029 /* We must remain inside the screen area when the internal terminal 11006 /* We must remain inside the screen area when the internal terminal
@@ -11062,11 +11039,7 @@ handle_interrupt ()
11062#ifdef MSDOS 11039#ifdef MSDOS
11063 printf ("\r\nAbort? (y or n) "); 11040 printf ("\r\nAbort? (y or n) ");
11064#else /* not MSDOS */ 11041#else /* not MSDOS */
11065#ifdef VMS
11066 printf ("Abort (and enter debugger)? (y or n) ");
11067#else /* not VMS */
11068 printf ("Abort (and dump core)? (y or n) "); 11042 printf ("Abort (and dump core)? (y or n) ");
11069#endif /* not VMS */
11070#endif /* not MSDOS */ 11043#endif /* not MSDOS */
11071 fflush (stdout); 11044 fflush (stdout);
11072 if (((c = getchar ()) & ~040) == 'Y') 11045 if (((c = getchar ()) & ~040) == 'Y')
@@ -11169,11 +11142,6 @@ See also `current-input-mode'. */)
11169 new_interrupt_input = 0; 11142 new_interrupt_input = 0;
11170#endif /* not SIGIO */ 11143#endif /* not SIGIO */
11171 11144
11172/* Our VMS input only works by interrupts, as of now. */
11173#ifdef VMS
11174 new_interrupt_input = 1;
11175#endif
11176
11177 if (new_interrupt_input != interrupt_input) 11145 if (new_interrupt_input != interrupt_input)
11178 { 11146 {
11179#ifdef POLL_FOR_INPUT 11147#ifdef POLL_FOR_INPUT
@@ -11589,11 +11557,6 @@ init_keyboard ()
11589 interrupt_input = 0; 11557 interrupt_input = 0;
11590#endif 11558#endif
11591 11559
11592/* Our VMS input only works by interrupts, as of now. */
11593#ifdef VMS
11594 interrupt_input = 1;
11595#endif
11596
11597 sigfree (); 11560 sigfree ();
11598 dribble = 0; 11561 dribble = 0;
11599 11562
diff --git a/src/lread.c b/src/lread.c
index 872b6cfc2fc..f36162b1a85 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1342,11 +1342,7 @@ complete_filename_p (pathname)
1342 register const unsigned char *s = SDATA (pathname); 1342 register const unsigned char *s = SDATA (pathname);
1343 return (IS_DIRECTORY_SEP (s[0]) 1343 return (IS_DIRECTORY_SEP (s[0])
1344 || (SCHARS (pathname) > 2 1344 || (SCHARS (pathname) > 2
1345 && IS_DEVICE_SEP (s[1]) && IS_DIRECTORY_SEP (s[2])) 1345 && IS_DEVICE_SEP (s[1]) && IS_DIRECTORY_SEP (s[2])));
1346#ifdef VMS
1347 || index (s, ':')
1348#endif /* VMS */
1349 );
1350} 1346}
1351 1347
1352DEFUN ("locate-file-internal", Flocate_file_internal, Slocate_file_internal, 2, 4, 0, 1348DEFUN ("locate-file-internal", Flocate_file_internal, Slocate_file_internal, 2, 4, 0,
@@ -3719,9 +3715,7 @@ oblookup (obarray, ptr, size, size_byte)
3719 } 3715 }
3720 /* This is sometimes needed in the middle of GC. */ 3716 /* This is sometimes needed in the middle of GC. */
3721 obsize &= ~ARRAY_MARK_FLAG; 3717 obsize &= ~ARRAY_MARK_FLAG;
3722 /* Combining next two lines breaks VMS C 2.3. */ 3718 hash = hash_string (ptr, size_byte) % obsize;
3723 hash = hash_string (ptr, size_byte);
3724 hash %= obsize;
3725 bucket = XVECTOR (obarray)->contents[hash]; 3719 bucket = XVECTOR (obarray)->contents[hash];
3726 oblookup_last_bucket_number = hash; 3720 oblookup_last_bucket_number = hash;
3727 if (EQ (bucket, make_number (0))) 3721 if (EQ (bucket, make_number (0)))
diff --git a/src/m/vax.h b/src/m/vax.h
index 8b0593c028d..bfb0dee5f23 100644
--- a/src/m/vax.h
+++ b/src/m/vax.h
@@ -25,11 +25,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
25NOTE-START 25NOTE-START
26The vax (-machine=vax) runs zillions of different operating systems. 26The vax (-machine=vax) runs zillions of different operating systems.
27 27
28Vax running VMS (-opsystem=vms)
29
30 18.36 believed to work. Addition of features is necessary to make
31 this Emacs version more usable.
32
33NOTE-END */ 28NOTE-END */
34 29
35/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word 30/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
@@ -57,18 +52,6 @@ NOTE-END */
57 52
58#endif /* BSD_SYSTEM */ 53#endif /* BSD_SYSTEM */
59 54
60#ifdef VMS
61
62/* Data type of load average, as read out of driver. */
63
64#define LOAD_AVE_TYPE float
65
66/* Convert that into an integer that is 100 for a load average of 1.0 */
67
68#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
69
70#endif /* VMS */
71
72#ifdef BSD4_2 55#ifdef BSD4_2
73#define HAVE_FTIME 56#define HAVE_FTIME
74#endif 57#endif
diff --git a/src/ndir.h b/src/ndir.h
index d254b5cf603..d7bac9d3fae 100644
--- a/src/ndir.h
+++ b/src/ndir.h
@@ -7,30 +7,13 @@
7 * copyright, constituting the only possible expression of the 7 * copyright, constituting the only possible expression of the
8 * algorithm in this format. 8 * algorithm in this format.
9 */ 9 */
10#ifdef VMS
11#ifndef FAB$C_BID
12#include <fab.h>
13#endif
14#ifndef NAM$C_BID
15#include <nam.h>
16#endif
17#ifndef RMS$_SUC
18#include <rmsdef.h>
19#endif
20#include "vmsdir.h"
21#endif /* VMS */
22 10
23#define DIRBLKSIZ 512 /* size of directory block */ 11#define DIRBLKSIZ 512 /* size of directory block */
24#ifdef VMS
25#define MAXNAMLEN (DIR$S_NAME + 7) /* 80 plus room for version #. */
26#define MAXFULLSPEC NAM$C_MAXRSS /* Maximum full spec */
27#else
28#ifdef WINDOWSNT 12#ifdef WINDOWSNT
29#define MAXNAMLEN 255 13#define MAXNAMLEN 255
30#else /* not WINDOWSNT */ 14#else /* not WINDOWSNT */
31#define MAXNAMLEN 15 /* maximum filename length */ 15#define MAXNAMLEN 15 /* maximum filename length */
32#endif /* not WINDOWSNT */ 16#endif /* not WINDOWSNT */
33#endif /* VMS */
34 /* NOTE: MAXNAMLEN must be one less than a multiple of 4 */ 17 /* NOTE: MAXNAMLEN must be one less than a multiple of 4 */
35 18
36struct direct /* data from readdir() */ 19struct direct /* data from readdir() */
diff --git a/src/param.h b/src/param.h
deleted file mode 100644
index 5e80bf9e548..00000000000
--- a/src/param.h
+++ /dev/null
@@ -1,5 +0,0 @@
1/* This is so that Emacs can run on VMS... */
2#define EXEC_PAGESIZE 512
3
4/* arch-tag: a6daea28-33a6-4dd3-97d8-5ee1a12f09d3
5 (do not change this comment) */
diff --git a/src/print.c b/src/print.c
index b9d2e12be15..90b46496eff 100644
--- a/src/print.c
+++ b/src/print.c
@@ -167,11 +167,6 @@ extern int noninteractive_need_newline;
167 167
168extern int minibuffer_auto_raise; 168extern int minibuffer_auto_raise;
169 169
170#ifdef MAX_PRINT_CHARS
171static int print_chars;
172static int max_print;
173#endif /* MAX_PRINT_CHARS */
174
175void print_interval (); 170void print_interval ();
176 171
177/* GDB resets this to zero on W32 to disable OutputDebugString calls. */ 172/* GDB resets this to zero on W32 to disable OutputDebugString calls. */
@@ -309,11 +304,6 @@ printchar (ch, fun)
309 unsigned int ch; 304 unsigned int ch;
310 Lisp_Object fun; 305 Lisp_Object fun;
311{ 306{
312#ifdef MAX_PRINT_CHARS
313 if (max_print)
314 print_chars++;
315#endif /* MAX_PRINT_CHARS */
316
317 if (!NILP (fun) && !EQ (fun, Qt)) 307 if (!NILP (fun) && !EQ (fun, Qt))
318 call1 (fun, make_number (ch)); 308 call1 (fun, make_number (ch));
319 else 309 else
@@ -382,11 +372,6 @@ strout (ptr, size, size_byte, printcharfun, multibyte)
382 bcopy (ptr, print_buffer + print_buffer_pos_byte, size_byte); 372 bcopy (ptr, print_buffer + print_buffer_pos_byte, size_byte);
383 print_buffer_pos += size; 373 print_buffer_pos += size;
384 print_buffer_pos_byte += size_byte; 374 print_buffer_pos_byte += size_byte;
385
386#ifdef MAX_PRINT_CHARS
387 if (max_print)
388 print_chars += size;
389#endif /* MAX_PRINT_CHARS */
390 } 375 }
391 else if (noninteractive && EQ (printcharfun, Qt)) 376 else if (noninteractive && EQ (printcharfun, Qt))
392 { 377 {
@@ -419,11 +404,6 @@ strout (ptr, size, size_byte, printcharfun, multibyte)
419 insert_char (ch); 404 insert_char (ch);
420 } 405 }
421 } 406 }
422
423#ifdef MAX_PRINT_CHARS
424 if (max_print)
425 print_chars += size;
426#endif /* MAX_PRINT_CHARS */
427 } 407 }
428 else 408 else
429 { 409 {
@@ -764,9 +744,6 @@ is used instead. */)
764{ 744{
765 PRINTDECLARE; 745 PRINTDECLARE;
766 746
767#ifdef MAX_PRINT_CHARS
768 max_print = 0;
769#endif /* MAX_PRINT_CHARS */
770 if (NILP (printcharfun)) 747 if (NILP (printcharfun))
771 printcharfun = Vstandard_output; 748 printcharfun = Vstandard_output;
772 PRINTPREPARE; 749 PRINTPREPARE;
@@ -900,10 +877,6 @@ is used instead. */)
900 PRINTDECLARE; 877 PRINTDECLARE;
901 struct gcpro gcpro1; 878 struct gcpro gcpro1;
902 879
903#ifdef MAX_PRINT_CHARS
904 print_chars = 0;
905 max_print = MAX_PRINT_CHARS;
906#endif /* MAX_PRINT_CHARS */
907 if (NILP (printcharfun)) 880 if (NILP (printcharfun))
908 printcharfun = Vstandard_output; 881 printcharfun = Vstandard_output;
909 GCPRO1 (object); 882 GCPRO1 (object);
@@ -912,10 +885,6 @@ is used instead. */)
912 print (object, printcharfun, 1); 885 print (object, printcharfun, 1);
913 PRINTCHAR ('\n'); 886 PRINTCHAR ('\n');
914 PRINTFINISH; 887 PRINTFINISH;
915#ifdef MAX_PRINT_CHARS
916 max_print = 0;
917 print_chars = 0;
918#endif /* MAX_PRINT_CHARS */
919 UNGCPRO; 888 UNGCPRO;
920 return object; 889 return object;
921} 890}
@@ -1614,14 +1583,6 @@ print_object (obj, printcharfun, escapeflag)
1614 1583
1615 print_depth++; 1584 print_depth++;
1616 1585
1617#ifdef MAX_PRINT_CHARS
1618 if (max_print && print_chars > max_print)
1619 {
1620 PRINTCHAR ('\n');
1621 print_chars = 0;
1622 }
1623#endif /* MAX_PRINT_CHARS */
1624
1625 switch (XTYPE (obj)) 1586 switch (XTYPE (obj))
1626 { 1587 {
1627 case Lisp_Int: 1588 case Lisp_Int:
diff --git a/src/process.c b/src/process.c
index 3d64ff2cdd0..f343ccc0cc4 100644
--- a/src/process.c
+++ b/src/process.c
@@ -159,11 +159,7 @@ extern Lisp_Object QCfilter;
159#endif /* HAVE_SOCKETS */ 159#endif /* HAVE_SOCKETS */
160 160
161/* Define first descriptor number available for subprocesses. */ 161/* Define first descriptor number available for subprocesses. */
162#ifdef VMS
163#define FIRST_PROC_DESC 1
164#else /* Not VMS */
165#define FIRST_PROC_DESC 3 162#define FIRST_PROC_DESC 3
166#endif
167 163
168/* Define SIGCHLD as an alias for SIGCLD. There are many conditionals 164/* Define SIGCHLD as an alias for SIGCLD. There are many conditionals
169 testing SIGCHLD. */ 165 testing SIGCHLD. */
@@ -192,9 +188,6 @@ extern void serial_configure (struct Lisp_Process *p, Lisp_Object contact);
192#ifndef USE_CRT_DLL 188#ifndef USE_CRT_DLL
193extern int errno; 189extern int errno;
194#endif 190#endif
195#ifdef VMS
196extern char *sys_errlist[];
197#endif
198 191
199#ifndef HAVE_H_ERRNO 192#ifndef HAVE_H_ERRNO
200extern int h_errno; 193extern int h_errno;
@@ -1417,12 +1410,7 @@ list_processes_1 (query_only)
1417 { 1410 {
1418 Lisp_Object tem; 1411 Lisp_Object tem;
1419 tem = Fcar (Fcdr (p->status)); 1412 tem = Fcar (Fcdr (p->status));
1420#ifdef VMS 1413 Fprinc (symbol, Qnil);
1421 if (XINT (tem) < NSIG)
1422 write_string (sys_errlist [XINT (tem)], -1);
1423 else
1424#endif
1425 Fprinc (symbol, Qnil);
1426 } 1414 }
1427 else if (NETCONN1_P (p) || SERIALCONN1_P (p)) 1415 else if (NETCONN1_P (p) || SERIALCONN1_P (p))
1428 { 1416 {
@@ -1587,12 +1575,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
1587 register Lisp_Object *args; 1575 register Lisp_Object *args;
1588{ 1576{
1589 Lisp_Object buffer, name, program, proc, current_dir, tem; 1577 Lisp_Object buffer, name, program, proc, current_dir, tem;
1590#ifdef VMS
1591 register unsigned char *new_argv;
1592 int len;
1593#else
1594 register unsigned char **new_argv; 1578 register unsigned char **new_argv;
1595#endif
1596 register int i; 1579 register int i;
1597 int count = SPECPDL_INDEX (); 1580 int count = SPECPDL_INDEX ();
1598 1581
@@ -1709,28 +1692,6 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
1709 XPROCESS (proc)->encode_coding_system = val; 1692 XPROCESS (proc)->encode_coding_system = val;
1710 } 1693 }
1711 1694
1712#ifdef VMS
1713 /* Make a one member argv with all args concatenated
1714 together separated by a blank. */
1715 len = SBYTES (program) + 2;
1716 for (i = 3; i < nargs; i++)
1717 {
1718 tem = args[i];
1719 CHECK_STRING (tem);
1720 len += SBYTES (tem) + 1; /* count the blank */
1721 }
1722 new_argv = (unsigned char *) alloca (len);
1723 strcpy (new_argv, SDATA (program));
1724 for (i = 3; i < nargs; i++)
1725 {
1726 tem = args[i];
1727 CHECK_STRING (tem);
1728 strcat (new_argv, " ");
1729 strcat (new_argv, SDATA (tem));
1730 }
1731 /* Need to add code here to check for program existence on VMS */
1732
1733#else /* not VMS */
1734 new_argv = (unsigned char **) alloca ((nargs - 1) * sizeof (char *)); 1695 new_argv = (unsigned char **) alloca ((nargs - 1) * sizeof (char *));
1735 1696
1736 /* If program file name is not absolute, search our path for it. 1697 /* If program file name is not absolute, search our path for it.
@@ -1782,7 +1743,6 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
1782 new_argv[i - 2] = SDATA (tem); 1743 new_argv[i - 2] = SDATA (tem);
1783 } 1744 }
1784 new_argv[i - 2] = 0; 1745 new_argv[i - 2] = 0;
1785#endif /* not VMS */
1786 1746
1787 XPROCESS (proc)->decoding_buf = make_uninit_string (0); 1747 XPROCESS (proc)->decoding_buf = make_uninit_string (0);
1788 XPROCESS (proc)->decoding_carryover = 0; 1748 XPROCESS (proc)->decoding_carryover = 0;
@@ -1841,7 +1801,6 @@ create_process_sigchld ()
1841#endif 1801#endif
1842#endif 1802#endif
1843 1803
1844#ifndef VMS /* VMS version of this function is in vmsproc.c. */
1845void 1804void
1846create_process (process, new_argv, current_dir) 1805create_process (process, new_argv, current_dir)
1847 Lisp_Object process; 1806 Lisp_Object process;
@@ -2285,7 +2244,6 @@ create_process (process, new_argv, current_dir)
2285 if (pid < 0) 2244 if (pid < 0)
2286 report_file_error ("Doing vfork", Qnil); 2245 report_file_error ("Doing vfork", Qnil);
2287} 2246}
2288#endif /* not VMS */
2289 2247
2290 2248
2291#ifdef HAVE_SOCKETS 2249#ifdef HAVE_SOCKETS
@@ -4098,19 +4056,9 @@ deactivate_process (proc)
4098 { 4056 {
4099 /* Beware SIGCHLD hereabouts. */ 4057 /* Beware SIGCHLD hereabouts. */
4100 flush_pending_output (inchannel); 4058 flush_pending_output (inchannel);
4101#ifdef VMS
4102 {
4103 VMS_PROC_STUFF *get_vms_process_pointer (), *vs;
4104 sys$dassgn (outchannel);
4105 vs = get_vms_process_pointer (p->pid);
4106 if (vs)
4107 give_back_vms_process_stuff (vs);
4108 }
4109#else
4110 emacs_close (inchannel); 4059 emacs_close (inchannel);
4111 if (outchannel >= 0 && outchannel != inchannel) 4060 if (outchannel >= 0 && outchannel != inchannel)
4112 emacs_close (outchannel); 4061 emacs_close (outchannel);
4113#endif
4114 4062
4115 p->infd = -1; 4063 p->infd = -1;
4116 p->outfd = -1; 4064 p->outfd = -1;
@@ -5231,37 +5179,6 @@ read_process_output (proc, channel)
5231 int carryover = p->decoding_carryover; 5179 int carryover = p->decoding_carryover;
5232 int readmax = 4096; 5180 int readmax = 4096;
5233 5181
5234#ifdef VMS
5235 VMS_PROC_STUFF *vs, *get_vms_process_pointer();
5236
5237 vs = get_vms_process_pointer (p->pid);
5238 if (vs)
5239 {
5240 if (!vs->iosb[0])
5241 return (0); /* Really weird if it does this */
5242 if (!(vs->iosb[0] & 1))
5243 return -1; /* I/O error */
5244 }
5245 else
5246 error ("Could not get VMS process pointer");
5247 chars = vs->inputBuffer;
5248 nbytes = clean_vms_buffer (chars, vs->iosb[1]);
5249 if (nbytes <= 0)
5250 {
5251 start_vms_process_read (vs); /* Crank up the next read on the process */
5252 return 1; /* Nothing worth printing, say we got 1 */
5253 }
5254 if (carryover > 0)
5255 {
5256 /* The data carried over in the previous decoding (which are at
5257 the tail of decoding buffer) should be prepended to the new
5258 data read to decode all together. */
5259 chars = (char *) alloca (nbytes + carryover);
5260 bcopy (SDATA (p->decoding_buf), buf, carryover);
5261 bcopy (vs->inputBuffer, chars + carryover, nbytes);
5262 }
5263#else /* not VMS */
5264
5265 chars = (char *) alloca (carryover + readmax); 5182 chars = (char *) alloca (carryover + readmax);
5266 if (carryover) 5183 if (carryover)
5267 /* See the comment above. */ 5184 /* See the comment above. */
@@ -5318,7 +5235,6 @@ read_process_output (proc, channel)
5318 else 5235 else
5319 nbytes = nbytes + 1; 5236 nbytes = nbytes + 1;
5320 } 5237 }
5321#endif /* not VMS */
5322 5238
5323 p->decoding_carryover = 0; 5239 p->decoding_carryover = 0;
5324 5240
@@ -5441,9 +5357,6 @@ read_process_output (proc, channel)
5441 if (waiting_for_user_input_p == -1) 5357 if (waiting_for_user_input_p == -1)
5442 record_asynch_buffer_change (); 5358 record_asynch_buffer_change ();
5443 5359
5444#ifdef VMS
5445 start_vms_process_read (vs);
5446#endif
5447 unbind_to (count, Qnil); 5360 unbind_to (count, Qnil);
5448 return nbytes; 5361 return nbytes;
5449 } 5362 }
@@ -5566,9 +5479,6 @@ read_process_output (proc, channel)
5566 SET_PT_BOTH (opoint, opoint_byte); 5479 SET_PT_BOTH (opoint, opoint_byte);
5567 set_buffer_internal (old); 5480 set_buffer_internal (old);
5568 } 5481 }
5569#ifdef VMS
5570 start_vms_process_read (vs);
5571#endif
5572 return nbytes; 5482 return nbytes;
5573} 5483}
5574 5484
@@ -5620,10 +5530,6 @@ send_process (proc, buf, len, object)
5620 5530
5621 GCPRO1 (object); 5531 GCPRO1 (object);
5622 5532
5623#ifdef VMS
5624 VMS_PROC_STUFF *vs, *get_vms_process_pointer();
5625#endif /* VMS */
5626
5627 if (p->raw_status_new) 5533 if (p->raw_status_new)
5628 update_status (p); 5534 update_status (p);
5629 if (! EQ (p->status, Qrun)) 5535 if (! EQ (p->status, Qrun))
@@ -5704,14 +5610,6 @@ send_process (proc, buf, len, object)
5704 buf = SDATA (coding->dst_object); 5610 buf = SDATA (coding->dst_object);
5705 } 5611 }
5706 5612
5707#ifdef VMS
5708 vs = get_vms_process_pointer (p->pid);
5709 if (vs == 0)
5710 error ("Could not find this process: %x", p->pid);
5711 else if (write_to_vms_process (vs, buf, len))
5712 ;
5713#else /* not VMS */
5714
5715 if (pty_max_bytes == 0) 5613 if (pty_max_bytes == 0)
5716 { 5614 {
5717#if defined (HAVE_FPATHCONF) && defined (_PC_MAX_CANON) 5615#if defined (HAVE_FPATHCONF) && defined (_PC_MAX_CANON)
@@ -5873,23 +5771,16 @@ send_process (proc, buf, len, object)
5873 Fprocess_send_eof (proc); 5771 Fprocess_send_eof (proc);
5874 } 5772 }
5875 } 5773 }
5876#endif /* not VMS */
5877 else 5774 else
5878 { 5775 {
5879 signal (SIGPIPE, old_sigpipe); 5776 signal (SIGPIPE, old_sigpipe);
5880#ifndef VMS
5881 proc = process_sent_to; 5777 proc = process_sent_to;
5882 p = XPROCESS (proc); 5778 p = XPROCESS (proc);
5883#endif
5884 p->raw_status_new = 0; 5779 p->raw_status_new = 0;
5885 p->status = Fcons (Qexit, Fcons (make_number (256), Qnil)); 5780 p->status = Fcons (Qexit, Fcons (make_number (256), Qnil));
5886 p->tick = ++process_tick; 5781 p->tick = ++process_tick;
5887 deactivate_process (proc); 5782 deactivate_process (proc);
5888#ifdef VMS
5889 error ("Error writing to process %s; closed it", SDATA (p->name));
5890#else
5891 error ("SIGPIPE raised on process %s; closed it", SDATA (p->name)); 5783 error ("SIGPIPE raised on process %s; closed it", SDATA (p->name));
5892#endif
5893 } 5784 }
5894 5785
5895 UNGCPRO; 5786 UNGCPRO;
@@ -6193,20 +6084,8 @@ process_send_signal (process, signo, current_group, nomsg)
6193 break; 6084 break;
6194#endif /* ! defined (SIGCONT) */ 6085#endif /* ! defined (SIGCONT) */
6195 case SIGINT: 6086 case SIGINT:
6196#ifdef VMS
6197 send_process (proc, "\003", 1, Qnil); /* ^C */
6198 goto whoosh;
6199#endif
6200 case SIGQUIT: 6087 case SIGQUIT:
6201#ifdef VMS
6202 send_process (proc, "\031", 1, Qnil); /* ^Y */
6203 goto whoosh;
6204#endif
6205 case SIGKILL: 6088 case SIGKILL:
6206#ifdef VMS
6207 sys$forcex (&(p->pid), 0, 1);
6208 whoosh:
6209#endif
6210 flush_pending_output (p->infd); 6089 flush_pending_output (p->infd);
6211 break; 6090 break;
6212 } 6091 }
@@ -6547,9 +6426,6 @@ process has been transmitted to the serial port. */)
6547 send_process (proc, "", 0, Qnil); 6426 send_process (proc, "", 0, Qnil);
6548 } 6427 }
6549 6428
6550#ifdef VMS
6551 send_process (proc, "\032", 1, Qnil); /* ^z */
6552#else
6553 if (XPROCESS (proc)->pty_flag) 6429 if (XPROCESS (proc)->pty_flag)
6554 send_process (proc, "\004", 1, Qnil); 6430 send_process (proc, "\004", 1, Qnil);
6555 else if (EQ (XPROCESS (proc)->type, Qserial)) 6431 else if (EQ (XPROCESS (proc)->type, Qserial))
@@ -6594,7 +6470,6 @@ process has been transmitted to the serial port. */)
6594 6470
6595 XPROCESS (proc)->outfd = new_outfd; 6471 XPROCESS (proc)->outfd = new_outfd;
6596 } 6472 }
6597#endif /* VMS */
6598 return process; 6473 return process;
6599} 6474}
6600 6475
diff --git a/src/process.h b/src/process.h
index 29cf38a2a4f..3f50fc5a146 100644
--- a/src/process.h
+++ b/src/process.h
@@ -152,7 +152,7 @@ extern int synch_process_termsig;
152extern int synch_process_retcode; 152extern int synch_process_retcode;
153 153
154/* The name of the file open to get a null file, or a data sink. 154/* The name of the file open to get a null file, or a data sink.
155 VMS, MS-DOS, and OS/2 redefine this. */ 155 MS-DOS, and OS/2 redefine this. */
156#ifndef NULL_DEVICE 156#ifndef NULL_DEVICE
157#define NULL_DEVICE "/dev/null" 157#define NULL_DEVICE "/dev/null"
158#endif 158#endif
diff --git a/src/s/msdos.h b/src/s/msdos.h
index 2d29a5548b7..7699f80d192 100644
--- a/src/s/msdos.h
+++ b/src/s/msdos.h
@@ -40,7 +40,6 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
40 40
41#define DOS_NT /* MSDOS or WINDOWSNT */ 41#define DOS_NT /* MSDOS or WINDOWSNT */
42#undef BSD_SYSTEM 42#undef BSD_SYSTEM
43#undef VMS
44 43
45/* SYSTEM_TYPE should indicate the kind of system you are using. 44/* SYSTEM_TYPE should indicate the kind of system you are using.
46 It sets the Lisp variable system-type. */ 45 It sets the Lisp variable system-type. */
diff --git a/src/s/template.h b/src/s/template.h
index ce5c8fdbe5c..f7a7d7f0af1 100644
--- a/src/s/template.h
+++ b/src/s/template.h
@@ -31,7 +31,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
31/* #define BSD4_2 */ 31/* #define BSD4_2 */
32/* #define BSD4_3 */ 32/* #define BSD4_3 */
33/* #define BSD_SYSTEM */ 33/* #define BSD_SYSTEM */
34/* #define VMS */
35 34
36/* SYSTEM_TYPE should indicate the kind of system you are using. 35/* SYSTEM_TYPE should indicate the kind of system you are using.
37 It sets the Lisp variable system-type. */ 36 It sets the Lisp variable system-type. */
@@ -93,13 +92,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
93 92
94#define HAVE_PTYS 93#define HAVE_PTYS
95 94
96/*
97 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
98 * The 4.2 opendir, etc., library functions.
99 */
100
101#define NONSYSTEM_DIR_LIBRARY
102
103/* Define this symbol if your system has the functions bcopy, etc. */ 95/* Define this symbol if your system has the functions bcopy, etc. */
104 96
105#define BSTRING 97#define BSTRING
diff --git a/src/s/vms.h b/src/s/vms.h
deleted file mode 100644
index e95e5f217ae..00000000000
--- a/src/s/vms.h
+++ /dev/null
@@ -1,192 +0,0 @@
1/* system description header for VMS
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 3 of the License, or
10(at your option) any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19
20/*
21 * Define symbols to identify the version of Unix this is.
22 * Define all the symbols that apply correctly.
23 */
24
25#ifndef VMS /* Decus cpp doesn't define this but VAX C does */
26#define VMS
27#endif /* VMS */
28/* Note that this file is used indirectly via vms4-0.h, or some other
29 such file. These other files define a symbol VMS4_0, VMS4_2, etc. */
30
31/* SYSTEM_TYPE should indicate the kind of system you are using.
32 It sets the Lisp variable system-type. */
33
34#define SYSTEM_TYPE "vax-vms"
35
36/* Letter to use in finding device name of first pty,
37 if system supports pty's. 'a' means it is /dev/ptya0 */
38
39#define FIRST_PTY_LETTER 'a'
40
41/*
42 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
43 * The 4.2 opendir, etc., library functions.
44 */
45
46#define NONSYSTEM_DIR_LIBRARY
47
48/* Define the maximum record length for print strings, if needed. */
49
50#define MAX_PRINT_CHARS 300
51
52
53/* Here, on a separate page, add any special hacks needed
54 to make Emacs work on this system. For example,
55 you might define certain system call names that don't
56 exist on your system, or that do different things on
57 your system and must be used only through an encapsulation
58 (Which you should place, by convention, in sysdep.c). */
59
60/* In olden days, VMS filenames did not support hyphen (i.e., the "-"
61 character). You can #undef this in vmsX-Y.h for newer versions. */
62
63#define NO_HYPHENS_IN_FILENAMES
64
65/* Do you have the sharable library bug? If you link with a sharable
66 library that contains psects with the NOSHR attribute and also refer to
67 those psects in your program, the linker give you a private version of
68 the psect which is not related to the version used by the sharable
69 library. The end result is that your references to variables in that
70 psect have absolutely nothing to do with library references to what is
71 supposed to be the same variable. If you intend to link with the standard
72 C library (NOT the sharable one) you don't need to define this. (This
73 is NOT fixed in V4.4...) */
74
75#define SHARABLE_LIB_BUG
76
77/* Partially due to the above mentioned bug and also so that we don't need
78 to require that people have a sharable C library, the default for Emacs
79 is to link with the non-shared library. If you want to link with the
80 shared library, define this and remake xmakefile and fileio.c. This allows
81 us to ship a guaranteed executable image. */
82
83#define LINK_CRTL_SHARE
84
85/* Define this if you want to read the file SYS$SYSTEM:SYSUAF.DAT for user
86 information. If you do use this, you must either make SYSUAF.DAT world
87 readable or install Emacs with SYSPRV. */
88
89/* #define READ_SYSUAF */
90
91/* Traditionally, filenames on VMS are always upper case. */
92
93#define FILE_SYSTEM_CASE Fupcase
94
95/* On VMS these have a different name */
96
97#define index strchr
98#define rindex strrchr
99#define unlink delete
100
101#ifndef __GNUC__
102extern double mth$dmod(double, double);
103#endif
104
105/* Some time routines are missing in the VAX C RTL, or needs some
106 extra bit of code */
107#define tzset sys_tzset
108#define localtime sys_localtime
109#define gmtime sys_gmtime
110
111/* On later versions of VMS these exist in the C run time library, but
112 we are using our own implementations. Hide their names to avoid
113 linker errors */
114#define rename sys_rename
115#define execvp sys_execvp
116#define system sys_system
117
118#ifndef GNU_MALLOC
119/* Hide these names so that we don't get linker errors */
120#define malloc sys_malloc
121#define free sys_free
122#define realloc sys_realloc
123#define calloc sys_calloc
124
125/* Don't use the standard brk and sbrk */
126#define sbrk sys_sbrk
127#define brk sys_brk
128#endif
129
130/* On VMS we want to avoid reading and writing very large amounts of
131 data at once, so we redefine read and write here. */
132
133#define read sys_read
134#define write sys_write
135
136/* sys_creat just calls the real creat with additional args of
137 "rfm=var", "rat=cr" to get "normal" VMS files... */
138#define creat sys_creat
139
140/* fwrite forces an RMS PUT on every call. This is abysmally slow, so
141 we emulate fwrite with fputc, which forces buffering and is much
142 faster! */
143#define fwrite sys_fwrite
144
145/* getuid only returns the member number, which is not unique on most VMS
146 systems. We emulate it with (getgid()<<16 | getuid()). */
147#define getuid sys_getuid
148
149/* If user asks for TERM, check first for EMACS_TERM. */
150#define getenv sys_getenv
151
152/* Standard C abort is less useful than it should be. */
153#define abort sys_abort
154
155/* Case conflicts with C library fread. */
156#define Fread F_read
157
158/* Case conflicts with C library srandom. */
159#define Srandom S_random
160
161/* Cause initialization of vmsfns.c to be run. */
162#define SYMS_SYSTEM syms_of_vmsfns ()
163
164/* VAXCRTL access doesn't deal with SYSPRV very well (among other oddities...)
165 Here, we use $CHKPRO to really determine access. */
166#define access sys_access
167
168#define PAGESIZE 512
169
170#define _longjmp longjmp
171#define _setjmp setjmp
172
173globalref char sdata[];
174#define DATA_START (((int) sdata + 511) & ~511)
175#define TEXT_START 512
176
177#define PURESIZE 330000
178
179/* Stdio FILE type has extra indirect on VMS, so must alter this macro. */
180
181#define PENDING_OUTPUT_COUNT(FILE) ((*(FILE))->_ptr - (*(FILE))->_base)
182
183#define NULL_DEVICE "NLA0:"
184
185/* Case conflict with Xlib XFree () */
186#define xfree emacs_xfree
187
188/* What separator do we use in paths? */
189#define SEPCHAR ','
190
191/* arch-tag: 76bc2b70-46d1-4334-8f12-955c0d0ca6d4
192 (do not change this comment) */
diff --git a/src/sysdep.c b/src/sysdep.c
index 908375d344d..8da7d6a4784 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -90,32 +90,7 @@ extern int errno;
90#endif 90#endif
91#endif 91#endif
92 92
93#ifdef VMS
94#include <rms.h>
95#include <ttdef.h>
96#include <tt2def.h>
97#include <iodef.h>
98#include <ssdef.h>
99#include <descrip.h>
100#include <fibdef.h>
101#include <atrdef.h>
102#include <ctype.h>
103#include <string.h>
104#ifdef __GNUC__
105#include <sys/file.h> 93#include <sys/file.h>
106#else
107#include <file.h>
108#endif
109#undef F_SETFL
110#ifndef RAB$C_BID
111#include <rab.h>
112#endif
113#define MAXIOSIZE (32 * PAGESIZE) /* Don't I/O more than 32 blocks at a time */
114#endif /* VMS */
115
116#ifndef VMS
117#include <sys/file.h>
118#endif /* not VMS */
119 94
120#ifdef HAVE_FCNTL_H 95#ifdef HAVE_FCNTL_H
121#include <fcntl.h> 96#include <fcntl.h>
@@ -159,10 +134,6 @@ int _cdecl _getpid (void);
159extern char *getwd (char *); 134extern char *getwd (char *);
160#endif 135#endif
161 136
162#ifdef NONSYSTEM_DIR_LIBRARY
163#include "ndir.h"
164#endif /* NONSYSTEM_DIR_LIBRARY */
165
166#include "syssignal.h" 137#include "syssignal.h"
167#include "systime.h" 138#include "systime.h"
168#ifdef HAVE_UTIME_H 139#ifdef HAVE_UTIME_H
@@ -297,12 +268,6 @@ discard_tty_input ()
297 if (noninteractive) 268 if (noninteractive)
298 return; 269 return;
299 270
300#ifdef VMS
301 end_kbd_input ();
302 SYS$QIOW (0, fileno (CURTTY()->input), IO$_READVBLK|IO$M_PURGE, input_iosb, 0, 0,
303 &buf.main, 0, 0, terminator_mask, 0, 0);
304 queue_kbd_input ();
305#else /* not VMS */
306#ifdef MSDOS /* Demacs 1.1.1 91/10/16 HIRANO Satoshi */ 271#ifdef MSDOS /* Demacs 1.1.1 91/10/16 HIRANO Satoshi */
307 while (dos_keyread () != -1) 272 while (dos_keyread () != -1)
308 ; 273 ;
@@ -319,7 +284,6 @@ discard_tty_input ()
319 } 284 }
320 } 285 }
321#endif /* not MSDOS */ 286#endif /* not MSDOS */
322#endif /* not VMS */
323#endif /* not WINDOWSNT */ 287#endif /* not WINDOWSNT */
324} 288}
325 289
@@ -357,20 +321,13 @@ init_baud_rate (int fd)
357#ifdef DOS_NT 321#ifdef DOS_NT
358 emacs_ospeed = 15; 322 emacs_ospeed = 15;
359#else /* not DOS_NT */ 323#else /* not DOS_NT */
360#ifdef VMS
361 struct sensemode sg;
362
363 SYS$QIOW (0, fd, IO$_SENSEMODE, &sg, 0, 0,
364 &sg.class, 12, 0, 0, 0, 0 );
365 emacs_ospeed = sg.xmit_baud;
366#else /* not VMS */
367#ifdef HAVE_TERMIOS 324#ifdef HAVE_TERMIOS
368 struct termios sg; 325 struct termios sg;
369 326
370 sg.c_cflag = B9600; 327 sg.c_cflag = B9600;
371 tcgetattr (fd, &sg); 328 tcgetattr (fd, &sg);
372 emacs_ospeed = cfgetospeed (&sg); 329 emacs_ospeed = cfgetospeed (&sg);
373#else /* neither VMS nor TERMIOS */ 330#else /* not TERMIOS */
374#ifdef HAVE_TERMIO 331#ifdef HAVE_TERMIO
375 struct termio sg; 332 struct termio sg;
376 333
@@ -381,7 +338,7 @@ init_baud_rate (int fd)
381 ioctl (fd, TCGETA, &sg); 338 ioctl (fd, TCGETA, &sg);
382#endif 339#endif
383 emacs_ospeed = sg.c_cflag & CBAUD; 340 emacs_ospeed = sg.c_cflag & CBAUD;
384#else /* neither VMS nor TERMIOS nor TERMIO */ 341#else /* neither TERMIOS nor TERMIO */
385 struct sgttyb sg; 342 struct sgttyb sg;
386 343
387 sg.sg_ospeed = B9600; 344 sg.sg_ospeed = B9600;
@@ -390,7 +347,6 @@ init_baud_rate (int fd)
390 emacs_ospeed = sg.sg_ospeed; 347 emacs_ospeed = sg.sg_ospeed;
391#endif /* not HAVE_TERMIO */ 348#endif /* not HAVE_TERMIO */
392#endif /* not HAVE_TERMIOS */ 349#endif /* not HAVE_TERMIOS */
393#endif /* not VMS */
394#endif /* not DOS_NT */ 350#endif /* not DOS_NT */
395 } 351 }
396 352
@@ -443,12 +399,6 @@ wait_for_termination (pid)
443 while (1) 399 while (1)
444 { 400 {
445#ifdef subprocesses 401#ifdef subprocesses
446#ifdef VMS
447 int status;
448
449 status = SYS$FORCEX (&pid, 0, 0);
450 break;
451#else /* not VMS */
452#if defined (BSD_SYSTEM) || defined (HPUX) 402#if defined (BSD_SYSTEM) || defined (HPUX)
453 /* Note that kill returns -1 even if the process is just a zombie now. 403 /* Note that kill returns -1 even if the process is just a zombie now.
454 But inevitably a SIGCHLD interrupt should be generated 404 But inevitably a SIGCHLD interrupt should be generated
@@ -503,7 +453,6 @@ wait_for_termination (pid)
503#endif /* not HAVE_SYSV_SIGPAUSE */ 453#endif /* not HAVE_SYSV_SIGPAUSE */
504#endif /* not POSIX_SIGNALS */ 454#endif /* not POSIX_SIGNALS */
505#endif /* not BSD_SYSTEM, and not HPUX version >= 6 */ 455#endif /* not BSD_SYSTEM, and not HPUX version >= 6 */
506#endif /* not VMS */
507#else /* not subprocesses */ 456#else /* not subprocesses */
508#if __DJGPP__ > 1 457#if __DJGPP__ > 1
509 break; 458 break;
@@ -545,7 +494,6 @@ flush_pending_output (channel)
545#endif 494#endif
546} 495}
547 496
548#ifndef VMS
549/* Set up the terminal at the other end of a pseudo-terminal that 497/* Set up the terminal at the other end of a pseudo-terminal that
550 we will be controlling an inferior through. 498 we will be controlling an inferior through.
551 It should not echo or do line-editing, since that is done 499 It should not echo or do line-editing, since that is done
@@ -643,7 +591,6 @@ child_setup_tty (out)
643 591
644#endif /* not DOS_NT */ 592#endif /* not DOS_NT */
645} 593}
646#endif /* not VMS */
647 594
648#endif /* subprocesses */ 595#endif /* subprocesses */
649 596
@@ -662,47 +609,6 @@ static void restore_signal_handlers P_ ((struct save_signal *));
662void 609void
663sys_suspend () 610sys_suspend ()
664{ 611{
665#ifdef VMS
666 /* "Foster" parentage allows emacs to return to a subprocess that attached
667 to the current emacs as a cheaper than starting a whole new process. This
668 is set up by KEPTEDITOR.COM. */
669 unsigned long parent_id, foster_parent_id;
670 char *fpid_string;
671
672 fpid_string = getenv ("EMACS_PARENT_PID");
673 if (fpid_string != NULL)
674 {
675 sscanf (fpid_string, "%x", &foster_parent_id);
676 if (foster_parent_id != 0)
677 parent_id = foster_parent_id;
678 else
679 parent_id = getppid ();
680 }
681 else
682 parent_id = getppid ();
683
684 xfree (fpid_string); /* On VMS, this was malloc'd */
685
686 if (parent_id && parent_id != 0xffffffff)
687 {
688 SIGTYPE (*oldsig)() = (int) signal (SIGINT, SIG_IGN);
689 int status = LIB$ATTACH (&parent_id) & 1;
690 signal (SIGINT, oldsig);
691 return status;
692 }
693 else
694 {
695 struct {
696 int l;
697 char *a;
698 } d_prompt;
699 d_prompt.l = sizeof ("Emacs: "); /* Our special prompt */
700 d_prompt.a = "Emacs: "; /* Just a reminder */
701 LIB$SPAWN (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &d_prompt, 0);
702 return 1;
703 }
704 return -1;
705#else
706#if defined (SIGTSTP) && !defined (MSDOS) 612#if defined (SIGTSTP) && !defined (MSDOS)
707 613
708 { 614 {
@@ -724,7 +630,6 @@ sys_suspend ()
724 630
725#endif /* no USG_JOBCTRL */ 631#endif /* no USG_JOBCTRL */
726#endif /* no SIGTSTP */ 632#endif /* no SIGTSTP */
727#endif /* not VMS */
728} 633}
729 634
730/* Fork a subshell. */ 635/* Fork a subshell. */
@@ -732,7 +637,6 @@ sys_suspend ()
732void 637void
733sys_subshell () 638sys_subshell ()
734{ 639{
735#ifndef VMS
736#ifdef DOS_NT /* Demacs 1.1.2 91/10/20 Manabu Higashida */ 640#ifdef DOS_NT /* Demacs 1.1.2 91/10/20 Manabu Higashida */
737 int st; 641 int st;
738 char oldwd[MAXPATHLEN+1]; /* Fixed length is safe on MSDOS. */ 642 char oldwd[MAXPATHLEN+1]; /* Fixed length is safe on MSDOS. */
@@ -858,7 +762,6 @@ sys_subshell ()
858#endif 762#endif
859 restore_signal_handlers (saved_handlers); 763 restore_signal_handlers (saved_handlers);
860 synch_process_alive = 0; 764 synch_process_alive = 0;
861#endif /* !VMS */
862} 765}
863 766
864static void 767static void
@@ -1076,14 +979,6 @@ emacs_get_tty (fd, settings)
1076 return -1; 979 return -1;
1077 980
1078#else 981#else
1079#ifdef VMS
1080 /* Vehemently Monstrous System? :-) */
1081 if (! (SYS$QIOW (0, fd, IO$_SENSEMODE, settings, 0, 0,
1082 &settings->main.class, 12, 0, 0, 0, 0)
1083 & 1))
1084 return -1;
1085
1086#else
1087#ifndef DOS_NT 982#ifndef DOS_NT
1088 /* I give up - I hope you have the BSD ioctls. */ 983 /* I give up - I hope you have the BSD ioctls. */
1089 if (ioctl (fd, TIOCGETP, &settings->main) < 0) 984 if (ioctl (fd, TIOCGETP, &settings->main) < 0)
@@ -1091,7 +986,6 @@ emacs_get_tty (fd, settings)
1091#endif /* not DOS_NT */ 986#endif /* not DOS_NT */
1092#endif 987#endif
1093#endif 988#endif
1094#endif
1095 989
1096 /* Suivant - Do we have to get struct ltchars data? */ 990 /* Suivant - Do we have to get struct ltchars data? */
1097#ifdef HAVE_LTCHARS 991#ifdef HAVE_LTCHARS
@@ -1168,14 +1062,6 @@ emacs_set_tty (fd, settings, flushp)
1168 return -1; 1062 return -1;
1169 1063
1170#else 1064#else
1171#ifdef VMS
1172 /* Vehemently Monstrous System? :-) */
1173 if (! (SYS$QIOW (0, fd, IO$_SETMODE, &input_iosb, 0, 0,
1174 &settings->main.class, 12, 0, 0, 0, 0)
1175 & 1))
1176 return -1;
1177
1178#else
1179#ifndef DOS_NT 1065#ifndef DOS_NT
1180 /* I give up - I hope you have the BSD ioctls. */ 1066 /* I give up - I hope you have the BSD ioctls. */
1181 if (ioctl (fd, (flushp) ? TIOCSETP : TIOCSETN, &settings->main) < 0) 1067 if (ioctl (fd, (flushp) ? TIOCSETP : TIOCSETN, &settings->main) < 0)
@@ -1184,7 +1070,6 @@ emacs_set_tty (fd, settings, flushp)
1184 1070
1185#endif 1071#endif
1186#endif 1072#endif
1187#endif
1188 1073
1189 /* Suivant - Do we have to get struct ltchars data? */ 1074 /* Suivant - Do we have to get struct ltchars data? */
1190#ifdef HAVE_LTCHARS 1075#ifdef HAVE_LTCHARS
@@ -1253,25 +1138,6 @@ init_sys_modes (tty_out)
1253 if (!tty_out->output) 1138 if (!tty_out->output)
1254 return; /* The tty is suspended. */ 1139 return; /* The tty is suspended. */
1255 1140
1256#ifdef VMS
1257 if (!input_ef)
1258 input_ef = get_kbd_event_flag ();
1259 /* LIB$GET_EF (&input_ef); */
1260 SYS$CLREF (input_ef);
1261 waiting_for_ast = 0;
1262 if (!timer_ef)
1263 timer_ef = get_timer_event_flag ();
1264 /* LIB$GET_EF (&timer_ef); */
1265 SYS$CLREF (timer_ef);
1266 if (input_ef / 32 != timer_ef / 32)
1267 croak ("Input and timer event flags in different clusters.");
1268 timer_eflist = ((unsigned) 1 << (input_ef % 32)) |
1269 ((unsigned) 1 << (timer_ef % 32));
1270#ifndef VMS4_4
1271 sys_access_reinit ();
1272#endif
1273#endif /* VMS */
1274
1275#ifdef BSD_PGRPS 1141#ifdef BSD_PGRPS
1276#if 0 1142#if 0
1277 /* read_socket_hook is not global anymore. I think doing this 1143 /* read_socket_hook is not global anymore. I think doing this
@@ -1431,16 +1297,6 @@ init_sys_modes (tty_out)
1431 tty.main.c_iflag &= ~BRKINT; 1297 tty.main.c_iflag &= ~BRKINT;
1432#endif 1298#endif
1433#else /* if not HAVE_TERMIO */ 1299#else /* if not HAVE_TERMIO */
1434#ifdef VMS
1435 tty.main.tt_char |= TT$M_NOECHO;
1436 if (meta_key)
1437 tty.main.tt_char |= TT$M_EIGHTBIT;
1438 if (tty_out->flow_control)
1439 tty.main.tt_char |= TT$M_TTSYNC;
1440 else
1441 tty.main.tt_char &= ~TT$M_TTSYNC;
1442 tty.main.tt2_char |= TT2$M_PASTHRU | TT2$M_XON;
1443#else /* not VMS (BSD, that is) */
1444#ifndef DOS_NT 1300#ifndef DOS_NT
1445 XSETINT (Vtty_erase_char, tty.main.sg_erase); 1301 XSETINT (Vtty_erase_char, tty.main.sg_erase);
1446 tty.main.sg_flags &= ~(ECHO | CRMOD | XTABS); 1302 tty.main.sg_flags &= ~(ECHO | CRMOD | XTABS);
@@ -1448,7 +1304,6 @@ init_sys_modes (tty_out)
1448 tty.main.sg_flags |= ANYP; 1304 tty.main.sg_flags |= ANYP;
1449 tty.main.sg_flags |= interrupt_input ? RAW : CBREAK; 1305 tty.main.sg_flags |= interrupt_input ? RAW : CBREAK;
1450#endif /* not DOS_NT */ 1306#endif /* not DOS_NT */
1451#endif /* not VMS (BSD, that is) */
1452#endif /* not HAVE_TERMIO */ 1307#endif /* not HAVE_TERMIO */
1453 1308
1454 /* If going to use CBREAK mode, we must request C-g to interrupt 1309 /* If going to use CBREAK mode, we must request C-g to interrupt
@@ -1500,14 +1355,6 @@ init_sys_modes (tty_out)
1500#endif 1355#endif
1501#endif 1356#endif
1502 1357
1503#ifdef VMS
1504/* Appears to do nothing when in PASTHRU mode.
1505 SYS$QIOW (0, fileno (tty_out->input), IO$_SETMODE|IO$M_OUTBAND, 0, 0, 0,
1506 interrupt_signal, oob_chars, 0, 0, 0, 0);
1507*/
1508 queue_kbd_input (0);
1509#endif /* VMS */
1510
1511#ifdef F_SETFL 1358#ifdef F_SETFL
1512#ifdef F_GETOWN /* F_SETFL does not imply existence of F_GETOWN */ 1359#ifdef F_GETOWN /* F_SETFL does not imply existence of F_GETOWN */
1513 if (interrupt_input) 1360 if (interrupt_input)
@@ -1529,9 +1376,6 @@ init_sys_modes (tty_out)
1529#endif /* F_GETOWN */ 1376#endif /* F_GETOWN */
1530#endif /* F_SETFL */ 1377#endif /* F_SETFL */
1531 1378
1532#ifdef VMS /* VMS sometimes has this symbol but lacks setvbuf. */
1533#undef _IOFBF
1534#endif
1535#ifdef _IOFBF 1379#ifdef _IOFBF
1536 /* This symbol is defined on recent USG systems. 1380 /* This symbol is defined on recent USG systems.
1537 Someone says without this call USG won't really buffer the file 1381 Someone says without this call USG won't really buffer the file
@@ -1625,22 +1469,6 @@ get_tty_size (int fd, int *widthp, int *heightp)
1625 } 1469 }
1626 1470
1627#else 1471#else
1628#ifdef VMS
1629
1630 /* Use a fresh channel since the current one may have stale info
1631 (for example, from prior to a suspend); and to avoid a dependency
1632 in the init sequence. */
1633 int chan;
1634 struct sensemode tty;
1635
1636 SYS$ASSIGN (&input_dsc, &chan, 0, 0);
1637 SYS$QIOW (0, chan, IO$_SENSEMODE, &tty, 0, 0,
1638 &tty.class, 12, 0, 0, 0, 0);
1639 SYS$DASSGN (chan);
1640 *widthp = tty.scr_wid;
1641 *heightp = tty.scr_len;
1642
1643#else
1644#ifdef MSDOS 1472#ifdef MSDOS
1645 *widthp = ScreenCols (); 1473 *widthp = ScreenCols ();
1646 *heightp = ScreenRows (); 1474 *heightp = ScreenRows ();
@@ -1648,7 +1476,6 @@ get_tty_size (int fd, int *widthp, int *heightp)
1648 *widthp = 0; 1476 *widthp = 0;
1649 *heightp = 0; 1477 *heightp = 0;
1650#endif 1478#endif
1651#endif /* not VMS */
1652#endif /* not SunOS-style */ 1479#endif /* not SunOS-style */
1653#endif /* not BSD-style */ 1480#endif /* not BSD-style */
1654} 1481}
@@ -1822,270 +1649,7 @@ setup_pty (fd)
1822} 1649}
1823#endif /* HAVE_PTYS */ 1650#endif /* HAVE_PTYS */
1824 1651
1825#ifdef VMS 1652#if !defined(CANNOT_DUMP) || !defined(SYSTEM_MALLOC)
1826
1827/* Assigning an input channel is done at the start of Emacs execution.
1828 This is called each time Emacs is resumed, also, but does nothing
1829 because input_chain is no longer zero. */
1830
1831void
1832init_vms_input ()
1833{
1834 int status;
1835
1836 if (fileno (CURTTY ()->input)) == 0)
1837 {
1838 status = SYS$ASSIGN (&input_dsc, &fileno (CURTTY ()->input)), 0, 0);
1839 if (! (status & 1))
1840 LIB$STOP (status);
1841 }
1842}
1843
1844/* Deassigning the input channel is done before exiting. */
1845
1846void
1847stop_vms_input ()
1848{
1849 return SYS$DASSGN (fileno (CURTTY ()->input)));
1850}
1851
1852short input_buffer;
1853
1854/* Request reading one character into the keyboard buffer.
1855 This is done as soon as the buffer becomes empty. */
1856
1857void
1858queue_kbd_input ()
1859{
1860 int status;
1861 extern kbd_input_ast ();
1862
1863 waiting_for_ast = 0;
1864 stop_input = 0;
1865 status = SYS$QIO (0, fileno (CURTTY()->input), IO$_READVBLK,
1866 &input_iosb, kbd_input_ast, 1,
1867 &input_buffer, 1, 0, terminator_mask, 0, 0);
1868}
1869
1870int input_count;
1871
1872/* Ast routine that is called when keyboard input comes in
1873 in accord with the SYS$QIO above. */
1874
1875void
1876kbd_input_ast ()
1877{
1878 register int c = -1;
1879 int old_errno = errno;
1880 extern EMACS_TIME *input_available_clear_time;
1881
1882 if (waiting_for_ast)
1883 SYS$SETEF (input_ef);
1884 waiting_for_ast = 0;
1885 input_count++;
1886#ifdef ASTDEBUG
1887 if (input_count == 25)
1888 exit (1);
1889 printf ("Ast # %d,", input_count);
1890 printf (" iosb = %x, %x, %x, %x",
1891 input_iosb.offset, input_iosb.status, input_iosb.termlen,
1892 input_iosb.term);
1893#endif
1894 if (input_iosb.offset)
1895 {
1896 c = input_buffer;
1897#ifdef ASTDEBUG
1898 printf (", char = 0%o", c);
1899#endif
1900 }
1901#ifdef ASTDEBUG
1902 printf ("\n");
1903 fflush (stdout);
1904 sleep (1);
1905#endif
1906 if (! stop_input)
1907 queue_kbd_input ();
1908 if (c >= 0)
1909 {
1910 struct input_event e;
1911 EVENT_INIT (e);
1912
1913 e.kind = ASCII_KEYSTROKE_EVENT;
1914 XSETINT (e.code, c);
1915 e.frame_or_window = selected_frame;
1916 kbd_buffer_store_event (&e);
1917 }
1918 if (input_available_clear_time)
1919 EMACS_SET_SECS_USECS (*input_available_clear_time, 0, 0);
1920 errno = old_errno;
1921}
1922
1923/* Wait until there is something in kbd_buffer. */
1924
1925void
1926wait_for_kbd_input ()
1927{
1928 extern int have_process_input, process_exited;
1929
1930 /* If already something, avoid doing system calls. */
1931 if (detect_input_pending ())
1932 {
1933 return;
1934 }
1935 /* Clear a flag, and tell ast routine above to set it. */
1936 SYS$CLREF (input_ef);
1937 waiting_for_ast = 1;
1938 /* Check for timing error: ast happened while we were doing that. */
1939 if (!detect_input_pending ())
1940 {
1941 /* No timing error: wait for flag to be set. */
1942 set_waiting_for_input (0);
1943 SYS$WFLOR (input_ef, input_eflist);
1944 clear_waiting_for_input ();
1945 if (!detect_input_pending ())
1946 /* Check for subprocess input availability */
1947 {
1948 int dsp = have_process_input || process_exited;
1949
1950 SYS$CLREF (process_ef);
1951 if (have_process_input)
1952 process_command_input ();
1953 if (process_exited)
1954 process_exit ();
1955 if (dsp)
1956 {
1957 update_mode_lines++;
1958 prepare_menu_bars ();
1959 redisplay_preserve_echo_area (18);
1960 }
1961 }
1962 }
1963 waiting_for_ast = 0;
1964}
1965
1966/* Get rid of any pending QIO, when we are about to suspend
1967 or when we want to throw away pending input.
1968 We wait for a positive sign that the AST routine has run
1969 and therefore there is no I/O request queued when we return.
1970 SYS$SETAST is used to avoid a timing error. */
1971
1972void
1973end_kbd_input ()
1974{
1975#ifdef ASTDEBUG
1976 printf ("At end_kbd_input.\n");
1977 fflush (stdout);
1978 sleep (1);
1979#endif
1980 if (LIB$AST_IN_PROG ()) /* Don't wait if suspending from kbd_buffer_store_event! */
1981 {
1982 SYS$CANCEL (fileno (CURTTY()->input));
1983 return;
1984 }
1985
1986 SYS$SETAST (0);
1987 /* Clear a flag, and tell ast routine above to set it. */
1988 SYS$CLREF (input_ef);
1989 waiting_for_ast = 1;
1990 stop_input = 1;
1991 SYS$CANCEL (fileno (CURTTY()->input));
1992 SYS$SETAST (1);
1993 SYS$WAITFR (input_ef);
1994 waiting_for_ast = 0;
1995}
1996
1997/* Wait for either input available or time interval expiry. */
1998
1999void
2000input_wait_timeout (timeval)
2001 int timeval; /* Time to wait, in seconds */
2002{
2003 int time [2];
2004 static int zero = 0;
2005 static int large = -10000000;
2006
2007 LIB$EMUL (&timeval, &large, &zero, time); /* Convert to VMS format */
2008
2009 /* If already something, avoid doing system calls. */
2010 if (detect_input_pending ())
2011 {
2012 return;
2013 }
2014 /* Clear a flag, and tell ast routine above to set it. */
2015 SYS$CLREF (input_ef);
2016 waiting_for_ast = 1;
2017 /* Check for timing error: ast happened while we were doing that. */
2018 if (!detect_input_pending ())
2019 {
2020 /* No timing error: wait for flag to be set. */
2021 SYS$CANTIM (1, 0);
2022 if (SYS$SETIMR (timer_ef, time, 0, 1) & 1) /* Set timer */
2023 SYS$WFLOR (timer_ef, timer_eflist); /* Wait for timer expiry or input */
2024 }
2025 waiting_for_ast = 0;
2026}
2027
2028/* The standard `sleep' routine works some other way
2029 and it stops working if you have ever quit out of it.
2030 This one continues to work. */
2031
2032sys_sleep (timeval)
2033 int timeval;
2034{
2035 int time [2];
2036 static int zero = 0;
2037 static int large = -10000000;
2038
2039 LIB$EMUL (&timeval, &large, &zero, time); /* Convert to VMS format */
2040
2041 SYS$CANTIM (1, 0);
2042 if (SYS$SETIMR (timer_ef, time, 0, 1) & 1) /* Set timer */
2043 SYS$WAITFR (timer_ef); /* Wait for timer expiry only */
2044}
2045
2046void
2047init_sigio (fd)
2048 int fd;
2049{
2050 request_sigio ();
2051}
2052
2053reset_sigio (fd)
2054 int fd;
2055{
2056 unrequest_sigio ();
2057}
2058
2059void
2060request_sigio ()
2061{
2062 if (noninteractive)
2063 return;
2064 croak ("request sigio");
2065}
2066
2067void
2068unrequest_sigio ()
2069{
2070 if (noninteractive)
2071 return;
2072 croak ("unrequest sigio");
2073}
2074
2075#endif /* VMS */
2076
2077/* Note that VMS compiler won't accept defined (CANNOT_DUMP). */
2078#ifndef CANNOT_DUMP
2079#define NEED_STARTS
2080#endif
2081
2082#ifndef SYSTEM_MALLOC
2083#ifndef NEED_STARTS
2084#define NEED_STARTS
2085#endif
2086#endif
2087
2088#ifdef NEED_STARTS
2089/* Some systems that cannot dump also cannot implement these. */ 1653/* Some systems that cannot dump also cannot implement these. */
2090 1654
2091/* 1655/*
@@ -2167,12 +1731,10 @@ start_of_data ()
2167 1731
2168extern Lisp_Object Vsystem_name; 1732extern Lisp_Object Vsystem_name;
2169 1733
2170#ifndef VMS
2171#ifdef HAVE_SOCKETS 1734#ifdef HAVE_SOCKETS
2172#include <sys/socket.h> 1735#include <sys/socket.h>
2173#include <netdb.h> 1736#include <netdb.h>
2174#endif /* HAVE_SOCKETS */ 1737#endif /* HAVE_SOCKETS */
2175#endif /* not VMS */
2176 1738
2177#ifdef TRY_AGAIN 1739#ifdef TRY_AGAIN
2178#ifndef HAVE_H_ERRNO 1740#ifndef HAVE_H_ERRNO
@@ -2183,15 +1745,6 @@ extern int h_errno;
2183void 1745void
2184init_system_name () 1746init_system_name ()
2185{ 1747{
2186#ifdef VMS
2187 char *sp, *end;
2188 if ((sp = egetenv ("SYS$NODE")) == 0)
2189 Vsystem_name = build_string ("vax-vms");
2190 else if ((end = index (sp, ':')) == 0)
2191 Vsystem_name = build_string (sp);
2192 else
2193 Vsystem_name = make_string (sp, end - sp);
2194#else
2195#ifndef HAVE_GETHOSTNAME 1748#ifndef HAVE_GETHOSTNAME
2196 struct utsname uts; 1749 struct utsname uts;
2197 uname (&uts); 1750 uname (&uts);
@@ -2307,7 +1860,6 @@ init_system_name ()
2307#endif /* HAVE_SOCKETS */ 1860#endif /* HAVE_SOCKETS */
2308 Vsystem_name = build_string (hostname); 1861 Vsystem_name = build_string (hostname);
2309#endif /* HAVE_GETHOSTNAME */ 1862#endif /* HAVE_GETHOSTNAME */
2310#endif /* VMS */
2311 { 1863 {
2312 unsigned char *p; 1864 unsigned char *p;
2313 for (p = SDATA (Vsystem_name); *p; p++) 1865 for (p = SDATA (Vsystem_name); *p; p++)
@@ -2317,7 +1869,6 @@ init_system_name ()
2317} 1869}
2318 1870
2319#ifndef MSDOS 1871#ifndef MSDOS
2320#ifndef VMS
2321#if !defined (HAVE_SELECT) 1872#if !defined (HAVE_SELECT)
2322 1873
2323#include "sysselect.h" 1874#include "sysselect.h"
@@ -2557,7 +2108,6 @@ read_input_waiting ()
2557#endif 2108#endif
2558 2109
2559#endif /* not HAVE_SELECT */ 2110#endif /* not HAVE_SELECT */
2560#endif /* not VMS */
2561#endif /* not MSDOS */ 2111#endif /* not MSDOS */
2562 2112
2563/* POSIX signals support - DJB */ 2113/* POSIX signals support - DJB */
@@ -2888,112 +2438,6 @@ get_random ()
2888#endif /* need at least 2 */ 2438#endif /* need at least 2 */
2889 return val & ((1L << VALBITS) - 1); 2439 return val & ((1L << VALBITS) - 1);
2890} 2440}
2891
2892#ifdef VMS
2893
2894#ifdef getenv
2895/* If any place else asks for the TERM variable,
2896 allow it to be overridden with the EMACS_TERM variable
2897 before attempting to translate the logical name TERM. As a last
2898 resort, ask for VAX C's special idea of the TERM variable. */
2899#undef getenv
2900char *
2901sys_getenv (name)
2902 char *name;
2903{
2904 register char *val;
2905 static char buf[256];
2906 static struct dsc$descriptor_s equiv
2907 = {sizeof (buf), DSC$K_DTYPE_T, DSC$K_CLASS_S, buf};
2908 static struct dsc$descriptor_s d_name
2909 = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0};
2910 short eqlen;
2911
2912 if (!strcmp (name, "TERM"))
2913 {
2914 val = (char *) getenv ("EMACS_TERM");
2915 if (val)
2916 return val;
2917 }
2918
2919 d_name.dsc$w_length = strlen (name);
2920 d_name.dsc$a_pointer = name;
2921 if (LIB$SYS_TRNLOG (&d_name, &eqlen, &equiv) == 1)
2922 {
2923 char *str = (char *) xmalloc (eqlen + 1);
2924 bcopy (buf, str, eqlen);
2925 str[eqlen] = '\0';
2926 /* This is a storage leak, but a pain to fix. With luck,
2927 no one will ever notice. */
2928 return str;
2929 }
2930 return (char *) getenv (name);
2931}
2932#endif /* getenv */
2933
2934#ifdef abort
2935/* Since VMS doesn't believe in core dumps, the only way to debug this beast is
2936 to force a call on the debugger from within the image. */
2937#undef abort
2938sys_abort ()
2939{
2940 reset_all_sys_modes ();
2941 LIB$SIGNAL (SS$_DEBUG);
2942}
2943#endif /* abort */
2944#endif /* VMS */
2945
2946#ifdef VMS
2947#ifdef LINK_CRTL_SHARE
2948#ifdef SHARABLE_LIB_BUG
2949/* Variables declared noshare and initialized in sharable libraries
2950 cannot be shared. The VMS linker incorrectly forces you to use a private
2951 version which is uninitialized... If not for this "feature", we
2952 could use the C library definition of sys_nerr and sys_errlist. */
2953int sys_nerr = 35;
2954char *sys_errlist[] =
2955 {
2956 "error 0",
2957 "not owner",
2958 "no such file or directory",
2959 "no such process",
2960 "interrupted system call",
2961 "i/o error",
2962 "no such device or address",
2963 "argument list too long",
2964 "exec format error",
2965 "bad file number",
2966 "no child process",
2967 "no more processes",
2968 "not enough memory",
2969 "permission denied",
2970 "bad address",
2971 "block device required",
2972 "mount devices busy",
2973 "file exists",
2974 "cross-device link",
2975 "no such device",
2976 "not a directory",
2977 "is a directory",
2978 "invalid argument",
2979 "file table overflow",
2980 "too many open files",
2981 "not a typewriter",
2982 "text file busy",
2983 "file too big",
2984 "no space left on device",
2985 "illegal seek",
2986 "read-only file system",
2987 "too many links",
2988 "broken pipe",
2989 "math argument",
2990 "result too large",
2991 "I/O stream empty",
2992 "vax/vms specific error code nontranslatable error"
2993 };
2994#endif /* SHARABLE_LIB_BUG */
2995#endif /* LINK_CRTL_SHARE */
2996#endif /* VMS */
2997 2441
2998#ifndef HAVE_STRERROR 2442#ifndef HAVE_STRERROR
2999#ifndef WINDOWSNT 2443#ifndef WINDOWSNT
@@ -3225,7 +2669,6 @@ dup2 (oldd, newd)
3225 */ 2669 */
3226 2670
3227#ifdef subprocesses 2671#ifdef subprocesses
3228#ifndef VMS
3229#ifndef HAVE_GETTIMEOFDAY 2672#ifndef HAVE_GETTIMEOFDAY
3230#ifdef HAVE_TIMEVAL 2673#ifdef HAVE_TIMEVAL
3231 2674
@@ -3246,8 +2689,7 @@ gettimeofday (tp, tzp)
3246 2689
3247#endif 2690#endif
3248#endif 2691#endif
3249#endif 2692#endif /* subprocess && !HAVE_GETTIMEOFDAY && HAVE_TIMEVAL */
3250#endif /* subprocess && !HAVE_GETTIMEOFDAY && HAVE_TIMEVAL && !VMS */
3251 2693
3252/* 2694/*
3253 * This function will go away as soon as all the stubs fixed. (fnf) 2695 * This function will go away as soon as all the stubs fixed. (fnf)
@@ -3292,150 +2734,6 @@ closedir (DIR *dirp /* stream from opendir */)
3292#endif /* not HAVE_CLOSEDIR */ 2734#endif /* not HAVE_CLOSEDIR */
3293#endif /* SYSV_SYSTEM_DIR */ 2735#endif /* SYSV_SYSTEM_DIR */
3294 2736
3295#ifdef NONSYSTEM_DIR_LIBRARY
3296
3297DIR *
3298opendir (filename)
3299 char *filename; /* name of directory */
3300{
3301 register DIR *dirp; /* -> malloc'ed storage */
3302 register int fd; /* file descriptor for read */
3303 struct stat sbuf; /* result of fstat */
3304
3305 fd = emacs_open (filename, O_RDONLY, 0);
3306 if (fd < 0)
3307 return 0;
3308
3309 BLOCK_INPUT;
3310 if (fstat (fd, &sbuf) < 0
3311 || (sbuf.st_mode & S_IFMT) != S_IFDIR
3312 || (dirp = (DIR *) xmalloc (sizeof (DIR))) == 0)
3313 {
3314 emacs_close (fd);
3315 UNBLOCK_INPUT;
3316 return 0; /* bad luck today */
3317 }
3318 UNBLOCK_INPUT;
3319
3320 dirp->dd_fd = fd;
3321 dirp->dd_loc = dirp->dd_size = 0; /* refill needed */
3322
3323 return dirp;
3324}
3325
3326void
3327closedir (dirp)
3328 register DIR *dirp; /* stream from opendir */
3329{
3330 emacs_close (dirp->dd_fd);
3331 xfree ((char *) dirp);
3332}
3333
3334
3335#ifndef VMS
3336#define DIRSIZ 14
3337struct olddir
3338 {
3339 ino_t od_ino; /* inode */
3340 char od_name[DIRSIZ]; /* filename */
3341 };
3342#endif /* not VMS */
3343
3344struct direct dir_static; /* simulated directory contents */
3345
3346/* ARGUSED */
3347struct direct *
3348readdir (dirp)
3349 register DIR *dirp; /* stream from opendir */
3350{
3351#ifndef VMS
3352 register struct olddir *dp; /* -> directory data */
3353#else /* VMS */
3354 register struct dir$_name *dp; /* -> directory data */
3355 register struct dir$_version *dv; /* -> version data */
3356#endif /* VMS */
3357
3358 for (; ;)
3359 {
3360 if (dirp->dd_loc >= dirp->dd_size)
3361 dirp->dd_loc = dirp->dd_size = 0;
3362
3363 if (dirp->dd_size == 0 /* refill buffer */
3364 && (dirp->dd_size = emacs_read (dirp->dd_fd, dirp->dd_buf, DIRBLKSIZ)) <= 0)
3365 return 0;
3366
3367#ifndef VMS
3368 dp = (struct olddir *) &dirp->dd_buf[dirp->dd_loc];
3369 dirp->dd_loc += sizeof (struct olddir);
3370
3371 if (dp->od_ino != 0) /* not deleted entry */
3372 {
3373 dir_static.d_ino = dp->od_ino;
3374 strncpy (dir_static.d_name, dp->od_name, DIRSIZ);
3375 dir_static.d_name[DIRSIZ] = '\0';
3376 dir_static.d_namlen = strlen (dir_static.d_name);
3377 dir_static.d_reclen = sizeof (struct direct)
3378 - MAXNAMLEN + 3
3379 + dir_static.d_namlen - dir_static.d_namlen % 4;
3380 return &dir_static; /* -> simulated structure */
3381 }
3382#else /* VMS */
3383 dp = (struct dir$_name *) dirp->dd_buf;
3384 if (dirp->dd_loc == 0)
3385 dirp->dd_loc = (dp->dir$b_namecount&1) ? dp->dir$b_namecount + 1
3386 : dp->dir$b_namecount;
3387 dv = (struct dir$_version *)&dp->dir$t_name[dirp->dd_loc];
3388 dir_static.d_ino = dv->dir$w_fid_num;
3389 dir_static.d_namlen = dp->dir$b_namecount;
3390 dir_static.d_reclen = sizeof (struct direct)
3391 - MAXNAMLEN + 3
3392 + dir_static.d_namlen - dir_static.d_namlen % 4;
3393 strncpy (dir_static.d_name, dp->dir$t_name, dp->dir$b_namecount);
3394 dir_static.d_name[dir_static.d_namlen] = '\0';
3395 dirp->dd_loc = dirp->dd_size; /* only one record at a time */
3396 return &dir_static;
3397#endif /* VMS */
3398 }
3399}
3400
3401#ifdef VMS
3402/* readdirver is just like readdir except it returns all versions of a file
3403 as separate entries. */
3404
3405/* ARGUSED */
3406struct direct *
3407readdirver (dirp)
3408 register DIR *dirp; /* stream from opendir */
3409{
3410 register struct dir$_name *dp; /* -> directory data */
3411 register struct dir$_version *dv; /* -> version data */
3412
3413 if (dirp->dd_loc >= dirp->dd_size - sizeof (struct dir$_name))
3414 dirp->dd_loc = dirp->dd_size = 0;
3415
3416 if (dirp->dd_size == 0 /* refill buffer */
3417 && (dirp->dd_size = sys_read (dirp->dd_fd, dirp->dd_buf, DIRBLKSIZ)) <= 0)
3418 return 0;
3419
3420 dp = (struct dir$_name *) dirp->dd_buf;
3421 if (dirp->dd_loc == 0)
3422 dirp->dd_loc = (dp->dir$b_namecount & 1) ? dp->dir$b_namecount + 1
3423 : dp->dir$b_namecount;
3424 dv = (struct dir$_version *) &dp->dir$t_name[dirp->dd_loc];
3425 strncpy (dir_static.d_name, dp->dir$t_name, dp->dir$b_namecount);
3426 sprintf (&dir_static.d_name[dp->dir$b_namecount], ";%d", dv->dir$w_version);
3427 dir_static.d_namlen = strlen (dir_static.d_name);
3428 dir_static.d_ino = dv->dir$w_fid_num;
3429 dir_static.d_reclen = sizeof (struct direct) - MAXNAMLEN + 3
3430 + dir_static.d_namlen - dir_static.d_namlen % 4;
3431 dirp->dd_loc = ((char *) (++dv) - dp->dir$t_name);
3432 return &dir_static;
3433}
3434
3435#endif /* VMS */
3436
3437#endif /* NONSYSTEM_DIR_LIBRARY */
3438
3439 2737
3440int 2738int
3441set_file_times (filename, atime, mtime) 2739set_file_times (filename, atime, mtime)
@@ -3586,1259 +2884,6 @@ rmdir (dpath)
3586} 2884}
3587#endif /* !HAVE_RMDIR */ 2885#endif /* !HAVE_RMDIR */
3588 2886
3589
3590
3591/* Functions for VMS */
3592#ifdef VMS
3593#include <acldef.h>
3594#include <chpdef.h>
3595#include <jpidef.h>
3596
3597/* Return as a string the VMS error string pertaining to STATUS.
3598 Reuses the same static buffer each time it is called. */
3599
3600char *
3601vmserrstr (status)
3602 int status; /* VMS status code */
3603{
3604 int bufadr[2];
3605 short len;
3606 static char buf[257];
3607
3608 bufadr[0] = sizeof buf - 1;
3609 bufadr[1] = (int) buf;
3610 if (! (SYS$GETMSG (status, &len, bufadr, 0x1, 0) & 1))
3611 return "untranslatable VMS error status";
3612 buf[len] = '\0';
3613 return buf;
3614}
3615
3616#ifdef access
3617#undef access
3618
3619/* The following is necessary because 'access' emulation by VMS C (2.0) does
3620 * not work correctly. (It also doesn't work well in version 2.3.)
3621 */
3622
3623#ifdef VMS4_4
3624
3625#define DESCRIPTOR(name,string) struct dsc$descriptor_s name = \
3626 { strlen (string), DSC$K_DTYPE_T, DSC$K_CLASS_S, string }
3627
3628typedef union {
3629 struct {
3630 unsigned short s_buflen;
3631 unsigned short s_code;
3632 char *s_bufadr;
3633 unsigned short *s_retlenadr;
3634 } s;
3635 int end;
3636} item;
3637#define buflen s.s_buflen
3638#define code s.s_code
3639#define bufadr s.s_bufadr
3640#define retlenadr s.s_retlenadr
3641
3642#define R_OK 4 /* test for read permission */
3643#define W_OK 2 /* test for write permission */
3644#define X_OK 1 /* test for execute (search) permission */
3645#define F_OK 0 /* test for presence of file */
3646
3647int
3648sys_access (path, mode)
3649 char *path;
3650 int mode;
3651{
3652 static char *user = NULL;
3653 char dir_fn[512];
3654
3655 /* translate possible directory spec into .DIR file name, so brain-dead
3656 * access can treat the directory like a file. */
3657 if (directory_file_name (path, dir_fn))
3658 path = dir_fn;
3659
3660 if (mode == F_OK)
3661 return access (path, mode);
3662 if (user == NULL && (user = (char *) getenv ("USER")) == NULL)
3663 return -1;
3664 {
3665 int stat;
3666 int flags;
3667 int acces;
3668 unsigned short int dummy;
3669 item itemlst[3];
3670 static int constant = ACL$C_FILE;
3671 DESCRIPTOR (path_desc, path);
3672 DESCRIPTOR (user_desc, user);
3673
3674 flags = 0;
3675 acces = 0;
3676 if ((mode & X_OK) && ((stat = access (path, mode)) < 0 || mode == X_OK))
3677 return stat;
3678 if (mode & R_OK)
3679 acces |= CHP$M_READ;
3680 if (mode & W_OK)
3681 acces |= CHP$M_WRITE;
3682 itemlst[0].buflen = sizeof (int);
3683 itemlst[0].code = CHP$_FLAGS;
3684 itemlst[0].bufadr = (char *) &flags;
3685 itemlst[0].retlenadr = &dummy;
3686 itemlst[1].buflen = sizeof (int);
3687 itemlst[1].code = CHP$_ACCESS;
3688 itemlst[1].bufadr = (char *) &acces;
3689 itemlst[1].retlenadr = &dummy;
3690 itemlst[2].end = CHP$_END;
3691 stat = SYS$CHECK_ACCESS (&constant, &path_desc, &user_desc, itemlst);
3692 return stat == SS$_NORMAL ? 0 : -1;
3693 }
3694}
3695
3696#else /* not VMS4_4 */
3697
3698#include <prvdef.h>
3699#define ACE$M_WRITE 2
3700#define ACE$C_KEYID 1
3701
3702static unsigned short memid, grpid;
3703static unsigned int uic;
3704
3705/* Called from init_sys_modes, so it happens not very often
3706 but at least each time Emacs is loaded. */
3707void
3708sys_access_reinit ()
3709{
3710 uic = 0;
3711}
3712
3713int
3714sys_access (filename, type)
3715 char * filename;
3716 int type;
3717{
3718 struct FAB fab;
3719 struct XABPRO xab;
3720 int status, size, i, typecode, acl_controlled;
3721 unsigned int *aclptr, *aclend, aclbuf[60];
3722 union prvdef prvmask;
3723
3724 /* Get UIC and GRP values for protection checking. */
3725 if (uic == 0)
3726 {
3727 status = LIB$GETJPI (&JPI$_UIC, 0, 0, &uic, 0, 0);
3728 if (! (status & 1))
3729 return -1;
3730 memid = uic & 0xFFFF;
3731 grpid = uic >> 16;
3732 }
3733
3734 if (type != 2) /* not checking write access */
3735 return access (filename, type);
3736
3737 /* Check write protection. */
3738
3739#define CHECKPRIV(bit) (prvmask.bit)
3740#define WRITABLE(field) (! ((xab.xab$w_pro >> field) & XAB$M_NOWRITE))
3741
3742 /* Find privilege bits */
3743 status = SYS$SETPRV (0, 0, 0, prvmask);
3744 if (! (status & 1))
3745 error ("Unable to find privileges: %s", vmserrstr (status));
3746 if (CHECKPRIV (PRV$V_BYPASS))
3747 return 0; /* BYPASS enabled */
3748 fab = cc$rms_fab;
3749 fab.fab$b_fac = FAB$M_GET;
3750 fab.fab$l_fna = filename;
3751 fab.fab$b_fns = strlen (filename);
3752 fab.fab$l_xab = &xab;
3753 xab = cc$rms_xabpro;
3754 xab.xab$l_aclbuf = aclbuf;
3755 xab.xab$w_aclsiz = sizeof (aclbuf);
3756 status = SYS$OPEN (&fab, 0, 0);
3757 if (! (status & 1))
3758 return -1;
3759 SYS$CLOSE (&fab, 0, 0);
3760 /* Check system access */
3761 if (CHECKPRIV (PRV$V_SYSPRV) && WRITABLE (XAB$V_SYS))
3762 return 0;
3763 /* Check ACL entries, if any */
3764 acl_controlled = 0;
3765 if (xab.xab$w_acllen > 0)
3766 {
3767 aclptr = aclbuf;
3768 aclend = &aclbuf[xab.xab$w_acllen / 4];
3769 while (*aclptr && aclptr < aclend)
3770 {
3771 size = (*aclptr & 0xff) / 4;
3772 typecode = (*aclptr >> 8) & 0xff;
3773 if (typecode == ACE$C_KEYID)
3774 for (i = size - 1; i > 1; i--)
3775 if (aclptr[i] == uic)
3776 {
3777 acl_controlled = 1;
3778 if (aclptr[1] & ACE$M_WRITE)
3779 return 0; /* Write access through ACL */
3780 }
3781 aclptr = &aclptr[size];
3782 }
3783 if (acl_controlled) /* ACL specified, prohibits write access */
3784 return -1;
3785 }
3786 /* No ACL entries specified, check normal protection */
3787 if (WRITABLE (XAB$V_WLD)) /* World writable */
3788 return 0;
3789 if (WRITABLE (XAB$V_GRP) &&
3790 (unsigned short) (xab.xab$l_uic >> 16) == grpid)
3791 return 0; /* Group writable */
3792 if (WRITABLE (XAB$V_OWN) &&
3793 (xab.xab$l_uic & 0xFFFF) == memid)
3794 return 0; /* Owner writable */
3795
3796 return -1; /* Not writable */
3797}
3798#endif /* not VMS4_4 */
3799#endif /* access */
3800
3801static char vtbuf[NAM$C_MAXRSS+1];
3802
3803/* translate a vms file spec to a unix path */
3804char *
3805sys_translate_vms (vfile)
3806 char * vfile;
3807{
3808 char * p;
3809 char * targ;
3810
3811 if (!vfile)
3812 return 0;
3813
3814 targ = vtbuf;
3815
3816 /* leading device or logical name is a root directory */
3817 if (p = strchr (vfile, ':'))
3818 {
3819 *targ++ = '/';
3820 while (vfile < p)
3821 *targ++ = *vfile++;
3822 vfile++;
3823 *targ++ = '/';
3824 }
3825 p = vfile;
3826 if (*p == '[' || *p == '<')
3827 {
3828 while (*++vfile != *p + 2)
3829 switch (*vfile)
3830 {
3831 case '.':
3832 if (vfile[-1] == *p)
3833 *targ++ = '.';
3834 *targ++ = '/';
3835 break;
3836
3837 case '-':
3838 *targ++ = '.';
3839 *targ++ = '.';
3840 break;
3841
3842 default:
3843 *targ++ = *vfile;
3844 break;
3845 }
3846 vfile++;
3847 *targ++ = '/';
3848 }
3849 while (*vfile)
3850 *targ++ = *vfile++;
3851
3852 return vtbuf;
3853}
3854
3855static char utbuf[NAM$C_MAXRSS+1];
3856
3857/* translate a unix path to a VMS file spec */
3858char *
3859sys_translate_unix (ufile)
3860 char * ufile;
3861{
3862 int slash_seen = 0;
3863 char *p;
3864 char * targ;
3865
3866 if (!ufile)
3867 return 0;
3868
3869 targ = utbuf;
3870
3871 if (*ufile == '/')
3872 {
3873 ufile++;
3874 }
3875
3876 while (*ufile)
3877 {
3878 switch (*ufile)
3879 {
3880 case '/':
3881 if (slash_seen)
3882 if (index (&ufile[1], '/'))
3883 *targ++ = '.';
3884 else
3885 *targ++ = ']';
3886 else
3887 {
3888 *targ++ = ':';
3889 if (index (&ufile[1], '/'))
3890 *targ++ = '[';
3891 slash_seen = 1;
3892 }
3893 break;
3894
3895 case '.':
3896 if (strncmp (ufile, "./", 2) == 0)
3897 {
3898 if (!slash_seen)
3899 {
3900 *targ++ = '[';
3901 slash_seen = 1;
3902 }
3903 ufile++; /* skip the dot */
3904 if (index (&ufile[1], '/'))
3905 *targ++ = '.';
3906 else
3907 *targ++ = ']';
3908 }
3909 else if (strncmp (ufile, "../", 3) == 0)
3910 {
3911 if (!slash_seen)
3912 {
3913 *targ++ = '[';
3914 slash_seen = 1;
3915 }
3916 *targ++ = '-';
3917 ufile += 2; /* skip the dots */
3918 if (index (&ufile[1], '/'))
3919 *targ++ = '.';
3920 else
3921 *targ++ = ']';
3922 }
3923 else
3924 *targ++ = *ufile;
3925 break;
3926
3927 default:
3928 *targ++ = *ufile;
3929 break;
3930 }
3931 ufile++;
3932 }
3933 *targ = '\0';
3934
3935 return utbuf;
3936}
3937
3938char *
3939getwd (pathname)
3940 char *pathname;
3941{
3942 char *ptr, *val;
3943 extern char *getcwd ();
3944
3945#define MAXPATHLEN 1024
3946
3947 ptr = xmalloc (MAXPATHLEN);
3948 val = getcwd (ptr, MAXPATHLEN);
3949 if (val == 0)
3950 {
3951 xfree (ptr);
3952 return val;
3953 }
3954 strcpy (pathname, ptr);
3955 xfree (ptr);
3956
3957 return pathname;
3958}
3959
3960int
3961getppid ()
3962{
3963 long item_code = JPI$_OWNER;
3964 unsigned long parent_id;
3965 int status;
3966
3967 if (((status = LIB$GETJPI (&item_code, 0, 0, &parent_id)) & 1) == 0)
3968 {
3969 errno = EVMSERR;
3970 vaxc$errno = status;
3971 return -1;
3972 }
3973 return parent_id;
3974}
3975
3976#undef getuid
3977unsigned
3978sys_getuid ()
3979{
3980 return (getgid () << 16) | getuid ();
3981}
3982
3983#undef read
3984int
3985sys_read (fildes, buf, nbyte)
3986 int fildes;
3987 char *buf;
3988 unsigned int nbyte;
3989{
3990 return read (fildes, buf, (nbyte < MAXIOSIZE ? nbyte : MAXIOSIZE));
3991}
3992
3993/*
3994 * VAX/VMS VAX C RTL really loses. It insists that records
3995 * end with a newline (carriage return) character, and if they
3996 * don't it adds one (nice of it isn't it!)
3997 *
3998 * Thus we do this stupidity below.
3999 */
4000
4001#undef write
4002int
4003sys_write (fildes, buf, nbytes)
4004 int fildes;
4005 char *buf;
4006 unsigned int nbytes;
4007{
4008 register char *p;
4009 register char *e;
4010 int sum = 0;
4011 struct stat st;
4012
4013 fstat (fildes, &st);
4014 p = buf;
4015 while (nbytes > 0)
4016 {
4017 int len, retval;
4018
4019 /* Handle fixed-length files with carriage control. */
4020 if (st.st_fab_rfm == FAB$C_FIX
4021 && ((st.st_fab_rat & (FAB$M_FTN | FAB$M_CR)) != 0))
4022 {
4023 len = st.st_fab_mrs;
4024 retval = write (fildes, p, min (len, nbytes));
4025 if (retval != len)
4026 return -1;
4027 retval++; /* This skips the implied carriage control */
4028 }
4029 else
4030 {
4031 e = p + min (MAXIOSIZE, nbytes) - 1;
4032 while (*e != '\n' && e > p) e--;
4033 if (p == e) /* Ok.. so here we add a newline... sigh. */
4034 e = p + min (MAXIOSIZE, nbytes) - 1;
4035 len = e + 1 - p;
4036 retval = write (fildes, p, len);
4037 if (retval != len)
4038 return -1;
4039 }
4040 p += retval;
4041 sum += retval;
4042 nbytes -= retval;
4043 }
4044 return sum;
4045}
4046
4047/* Create file NEW copying its attributes from file OLD. If
4048 OLD is 0 or does not exist, create based on the value of
4049 vms_stmlf_recfm. */
4050
4051/* Protection value the file should ultimately have.
4052 Set by create_copy_attrs, and use by rename_sansversions. */
4053static unsigned short int fab_final_pro;
4054
4055int
4056creat_copy_attrs (old, new)
4057 char *old, *new;
4058{
4059 struct FAB fab = cc$rms_fab;
4060 struct XABPRO xabpro;
4061 char aclbuf[256]; /* Choice of size is arbitrary. See below. */
4062 extern int vms_stmlf_recfm;
4063
4064 if (old)
4065 {
4066 fab.fab$b_fac = FAB$M_GET;
4067 fab.fab$l_fna = old;
4068 fab.fab$b_fns = strlen (old);
4069 fab.fab$l_xab = (char *) &xabpro;
4070 xabpro = cc$rms_xabpro;
4071 xabpro.xab$l_aclbuf = aclbuf;
4072 xabpro.xab$w_aclsiz = sizeof aclbuf;
4073 /* Call $OPEN to fill in the fab & xabpro fields. */
4074 if (SYS$OPEN (&fab, 0, 0) & 1)
4075 {
4076 SYS$CLOSE (&fab, 0, 0);
4077 fab.fab$l_alq = 0; /* zero the allocation quantity */
4078 if (xabpro.xab$w_acllen > 0)
4079 {
4080 if (xabpro.xab$w_acllen > sizeof aclbuf)
4081 /* If the acl buffer was too short, redo open with longer one.
4082 Wouldn't need to do this if there were some system imposed
4083 limit on the size of an ACL, but I can't find any such. */
4084 {
4085 xabpro.xab$l_aclbuf = (char *) alloca (xabpro.xab$w_acllen);
4086 xabpro.xab$w_aclsiz = xabpro.xab$w_acllen;
4087 if (SYS$OPEN (&fab, 0, 0) & 1)
4088 SYS$CLOSE (&fab, 0, 0);
4089 else
4090 old = 0;
4091 }
4092 }
4093 else
4094 xabpro.xab$l_aclbuf = 0;
4095 }
4096 else
4097 old = 0;
4098 }
4099 fab.fab$l_fna = new;
4100 fab.fab$b_fns = strlen (new);
4101 if (!old)
4102 {
4103 fab.fab$l_xab = 0;
4104 fab.fab$b_rfm = vms_stmlf_recfm ? FAB$C_STMLF : FAB$C_VAR;
4105 fab.fab$b_rat = FAB$M_CR;
4106 }
4107
4108 /* Set the file protections such that we will be able to manipulate
4109 this file. Once we are done writing and renaming it, we will set
4110 the protections back. */
4111 if (old)
4112 fab_final_pro = xabpro.xab$w_pro;
4113 else
4114 SYS$SETDFPROT (0, &fab_final_pro);
4115 xabpro.xab$w_pro &= 0xff0f; /* set O:rewd for now. This is set back later. */
4116
4117 /* Create the new file with either default attrs or attrs copied
4118 from old file. */
4119 if (!(SYS$CREATE (&fab, 0, 0) & 1))
4120 return -1;
4121 SYS$CLOSE (&fab, 0, 0);
4122 /* As this is a "replacement" for creat, return a file descriptor
4123 opened for writing. */
4124 return open (new, O_WRONLY);
4125}
4126
4127#ifdef creat
4128#undef creat
4129#include <varargs.h>
4130#ifdef __GNUC__
4131#ifndef va_count
4132#define va_count(X) ((X) = *(((int *) &(va_alist)) - 1))
4133#endif
4134#endif
4135
4136int
4137sys_creat (va_alist)
4138 va_dcl
4139{
4140 va_list list_incrementer;
4141 char *name;
4142 int mode;
4143 int rfd; /* related file descriptor */
4144 int fd; /* Our new file descriptor */
4145 int count;
4146 struct stat st_buf;
4147 char rfm[12];
4148 char rat[15];
4149 char mrs[13];
4150 char fsz[13];
4151 extern int vms_stmlf_recfm;
4152
4153 va_count (count);
4154 va_start (list_incrementer);
4155 name = va_arg (list_incrementer, char *);
4156 mode = va_arg (list_incrementer, int);
4157 if (count > 2)
4158 rfd = va_arg (list_incrementer, int);
4159 va_end (list_incrementer);
4160 if (count > 2)
4161 {
4162 /* Use information from the related file descriptor to set record
4163 format of the newly created file. */
4164 fstat (rfd, &st_buf);
4165 switch (st_buf.st_fab_rfm)
4166 {
4167 case FAB$C_FIX:
4168 strcpy (rfm, "rfm = fix");
4169 sprintf (mrs, "mrs = %d", st_buf.st_fab_mrs);
4170 strcpy (rat, "rat = ");
4171 if (st_buf.st_fab_rat & FAB$M_CR)
4172 strcat (rat, "cr");
4173 else if (st_buf.st_fab_rat & FAB$M_FTN)
4174 strcat (rat, "ftn");
4175 else if (st_buf.st_fab_rat & FAB$M_PRN)
4176 strcat (rat, "prn");
4177 if (st_buf.st_fab_rat & FAB$M_BLK)
4178 if (st_buf.st_fab_rat & (FAB$M_CR|FAB$M_FTN|FAB$M_PRN))
4179 strcat (rat, ", blk");
4180 else
4181 strcat (rat, "blk");
4182 return creat (name, 0, rfm, rat, mrs);
4183
4184 case FAB$C_VFC:
4185 strcpy (rfm, "rfm = vfc");
4186 sprintf (fsz, "fsz = %d", st_buf.st_fab_fsz);
4187 strcpy (rat, "rat = ");
4188 if (st_buf.st_fab_rat & FAB$M_CR)
4189 strcat (rat, "cr");
4190 else if (st_buf.st_fab_rat & FAB$M_FTN)
4191 strcat (rat, "ftn");
4192 else if (st_buf.st_fab_rat & FAB$M_PRN)
4193 strcat (rat, "prn");
4194 if (st_buf.st_fab_rat & FAB$M_BLK)
4195 if (st_buf.st_fab_rat & (FAB$M_CR|FAB$M_FTN|FAB$M_PRN))
4196 strcat (rat, ", blk");
4197 else
4198 strcat (rat, "blk");
4199 return creat (name, 0, rfm, rat, fsz);
4200
4201 case FAB$C_STM:
4202 strcpy (rfm, "rfm = stm");
4203 break;
4204
4205 case FAB$C_STMCR:
4206 strcpy (rfm, "rfm = stmcr");
4207 break;
4208
4209 case FAB$C_STMLF:
4210 strcpy (rfm, "rfm = stmlf");
4211 break;
4212
4213 case FAB$C_UDF:
4214 strcpy (rfm, "rfm = udf");
4215 break;
4216
4217 case FAB$C_VAR:
4218 strcpy (rfm, "rfm = var");
4219 break;
4220 }
4221 strcpy (rat, "rat = ");
4222 if (st_buf.st_fab_rat & FAB$M_CR)
4223 strcat (rat, "cr");
4224 else if (st_buf.st_fab_rat & FAB$M_FTN)
4225 strcat (rat, "ftn");
4226 else if (st_buf.st_fab_rat & FAB$M_PRN)
4227 strcat (rat, "prn");
4228 if (st_buf.st_fab_rat & FAB$M_BLK)
4229 if (st_buf.st_fab_rat & (FAB$M_CR|FAB$M_FTN|FAB$M_PRN))
4230 strcat (rat, ", blk");
4231 else
4232 strcat (rat, "blk");
4233 }
4234 else
4235 {
4236 strcpy (rfm, vms_stmlf_recfm ? "rfm = stmlf" : "rfm=var");
4237 strcpy (rat, "rat=cr");
4238 }
4239 /* Until the VAX C RTL fixes the many bugs with modes, always use
4240 mode 0 to get the user's default protection. */
4241 fd = creat (name, 0, rfm, rat);
4242 if (fd < 0 && errno == EEXIST)
4243 {
4244 if (unlink (name) < 0)
4245 report_file_error ("delete", build_string (name));
4246 fd = creat (name, 0, rfm, rat);
4247 }
4248 return fd;
4249}
4250#endif /* creat */
4251
4252/* fwrite to stdout is S L O W. Speed it up by using fputc...*/
4253int
4254sys_fwrite (ptr, size, num, fp)
4255 register char * ptr;
4256 FILE * fp;
4257{
4258 register int tot = num * size;
4259
4260 while (tot--)
4261 fputc (*ptr++, fp);
4262 return num;
4263}
4264
4265/*
4266 * The VMS C library routine creat actually creates a new version of an
4267 * existing file rather than truncating the old version. There are times
4268 * when this is not the desired behavior, for instance, when writing an
4269 * auto save file (you only want one version), or when you don't have
4270 * write permission in the directory containing the file (but the file
4271 * itself is writable). Hence this routine, which is equivalent to
4272 * "close (creat (fn, 0));" on Unix if fn already exists.
4273 */
4274int
4275vms_truncate (fn)
4276 char *fn;
4277{
4278 struct FAB xfab = cc$rms_fab;
4279 struct RAB xrab = cc$rms_rab;
4280 int status;
4281
4282 xfab.fab$l_fop = FAB$M_TEF; /* free allocated but unused blocks on close */
4283 xfab.fab$b_fac = FAB$M_TRN | FAB$M_GET; /* allow truncate and get access */
4284 xfab.fab$b_shr = FAB$M_NIL; /* allow no sharing - file must be locked */
4285 xfab.fab$l_fna = fn;
4286 xfab.fab$b_fns = strlen (fn);
4287 xfab.fab$l_dna = ";0"; /* default to latest version of the file */
4288 xfab.fab$b_dns = 2;
4289 xrab.rab$l_fab = &xfab;
4290
4291 /* This gibberish opens the file, positions to the first record, and
4292 deletes all records from there until the end of file. */
4293 if ((SYS$OPEN (&xfab) & 01) == 01)
4294 {
4295 if ((SYS$CONNECT (&xrab) & 01) == 01 &&
4296 (SYS$FIND (&xrab) & 01) == 01 &&
4297 (SYS$TRUNCATE (&xrab) & 01) == 01)
4298 status = 0;
4299 else
4300 status = -1;
4301 }
4302 else
4303 status = -1;
4304 SYS$CLOSE (&xfab);
4305 return status;
4306}
4307
4308/* Define this symbol to actually read SYSUAF.DAT. This requires either
4309 SYSPRV or a readable SYSUAF.DAT. */
4310
4311#ifdef READ_SYSUAF
4312/*
4313 * getuaf.c
4314 *
4315 * Routine to read the VMS User Authorization File and return
4316 * a specific user's record.
4317 */
4318
4319static struct UAF retuaf;
4320
4321struct UAF *
4322get_uaf_name (uname)
4323 char * uname;
4324{
4325 register status;
4326 struct FAB uaf_fab;
4327 struct RAB uaf_rab;
4328
4329 uaf_fab = cc$rms_fab;
4330 uaf_rab = cc$rms_rab;
4331 /* initialize fab fields */
4332 uaf_fab.fab$l_fna = "SYS$SYSTEM:SYSUAF.DAT";
4333 uaf_fab.fab$b_fns = 21;
4334 uaf_fab.fab$b_fac = FAB$M_GET;
4335 uaf_fab.fab$b_org = FAB$C_IDX;
4336 uaf_fab.fab$b_shr = FAB$M_GET|FAB$M_PUT|FAB$M_UPD|FAB$M_DEL;
4337 /* initialize rab fields */
4338 uaf_rab.rab$l_fab = &uaf_fab;
4339 /* open the User Authorization File */
4340 status = SYS$OPEN (&uaf_fab);
4341 if (!(status&1))
4342 {
4343 errno = EVMSERR;
4344 vaxc$errno = status;
4345 return 0;
4346 }
4347 status = SYS$CONNECT (&uaf_rab);
4348 if (!(status&1))
4349 {
4350 errno = EVMSERR;
4351 vaxc$errno = status;
4352 return 0;
4353 }
4354 /* read the requested record - index is in uname */
4355 uaf_rab.rab$l_kbf = uname;
4356 uaf_rab.rab$b_ksz = strlen (uname);
4357 uaf_rab.rab$b_rac = RAB$C_KEY;
4358 uaf_rab.rab$l_ubf = (char *)&retuaf;
4359 uaf_rab.rab$w_usz = sizeof retuaf;
4360 status = SYS$GET (&uaf_rab);
4361 if (!(status&1))
4362 {
4363 errno = EVMSERR;
4364 vaxc$errno = status;
4365 return 0;
4366 }
4367 /* close the User Authorization File */
4368 status = SYS$DISCONNECT (&uaf_rab);
4369 if (!(status&1))
4370 {
4371 errno = EVMSERR;
4372 vaxc$errno = status;
4373 return 0;
4374 }
4375 status = SYS$CLOSE (&uaf_fab);
4376 if (!(status&1))
4377 {
4378 errno = EVMSERR;
4379 vaxc$errno = status;
4380 return 0;
4381 }
4382 return &retuaf;
4383}
4384
4385struct UAF *
4386get_uaf_uic (uic)
4387 unsigned long uic;
4388{
4389 register status;
4390 struct FAB uaf_fab;
4391 struct RAB uaf_rab;
4392
4393 uaf_fab = cc$rms_fab;
4394 uaf_rab = cc$rms_rab;
4395 /* initialize fab fields */
4396 uaf_fab.fab$l_fna = "SYS$SYSTEM:SYSUAF.DAT";
4397 uaf_fab.fab$b_fns = 21;
4398 uaf_fab.fab$b_fac = FAB$M_GET;
4399 uaf_fab.fab$b_org = FAB$C_IDX;
4400 uaf_fab.fab$b_shr = FAB$M_GET|FAB$M_PUT|FAB$M_UPD|FAB$M_DEL;
4401 /* initialize rab fields */
4402 uaf_rab.rab$l_fab = &uaf_fab;
4403 /* open the User Authorization File */
4404 status = SYS$OPEN (&uaf_fab);
4405 if (!(status&1))
4406 {
4407 errno = EVMSERR;
4408 vaxc$errno = status;
4409 return 0;
4410 }
4411 status = SYS$CONNECT (&uaf_rab);
4412 if (!(status&1))
4413 {
4414 errno = EVMSERR;
4415 vaxc$errno = status;
4416 return 0;
4417 }
4418 /* read the requested record - index is in uic */
4419 uaf_rab.rab$b_krf = 1; /* 1st alternate key */
4420 uaf_rab.rab$l_kbf = (char *) &uic;
4421 uaf_rab.rab$b_ksz = sizeof uic;
4422 uaf_rab.rab$b_rac = RAB$C_KEY;
4423 uaf_rab.rab$l_ubf = (char *)&retuaf;
4424 uaf_rab.rab$w_usz = sizeof retuaf;
4425 status = SYS$GET (&uaf_rab);
4426 if (!(status&1))
4427 {
4428 errno = EVMSERR;
4429 vaxc$errno = status;
4430 return 0;
4431 }
4432 /* close the User Authorization File */
4433 status = SYS$DISCONNECT (&uaf_rab);
4434 if (!(status&1))
4435 {
4436 errno = EVMSERR;
4437 vaxc$errno = status;
4438 return 0;
4439 }
4440 status = SYS$CLOSE (&uaf_fab);
4441 if (!(status&1))
4442 {
4443 errno = EVMSERR;
4444 vaxc$errno = status;
4445 return 0;
4446 }
4447 return &retuaf;
4448}
4449
4450static struct passwd retpw;
4451
4452struct passwd *
4453cnv_uaf_pw (up)
4454 struct UAF * up;
4455{
4456 char * ptr;
4457
4458 /* copy these out first because if the username is 32 chars, the next
4459 section will overwrite the first byte of the UIC */
4460 retpw.pw_uid = up->uaf$w_mem;
4461 retpw.pw_gid = up->uaf$w_grp;
4462
4463 /* I suppose this is not the best style, to possibly overwrite one
4464 byte beyond the end of the field, but what the heck... */
4465 ptr = &up->uaf$t_username[UAF$S_USERNAME];
4466 while (ptr[-1] == ' ')
4467 ptr--;
4468 *ptr = '\0';
4469 strcpy (retpw.pw_name, up->uaf$t_username);
4470
4471 /* the rest of these are counted ascii strings */
4472 strncpy (retpw.pw_gecos, &up->uaf$t_owner[1], up->uaf$t_owner[0]);
4473 retpw.pw_gecos[up->uaf$t_owner[0]] = '\0';
4474 strncpy (retpw.pw_dir, &up->uaf$t_defdev[1], up->uaf$t_defdev[0]);
4475 retpw.pw_dir[up->uaf$t_defdev[0]] = '\0';
4476 strncat (retpw.pw_dir, &up->uaf$t_defdir[1], up->uaf$t_defdir[0]);
4477 retpw.pw_dir[up->uaf$t_defdev[0] + up->uaf$t_defdir[0]] = '\0';
4478 strncpy (retpw.pw_shell, &up->uaf$t_defcli[1], up->uaf$t_defcli[0]);
4479 retpw.pw_shell[up->uaf$t_defcli[0]] = '\0';
4480
4481 return &retpw;
4482}
4483#else /* not READ_SYSUAF */
4484static struct passwd retpw;
4485#endif /* not READ_SYSUAF */
4486
4487struct passwd *
4488getpwnam (name)
4489 char * name;
4490{
4491#ifdef READ_SYSUAF
4492 struct UAF *up;
4493#else
4494 char * user;
4495 char * dir;
4496 unsigned char * full;
4497#endif /* READ_SYSUAF */
4498 char *ptr = name;
4499
4500 while (*ptr)
4501 {
4502 if ('a' <= *ptr && *ptr <= 'z')
4503 *ptr -= 040;
4504 ptr++;
4505 }
4506#ifdef READ_SYSUAF
4507 if (!(up = get_uaf_name (name)))
4508 return 0;
4509 return cnv_uaf_pw (up);
4510#else
4511 if (strcmp (name, getenv ("USER")) == 0)
4512 {
4513 retpw.pw_uid = getuid ();
4514 retpw.pw_gid = getgid ();
4515 strcpy (retpw.pw_name, name);
4516 if (full = egetenv ("FULLNAME"))
4517 strcpy (retpw.pw_gecos, full);
4518 else
4519 *retpw.pw_gecos = '\0';
4520 strcpy (retpw.pw_dir, egetenv ("HOME"));
4521 *retpw.pw_shell = '\0';
4522 return &retpw;
4523 }
4524 else
4525 return 0;
4526#endif /* not READ_SYSUAF */
4527}
4528
4529struct passwd *
4530getpwuid (uid)
4531 unsigned long uid;
4532{
4533#ifdef READ_SYSUAF
4534 struct UAF * up;
4535
4536 if (!(up = get_uaf_uic (uid)))
4537 return 0;
4538 return cnv_uaf_pw (up);
4539#else
4540 if (uid == sys_getuid ())
4541 return getpwnam (egetenv ("USER"));
4542 else
4543 return 0;
4544#endif /* not READ_SYSUAF */
4545}
4546
4547/* return total address space available to the current process. This is
4548 the sum of the current p0 size, p1 size and free page table entries
4549 available. */
4550int
4551vlimit ()
4552{
4553 int item_code;
4554 unsigned long free_pages;
4555 unsigned long frep0va;
4556 unsigned long frep1va;
4557 register status;
4558
4559 item_code = JPI$_FREPTECNT;
4560 if (((status = LIB$GETJPI (&item_code, 0, 0, &free_pages)) & 1) == 0)
4561 {
4562 errno = EVMSERR;
4563 vaxc$errno = status;
4564 return -1;
4565 }
4566 free_pages *= 512;
4567
4568 item_code = JPI$_FREP0VA;
4569 if (((status = LIB$GETJPI (&item_code, 0, 0, &frep0va)) & 1) == 0)
4570 {
4571 errno = EVMSERR;
4572 vaxc$errno = status;
4573 return -1;
4574 }
4575 item_code = JPI$_FREP1VA;
4576 if (((status = LIB$GETJPI (&item_code, 0, 0, &frep1va)) & 1) == 0)
4577 {
4578 errno = EVMSERR;
4579 vaxc$errno = status;
4580 return -1;
4581 }
4582
4583 return free_pages + frep0va + (0x7fffffff - frep1va);
4584}
4585
4586int
4587define_logical_name (varname, string)
4588 char *varname;
4589 char *string;
4590{
4591 struct dsc$descriptor_s strdsc =
4592 {strlen (string), DSC$K_DTYPE_T, DSC$K_CLASS_S, string};
4593 struct dsc$descriptor_s envdsc =
4594 {strlen (varname), DSC$K_DTYPE_T, DSC$K_CLASS_S, varname};
4595 struct dsc$descriptor_s lnmdsc =
4596 {7, DSC$K_DTYPE_T, DSC$K_CLASS_S, "LNM$JOB"};
4597
4598 return LIB$SET_LOGICAL (&envdsc, &strdsc, &lnmdsc, 0, 0);
4599}
4600
4601int
4602delete_logical_name (varname)
4603 char *varname;
4604{
4605 struct dsc$descriptor_s envdsc =
4606 {strlen (varname), DSC$K_DTYPE_T, DSC$K_CLASS_S, varname};
4607 struct dsc$descriptor_s lnmdsc =
4608 {7, DSC$K_DTYPE_T, DSC$K_CLASS_S, "LNM$JOB"};
4609
4610 return LIB$DELETE_LOGICAL (&envdsc, &lnmdsc);
4611}
4612
4613int
4614ulimit ()
4615{
4616 return 0;
4617}
4618
4619int
4620setpgrp ()
4621{
4622 return 0;
4623}
4624
4625int
4626execvp ()
4627{
4628 error ("execvp system call not implemented");
4629 return -1;
4630}
4631
4632int
4633rename (from, to)
4634 char *from, *to;
4635{
4636 int status;
4637 struct FAB from_fab = cc$rms_fab, to_fab = cc$rms_fab;
4638 struct NAM from_nam = cc$rms_nam, to_nam = cc$rms_nam;
4639 char from_esn[NAM$C_MAXRSS];
4640 char to_esn[NAM$C_MAXRSS];
4641
4642 from_fab.fab$l_fna = from;
4643 from_fab.fab$b_fns = strlen (from);
4644 from_fab.fab$l_nam = &from_nam;
4645 from_fab.fab$l_fop = FAB$M_NAM;
4646
4647 from_nam.nam$l_esa = from_esn;
4648 from_nam.nam$b_ess = sizeof from_esn;
4649
4650 to_fab.fab$l_fna = to;
4651 to_fab.fab$b_fns = strlen (to);
4652 to_fab.fab$l_nam = &to_nam;
4653 to_fab.fab$l_fop = FAB$M_NAM;
4654
4655 to_nam.nam$l_esa = to_esn;
4656 to_nam.nam$b_ess = sizeof to_esn;
4657
4658 status = SYS$RENAME (&from_fab, 0, 0, &to_fab);
4659
4660 if (status & 1)
4661 return 0;
4662 else
4663 {
4664 if (status == RMS$_DEV)
4665 errno = EXDEV;
4666 else
4667 errno = EVMSERR;
4668 vaxc$errno = status;
4669 return -1;
4670 }
4671}
4672
4673/* This function renames a file like `rename', but it strips
4674 the version number from the "to" filename, such that the "to" file is
4675 will always be a new version. It also sets the file protection once it is
4676 finished. The protection that we will use is stored in fab_final_pro,
4677 and was set when we did a creat_copy_attrs to create the file that we
4678 are renaming.
4679
4680 We could use the chmod function, but Eunichs uses 3 bits per user category
4681 to describe the protection, and VMS uses 4 (write and delete are separate
4682 bits). To maintain portability, the VMS implementation of `chmod' wires
4683 the W and D bits together. */
4684
4685
4686static struct fibdef fib; /* We need this initialized to zero */
4687char vms_file_written[NAM$C_MAXRSS];
4688
4689int
4690rename_sans_version (from,to)
4691 char *from, *to;
4692{
4693 short int chan;
4694 int stat;
4695 short int iosb[4];
4696 int status;
4697 struct FAB to_fab = cc$rms_fab;
4698 struct NAM to_nam = cc$rms_nam;
4699 struct dsc$descriptor fib_d ={sizeof (fib),0,0,(char*) &fib};
4700 struct dsc$descriptor fib_attr[2]
4701 = {{sizeof (fab_final_pro),ATR$C_FPRO,0,(char*) &fab_final_pro},{0,0,0,0}};
4702 char to_esn[NAM$C_MAXRSS];
4703
4704 $DESCRIPTOR (disk,to_esn);
4705
4706 to_fab.fab$l_fna = to;
4707 to_fab.fab$b_fns = strlen (to);
4708 to_fab.fab$l_nam = &to_nam;
4709 to_fab.fab$l_fop = FAB$M_NAM;
4710
4711 to_nam.nam$l_esa = to_esn;
4712 to_nam.nam$b_ess = sizeof to_esn;
4713
4714 status = SYS$PARSE (&to_fab, 0, 0); /* figure out the full file name */
4715
4716 if (to_nam.nam$l_fnb && NAM$M_EXP_VER)
4717 *(to_nam.nam$l_ver) = '\0';
4718
4719 stat = rename (from, to_esn);
4720 if (stat < 0)
4721 return stat;
4722
4723 strcpy (vms_file_written, to_esn);
4724
4725 to_fab.fab$l_fna = vms_file_written; /* this points to the versionless name */
4726 to_fab.fab$b_fns = strlen (vms_file_written);
4727
4728 /* Now set the file protection to the correct value */
4729 SYS$OPEN (&to_fab, 0, 0); /* This fills in the nam$w_fid fields */
4730
4731 /* Copy these fields into the fib */
4732 fib.fib$r_fid_overlay.fib$w_fid[0] = to_nam.nam$w_fid[0];
4733 fib.fib$r_fid_overlay.fib$w_fid[1] = to_nam.nam$w_fid[1];
4734 fib.fib$r_fid_overlay.fib$w_fid[2] = to_nam.nam$w_fid[2];
4735
4736 SYS$CLOSE (&to_fab, 0, 0);
4737
4738 stat = SYS$ASSIGN (&disk, &chan, 0, 0); /* open a channel to the disk */
4739 if (!stat)
4740 LIB$SIGNAL (stat);
4741 stat = SYS$QIOW (0, chan, IO$_MODIFY, iosb, 0, 0, &fib_d,
4742 0, 0, 0, &fib_attr, 0);
4743 if (!stat)
4744 LIB$SIGNAL (stat);
4745 stat = SYS$DASSGN (chan);
4746 if (!stat)
4747 LIB$SIGNAL (stat);
4748 strcpy (vms_file_written, to_esn); /* We will write this to the terminal*/
4749 return 0;
4750}
4751
4752int
4753link (file, new)
4754 char * file, * new;
4755{
4756 register status;
4757 struct FAB fab;
4758 struct NAM nam;
4759 unsigned short fid[3];
4760 char esa[NAM$C_MAXRSS];
4761
4762 fab = cc$rms_fab;
4763 fab.fab$l_fop = FAB$M_OFP;
4764 fab.fab$l_fna = file;
4765 fab.fab$b_fns = strlen (file);
4766 fab.fab$l_nam = &nam;
4767
4768 nam = cc$rms_nam;
4769 nam.nam$l_esa = esa;
4770 nam.nam$b_ess = NAM$C_MAXRSS;
4771
4772 status = SYS$PARSE (&fab);
4773 if ((status & 1) == 0)
4774 {
4775 errno = EVMSERR;
4776 vaxc$errno = status;
4777 return -1;
4778 }
4779 status = SYS$SEARCH (&fab);
4780 if ((status & 1) == 0)
4781 {
4782 errno = EVMSERR;
4783 vaxc$errno = status;
4784 return -1;
4785 }
4786
4787 fid[0] = nam.nam$w_fid[0];
4788 fid[1] = nam.nam$w_fid[1];
4789 fid[2] = nam.nam$w_fid[2];
4790
4791 fab.fab$l_fna = new;
4792 fab.fab$b_fns = strlen (new);
4793
4794 status = SYS$PARSE (&fab);
4795 if ((status & 1) == 0)
4796 {
4797 errno = EVMSERR;
4798 vaxc$errno = status;
4799 return -1;
4800 }
4801
4802 nam.nam$w_fid[0] = fid[0];
4803 nam.nam$w_fid[1] = fid[1];
4804 nam.nam$w_fid[2] = fid[2];
4805
4806 nam.nam$l_esa = nam.nam$l_name;
4807 nam.nam$b_esl = nam.nam$b_name + nam.nam$b_type + nam.nam$b_ver;
4808
4809 status = SYS$ENTER (&fab);
4810 if ((status & 1) == 0)
4811 {
4812 errno = EVMSERR;
4813 vaxc$errno = status;
4814 return -1;
4815 }
4816
4817 return 0;
4818}
4819
4820void
4821croak (badfunc)
4822 char *badfunc;
4823{
4824 printf ("%s not yet implemented\r\n", badfunc);
4825 reset_all_sys_modes ();
4826 exit (1);
4827}
4828
4829long
4830random ()
4831{
4832 /* Arrange to return a range centered on zero. */
4833 return rand () - (1 << 30);
4834}
4835
4836void
4837srandom (seed)
4838{
4839 srand (seed);
4840}
4841#endif /* VMS */
4842 2887
4843#ifndef BSTRING 2888#ifndef BSTRING
4844 2889
@@ -4849,21 +2894,8 @@ bzero (b, length)
4849 register char *b; 2894 register char *b;
4850 register int length; 2895 register int length;
4851{ 2896{
4852#ifdef VMS
4853 short zero = 0;
4854 long max_str = 65535;
4855
4856 while (length > max_str) {
4857 (void) LIB$MOVC5 (&zero, &zero, &zero, &max_str, b);
4858 length -= max_str;
4859 b += max_str;
4860 }
4861 max_str = length;
4862 (void) LIB$MOVC5 (&zero, &zero, &zero, &max_str, b);
4863#else
4864 while (length-- > 0) 2897 while (length-- > 0)
4865 *b++ = 0; 2898 *b++ = 0;
4866#endif /* not VMS */
4867} 2899}
4868 2900
4869#endif /* no bzero */ 2901#endif /* no bzero */
@@ -4879,21 +2911,8 @@ bcopy (b1, b2, length)
4879 register char *b2; 2911 register char *b2;
4880 register int length; 2912 register int length;
4881{ 2913{
4882#ifdef VMS
4883 long max_str = 65535;
4884
4885 while (length > max_str) {
4886 (void) LIB$MOVC3 (&max_str, b1, b2);
4887 length -= max_str;
4888 b1 += max_str;
4889 b2 += max_str;
4890 }
4891 max_str = length;
4892 (void) LIB$MOVC3 (&length, b1, b2);
4893#else
4894 while (length-- > 0) 2914 while (length-- > 0)
4895 *b2++ = *b1++; 2915 *b2++ = *b1++;
4896#endif /* not VMS */
4897} 2916}
4898#endif /* (!defined (BSTRING) && !defined (bcopy)) || defined (NEED_BCOPY) */ 2917#endif /* (!defined (BSTRING) && !defined (bcopy)) || defined (NEED_BCOPY) */
4899 2918
@@ -4905,18 +2924,11 @@ bcmp (b1, b2, length) /* This could be a macro! */
4905 register char *b2; 2924 register char *b2;
4906 register int length; 2925 register int length;
4907{ 2926{
4908#ifdef VMS
4909 struct dsc$descriptor_s src1 = {length, DSC$K_DTYPE_T, DSC$K_CLASS_S, b1};
4910 struct dsc$descriptor_s src2 = {length, DSC$K_DTYPE_T, DSC$K_CLASS_S, b2};
4911
4912 return STR$COMPARE (&src1, &src2);
4913#else
4914 while (length-- > 0) 2927 while (length-- > 0)
4915 if (*b1++ != *b2++) 2928 if (*b1++ != *b2++)
4916 return 1; 2929 return 1;
4917 2930
4918 return 0; 2931 return 0;
4919#endif /* not VMS */
4920} 2932}
4921#endif /* no bcmp */ 2933#endif /* no bcmp */
4922#endif /* not BSTRING */ 2934#endif /* not BSTRING */
@@ -4930,12 +2942,8 @@ strsignal (code)
4930 2942
4931 if (0 <= code && code < NSIG) 2943 if (0 <= code && code < NSIG)
4932 { 2944 {
4933#ifdef VMS
4934 signame = sys_errlist[code];
4935#else
4936 /* Cast to suppress warning if the table has const char *. */ 2945 /* Cast to suppress warning if the table has const char *. */
4937 signame = (char *) sys_siglist[code]; 2946 signame = (char *) sys_siglist[code];
4938#endif
4939 } 2947 }
4940 2948
4941 return signame; 2949 return signame;
diff --git a/src/syssignal.h b/src/syssignal.h
index 1aaae5562ff..21df63959f5 100644
--- a/src/syssignal.h
+++ b/src/syssignal.h
@@ -192,13 +192,11 @@ extern SIGMASKTYPE sigprocmask_set;
192 192
193/* Define SIGCHLD as an alias for SIGCLD. There are many conditionals 193/* Define SIGCHLD as an alias for SIGCLD. There are many conditionals
194 testing SIGCHLD. */ 194 testing SIGCHLD. */
195#ifndef VMS
196#ifdef SIGCLD 195#ifdef SIGCLD
197#ifndef SIGCHLD 196#ifndef SIGCHLD
198#define SIGCHLD SIGCLD 197#define SIGCHLD SIGCLD
199#endif /* SIGCHLD */ 198#endif /* SIGCHLD */
200#endif /* ! defined (SIGCLD) */ 199#endif /* ! defined (SIGCLD) */
201#endif /* VMS */
202 200
203#ifndef HAVE_STRSIGNAL 201#ifndef HAVE_STRSIGNAL
204/* strsignal is in sysdep.c */ 202/* strsignal is in sysdep.c */
diff --git a/src/systime.h b/src/systime.h
index e9161114afd..2a04beff757 100644
--- a/src/systime.h
+++ b/src/systime.h
@@ -42,12 +42,6 @@ extern char *tzname[]; /* RS6000 and others want it this way. */
42extern time_t timezone; 42extern time_t timezone;
43#endif 43#endif
44 44
45#ifdef VMS
46#ifdef VAXC
47#include "vmstime.h"
48#endif
49#endif
50
51/* On some configurations (hpux8.0, X11R4), sys/time.h and X11/Xos.h 45/* On some configurations (hpux8.0, X11R4), sys/time.h and X11/Xos.h
52 disagree about the name of the guard symbol. */ 46 disagree about the name of the guard symbol. */
53#ifdef HPUX 47#ifdef HPUX
diff --git a/src/systty.h b/src/systty.h
index 98f6ad493e6..b846a026232 100644
--- a/src/systty.h
+++ b/src/systty.h
@@ -40,46 +40,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
40#define INCLUDED_FCNTL 40#define INCLUDED_FCNTL
41#include <fcntl.h> 41#include <fcntl.h>
42#else /* neither HAVE_TERMIO nor HAVE_TERMIOS */ 42#else /* neither HAVE_TERMIO nor HAVE_TERMIOS */
43#ifndef VMS
44#ifndef DOS_NT 43#ifndef DOS_NT
45#include <sgtty.h> 44#include <sgtty.h>
46#endif /* not DOS_NT */ 45#endif /* not DOS_NT */
47#else /* VMS */
48#include <descrip.h>
49static struct iosb
50{
51 short status;
52 short offset;
53 short termlen;
54 short term;
55} input_iosb;
56
57extern int waiting_for_ast;
58extern int stop_input;
59extern int input_ef;
60extern int timer_ef;
61extern int process_ef;
62extern int input_eflist;
63extern int timer_eflist;
64
65static $DESCRIPTOR (input_dsc, "TT");
66static int terminator_mask[2] = { 0, 0 };
67
68static struct sensemode {
69 short status;
70 unsigned char xmit_baud;
71 unsigned char rcv_baud;
72 unsigned char crfill;
73 unsigned char lffill;
74 unsigned char parity;
75 unsigned char unused;
76 char class;
77 char type;
78 short scr_wid;
79 unsigned long tt_char : 24, scr_len : 8;
80 unsigned long tt2_char;
81} sensemode_iosb;
82#endif /* VMS */
83#endif /* not HAVE_TERMIOS */ 46#endif /* not HAVE_TERMIOS */
84#endif /* not HAVE_TERMIO */ 47#endif /* not HAVE_TERMIO */
85 48
@@ -250,9 +213,6 @@ struct emacs_tty {
250#ifdef HAVE_TERMIO 213#ifdef HAVE_TERMIO
251 struct termio main; 214 struct termio main;
252#else 215#else
253#ifdef VMS
254 struct sensemode main;
255#else
256#ifdef DOS_NT 216#ifdef DOS_NT
257 int main; 217 int main;
258#else /* not DOS_NT */ 218#else /* not DOS_NT */
@@ -260,7 +220,6 @@ struct emacs_tty {
260#endif /* not DOS_NT */ 220#endif /* not DOS_NT */
261#endif 221#endif
262#endif 222#endif
263#endif
264 223
265/* If we have TERMIOS, we don't need to do this - they're taken care of 224/* If we have TERMIOS, we don't need to do this - they're taken care of
266 by the tc*attr calls. */ 225 by the tc*attr calls. */
@@ -306,11 +265,6 @@ extern int emacs_set_tty P_ ((int, struct emacs_tty *, int));
306#define EMACS_TTY_TABS_OK(p) (((p)->main.c_oflag & TABDLY) != TAB3) 265#define EMACS_TTY_TABS_OK(p) (((p)->main.c_oflag & TABDLY) != TAB3)
307 266
308#else /* neither HAVE_TERMIO nor HAVE_TERMIOS */ 267#else /* neither HAVE_TERMIO nor HAVE_TERMIOS */
309#ifdef VMS
310
311#define EMACS_TTY_TABS_OK(p) (((p)->main.tt_char & TT$M_MECHTAB) != 0)
312
313#else
314 268
315#ifdef DOS_NT 269#ifdef DOS_NT
316#define EMACS_TTY_TABS_OK(p) 0 270#define EMACS_TTY_TABS_OK(p) 0
@@ -318,7 +272,6 @@ extern int emacs_set_tty P_ ((int, struct emacs_tty *, int));
318#define EMACS_TTY_TABS_OK(p) (((p)->main.sg_flags & XTABS) != XTABS) 272#define EMACS_TTY_TABS_OK(p) (((p)->main.sg_flags & XTABS) != XTABS)
319#endif /* not DOS_NT */ 273#endif /* not DOS_NT */
320 274
321#endif /* not def VMS */
322#endif /* not def HAVE_TERMIO */ 275#endif /* not def HAVE_TERMIO */
323#endif /* not def HAVE_TERMIOS */ 276#endif /* not def HAVE_TERMIOS */
324 277
diff --git a/src/syswait.h b/src/syswait.h
index d5ba3b968a5..f0d42095401 100644
--- a/src/syswait.h
+++ b/src/syswait.h
@@ -24,8 +24,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
24#ifndef EMACS_SYSWAIT_H 24#ifndef EMACS_SYSWAIT_H
25#define EMACS_SYSWAIT_H 25#define EMACS_SYSWAIT_H
26 26
27#ifndef VMS
28
29#include <sys/types.h> 27#include <sys/types.h>
30 28
31#ifdef HAVE_SYS_WAIT_H /* We have sys/wait.h with POSIXoid definitions. */ 29#ifdef HAVE_SYS_WAIT_H /* We have sys/wait.h with POSIXoid definitions. */
@@ -57,21 +55,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
57#undef WRETCODE 55#undef WRETCODE
58#define WRETCODE(status) WEXITSTATUS (status) 56#define WRETCODE(status) WEXITSTATUS (status)
59 57
60#else /* VMS */
61
62#define WIFSTOPPED(w) 0
63#define WIFSIGNALED(w) 0
64#define WIFEXITED(w) ((w) != -1)
65#define WRETCODE(w) (w)
66#define WSTOPSIG(w) (w)
67#define WCOREDUMP(w) 0
68#define WTERMSIG(w) (w)
69#include <ssdef.h>
70#include <iodef.h>
71#include <clidef.h>
72#include "vmsproc.h"
73
74#endif /* VMS */
75 58
76#endif /* EMACS_SYSWAIT_H */ 59#endif /* EMACS_SYSWAIT_H */
77 60
diff --git a/src/temacs.opt b/src/temacs.opt
deleted file mode 100644
index a8aa50211b7..00000000000
--- a/src/temacs.opt
+++ /dev/null
@@ -1,60 +0,0 @@
1cluster=emacs,,,-
2DISPNEW.OBJ,-
3SCROLL.OBJ,-
4XDISP.OBJ,-
5WINDOW.OBJ,-
6TERM.OBJ,-
7CM.OBJ,-
8EMACS.OBJ,-
9KEYBOARD.OBJ,-
10MACROS.OBJ,-
11KEYMAP.OBJ,-
12SYSDEP.OBJ,-
13BUFFER.OBJ,-
14FILELOCK.OBJ,-
15INSDEL.OBJ,-
16MARKER.OBJ,-
17MINIBUF.OBJ,-
18FILEIO.OBJ,-
19DIRED.OBJ,-
20FILEMODE.OBJ,-
21CMDS.OBJ,-
22CASEFIDDLE.OBJ,-
23INDENT.OBJ,-
24SEARCH.OBJ,-
25REGEX.OBJ,-
26UNDO.OBJ,-
27ALLOC.OBJ,-
28DATA.OBJ,-
29DOC.OBJ,-
30EDITFNS.OBJ,-
31CALLINT.OBJ,-
32EVAL.OBJ,-
33FNS.OBJ,-
34PRINT.OBJ,-
35LREAD.OBJ,-
36ABBREV.OBJ,-
37SYNTAX.OBJ,-
38MOCKLISP.OBJ,-
39BYTECODE.OBJ,-
40PROCESS.OBJ,-
41CALLPROC.OBJ,-
42VMSFNS.OBJ,-
43VMSPROC.OBJ,-
44DOPRNT.OBJ,-
45vmsmap.obj,-
46termcap.obj,-
47tparam.obj,-
48lastfile.obj,-
49alloca.obj,-
50malloc.obj
51collect=non_saved_data,-
52stdin,-
53stdout,-
54stderr,-
55errno,-
56vaxc$errno,-
57sys_errlist,-
58sys_nerr,-
59environ
60sys$library:vaxcrtl/library
diff --git a/src/term.c b/src/term.c
index 0132443833d..c956766eb36 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3489,12 +3489,6 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
3489 Down (tty) = tgetstr ("do", address); 3489 Down (tty) = tgetstr ("do", address);
3490 if (!Down (tty)) 3490 if (!Down (tty))
3491 Down (tty) = tgetstr ("nl", address); /* Obsolete name for "do" */ 3491 Down (tty) = tgetstr ("nl", address); /* Obsolete name for "do" */
3492#ifdef VMS
3493 /* VMS puts a carriage return before each linefeed,
3494 so it is not safe to use linefeeds. */
3495 if (Down (tty) && Down (tty)[0] == '\n' && Down (tty)[1] == '\0')
3496 Down (tty) = 0;
3497#endif /* VMS */
3498 if (tgetflag ("bs")) 3492 if (tgetflag ("bs"))
3499 Left (tty) = "\b"; /* can't possibly be longer! */ 3493 Left (tty) = "\b"; /* can't possibly be longer! */
3500 else /* (Actually, "bs" is obsolete...) */ 3494 else /* (Actually, "bs" is obsolete...) */
@@ -3610,15 +3604,6 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
3610 3604
3611 TabWidth (tty) = tgetnum ("tw"); 3605 TabWidth (tty) = tgetnum ("tw");
3612 3606
3613#ifdef VMS
3614 /* These capabilities commonly use ^J.
3615 I don't know why, but sending them on VMS does not work;
3616 it causes following spaces to be lost, sometimes.
3617 For now, the simplest fix is to avoid using these capabilities ever. */
3618 if (Down (tty) && Down (tty)[0] == '\n')
3619 Down (tty) = 0;
3620#endif /* VMS */
3621
3622 if (!tty->TS_bell) 3607 if (!tty->TS_bell)
3623 tty->TS_bell = "\07"; 3608 tty->TS_bell = "\07";
3624 3609
@@ -3734,13 +3719,6 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
3734 { 3719 {
3735 maybe_fatal (must_succeed, NULL, terminal, 3720 maybe_fatal (must_succeed, NULL, terminal,
3736 "Terminal type \"%s\" is not powerful enough to run Emacs", 3721 "Terminal type \"%s\" is not powerful enough to run Emacs",
3737#ifdef VMS
3738 "Terminal type \"%s\" is not powerful enough to run Emacs.\n\
3739It lacks the ability to position the cursor.\n\
3740If that is not the actual type of terminal you have, use either the\n\
3741DCL command `SET TERMINAL/DEVICE= ...' for DEC-compatible terminals,\n\
3742or `define EMACS_TERM \"terminal type\"' for non-DEC terminals.",
3743#else /* not VMS */
3744# ifdef TERMINFO 3722# ifdef TERMINFO
3745 "Terminal type \"%s\" is not powerful enough to run Emacs.\n\ 3723 "Terminal type \"%s\" is not powerful enough to run Emacs.\n\
3746It lacks the ability to position the cursor.\n\ 3724It lacks the ability to position the cursor.\n\
@@ -3756,7 +3734,6 @@ use the Bourne shell command `TERM=... export TERM' (C-shell:\n\
3756`setenv TERM ...') to specify the correct type. It may be necessary\n\ 3734`setenv TERM ...') to specify the correct type. It may be necessary\n\
3757to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.", 3735to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
3758# endif /* TERMINFO */ 3736# endif /* TERMINFO */
3759#endif /*VMS */
3760 terminal_type); 3737 terminal_type);
3761 } 3738 }
3762 3739
diff --git a/src/termcap.c b/src/termcap.c
index 291857697d8..2ad31d7b96a 100644
--- a/src/termcap.c
+++ b/src/termcap.c
@@ -349,13 +349,8 @@ char PC;
349 349
350static int speeds[] = 350static int speeds[] =
351 { 351 {
352#ifdef VMS
353 0, 50, 75, 110, 134, 150, -3, -6, -12, -18,
354 -20, -24, -36, -48, -72, -96, -192
355#else /* not VMS */
356 0, 50, 75, 110, 135, 150, -2, -3, -6, -12, 352 0, 50, 75, 110, 135, 150, -2, -3, -6, -12,
357 -18, -24, -48, -96, -192, -288, -384, -576, -1152 353 -18, -24, -48, -96, -192, -288, -384, -576, -1152
358#endif /* not VMS */
359 }; 354 };
360 355
361#endif /* not emacs */ 356#endif /* not emacs */
@@ -441,34 +436,6 @@ static char *gobble_line ();
441static int compare_contin (); 436static int compare_contin ();
442static int name_match (); 437static int name_match ();
443 438
444#ifdef VMS
445
446#include <rmsdef.h>
447#include <fab.h>
448#include <nam.h>
449#include <starlet.h>
450
451static int
452valid_filename_p (fn)
453 char *fn;
454{
455 struct FAB fab = cc$rms_fab;
456 struct NAM nam = cc$rms_nam;
457 char esa[NAM$C_MAXRSS];
458
459 fab.fab$l_fna = fn;
460 fab.fab$b_fns = strlen(fn);
461 fab.fab$l_nam = &nam;
462 fab.fab$l_fop = FAB$M_NAM;
463
464 nam.nam$l_esa = esa;
465 nam.nam$b_ess = sizeof esa;
466
467 return SYS$PARSE(&fab, 0, 0) == RMS$_NORMAL;
468}
469
470#else /* !VMS */
471
472#ifdef MSDOS /* MW, May 1993 */ 439#ifdef MSDOS /* MW, May 1993 */
473static int 440static int
474valid_filename_p (fn) 441valid_filename_p (fn)
@@ -480,8 +447,6 @@ valid_filename_p (fn)
480#define valid_filename_p(fn) (*(fn) == '/') 447#define valid_filename_p(fn) (*(fn) == '/')
481#endif 448#endif
482 449
483#endif /* !VMS */
484
485/* Find the termcap entry data for terminal type NAME 450/* Find the termcap entry data for terminal type NAME
486 and store it in the block that BP points to. 451 and store it in the block that BP points to.
487 Record its address for future use. 452 Record its address for future use.
diff --git a/src/uaf.h b/src/uaf.h
deleted file mode 100644
index 2870eeafd91..00000000000
--- a/src/uaf.h
+++ /dev/null
@@ -1,298 +0,0 @@
1/* GNU Emacs VMS UAF definition file.
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007, 2008 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 3 of the License, or
10(at your option) any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19
20/*
21 * User Authorization File record formats
22 */
23#ifndef UAF$K_LENGTH
24
25struct UAF {
26#define UAF$C_USER_ID 1
27#define UAF$C_VERSION1 1
28#define UAF$C_KEYED_PART 52
29#define UAF$C_AD_II 0
30#define UAF$C_PURDY 1
31#define UAF$C_PURDY_V 2
32#define UAF$K_FIXED 644
33#define UAF$C_FIXED 644
34#define UAF$K_LENGTH 1412
35#define UAF$C_LENGTH 1412
36#define UAF$S_UAFDEF 1412
37#define UAF$B_RTYPE 0
38 char uaf$b_rtype;
39#define UAF$B_VERSION 1
40 char uaf$b_version;
41#define UAF$W_USRDATOFF 2
42 short uaf$w_usrdatoff;
43#define UAF$S_USERNAME 32
44#define UAF$T_USERNAME 4
45#define UAF$T_USERNAME_TAG 35
46 char uaf$t_username[UAF$S_USERNAME];
47#define UAF$L_UIC 36
48#define UAF$W_MEM 36
49#define UAF$W_GRP 38
50 union {
51 long uaf_l_uic;
52#define uaf$l_uic uaf_u_uic.uaf_l_uic
53 struct {
54 short uaf_w_mem;
55 short uaf_w_grp;
56#define uaf$w_mem uaf_u_uic.uaf_u_mem_grp.uaf_w_mem
57#define uaf$w_grp uaf_u_uic.uaf_u_mem_grp.uaf_w_grp
58 } uaf_u_mem_grp;
59 } uaf_u_uic;
60#define UAF$L_SUB_ID 40
61 long uaf$l_sub_id;
62#define UAF$S_PARENT_ID 8
63#define UAF$Q_PARENT_ID 44
64 char uaf$q_parent_id[UAF$S_PARENT_ID];
65#define UAF$S_ACCOUNT 32
66#define UAF$T_ACCOUNT 52
67 char uaf$t_account[UAF$S_ACCOUNT];
68#define UAF$S_OWNER 32
69#define UAF$T_OWNER 84
70 char uaf$t_owner[UAF$S_OWNER];
71#define UAF$S_DEFDEV 32
72#define UAF$T_DEFDEV 116
73 char uaf$t_defdev[UAF$S_DEFDEV];
74#define UAF$S_DEFDIR 64
75#define UAF$T_DEFDIR 148
76 char uaf$t_defdir[UAF$S_DEFDIR];
77#define UAF$S_LGICMD 64
78#define UAF$T_LGICMD 212
79 char uaf$t_lgicmd[UAF$S_LGICMD];
80#define UAF$S_DEFCLI 32
81#define UAF$T_DEFCLI 276
82 char uaf$t_defcli[UAF$S_DEFCLI];
83#define UAF$S_CLITABLES 32
84#define UAF$T_CLITABLES 308
85 char uaf$t_clitables[UAF$S_CLITABLES];
86#define UAF$S_PWD 8
87#define UAF$Q_PWD 340
88#define UAF$L_PWD 340
89 char uaf$q_pwd[UAF$S_PWD];
90#define uaf$l_pwd uaf$q_pwd[0]
91#define UAF$S_PWD2 8
92#define UAF$Q_PWD2 348
93 char uaf$q_pwd2[UAF$S_PWD2];
94#define UAF$W_LOGFAILS 356
95 short uaf$w_logfails;
96#define UAF$W_SALT 358
97 short uaf$w_salt;
98#define UAF$B_ENCRYPT 360
99 char uaf$b_encrypt;
100#define UAF$B_ENCRYPT2 361
101 char uaf$b_encrypt2;
102#define UAF$B_PWD_LENGTH 362
103 char uaf$b_pwd_length;
104#define UAF$S_EXPIRATION 8
105#define UAF$Q_EXPIRATION 364
106 char uaf$q_expiration[UAF$S_EXPIRATION];
107#define UAF$S_PWD_LIFETIME 8
108#define UAF$Q_PWD_LIFETIME 372
109 char uaf$q_pwd_lifetime[UAF$S_PWD_LIFETIME];
110#define UAF$S_PWD_DATE 8
111#define UAF$Q_PWD_DATE 380
112 char uaf$q_pwd_date[UAF$S_PWD_DATE];
113#define UAF$S_PWD2_DATE 8
114#define UAF$Q_PWD2_DATE 388
115 char uaf$q_pwd2_date[UAF$S_PWD2_DATE];
116#define UAF$S_LASTLOGIN_I 8
117#define UAF$Q_LASTLOGIN_I 396
118 char uaf$q_lastlogin_i[UAF$S_LASTLOGIN_I];
119#define UAF$S_LASTLOGIN_N 8
120#define UAF$Q_LASTLOGIN_N 404
121 char uaf$q_lastlogin_n[UAF$S_LASTLOGIN_N];
122#define UAF$S_PRIV 8
123#define UAF$Q_PRIV 412
124 char uaf$q_priv[UAF$S_PRIV];
125#define UAF$S_DEF_PRIV 8
126#define UAF$Q_DEF_PRIV 420
127 char uaf$q_def_priv[UAF$S_DEF_PRIV];
128#define UAF$S_MIN_CLASS 20
129#define UAF$R_MIN_CLASS 428
130 char uaf$r_min_class[UAF$S_MIN_CLASS];
131#define UAF$S_MAX_CLASS 20
132#define UAF$R_MAX_CLASS 448
133 char uaf$r_max_class[UAF$S_MAX_CLASS];
134#define UAF$L_FLAGS 468
135#define UAF$V_DISCTLY 0
136#define UAF$V_DEFCLI 1
137#define UAF$V_LOCKPWD 2
138#define UAF$V_CAPTIVE 3
139#define UAF$V_DISACNT 4
140#define UAF$V_DISWELCOM 5
141#define UAF$V_DISMAIL 6
142#define UAF$V_NOMAIL 7
143#define UAF$V_GENPWD 8
144#define UAF$V_PWD_EXPIRED 9
145#define UAF$V_PWD2_EXPIRED 10
146#define UAF$V_AUDIT 11
147#define UAF$V_DISREPORT 12
148#define UAF$V_DISRECONNECT 13
149 union {
150 unsigned long uaf_l_flags;
151#define uaf$l_flags uaf_u_flags.uaf_l_flags
152 struct {
153 unsigned long
154 uaf_v_disctly : 1,
155#define uaf$v_disctly uaf_u_flags.uaf_v_flags.uaf_v_disctly
156 uaf_v_defcli : 1,
157#define uaf$v_defcli uaf_u_flags.uaf_v_flags.uaf_v_discli
158 uaf_v_lockpwd : 1,
159#define uaf$v_lockpwd uaf_u_flags.uaf_v_flags.uaf_v_lockpwd
160 uaf_v_captive : 1,
161#define uaf$v_captive uaf_u_flags.uaf_v_flags.uaf_v_captive
162 uaf_v_disacnt : 1,
163#define uaf$v_disacnt uaf_u_flags.uaf_v_flags.uaf_v_disacnt
164 uaf_v_diswelcom : 1,
165#define uaf$v_diswelcom uaf_u_flags.uaf_v_flags.uaf_v_diswelcom
166 uaf_v_dismail : 1,
167#define uaf$v_dismail uaf_u_flags.uaf_v_flags.uaf_v_dismail
168 uaf_v_nomail : 1,
169#define uaf$v_nomail uaf_u_flags.uaf_v_flags.uaf_v_nomail
170 uaf_v_genpwd : 1,
171#define uaf$v_genpwd uaf_u_flags.uaf_v_flags.uaf_v_genpwd
172 uaf_v_pwd_expired : 1,
173#define uaf$v_pwd_expired uaf_u_flags.uaf_v_flags.uaf_v_pwd_expired
174 uaf_v_pwd2_expired : 1,
175#define uaf$v_pwd2_expired uaf_u_flags.uaf_v_flags.uaf_v_pwd2_expired
176 uaf_v_audit : 1,
177#define uaf$v_audit uaf_u_flags.uaf_v_flags.uaf_v_audit
178 uaf_v_disreport : 1,
179#define uaf$v_disreport uaf_u_flags.uaf_v_flags.uaf_v_disreport
180 uaf_v_disreconnect : 1;
181#define uaf$v_disreconnect uaf_u_flags.uaf_v_flags.uaf_v_disreconnect
182 } uaf_v_flags;
183 } uaf_u_flags;
184#define UAF$S_NETWORK_ACCESS_P 3
185#define UAF$B_NETWORK_ACCESS_P 472
186 char uaf$b_network_access_p[UAF$S_NETWORK_ACCESS_P];
187#define UAF$S_NETWORK_ACCESS_S 3
188#define UAF$B_NETWORK_ACCESS_S 475
189 char uaf$b_network_access_s[UAF$S_NETWORK_ACCESS_S];
190#define UAF$S_BATCH_ACCESS_P 3
191#define UAF$B_BATCH_ACCESS_P 478
192 char uaf$b_batch_access_p[UAF$S_BATCH_ACCESS_P];
193#define UAF$S_BATCH_ACCESS_S 3
194#define UAF$B_BATCH_ACCESS_S 481
195 char uaf$b_batch_access_s[UAF$S_BATCH_ACCESS_S];
196#define UAF$S_LOCAL_ACCESS_P 3
197#define UAF$B_LOCAL_ACCESS_P 484
198 char uaf$b_local_access_p[UAF$S_LOCAL_ACCESS_P];
199#define UAF$S_LOCAL_ACCESS_S 3
200#define UAF$B_LOCAL_ACCESS_S 487
201 char uaf$b_local_access_s[UAF$S_LOCAL_ACCESS_S];
202#define UAF$S_DIALUP_ACCESS_P 3
203#define UAF$B_DIALUP_ACCESS_P 490
204 char uaf$b_dialup_access_p[UAF$S_DIALUP_ACCESS_P];
205#define UAF$S_DIALUP_ACCESS_S 3
206#define UAF$B_DIALUP_ACCESS_S 493
207 char uaf$b_dialup_access_s[UAF$S_DIALUP_ACCESS_S];
208#define UAF$S_REMOTE_ACCESS_P 3
209#define UAF$B_REMOTE_ACCESS_P 496
210 char uaf$b_remote_access_p[UAF$S_REMOTE_ACCESS_P];
211#define UAF$S_REMOTE_ACCESS_S 3
212#define UAF$B_REMOTE_ACCESS_S 499
213 char uaf$b_remote_access_s[UAF$S_REMOTE_ACCESS_S];
214#define UAF$B_PRIMEDAYS 514
215#define UAF$V_MONDAY 0
216#define UAF$V_TUESDAY 1
217#define UAF$V_WEDNESDAY 2
218#define UAF$V_THURSDAY 3
219#define UAF$V_FRIDAY 4
220#define UAF$V_SATURDAY 5
221#define UAF$V_SUNDAY 6
222 union {
223 unsigned char uaf_b_primedays;
224#define uaf$b_primedays uaf_u_primedays.uaf_b_primedays
225 unsigned char
226 uaf_v_monday : 1,
227#define uaf$v_monday uaf_u_primedays.uaf_v_monday
228 uaf_v_tuesday : 1,
229#define uaf$v_tuesday uaf_u_primedays.uaf_v_tuesday
230 uaf_v_wednesday : 1,
231#define uaf$v_wednesday uaf_u_primedays.uaf_v_wednesday
232 uaf_v_thursday : 1,
233#define uaf$v_thursday uaf_u_primedays.uaf_v_thursday
234 uaf_v_friday : 1,
235#define uaf$v_friday uaf_u_primedays.uaf_v_friday
236 uaf_v_saturday : 1,
237#define uaf$v_saturday uaf_u_primedays.uaf_v_saturday
238 uav_v_sunday : 1;
239#define uaf$v_sunday uaf_u_primedays.uaf_v_sunday
240 } uaf_u_primedays;
241#define UAF$B_PRI 516
242 char uaf$b_pri;
243#define UAF$B_QUEPRI 517
244 char uaf$b_quepri;
245#define UAF$W_MAXJOBS 518
246 short uaf$w_maxjobs;
247#define UAF$W_MAXACCTJOBS 520
248 short uaf$w_maxacctjobs;
249#define UAF$W_MAXDETACH 522
250 short uaf$w_maxdetach;
251#define UAF$W_PRCCNT 524
252 short uaf$w_prccnt;
253#define UAF$W_BIOLM 526
254 short uaf$w_biolm;
255#define UAF$W_DIOLM 528
256 short uaf$w_diolm;
257#define UAF$W_TQCNT 530
258 short uaf$w_twcnt;
259#define UAF$W_ASTLM 532
260 short uaf$w_astlm;
261#define UAF$W_ENQLM 534
262 short uaf$w_enqlm;
263#define UAF$W_FILLM 536
264 short uaf$w_fillm;
265#define UAF$W_SHRFILLM 538
266 short uaf$w_shrfillm;
267#define UAF$L_WSQUOTA 540
268 long uaf$l_wsquota;
269#define UAF$L_DFWSCNT 544
270 long uaf$l_dfwscnt;
271#define UAF$L_WSEXTENT 548
272 long uaf$l_wsextent;
273#define UAF$L_PGFLQUOTA 552
274 long uaf$l_pgflquota;
275#define UAF$L_CPUTIM 556
276 long uaf$l_cputim;
277#define UAF$L_BYTLM 560
278 long uaf$l_bytlm;
279#define UAF$L_PBYTLM 564
280 long uaf$l_pbytlm;
281#define UAF$L_JTQUOTA 568
282 long uaf$l_jtquota;
283#define UAF$W_PROXY_LIM 572
284 short uaf$w_proxy_lim;
285#define UAF$W_PROXIES 574
286 short uaf$w_proxies;
287#define UAF$W_ACCOUNT_LIM 576
288 short uaf$w_account_lim;
289#define UAF$W_ACCOUNTS 578
290 short uaf$w_accounts;
291 char uaf$b_fixed[UAF$C_FIXED - UAF$W_ACCOUNTS + 2];
292 char uaf$b_usrdata[UAF$C_LENGTH - UAF$C_FIXED];
293};
294
295#endif /* not UAF$K_LENGTH */
296
297/* arch-tag: f95d73be-b0bf-46b7-adf7-89ce8846b062
298 (do not change this comment) */
diff --git a/src/vlimit.h b/src/vlimit.h
deleted file mode 100644
index 5885bee8d2d..00000000000
--- a/src/vlimit.h
+++ /dev/null
@@ -1,5 +0,0 @@
1/* Dummy for Emacs so that we can run on VMS... */
2#define LIM_DATA 0
3
4/* arch-tag: 0c3436cb-5edc-447a-87af-acec402a65b9
5 (do not change this comment) */
diff --git a/src/xfns.c b/src/xfns.c
index 1af0e76caa1..e079ff60250 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -56,15 +56,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
56#include <sys/types.h> 56#include <sys/types.h>
57#include <sys/stat.h> 57#include <sys/stat.h>
58 58
59#ifndef VMS
60#if 1 /* Used to be #ifdef EMACS_BITMAP_FILES, but this should always work. */ 59#if 1 /* Used to be #ifdef EMACS_BITMAP_FILES, but this should always work. */
61#include "bitmaps/gray.xbm" 60#include "bitmaps/gray.xbm"
62#else 61#else
63#include <X11/bitmaps/gray> 62#include <X11/bitmaps/gray>
64#endif 63#endif
65#else
66#include "[.bitmaps]gray.xbm"
67#endif
68 64
69#ifdef USE_GTK 65#ifdef USE_GTK
70#include "gtkutil.h" 66#include "gtkutil.h"
diff --git a/vms/README b/vms/README
deleted file mode 100644
index 11e53c0bb7e..00000000000
--- a/vms/README
+++ /dev/null
@@ -1,12 +0,0 @@
1GNU Emacs 19.x and above do not compile out of the box on OpenVMS.
2Richard Levitte <levitte@lp.se> is distributing and maintaining a
3version of Emacs (currently based on version 19.28, but soon moving to
419.34 and then 20.1) that compiles and works on OpenVMS 5.5 and above
5on both VAX and Alpha architectures. For more information see
6
7 http://vms.gnu.org/software/released1/emacs.html#get_emacs_1928_kit
8
9
10[Update 2003-11-24: I am working on integrating VMS-specific bits
11 back into the repository. There are some work-in-progress files
12 in this directory as a result. Do not be alarmed! --ttn]
diff --git a/vms/make-mms-derivative.el b/vms/make-mms-derivative.el
deleted file mode 100644
index 5ef859f512d..00000000000
--- a/vms/make-mms-derivative.el
+++ /dev/null
@@ -1,139 +0,0 @@
1;;; make-mms-derivative.el --- framework to do horrible things for VMS support
2
3;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
4;; Free Software Foundation, Inc.
5
6;; Author: Thien-Thi Nguyen <ttn@gnu.org>
7;; Keywords: maint build vms mms makefile levitte autoconf war-is-a-lose
8
9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software: you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation, either version 3 of the License, or
14;; (at your option) any later version.
15
16;; GNU Emacs is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23
24;;; Commentary:
25
26;; Under VMS the standard make-like program is called MMS, which looks
27;; for an input file in the default directory named DESCRIP.MMS and runs
28;; the DCL command rules therein. As of 2005, the build process
29;; requires a hand translation of the Makefile.in and Emacs-specific
30;; methodology to DCL and TPU commands, so to alleviate this pain, we
31;; provide `make-mms-derivative', which given a source FILENAME, inserts
32;; the file contents in a new buffer and loads FILENAME-2mms. The lisp
33;; code in the -2mms file can (do whatever -- it's emacs -- and), as
34;; long as it arranges to write out the modified buffer after loading by
35;; specifying, on a line of its own, the directive:
36;;
37;; :output RELATIVE-OUTPUT
38;;
39;; where RELATIVE-OUTPUT is a filename (a string) relative to FILENAME's
40;; directory, typically something simple like "descrip.mms_in_in". Only
41;; the first :output directive is recognized.
42;;
43;; The only other special directive at this time has the form:
44;;
45;; :gigo NAME
46;; ;;blah blah blah
47;; ;;(more text here)
48;;
49;; NAME is anything distinguishable w/ `eq' (number, symbol or keyword).
50;; This associates NAME with the block of text starting immediately below
51;; the :gigo directive and ending at the first line that does not begin
52;; with two semicolons (which are stripped from each line in the block).
53;; To insert this block of text, pass NAME to `make-mms-derivative-gigo'.
54;;
55;; Directives are scanned before normal evaluation, so their placement
56;; in the file is not important. During loading, plain strings are
57;; displayed in the echo area, prefixed with the current line number.
58;;
59;; Over the long run, the convenience functions provided (see source)
60;; will be augmented by factoring maximally the -2mms files, squeezing
61;; as much algorithm out of those nasty heuristics as possible. What
62;; makes them nasty is not that they rely on the conventions of the
63;; Emacs makefiles; that's no big deal. What makes them nasty is that
64;; they rely on the conventions of separately maintained tools (namely
65;; Autoconf for VMS and GNU Autoconf), and the separation of conventions
66;; is how people drift apart, dragging their software behind
67;; mercilessly.
68;;
69;; In general, codified thought w/o self-synchronization is doomed.
70;; That a generation would eat its young (most discriminatingly, even)
71;; is no reason GNU cannot build around such woe.
72
73;;; Code:
74
75(defvar make-mms-derivative-data nil
76 "Plist of data specific to `make-mms-derivative'.")
77
78(defun make-mms-derivative-data (key &optional newval)
79 (if newval (setq make-mms-derivative-data
80 (plist-put make-mms-derivative-data key newval))
81 (plist-get make-mms-derivative-data key)))
82
83(defun make-mms-derivative-gigo (name)
84 "Insert the text associated with :gigo NAME."
85 (insert (cdr (assq name (make-mms-derivative-data :gigo)))))
86
87(defun make-mms-derivative (filename)
88 "Take FILENAME contents, load FILENAME-2mms, and write out the result.
89The output file is specified by the :output directive in FILENAME-2mms.
90See commentary of make-mms-derivative.el for full documentation."
91 (interactive "fSource File: ")
92 (let* ((todo (let ((fn (concat filename "-2mms")))
93 (unless (file-exists-p fn)
94 (error "Could not find %s" fn))
95 (set-buffer (get-buffer-create " *make-mms-derivative todo*"))
96 (insert-file-contents fn)
97 (current-buffer)))
98 (deriv (get-buffer-create (format "*mms-derivative: %s"
99 (file-relative-name filename))))
100 output gigo form)
101 (set-buffer todo)
102 (re-search-forward "^:output")
103 (setq output (expand-file-name (read (current-buffer))
104 (file-name-directory filename)))
105 (goto-char (point-min))
106 (while (re-search-forward "^:gigo" (point-max) t)
107 (let ((name (read (current-buffer)))
108 (p (progn (forward-line 1) (point))))
109 (while (looking-at ";;")
110 (delete-char 2)
111 (forward-line 1))
112 (setq gigo (cons (cons name (buffer-substring p (point))) gigo))
113 (delete-region p (point))))
114 (message "Munging...")
115 (switch-to-buffer deriv)
116 (erase-buffer)
117 (insert-file-contents filename)
118 (set (make-local-variable 'make-mms-derivative-data)
119 (list :gigo gigo))
120 (set-buffer todo)
121 (goto-char (point-min))
122 (while (condition-case nil
123 (setq form (read (current-buffer)))
124 (end-of-file nil))
125 (if (stringp form)
126 (message "%d: %s" (count-lines (point-min) (point)) form)
127 (save-excursion
128 (set-buffer deriv)
129 (eval form))))
130 (set-buffer deriv)
131 (message "Munging...done")
132 (write-file output)
133 (kill-buffer todo)
134 (kill-buffer deriv)))
135
136(provide 'make-mms-derivative)
137
138;; arch-tag: a5b08625-3952-4053-be16-296220e27bb0
139;;; make-mms-derivative.el ends here