]> Zhao Yanbai Git Server - minix.git/commitdiff
import libterminfo, terminfo.db and stat command
authorVivek Prakash <vivekprakash@acm.org>
Mon, 18 Jul 2011 13:53:57 +0000 (15:53 +0200)
committerBen Gras <ben@minix3.org>
Mon, 18 Jul 2011 14:17:14 +0000 (16:17 +0200)
41 files changed:
commands/less/less/Makefile
docs/UPDATING
etc/mtree.sh
etc/mtree/minix.tree
lib/Makefile
lib/libterminfo/Makefile [new file with mode: 0644]
lib/libterminfo/compile.c [new file with mode: 0644]
lib/libterminfo/compiled_terms.c [new file with mode: 0644]
lib/libterminfo/curterm.c [new file with mode: 0644]
lib/libterminfo/genhash [new file with mode: 0755]
lib/libterminfo/genman [new file with mode: 0755]
lib/libterminfo/genterms [new file with mode: 0755]
lib/libterminfo/genthash [new file with mode: 0755]
lib/libterminfo/hash.c [new file with mode: 0644]
lib/libterminfo/minix-config.inc [new file with mode: 0644]
lib/libterminfo/minix-port.patch [new file with mode: 0644]
lib/libterminfo/setupterm.c [new file with mode: 0644]
lib/libterminfo/shlib_version [new file with mode: 0644]
lib/libterminfo/term.c [new file with mode: 0644]
lib/libterminfo/term.h [new file with mode: 0644]
lib/libterminfo/term_private.h [new file with mode: 0644]
lib/libterminfo/termcap.3 [new file with mode: 0644]
lib/libterminfo/termcap.c [new file with mode: 0644]
lib/libterminfo/termcap.h [new file with mode: 0644]
lib/libterminfo/termcap_hash.c [new file with mode: 0644]
lib/libterminfo/termcap_map.c [new file with mode: 0644]
lib/libterminfo/terminfo.3 [new file with mode: 0644]
lib/libterminfo/terminfo.5.in [new file with mode: 0644]
lib/libterminfo/ti.c [new file with mode: 0644]
lib/libterminfo/tparm.c [new file with mode: 0644]
lib/libterminfo/tputs.c [new file with mode: 0644]
share/Makefile
share/terminfo/Makefile [new file with mode: 0644]
share/terminfo/minix-port.patch [new file with mode: 0644]
share/terminfo/terminfo [new file with mode: 0644]
tools/nbsd_ports
usr.bin/Makefile
usr.bin/tic/Makefile [new file with mode: 0644]
usr.bin/tic/minix-port.patch [new file with mode: 0644]
usr.bin/tic/tic.1 [new file with mode: 0644]
usr.bin/tic/tic.c [new file with mode: 0644]

index 3add3cf5d0d25f1353b884a73d1b2caf10019884..b9916e3b9aa6c3c93b654a673e5d9f2026554043 100644 (file)
@@ -12,8 +12,10 @@ SRCS=        brac.c ch.c charset.c cmdbuf.c command.c decode.c edit.c \
        linenum.c lsystem.c main.c mark.c optfunc.c option.c opttbl.c \
        os.c output.c position.c prompt.c screen.c search.c signal.c \
        tags.c ttyin.c version.c
-#LDADD+=       -ltermcap
+.if defined(NBSD_LIBC) && (${NBSD_LIBC} != "no")
+LDADD+=        -ltermcap
 DPADD+=        ${LIBTERM}
+.endif
 MLINKS=        less.1 more.1 less.1 page.1
 LINKS= ${BINDIR}/less ${BINDIR}/more ${BINDIR}/less ${BINDIR}/page
 
index d2cb1255ede41d15ff8c97f1d20bab516212bc2b..f3ffff431d2478b9926ea06483359958fa064980 100644 (file)
@@ -1,3 +1,15 @@
+20110716:
+       To install libterminfo and terminfo database, you need 
+       the new stat:
+       # cd /usr/src/usr.bin/stat
+       # make clean install
+
+       You must create a directory /usr/share/terminfo for terminfo database
+       to be installed. 
+       # make -C etc install
+
+       Then make clean world as normal.
+
 20110708
         * VFS and installed MFSes must be in sync before and after this change *
 
index 7bd78e0d7db9f2270aecd3f8814a3f1b14bca5c9..706306e7a44de08d6d9e75b228e6b8f8658e74e3 100755 (executable)
@@ -15,7 +15,7 @@ do
                group="`echo $line | awk '{ print $3 }'`"
                dir="`echo $line | awk '{ print $4 }'`"
                mkdir -p $dir
-               targetdev="`stat -dev $dir/.`"
+               targetdev="`stat -f %d $dir/.`"
                if [ $targetdev -eq 1 ]
                then    echo "skipping $dir properties"
                else    chown $owner $dir
index 81b180b9f52c2fc7f768a315eb199adf06f9f41a..b8ccec598c10aed2626621ef4853eb66f40b13e7 100644 (file)
@@ -73,6 +73,7 @@
 755  root    operator  /usr/run
 755  root    operator  /usr/share
 755  root    operator  /usr/share/mk
+755  root    operator  /usr/share/terminfo
 755  root    operator  /usr/share/zoneinfo
 755  root    operator  /usr/spool
 711  root    operator  /usr/spool/at
index 858f0a6b6994f30aaabe4530cf8d73c87bfba76e..434d2d4508153028587bda714d3b872a646d526d 100644 (file)
@@ -21,7 +21,7 @@ SUBDIR= csu ${LIBCOMPAT_DIR} ${LIBC_DIR} libcurses libdriver libnetdriver \
        libddekit
 
 .if defined(NBSD_LIBC) && (${NBSD_LIBC} != "no")
-SUBDIR+= libelf libminc libcrypt
+SUBDIR+= libelf libminc libcrypt libterminfo
 .endif
 
 .if ${COMPILER_TYPE} == "ack"
diff --git a/lib/libterminfo/Makefile b/lib/libterminfo/Makefile
new file mode 100644 (file)
index 0000000..466afe4
--- /dev/null
@@ -0,0 +1,113 @@
+#      $NetBSD: Makefile,v 1.12 2010/07/06 05:59:53 mrg Exp $
+
+.if defined(__MINIX)
+.include "minix-config.inc"
+USE_SHLIBDIR=  no
+.else
+USE_SHLIBDIR=  yes
+.endif
+
+LIB=           terminfo
+WARNS=         4
+
+CPPFLAGS+=     -I${.CURDIR}
+
+SRCS=          term.c ti.c setupterm.c curterm.c tparm.c tputs.c
+SRCS+=         compile.c hash.c
+INCS=          term.h
+INCSDIR=       /usr/include
+
+MAN=           terminfo.3 terminfo.5
+MLINKS=                terminfo.3 setupterm.3 \
+               terminfo.3 set_curterm.3 terminfo.3 del_curterm.3 \
+               terminfo.3 tigetnum.3 terminfo.3 tigetflag.3 \
+               terminfo.3 tigetstr.3 terminfo.3 tparm.3 terminfo.3 tputs.3 \
+               terminfo.3 putp.3 \
+               terminfo.3 ti_setupterm.3 terminfo.3 ti_getflag.3 \
+               terminfo.3 ti_getnum.3 terminfo.3 ti_getstr.3 \
+               terminfo.3 t_parm.3 terminfo.3 t_vparm.3 \
+               terminfo.3 ti_puts.3 terminfo.3 ti_putp.3
+
+# Build in termcap emulation
+SRCS+=         termcap.c
+INCS+=         termcap.h
+MAN+=          termcap.3
+MLINKS+=       termcap.3 tgetent.3 termcap.3 tgetflag.3 termcap.3 tgetnum.3 \
+               termcap.3 tgetstr.3 termcap.3 tgoto.3
+
+# Generate our string and hash tables
+hash:
+               @echo "Generating terminfo hash"
+               cd ${.CURDIR} && ${HOST_SH} ./genhash >hash.c
+               @echo "Generating termcap hash"
+               cd ${.CURDIR} && ${HOST_SH} ./genthash >termcap_hash.c
+
+# Generate our man pages
+terminfo.5: terminfo.5.in term.h termcap_map.c
+               @echo "Generating terminfo man pages"
+               cd ${.CURDIR} && ${HOST_SH} ./genman >${.OBJDIR}/$@
+
+CLEANFILES+=   terminfo.5
+
+# Allow terminfo descriptions to be compiled into libterminfo
+compiled_terms:
+               @echo "Generating compiled terminfo descriptions"
+               cd ${.CURDIR} && ${HOST_SH} ./genterms >compiled_terms.c
+
+man: terminfo.5
+
+gen: hash compiled_terms man
+
+.include <bsd.own.mk>
+.if !defined(__MINIX)
+.include <bsd.shlib.mk>
+.endif
+
+.if ${MKLINKLIB} != "no"
+SYMLINKS+=     libterminfo.a ${LIBDIR}/libtermcap.a
+SYMLINKS+=     libterminfo.a ${LIBDIR}/libtermlib.a
+.endif
+
+.if ${MKPROFILE} != "no"
+SYMLINKS+=     libterminfo_p.a ${LIBDIR}/libtermcap_p.a
+SYMLINKS+=     libterminfo_p.a ${LIBDIR}/libtermlib_p.a
+.endif
+
+.if ${MKPIC} != "no"
+
+.if ${MKPICINSTALL} != "no"
+SYMLINKS+=     libterminfo_pic.a ${LIBDIR}/libtermcap_pic.a
+SYMLINKS+=     libterminfo_pic.a ${LIBDIR}/libtermlib_pic.a
+.endif
+
+.if exists(${.CURDIR}/shlib_version)
+SYMLINKS+=     libterminfo.so.${SHLIB_FULLVERSION} \
+               ${_LIBSODIR}/libtermcap.so.0.6
+SYMLINKS+=     libterminfo.so.${SHLIB_FULLVERSION} \
+               ${_LIBSODIR}/libtermlib.so.0.6
+.if ${_LIBSODIR} != ${LIBDIR}
+SYMLINKS+=     libterminfo.so.${SHLIB_FULLVERSION} \
+               ${LIBDIR}/libtermcap.so.0.6
+SYMLINKS+=     libterminfo.so.${SHLIB_FULLVERSION} \
+               ${LIBDIR}/libtermlib.so.0.6
+.endif
+
+SYMLINKS+=     libterminfo.so.${SHLIB_MAJOR} \
+               ${_LIBSODIR}/libtermcap.so.0
+SYMLINKS+=     libterminfo.so ${_LIBSODIR}/libtermcap.so
+SYMLINKS+=     libterminfo.so.${SHLIB_MAJOR} \
+               ${_LIBSODIR}/libtermlib.so.0
+SYMLINKS+=     libterminfo.so ${_LIBSODIR}/libtermlib.so
+.if ${_LIBSODIR} != ${LIBDIR}
+SYMLINKS+=     libterminfo.so.${SHLIB_MAJOR} \
+               ${LIBDIR}/libtermcap.so.0
+SYMLINKS+=     libterminfo.so ${LIBDIR}/libtermcap.so
+SYMLINKS+=     libterminfo.so.${SHLIB_MAJOR} \
+               ${LIBDIR}/libtermlib.so.0
+SYMLINKS+=     libterminfo.so ${LIBDIR}/libtermlib.so
+.endif
+.endif # exists shlib_version
+
+.endif # ${MKPIC} != "no"
+
+.include <bsd.lib.mk>
diff --git a/lib/libterminfo/compile.c b/lib/libterminfo/compile.c
new file mode 100644 (file)
index 0000000..e4a9742
--- /dev/null
@@ -0,0 +1,665 @@
+/* $NetBSD: compile.c,v 1.4 2010/03/02 14:11:11 roy Exp $ */
+
+/*
+ * Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if HAVE_NBTOOL_CONFIG_H
+#include "nbtool_config.h"
+#endif
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: compile.c,v 1.4 2010/03/02 14:11:11 roy Exp $");
+
+#if !HAVE_NBTOOL_CONFIG_H || HAVE_SYS_ENDIAN_H
+#include <sys/endian.h>
+#endif
+
+#include <assert.h>
+#include <ctype.h>
+#include <err.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+#include <term_private.h>
+#include <term.h>
+
+static void __attribute__((__format__(__printf__, 2, 3)))
+dowarn(int flags, const char *fmt, ...)
+{
+       va_list va;
+
+       errno = EINVAL;
+       if (flags & TIC_WARNING) {
+               va_start(va, fmt);
+               vwarnx(fmt, va);
+               va_end(va);
+       }
+}
+
+char *
+_ti_grow_tbuf(TBUF *tbuf, size_t len)
+{
+       char *buf;
+       size_t l;
+
+       _DIAGASSERT(tbuf != NULL);
+
+       l = tbuf->bufpos + len;
+       if (l > tbuf->buflen) {
+               if (tbuf->bufpos == 0)
+                       buf = malloc(l);
+               else
+                       buf = realloc(tbuf->buf, l);
+               if (buf == NULL)
+                       return NULL;
+               tbuf->buf = buf;
+               tbuf->buflen = l;
+       }
+       return tbuf->buf;
+}
+
+char *
+_ti_find_cap(TBUF *tbuf, char type, short ind)
+{
+       size_t n;
+       short num;
+       char *cap;
+
+       _DIAGASSERT(tbuf != NULL);
+
+       cap = tbuf->buf;
+       for (n = tbuf->entries; n > 0; n--) {
+               num = le16dec(cap);
+               cap += sizeof(uint16_t);
+               if (num == ind)
+                       return cap;
+               switch (type) {
+               case 'f':
+                       cap++;
+                       break;
+               case 'n':
+                       cap += sizeof(uint16_t);
+                       break;
+               case 's':
+                       num = le16dec(cap);
+                       cap += sizeof(uint16_t);
+                       cap += num;
+                       break;
+               }
+       }
+       
+       errno = ESRCH;
+       return NULL;
+}
+
+char *
+_ti_find_extra(TBUF *tbuf, const char *code)
+{
+       size_t n;
+       short num;
+       char *cap;
+
+       _DIAGASSERT(tbuf != NULL);
+       _DIAGASSERT(code != NULL);
+
+       cap = tbuf->buf;
+       for (n = tbuf->entries; n > 0; n--) {
+               num = le16dec(cap);
+               cap += sizeof(uint16_t);
+               if (strcmp(cap, code) == 0)
+                       return cap + num;
+               cap += num;
+               switch (*cap++) {
+               case 'f':
+                       cap++;
+                       break;
+               case 'n':
+                       cap += sizeof(uint16_t);
+                       break;
+               case 's':
+                       num = le16dec(cap);
+                       cap += sizeof(uint16_t);
+                       cap += num;
+                       break;
+               }
+       }
+       
+       errno = ESRCH;
+       return NULL;
+}
+
+size_t
+_ti_store_extra(TIC *tic, int wrn, char *id, char type, char flag, short num,
+    char *str, size_t strl, int flags)
+{
+       size_t l;
+
+       _DIAGASSERT(tic != NULL);
+
+       if (strcmp(id, "use") != 0) {
+               if (_ti_find_extra(&tic->extras, id) != NULL)
+                       return 0;
+               if (!(flags & TIC_EXTRA)) {
+                       if (wrn != 0)
+                               dowarn(flags, "%s: %s: unknown capability",
+                                   tic->name, id);
+                       return 0;
+               }
+       }
+       
+       l = strlen(id) + 1;
+       if (l > UINT16_T_MAX) {
+               dowarn(flags, "%s: %s: cap name is too long", tic->name, id);
+               return 0;
+       }
+       
+       if (!_ti_grow_tbuf(&tic->extras,
+               l + strl + (sizeof(uint16_t) * 2) + 1))
+               return 0;
+       le16enc(tic->extras.buf + tic->extras.bufpos, l);
+       tic->extras.bufpos += sizeof(uint16_t);
+       memcpy(tic->extras.buf + tic->extras.bufpos, id, l);
+       tic->extras.bufpos += l;
+       tic->extras.buf[tic->extras.bufpos++] = type;
+       switch (type) {
+       case 'f':
+               tic->extras.buf[tic->extras.bufpos++] = flag;
+               break;
+       case 'n':
+               le16enc(tic->extras.buf + tic->extras.bufpos, num);
+               tic->extras.bufpos += sizeof(uint16_t);
+               break;
+       case 's':
+               le16enc(tic->extras.buf + tic->extras.bufpos, strl);
+               tic->extras.bufpos += sizeof(uint16_t);
+               memcpy(tic->extras.buf + tic->extras.bufpos, str, strl);
+               tic->extras.bufpos += strl;
+               break;
+       }
+       tic->extras.entries++;
+       return 1;
+}
+
+ssize_t
+_ti_flatten(uint8_t **buf, const TIC *tic)
+{
+       size_t buflen, len, alen, dlen;
+       uint8_t *cap;
+
+       _DIAGASSERT(buf != NULL);
+       _DIAGASSERT(tic != NULL);
+
+       len = strlen(tic->name) + 1;
+       if (tic->alias == NULL)
+               alen = 0;
+       else
+               alen = strlen(tic->alias) + 1;
+       if (tic->desc == NULL)
+               dlen = 0;
+       else
+               dlen = strlen(tic->desc) + 1;
+       buflen = sizeof(char) +
+           sizeof(uint16_t) + len +
+           sizeof(uint16_t) + alen +
+           sizeof(uint16_t) + dlen +
+           (sizeof(uint16_t) * 2) + tic->flags.bufpos +
+           (sizeof(uint16_t) * 2) + tic->nums.bufpos +
+           (sizeof(uint16_t) * 2) + tic->strs.bufpos +
+           (sizeof(uint16_t) * 2) + tic->extras.bufpos;
+       *buf = malloc(buflen);
+       if (*buf == NULL)
+               return -1;
+       
+       cap = *buf;
+       if (alen == 0 && dlen == 0 && tic->flags.bufpos == 0 &&
+           tic->nums.bufpos == 0 && tic->strs.bufpos == 0 &&
+           tic->extras.bufpos == 0)
+               *cap++ = 0; /* alias */
+       else
+               *cap++ = 2; /* version */
+       le16enc(cap, len);
+       cap += sizeof(uint16_t);
+       memcpy(cap, tic->name, len);
+       cap += len;
+       
+       le16enc(cap, alen);
+       cap += sizeof(uint16_t);
+       if (tic->alias != NULL) {
+               memcpy(cap, tic->alias, alen);
+               cap += alen;
+       }
+       le16enc(cap, dlen);
+       cap += sizeof(uint16_t);
+       if (tic->desc != NULL) {
+               memcpy(cap, tic->desc, dlen);
+               cap += dlen;
+       }
+
+       if (tic->flags.entries == 0) {
+               le16enc(cap, 0);
+               cap += sizeof(uint16_t);
+       } else {
+               le16enc(cap, (tic->flags.bufpos + sizeof(uint16_t)));
+               cap += sizeof(uint16_t);
+               le16enc(cap, tic->flags.entries);
+               cap += sizeof(uint16_t);
+               memcpy(cap, tic->flags.buf, tic->flags.bufpos);
+               cap += tic->flags.bufpos;
+       }
+       
+       if (tic->nums.entries == 0) {
+               le16enc(cap, 0);
+               cap += sizeof(uint16_t);
+       } else {
+               le16enc(cap, (tic->nums.bufpos + sizeof(uint16_t)));
+               cap += sizeof(uint16_t);
+               le16enc(cap, tic->nums.entries);
+               cap += sizeof(uint16_t);
+               memcpy(cap, tic->nums.buf, tic->nums.bufpos);
+               cap += tic->nums.bufpos;
+       }
+       
+       if (tic->strs.entries == 0) {
+               le16enc(cap, 0);
+               cap += sizeof(uint16_t);
+       } else {
+               le16enc(cap, (tic->strs.bufpos + sizeof(uint16_t)));
+               cap += sizeof(uint16_t);
+               le16enc(cap, tic->strs.entries);
+               cap += sizeof(uint16_t);
+               memcpy(cap, tic->strs.buf, tic->strs.bufpos);
+               cap += tic->strs.bufpos;
+       }
+       
+       if (tic->extras.entries == 0) {
+               le16enc(cap, 0);
+               cap += sizeof(uint16_t);
+       } else {
+               le16enc(cap, (tic->extras.bufpos + sizeof(uint16_t)));
+               cap += sizeof(uint16_t);
+               le16enc(cap, tic->extras.entries);
+               cap += sizeof(uint16_t);
+               memcpy(cap, tic->extras.buf, tic->extras.bufpos);
+               cap += tic->extras.bufpos;
+       }
+
+       return cap - *buf;
+}
+
+static int
+encode_string(const char *term, const char *cap, TBUF *tbuf, const char *str,
+    int flags)
+{
+       int slash, i, num;
+       char ch, *p, *s, last;
+       
+       if (_ti_grow_tbuf(tbuf, strlen(str) + 1) == NULL)
+               return -1;
+       p = s = tbuf->buf + tbuf->bufpos;
+       slash = 0;
+       last = '\0';
+       /* Convert escape codes */
+       while ((ch = *str++) != '\0') {
+               if (slash == 0 && ch == '\\') {
+                       slash = 1;
+                       continue;
+               }
+               if (slash == 0) {
+                       if (last != '%' && ch == '^') {
+                               ch = *str++;
+                               if (((unsigned char)ch) >= 128)
+                                       dowarn(flags,
+                                           "%s: %s: illegal ^ character",
+                                           term, cap);
+                               if (ch == '\0')
+                                       break;
+                               if (ch == '?')
+                                       ch = '\177';
+                               else if ((ch &= 037) == 0)
+                                       ch = 128;
+                       }
+                       *p++ = ch;
+                       last = ch;
+                       continue;
+               }
+               slash = 0;
+               if (ch >= '0' && ch <= '7') {
+                       num = ch - '0';
+                       for (i = 0; i < 2; i++) {
+                               if (*str < '0' || *str > '7') {
+                                       if (isdigit((unsigned char)*str))
+                                               dowarn(flags,
+                                                   "%s: %s: non octal"
+                                                   " digit", term, cap);
+                                       else
+                                               break;
+                               }
+                               num = num * 8 + *str++ - '0';
+                       }
+                       if (num == 0)
+                               num = 0200;
+                       *p++ = (char)num;
+                       continue;
+               }
+               switch (ch) {
+               case 'a':
+                       *p++ = '\a';
+                       break;
+               case 'b':
+                       *p++ = '\b';
+                       break;
+               case 'e': /* FALLTHROUGH */
+               case 'E':
+                       *p++ = '\033';
+                       break;
+               case 'f':
+                       *p++ = '\014';
+                       break;
+               case 'l': /* FALLTHROUGH */
+               case 'n':
+                       *p++ = '\n';
+                       break;
+               case 'r':
+                       *p++ = '\r';
+                       break;
+               case 's':
+                       *p++ = ' ';
+                       break;
+               case 't':
+                       *p++ = '\t';
+                       break;
+               default:
+                                       
+                       /* We should warn here */
+               case '^':
+               case ',':
+               case ':':
+               case '|':
+                       *p++ = ch;
+                       break;
+               }
+               last = ch;
+       }
+       *p++ = '\0';
+       tbuf->bufpos += p - s;
+       return 0;
+}
+
+char *
+_ti_get_token(char **cap, char sep)
+{
+       char esc, *token;
+
+       while (isspace((unsigned char)**cap))
+               (*cap)++;
+       if (**cap == '\0')
+               return NULL;
+
+       /* We can't use stresep(3) as ^ we need two escape chars */
+       esc = '\0';
+       for (token = *cap;
+            **cap != '\0' && (esc != '\0' || **cap != sep);
+            (*cap)++)
+       {
+               if (esc == '\0') {
+                       if (**cap == '\\' || **cap == '^')
+                               esc = **cap;
+               } else {
+                       /* termcap /E/ is valid */
+                       if (sep == ':' && esc == '\\' && **cap == 'E')
+                               esc = 'x';
+                       else
+                               esc = '\0';
+               }
+       }
+
+       if (**cap != '\0')
+               *(*cap)++ = '\0';
+
+       return token;
+}
+
+TIC *
+_ti_compile(char *cap, int flags)
+{
+       char *token, *p, *e, *name, *desc, *alias;
+       signed char flag;
+       long num;
+       ssize_t ind;
+       size_t len;
+       TBUF buf;
+       TIC *tic;
+
+       _DIAGASSERT(cap != NULL);       
+
+       name = _ti_get_token(&cap, ',');
+       if (name == NULL) {
+               dowarn(flags, "no seperator found: %s", cap);
+               return NULL;
+       }
+       desc = strrchr(name, '|');
+       if (desc != NULL)
+               *desc++ = '\0';
+       alias = strchr(name, '|');
+       if (alias != NULL)
+               *alias++ = '\0';
+
+       tic = calloc(sizeof(*tic), 1);
+       if (tic == NULL)
+               return NULL;
+
+       buf.buf = NULL;
+       buf.buflen = 0;
+
+       tic->name = strdup(name);
+       if (tic->name == NULL)
+               goto error;
+       if (alias != NULL && flags & TIC_ALIAS) {
+               tic->alias = strdup(alias);
+               if (tic->alias == NULL)
+                       goto error;
+       }
+       if (desc != NULL && flags & TIC_DESCRIPTION) {
+               tic->desc = strdup(desc);
+               if (tic->desc == NULL)
+                       goto error;
+       }
+
+       for (token = _ti_get_token(&cap, ',');
+            token != NULL && *token != '\0';
+            token = _ti_get_token(&cap, ','))
+       {
+               /* Skip commented caps */
+               if (!(flags & TIC_COMMENT) && token[0] == '.')
+                       continue;
+
+               /* Obsolete entries */
+               if (token[0] == 'O' && token[1] == 'T') {
+                       if (!(flags & TIC_EXTRA))
+                               continue;
+                       token += 2;
+               }
+
+               /* str cap */
+               p = strchr(token, '=');
+               if (p != NULL) {
+                       *p++ = '\0';
+                       /* Don't use the string if we already have it */
+                       ind = _ti_strindex(token);
+                       if (ind != -1 &&
+                           _ti_find_cap(&tic->strs, 's', ind) != NULL)
+                               continue;
+
+                       /* Encode the string to our scratch buffer */
+                       buf.bufpos = 0;
+                       if (encode_string(tic->name, token,
+                               &buf, p, flags) == -1)
+                               goto error;
+                       if (buf.bufpos > UINT16_T_MAX) {
+                               dowarn(flags, "%s: %s: string is too long",
+                                   tic->name, token);
+                               continue;
+                       }
+                       if (!VALID_STRING(buf.buf)) {
+                               dowarn(flags, "%s: %s: invalid string",
+                                   tic->name, token);
+                               continue;
+                       }
+
+                       if (ind == -1)
+                               _ti_store_extra(tic, 1, token, 's', -1, -2,
+                                   buf.buf, buf.bufpos, flags);
+                       else {
+                               if (!_ti_grow_tbuf(&tic->strs,
+                                       (sizeof(uint16_t) * 2) + buf.bufpos))
+                                       goto error;
+                               le16enc(tic->strs.buf + tic->strs.bufpos, ind);
+                               tic->strs.bufpos += sizeof(uint16_t);
+                               le16enc(tic->strs.buf + tic->strs.bufpos,
+                                   buf.bufpos);
+                               tic->strs.bufpos += sizeof(uint16_t);
+                               memcpy(tic->strs.buf + tic->strs.bufpos,
+                                   buf.buf, buf.bufpos);
+                               tic->strs.bufpos += buf.bufpos;
+                               tic->strs.entries++;
+                       }
+                       continue;
+               }
+
+               /* num cap */
+               p = strchr(token, '#');
+               if (p != NULL) {
+                       *p++ = '\0';
+                       /* Don't use the number if we already have it */
+                       ind = _ti_numindex(token);
+                       if (ind != -1 &&
+                           _ti_find_cap(&tic->nums, 'n', ind) != NULL)
+                               continue;
+
+                       num = strtol(p, &e, 0);
+                       if (*e != '\0') {
+                               dowarn(flags, "%s: %s: not a number",
+                                   tic->name, token);
+                               continue;
+                       }
+                       if (!VALID_NUMERIC(num)) {
+                               dowarn(flags, "%s: %s: number out of range",
+                                   tic->name, token);
+                               continue;
+                       }
+                       if (ind == -1)
+                               _ti_store_extra(tic, 1, token, 'n', -1,
+                                   num, NULL, 0, flags);
+                       else {
+                               if (_ti_grow_tbuf(&tic->nums,
+                                       sizeof(uint16_t) * 2) == NULL)
+                                       goto error;
+                               le16enc(tic->nums.buf + tic->nums.bufpos, ind);
+                               tic->nums.bufpos += sizeof(uint16_t);
+                               le16enc(tic->nums.buf + tic->nums.bufpos, num);
+                               tic->nums.bufpos += sizeof(uint16_t);
+                               tic->nums.entries++;
+                       }
+                       continue;
+               }
+
+               flag = 1;
+               len = strlen(token) - 1;
+               if (token[len] == '@') {
+                       flag = CANCELLED_BOOLEAN;
+                       token[len] = '\0';
+               }
+               ind = _ti_flagindex(token);
+               if (ind == -1 && flag == CANCELLED_BOOLEAN) {
+                       if ((ind = _ti_numindex(token)) != -1) {
+                               if (_ti_find_cap(&tic->nums, 'n', ind) != NULL)
+                                       continue;
+                               if (_ti_grow_tbuf(&tic->nums,
+                                       sizeof(uint16_t) * 2) == NULL)
+                                       goto error;
+                               le16enc(tic->nums.buf + tic->nums.bufpos, ind);
+                               tic->nums.bufpos += sizeof(uint16_t);
+                               le16enc(tic->nums.buf + tic->nums.bufpos,
+                                       CANCELLED_NUMERIC);
+                               tic->nums.bufpos += sizeof(uint16_t);
+                               tic->nums.entries++;
+                               continue;
+                       } else if ((ind = _ti_strindex(token)) != -1) {
+                               if (_ti_find_cap(&tic->strs, 's', ind) != NULL)
+                                       continue;
+                               if (_ti_grow_tbuf(&tic->strs,
+                                       (sizeof(uint16_t) * 2) + 1) == NULL)
+                                       goto error;
+                               le16enc(tic->strs.buf + tic->strs.bufpos, ind);
+                               tic->strs.bufpos += sizeof(uint16_t);
+                               le16enc(tic->strs.buf + tic->strs.bufpos, 0);
+                               tic->strs.bufpos += sizeof(uint16_t);
+                               tic->strs.entries++;
+                               continue;
+                       }
+               }
+               if (ind == -1)
+                       _ti_store_extra(tic, 1, token, 'f', flag, 0, NULL, 0,
+                           flags);
+               else if (_ti_find_cap(&tic->flags, 'f', ind) == NULL) {
+                       if (_ti_grow_tbuf(&tic->flags, sizeof(uint16_t) + 1)
+                           == NULL)
+                               goto error;
+                       le16enc(tic->flags.buf + tic->flags.bufpos, ind);
+                       tic->flags.bufpos += sizeof(uint16_t);
+                       tic->flags.buf[tic->flags.bufpos++] = flag;
+                       tic->flags.entries++;
+               }
+       }
+
+       free(buf.buf);
+       return tic;
+
+error:
+       free(buf.buf);
+       _ti_freetic(tic);
+       return NULL;
+}
+
+void
+_ti_freetic(TIC *tic)
+{
+
+       if (tic != NULL) {
+               free(tic->name);
+               free(tic->alias);
+               free(tic->desc);
+               free(tic->flags.buf);
+               free(tic->nums.buf);
+               free(tic->strs.buf);
+               free(tic);
+       }
+}
diff --git a/lib/libterminfo/compiled_terms.c b/lib/libterminfo/compiled_terms.c
new file mode 100644 (file)
index 0000000..75fa1ee
--- /dev/null
@@ -0,0 +1,520 @@
+/* $NetBSD: compiled_terms.c,v 1.1 2010/02/12 12:18:33 roy Exp $ */
+/* DO NOT EDIT
+ * Regenerate by doing `make compiled_terms`
+ */
+
+struct compiled_term {
+       const char *name;
+       const char *cap;
+       size_t caplen;
+};
+
+const struct compiled_term compiled_terms[] = {
+       {
+               "ansi",
+               "\002\005\000\141\156\163\151\000\000\000\000\000\016\000\004"
+               "\000\036\000\001\001\000\001\026\000\001\027\000\001\032\000"
+               "\006\000\016\000\010\000\025\000\003\000\021\000\100\000\004"
+               "\000\120\000\007\000\010\000\012\000\030\000\142\003\107\000"
+               "\200\001\013\000\033\133\045\151\045\144\073\045\144\122\000"
+               "\201\001\005\000\033\133\066\156\000\202\001\023\000\033\133"
+               "\077\045\133\073\060\061\062\063\064\065\066\067\070\071\135"
+               "\143\000\203\001\004\000\033\133\143\000\052\001\011\000\033"
+               "\133\063\071\073\064\071\155\000\132\001\012\000\033\133\064"
+               "\045\160\061\045\144\155\000\133\001\012\000\033\133\063\045"
+               "\160\061\045\144\155\000\110\000\005\000\033\133\070\155\000"
+               "\134\001\126\000\033\133\060\073\061\060\045\077\045\160\061"
+               "\045\164\073\067\045\073\045\077\045\160\062\045\164\073\064"
+               "\045\073\045\077\045\160\063\045\164\073\067\045\073\045\077"
+               "\045\160\064\045\164\073\065\045\073\045\077\045\160\066\045"
+               "\164\073\061\045\073\045\077\045\160\067\045\164\073\070\045"
+               "\073\045\077\045\160\071\045\164\073\061\061\045\073\155\000"
+               "\063\000\005\000\033\133\065\155\000\064\000\005\000\033\133"
+               "\061\155\000\105\000\005\000\033\133\067\155\000\135\000\006"
+               "\000\033\133\061\060\155\000\140\000\004\000\033\133\155\000"
+               "\143\000\004\000\033\133\155\000\125\000\010\000\033\133\060"
+               "\073\061\060\155\000\103\000\006\000\033\133\061\061\155\000"
+               "\112\000\005\000\033\133\067\155\000\116\000\005\000\033\133"
+               "\064\155\000\000\000\077\000\053\020\054\021\055\030\056\031"
+               "\060\333\140\004\141\261\146\370\147\361\150\260\152\331\153"
+               "\277\154\332\155\300\156\305\157\176\160\304\161\304\162\304"
+               "\163\137\164\303\165\264\166\301\167\302\170\263\171\363\172"
+               "\362\173\343\174\330\175\234\176\376\000\123\000\006\000\033"
+               "\133\061\060\155\000\061\000\006\000\033\133\061\061\155\000"
+               "\063\001\011\000\033\133\045\160\061\045\144\104\000\056\001"
+               "\011\000\033\133\045\160\061\045\144\102\000\065\001\011\000"
+               "\033\133\045\160\061\045\144\103\000\070\001\011\000\033\133"
+               "\045\160\061\045\144\101\000\054\001\011\000\033\133\045\160"
+               "\061\045\144\120\000\055\001\011\000\033\133\045\160\061\045"
+               "\144\115\000\122\000\011\000\033\133\045\160\061\045\144\130"
+               "\000\022\000\005\000\033\133\061\113\000\027\000\013\000\033"
+               "\133\045\151\045\160\061\045\144\107\000\166\001\004\000\033"
+               "\133\111\000\060\001\011\000\033\133\045\160\061\045\144\100"
+               "\000\062\001\011\000\033\133\045\160\061\045\144\114\000\061"
+               "\001\011\000\033\133\045\160\061\045\144\123\000\173\000\002"
+               "\000\010\000\175\000\004\000\033\133\132\000\326\000\004\000"
+               "\033\133\104\000\212\000\004\000\033\133\102\000\351\000\004"
+               "\000\033\133\103\000\015\001\004\000\033\133\101\000\324\000"
+               "\004\000\033\133\114\000\102\001\005\000\033\133\064\151\000"
+               "\103\001\005\000\033\133\065\151\000\047\001\005\000\015\033"
+               "\133\123\000\107\001\024\000\045\160\061\045\143\033\133\045"
+               "\160\062\045\173\061\175\045\055\045\144\142\000\067\001\011"
+               "\000\033\133\045\160\061\045\144\124\000\125\001\004\000\033"
+               "\050\102\000\126\001\004\000\033\051\102\000\127\001\004\000"
+               "\033\052\102\000\130\001\004\000\033\053\102\000\017\000\005"
+               "\000\033\133\062\147\000\117\001\013\000\033\133\045\151\045"
+               "\160\061\045\144\144\000\003\000\002\000\007\000\002\000\004"
+               "\000\033\133\132\000\021\000\007\000\033\133\110\033\133\112"
+               "\000\007\000\002\000\015\000\036\000\004\000\033\133\104\000"
+               "\033\000\004\000\033\133\102\000\041\000\004\000\033\133\103"
+               "\000\032\000\021\000\033\133\045\151\045\160\061\045\144\073"
+               "\045\160\062\045\144\110\000\043\000\004\000\033\133\101\000"
+               "\047\000\004\000\033\133\120\000\050\000\004\000\033\133\115"
+               "\000\024\000\004\000\033\133\112\000\023\000\004\000\033\133"
+               "\113\000\034\000\004\000\033\133\110\000\153\001\003\000\033"
+               "\110\000\166\000\004\000\033\133\114\000\122\001\002\000\012"
+               "\000\323\000\004\000\033\133\110\000\020\000\002\000\003\000"
+               "\101\130\000\146\001\003\000\142\163\000\146\001",
+               942
+       },
+       {
+               "dumb",
+               "\002\005\000\144\165\155\142\000\000\000\000\000\005\000\001"
+               "\000\001\000\001\006\000\001\000\004\000\120\000\032\000\004"
+               "\000\003\000\002\000\007\000\007\000\002\000\015\000\033\000"
+               "\002\000\012\000\122\001\002\000\012\000\000\000",
+               57
+       },
+       {
+               "vt100",
+               "\002\006\000\166\164\061\060\060\000\000\000\000\000\021\000"
+               "\005\000\001\000\001\036\000\001\027\000\001\011\000\001\044"
+               "\000\001\022\000\004\000\004\000\120\000\007\000\010\000\012"
+               "\000\030\000\036\000\003\000\100\003\107\000\000\000\063\000"
+               "\140\140\141\141\146\146\147\147\152\152\153\153\154\154\155"
+               "\155\156\156\157\157\160\160\161\161\162\162\163\163\164\164"
+               "\165\165\166\166\167\167\170\170\171\171\172\172\173\173\174"
+               "\174\175\175\176\176\000\003\000\002\000\007\000\063\000\011"
+               "\000\033\133\065\155\044\074\062\076\000\064\000\011\000\033"
+               "\133\061\155\044\074\062\076\000\021\000\014\000\033\133\110"
+               "\033\133\112\044\074\065\060\076\000\007\000\002\000\015\000"
+               "\014\000\021\000\033\133\045\151\045\160\061\045\144\073\045"
+               "\160\062\045\144\162\000\063\001\011\000\033\133\045\160\061"
+               "\045\144\104\000\036\000\002\000\010\000\056\001\011\000\033"
+               "\133\045\160\061\045\144\102\000\033\000\002\000\012\000\065"
+               "\001\011\000\033\133\045\160\061\045\144\103\000\041\000\010"
+               "\000\033\133\103\044\074\062\076\000\032\000\025\000\033\133"
+               "\045\151\045\160\061\045\144\073\045\160\062\045\144\110\044"
+               "\074\065\076\000\070\001\011\000\033\133\045\160\061\045\144"
+               "\101\000\043\000\010\000\033\133\101\044\074\062\076\000\024"
+               "\000\011\000\033\133\112\044\074\065\060\076\000\023\000\010"
+               "\000\033\133\113\044\074\063\076\000\022\000\011\000\033\133"
+               "\061\113\044\074\063\076\000\057\000\007\000\033\050\102\033"
+               "\051\060\000\034\000\004\000\033\133\110\000\166\001\002\000"
+               "\011\000\153\001\003\000\033\110\000\122\001\002\000\012\000"
+               "\173\000\002\000\010\000\326\000\004\000\033\117\104\000\212"
+               "\000\004\000\033\117\102\000\351\000\004\000\033\117\103\000"
+               "\015\001\004\000\033\117\101\000\021\001\004\000\160\146\061"
+               "\000\022\001\004\000\160\146\062\000\023\001\004\000\160\146"
+               "\063\000\024\001\004\000\160\146\064\000\100\001\005\000\033"
+               "\133\060\151\000\102\001\005\000\033\133\064\151\000\103\001"
+               "\005\000\033\133\065\151\000\116\001\003\000\033\070\000\105"
+               "\000\011\000\033\133\067\155\044\074\062\076\000\123\001\007"
+               "\000\033\115\044\074\065\076\000\123\000\002\000\017\000\124"
+               "\000\006\000\033\133\077\067\154\000\016\001\010\000\033\133"
+               "\077\061\154\033\076\000\140\000\010\000\033\133\155\044\074"
+               "\062\076\000\143\000\010\000\033\133\155\044\074\062\076\000"
+               "\113\001\034\000\033\076\033\133\077\063\154\033\133\077\064"
+               "\154\033\133\077\065\154\033\133\077\067\150\033\133\077\070"
+               "\150\000\120\001\003\000\033\067\000\134\001\114\000\033\133"
+               "\060\045\077\045\160\061\045\160\066\045\174\045\164\073\061"
+               "\045\073\045\077\045\160\062\045\164\073\064\045\073\045\077"
+               "\045\160\061\045\160\063\045\174\045\164\073\067\045\073\045"
+               "\077\045\160\064\045\164\073\065\045\073\155\045\077\045\160"
+               "\071\045\164\016\045\145\017\045\073\044\074\062\076\000\125"
+               "\000\011\000\033\133\155\017\044\074\062\076\000\061\000\002"
+               "\000\016\000\062\000\006\000\033\133\077\067\150\000\017\001"
+               "\010\000\033\133\077\061\150\033\075\000\112\000\011\000\033"
+               "\133\067\155\044\074\062\076\000\116\000\011\000\033\133\064"
+               "\155\044\074\062\076\000\017\000\005\000\033\133\063\147\000"
+               "\221\000\004\000\033\117\171\000\233\000\004\000\033\117\170"
+               "\000\226\000\004\000\033\117\164\000\227\000\004\000\033\117"
+               "\165\000\230\000\004\000\033\117\166\000\231\000\004\000\033"
+               "\117\154\000\232\000\004\000\033\117\167\000\215\000\004\000"
+               "\033\117\115\000\222\000\004\000\033\117\120\000\223\000\004"
+               "\000\033\117\121\000\224\000\004\000\033\117\122\000\225\000"
+               "\004\000\033\117\123\000\170\000\004\000\033\117\161\000\171"
+               "\000\004\000\033\117\163\000\172\000\004\000\033\117\162\000"
+               "\176\000\004\000\033\117\160\000\177\000\004\000\033\117\156"
+               "\000\011\000\001\000\003\000\142\163\000\146\001",
+               897
+       },
+       {
+               "vt220",
+               "\002\006\000\166\164\062\062\060\000\000\000\000\000\024\000"
+               "\006\000\001\000\001\036\000\001\026\000\001\027\000\001\011"
+               "\000\001\044\000\001\022\000\004\000\004\000\120\000\007\000"
+               "\010\000\012\000\030\000\036\000\003\000\367\003\132\000\000"
+               "\000\063\000\140\140\141\141\146\146\147\147\152\152\153\153"
+               "\154\154\155\155\156\156\157\157\160\160\161\161\162\162\163"
+               "\163\164\164\165\165\166\166\167\167\170\170\171\171\172\172"
+               "\173\173\174\174\175\175\176\176\000\003\000\002\000\007\000"
+               "\063\000\005\000\033\133\065\155\000\064\000\005\000\033\133"
+               "\061\155\000\021\000\007\000\033\133\110\033\133\112\000\007"
+               "\000\002\000\015\000\014\000\021\000\033\133\045\151\045\160"
+               "\061\045\144\073\045\160\062\045\144\162\000\063\001\011\000"
+               "\033\133\045\160\061\045\144\104\000\036\000\002\000\010\000"
+               "\056\001\011\000\033\133\045\160\061\045\144\102\000\033\000"
+               "\002\000\012\000\065\001\011\000\033\133\045\160\061\045\144"
+               "\103\000\041\000\004\000\033\133\103\000\032\000\021\000\033"
+               "\133\045\151\045\160\061\045\144\073\045\160\062\045\144\110"
+               "\000\070\001\011\000\033\133\045\160\061\045\144\101\000\043"
+               "\000\004\000\033\133\101\000\054\001\011\000\033\133\045\160"
+               "\061\045\144\120\000\047\000\004\000\033\133\120\000\055\001"
+               "\011\000\033\133\045\160\061\045\144\115\000\050\000\004\000"
+               "\033\133\115\000\122\000\011\000\033\133\045\160\061\045\144"
+               "\130\000\024\000\004\000\033\133\112\000\023\000\004\000\033"
+               "\133\113\000\022\000\005\000\033\133\061\113\000\057\000\004"
+               "\000\033\051\060\000\150\000\022\000\033\133\077\065\150\044"
+               "\074\062\060\060\057\076\033\133\077\065\154\000\034\000\004"
+               "\000\033\133\110\000\166\001\002\000\011\000\153\001\003\000"
+               "\033\110\000\060\001\011\000\033\133\045\160\061\045\144\100"
+               "\000\161\000\030\000\057\165\163\162\057\163\150\141\162\145"
+               "\057\164\141\142\163\145\164\057\166\164\061\060\060\000\062"
+               "\001\011\000\033\133\045\160\061\045\144\114\000\166\000\004"
+               "\000\033\133\114\000\122\001\003\000\033\104\000\157\000\026"
+               "\000\033\133\077\067\150\033\133\076\033\133\077\061\150\033"
+               "\040\106\033\133\077\064\154\000\173\000\002\000\010\000\326"
+               "\000\004\000\033\133\104\000\212\000\004\000\033\133\102\000"
+               "\351\000\004\000\033\133\103\000\015\001\004\000\033\133\101"
+               "\000\222\000\004\000\033\117\120\000\233\000\006\000\033\133"
+               "\062\061\176\000\234\000\006\000\033\133\062\063\176\000\235"
+               "\000\006\000\033\133\062\064\176\000\236\000\006\000\033\133"
+               "\062\065\176\000\237\000\006\000\033\133\062\066\176\000\242"
+               "\000\006\000\033\133\063\061\176\000\243\000\006\000\033\133"
+               "\063\062\176\000\244\000\006\000\033\133\063\063\176\000\223"
+               "\000\004\000\033\117\121\000\245\000\006\000\033\133\063\064"
+               "\176\000\224\000\004\000\033\117\122\000\225\000\004\000\033"
+               "\117\123\000\227\000\006\000\033\133\061\067\176\000\230\000"
+               "\006\000\033\133\061\070\176\000\231\000\006\000\033\133\061"
+               "\071\176\000\232\000\006\000\033\133\062\060\176\000\321\000"
+               "\005\000\033\133\061\176\000\322\000\006\000\033\133\062\070"
+               "\176\000\324\000\005\000\033\133\062\176\000\335\000\005\000"
+               "\033\133\066\176\000\340\000\005\000\033\133\065\176\000\343"
+               "\000\006\000\033\133\062\071\176\000\362\000\005\000\033\133"
+               "\064\176\000\021\001\004\000\160\146\061\000\022\001\004\000"
+               "\160\146\062\000\023\001\004\000\160\146\063\000\024\001\004"
+               "\000\160\146\064\000\100\001\004\000\033\133\151\000\102\001"
+               "\005\000\033\133\064\151\000\103\001\005\000\033\133\065\151"
+               "\000\047\001\003\000\033\105\000\116\001\003\000\033\070\000"
+               "\105\000\005\000\033\133\067\155\000\123\001\003\000\033\115"
+               "\000\123\000\010\000\033\050\102\044\074\064\076\000\124\000"
+               "\006\000\033\133\077\067\154\000\131\000\005\000\033\133\064"
+               "\154\000\140\000\006\000\033\133\062\067\155\000\143\000\006"
+               "\000\033\133\062\064\155\000\112\001\006\000\033\133\077\063"
+               "\154\000\120\001\003\000\033\067\000\134\001\113\000\033\133"
+               "\060\045\077\045\160\066\045\164\073\061\045\073\045\077\045"
+               "\160\062\045\164\073\064\045\073\045\077\045\160\064\045\164"
+               "\073\065\045\073\045\077\045\160\061\045\160\063\045\174\045"
+               "\164\073\067\045\073\155\045\077\045\160\071\045\164\033\050"
+               "\060\045\145\033\050\102\045\073\044\074\062\076\000\125\000"
+               "\007\000\033\133\155\033\050\102\000\061\000\010\000\033\050"
+               "\060\044\074\062\076\000\062\000\006\000\033\133\077\067\150"
+               "\000\073\000\005\000\033\133\064\150\000\112\000\005\000\033"
+               "\133\067\155\000\116\000\005\000\033\133\064\155\000\017\000"
+               "\005\000\033\133\063\147\000\011\000\001\000\003\000\142\163"
+               "\000\146\001",
+               1083
+       },
+       {
+               "wsvt25",
+               "\002\007\000\167\163\166\164\062\065\000\000\000\000\000\027"
+               "\000\007\000\002\000\001\027\000\001\001\000\001\036\000\001"
+               "\026\000\001\011\000\001\044\000\001\036\000\007\000\016\000"
+               "\010\000\004\000\120\000\007\000\010\000\012\000\031\000\025"
+               "\000\002\000\021\000\100\000\036\000\003\000\064\004\140\000"
+               "\157\000\013\000\033\133\162\033\133\062\065\073\061\110\000"
+               "\214\000\005\000\033\133\070\176\000\222\000\006\000\033\133"
+               "\061\061\176\000\233\000\006\000\033\133\062\061\176\000\234"
+               "\000\006\000\033\133\062\063\176\000\235\000\006\000\033\133"
+               "\062\064\176\000\223\000\006\000\033\133\061\062\176\000\224"
+               "\000\006\000\033\133\061\063\176\000\225\000\006\000\033\133"
+               "\061\064\176\000\226\000\006\000\033\133\061\065\176\000\227"
+               "\000\006\000\033\133\061\067\176\000\230\000\006\000\033\133"
+               "\061\070\176\000\231\000\006\000\033\133\061\071\176\000\232"
+               "\000\006\000\033\133\062\060\176\000\323\000\005\000\033\133"
+               "\067\176\000\052\001\004\000\033\133\155\000\132\001\012\000"
+               "\033\133\064\045\160\061\045\144\155\000\133\001\012\000\033"
+               "\133\063\045\160\061\045\144\155\000\000\000\063\000\140\140"
+               "\141\141\146\146\147\147\152\152\153\153\154\154\155\155\156"
+               "\156\157\157\160\160\161\161\162\162\163\163\164\164\165\165"
+               "\166\166\167\167\170\170\171\171\172\172\173\173\174\174\175"
+               "\175\176\176\000\003\000\002\000\007\000\063\000\005\000\033"
+               "\133\065\155\000\064\000\005\000\033\133\061\155\000\021\000"
+               "\007\000\033\133\110\033\133\112\000\007\000\002\000\015\000"
+               "\014\000\021\000\033\133\045\151\045\160\061\045\144\073\045"
+               "\160\062\045\144\162\000\063\001\011\000\033\133\045\160\061"
+               "\045\144\104\000\036\000\002\000\010\000\056\001\011\000\033"
+               "\133\045\160\061\045\144\102\000\033\000\002\000\012\000\065"
+               "\001\011\000\033\133\045\160\061\045\144\103\000\041\000\004"
+               "\000\033\133\103\000\032\000\021\000\033\133\045\151\045\160"
+               "\061\045\144\073\045\160\062\045\144\110\000\070\001\011\000"
+               "\033\133\045\160\061\045\144\101\000\043\000\004\000\033\133"
+               "\101\000\054\001\011\000\033\133\045\160\061\045\144\120\000"
+               "\047\000\004\000\033\133\120\000\055\001\011\000\033\133\045"
+               "\160\061\045\144\115\000\050\000\004\000\033\133\115\000\122"
+               "\000\011\000\033\133\045\160\061\045\144\130\000\024\000\004"
+               "\000\033\133\112\000\023\000\004\000\033\133\113\000\022\000"
+               "\005\000\033\133\061\113\000\057\000\004\000\033\051\060\000"
+               "\150\000\022\000\033\133\077\065\150\044\074\062\060\060\057"
+               "\076\033\133\077\065\154\000\034\000\004\000\033\133\110\000"
+               "\166\001\002\000\011\000\153\001\003\000\033\110\000\060\001"
+               "\011\000\033\133\045\160\061\045\144\100\000\161\000\030\000"
+               "\057\165\163\162\057\163\150\141\162\145\057\164\141\142\163"
+               "\145\164\057\166\164\061\060\060\000\062\001\011\000\033\133"
+               "\045\160\061\045\144\114\000\166\000\004\000\033\133\114\000"
+               "\122\001\003\000\033\104\000\173\000\002\000\010\000\326\000"
+               "\004\000\033\133\104\000\212\000\004\000\033\133\102\000\351"
+               "\000\004\000\033\133\103\000\015\001\004\000\033\133\101\000"
+               "\236\000\006\000\033\133\062\065\176\000\237\000\006\000\033"
+               "\133\062\066\176\000\242\000\006\000\033\133\063\061\176\000"
+               "\243\000\006\000\033\133\063\062\176\000\244\000\006\000\033"
+               "\133\063\063\176\000\245\000\006\000\033\133\063\064\176\000"
+               "\321\000\005\000\033\133\061\176\000\322\000\006\000\033\133"
+               "\062\070\176\000\324\000\005\000\033\133\062\176\000\335\000"
+               "\005\000\033\133\066\176\000\340\000\005\000\033\133\065\176"
+               "\000\343\000\006\000\033\133\062\071\176\000\362\000\005\000"
+               "\033\133\064\176\000\021\001\004\000\160\146\061\000\022\001"
+               "\004\000\160\146\062\000\023\001\004\000\160\146\063\000\024"
+               "\001\004\000\160\146\064\000\100\001\004\000\033\133\151\000"
+               "\102\001\005\000\033\133\064\151\000\103\001\005\000\033\133"
+               "\065\151\000\047\001\003\000\033\105\000\116\001\003\000\033"
+               "\070\000\105\000\005\000\033\133\067\155\000\123\001\003\000"
+               "\033\115\000\123\000\010\000\033\050\102\044\074\064\076\000"
+               "\124\000\006\000\033\133\077\067\154\000\131\000\005\000\033"
+               "\133\064\154\000\140\000\006\000\033\133\062\067\155\000\143"
+               "\000\006\000\033\133\062\064\155\000\112\001\006\000\033\133"
+               "\077\063\154\000\120\001\003\000\033\067\000\134\001\113\000"
+               "\033\133\060\045\077\045\160\066\045\164\073\061\045\073\045"
+               "\077\045\160\062\045\164\073\064\045\073\045\077\045\160\064"
+               "\045\164\073\065\045\073\045\077\045\160\061\045\160\063\045"
+               "\174\045\164\073\067\045\073\155\045\077\045\160\071\045\164"
+               "\033\050\060\045\145\033\050\102\045\073\044\074\062\076\000"
+               "\125\000\007\000\033\133\155\033\050\102\000\061\000\010\000"
+               "\033\050\060\044\074\062\076\000\062\000\006\000\033\133\077"
+               "\067\150\000\073\000\005\000\033\133\064\150\000\112\000\005"
+               "\000\033\133\067\155\000\116\000\005\000\033\133\064\155\000"
+               "\017\000\005\000\033\133\063\147\000\011\000\001\000\003\000"
+               "\142\163\000\146\001",
+               1160
+       },
+       {
+               "xterm",
+               "\002\006\000\170\164\145\162\155\000\000\000\000\000\032\000"
+               "\010\000\032\000\001\001\000\001\002\000\001\016\000\001\036"
+               "\000\001\026\000\001\027\000\001\011\000\001\026\000\005\000"
+               "\016\000\010\000\004\000\120\000\007\000\010\000\012\000\030"
+               "\000\021\000\100\000\004\010\247\000\061\001\011\000\033\133"
+               "\045\160\061\045\144\123\000\360\000\007\000\033\133\063\073"
+               "\062\176\000\363\000\007\000\033\133\061\073\062\106\000\371"
+               "\000\007\000\033\133\061\073\062\110\000\372\000\007\000\033"
+               "\133\062\073\062\176\000\376\000\007\000\033\133\066\073\062"
+               "\176\000\000\001\007\000\033\133\065\073\062\176\000\172\000"
+               "\004\000\033\117\105\000\175\000\004\000\033\133\132\000\326"
+               "\000\004\000\033\117\104\000\212\000\004\000\033\117\102\000"
+               "\351\000\004\000\033\117\103\000\015\001\004\000\033\117\101"
+               "\000\214\000\004\000\033\117\106\000\215\000\004\000\033\117"
+               "\115\000\323\000\004\000\033\117\110\000\324\000\005\000\033"
+               "\133\062\176\000\332\000\004\000\033\133\115\000\335\000\005"
+               "\000\033\133\066\176\000\340\000\005\000\033\133\065\176\000"
+               "\067\001\011\000\033\133\045\160\061\045\144\124\000\222\000"
+               "\004\000\033\117\120\000\233\000\006\000\033\133\062\061\176"
+               "\000\234\000\006\000\033\133\062\063\176\000\235\000\006\000"
+               "\033\133\062\064\176\000\236\000\007\000\033\133\061\073\062"
+               "\120\000\237\000\007\000\033\133\061\073\062\121\000\240\000"
+               "\007\000\033\133\061\073\062\122\000\241\000\007\000\033\133"
+               "\061\073\062\123\000\242\000\010\000\033\133\061\065\073\062"
+               "\176\000\243\000\010\000\033\133\061\067\073\062\176\000\244"
+               "\000\010\000\033\133\061\070\073\062\176\000\223\000\004\000"
+               "\033\117\121\000\245\000\010\000\033\133\061\071\073\062\176"
+               "\000\246\000\010\000\033\133\062\060\073\062\176\000\247\000"
+               "\010\000\033\133\062\061\073\062\176\000\250\000\010\000\033"
+               "\133\062\063\073\062\176\000\251\000\010\000\033\133\062\064"
+               "\073\062\176\000\252\000\007\000\033\133\061\073\065\120\000"
+               "\253\000\007\000\033\133\061\073\065\121\000\254\000\007\000"
+               "\033\133\061\073\065\122\000\255\000\007\000\033\133\061\073"
+               "\065\123\000\256\000\010\000\033\133\061\065\073\065\176\000"
+               "\224\000\004\000\033\117\122\000\257\000\010\000\033\133\061"
+               "\067\073\065\176\000\260\000\010\000\033\133\061\070\073\065"
+               "\176\000\261\000\010\000\033\133\061\071\073\065\176\000\262"
+               "\000\010\000\033\133\062\060\073\065\176\000\263\000\010\000"
+               "\033\133\062\061\073\065\176\000\264\000\010\000\033\133\062"
+               "\063\073\065\176\000\265\000\010\000\033\133\062\064\073\065"
+               "\176\000\266\000\007\000\033\133\061\073\066\120\000\267\000"
+               "\007\000\033\133\061\073\066\121\000\270\000\007\000\033\133"
+               "\061\073\066\122\000\225\000\004\000\033\117\123\000\271\000"
+               "\007\000\033\133\061\073\066\123\000\272\000\010\000\033\133"
+               "\061\065\073\066\176\000\273\000\010\000\033\133\061\067\073"
+               "\066\176\000\274\000\010\000\033\133\061\070\073\066\176\000"
+               "\275\000\010\000\033\133\061\071\073\066\176\000\276\000\010"
+               "\000\033\133\062\060\073\066\176\000\277\000\010\000\033\133"
+               "\062\061\073\066\176\000\300\000\010\000\033\133\062\063\073"
+               "\066\176\000\301\000\010\000\033\133\062\064\073\066\176\000"
+               "\302\000\007\000\033\133\061\073\063\120\000\226\000\006\000"
+               "\033\133\061\065\176\000\303\000\007\000\033\133\061\073\063"
+               "\121\000\304\000\007\000\033\133\061\073\063\122\000\305\000"
+               "\007\000\033\133\061\073\063\123\000\306\000\010\000\033\133"
+               "\061\065\073\063\176\000\307\000\010\000\033\133\061\067\073"
+               "\063\176\000\310\000\010\000\033\133\061\070\073\063\176\000"
+               "\311\000\010\000\033\133\061\071\073\063\176\000\312\000\010"
+               "\000\033\133\062\060\073\063\176\000\313\000\010\000\033\133"
+               "\062\061\073\063\176\000\314\000\010\000\033\133\062\063\073"
+               "\063\176\000\227\000\006\000\033\133\061\067\176\000\315\000"
+               "\010\000\033\133\062\064\073\063\176\000\316\000\007\000\033"
+               "\133\061\073\064\120\000\317\000\007\000\033\133\061\073\064"
+               "\121\000\320\000\007\000\033\133\061\073\064\122\000\230\000"
+               "\006\000\033\133\061\070\176\000\231\000\006\000\033\133\061"
+               "\071\176\000\232\000\006\000\033\133\062\060\176\000\373\000"
+               "\007\000\033\133\061\073\062\104\000\005\001\007\000\033\133"
+               "\061\073\062\103\000\366\000\007\000\033\133\061\073\062\102"
+               "\000\002\001\007\000\033\133\061\073\062\101\000\210\000\005"
+               "\000\033\133\063\176\000\000\000\065\000\140\140\141\141\146"
+               "\146\147\147\151\151\152\152\153\153\154\154\155\155\156\156"
+               "\157\157\160\160\161\161\162\162\163\163\164\164\165\165\166"
+               "\166\167\167\170\170\171\171\172\172\173\173\174\174\175\175"
+               "\176\176\000\003\000\002\000\007\000\063\000\005\000\033\133"
+               "\065\155\000\064\000\005\000\033\133\061\155\000\002\000\004"
+               "\000\033\133\132\000\035\000\007\000\033\133\077\062\065\154"
+               "\000\021\000\010\000\033\133\110\033\133\062\112\000\040\000"
+               "\015\000\033\133\077\061\062\154\033\133\077\062\065\150\000"
+               "\007\000\002\000\015\000\014\000\021\000\033\133\045\151\045"
+               "\160\061\045\144\073\045\160\062\045\144\162\000\063\001\011"
+               "\000\033\133\045\160\061\045\144\104\000\036\000\002\000\010"
+               "\000\056\001\011\000\033\133\045\160\061\045\144\102\000\033"
+               "\000\002\000\012\000\065\001\011\000\033\133\045\160\061\045"
+               "\144\103\000\041\000\004\000\033\133\103\000\032\000\021\000"
+               "\033\133\045\151\045\160\061\045\144\073\045\160\062\045\144"
+               "\110\000\070\001\011\000\033\133\045\160\061\045\144\101\000"
+               "\043\000\004\000\033\133\101\000\044\000\012\000\033\133\077"
+               "\061\062\073\062\065\150\000\054\001\011\000\033\133\045\160"
+               "\061\045\144\120\000\047\000\004\000\033\133\120\000\055\001"
+               "\011\000\033\133\045\160\061\045\144\115\000\050\000\004\000"
+               "\033\133\115\000\122\000\011\000\033\133\045\160\061\045\144"
+               "\130\000\024\000\004\000\033\133\112\000\023\000\004\000\033"
+               "\133\113\000\022\000\005\000\033\133\061\113\000\150\000\022"
+               "\000\033\133\077\065\150\044\074\061\060\060\057\076\033\133"
+               "\077\065\154\000\034\000\004\000\033\133\110\000\027\000\013"
+               "\000\033\133\045\151\045\160\061\045\144\107\000\166\001\002"
+               "\000\011\000\153\001\003\000\033\110\000\060\001\011\000\033"
+               "\133\045\160\061\045\144\100\000\062\001\011\000\033\133\045"
+               "\160\061\045\144\114\000\166\000\004\000\033\133\114\000\122"
+               "\001\002\000\012\000\110\000\005\000\033\133\070\155\000\157"
+               "\000\022\000\033\133\041\160\033\133\077\063\073\064\154\033"
+               "\133\064\154\033\076\000\173\000\002\000\010\000\100\001\004"
+               "\000\033\133\151\000\102\001\005\000\033\133\064\151\000\103"
+               "\001\005\000\033\133\065\151\000\052\001\011\000\033\133\063"
+               "\071\073\064\071\155\000\116\001\003\000\033\070\000\105\000"
+               "\005\000\033\133\067\155\000\123\001\003\000\033\115\000\123"
+               "\000\004\000\033\050\102\000\124\000\006\000\033\133\077\067"
+               "\154\000\126\000\011\000\033\133\077\061\060\064\071\154\000"
+               "\131\000\005\000\033\133\064\154\000\016\001\010\000\033\133"
+               "\077\061\154\033\076\000\036\001\011\000\033\133\077\061\060"
+               "\063\064\154\000\140\000\006\000\033\133\062\067\155\000\143"
+               "\000\006\000\033\133\062\064\155\000\112\001\003\000\033\143"
+               "\000\113\001\022\000\033\133\041\160\033\133\077\063\073\064"
+               "\154\033\133\064\154\033\076\000\120\001\003\000\033\067\000"
+               "\132\001\012\000\033\133\064\045\160\061\045\144\155\000\133"
+               "\001\012\000\033\133\063\045\160\061\045\144\155\000\135\001"
+               "\106\000\033\133\064\045\077\045\160\061\045\173\061\175\045"
+               "\075\045\164\064\045\145\045\160\061\045\173\063\175\045\075"
+               "\045\164\066\045\145\045\160\061\045\173\064\175\045\075\045"
+               "\164\061\045\145\045\160\061\045\173\066\175\045\075\045\164"
+               "\063\045\145\045\160\061\045\144\045\073\155\000\143\001\106"
+               "\000\033\133\063\045\077\045\160\061\045\173\061\175\045\075"
+               "\045\164\064\045\145\045\160\061\045\173\063\175\045\075\045"
+               "\164\066\045\145\045\160\061\045\173\064\175\045\075\045\164"
+               "\061\045\145\045\160\061\045\173\066\175\045\075\045\164\063"
+               "\045\145\045\160\061\045\144\045\073\155\000\134\001\122\000"
+               "\045\077\045\160\071\045\164\033\050\060\045\145\033\050\102"
+               "\045\073\033\133\060\045\077\045\160\066\045\164\073\061\045"
+               "\073\045\077\045\160\062\045\164\073\064\045\073\045\077\045"
+               "\160\061\045\160\063\045\174\045\164\073\067\045\073\045\077"
+               "\045\160\064\045\164\073\065\045\073\045\077\045\160\067\045"
+               "\164\073\070\045\073\155\000\125\000\007\000\033\050\102\033"
+               "\133\155\000\061\000\004\000\033\050\060\000\062\000\006\000"
+               "\033\133\077\067\150\000\065\000\011\000\033\133\077\061\060"
+               "\064\071\150\000\073\000\005\000\033\133\064\150\000\017\001"
+               "\010\000\033\133\077\061\150\033\075\000\037\001\011\000\033"
+               "\133\077\061\060\063\064\150\000\112\000\005\000\033\133\067"
+               "\155\000\116\000\005\000\033\133\064\155\000\017\000\005\000"
+               "\033\133\063\147\000\117\001\013\000\033\133\045\151\045\160"
+               "\061\045\144\144\000\202\001\010\000\033\133\077\061\073\062"
+               "\143\000\200\001\013\000\033\133\045\151\045\144\073\045\144"
+               "\122\000\201\001\005\000\033\133\066\156\000\203\001\004\000"
+               "\033\133\143\000\272\003\070\000\004\000\153\104\116\000\163"
+               "\007\000\033\133\061\073\062\102\000\005\000\153\104\116\063"
+               "\000\163\007\000\033\133\061\073\063\102\000\005\000\153\104"
+               "\116\064\000\163\007\000\033\133\061\073\064\102\000\005\000"
+               "\153\104\116\065\000\163\007\000\033\133\061\073\065\102\000"
+               "\005\000\153\104\116\066\000\163\007\000\033\133\061\073\066"
+               "\102\000\005\000\153\104\116\067\000\163\007\000\033\133\061"
+               "\073\067\102\000\006\000\153\114\106\124\063\000\163\007\000"
+               "\033\133\061\073\063\104\000\006\000\153\114\106\124\064\000"
+               "\163\007\000\033\133\061\073\064\104\000\006\000\153\114\106"
+               "\124\065\000\163\007\000\033\133\061\073\065\104\000\006\000"
+               "\153\114\106\124\066\000\163\007\000\033\133\061\073\066\104"
+               "\000\006\000\153\114\106\124\067\000\163\007\000\033\133\061"
+               "\073\067\104\000\006\000\153\122\111\124\063\000\163\007\000"
+               "\033\133\061\073\063\103\000\006\000\153\122\111\124\064\000"
+               "\163\007\000\033\133\061\073\064\103\000\006\000\153\122\111"
+               "\124\065\000\163\007\000\033\133\061\073\065\103\000\006\000"
+               "\153\122\111\124\066\000\163\007\000\033\133\061\073\066\103"
+               "\000\006\000\153\122\111\124\067\000\163\007\000\033\133\061"
+               "\073\067\103\000\004\000\153\125\120\000\163\007\000\033\133"
+               "\061\073\062\101\000\005\000\153\125\120\063\000\163\007\000"
+               "\033\133\061\073\063\101\000\005\000\153\125\120\064\000\163"
+               "\007\000\033\133\061\073\064\101\000\005\000\153\125\120\065"
+               "\000\163\007\000\033\133\061\073\065\101\000\005\000\153\125"
+               "\120\066\000\163\007\000\033\133\061\073\066\101\000\005\000"
+               "\153\125\120\067\000\163\007\000\033\133\061\073\067\101\000"
+               "\005\000\153\104\103\063\000\163\007\000\033\133\063\073\063"
+               "\176\000\005\000\153\104\103\064\000\163\007\000\033\133\063"
+               "\073\064\176\000\005\000\153\104\103\065\000\163\007\000\033"
+               "\133\063\073\065\176\000\005\000\153\104\103\066\000\163\007"
+               "\000\033\133\063\073\066\176\000\005\000\153\104\103\067\000"
+               "\163\007\000\033\133\063\073\067\176\000\006\000\153\105\116"
+               "\104\063\000\163\007\000\033\133\061\073\063\106\000\006\000"
+               "\153\105\116\104\064\000\163\007\000\033\133\061\073\064\106"
+               "\000\006\000\153\105\116\104\065\000\163\007\000\033\133\061"
+               "\073\065\106\000\006\000\153\105\116\104\066\000\163\007\000"
+               "\033\133\061\073\066\106\000\006\000\153\105\116\104\067\000"
+               "\163\007\000\033\133\061\073\067\106\000\006\000\153\110\117"
+               "\115\063\000\163\007\000\033\133\061\073\063\110\000\006\000"
+               "\153\110\117\115\064\000\163\007\000\033\133\061\073\064\110"
+               "\000\006\000\153\110\117\115\065\000\163\007\000\033\133\061"
+               "\073\065\110\000\006\000\153\110\117\115\066\000\163\007\000"
+               "\033\133\061\073\066\110\000\006\000\153\110\117\115\067\000"
+               "\163\007\000\033\133\061\073\067\110\000\005\000\153\111\103"
+               "\063\000\163\007\000\033\133\062\073\063\176\000\005\000\153"
+               "\111\103\064\000\163\007\000\033\133\062\073\064\176\000\005"
+               "\000\153\111\103\065\000\163\007\000\033\133\062\073\065\176"
+               "\000\005\000\153\111\103\066\000\163\007\000\033\133\062\073"
+               "\066\176\000\005\000\153\111\103\067\000\163\007\000\033\133"
+               "\062\073\067\176\000\006\000\153\116\130\124\063\000\163\007"
+               "\000\033\133\066\073\063\176\000\006\000\153\116\130\124\064"
+               "\000\163\007\000\033\133\066\073\064\176\000\006\000\153\116"
+               "\130\124\065\000\163\007\000\033\133\066\073\065\176\000\006"
+               "\000\153\116\130\124\066\000\163\007\000\033\133\066\073\066"
+               "\176\000\006\000\153\116\130\124\067\000\163\007\000\033\133"
+               "\066\073\067\176\000\006\000\153\120\122\126\063\000\163\007"
+               "\000\033\133\065\073\063\176\000\006\000\153\120\122\126\064"
+               "\000\163\007\000\033\133\065\073\064\176\000\006\000\153\120"
+               "\122\126\065\000\163\007\000\033\133\065\073\065\176\000\006"
+               "\000\153\120\122\126\066\000\163\007\000\033\133\065\073\066"
+               "\176\000\006\000\153\120\122\126\067\000\163\007\000\033\133"
+               "\065\073\067\176\000\003\000\142\163\000\146\001\003\000\101"
+               "\130\000\146\001\005\000\155\145\155\154\000\163\003\000\033"
+               "\154\000\005\000\155\145\155\165\000\163\003\000\033\155\000",
+               3075
+       }
+};
diff --git a/lib/libterminfo/curterm.c b/lib/libterminfo/curterm.c
new file mode 100644 (file)
index 0000000..53efb6c
--- /dev/null
@@ -0,0 +1,95 @@
+/* $NetBSD: curterm.c,v 1.4 2010/02/22 23:05:39 roy Exp $ */
+
+/*
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: curterm.c,v 1.4 2010/02/22 23:05:39 roy Exp $");
+
+#include <assert.h>
+#include <stdlib.h>
+#include <term_private.h>
+#include <term.h>
+#include <termios.h>
+#include <stdio.h>
+TERMINAL *cur_term;
+
+static const speed_t bauds[] = {
+       0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 2400, 4800, 9600,
+       19200, 38400, 57600, 115200, 230400, 460800, 921600
+};
+
+void
+_ti_setospeed(TERMINAL *term)
+{
+       struct termios termios;
+       speed_t os;
+       size_t i;
+
+       _DIAGASSERT(term != NULL);
+       
+       term->_ospeed = 0;
+       if (tcgetattr(term->fildes, &termios) == 0) {
+               os = cfgetospeed(&termios);
+               for (i = 0; i < __arraycount(bauds); i++)
+                       if (bauds[i] == os) {
+                               term->_ospeed = i;
+                               break;
+                       }
+       }
+}
+
+TERMINAL *
+set_curterm(TERMINAL *nterm)
+{
+       TERMINAL *oterm;
+
+       oterm = cur_term;
+       cur_term = nterm;
+
+       ospeed = 0;
+       if (cur_term == NULL)
+               PC = '\0';
+       else {
+               if (pad_char == NULL)
+                       PC = '\0';
+               else
+                       PC = *pad_char;
+               _ti_setospeed(nterm);
+               ospeed = nterm->_ospeed;
+       }
+
+       return oterm;
+}
+
+int
+del_curterm(TERMINAL *oterm)
+{
+
+       _ti_freeterm(oterm);
+       return 0;
+}
diff --git a/lib/libterminfo/genhash b/lib/libterminfo/genhash
new file mode 100755 (executable)
index 0000000..41fa05a
--- /dev/null
@@ -0,0 +1,108 @@
+#!/bin/sh
+# $NetBSD: genhash,v 1.7 2010/10/12 12:57:51 christos Exp $
+
+# Copyright (c) 2009 The NetBSD Foundation, Inc.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Roy Marples.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+# Generate string and hash tables for our terminfo strings in term.h
+# We don't expose the hash or tables directly, but instead via functions.
+# This allows us to freely change how we hash or store our string tables
+# in the future.
+
+set -e
+: ${TOOL_AWK:=awk}
+: ${TOOL_NBPERF:=nbperf}
+: ${TOOL_SED:=sed}
+
+TERMH=${1:-term.h}
+
+genent()
+{
+       local name=$1 NAME=$2 len=
+
+       # Calculate the maximum word length plus terminator
+       len=$($TOOL_SED -e "1,/enum TI${NAME}/d" -e '/};/,$d' \
+            -e 's/.*TICODE_\([^,]*\).*/\1X/' $TERMH | \
+           $TOOL_AWK \
+           'BEGIN {L=0} {if (length($1)>L) L=length($1)} END {print L}')
+
+       echo
+       echo "static const char _ti_${name}ids[][${len}] = {"
+       $TOOL_SED -e "1,/enum TI${NAME}/d" -e '/};/,$d' \
+            -e 's/.*TICODE_\([^,]*\).*/        "\1",/' $TERMH
+       echo "};"
+       echo
+       $TOOL_SED -e "1,/enum TI${NAME}/d" -e '/};/,$d' \
+           -e 's/.*TICODE_\([^,]*\).*/\1/' $TERMH | \
+           $TOOL_NBPERF -sn _ti_${name}hash;
+
+       cat <<EOF
+
+const char *
+_ti_${name}id(ssize_t idx)
+{
+
+       if ((size_t)idx > __arraycount(_ti_${name}ids))
+               return NULL;
+       return _ti_${name}ids[idx];
+}
+
+ssize_t
+_ti_${name}index(const char *key)
+{
+       uint32_t idx;
+
+       idx = _ti_${name}hash((const unsigned char *)key, strlen(key));
+       if (idx > __arraycount(_ti_${name}ids) ||
+           strcmp(key, _ti_${name}ids[idx]) != 0)
+               return -1;
+       return idx;
+}
+EOF
+}
+
+cat <<EOF
+/* \$NetBSD\$ */
+/* DO NOT EDIT
+ * Automatically generated from term.h */
+
+#if HAVE_NBTOOL_CONFIG_H
+#include "nbtool_config.h"
+#endif
+
+#include <sys/cdefs.h>
+__RCSID("\$NetBSD: genhash,v 1.7 2010/10/12 12:57:51 christos Exp $");
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <term_private.h>
+#include <term.h>
+EOF
+
+genent flag FLAG
+genent num NUM
+genent str STR
diff --git a/lib/libterminfo/genman b/lib/libterminfo/genman
new file mode 100755 (executable)
index 0000000..187681c
--- /dev/null
@@ -0,0 +1,69 @@
+#!/bin/sh
+# $NetBSD: genman,v 1.4 2010/10/12 12:57:51 christos Exp $
+
+# Copyright (c) 2009 The NetBSD Foundation, Inc.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Roy Marples.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+# Generate variable tables for terminfo.5 from our source files.
+
+set -e
+: ${TOOL_SED:=sed}
+: ${TOOL_SORT:=sort}
+
+TERMM=${1:-terminfo.5.in}
+TERMH=${2:-term.h}
+TERMC=${3:-termcap_map.c}
+
+gentab()
+{
+       local ti=$1 tc=$2 tab=$3
+
+       # Generate a list of long names and codes
+       $TOOL_SED -n \
+       -e "s/#define t_\([^(]*\).*>$tab\[TICODE_\([^]]*\).*/\1 \2/p" \
+       $ti | $TOOL_SORT | while read name code foo; do
+               cap=$($TOOL_SED -ne "s/.*{ \"\(..\)\", TICODE_$code }.*/\1/p" \
+                   $tc | head -n 1)
+               echo ".It Li \"$name\" Ta Sy \"\\&$code\" Ta Sy \"\\&$cap\""
+       done
+}
+
+boolcaps=$(gentab $TERMH $TERMC flags)
+numcaps=$(gentab $TERMH $TERMC nums)
+strcaps=$(gentab $TERMH $TERMC strs)
+
+echo ".\\\"DO NOT EDIT"
+echo ".\\\"Automatically generated from termcap.5.in"
+echo ".\\\""
+
+while read -r line; do
+       case "$line" in
+       "@BOOLCAPS@")   echo "$boolcaps";;
+       "@NUMCAPS@")    echo "$numcaps";;
+       "@STRCAPS@")    echo "$strcaps";;
+       *)              echo "$line";;
+       esac
+done <$TERMM
diff --git a/lib/libterminfo/genterms b/lib/libterminfo/genterms
new file mode 100755 (executable)
index 0000000..1a83760
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/sh
+# $NetBSD: genterms,v 1.3 2010/10/12 12:57:51 christos Exp $
+
+# Copyright (c) 2010 The NetBSD Foundation, Inc.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Roy Marples.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+# Generate compiled terminfo descriptions to embed into libterminfo
+
+set -e
+: ${TOOL_TIC:=tic}
+: ${NETBSDSRCDIR:=/usr/src}
+: ${TERMINFO:=${NETBSDSRCDIR}/share/terminfo/terminfo}
+
+echo "/* \$NetBSD\$ */"
+echo "/* DO NOT EDIT"
+echo " * Regenerate by doing \`\`make compiled_terms''"
+echo " */"
+echo
+${TOOL_TIC} -Sx ${TERMINFO} ansi dumb vt100 vt220 wsvt25 xterm
diff --git a/lib/libterminfo/genthash b/lib/libterminfo/genthash
new file mode 100755 (executable)
index 0000000..8238ca6
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+# $NetBSD: genthash,v 1.4 2010/03/03 12:09:49 roy Exp $
+
+# Copyright (c) 2009 The NetBSD Foundation, Inc.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Roy Marples.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+# Generate string and hash tables for our termcap strings in termcap.c
+
+set -e
+: ${TOOL_NBPERF:=nbperf}
+: ${TOOL_SED:=sed}
+
+TERMCAPC=${1:-termcap_map.c}
+
+cat <<EOF
+/* \$NetBSD\$ */
+/* DO NOT EDIT
+ * Automatically generated from termcap.c */
+
+#include <sys/cdefs.h>
+__RCSID("\$NetBSD: genthash,v 1.4 2010/03/03 12:09:49 roy Exp $");
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <term_private.h>
+
+EOF
+
+$TOOL_SED -n -e "1,/_ti_cap_flagids/d" -e '/};/,$d' \
+       -e 's/.*"\([^"]*\)".*/\1/p' $TERMCAPC | \
+       $TOOL_NBPERF -s -n _t_flaghash
+echo
+$TOOL_SED -n -e "1,/_ti_cap_numids/d" -e '/};/,$d' \
+       -e 's/.*"\([^"]*\)".*/\1/p' $TERMCAPC | \
+       $TOOL_NBPERF -s -n _t_numhash
+echo
+$TOOL_SED -n -e "1,/_ti_cap_strids/d" -e '/};/,$d' \
+       -e 's/.*"\([^"]*\)".*/\1/p' $TERMCAPC | \
+       $TOOL_NBPERF -s -n _t_strhash
diff --git a/lib/libterminfo/hash.c b/lib/libterminfo/hash.c
new file mode 100644 (file)
index 0000000..37efeee
--- /dev/null
@@ -0,0 +1,705 @@
+/* $NetBSD: hash.c,v 1.4 2010/02/12 10:18:56 roy Exp $ */
+/* DO NOT EDIT
+ * Automatically generated from term.h */
+
+#if HAVE_NBTOOL_CONFIG_H
+#include "nbtool_config.h"
+#endif
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: hash.c,v 1.4 2010/02/12 10:18:56 roy Exp $");
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <term_private.h>
+#include <term.h>
+
+static const char _ti_flagids[][6] = {
+       "bw",
+       "am",
+       "bce",
+       "ccc",
+       "xhp",
+       "xhpa",
+       "cpix",
+       "crxm",
+       "xt",
+       "xenl",
+       "eo",
+       "gn",
+       "hc",
+       "chts",
+       "km",
+       "daisy",
+       "hs",
+       "hls",
+       "in",
+       "lpix",
+       "da",
+       "db",
+       "mir",
+       "msgr",
+       "nxon",
+       "xsb",
+       "npc",
+       "ndscr",
+       "nrrmc",
+       "os",
+       "mc5i",
+       "xvpa",
+       "sam",
+       "eslok",
+       "hz",
+       "ul",
+       "xon",
+};
+
+#include <stdlib.h>
+
+static uint32_t
+_ti_flaghash(const void * __restrict key, size_t keylen)
+{
+       static const uint8_t g[75] = {
+           0x19, 0x08, 0x16, 0x00, 0x00, 0x1e, 0x07, 0x00, 0x1d, 0x00,
+           0x17, 0x00, 0x0a, 0x17, 0x08, 0x09, 0x11, 0x00, 0x00, 0x0a,
+           0x00, 0x13, 0x1a, 0x0f, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00,
+           0x12, 0x0a, 0x00, 0x11, 0x10, 0x09, 0x00, 0x00, 0x00, 0x1b,
+           0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x00,
+           0x00, 0x0d, 0x00, 0x00, 0x04, 0x16, 0x09, 0x00, 0x1a, 0x00,
+           0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+           0x00, 0x1c, 0x05, 0x00, 0x00,
+       };
+       uint32_t h[3];
+
+       mi_vector_hash(key, keylen, 0xd36b2625U, h);
+       return (g[h[0] % 75] + g[h[1] % 75]) % 37;
+}
+
+const char *
+_ti_flagid(ssize_t idx)
+{
+
+       if ((size_t)idx > __arraycount(_ti_flagids))
+               return NULL;
+       return _ti_flagids[idx];
+}
+
+ssize_t
+_ti_flagindex(const char *key)
+{
+       uint32_t idx;
+
+       idx = _ti_flaghash((const unsigned char *)key, strlen(key));
+       if (idx > __arraycount(_ti_flagids) ||
+           strcmp(key, _ti_flagids[idx]) != 0)
+               return -1;
+       return idx;
+}
+
+static const char _ti_numids[][7] = {
+       "bitwin",
+       "bitype",
+       "bufsz",
+       "btns",
+       "cols",
+       "spinh",
+       "spinv",
+       "it",
+       "lh",
+       "lw",
+       "lines",
+       "lm",
+       "ma",
+       "xmc",
+       "colors",
+       "maddr",
+       "mjump",
+       "pairs",
+       "wnum",
+       "mcs",
+       "mls",
+       "ncv",
+       "nlab",
+       "npins",
+       "orc",
+       "orl",
+       "orhi",
+       "orvi",
+       "pb",
+       "cps",
+       "vt",
+       "widcs",
+       "wsl",
+};
+
+#include <stdlib.h>
+
+static uint32_t
+_ti_numhash(const void * __restrict key, size_t keylen)
+{
+       static const uint8_t g[67] = {
+           0x04, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00,
+           0x19, 0x00, 0x0d, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00,
+           0x0b, 0x15, 0x1d, 0x14, 0x00, 0x01, 0x13, 0x1b, 0x14, 0x00,
+           0x19, 0x00, 0x00, 0x02, 0x14, 0x1a, 0x12, 0x00, 0x00, 0x00,
+           0x16, 0x05, 0x00, 0x12, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00,
+           0x19, 0x00, 0x20, 0x00, 0x00, 0x10, 0x17, 0x00, 0x00, 0x0f,
+           0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+       };
+       uint32_t h[3];
+
+       mi_vector_hash(key, keylen, 0x50a11f58U, h);
+       return (g[h[0] % 67] + g[h[1] % 67]) % 33;
+}
+
+const char *
+_ti_numid(ssize_t idx)
+{
+
+       if ((size_t)idx > __arraycount(_ti_numids))
+               return NULL;
+       return _ti_numids[idx];
+}
+
+ssize_t
+_ti_numindex(const char *key)
+{
+       uint32_t idx;
+
+       idx = _ti_numhash((const unsigned char *)key, strlen(key));
+       if (idx > __arraycount(_ti_numids) ||
+           strcmp(key, _ti_numids[idx]) != 0)
+               return -1;
+       return idx;
+}
+
+static const char _ti_strids[][9] = {
+       "acsc",
+       "scesa",
+       "cbt",
+       "bel",
+       "bicr",
+       "binel",
+       "birep",
+       "cr",
+       "cpi",
+       "lpi",
+       "chr",
+       "cvr",
+       "csr",
+       "rmp",
+       "csnm",
+       "tbc",
+       "mgc",
+       "clear",
+       "el1",
+       "el",
+       "ed",
+       "csin",
+       "colornm",
+       "hpa",
+       "cmdch",
+       "cwin",
+       "cup",
+       "cud1",
+       "home",
+       "civis",
+       "cub1",
+       "mrcup",
+       "cnorm",
+       "cuf1",
+       "ll",
+       "cuu1",
+       "cvvis",
+       "defbi",
+       "defc",
+       "dch1",
+       "dl1",
+       "devt",
+       "dial",
+       "dsl",
+       "dclk",
+       "dispc",
+       "hd",
+       "enacs",
+       "endbi",
+       "smacs",
+       "smam",
+       "blink",
+       "bold",
+       "smcup",
+       "smdc",
+       "dim",
+       "swidm",
+       "sdrfq",
+       "ehhlm",
+       "smir",
+       "sitm",
+       "elhlm",
+       "slm",
+       "elohlm",
+       "smicm",
+       "snlq",
+       "snrmq",
+       "smpch",
+       "prot",
+       "rev",
+       "erhlm",
+       "smsc",
+       "invis",
+       "sshm",
+       "smso",
+       "ssubm",
+       "ssupm",
+       "ethlm",
+       "smul",
+       "sum",
+       "evhlm",
+       "smxon",
+       "ech",
+       "rmacs",
+       "rmam",
+       "sgr0",
+       "rmcup",
+       "rmdc",
+       "rwidm",
+       "rmir",
+       "ritm",
+       "rlm",
+       "rmicm",
+       "rmpch",
+       "rmsc",
+       "rshm",
+       "rmso",
+       "rsubm",
+       "rsupm",
+       "rmul",
+       "rum",
+       "rmxon",
+       "pause",
+       "hook",
+       "flash",
+       "ff",
+       "fsl",
+       "getm",
+       "wingo",
+       "hup",
+       "is1",
+       "is2",
+       "is3",
+       "if",
+       "iprog",
+       "initc",
+       "initp",
+       "ich1",
+       "il1",
+       "ip",
+       "ka1",
+       "ka3",
+       "kb2",
+       "kbs",
+       "kbeg",
+       "kcbt",
+       "kc1",
+       "kc3",
+       "kcan",
+       "ktbc",
+       "kclr",
+       "kclo",
+       "kcmd",
+       "kcpy",
+       "kcrt",
+       "kctab",
+       "kdch1",
+       "kdl1",
+       "kcud1",
+       "krmir",
+       "kend",
+       "kent",
+       "kel",
+       "ked",
+       "kext",
+       "kf0",
+       "kf1",
+       "kf2",
+       "kf3",
+       "kf4",
+       "kf5",
+       "kf6",
+       "kf7",
+       "kf8",
+       "kf9",
+       "kf10",
+       "kf11",
+       "kf12",
+       "kf13",
+       "kf14",
+       "kf15",
+       "kf16",
+       "kf17",
+       "kf18",
+       "kf19",
+       "kf20",
+       "kf21",
+       "kf22",
+       "kf23",
+       "kf24",
+       "kf25",
+       "kf26",
+       "kf27",
+       "kf28",
+       "kf29",
+       "kf30",
+       "kf31",
+       "kf32",
+       "kf33",
+       "kf34",
+       "kf35",
+       "kf36",
+       "kf37",
+       "kf38",
+       "kf39",
+       "kf40",
+       "kf41",
+       "kf42",
+       "kf43",
+       "kf44",
+       "kf45",
+       "kf46",
+       "kf47",
+       "kf48",
+       "kf49",
+       "kf50",
+       "kf51",
+       "kf52",
+       "kf53",
+       "kf54",
+       "kf55",
+       "kf56",
+       "kf57",
+       "kf58",
+       "kf59",
+       "kf60",
+       "kf61",
+       "kf62",
+       "kf63",
+       "kfnd",
+       "khlp",
+       "khome",
+       "kich1",
+       "kil1",
+       "kcub1",
+       "kll",
+       "kmrk",
+       "kmsg",
+       "kmous",
+       "kmov",
+       "knxt",
+       "knp",
+       "kopn",
+       "kopt",
+       "kpp",
+       "kprv",
+       "kprt",
+       "krdo",
+       "kref",
+       "krfr",
+       "krpl",
+       "krst",
+       "kres",
+       "kcuf1",
+       "ksav",
+       "kBEG",
+       "kCAN",
+       "kCMD",
+       "kCPY",
+       "kCRT",
+       "kDC",
+       "kDL",
+       "kslt",
+       "kEND",
+       "kEOL",
+       "kEXT",
+       "kind",
+       "kFND",
+       "kHLP",
+       "kHOM",
+       "kIC",
+       "kLFT",
+       "kMSG",
+       "kMOV",
+       "kNXT",
+       "kOPT",
+       "kPRV",
+       "kPRT",
+       "kri",
+       "kRDO",
+       "kRPL",
+       "kRIT",
+       "kRES",
+       "kSAV",
+       "kSPD",
+       "khts",
+       "kUND",
+       "kspd",
+       "kund",
+       "kcuu1",
+       "rmkx",
+       "smkx",
+       "lf0",
+       "lf1",
+       "lf2",
+       "lf3",
+       "lf4",
+       "lf5",
+       "lf6",
+       "lf7",
+       "lf8",
+       "lf9",
+       "lf10",
+       "fln",
+       "rmln",
+       "smln",
+       "rmm",
+       "smm",
+       "mhpa",
+       "mcud1",
+       "mcub1",
+       "mcuf1",
+       "mvpa",
+       "mcuu1",
+       "minfo",
+       "nel",
+       "porder",
+       "oc",
+       "op",
+       "pad",
+       "dch",
+       "dl",
+       "cud",
+       "mcud",
+       "ich",
+       "indn",
+       "il",
+       "cub",
+       "mcub",
+       "cuf",
+       "mcuf",
+       "rin",
+       "cuu",
+       "mcuu",
+       "pctrm",
+       "pfkey",
+       "pfloc",
+       "pfxl",
+       "pfx",
+       "pln",
+       "mc0",
+       "mc5p",
+       "mc4",
+       "mc5",
+       "pulse",
+       "qdial",
+       "rmclk",
+       "rep",
+       "rfi",
+       "reqmp",
+       "rs1",
+       "rs2",
+       "rs3",
+       "rf",
+       "rc",
+       "vpa",
+       "sc",
+       "scesc",
+       "ind",
+       "ri",
+       "scs",
+       "s0ds",
+       "s1ds",
+       "s2ds",
+       "s3ds",
+       "sgr1",
+       "setab",
+       "setaf",
+       "sgr",
+       "setb",
+       "smgb",
+       "smgbp",
+       "sclk",
+       "setcolor",
+       "scp",
+       "setf",
+       "smgl",
+       "smglp",
+       "smglr",
+       "slines",
+       "slength",
+       "smgr",
+       "smgrp",
+       "hts",
+       "smgtb",
+       "smgt",
+       "smgtp",
+       "wind",
+       "sbim",
+       "scsd",
+       "rbim",
+       "rcsd",
+       "subcs",
+       "supcs",
+       "ht",
+       "docr",
+       "tsl",
+       "tone",
+       "u0",
+       "u1",
+       "u2",
+       "u3",
+       "u4",
+       "u5",
+       "u6",
+       "u7",
+       "u8",
+       "u9",
+       "uc",
+       "hu",
+       "wait",
+       "xoffc",
+       "xonc",
+       "zerom",
+};
+
+#include <stdlib.h>
+
+static uint32_t
+_ti_strhash(const void * __restrict key, size_t keylen)
+{
+       static const uint16_t g[789] = {
+           0x0000, 0x00cd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0094,
+           0x0000, 0x011b, 0x00a0, 0x0094, 0x002f, 0x00aa, 0x0026, 0x004b,
+           0x0000, 0x0163, 0x0171, 0x0000, 0x0000, 0x0064, 0x0019, 0x0000,
+           0x009b, 0x0113, 0x00ed, 0x007e, 0x0000, 0x0000, 0x0000, 0x002d,
+           0x0000, 0x00f4, 0x0000, 0x00cc, 0x00df, 0x0170, 0x0000, 0x0000,
+           0x0179, 0x0018, 0x0000, 0x013b, 0x0000, 0x0028, 0x0000, 0x0000,
+           0x00ef, 0x0000, 0x0137, 0x0061, 0x0000, 0x0000, 0x00ce, 0x00df,
+           0x00f0, 0x001f, 0x0074, 0x0000, 0x0000, 0x008f, 0x0069, 0x0000,
+           0x0134, 0x0000, 0x00ac, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000,
+           0x0012, 0x0027, 0x0000, 0x0110, 0x0000, 0x0000, 0x0000, 0x0061,
+           0x00a7, 0x0000, 0x0061, 0x0000, 0x0000, 0x0096, 0x0000, 0x00e5,
+           0x0000, 0x00d1, 0x0017, 0x0000, 0x0000, 0x00bc, 0x00d6, 0x0000,
+           0x0182, 0x00d7, 0x012d, 0x0000, 0x00e2, 0x00b9, 0x0159, 0x0000,
+           0x001c, 0x00cc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0031, 0x0106, 0x0087, 0x0157, 0x001d, 0x011a, 0x0119,
+           0x0000, 0x0000, 0x0000, 0x012b, 0x0000, 0x011b, 0x0000, 0x0154,
+           0x0000, 0x00ee, 0x00ad, 0x00f8, 0x0066, 0x0000, 0x0010, 0x0000,
+           0x0064, 0x000e, 0x0052, 0x0000, 0x016a, 0x0000, 0x0148, 0x0000,
+           0x0000, 0x0000, 0x00a4, 0x0000, 0x0000, 0x016d, 0x000b, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x0058, 0x0091, 0x0000, 0x0022, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x0026, 0x011a, 0x00a4, 0x013a,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x0086, 0x0000, 0x00c0, 0x011f,
+           0x0000, 0x0093, 0x0000, 0x0000, 0x0042, 0x0174, 0x0101, 0x0000,
+           0x0065, 0x0086, 0x0000, 0x0000, 0x00e8, 0x0022, 0x000d, 0x0000,
+           0x008e, 0x000d, 0x0000, 0x008b, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0022, 0x0000, 0x011d, 0x0000, 0x0000, 0x0000, 0x010e, 0x0000,
+           0x0000, 0x0000, 0x0060, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0014, 0x00b3, 0x0000, 0x002e, 0x0051, 0x0000, 0x0102, 0x008e,
+           0x012b, 0x0145, 0x004c, 0x0000, 0x001e, 0x00fa, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x00aa, 0x0000, 0x0000, 0x0000, 0x0103, 0x00a4,
+           0x003e, 0x0000, 0x0114, 0x0028, 0x005e, 0x015d, 0x00e7, 0x0044,
+           0x0000, 0x0000, 0x00c6, 0x008f, 0x0000, 0x00eb, 0x0000, 0x0000,
+           0x0000, 0x0169, 0x0000, 0x0110, 0x0093, 0x0000, 0x012c, 0x0178,
+           0x0000, 0x0000, 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0158,
+           0x004d, 0x009c, 0x0186, 0x009b, 0x0000, 0x0163, 0x007c, 0x0078,
+           0x0000, 0x0000, 0x0172, 0x00d2, 0x0000, 0x0000, 0x00fc, 0x0000,
+           0x0000, 0x0000, 0x0133, 0x0104, 0x017e, 0x0162, 0x0050, 0x0000,
+           0x0023, 0x00c0, 0x0070, 0x0000, 0x0000, 0x0000, 0x0025, 0x0001,
+           0x0184, 0x0053, 0x0133, 0x0000, 0x0000, 0x0000, 0x0048, 0x0075,
+           0x0000, 0x00b2, 0x0056, 0x002c, 0x0000, 0x011c, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x0166, 0x011b, 0x0000, 0x0039, 0x0020,
+           0x0000, 0x0000, 0x0000, 0x00dc, 0x0048, 0x0000, 0x0076, 0x0169,
+           0x00d7, 0x002a, 0x0032, 0x0013, 0x0153, 0x012f, 0x009c, 0x0041,
+           0x002f, 0x0000, 0x0000, 0x012e, 0x0000, 0x0000, 0x00dd, 0x0000,
+           0x0138, 0x000b, 0x0030, 0x008d, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0039, 0x017a, 0x00c5, 0x0100, 0x0000, 0x0000, 0x005c, 0x001f,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x0110, 0x003e, 0x00a1, 0x0000,
+           0x0081, 0x0000, 0x0000, 0x0000, 0x00dd, 0x0142, 0x00c1, 0x0000,
+           0x0035, 0x0123, 0x0178, 0x00be, 0x015e, 0x0161, 0x0188, 0x0000,
+           0x0000, 0x0149, 0x0123, 0x0000, 0x0000, 0x0185, 0x0000, 0x0000,
+           0x0000, 0x004e, 0x0163, 0x0077, 0x00fa, 0x0000, 0x007b, 0x0006,
+           0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0158, 0x00d6,
+           0x00b0, 0x0180, 0x0003, 0x0000, 0x0000, 0x0000, 0x0136, 0x0045,
+           0x017e, 0x0000, 0x0000, 0x0000, 0x0126, 0x0090, 0x011b, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x017b, 0x0000, 0x0053, 0x0000,
+           0x005c, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x007e, 0x014e,
+           0x0035, 0x00ed, 0x0000, 0x00d1, 0x00d8, 0x0142, 0x0168, 0x000a,
+           0x00d0, 0x0000, 0x0000, 0x0000, 0x00d9, 0x0000, 0x0000, 0x0087,
+           0x0000, 0x008a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0112, 0x006c,
+           0x011d, 0x0177, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x001e,
+           0x0177, 0x00c4, 0x0000, 0x0000, 0x0000, 0x0014, 0x00c7, 0x00ae,
+           0x0042, 0x0180, 0x0075, 0x0000, 0x011c, 0x0064, 0x00a3, 0x00bc,
+           0x0001, 0x0000, 0x0000, 0x0016, 0x00c3, 0x00e4, 0x0009, 0x0000,
+           0x0000, 0x006b, 0x013c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x00fa, 0x0000, 0x0000, 0x0000, 0x0117, 0x0000, 0x007c, 0x0060,
+           0x0149, 0x0059, 0x00d4, 0x014e, 0x000a, 0x014f, 0x0000, 0x0000,
+           0x0000, 0x00b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0121,
+           0x0000, 0x0000, 0x0000, 0x007d, 0x0000, 0x0000, 0x001c, 0x0000,
+           0x0000, 0x00f9, 0x0000, 0x003b, 0x00ea, 0x0000, 0x00ad, 0x0000,
+           0x0000, 0x0000, 0x0155, 0x0000, 0x0141, 0x0000, 0x0000, 0x0000,
+           0x0187, 0x004b, 0x009f, 0x0000, 0x0114, 0x0000, 0x00dd, 0x0000,
+           0x0066, 0x0000, 0x0136, 0x0135, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x001e, 0x0000, 0x0062, 0x0146, 0x0033, 0x0071, 0x0000,
+           0x0000, 0x010d, 0x004a, 0x0133, 0x0000, 0x0000, 0x0076, 0x0111,
+           0x0000, 0x00ba, 0x0000, 0x0000, 0x0000, 0x0038, 0x001d, 0x0158,
+           0x0072, 0x00a3, 0x0000, 0x008c, 0x0008, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x00ea, 0x0000, 0x003f,
+           0x0000, 0x0000, 0x0000, 0x004c, 0x0000, 0x00f9, 0x0000, 0x0000,
+           0x0000, 0x0147, 0x0182, 0x008f, 0x0156, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0011, 0x0000, 0x0102, 0x0040, 0x0000, 0x0000,
+           0x0130, 0x0000, 0x0000, 0x0000, 0x0126, 0x0026, 0x0145, 0x0000,
+           0x0000, 0x00ab, 0x0000, 0x0175, 0x0113, 0x0117, 0x010f, 0x000f,
+           0x0000, 0x00e3, 0x012e, 0x0000, 0x0000, 0x00f5, 0x0020, 0x0000,
+           0x0000, 0x00a8, 0x0000, 0x0000, 0x012a, 0x009f, 0x0085, 0x0000,
+           0x00b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0108,
+           0x00cb, 0x0000, 0x0000, 0x0000, 0x0053, 0x0000, 0x007f, 0x0000,
+           0x008c, 0x0113, 0x0000, 0x0000, 0x0156, 0x0169, 0x0000, 0x0009,
+           0x0000, 0x0073, 0x0000, 0x007e, 0x0000, 0x0000, 0x0000, 0x00eb,
+           0x0000, 0x0153, 0x0084, 0x0000, 0x0000, 0x0148, 0x0000, 0x0000,
+           0x011c, 0x0000, 0x00ec, 0x0000, 0x0000, 0x015a, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x012a, 0x0000, 0x0000, 0x015d, 0x0000, 0x00ae,
+           0x0000, 0x0000, 0x00db, 0x0000, 0x0000, 0x0000, 0x0000, 0x0101,
+           0x0067, 0x0000, 0x010c, 0x0000, 0x0032, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0167, 0x0000, 0x00e4, 0x0000, 0x00a2, 0x0000,
+           0x0067, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0181, 0x0000,
+           0x015b, 0x0046, 0x0000, 0x0000, 0x0000, 0x00fd, 0x0000, 0x0000,
+           0x00a8, 0x0000, 0x0008, 0x00a6, 0x00b5, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x006b, 0x0000, 0x0000, 0x00b1, 0x00a2,
+           0x0000, 0x0000, 0x0000, 0x0166, 0x0000,
+       };
+       uint32_t h[3];
+
+       mi_vector_hash(key, keylen, 0x8e1051e9U, h);
+       return (g[h[0] % 789] + g[h[1] % 789]) % 394;
+}
+
+const char *
+_ti_strid(ssize_t idx)
+{
+
+       if ((size_t)idx > __arraycount(_ti_strids))
+               return NULL;
+       return _ti_strids[idx];
+}
+
+ssize_t
+_ti_strindex(const char *key)
+{
+       uint32_t idx;
+
+       idx = _ti_strhash((const unsigned char *)key, strlen(key));
+       if (idx > __arraycount(_ti_strids) ||
+           strcmp(key, _ti_strids[idx]) != 0)
+               return -1;
+       return idx;
+}
diff --git a/lib/libterminfo/minix-config.inc b/lib/libterminfo/minix-config.inc
new file mode 100644 (file)
index 0000000..0c6a321
--- /dev/null
@@ -0,0 +1,10 @@
+NETBSDSRCDIR=  ${MINIXSRCDIR}
+NETBSDINCLUDES= /usr/include/
+MACHINE_ARCH?=         i386
+
+CPPFLAGS+=     -D_NETBSD_SOURCE
+
+MKLINKLIB=     yes
+MKPROFILE=     no
+MKPIC=         no
+
diff --git a/lib/libterminfo/minix-port.patch b/lib/libterminfo/minix-port.patch
new file mode 100644 (file)
index 0000000..59e4570
--- /dev/null
@@ -0,0 +1,25 @@
+diff -ru nbsdsrc/src/lib/libterminfo/Makefile lib/libterminfo/Makefile
+--- nbsdsrc/src/lib/libterminfo/Makefile
++++ lib/libterminfo/Makefile
+@@ -1,6 +1,11 @@
+ #     $NetBSD: Makefile,v 1.12 2010/07/06 05:59:53 mrg Exp $
++.if defined(__MINIX)
++.include "minix-config.inc"
++USE_SHLIBDIR= no
++.else
+ USE_SHLIBDIR= yes
++.endif
+ LIB=          terminfo
+ WARNS=                4
+@@ -54,7 +59,9 @@
+ gen: hash compiled_terms man
+ .include <bsd.own.mk>
++.if !defined(__MINIX)
+ .include <bsd.shlib.mk>
++.endif
+ .if ${MKLINKLIB} != "no"
+ SYMLINKS+=    libterminfo.a ${LIBDIR}/libtermcap.a
diff --git a/lib/libterminfo/setupterm.c b/lib/libterminfo/setupterm.c
new file mode 100644 (file)
index 0000000..304f5ed
--- /dev/null
@@ -0,0 +1,126 @@
+/* $NetBSD: setupterm.c,v 1.2 2010/02/11 00:27:09 roy Exp $ */
+
+/*
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: setupterm.c,v 1.2 2010/02/11 00:27:09 roy Exp $");
+
+#include <assert.h>
+#include <err.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <strings.h>
+#include <unistd.h>
+#include <term_private.h>
+#include <term.h>
+
+#define reterr(code, msg)                                                    \
+       do {                                                                  \
+               if (errret == NULL)                                           \
+                       errx(EXIT_FAILURE, msg);                              \
+               else {                                                        \
+                       *errret = code;                                       \
+                       return ERR;                                           \
+               }                                                             \
+       } while (0 /* CONSTCOND */)
+
+#define reterrarg(code, msg, arg) \
+       do {                                                                  \
+               if (errret == NULL)                                           \
+                       errx(EXIT_FAILURE, msg, arg);                         \
+               else {                                                        \
+                       *errret = code;                                       \
+                       return ERR;                                           \
+               }                                                             \
+       } while (0 /* CONSTCOND */)
+
+
+int
+ti_setupterm(TERMINAL **nterm, const char *term, int fildes, int *errret)
+{
+       int error;
+
+       _DIAGASSERT(nterm != NULL);
+
+               if (term == NULL)
+               term = getenv("TERM");
+       if (term == NULL || *term == '\0') {
+               *nterm = NULL;
+               reterr(0, "TERM environment variable not set");
+       }
+       if (fildes == STDOUT_FILENO && !isatty(fildes))
+               fildes = STDERR_FILENO;
+       
+       *nterm = calloc(1, sizeof(**nterm));
+       if (*nterm == NULL)
+               reterr(-1, "not enough memory to create terminal structure");
+
+       error = _ti_getterm(*nterm, term, 0);
+       if (error != 1) {
+               free(*nterm);
+               *nterm = NULL;
+               switch (error) {
+               case -1:
+                       reterr(error, "cannot access the terminfo database");
+                       /* NOTREACHED */
+               case 0:
+                       reterrarg(error,
+                           "%s: terminal not listed in terminfo datase",
+                           term);
+                       /* NOTREACHED */
+               default:
+                       reterr(-1, "unknown error");
+                       /* NOTREACHED */
+               }
+       }
+       
+       (*nterm)->fildes = fildes;
+       _ti_setospeed(*nterm);
+       if (t_generic_type(*nterm))
+               reterrarg(0, "%s: generic terminal", term);
+       if (t_hard_copy(*nterm))
+               reterrarg(1, "%s: hardcopy terminal", term);
+       /* POSIX requires 1 for success */
+       if (errret)
+               *errret = 1;
+       return OK;
+}
+
+int
+setupterm(const char *term, int fildes, int *errret)
+{
+       TERMINAL *nterm;
+       int ret;
+
+       if (errret != NULL)
+               *errret = ERR;
+       ret = ti_setupterm(&nterm, term, fildes, errret);
+       if (nterm != NULL)
+               set_curterm(nterm);
+       return ret;
+}
diff --git a/lib/libterminfo/shlib_version b/lib/libterminfo/shlib_version
new file mode 100644 (file)
index 0000000..9592ee5
--- /dev/null
@@ -0,0 +1,5 @@
+#      $NetBSD: shlib_version,v 1.1 2010/02/03 15:16:32 roy Exp $
+#      Remember to update distrib/sets/lists/base/shl.* when changing
+#
+major=1
+minor=0
diff --git a/lib/libterminfo/term.c b/lib/libterminfo/term.c
new file mode 100644 (file)
index 0000000..745510c
--- /dev/null
@@ -0,0 +1,418 @@
+/* $NetBSD: term.c,v 1.11 2010/02/26 00:09:00 roy Exp $ */
+
+/*
+ * Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: term.c,v 1.11 2010/02/26 00:09:00 roy Exp $");
+
+#include <sys/stat.h>
+
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <ndbm.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <term_private.h>
+#include <term.h>
+
+#define _PATH_TERMINFO         "/usr/share/misc/terminfo"
+
+static char database[PATH_MAX];
+static char pathbuf[PATH_MAX];
+const char *_ti_database;
+
+/* Include a generated list of pre-compiled terminfo descriptions. */
+#include "compiled_terms.c"
+
+static int
+_ti_readterm(TERMINAL *term, const char *cap, size_t caplen, int flags)
+{
+       uint8_t ver;
+       uint16_t ind, num;
+       size_t len;
+       TERMUSERDEF *ud;
+
+       ver = *cap++;
+       /* Only read version 1 and 2 structures */
+       if (ver != 1 && ver != 2) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       term->flags = calloc(TIFLAGMAX + 1, sizeof(char));
+       if (term->flags == NULL)
+               goto err;
+       term->nums = malloc((TINUMMAX + 1) * sizeof(short));
+       if (term->nums == NULL)
+               goto err;
+       memset(term->nums, (short)-1, (TINUMMAX + 1) * sizeof(short));
+       term->strs = calloc(TISTRMAX + 1, sizeof(char *));
+       if (term->strs == NULL)
+               goto err;
+       term->_arealen = caplen;
+       term->_area = malloc(term->_arealen);
+       if (term->_area == NULL)
+               goto err;
+       memcpy(term->_area, cap, term->_arealen);
+
+       cap = term->_area;
+       len = le16dec(cap);
+       cap += sizeof(uint16_t);
+       term->name = cap;
+       cap += len;
+       if (ver == 1)
+               term->_alias = NULL;
+       else {
+               len = le16dec(cap);
+               cap += sizeof(uint16_t);
+               if (len == 0)
+                       term->_alias = NULL;
+               else {
+                       term->_alias = cap;
+                       cap += len;
+               }
+       }
+       len = le16dec(cap);
+       cap += sizeof(uint16_t);
+       if (len == 0)
+               term->desc = NULL;
+       else {
+               term->desc = cap;
+               cap += len;
+       }
+
+       num = le16dec(cap);
+       cap += sizeof(uint16_t);
+       if (num != 0) {
+               num = le16dec(cap);
+               cap += sizeof(uint16_t);
+               for (; num != 0; num--) {
+                       ind = le16dec(cap);
+                       cap += sizeof(uint16_t);
+                       term->flags[ind] = *cap++;
+                       if (flags == 0 && !VALID_BOOLEAN(term->flags[ind]))
+                               term->flags[ind] = 0;
+               }
+       }
+       
+       num = le16dec(cap);
+       cap += sizeof(uint16_t);
+       if (num != 0) {
+               num = le16dec(cap);
+               cap += sizeof(uint16_t);
+               for (; num != 0; num--) {
+                       ind = le16dec(cap);
+                       cap += sizeof(uint16_t);
+                       term->nums[ind] = le16dec(cap);
+                       if (flags == 0 && !VALID_NUMERIC(term->nums[ind]))
+                               term->nums[ind] = ABSENT_NUMERIC;
+                       cap += sizeof(uint16_t);
+               }
+       }
+       
+       num = le16dec(cap);
+       cap += sizeof(uint16_t);
+       if (num != 0) {
+               num = le16dec(cap);
+               cap += sizeof(uint16_t);
+               for (; num != 0; num--) {
+                       ind = le16dec(cap);
+                       cap += sizeof(uint16_t);
+                       len = le16dec(cap);
+                       cap += sizeof(uint16_t);
+                       if (len > 0)
+                               term->strs[ind] = cap;
+                       else if (flags == 0)
+                               term->strs[ind] = ABSENT_STRING;
+                       else
+                               term->strs[ind] = CANCELLED_STRING;
+                       cap += len;
+               }
+       }
+       
+       num = le16dec(cap);
+       cap += sizeof(uint16_t);
+       if (num != 0) {
+               term->_nuserdefs = le16dec(cap);
+               term->_userdefs = malloc(sizeof(*term->_userdefs) * num);
+               cap += sizeof(uint16_t);
+               for (num = 0; num < term->_nuserdefs; num++) {
+                       ud = &term->_userdefs[num];
+                       len = le16dec(cap);
+                       cap += sizeof(uint16_t);
+                       ud->id = cap;
+                       cap += len;
+                       ud->type = *cap++;
+                       switch (ud->type) {
+                       case 'f':
+                               ud->flag = *cap++;
+                               if (flags == 0 &&
+                                   !VALID_BOOLEAN(ud->flag))
+                                       ud->flag = 0;
+                               ud->num = ABSENT_NUMERIC;
+                               ud->str = ABSENT_STRING;
+                               break;
+                       case 'n':
+                               ud->flag = ABSENT_BOOLEAN;
+                               ud->num = le16dec(cap);
+                               if (flags == 0 &&
+                                   !VALID_NUMERIC(ud->num))
+                                       ud->num = ABSENT_NUMERIC;
+                               ud->str = ABSENT_STRING;
+                               cap += sizeof(uint16_t);
+                               break;
+                       case 's':
+                               ud->flag = ABSENT_BOOLEAN;
+                               ud->num = ABSENT_NUMERIC;
+                               len = le16dec(cap);
+                               cap += sizeof(uint16_t);
+                               if (len > 0)
+                                       ud->str = cap;
+                               else if (flags == 0)
+                                       ud->str = ABSENT_STRING;
+                               else
+                                       ud->str = CANCELLED_STRING;
+                               cap += len;
+                               break;
+                       default:
+                               errno = EINVAL;
+                               goto err;
+                       }
+               }
+       }
+       return 1;
+       
+err:
+       _ti_freeterm(term);
+       return -1;
+}
+
+static int
+_ti_dbgetterm(TERMINAL *term, const char *path, const char *name, int flags)
+{
+       DBM *db;
+       datum dt;
+       char *p;
+       int r;
+
+       db = dbm_open(path, O_RDONLY, 0644);
+       if (db == NULL)
+               return -1;
+       strlcpy(database, path, sizeof(database));
+       _ti_database = database;
+       dt.dptr = (void *)__UNCONST(name);
+       dt.dsize = strlen(name);
+       dt = dbm_fetch(db, dt);
+       if (dt.dptr == NULL) {
+               dbm_close(db);
+               return 0;
+       }
+
+       for (;;) {
+               p = (char *)dt.dptr;
+               if (*p++ != 0) /* not alias */
+                       break;
+               dt.dsize = le16dec(p) - 1;
+               p += sizeof(uint16_t);
+               dt.dptr = p;
+               dt = dbm_fetch(db, dt);
+               if (dt.dptr == NULL) {
+                       dbm_close(db);
+                       return 0;
+               }
+       }
+               
+       r = _ti_readterm(term, (char *)dt.dptr, dt.dsize, flags);
+       dbm_close(db);
+       return r;
+}
+
+static int
+_ti_dbgettermp(TERMINAL *term, const char *path, const char *name, int flags)
+{
+       const char *p;
+       size_t l;
+       int r, e;
+
+       e = -1;
+       r = 0;
+       do {
+               for (p = path; *path != '\0' && *path != ':'; path++)
+                       continue;
+               l = path - p;
+               if (l != 0 && l + 1 < sizeof(pathbuf)) {
+                       memcpy(pathbuf, p, l);
+                       pathbuf[l] = '\0';
+                       r = _ti_dbgetterm(term, pathbuf, name, flags);
+                       if (r == 1)
+                               return 1;
+                       if (r == 0)
+                               e = 0;
+               }
+       } while (*path++ == ':');
+       return e;
+}
+
+static int
+ticcmp(const TIC *tic, const char *name)
+{
+       char *alias, *s;
+       size_t len, l;
+
+       if (strcmp(tic->name, name) == 0)
+               return 0;
+       if (tic->alias == NULL)
+               return -1;
+
+       len = strlen(name);
+       alias = tic->alias;
+       while (*alias != '\0') {
+               s = strchr(alias, '|');
+               if (s == NULL)
+                       l = strlen(alias);
+               else
+                       l = s - alias;
+               if (len == l && strncmp(alias, name, l) == 0)
+                       return 0;
+               if (s == NULL)
+                       break;
+               alias = s + 1;
+       }
+       return 1;
+}
+
+static int
+_ti_findterm(TERMINAL *term, const char *name, int flags)
+{
+       int r;
+       char *c, *e, h[PATH_MAX];
+       TIC *tic;
+       uint8_t *f;
+       ssize_t len;
+
+       _DIAGASSERT(term != NULL);
+       _DIAGASSERT(name != NULL);
+
+       database[0] = '\0';
+       _ti_database = NULL;
+       r = 0;
+
+       if ((e = getenv("TERMINFO")) != NULL && *e != '\0')
+               if (e[0] == '/')
+                       return _ti_dbgetterm(term, e, name, flags);
+
+       c = NULL;
+       if (e == NULL && (c = getenv("TERMCAP")) != NULL) {
+               if (*c != '\0' && *c != '/') {
+                       c = strdup(c);
+                       if (c != NULL) {
+                               e = captoinfo(c);
+                               free(c);
+                       }
+               }
+       }
+
+       if (e != NULL) {
+               if (c == NULL)
+                       e = strdup(e); /* So we don't destroy env */
+               if (e  == NULL)
+                       tic = NULL;
+               else
+                       tic = _ti_compile(e, TIC_WARNING |
+                           TIC_ALIAS | TIC_DESCRIPTION | TIC_EXTRA);
+               if (c == NULL && e != NULL)
+                       free(e);
+               if (tic != NULL && ticcmp(tic, name) == 0) {
+                       len = _ti_flatten(&f, tic);
+                       if (len != -1) {
+                               r = _ti_readterm(term, (char *)f, len, flags);
+                               free(f);
+                       }
+               }
+               _ti_freetic(tic);
+               if (r == 1) {
+                       if (c == NULL)
+                               _ti_database = "$TERMINFO";
+                       else
+                               _ti_database = "$TERMCAP";
+                       return r;
+               }
+       }
+
+       if ((e = getenv("TERMINFO_DIRS")) != NULL)
+               return _ti_dbgettermp(term, e, name, flags);
+
+       if ((e = getenv("HOME")) != NULL) {
+               snprintf(h, sizeof(h), "%s/.terminfo", e);
+               r = _ti_dbgetterm(term, h, name, flags);
+       }
+       if (r != 1)
+               r = _ti_dbgettermp(term, _PATH_TERMINFO, name, flags);
+
+       return r;
+
+}
+
+int
+_ti_getterm(TERMINAL *term, const char *name, int flags)
+{
+       int r;
+       size_t i;
+       const struct compiled_term *t;
+
+       r = _ti_findterm(term, name, flags);
+       if (r == 1)
+               return r;
+
+       for (i = 0; i < __arraycount(compiled_terms); i++) {
+               t = &compiled_terms[i];
+               if (strcmp(name, t->name) == 0) {
+                       r = _ti_readterm(term, t->cap, t->caplen, flags);
+                       break;
+               }
+       }
+
+       return r;
+}
+       
+void
+_ti_freeterm(TERMINAL *term)
+{
+
+       if (term != NULL) {
+               free(term->_area);
+               free(term->strs);
+               free(term->nums);
+               free(term->flags);
+               free(term->_userdefs);
+       }
+}
diff --git a/lib/libterminfo/term.h b/lib/libterminfo/term.h
new file mode 100644 (file)
index 0000000..102e186
--- /dev/null
@@ -0,0 +1,1520 @@
+/* $NetBSD: term.h,v 1.6 2010/09/22 06:10:51 roy Exp $ */
+
+/*
+ * Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _TERM_H_
+#define        _TERM_H_
+
+#ifndef ERR
+#define        ERR     (-1)    /* Error return */
+#define        OK      (0)     /* Success return */
+#endif
+
+/* Define available terminfo flags */
+enum TIFLAGS {
+               TICODE_bw,
+       TICODE_am,
+       TICODE_bce,
+       TICODE_ccc,
+       TICODE_xhp,
+       TICODE_xhpa,
+       TICODE_cpix,
+       TICODE_crxm,
+       TICODE_xt,
+       TICODE_xenl,
+       TICODE_eo,
+       TICODE_gn,
+       TICODE_hc,
+       TICODE_chts,
+       TICODE_km,
+       TICODE_daisy,
+       TICODE_hs,
+       TICODE_hls,
+       TICODE_in,
+       TICODE_lpix,
+       TICODE_da,
+       TICODE_db,
+       TICODE_mir,
+       TICODE_msgr,
+       TICODE_nxon,
+       TICODE_xsb,
+       TICODE_npc,
+       TICODE_ndscr,
+       TICODE_nrrmc,
+       TICODE_os,
+       TICODE_mc5i,
+       TICODE_xvpa,
+       TICODE_sam,
+       TICODE_eslok,
+       TICODE_hz,
+       TICODE_ul,
+       TICODE_xon
+};
+#define TIFLAGMAX      TICODE_xon
+
+#define t_auto_left_margin(t)          (t)->flags[TICODE_bw]
+#define t_auto_right_margin(t)         (t)->flags[TICODE_am]
+#define t_back_color_erase(t)          (t)->flags[TICODE_bce]
+#define t_can_change(t)                        (t)->flags[TICODE_ccc]
+#define t_ceol_standout_glitch(t)      (t)->flags[TICODE_xhp]
+#define t_col_addr_glitch(t)           (t)->flags[TICODE_xhpa]
+#define t_cpi_changes_res(t)           (t)->flags[TICODE_cpix]
+#define t_cr_cancels_micro_mode(t)     (t)->flags[TICODE_crxm]
+#define t_dest_tabs_magic_smso(t)      (t)->flags[TICODE_xt]
+#define t_eat_newline_glitch(t)                (t)->flags[TICODE_xenl]
+#define t_erase_overstrike(t)          (t)->flags[TICODE_eo]
+#define t_generic_type(t)              (t)->flags[TICODE_gn]
+#define t_hard_copy(t)                 (t)->flags[TICODE_hc]
+#define t_hard_cursor(t)               (t)->flags[TICODE_chts]
+#define t_has_meta_key(t)              (t)->flags[TICODE_km]
+#define t_has_print_wheel(t)           (t)->flags[TICODE_daisy]
+#define t_has_status_line(t)           (t)->flags[TICODE_hs]
+#define t_hue_light_saturation(t)      (t)->flags[TICODE_hls]
+#define t_insert_null_glitch(t)                (t)->flags[TICODE_in]
+#define t_lpi_changes_yes(t)           (t)->flags[TICODE_lpix]
+#define t_memory_above(t)              (t)->flags[TICODE_da]
+#define t_memory_below(t)              (t)->flags[TICODE_db]
+#define t_move_insert_mode(t)          (t)->flags[TICODE_mir]
+#define t_move_standout_mode(t)                (t)->flags[TICODE_msgr]
+#define t_needs_xon_xoff(t)            (t)->flags[TICODE_nxon]
+#define t_no_esc_ctlc(t)               (t)->flags[TICODE_xsb]
+#define t_no_pad_char(t)               (t)->flags[TICODE_npc]
+#define t_non_dest_scroll_region(t)    (t)->flags[TICODE_ndscr]
+#define t_non_rev_rmcup(t)             (t)->flags[TICODE_nrrmc]
+#define t_over_strike(t)               (t)->flags[TICODE_os]
+#define t_prtr_silent(t)               (t)->flags[TICODE_mc5i]
+#define t_row_addr_glitch(t)           (t)->flags[TICODE_xvpa]
+#define t_semi_auto_right_margin(t)    (t)->flags[TICODE_sam]
+#define t_status_line_esc_ok(t)                (t)->flags[TICODE_eslok]
+#define t_tilde_glitch(t)              (t)->flags[TICODE_hz]
+#define t_transparent_underline(t)     (t)->flags[TICODE_ul]
+#define t_xon_xoff(t)                  (t)->flags[TICODE_xon]
+
+#define auto_left_margin               t_auto_left_margin(cur_term)
+#define auto_right_margin              t_auto_right_margin(cur_term)
+#define back_color_erase               t_back_color_erase(cur_term)
+#define can_change                     t_can_change(cur_term)
+#define ceol_standout_glitch           t_ceol_standout_glitch(cur_term)
+#define col_addr_glitch                        t_col_addr_glitch(cur_term)
+#define cpi_changes_res                        t_cpi_changes_res(cur_term)
+#define cr_cancels_micro_mode          t_cr_cancels_micro_mode(cur_term)
+#define dest_tabs_magic_smso           t_dest_tabs_magic_smso(cur_term)
+#define eat_newline_glitch             t_eat_newline_glitch(cur_term)
+#define erase_overstrike               t_erase_overstrike(cur_term)
+#define generic_type                   t_generic_type(cur_term)
+#define hard_copy                      t_hard_copy(cur_term)
+#define hard_cursor                    t_hard_cursor(cur_term)
+#define has_meta_key                   t_has_meta_key(cur_term)
+#define has_print_wheel                        t_has_print_wheel(cur_term)
+#define has_status_line                        t_has_status_line(cur_term)
+#define hue_light_saturation           t_hue_light_saturation(cur_term)
+#define insert_null_glitch             t_insert_null_glitch(cur_term)
+#define lpi_changes_yes                        t_lpi_changes_yes(cur_term)
+#define memory_above                   t_memory_above(cur_term)
+#define memory_below                   t_memory_below(cur_term)
+#define move_insert_mode               t_move_insert_mode(cur_term)
+#define move_standout_mode             t_move_standout_mode(cur_term)
+#define needs_xon_xoff                 t_needs_xon_xoff(cur_term)
+#define no_esc_ctlc                    t_no_esc_ctlc(cur_term)
+#define no_pad_char                    t_no_pad_char(cur_term)
+#define non_dest_scroll_region         t_non_dest_scroll_region(cur_term)
+#define non_rev_rmcup                  t_non_rev_rmcup(cur_term)
+#define over_strike                    t_over_strike(cur_term)
+#define prtr_silent                    t_prtr_silent(cur_term)
+#define row_addr_glitch                        t_row_addr_glitch(cur_term)
+#define semi_auto_right_margin         t_semi_auto_right_margin(cur_term)
+#define status_line_esc_ok             t_status_line_esc_ok(cur_term)
+#define tilde_glitch                   t_tilde_glitch(cur_term)
+#define transparent_underline          t_transparent_underline(cur_term)
+#define xon_xoff                       t_xon_xoff(cur_term)
+
+/* Define available terminfo numbers */
+enum TINUMS {
+       TICODE_bitwin,
+       TICODE_bitype,
+       TICODE_bufsz,
+       TICODE_btns,
+       TICODE_cols,
+       TICODE_spinh,
+       TICODE_spinv,
+       TICODE_it,
+       TICODE_lh,
+       TICODE_lw,
+       TICODE_lines,
+       TICODE_lm,
+       TICODE_ma,
+       TICODE_xmc,
+       TICODE_colors,
+       TICODE_maddr,
+       TICODE_mjump,
+       TICODE_pairs,
+       TICODE_wnum,
+       TICODE_mcs,
+       TICODE_mls,
+       TICODE_ncv,
+       TICODE_nlab,
+       TICODE_npins,
+       TICODE_orc,
+       TICODE_orl,
+       TICODE_orhi,
+       TICODE_orvi,
+       TICODE_pb,
+       TICODE_cps,
+       TICODE_vt,
+       TICODE_widcs,
+       TICODE_wsl
+};
+#define TINUMMAX                       TICODE_wsl
+
+#define t_bit_image_entwining(t)       (t)->nums[TICODE_bitwin]
+#define t_bit_image_type(t)            (t)->nums[TICODE_bitype]
+#define t_buffer_capacity(t)           (t)->nums[TICODE_bufsz]
+#define t_buttons(t)                   (t)->nums[TICODE_btns]
+#define t_columns(t)                   (t)->nums[TICODE_cols]
+#define t_dot_horz_spacing(t)          (t)->nums[TICODE_spinh]
+#define t_dot_vert_spacing(t)          (t)->nums[TICODE_spinv]
+#define t_init_tabs(t)                 (t)->nums[TICODE_it]
+#define t_label_height(t)              (t)->nums[TICODE_lh]
+#define t_label_width(t)               (t)->nums[TICODE_lw]
+#define t_lines(t)                     (t)->nums[TICODE_lines]
+#define t_lines_of_memory(t)           (t)->nums[TICODE_lm]
+#define t_max_attributes(t)            (t)->nums[TICODE_ma]
+#define t_magic_cookie_glitch(t)       (t)->nums[TICODE_xmc]
+#define t_max_colors(t)                        (t)->nums[TICODE_colors]
+#define t_max_micro_address(t)         (t)->nums[TICODE_maddr]
+#define t_max_micro_jump(t)            (t)->nums[TICODE_mjump]
+#define t_max_pairs(t)                 (t)->nums[TICODE_pairs]
+#define t_maximum_windows(t)           (t)->nums[TICODE_wnum]
+#define t_micro_col_size(t)            (t)->nums[TICODE_mcs]
+#define t_micro_line_size(t)           (t)->nums[TICODE_mls]
+#define t_no_color_video(t)            (t)->nums[TICODE_ncv]
+#define t_num_labels(t)                        (t)->nums[TICODE_nlab]
+#define t_number_of_pins(t)            (t)->nums[TICODE_npins]
+#define t_output_res_char(t)           (t)->nums[TICODE_orc]
+#define t_output_res_line(t)           (t)->nums[TICODE_orl]
+#define t_output_res_horz_inch(t)      (t)->nums[TICODE_orhi]
+#define t_output_res_vert_inch(t)      (t)->nums[TICODE_orvi]
+#define t_padding_baud_rate(t)         (t)->nums[TICODE_pb]
+#define t_print_rate(t)                        (t)->nums[TICODE_cps]
+#define t_virtual_terminal(t)          (t)->nums[TICODE_vt]
+#define t_wide_char_size(t)            (t)->nums[TICODE_widcs]
+#define t_width_status_line(t)         (t)->nums[TICODE_wsl]
+
+#define bit_image_entwining             t_bit_image_entwining(cur_term)
+#define bit_image_type                  t_bit_image_type(cur_term)
+#define buffer_capacity                         t_buffer_capacity(cur_term)
+#define buttons                                 t_buttons(cur_term)
+#define columns                                 t_columns(cur_term)
+#define dot_horz_spacing                t_dot_horz_spacing(cur_term)
+#define dot_vert_spacing                t_dot_vert_spacing(cur_term)
+#define init_tabs                       t_init_tabs(cur_term)
+#define label_height                    t_label_height(cur_term)
+#define label_width                     t_label_width(cur_term)
+#define lines                           t_lines(cur_term)
+#define lines_of_memory                         t_lines_of_memory(cur_term)
+#define max_attributes                  t_max_attributes(cur_term)
+#define magic_cookie_glitch             t_magic_cookie_glitch(cur_term)
+#define max_colors                      t_max_colors(cur_term)
+#define max_micro_address               t_max_micro_address(cur_term)
+#define max_micro_jump                  t_max_micro_jump(cur_term)
+#define max_pairs                       t_max_pairs(cur_term)
+#define maximum_windows                         t_maximum_windows(cur_term)
+#define micro_col_size                  t_micro_col_size(cur_term)
+#define micro_line_size                         t_micro_line_size(cur_term)
+#define no_color_video                  t_no_color_video(cur_term)
+#define num_labels                      t_num_labels(cur_term)
+#define number_of_pins                  t_number_of_pins(cur_term)
+#define output_res_char                         t_output_res_char(cur_term)
+#define output_res_line                         t_output_res_line(cur_term)
+#define output_res_horz_inch            t_output_res_horz_inch(cur_term)
+#define output_res_vert_inch            t_output_res_vert_inch(cur_term)
+#define padding_baud_rate               t_padding_baud_rate(cur_term)
+#define print_rate                      t_print_rate(cur_term)
+#define virtual_terminal                t_virtual_terminal(cur_term)
+#define wide_char_size                  t_wide_char_size(cur_term)
+#define width_status_line               t_width_status_line(cur_term)
+
+/* Define available terminfo strings */
+enum TISTRS{
+       TICODE_acsc,
+       TICODE_scesa,
+       TICODE_cbt,
+       TICODE_bel,
+       TICODE_bicr,
+       TICODE_binel,
+       TICODE_birep,
+       TICODE_cr,
+       TICODE_cpi,
+       TICODE_lpi,
+       TICODE_chr,
+       TICODE_cvr,
+       TICODE_csr,
+       TICODE_rmp,
+       TICODE_csnm,
+       TICODE_tbc,
+       TICODE_mgc,
+       TICODE_clear,
+       TICODE_el1,
+       TICODE_el,
+       TICODE_ed,
+       TICODE_csin,
+       TICODE_colornm,
+       TICODE_hpa,
+       TICODE_cmdch,
+       TICODE_cwin,
+       TICODE_cup,
+       TICODE_cud1,
+       TICODE_home,
+       TICODE_civis,
+       TICODE_cub1,
+       TICODE_mrcup,
+       TICODE_cnorm,
+       TICODE_cuf1,
+       TICODE_ll,
+       TICODE_cuu1,
+       TICODE_cvvis,
+       TICODE_defbi,
+       TICODE_defc,
+       TICODE_dch1,
+       TICODE_dl1,
+       TICODE_devt,
+       TICODE_dial,
+       TICODE_dsl,
+       TICODE_dclk,
+       TICODE_dispc,
+       TICODE_hd,
+       TICODE_enacs,
+       TICODE_endbi,
+       TICODE_smacs,
+       TICODE_smam,
+       TICODE_blink,
+       TICODE_bold,
+       TICODE_smcup,
+       TICODE_smdc,
+       TICODE_dim,
+       TICODE_swidm,
+       TICODE_sdrfq,
+       TICODE_ehhlm,
+       TICODE_smir,
+       TICODE_sitm,
+       TICODE_elhlm,
+       TICODE_slm,
+       TICODE_elohlm,
+       TICODE_smicm,
+       TICODE_snlq,
+       TICODE_snrmq,
+       TICODE_smpch,
+       TICODE_prot,
+       TICODE_rev,
+       TICODE_erhlm,
+       TICODE_smsc,
+       TICODE_invis,
+       TICODE_sshm,
+       TICODE_smso,
+       TICODE_ssubm,
+       TICODE_ssupm,
+       TICODE_ethlm,
+       TICODE_smul,
+       TICODE_sum,
+       TICODE_evhlm,
+       TICODE_smxon,
+       TICODE_ech,
+       TICODE_rmacs,
+       TICODE_rmam,
+       TICODE_sgr0,
+       TICODE_rmcup,
+       TICODE_rmdc,
+       TICODE_rwidm,
+       TICODE_rmir,
+       TICODE_ritm,
+       TICODE_rlm,
+       TICODE_rmicm,
+       TICODE_rmpch,
+       TICODE_rmsc,
+       TICODE_rshm,
+       TICODE_rmso,
+       TICODE_rsubm,
+       TICODE_rsupm,
+       TICODE_rmul,
+       TICODE_rum,
+       TICODE_rmxon,
+       TICODE_pause,
+       TICODE_hook,
+       TICODE_flash,
+       TICODE_ff,
+       TICODE_fsl,
+       TICODE_getm,
+       TICODE_wingo,
+       TICODE_hup,
+       TICODE_is1,
+       TICODE_is2,
+       TICODE_is3,
+       TICODE_if,
+       TICODE_iprog,
+       TICODE_initc,
+       TICODE_initp,
+       TICODE_ich1,
+       TICODE_il1,
+       TICODE_ip,
+       TICODE_ka1,
+       TICODE_ka3,
+       TICODE_kb2,
+       TICODE_kbs,
+       TICODE_kbeg,
+       TICODE_kcbt,
+       TICODE_kc1,
+       TICODE_kc3,
+       TICODE_kcan,
+       TICODE_ktbc,
+       TICODE_kclr,
+       TICODE_kclo,
+       TICODE_kcmd,
+       TICODE_kcpy,
+       TICODE_kcrt,
+       TICODE_kctab,
+       TICODE_kdch1,
+       TICODE_kdl1,
+       TICODE_kcud1,
+       TICODE_krmir,
+       TICODE_kend,
+       TICODE_kent,
+       TICODE_kel,
+       TICODE_ked,
+       TICODE_kext,
+       TICODE_kf0,
+       TICODE_kf1,
+       TICODE_kf2,
+       TICODE_kf3,
+       TICODE_kf4,
+       TICODE_kf5,
+       TICODE_kf6,
+       TICODE_kf7,
+       TICODE_kf8,
+       TICODE_kf9,
+       TICODE_kf10,
+       TICODE_kf11,
+       TICODE_kf12,
+       TICODE_kf13,
+       TICODE_kf14,
+       TICODE_kf15,
+       TICODE_kf16,
+       TICODE_kf17,
+       TICODE_kf18,
+       TICODE_kf19,
+       TICODE_kf20,
+       TICODE_kf21,
+       TICODE_kf22,
+       TICODE_kf23,
+       TICODE_kf24,
+       TICODE_kf25,
+       TICODE_kf26,
+       TICODE_kf27,
+       TICODE_kf28,
+       TICODE_kf29,
+       TICODE_kf30,
+       TICODE_kf31,
+       TICODE_kf32,
+       TICODE_kf33,
+       TICODE_kf34,
+       TICODE_kf35,
+       TICODE_kf36,
+       TICODE_kf37,
+       TICODE_kf38,
+       TICODE_kf39,
+       TICODE_kf40,
+       TICODE_kf41,
+       TICODE_kf42,
+       TICODE_kf43,
+       TICODE_kf44,
+       TICODE_kf45,
+       TICODE_kf46,
+       TICODE_kf47,
+       TICODE_kf48,
+       TICODE_kf49,
+       TICODE_kf50,
+       TICODE_kf51,
+       TICODE_kf52,
+       TICODE_kf53,
+       TICODE_kf54,
+       TICODE_kf55,
+       TICODE_kf56,
+       TICODE_kf57,
+       TICODE_kf58,
+       TICODE_kf59,
+       TICODE_kf60,
+       TICODE_kf61,
+       TICODE_kf62,
+       TICODE_kf63,
+       TICODE_kfnd,
+       TICODE_khlp,
+       TICODE_khome,
+       TICODE_kich1,
+       TICODE_kil1,
+       TICODE_kcub1,
+       TICODE_kll,
+       TICODE_kmrk,
+       TICODE_kmsg,
+       TICODE_kmous,
+       TICODE_kmov,
+       TICODE_knxt,
+       TICODE_knp,
+       TICODE_kopn,
+       TICODE_kopt,
+       TICODE_kpp,
+       TICODE_kprv,
+       TICODE_kprt,
+       TICODE_krdo,
+       TICODE_kref,
+       TICODE_krfr,
+       TICODE_krpl,
+       TICODE_krst,
+       TICODE_kres,
+       TICODE_kcuf1,
+       TICODE_ksav,
+       TICODE_kBEG,
+       TICODE_kCAN,
+       TICODE_kCMD,
+       TICODE_kCPY,
+       TICODE_kCRT,
+       TICODE_kDC,
+       TICODE_kDL,
+       TICODE_kslt,
+       TICODE_kEND,
+       TICODE_kEOL,
+       TICODE_kEXT,
+       TICODE_kind,
+       TICODE_kFND,
+       TICODE_kHLP,
+       TICODE_kHOM,
+       TICODE_kIC,
+       TICODE_kLFT,
+       TICODE_kMSG,
+       TICODE_kMOV,
+       TICODE_kNXT,
+       TICODE_kOPT,
+       TICODE_kPRV,
+       TICODE_kPRT,
+       TICODE_kri,
+       TICODE_kRDO,
+       TICODE_kRPL,
+       TICODE_kRIT,
+       TICODE_kRES,
+       TICODE_kSAV,
+       TICODE_kSPD,
+       TICODE_khts,
+       TICODE_kUND,
+       TICODE_kspd,
+       TICODE_kund,
+       TICODE_kcuu1,
+       TICODE_rmkx,
+       TICODE_smkx,
+       TICODE_lf0,
+       TICODE_lf1,
+       TICODE_lf2,
+       TICODE_lf3,
+       TICODE_lf4,
+       TICODE_lf5,
+       TICODE_lf6,
+       TICODE_lf7,
+       TICODE_lf8,
+       TICODE_lf9,
+       TICODE_lf10,
+       TICODE_fln,
+       TICODE_rmln,
+       TICODE_smln,
+       TICODE_rmm,
+       TICODE_smm,
+       TICODE_mhpa,
+       TICODE_mcud1,
+       TICODE_mcub1,
+       TICODE_mcuf1,
+       TICODE_mvpa,
+       TICODE_mcuu1,
+       TICODE_minfo,
+       TICODE_nel,
+       TICODE_porder,
+       TICODE_oc,
+       TICODE_op,
+       TICODE_pad,
+       TICODE_dch,
+       TICODE_dl,
+       TICODE_cud,
+       TICODE_mcud,
+       TICODE_ich,
+       TICODE_indn,
+       TICODE_il,
+       TICODE_cub,
+       TICODE_mcub,
+       TICODE_cuf,
+       TICODE_mcuf,
+       TICODE_rin,
+       TICODE_cuu,
+       TICODE_mcuu,
+       TICODE_pctrm,
+       TICODE_pfkey,
+       TICODE_pfloc,
+       TICODE_pfxl,
+       TICODE_pfx,
+       TICODE_pln,
+       TICODE_mc0,
+       TICODE_mc5p,
+       TICODE_mc4,
+       TICODE_mc5,
+       TICODE_pulse,
+       TICODE_qdial,
+       TICODE_rmclk,
+       TICODE_rep,
+       TICODE_rfi,
+       TICODE_reqmp,
+       TICODE_rs1,
+       TICODE_rs2,
+       TICODE_rs3,
+       TICODE_rf,
+       TICODE_rc,
+       TICODE_vpa,
+       TICODE_sc,
+       TICODE_scesc,
+       TICODE_ind,
+       TICODE_ri,
+       TICODE_scs,
+       TICODE_s0ds,
+       TICODE_s1ds,
+       TICODE_s2ds,
+       TICODE_s3ds,
+       TICODE_sgr1,
+       TICODE_setab,
+       TICODE_setaf,
+       TICODE_sgr,
+       TICODE_setb,
+       TICODE_smgb,
+       TICODE_smgbp,
+       TICODE_sclk,
+       TICODE_setcolor,
+       TICODE_scp,
+       TICODE_setf,
+       TICODE_smgl,
+       TICODE_smglp,
+       TICODE_smglr,
+       TICODE_slines,
+       TICODE_slength,
+       TICODE_smgr,
+       TICODE_smgrp,
+       TICODE_hts,
+       TICODE_smgtb,
+       TICODE_smgt,
+       TICODE_smgtp,
+       TICODE_wind,
+       TICODE_sbim,
+       TICODE_scsd,
+       TICODE_rbim,
+       TICODE_rcsd,
+       TICODE_subcs,
+       TICODE_supcs,
+       TICODE_ht,
+       TICODE_docr,
+       TICODE_tsl,
+       TICODE_tone,
+       TICODE_u0,
+       TICODE_u1,
+       TICODE_u2,
+       TICODE_u3,
+       TICODE_u4,
+       TICODE_u5,
+       TICODE_u6,
+       TICODE_u7,
+       TICODE_u8,
+       TICODE_u9,
+       TICODE_uc,
+       TICODE_hu,
+       TICODE_wait,
+       TICODE_xoffc,
+       TICODE_xonc,
+       TICODE_zerom
+};
+#define TISTRMAX                       TICODE_zerom
+
+#define t_acs_chars(t)                 (t)->strs[TICODE_acsc]
+#define t_alt_scancode_esc(t)          (t)->strs[TICODE_scesa]
+#define t_back_tab(t)                  (t)->strs[TICODE_cbt]
+#define t_bell(t)                      (t)->strs[TICODE_bel]
+#define t_bit_image_carriage_return(t) (t)->strs[TICODE_bicr]
+#define t_bit_image_newline(t)         (t)->strs[TICODE_binel]
+#define t_bit_image_repeat(t)          (t)->strs[TICODE_birep]
+#define t_carriage_return(t)           (t)->strs[TICODE_cr]
+#define t_change_char_pitch(t)         (t)->strs[TICODE_cpi]
+#define t_change_line_pitch(t)         (t)->strs[TICODE_lpi]
+#define t_change_res_horz(t)           (t)->strs[TICODE_chr]
+#define t_change_res_vert(t)           (t)->strs[TICODE_cvr]
+#define t_change_scroll_region(t)      (t)->strs[TICODE_csr]
+#define t_char_padding(t)              (t)->strs[TICODE_rmp]
+#define t_char_set_names(t)            (t)->strs[TICODE_csnm]
+#define t_clear_all_tabs(t)            (t)->strs[TICODE_tbc]
+#define t_clear_margins(t)             (t)->strs[TICODE_mgc]
+#define t_clear_screen(t)              (t)->strs[TICODE_clear]
+#define t_clr_bol(t)                   (t)->strs[TICODE_el1]
+#define t_clr_eol(t)                   (t)->strs[TICODE_el]
+#define t_clr_eos(t)                   (t)->strs[TICODE_ed]
+#define t_code_set_init(t)             (t)->strs[TICODE_csin]
+#define t_color_names(t)               (t)->strs[TICODE_colornm]
+#define t_column_address(t)            (t)->strs[TICODE_hpa]
+#define t_command_character(t)         (t)->strs[TICODE_cmdch]
+#define t_create_window(t)             (t)->strs[TICODE_cwin]
+#define t_cursor_address(t)            (t)->strs[TICODE_cup]
+#define t_cursor_down(t)               (t)->strs[TICODE_cud1]
+#define t_cursor_home(t)               (t)->strs[TICODE_home]
+#define t_cursor_invisible(t)          (t)->strs[TICODE_civis]
+#define t_cursor_left(t)               (t)->strs[TICODE_cub1]
+#define t_cursor_mem_address(t)                (t)->strs[TICODE_mrcup]
+#define t_cursor_normal(t)             (t)->strs[TICODE_cnorm]
+#define t_cursor_right(t)              (t)->strs[TICODE_cuf1]
+#define t_cursor_to_ll(t)              (t)->strs[TICODE_ll]
+#define t_cursor_up(t)                 (t)->strs[TICODE_cuu1]
+#define t_cursor_visible(t)            (t)->strs[TICODE_cvvis]
+#define t_define_bit_image_region(t)   (t)->strs[TICODE_defbi]
+#define t_define_char(t)               (t)->strs[TICODE_defc]
+#define t_delete_character(t)          (t)->strs[TICODE_dch1]
+#define t_delete_line(t)               (t)->strs[TICODE_dl1]
+#define t_device_type(t)               (t)->strs[TICODE_devt]
+#define t_dial_phone(t)                        (t)->strs[TICODE_dial]
+#define t_dis_status_line(t)           (t)->strs[TICODE_dsl]
+#define t_display_clock(t)             (t)->strs[TICODE_dclk]
+#define t_display_pc_char(t)           (t)->strs[TICODE_dispc]
+#define t_down_half_time(t)            (t)->strs[TICODE_hd]
+#define t_ena_acs(t)                   (t)->strs[TICODE_enacs]
+#define t_end_bit_image_region(t)      (t)->strs[TICODE_endbi]
+#define t_enter_alt_charset_mode(t)    (t)->strs[TICODE_smacs]
+#define t_enter_am_mode(t)             (t)->strs[TICODE_smam]
+#define t_enter_blink_mode(t)          (t)->strs[TICODE_blink]
+#define t_enter_bold_mode(t)           (t)->strs[TICODE_bold]
+#define t_enter_ca_mode(t)             (t)->strs[TICODE_smcup]
+#define t_enter_delete_mode(t)         (t)->strs[TICODE_smdc]
+#define t_enter_dim_mode(t)            (t)->strs[TICODE_dim]
+#define t_enter_doublewide_mode(t)     (t)->strs[TICODE_swidm]
+#define t_enter_draft_quality(t)       (t)->strs[TICODE_sdrfq]
+#define t_enter_horizontal_hl_mode(t)  (t)->strs[TICODE_ehhlm]
+#define t_enter_insert_mode(t)         (t)->strs[TICODE_smir]
+#define t_enter_italics_mode(t)                (t)->strs[TICODE_sitm]
+#define t_enter_left_hl_mode(t)                (t)->strs[TICODE_elhlm]
+#define t_enter_leftward_mode(t)       (t)->strs[TICODE_slm]
+#define t_enter_low_hl_mode(t)         (t)->strs[TICODE_elohlm]
+#define t_enter_micro_mode(t)          (t)->strs[TICODE_smicm]
+#define t_enter_near_quality_letter(t) (t)->strs[TICODE_snlq]
+#define t_enter_normal_quality(t)      (t)->strs[TICODE_snrmq]
+#define t_enter_pc_charset_mode(t)     (t)->strs[TICODE_smpch]
+#define t_enter_protected_mode(t)      (t)->strs[TICODE_prot]
+#define t_enter_reverse_mode(t)                (t)->strs[TICODE_rev]
+#define t_enter_right_hl_mode(t)       (t)->strs[TICODE_erhlm]
+#define t_enter_scancode_mode(t)       (t)->strs[TICODE_smsc]
+#define t_enter_secure_mode(t)         (t)->strs[TICODE_invis]
+#define t_enter_shadow_mode(t)         (t)->strs[TICODE_sshm]
+#define t_enter_standout_mode(t)       (t)->strs[TICODE_smso]
+#define t_enter_subscript_mode(t)      (t)->strs[TICODE_ssubm]
+#define t_enter_superscript_mode(t)    (t)->strs[TICODE_ssupm]
+#define t_enter_top_hl_mode(t)         (t)->strs[TICODE_ethlm]
+#define t_enter_underline_mode(t)      (t)->strs[TICODE_smul]
+#define t_enter_upward_mode(t)         (t)->strs[TICODE_sum]
+#define t_enter_vertical_hl_mode(t)    (t)->strs[TICODE_evhlm]
+#define t_enter_xon_mode(t)            (t)->strs[TICODE_smxon]
+#define t_erase_chars(t)               (t)->strs[TICODE_ech]
+#define t_exit_alt_charset_mode(t)     (t)->strs[TICODE_rmacs]
+#define t_exit_am_mode(t)              (t)->strs[TICODE_rmam]
+#define t_exit_attribute_mode(t)       (t)->strs[TICODE_sgr0]
+#define t_exit_ca_mode(t)              (t)->strs[TICODE_rmcup]
+#define t_exit_delete_mode(t)          (t)->strs[TICODE_rmdc]
+#define t_exit_doublewide_mode(t)      (t)->strs[TICODE_rwidm]
+#define t_exit_insert_mode(t)          (t)->strs[TICODE_rmir]
+#define t_exit_italics_mode(t)         (t)->strs[TICODE_ritm]
+#define t_exit_leftward_mode(t)                (t)->strs[TICODE_rlm]
+#define t_exit_micro_mode(t)           (t)->strs[TICODE_rmicm]
+#define t_exit_pc_charset_mode(t)      (t)->strs[TICODE_rmpch]
+#define t_exit_scancode_mode(t)                (t)->strs[TICODE_rmsc]
+#define t_exit_shadow_mode(t)          (t)->strs[TICODE_rshm]
+#define t_exit_standout_mode(t)                (t)->strs[TICODE_rmso]
+#define t_exit_subscript_mode(t)       (t)->strs[TICODE_rsubm]
+#define t_exit_superscript_mode(t)     (t)->strs[TICODE_rsupm]
+#define t_exit_underline_mode(t)       (t)->strs[TICODE_rmul]
+#define t_exit_upward_mode(t)          (t)->strs[TICODE_rum]
+#define t_exit_xon_mode(t)             (t)->strs[TICODE_rmxon]
+#define t_fixed_pause(t)               (t)->strs[TICODE_pause]
+#define t_flash_hook(t)                        (t)->strs[TICODE_hook]
+#define t_flash_screen(t)              (t)->strs[TICODE_flash]
+#define t_form_feed(t)                 (t)->strs[TICODE_ff]
+#define t_from_status_line(t)          (t)->strs[TICODE_fsl]
+#define t_get_mouse(t)                 (t)->strs[TICODE_getm]
+#define t_goto_window(t)               (t)->strs[TICODE_wingo]
+#define t_hangup(t)                    (t)->strs[TICODE_hup]
+#define t_init_1string(t)              (t)->strs[TICODE_is1]
+#define t_init_2string(t)              (t)->strs[TICODE_is2]
+#define t_init_3string(t)              (t)->strs[TICODE_is3]
+#define t_init_file(t)                 (t)->strs[TICODE_if]
+#define t_init_prog(t)                 (t)->strs[TICODE_iprog]
+#define t_initialize_color(t)          (t)->strs[TICODE_initc]
+#define t_initialize_pair(t)           (t)->strs[TICODE_initp]
+#define t_insert_character(t)          (t)->strs[TICODE_ich1]
+#define t_insert_line(t)               (t)->strs[TICODE_il1]
+#define t_insert_padding(t)            (t)->strs[TICODE_ip]
+#define t_key_a1(t)                    (t)->strs[TICODE_ka1]
+#define t_key_a3(t)                    (t)->strs[TICODE_ka3]
+#define t_key_b2(t)                    (t)->strs[TICODE_kb2]
+#define t_key_backspace(t)             (t)->strs[TICODE_kbs]
+#define t_key_beg(t)                   (t)->strs[TICODE_kbeg]
+#define t_key_btab(t)                  (t)->strs[TICODE_kcbt]
+#define t_key_c1(t)                    (t)->strs[TICODE_kc1]
+#define t_key_c3(t)                    (t)->strs[TICODE_kc3]
+#define t_key_cancel(t)                        (t)->strs[TICODE_kcan]
+#define t_key_catab(t)                 (t)->strs[TICODE_ktbc]
+#define t_key_clear(t)                 (t)->strs[TICODE_kclr]
+#define t_key_close(t)                 (t)->strs[TICODE_kclo]
+#define t_key_command(t)               (t)->strs[TICODE_kcmd]
+#define t_key_copy(t)                  (t)->strs[TICODE_kcpy]
+#define t_key_create(t)                        (t)->strs[TICODE_kcrt]
+#define t_key_ctab(t)                  (t)->strs[TICODE_kctab]
+#define t_key_dc(t)                    (t)->strs[TICODE_kdch1]
+#define t_key_dl(t)                    (t)->strs[TICODE_kdl1]
+#define t_key_down(t)                  (t)->strs[TICODE_kcud1]
+#define t_key_eic(t)                   (t)->strs[TICODE_krmir]
+#define t_key_end(t)                   (t)->strs[TICODE_kend]
+#define t_key_enter(t)                 (t)->strs[TICODE_kent]
+#define t_key_eol(t)                   (t)->strs[TICODE_kel]
+#define t_key_eos(t)                   (t)->strs[TICODE_ked]
+#define t_key_exit(t)                  (t)->strs[TICODE_kext]
+#define t_key_f0(t)                    (t)->strs[TICODE_kf0]
+#define t_key_f1(t)                    (t)->strs[TICODE_kf1]
+#define t_key_f2(t)                    (t)->strs[TICODE_kf2]
+#define t_key_f3(t)                    (t)->strs[TICODE_kf3]
+#define t_key_f4(t)                    (t)->strs[TICODE_kf4]
+#define t_key_f5(t)                    (t)->strs[TICODE_kf5]
+#define t_key_f6(t)                    (t)->strs[TICODE_kf6]
+#define t_key_f7(t)                    (t)->strs[TICODE_kf7]
+#define t_key_f8(t)                    (t)->strs[TICODE_kf8]
+#define t_key_f9(t)                    (t)->strs[TICODE_kf9]
+#define t_key_f10(t)                   (t)->strs[TICODE_kf10]
+#define t_key_f11(t)                   (t)->strs[TICODE_kf11]
+#define t_key_f12(t)                   (t)->strs[TICODE_kf12]
+#define t_key_f13(t)                   (t)->strs[TICODE_kf13]
+#define t_key_f14(t)                   (t)->strs[TICODE_kf14]
+#define t_key_f15(t)                   (t)->strs[TICODE_kf15]
+#define t_key_f16(t)                   (t)->strs[TICODE_kf16]
+#define t_key_f17(t)                   (t)->strs[TICODE_kf17]
+#define t_key_f18(t)                   (t)->strs[TICODE_kf18]
+#define t_key_f19(t)                   (t)->strs[TICODE_kf19]
+#define t_key_f20(t)                   (t)->strs[TICODE_kf20]
+#define t_key_f21(t)                   (t)->strs[TICODE_kf21]
+#define t_key_f22(t)                   (t)->strs[TICODE_kf22]
+#define t_key_f23(t)                   (t)->strs[TICODE_kf23]
+#define t_key_f24(t)                   (t)->strs[TICODE_kf24]
+#define t_key_f25(t)                   (t)->strs[TICODE_kf25]
+#define t_key_f26(t)                   (t)->strs[TICODE_kf26]
+#define t_key_f27(t)                   (t)->strs[TICODE_kf27]
+#define t_key_f28(t)                   (t)->strs[TICODE_kf28]
+#define t_key_f29(t)                   (t)->strs[TICODE_kf29]
+#define t_key_f30(t)                   (t)->strs[TICODE_kf30]
+#define t_key_f31(t)                   (t)->strs[TICODE_kf31]
+#define t_key_f32(t)                   (t)->strs[TICODE_kf32]
+#define t_key_f33(t)                   (t)->strs[TICODE_kf33]
+#define t_key_f34(t)                   (t)->strs[TICODE_kf34]
+#define t_key_f35(t)                   (t)->strs[TICODE_kf35]
+#define t_key_f36(t)                   (t)->strs[TICODE_kf36]
+#define t_key_f37(t)                   (t)->strs[TICODE_kf37]
+#define t_key_f38(t)                   (t)->strs[TICODE_kf38]
+#define t_key_f39(t)                   (t)->strs[TICODE_kf39]
+#define t_key_f40(t)                   (t)->strs[TICODE_kf40]
+#define t_key_f41(t)                   (t)->strs[TICODE_kf41]
+#define t_key_f42(t)                   (t)->strs[TICODE_kf42]
+#define t_key_f43(t)                   (t)->strs[TICODE_kf43]
+#define t_key_f44(t)                   (t)->strs[TICODE_kf44]
+#define t_key_f45(t)                   (t)->strs[TICODE_kf45]
+#define t_key_f46(t)                   (t)->strs[TICODE_kf46]
+#define t_key_f47(t)                   (t)->strs[TICODE_kf47]
+#define t_key_f48(t)                   (t)->strs[TICODE_kf48]
+#define t_key_f49(t)                   (t)->strs[TICODE_kf49]
+#define t_key_f50(t)                   (t)->strs[TICODE_kf50]
+#define t_key_f51(t)                   (t)->strs[TICODE_kf51]
+#define t_key_f52(t)                   (t)->strs[TICODE_kf52]
+#define t_key_f53(t)                   (t)->strs[TICODE_kf53]
+#define t_key_f54(t)                   (t)->strs[TICODE_kf54]
+#define t_key_f55(t)                   (t)->strs[TICODE_kf55]
+#define t_key_f56(t)                   (t)->strs[TICODE_kf56]
+#define t_key_f57(t)                   (t)->strs[TICODE_kf57]
+#define t_key_f58(t)                   (t)->strs[TICODE_kf58]
+#define t_key_f59(t)                   (t)->strs[TICODE_kf59]
+#define t_key_f60(t)                   (t)->strs[TICODE_kf60]
+#define t_key_f61(t)                   (t)->strs[TICODE_kf61]
+#define t_key_f62(t)                   (t)->strs[TICODE_kf62]
+#define t_key_f63(t)                   (t)->strs[TICODE_kf63]
+#define t_key_find(t)                  (t)->strs[TICODE_kfnd]
+#define t_key_help(t)                  (t)->strs[TICODE_khlp]
+#define t_key_home(t)                  (t)->strs[TICODE_khome]
+#define t_key_ic(t)                    (t)->strs[TICODE_kich1]
+#define t_key_il(t)                    (t)->strs[TICODE_kil1]
+#define t_key_left(t)                  (t)->strs[TICODE_kcub1]
+#define t_key_ll(t)                    (t)->strs[TICODE_kll]
+#define t_key_mark(t)                  (t)->strs[TICODE_kmrk]
+#define t_key_message(t)               (t)->strs[TICODE_kmsg]
+#define t_key_mouse(t)                 (t)->strs[TICODE_kmous]
+#define t_key_move(t)                  (t)->strs[TICODE_kmov]
+#define t_key_next(t)                  (t)->strs[TICODE_knxt]
+#define t_key_npage(t)                 (t)->strs[TICODE_knp]
+#define t_key_open(t)                  (t)->strs[TICODE_kopn]
+#define t_key_options(t)               (t)->strs[TICODE_kopt]
+#define t_key_ppage(t)                 (t)->strs[TICODE_kpp]
+#define t_key_previous(t)              (t)->strs[TICODE_kprv]
+#define t_key_print(t)                 (t)->strs[TICODE_kprt]
+#define t_key_redo(t)                  (t)->strs[TICODE_krdo]
+#define t_key_reference(t)             (t)->strs[TICODE_kref]
+#define t_key_refresh(t)               (t)->strs[TICODE_krfr]
+#define t_key_replace(t)               (t)->strs[TICODE_krpl]
+#define t_key_restart(t)               (t)->strs[TICODE_krst]
+#define t_key_resume(t)                        (t)->strs[TICODE_kres]
+#define t_key_right(t)                 (t)->strs[TICODE_kcuf1]
+#define t_key_save(t)                  (t)->strs[TICODE_ksav]
+#define t_key_sbeg(t)                  (t)->strs[TICODE_kBEG]
+#define t_key_scancel(t)               (t)->strs[TICODE_kCAN]
+#define t_key_scommand(t)              (t)->strs[TICODE_kCMD]
+#define t_key_scopy(t)                 (t)->strs[TICODE_kCPY]
+#define t_key_screate(t)               (t)->strs[TICODE_kCRT]
+#define t_key_sdc(t)                   (t)->strs[TICODE_kDC]
+#define t_key_sdl(t)                   (t)->strs[TICODE_kDL]
+#define t_key_select(t)                        (t)->strs[TICODE_kslt]
+#define t_key_send(t)                  (t)->strs[TICODE_kEND]
+#define t_key_seol(t)                  (t)->strs[TICODE_kEOL]
+#define t_key_sexit(t)                 (t)->strs[TICODE_kEXT]
+#define t_key_sf(t)                    (t)->strs[TICODE_kind]
+#define t_key_sfind(t)                 (t)->strs[TICODE_kFND]
+#define t_key_shelp(t)                 (t)->strs[TICODE_kHLP]
+#define t_key_shome(t)                 (t)->strs[TICODE_kHOM]
+#define t_key_sic(t)                   (t)->strs[TICODE_kIC]
+#define t_key_sleft(t)                 (t)->strs[TICODE_kLFT]
+#define t_key_smessage(t)              (t)->strs[TICODE_kMSG]
+#define t_key_smove(t)                 (t)->strs[TICODE_kMOV]
+#define t_key_snext(t)                 (t)->strs[TICODE_kNXT]
+#define t_key_soptions(t)              (t)->strs[TICODE_kOPT]
+#define t_key_sprevious(t)             (t)->strs[TICODE_kPRV]
+#define t_key_sprint(t)                        (t)->strs[TICODE_kPRT]
+#define t_key_sr(t)                    (t)->strs[TICODE_kri]
+#define t_key_sredo(t)                 (t)->strs[TICODE_kRDO]
+#define t_key_sreplace(t)              (t)->strs[TICODE_kRPL]
+#define t_key_sright(t)                        (t)->strs[TICODE_kRIT]
+#define t_key_srsume(t)                        (t)->strs[TICODE_kRES]
+#define t_key_ssave(t)                 (t)->strs[TICODE_kSAV]
+#define t_key_ssuspend(t)              (t)->strs[TICODE_kSPD]
+#define t_key_stab(t)                  (t)->strs[TICODE_khts]
+#define t_key_sundo(t)                 (t)->strs[TICODE_kUND]
+#define t_key_suspend(t)               (t)->strs[TICODE_kspd]
+#define t_key_undo(t)                  (t)->strs[TICODE_kund]
+#define t_key_up(t)                    (t)->strs[TICODE_kcuu1]
+#define t_keypad_local(t)              (t)->strs[TICODE_rmkx]
+#define t_keypad_xmit(t)               (t)->strs[TICODE_smkx]
+#define t_lab_f0(t)                    (t)->strs[TICODE_lf0]
+#define t_lab_f1(t)                    (t)->strs[TICODE_lf1]
+#define t_lab_f2(t)                    (t)->strs[TICODE_lf2]
+#define t_lab_f3(t)                    (t)->strs[TICODE_lf3]
+#define t_lab_f4(t)                    (t)->strs[TICODE_lf4]
+#define t_lab_f5(t)                    (t)->strs[TICODE_lf5]
+#define t_lab_f6(t)                    (t)->strs[TICODE_lf6]
+#define t_lab_f7(t)                    (t)->strs[TICODE_lf7]
+#define t_lab_f8(t)                    (t)->strs[TICODE_lf8]
+#define t_lab_f9(t)                    (t)->strs[TICODE_lf9]
+#define t_lab_f10(t)                   (t)->strs[TICODE_lf10]
+#define t_label_format(t)              (t)->strs[TICODE_fln]
+#define t_label_off(t)                 (t)->strs[TICODE_rmln]
+#define t_label_on(t)                  (t)->strs[TICODE_smln]
+#define t_meta_off(t)                  (t)->strs[TICODE_rmm]
+#define t_meta_on(t)                   (t)->strs[TICODE_smm]
+#define t_micro_column_address(t)      (t)->strs[TICODE_mhpa]
+#define t_micro_down(t)                        (t)->strs[TICODE_mcud1]
+#define t_micro_left(t)                        (t)->strs[TICODE_mcub1]
+#define t_micro_right(t)               (t)->strs[TICODE_mcuf1]
+#define t_micro_row_address(t)         (t)->strs[TICODE_mvpa]
+#define t_micro_up(t)                  (t)->strs[TICODE_mcuu1]
+#define t_mouse_info(t)                        (t)->strs[TICODE_minfo]
+#define t_newline(t)                   (t)->strs[TICODE_nel]
+#define t_order_of_pins(t)             (t)->strs[TICODE_porder]
+#define t_orig_colors(t)               (t)->strs[TICODE_oc]
+#define t_orig_pair(t)                 (t)->strs[TICODE_op]
+#define t_pad_char(t)                  (t)->strs[TICODE_pad]
+#define t_parm_dch(t)                  (t)->strs[TICODE_dch]
+#define t_parm_delete_line(t)          (t)->strs[TICODE_dl]
+#define t_parm_down_cursor(t)          (t)->strs[TICODE_cud]
+#define t_parm_down_micro(t)           (t)->strs[TICODE_mcud]
+#define t_parm_ich(t)                  (t)->strs[TICODE_ich]
+#define t_parm_index(t)                        (t)->strs[TICODE_indn]
+#define t_parm_insert_line(t)          (t)->strs[TICODE_il]
+#define t_parm_left_cursor(t)          (t)->strs[TICODE_cub]
+#define t_parm_left_micro(t)           (t)->strs[TICODE_mcub]
+#define t_parm_right_cursor(t)         (t)->strs[TICODE_cuf]
+#define t_parm_right_micro(t)          (t)->strs[TICODE_mcuf]
+#define t_parm_rindex(t)               (t)->strs[TICODE_rin]
+#define t_parm_up_cursor(t)            (t)->strs[TICODE_cuu]
+#define t_parm_up_micro(t)             (t)->strs[TICODE_mcuu]
+#define t_pc_term_options(t)           (t)->strs[TICODE_pctrm]
+#define t_pkey_key(t)                  (t)->strs[TICODE_pfkey]
+#define t_pkey_local(t)                        (t)->strs[TICODE_pfloc]
+#define t_pkey_plab(t)                 (t)->strs[TICODE_pfxl]
+#define t_pkey_xmit(t)                 (t)->strs[TICODE_pfx]
+#define t_pkey_norm(t)                 (t)->strs[TICODE_pln]
+#define t_print_screen(t)              (t)->strs[TICODE_mc0]
+#define t_ptr_non(t)                   (t)->strs[TICODE_mc5p]
+#define t_ptr_off(t)                   (t)->strs[TICODE_mc4]
+#define t_ptr_on(t)                    (t)->strs[TICODE_mc5]
+#define t_pulse(t)                     (t)->strs[TICODE_pulse]
+#define t_quick_dial(t)                        (t)->strs[TICODE_qdial]
+#define t_remove_clock(t)              (t)->strs[TICODE_rmclk]
+#define t_repeat_char(t)               (t)->strs[TICODE_rep]
+#define t_req_for_input(t)             (t)->strs[TICODE_rfi]
+#define t_req_mouse_pos(t)             (t)->strs[TICODE_reqmp]
+#define t_reset_1string(t)             (t)->strs[TICODE_rs1]
+#define t_reset_2string(t)             (t)->strs[TICODE_rs2]
+#define t_reset_3string(t)             (t)->strs[TICODE_rs3]
+#define t_reset_file(t)                        (t)->strs[TICODE_rf]
+#define t_restore_cursor(t)            (t)->strs[TICODE_rc]
+#define t_row_address(t)               (t)->strs[TICODE_vpa]
+#define t_save_cursor(t)               (t)->strs[TICODE_sc]
+#define t_scancode_escape(t)           (t)->strs[TICODE_scesc]
+#define t_scroll_forward(t)            (t)->strs[TICODE_ind]
+#define t_scroll_reverse(t)            (t)->strs[TICODE_ri]
+#define t_select_char_set(t)           (t)->strs[TICODE_scs]
+#define t_set0_des_seq(t)              (t)->strs[TICODE_s0ds]
+#define t_set1_des_seq(t)              (t)->strs[TICODE_s1ds]
+#define t_set2_des_seq(t)              (t)->strs[TICODE_s2ds]
+#define t_set3_des_seq(t)              (t)->strs[TICODE_s3ds]
+#define t_set_a_attributes(t)          (t)->strs[TICODE_sgr1]
+#define t_set_a_background(t)          (t)->strs[TICODE_setab]
+#define t_set_a_foreground(t)          (t)->strs[TICODE_setaf]
+#define t_set_attributes(t)            (t)->strs[TICODE_sgr]
+#define t_set_background(t)            (t)->strs[TICODE_setb]
+#define t_set_bottom_margin(t)         (t)->strs[TICODE_smgb]
+#define t_set_bottom_margin_parm(t)    (t)->strs[TICODE_smgbp]
+#define t_set_clock(t)                 (t)->strs[TICODE_sclk]
+#define t_set_color_band(t)            (t)->strs[TICODE_setcolor]
+#define t_set_color_paid(t)            (t)->strs[TICODE_scp]
+#define t_set_foreground(t)            (t)->strs[TICODE_setf]
+#define t_set_left_margin(t)           (t)->strs[TICODE_smgl]
+#define t_set_left_margin_parm(t)      (t)->strs[TICODE_smglp]
+#define t_set_lr_margin(t)             (t)->strs[TICODE_smglr]
+#define t_set_page_length(t)           (t)->strs[TICODE_slines]
+#define t_set_pglen_inch(t)            (t)->strs[TICODE_slength]
+#define t_set_right_margin(t)          (t)->strs[TICODE_smgr]
+#define t_set_right_margin_parm(t)     (t)->strs[TICODE_smgrp]
+#define t_set_tab(t)                   (t)->strs[TICODE_hts]
+#define t_set_tb_margin(t)             (t)->strs[TICODE_smgtb]
+#define t_set_top_margin(t)            (t)->strs[TICODE_smgt]
+#define t_set_top_margin_parm(t)       (t)->strs[TICODE_smgtp]
+#define t_set_window(t)                        (t)->strs[TICODE_wind]
+#define t_start_bit_image(t)           (t)->strs[TICODE_sbim]
+#define t_start_char_set_def(t)                (t)->strs[TICODE_scsd]
+#define t_stop_bit_image(t)            (t)->strs[TICODE_rbim]
+#define t_stop_char_set_def(t)         (t)->strs[TICODE_rcsd]
+#define t_subscript_characters(t)      (t)->strs[TICODE_subcs]
+#define t_superscript_characters(t)    (t)->strs[TICODE_supcs]
+#define t_tab(t)                       (t)->strs[TICODE_ht]
+#define t_these_cause_cr(t)            (t)->strs[TICODE_docr]
+#define t_to_status_line(t)            (t)->strs[TICODE_tsl]
+#define t_tone(t)                      (t)->strs[TICODE_tone]
+#define t_user0(t)                     (t)->strs[TICODE_u0]
+#define t_user1(t)                     (t)->strs[TICODE_u1]
+#define t_user2(t)                     (t)->strs[TICODE_u2]
+#define t_user3(t)                     (t)->strs[TICODE_u3]
+#define t_user4(t)                     (t)->strs[TICODE_u4]
+#define t_user5(t)                     (t)->strs[TICODE_u5]
+#define t_user6(t)                     (t)->strs[TICODE_u6]
+#define t_user7(t)                     (t)->strs[TICODE_u7]
+#define t_user8(t)                     (t)->strs[TICODE_u8]
+#define t_user9(t)                     (t)->strs[TICODE_u9]
+#define t_underline_char(t)            (t)->strs[TICODE_uc]
+#define t_up_half_line(t)              (t)->strs[TICODE_hu]
+#define t_wait_tone(t)                 (t)->strs[TICODE_wait]
+#define t_xoff_character(t)            (t)->strs[TICODE_xoffc]
+#define t_xon_character(t)             (t)->strs[TICODE_xonc]
+#define t_zero_motion(t)               (t)->strs[TICODE_zerom]
+
+#define acs_chars                       t_acs_chars(cur_term)
+#define alt_scancode_esc                t_alt_scancode_esc(cur_term)
+#define back_tab                        t_back_tab(cur_term)
+#define bell                            t_bell(cur_term)
+#define bit_image_carriage_return       t_bit_image_carriage_return(cur_term)
+#define bit_image_newline               t_bit_image_newline(cur_term)
+#define bit_image_repeat                t_bit_image_repeat(cur_term)
+#define carriage_return                         t_carriage_return(cur_term)
+#define change_char_pitch               t_change_char_pitch(cur_term)
+#define change_line_pitch               t_change_line_pitch(cur_term)
+#define change_res_horz                         t_change_res_horz(cur_term)
+#define change_res_vert                         t_change_res_vert(cur_term)
+#define change_scroll_region            t_change_scroll_region(cur_term)
+#define char_padding                    t_char_padding(cur_term)
+#define char_set_names                  t_char_set_names(cur_term)
+#define clear_all_tabs                  t_clear_all_tabs(cur_term)
+#define clear_margins                   t_clear_margins(cur_term)
+#define clear_screen                    t_clear_screen(cur_term)
+#define clr_bol                                 t_clr_bol(cur_term)
+#define clr_eol                                 t_clr_eol(cur_term)
+#define clr_eos                                 t_clr_eos(cur_term)
+#define code_set_init                   t_code_set_init(cur_term)
+#define color_names                     t_color_names(cur_term)
+#define column_address                  t_column_address(cur_term)
+#define command_character               t_command_character(cur_term)
+#define create_window                   t_create_window(cur_term)
+#define cursor_address                  t_cursor_address(cur_term)
+#define cursor_down                     t_cursor_down(cur_term)
+#define cursor_home                     t_cursor_home(cur_term)
+#define cursor_invisible                t_cursor_invisible(cur_term)
+#define cursor_left                     t_cursor_left(cur_term)
+#define cursor_mem_address              t_cursor_mem_address(cur_term)
+#define cursor_normal                   t_cursor_normal(cur_term)
+#define cursor_right                    t_cursor_right(cur_term)
+#define cursor_to_ll                    t_cursor_to_ll(cur_term)
+#define cursor_up                       t_cursor_up(cur_term)
+#define cursor_visible                  t_cursor_visible(cur_term)
+#define define_bit_image_region                 t_define_bit_image_region(cur_term)
+#define define_char                     t_define_char(cur_term)
+#define delete_character                t_delete_character(cur_term)
+#define delete_line                     t_delete_line(cur_term)
+#define device_type                     t_device_type(cur_term)
+#define dial_phone                      t_dial_phone(cur_term)
+#define dis_status_line                         t_dis_status_line(cur_term)
+#define display_clock                   t_display_clock(cur_term)
+#define display_pc_char                         t_display_pc_char(cur_term)
+#define down_half_time                  t_down_half_time(cur_term)
+#define ena_acs                                 t_ena_acs(cur_term)
+#define end_bit_image_region            t_end_bit_image_region(cur_term)
+#define enter_alt_charset_mode          t_enter_alt_charset_mode(cur_term)
+#define enter_am_mode                   t_enter_am_mode(cur_term)
+#define enter_blink_mode                t_enter_blink_mode(cur_term)
+#define enter_bold_mode                         t_enter_bold_mode(cur_term)
+#define enter_ca_mode                   t_enter_ca_mode(cur_term)
+#define enter_delete_mode               t_enter_delete_mode(cur_term)
+#define enter_dim_mode                  t_enter_dim_mode(cur_term)
+#define enter_doublewide_mode           t_enter_doublewide_mode(cur_term)
+#define enter_draft_quality             t_enter_draft_quality(cur_term)
+#define enter_horizontal_hl_mode        t_enter_horizontal_hl_mode(cur_term)
+#define enter_insert_mode               t_enter_insert_mode(cur_term)
+#define enter_italics_mode              t_enter_italics_mode(cur_term)
+#define enter_left_hl_mode              t_enter_left_hl_mode(cur_term)
+#define enter_leftward_mode             t_enter_leftward_mode(cur_term)
+#define enter_low_hl_mode               t_enter_low_hl_mode(cur_term)
+#define enter_micro_mode                t_enter_micro_mode(cur_term)
+#define enter_near_quality_letter       t_enter_near_quality_letter(cur_term)
+#define enter_normal_quality            t_enter_normal_quality(cur_term)
+#define enter_pc_charset_mode           t_enter_pc_charset_mode(cur_term)
+#define enter_protected_mode            t_enter_protected_mode(cur_term)
+#define enter_reverse_mode              t_enter_reverse_mode(cur_term)
+#define enter_right_hl_mode             t_enter_right_hl_mode(cur_term)
+#define enter_scancode_mode             t_enter_scancode_mode(cur_term)
+#define enter_secure_mode               t_enter_secure_mode(cur_term)
+#define enter_shadow_mode               t_enter_shadow_mode(cur_term)
+#define enter_standout_mode             t_enter_standout_mode(cur_term)
+#define enter_subscript_mode            t_enter_subscript_mode(cur_term)
+#define enter_superscript_mode          t_enter_superscript_mode(cur_term)
+#define enter_top_hl_mode               t_enter_top_hl_mode(cur_term)
+#define enter_underline_mode            t_enter_underline_mode(cur_term)
+#define enter_upward_mode               t_enter_upward_mode(cur_term)
+#define enter_vertical_hl_mode          t_enter_vertical_hl_mode(cur_term)
+#define enter_xon_mode                  t_enter_xon_mode(cur_term)
+#define erase_chars                     t_erase_chars(cur_term)
+#define exit_alt_charset_mode           t_exit_alt_charset_mode(cur_term)
+#define exit_am_mode                    t_exit_am_mode(cur_term)
+#define exit_attribute_mode             t_exit_attribute_mode(cur_term)
+#define exit_ca_mode                    t_exit_ca_mode(cur_term)
+#define exit_delete_mode                t_exit_delete_mode(cur_term)
+#define exit_doublewide_mode            t_exit_doublewide_mode(cur_term)
+#define exit_insert_mode                t_exit_insert_mode(cur_term)
+#define exit_italics_mode               t_exit_italics_mode(cur_term)
+#define exit_leftward_mode              t_exit_leftward_mode(cur_term)
+#define exit_micro_mode                         t_exit_micro_mode(cur_term)
+#define exit_pc_charset_mode            t_exit_pc_charset_mode(cur_term)
+#define exit_scancode_mode              t_exit_scancode_mode(cur_term)
+#define exit_shadow_mode                t_exit_shadow_mode(cur_term)
+#define exit_standout_mode              t_exit_standout_mode(cur_term)
+#define exit_subscript_mode             t_exit_subscript_mode(cur_term)
+#define exit_superscript_mode           t_exit_superscript_mode(cur_term)
+#define exit_underline_mode             t_exit_underline_mode(cur_term)
+#define exit_upward_mode                t_exit_upward_mode(cur_term)
+#define exit_xon_mode                   t_exit_xon_mode(cur_term)
+#define fixed_pause                     t_fixed_pause(cur_term)
+#define flash_hook                      t_flash_hook(cur_term)
+#define flash_screen                    t_flash_screen(cur_term)
+#define form_feed                       t_form_feed(cur_term)
+#define from_status_line                t_from_status_line(cur_term)
+#define get_mouse                       t_get_mouse(cur_term)
+#define goto_window                     t_goto_window(cur_term)
+#define hangup                          t_hangup(cur_term)
+#define init_1string                    t_init_1string(cur_term)
+#define init_2string                    t_init_2string(cur_term)
+#define init_3string                    t_init_3string(cur_term)
+#define init_file                       t_init_file(cur_term)
+#define init_prog                       t_init_prog(cur_term)
+#define initialize_color                t_initialize_color(cur_term)
+#define initialize_pair                         t_initialize_pair(cur_term)
+#define insert_character                t_insert_character(cur_term)
+#define insert_line                     t_insert_line(cur_term)
+#define insert_padding                  t_insert_padding(cur_term)
+#define key_a1                          t_key_a1(cur_term)
+#define key_a3                          t_key_a3(cur_term)
+#define key_b2                          t_key_b2(cur_term)
+#define key_backspace                   t_key_backspace(cur_term)
+#define key_beg                                 t_key_beg(cur_term)
+#define key_btab                        t_key_btab(cur_term)
+#define key_c1                          t_key_c1(cur_term)
+#define key_c3                          t_key_c3(cur_term)
+#define key_cancel                      t_key_cancel(cur_term)
+#define key_catab                       t_key_catab(cur_term)
+#define key_clear                       t_key_clear(cur_term)
+#define key_close                       t_key_close(cur_term)
+#define key_command                     t_key_command(cur_term)
+#define key_copy                        t_key_copy(cur_term)
+#define key_create                      t_key_create(cur_term)
+#define key_ctab                        t_key_ctab(cur_term)
+#define key_dc                          t_key_dc(cur_term)
+#define key_dl                          t_key_dl(cur_term)
+#define key_down                        t_key_down(cur_term)
+#define key_eic                                 t_key_eic(cur_term)
+#define key_end                                 t_key_end(cur_term)
+#define key_enter                       t_key_enter(cur_term)
+#define key_eol                                 t_key_eol(cur_term)
+#define key_eos                                 t_key_eos(cur_term)
+#define key_exit                        t_key_exit(cur_term)
+#define key_f0                          t_key_f0(cur_term)
+#define key_f1                          t_key_f1(cur_term)
+#define key_f2                          t_key_f2(cur_term)
+#define key_f3                          t_key_f3(cur_term)
+#define key_f4                          t_key_f4(cur_term)
+#define key_f5                          t_key_f5(cur_term)
+#define key_f6                          t_key_f6(cur_term)
+#define key_f7                          t_key_f7(cur_term)
+#define key_f8                          t_key_f8(cur_term)
+#define key_f9                          t_key_f9(cur_term)
+#define key_f10                                 t_key_f10(cur_term)
+#define key_f11                                 t_key_f11(cur_term)
+#define key_f12                                 t_key_f12(cur_term)
+#define key_f13                                 t_key_f13(cur_term)
+#define key_f14                                 t_key_f14(cur_term)
+#define key_f15                                 t_key_f15(cur_term)
+#define key_f16                                 t_key_f16(cur_term)
+#define key_f17                                 t_key_f17(cur_term)
+#define key_f18                                 t_key_f18(cur_term)
+#define key_f19                                 t_key_f19(cur_term)
+#define key_f20                                 t_key_f20(cur_term)
+#define key_f21                                 t_key_f21(cur_term)
+#define key_f22                                 t_key_f22(cur_term)
+#define key_f23                                 t_key_f23(cur_term)
+#define key_f24                                 t_key_f24(cur_term)
+#define key_f25                                 t_key_f25(cur_term)
+#define key_f26                                 t_key_f26(cur_term)
+#define key_f27                                 t_key_f27(cur_term)
+#define key_f28                                 t_key_f28(cur_term)
+#define key_f29                                 t_key_f29(cur_term)
+#define key_f30                                 t_key_f30(cur_term)
+#define key_f31                                 t_key_f31(cur_term)
+#define key_f32                                 t_key_f32(cur_term)
+#define key_f33                                 t_key_f33(cur_term)
+#define key_f34                                 t_key_f34(cur_term)
+#define key_f35                                 t_key_f35(cur_term)
+#define key_f36                                 t_key_f36(cur_term)
+#define key_f37                                 t_key_f37(cur_term)
+#define key_f38                                 t_key_f38(cur_term)
+#define key_f39                                 t_key_f39(cur_term)
+#define key_f40                                 t_key_f40(cur_term)
+#define key_f41                                 t_key_f41(cur_term)
+#define key_f42                                 t_key_f42(cur_term)
+#define key_f43                                 t_key_f43(cur_term)
+#define key_f44                                 t_key_f44(cur_term)
+#define key_f45                                 t_key_f45(cur_term)
+#define key_f46                                 t_key_f46(cur_term)
+#define key_f47                                 t_key_f47(cur_term)
+#define key_f48                                 t_key_f48(cur_term)
+#define key_f49                                 t_key_f49(cur_term)
+#define key_f50                                 t_key_f50(cur_term)
+#define key_f51                                 t_key_f51(cur_term)
+#define key_f52                                 t_key_f52(cur_term)
+#define key_f53                                 t_key_f53(cur_term)
+#define key_f54                                 t_key_f54(cur_term)
+#define key_f55                                 t_key_f55(cur_term)
+#define key_f56                                 t_key_f56(cur_term)
+#define key_f57                                 t_key_f57(cur_term)
+#define key_f58                                 t_key_f58(cur_term)
+#define key_f59                                 t_key_f59(cur_term)
+#define key_f60                                 t_key_f60(cur_term)
+#define key_f61                                 t_key_f61(cur_term)
+#define key_f62                                 t_key_f62(cur_term)
+#define key_f63                                 t_key_f63(cur_term)
+#define key_find                        t_key_find(cur_term)
+#define key_help                        t_key_help(cur_term)
+#define key_home                        t_key_home(cur_term)
+#define key_ic                          t_key_ic(cur_term)
+#define key_il                          t_key_il(cur_term)
+#define key_left                        t_key_left(cur_term)
+#define key_ll                          t_key_ll(cur_term)
+#define key_mark                        t_key_mark(cur_term)
+#define key_message                     t_key_message(cur_term)
+#define key_mouse                       t_key_mouse(cur_term)
+#define key_move                        t_key_move(cur_term)
+#define key_next                        t_key_next(cur_term)
+#define key_npage                       t_key_npage(cur_term)
+#define key_open                        t_key_open(cur_term)
+#define key_options                     t_key_options(cur_term)
+#define key_ppage                       t_key_ppage(cur_term)
+#define key_previous                    t_key_previous(cur_term)
+#define key_print                       t_key_print(cur_term)
+#define key_redo                        t_key_redo(cur_term)
+#define key_reference                   t_key_reference(cur_term)
+#define key_refresh                     t_key_refresh(cur_term)
+#define key_replace                     t_key_replace(cur_term)
+#define key_restart                     t_key_restart(cur_term)
+#define key_resume                      t_key_resume(cur_term)
+#define key_right                       t_key_right(cur_term)
+#define key_save                        t_key_save(cur_term)
+#define key_sbeg                        t_key_sbeg(cur_term)
+#define key_scancel                     t_key_scancel(cur_term)
+#define key_scommand                    t_key_scommand(cur_term)
+#define key_scopy                       t_key_scopy(cur_term)
+#define key_screate                     t_key_screate(cur_term)
+#define key_sdc                                 t_key_sdc(cur_term)
+#define key_sdl                                 t_key_sdl(cur_term)
+#define key_select                      t_key_select(cur_term)
+#define key_send                        t_key_send(cur_term)
+#define key_seol                        t_key_seol(cur_term)
+#define key_sexit                       t_key_sexit(cur_term)
+#define key_sf                          t_key_sf(cur_term)
+#define key_sfind                       t_key_sfind(cur_term)
+#define key_shelp                       t_key_shelp(cur_term)
+#define key_shome                       t_key_shome(cur_term)
+#define key_sic                                 t_key_sic(cur_term)
+#define key_sleft                       t_key_sleft(cur_term)
+#define key_smessage                    t_key_smessage(cur_term)
+#define key_smove                       t_key_smove(cur_term)
+#define key_snext                       t_key_snext(cur_term)
+#define key_soptions                    t_key_soptions(cur_term)
+#define key_sprevious                   t_key_sprevious(cur_term)
+#define key_sprint                      t_key_sprint(cur_term)
+#define key_sr                          t_key_sr(cur_term)
+#define key_sredo                       t_key_sredo(cur_term)
+#define key_sreplace                    t_key_sreplace(cur_term)
+#define key_sright                      t_key_sright(cur_term)
+#define key_srsume                      t_key_srsume(cur_term)
+#define key_ssave                       t_key_ssave(cur_term)
+#define key_ssuspend                    t_key_ssuspend(cur_term)
+#define key_stab                        t_key_stab(cur_term)
+#define key_sundo                       t_key_sundo(cur_term)
+#define key_suspend                     t_key_suspend(cur_term)
+#define key_undo                        t_key_undo(cur_term)
+#define key_up                          t_key_up(cur_term)
+#define keypad_local                    t_keypad_local(cur_term)
+#define keypad_xmit                     t_keypad_xmit(cur_term)
+#define lab_f0                          t_lab_f0(cur_term)
+#define lab_f1                          t_lab_f1(cur_term)
+#define lab_f2                          t_lab_f2(cur_term)
+#define lab_f3                          t_lab_f3(cur_term)
+#define lab_f4                          t_lab_f4(cur_term)
+#define lab_f5                          t_lab_f5(cur_term)
+#define lab_f6                          t_lab_f6(cur_term)
+#define lab_f7                          t_lab_f7(cur_term)
+#define lab_f8                          t_lab_f8(cur_term)
+#define lab_f9                          t_lab_f9(cur_term)
+#define lab_f10                                 t_lab_f10(cur_term)
+#define label_format                    t_label_format(cur_term)
+#define label_off                       t_label_off(cur_term)
+#define label_on                        t_label_on(cur_term)
+#define meta_off                        t_meta_off(cur_term)
+#define meta_on                                 t_meta_on(cur_term)
+#define micro_column_address            t_micro_column_address(cur_term)
+#define micro_down                      t_micro_down(cur_term)
+#define micro_left                      t_micro_left(cur_term)
+#define micro_right                     t_micro_right(cur_term)
+#define micro_row_address               t_micro_row_address(cur_term)
+#define micro_up                        t_micro_up(cur_term)
+#define mouse_info                      t_mouse_info(cur_term)
+#define newline                                 t_newline(cur_term)
+#define order_of_pins                   t_order_of_pins(cur_term)
+#define orig_colors                     t_orig_colors(cur_term)
+#define orig_pair                       t_orig_pair(cur_term)
+#define pad_char                        t_pad_char(cur_term)
+#define parm_dch                        t_parm_dch(cur_term)
+#define parm_delete_line                t_parm_delete_line(cur_term)
+#define parm_down_cursor                t_parm_down_cursor(cur_term)
+#define parm_down_micro                         t_parm_down_micro(cur_term)
+#define parm_ich                        t_parm_ich(cur_term)
+#define parm_index                      t_parm_index(cur_term)
+#define parm_insert_line                t_parm_insert_line(cur_term)
+#define parm_left_cursor                t_parm_left_cursor(cur_term)
+#define parm_left_micro                         t_parm_left_micro(cur_term)
+#define parm_right_cursor               t_parm_right_cursor(cur_term)
+#define parm_right_micro                t_parm_right_micro(cur_term)
+#define parm_rindex                     t_parm_rindex(cur_term)
+#define parm_up_cursor                  t_parm_up_cursor(cur_term)
+#define parm_up_micro                   t_parm_up_micro(cur_term)
+#define pc_term_options                         t_pc_term_options(cur_term)
+#define pkey_key                        t_pkey_key(cur_term)
+#define pkey_local                      t_pkey_local(cur_term)
+#define pkey_plab                       t_pkey_plab(cur_term)
+#define pkey_xmit                       t_pkey_xmit(cur_term)
+#define pkey_norm                       t_pkey_norm(cur_term)
+#define print_screen                    t_print_screen(cur_term)
+#define ptr_non                                 t_ptr_non(cur_term)
+#define ptr_off                                 t_ptr_off(cur_term)
+#define ptr_on                          t_ptr_on(cur_term)
+#define pulse                           t_pulse(cur_term)
+#define quick_dial                      t_quick_dial(cur_term)
+#define remove_clock                    t_remove_clock(cur_term)
+#define repeat_char                     t_repeat_char(cur_term)
+#define req_for_input                   t_req_for_input(cur_term)
+#define req_mouse_pos                   t_req_mouse_pos(cur_term)
+#define reset_1string                   t_reset_1string(cur_term)
+#define reset_2string                   t_reset_2string(cur_term)
+#define reset_3string                   t_reset_3string(cur_term)
+#define reset_file                      t_reset_file(cur_term)
+#define restore_cursor                  t_restore_cursor(cur_term)
+#define row_address                     t_row_address(cur_term)
+#define save_cursor                     t_save_cursor(cur_term)
+#define scancode_escape                         t_scancode_escape(cur_term)
+#define scroll_forward                  t_scroll_forward(cur_term)
+#define scroll_reverse                  t_scroll_reverse(cur_term)
+#define select_char_set                         t_select_char_set(cur_term)
+#define set0_des_seq                    t_set0_des_seq(cur_term)
+#define set1_des_seq                    t_set1_des_seq(cur_term)
+#define set2_des_seq                    t_set2_des_seq(cur_term)
+#define set3_des_seq                    t_set3_des_seq(cur_term)
+#define set_a_attributes                t_set_a_attributes(cur_term)
+#define set_a_background                t_set_a_background(cur_term)
+#define set_a_foreground                t_set_a_foreground(cur_term)
+#define set_attributes                  t_set_attributes(cur_term)
+#define set_background                  t_set_background(cur_term)
+#define set_bottom_margin               t_set_bottom_margin(cur_term)
+#define set_bottom_margin_parm          t_set_bottom_margin_parm(cur_term)
+#define set_clock                       t_set_clock(cur_term)
+#define set_color_band                  t_set_color_band(cur_term)
+#define set_color_paid                  t_set_color_paid(cur_term)
+#define set_foreground                  t_set_foreground(cur_term)
+#define set_left_margin                         t_set_left_margin(cur_term)
+#define set_left_margin_parm            t_set_left_margin_parm(cur_term)
+#define set_lr_margin                   t_set_lr_margin(cur_term)
+#define set_page_length                         t_set_page_length(cur_term)
+#define set_pglen_inch                  t_set_pglen_inch(cur_term)
+#define set_right_margin                t_set_right_margin(cur_term)
+#define set_right_margin_parm           t_set_right_margin_parm(cur_term)
+#define set_tab                                 t_set_tab(cur_term)
+#define set_tb_margin                   t_set_tb_margin(cur_term)
+#define set_top_margin                  t_set_top_margin(cur_term)
+#define set_top_margin_parm             t_set_top_margin_parm(cur_term)
+#define set_window                      t_set_window(cur_term)
+#define start_bit_image                         t_start_bit_image(cur_term)
+#define start_char_set_def              t_start_char_set_def(cur_term)
+#define stop_bit_image                  t_stop_bit_image(cur_term)
+#define stop_char_set_def               t_stop_char_set_def(cur_term)
+#define subscript_characters            t_subscript_characters(cur_term)
+#define superscript_characters          t_superscript_characters(cur_term)
+#define tab                             t_tab(cur_term)
+#define these_cause_cr                  t_these_cause_cr(cur_term)
+#define to_status_line                  t_to_status_line(cur_term)
+#define tone                            t_tone(cur_term)
+#define user0                           t_user0(cur_term)
+#define user1                           t_user1(cur_term)
+#define user2                           t_user2(cur_term)
+#define user3                           t_user3(cur_term)
+#define user4                           t_user4(cur_term)
+#define user5                           t_user5(cur_term)
+#define user6                           t_user6(cur_term)
+#define user7                           t_user7(cur_term)
+#define user8                           t_user8(cur_term)
+#define user9                           t_user9(cur_term)
+#define underline_char                  t_underline_char(cur_term)
+#define up_half_line                    t_up_half_line(cur_term)
+#define wait_tone                       t_wait_tone(cur_term)
+#define xoff_character                  t_xoff_character(cur_term)
+#define xon_character                   t_xon_character(cur_term)
+#define zero_motion                     t_zero_motion(cur_term)
+
+#ifndef _TERMINFO
+typedef struct {
+       int fildes;
+       /* We need to expose these so that the macros work */
+       const char *name;
+       const char *desc;
+       const signed char *flags;
+       const short *nums;
+       const char **strs;
+} TERMINAL;
+#endif
+
+__BEGIN_DECLS
+
+extern TERMINAL *cur_term;
+#ifndef _TERMCAP_H
+extern short ospeed;
+extern char PC;
+#endif
+
+/* setup functions */
+int            setupterm(const char *, int, int *);
+TERMINAL *     set_curterm(TERMINAL *);
+int            del_curterm(TERMINAL *);
+
+/* information functions */
+int            tigetflag(const char *);
+int            tigetnum(const char *);
+char *         tigetstr(const char *);
+/* You should note that the spec allows stuffing a char * into a long
+ * if the platform allows and the %pN is followed immediately by %l or %s */
+char *         tparm(const char *, long, long, long, long, long,
+               long, long, long, long);
+
+#ifndef _TERMCAP_H
+/* Output functions. */
+int            putp(const char *);
+int            tputs(const char *, int, int (*)(int));
+#endif
+
+/* Non standard functions, but provide a level of thread safety */
+int            ti_setupterm(TERMINAL **, const char *, int, int *);
+int            ti_getflag(const TERMINAL *, const char *);
+int            ti_getnum(const TERMINAL *, const char *);
+const char *   ti_getstr(const TERMINAL *, const char *);
+char *         t_parm(TERMINAL *, const char *,
+    long, long, long, long, long, long, long, long, long);
+
+/* These functions do not use PC or speed, but the terminal */
+int            ti_puts(const TERMINAL *, const char *, int,
+    int (*)(int, void *), void *);
+int            ti_putp(const TERMINAL *, const char *);
+
+/* Using tparm can be kunkly, so provide a variadic function */
+char *         vtparm(const char *, ...);
+/* And a thread safe version */
+char *         t_vparm(TERMINAL *, const char *, ...);
+
+/* Default to X/Open tparm, but allow it to be variadic also */
+#ifdef TPARM_VARARGS
+#  define tparm        vtparm
+#  define t_parm t_vtparm
+#endif
+
+/* Convert a termcap string into a terminfo string.
+ * The passed string is destroyed and the return string needs to be freed. */
+char *         captoinfo(char *);
+
+__END_DECLS
+#endif
diff --git a/lib/libterminfo/term_private.h b/lib/libterminfo/term_private.h
new file mode 100644 (file)
index 0000000..63c069d
--- /dev/null
@@ -0,0 +1,154 @@
+/* $NetBSD: term_private.h,v 1.8 2010/09/22 06:10:51 roy Exp $ */
+
+/*
+ * Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _TERM_PRIVATE_H_
+#define        _TERM_PRIVATE_H_
+
+/* This header should only be used by libterminfo, tic and infocmp. */
+
+/* The terminfo database structure is private to us,
+ * so it's documented here.
+ * terminfo defines the largest number as 32767 and the largest
+ * compiled entry as 4093 bytes long.
+ * Thus, we store all numbers as uint16_t, including string length.
+ * All strings are prefixed by length, including the null terminator.
+ * The largest string length we can handle is 65535 bytes,
+ * including the null terminator.
+ * The largest capability block we can handle is 65535 bytes.
+ * This means that we exceed the current terminfo defined limits.
+ * The header is version (char), name.
+ * version 0 is an alias, and the name refers to the real terminfo.
+ * version 1 capabilities are defined as so:
+ * description,
+ * cap length, num flags, index, char,
+ * cap length, num numbers, index, number,
+ * cap length, num strings, index, string,
+ * cap lelngth, num undefined caps, name, type (char), flag, number, string
+ * The database itself is created using ndbm(3) and the numbers are
+ * always stored as little endian.
+ */
+
+#include <sys/types.h>
+
+#define _TERMINFO
+
+/* We use the same ncurses tic macros so that our data is identical
+ * when a caller uses the long name macros to access te terminfo data
+ * directly. */
+#define ABSENT_BOOLEAN         ((signed char)-1)       /* 255 */
+#define ABSENT_NUMERIC         (-1)
+#define ABSENT_STRING          (char *)0
+#define CANCELLED_BOOLEAN      ((signed char)-2)       /* 254 */
+#define CANCELLED_NUMERIC      (-2)
+#define CANCELLED_STRING       (char *)(-1)
+#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1)     /* reject "-1" */
+#define VALID_NUMERIC(s) ((s) >= 0)
+#define VALID_STRING(s)  ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
+
+typedef struct {
+       const char *id;
+       char type;
+       char flag;
+       short num;
+       const char *str;
+} TERMUSERDEF;
+
+typedef struct {
+       int fildes;
+       /* We need to expose these so that the macros work */
+       const char *name;
+       const char *desc;
+       signed char *flags;
+       short *nums;
+       const char **strs;
+       /* Storage area for terminfo data */
+       char *_area;
+       size_t _arealen;
+       size_t _nuserdefs;
+       TERMUSERDEF *_userdefs;
+       /* So we don't rely on the global ospeed */
+       short _ospeed;
+       /* Output buffer for tparm */
+       char *_buf;
+       size_t _buflen;
+       size_t _bufpos;
+       /* A-Z static variables for tparm  */
+       long _snums[26];
+       /* aliases of the terminal, | separated */
+       const char *_alias;
+} TERMINAL;
+
+extern const char *    _ti_database;
+
+ssize_t                _ti_flagindex(const char *);
+ssize_t                _ti_numindex(const char *);
+ssize_t                _ti_strindex(const char *);
+const char *   _ti_flagid(ssize_t);
+const char *   _ti_numid(ssize_t);
+const char *   _ti_strid(ssize_t);
+int            _ti_getterm(TERMINAL *, const char *, int);
+void           _ti_setospeed(TERMINAL *);
+void           _ti_freeterm(TERMINAL *);
+
+/* libterminfo can compile terminfo strings too */
+#define TIC_WARNING    (1 << 0)
+#define TIC_DESCRIPTION        (1 << 1)
+#define TIC_ALIAS      (1 << 2)
+#define TIC_COMMENT    (1 << 3)
+#define TIC_EXTRA      (1 << 4)
+
+#define UINT16_T_MAX 0xffff
+
+typedef struct {
+       char *buf;
+       size_t buflen;
+       size_t bufpos;
+       size_t entries;
+} TBUF;
+
+typedef struct {
+       char *name;
+       char *alias;
+       char *desc;
+       TBUF flags;
+       TBUF nums;
+       TBUF strs;
+       TBUF extras;
+} TIC;
+
+char *_ti_grow_tbuf(TBUF *, size_t);
+char *_ti_get_token(char **, char);
+char *_ti_find_cap(TBUF *, char,  short);
+char *_ti_find_extra(TBUF *, const char *);
+size_t _ti_store_extra(TIC *, int, char *, char, char, short,
+    char *, size_t, int);
+TIC *_ti_compile(char *, int);
+ssize_t _ti_flatten(uint8_t **, const TIC *);
+void _ti_freetic(TIC *);
+#endif
diff --git a/lib/libterminfo/termcap.3 b/lib/libterminfo/termcap.3
new file mode 100644 (file)
index 0000000..da08d24
--- /dev/null
@@ -0,0 +1,144 @@
+.\"    $NetBSD: termcap.3,v 1.4 2010/02/04 09:12:55 wiz Exp $
+.\"
+.\" Copyright (c) 2009 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Roy Marples.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd December 7, 2009
+.Dt TERMCAP 3
+.Os
+.Sh NAME
+.Nm tgetent ,
+.Nm tgetnum ,
+.Nm tgetflag ,
+.Nm tgetstr ,
+.Nm tgoto ,
+.Nm tputs
+.Nd terminal independent operation routines
+.Sh LIBRARY
+.Lb libtermcap
+.Sh SYNOPSIS
+.In termcap.h
+.Vt char PC ;
+.Vt char *BC ;
+.Vt char *UP ;
+.Ft int
+.Fn tgetent "char *bp" "const char *name"
+.Ft int
+.Fn tgetnum "const char *id"
+.Ft int
+.Fn tgetflag "const char *id"
+.Ft char *
+.Fn tgetstr "const char *id" "char **area"
+.Ft char *
+.Fn tgoto "const char *cm" "int destcol" "int destline"
+.Sh DESCRIPTION
+These functions extract and use capabilities from a terminal capability
+database.
+They exist as wrappers around equivalent
+.Xr terminfo 3
+functions, which new code should use.
+These are low level routines; see
+.Xr curses 3
+for a higher level package.
+.Pp
+The
+.Fn tgetent
+function calls
+.Fn setupterm
+and configures
+.Va PC ,
+.Va UP
+and
+.Va BC .
+Only
+.Va PC
+is actually used internally.
+The
+.Fn tgetent
+function returns \-1 if none of the
+.Nm terminfo
+data base files could be opened,
+0 if the terminal name given does not match an entry,
+and 1 if all goes well.
+The
+.Fa bp
+argument is not used.
+.Pp
+The
+.Fn tgetnum
+function gets the numeric value of the capability
+.Fa id ,
+returning \-1 if it is not given for the terminal.
+The
+.Fn tgetflag
+function returns 1 if the specified capability is present in the terminal's
+entry, 0 if it is not.
+The
+.Fn tgetstr
+function returns the string value of the capability
+.Fa id .
+This is a
+.Xr terminfo 5
+string and not a
+.Nm termcap
+string;
+as such it should only be processed by
+.Fn tgoto .
+The
+.Fn tgetstr
+function returns
+.Dv NULL
+if the capability was not found.
+The
+.Fa area
+argument is unused.
+.Pp
+The
+.Fn tgoto
+function returns a cursor addressing string decoded from
+.Fa cm
+to go to column
+.Fa destcol
+in line
+.Fa destline .
+.Sh SEE ALSO
+.Xr terminfo 3 ,
+.Xr terminfo 5
+.Sh HISTORY
+.Nm termcap
+first appeared in 4.0BSD.
+.Nx 1.5
+introduced some
+.Nm termcap
+.Fn t_*
+extensions which were removed in
+.Nx 6.0
+when
+.Xr terminfo 3
+was introduced.
+.Sh AUTHORS
+.An Roy Marples Aq roy@NetBSD.org
diff --git a/lib/libterminfo/termcap.c b/lib/libterminfo/termcap.c
new file mode 100644 (file)
index 0000000..e9d4225
--- /dev/null
@@ -0,0 +1,457 @@
+/* $NetBSD: termcap.c,v 1.10 2010/10/12 12:49:27 christos Exp $ */
+
+/*
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: termcap.c,v 1.10 2010/10/12 12:49:27 christos Exp $");
+
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <stdint.h>
+#include <string.h>
+#include <term_private.h>
+#include <term.h>
+#include <termcap.h>
+#include <unistd.h>
+#include <stdio.h>
+
+#include "termcap_map.c"
+#include "termcap_hash.c"
+
+char *UP;
+char *BC;
+
+/* ARGSUSED */
+int
+tgetent(__unused char *bp, const char *name)
+{
+       int errret;
+       static TERMINAL *last = NULL;
+
+       _DIAGASSERT(name != NULL);
+
+       /* Free the old term */
+       if (last != NULL) {
+               del_curterm(last);
+               last = NULL;
+       }
+       errret = -1;
+       if (setupterm(name, STDOUT_FILENO, &errret) != 0)
+               return errret;
+       last = cur_term;
+
+       if (pad_char != NULL)
+               PC = pad_char[0];
+       UP = __UNCONST(cursor_up);
+       BC = __UNCONST(cursor_left);
+       return 1;
+}
+
+int
+tgetflag(const char *id)
+{
+       uint32_t ind;
+       size_t i;
+       TERMUSERDEF *ud;
+
+       _DIAGASSERT(id != NULL);
+
+       if (cur_term == NULL)
+               return 0;
+
+       ind = _t_flaghash((const unsigned char *)id, strlen(id));
+       if (ind <= __arraycount(_ti_cap_flagids)) {
+               if (strcmp(id, _ti_cap_flagids[ind].id) == 0)
+                       return cur_term->flags[_ti_cap_flagids[ind].ti];
+       }
+       for (i = 0; i < cur_term->_nuserdefs; i++) {
+               ud = &cur_term->_userdefs[i];
+               if (ud->type == 'f' && strcmp(ud->id, id) == 0)
+                       return ud->flag;
+       }
+       return 0;
+}
+
+int
+tgetnum(const char *id)
+{
+       uint32_t ind;
+       size_t i;
+       TERMUSERDEF *ud;
+       const TENTRY *te;
+
+       _DIAGASSERT(id != NULL);
+
+       if (cur_term == NULL)
+               return -1;
+
+       ind = _t_numhash((const unsigned char *)id, strlen(id));
+       if (ind <= __arraycount(_ti_cap_numids)) {
+               te = &_ti_cap_numids[ind];
+               if (strcmp(id, te->id) == 0) {
+                       if (!VALID_NUMERIC(cur_term->nums[te->ti]))
+                               return ABSENT_NUMERIC;
+                       return cur_term->nums[te->ti];
+               }
+       }
+       for (i = 0; i < cur_term->_nuserdefs; i++) {
+               ud = &cur_term->_userdefs[i];
+               if (ud->type == 'n' && strcmp(ud->id, id) == 0) {
+                       if (!VALID_NUMERIC(ud->num))
+                               return ABSENT_NUMERIC;
+                       return ud->num;
+               }
+       }
+       return -1;
+}
+
+char *
+tgetstr(const char *id, char **area)
+{
+       uint32_t ind;
+       size_t i;
+       TERMUSERDEF *ud;
+       const char *str;
+
+       _DIAGASSERT(id != NULL);
+
+       if (cur_term == NULL)
+               return NULL;
+
+       str = NULL;
+       ind = _t_strhash((const unsigned char *)id, strlen(id));
+       if (ind <= __arraycount(_ti_cap_strids)) {
+               if (strcmp(id, _ti_cap_strids[ind].id) == 0) {
+                       str = cur_term->strs[_ti_cap_strids[ind].ti];
+                       if (str == NULL)
+                               return NULL;
+               }
+       }
+       if (str != NULL)
+               for (i = 0; i < cur_term->_nuserdefs; i++) {
+                       ud = &cur_term->_userdefs[i];
+                       if (ud->type == 's' && strcmp(ud->id, id) == 0)
+                               str = ud->str;
+               }
+
+       /* XXX: FXIXME
+        * We should fix sgr0(me) as it has a slightly different meaning
+        * for termcap. */
+
+       if (str != NULL && area != NULL && *area != NULL) {
+               char *s;
+               s = *area;
+               strcpy(*area, str);
+               *area += strlen(*area) + 1;
+               return s;
+       }
+
+       return __UNCONST(str);
+}
+
+char *
+tgoto(const char *cm, int destcol, int destline)
+{
+       
+       _DIAGASSERT(cm != NULL);
+       return vtparm(cm, destline, destcol);
+}
+
+static const char *
+flagname(const char *key)
+{
+       uint32_t idx;
+
+       idx = _t_flaghash((const unsigned char *)key, strlen(key));
+       if (idx <= __arraycount(_ti_cap_flagids) &&
+           strcmp(key, _ti_cap_flagids[idx].id) == 0)
+               return _ti_flagid(_ti_cap_flagids[idx].ti);
+       return key;
+}
+
+static const char *
+numname(const char *key)
+{
+       uint32_t idx;
+
+       idx = _t_numhash((const unsigned char *)key, strlen(key));
+       if (idx <= __arraycount(_ti_cap_numids) && 
+           strcmp(key, _ti_cap_numids[idx].id) == 0)
+               return _ti_numid(_ti_cap_numids[idx].ti);
+       return key;
+}
+
+static const char *
+strname(const char *key)
+{
+       uint32_t idx;
+
+       idx = _t_strhash((const unsigned char *)key, strlen(key));
+       if (idx <= __arraycount(_ti_cap_strids) &&
+           strcmp(key, _ti_cap_strids[idx].id) == 0)
+               return _ti_strid(_ti_cap_strids[idx].ti);
+
+       if (strcmp(key, "tc") == 0)
+               return "use";
+
+       return key;
+}
+
+/* We don't currently map %> %B %D
+ * That means no conversion for regent100, hz1500, act4, act5, mime terms. */
+static char *
+strval(const char *val)
+{
+       char *info, *ip, c;
+       const char *ps, *pe;
+       int p;
+       size_t len, l;
+
+       len = 1024; /* no single string should be bigger */
+       info = ip = malloc(len);
+       if (info == NULL)
+               return 0;
+
+       /* Move the = */
+       *ip++ = *val++;
+
+       /* Set ps and pe to point to the start and end of the padding */
+       if (isdigit((unsigned char)*val)) {
+               for (ps = pe = val;
+                    isdigit((unsigned char)*val) || *val == '.';
+                    val++)
+                       pe++;
+               if (*val == '*') {
+                       val++;
+                       pe++;
+               }
+       } else
+               ps = pe  = NULL;
+
+       l = 0;
+       p = 1;
+       for (; *val != '\0'; val++) {
+               if (l + 2 > len)
+                       goto elen;
+               if (*val != '%') {
+                       if (*val == ',') {
+                               if (l + 3 > len)
+                                       goto elen;
+                               *ip++ = '\\';
+                               l++;
+                       }
+                       *ip++ = *val;
+                       l++;
+                       continue;
+               }
+               switch (c = *(++val)) {
+               case 'd':
+                       if (l + 6 > len)
+                               goto elen;
+                       *ip++ = '%';
+                       *ip++ = 'p';
+                       *ip++ = '0' + p;
+                       *ip++ = '%';
+                       *ip++ = 'd';
+                       l += 5;
+                       /* FALLTHROUGH */
+               case 'r':
+                       p = 3 - p;
+                       break;
+               default:
+                       /* Hope it matches a terminfo command. */
+                       *ip++ = '%';
+                       *ip++ = c;
+                       l += 2;
+                       break;
+               }
+       }
+
+       /* \E\ is valid termcap.
+        * We need to escape the final \ for terminfo. */
+       if (l > 2 && info[l - 1] == '\\' &&
+           (info[l - 2] != '\\' && info[l - 2] != '^'))
+       {
+               if (l + 1 > len)
+                       goto elen;
+               *ip++ = '\\';
+       }
+
+       /* Add our padding at the end. */
+       if (ps != NULL) {
+               size_t n = pe - ps;
+               if (l + n + 4 > len)
+                       goto elen;
+               *ip++ = '$';
+               *ip++ = '<';
+               strncpy(ip, ps, n);
+               ip += n;
+               *ip++ = '/';
+               *ip++ = '>';
+       }
+
+       *ip = '\0';
+       return info;
+
+elen:
+       free(info);
+       errno = ENOMEM;
+       return NULL;
+}
+
+typedef struct {
+       const char *name;
+       const char *cap;
+} DEF_INFO;
+
+static DEF_INFO def_infos[] = {
+       { "bel",        "^G" },
+       { "cr",         "^M" },
+       { "cud1",       "^J" },
+       { "ht",         "^I" },
+       { "ind",        "^J" },
+       { "kbs",        "^H" },
+       { "kcub1",      "^H" },
+       { "kcud1",      "^J" },
+       { "nel",        "^M^J" }
+};
+
+char *
+captoinfo(char *cap)
+{
+       char *info, *ip, *token, *val, *p, tok[3];
+       const char *name;
+       size_t len, lp, nl, vl, rl;
+       int defs[__arraycount(def_infos)], fv;
+
+       _DIAGASSERT(cap != NULL);
+
+       len = strlen(cap) * 2;
+       len += __arraycount(def_infos) * (5 + 4 + 3); /* reserve for defs */
+       info = ip = malloc(len);
+       if (info == NULL)
+               return NULL;
+
+       memset(defs, 0, sizeof(defs));
+       lp = 0;
+       tok[2] = '\0';
+       for (token = _ti_get_token(&cap, ':');
+            token != NULL;
+            token = _ti_get_token(&cap, ':'))
+       {
+               if (token[0] == '\0')
+                       continue;
+               name = token;
+               val = p = NULL;
+               fv = nl = 0;
+               if (token[1] != '\0') {
+                       tok[0] = token[0];
+                       tok[1] = token[1];
+                       nl = 1;
+                       if (token[2] == '\0') {
+                               name = flagname(tok);
+                               val = NULL;
+                       } else if (token[2] == '#') {
+                               name = numname(tok);
+                               val = token + 2;
+                       } else if (token[2] == '=') {
+                               name = strname(tok);
+                               val = strval(token + 2);
+                               fv = 1;
+                       } else
+                               nl = 0;
+               }
+               /* If not matched we may need to convert padding still. */
+               if (nl == 0) {
+                       p = strchr(name, '=');
+                       if (p != NULL) {
+                               val = strval(p);
+                               *p = '\0';
+                               fv = 1;
+                       }
+               }
+
+               /* See if this sets a default. */
+               for (nl = 0; nl < __arraycount(def_infos); nl++) {
+                       if (strcmp(name, def_infos[nl].name) == 0) {
+                               defs[nl] = 1;
+                               break;
+                       }
+               }
+
+               nl = strlen(name);
+               if (val == NULL)
+                       vl = 0;
+               else
+                       vl = strlen(val);
+               rl = nl + vl + 3; /* , \0 */
+
+               if (lp + rl > len) {
+                       if (rl < 256)
+                               len += 256;
+                       else
+                               len += rl;
+                       p = realloc(info, len);
+                       if (p == NULL)
+                               return NULL;
+                       info = p;
+               }
+
+               if (ip != info) {
+                       *ip++ = ',';
+                       *ip++ = ' ';
+               }
+
+               strcpy(ip, name);
+               ip += nl;
+               if (val != NULL) {
+                       strcpy(ip, val);
+                       ip += vl;
+                       if (fv == 1)
+                               free(val);
+               }
+       }
+
+       /* Add any defaults not set above. */
+       for (nl = 0; nl < __arraycount(def_infos); nl++) {
+               if (defs[nl] == 0) {
+                       *ip++ = ',';
+                       *ip++ = ' ';
+                       strcpy(ip, def_infos[nl].name);
+                       ip += strlen(def_infos[nl].name);
+                       *ip++ = '=';
+                       strcpy(ip, def_infos[nl].cap);
+                       ip += strlen(def_infos[nl].cap);
+               }
+       }
+
+       *ip = '\0';
+       return info;
+}
+
diff --git a/lib/libterminfo/termcap.h b/lib/libterminfo/termcap.h
new file mode 100644 (file)
index 0000000..3c5e1da
--- /dev/null
@@ -0,0 +1,57 @@
+/* $NetBSD: termcap.h,v 1.1 2010/02/03 15:16:32 roy Exp $ */
+
+/*
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _TERMCAP_H_
+#define        _TERMCAP_H_
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+#ifndef _TERM_H
+/* Output functions.
+ * These are still valid for terminfo. */
+int            putp(const char *);
+int            tputs(const char *, int, int (*)(int));
+
+extern short ospeed;
+extern char PC;
+#endif
+
+extern char *BC;
+extern char *UP;
+
+int            tgetent(char *, const char *);
+char *         tgetstr(const char *, char **);
+int            tgetflag(const char *);
+int            tgetnum(const char *);
+char *         tgoto(const char *, int, int);
+
+__END_DECLS
+#endif
diff --git a/lib/libterminfo/termcap_hash.c b/lib/libterminfo/termcap_hash.c
new file mode 100644 (file)
index 0000000..92b2090
--- /dev/null
@@ -0,0 +1,163 @@
+/* $NetBSD: termcap_hash.c,v 1.3 2010/02/12 10:18:56 roy Exp $ */
+/* DO NOT EDIT
+ * Automatically generated from termcap.c */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: termcap_hash.c,v 1.3 2010/02/12 10:18:56 roy Exp $");
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <term_private.h>
+
+#include <stdlib.h>
+
+static uint32_t
+_t_flaghash(const void * __restrict key, size_t keylen)
+{
+       static const uint8_t g[75] = {
+           0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x08, 0x00, 0x00, 0x19,
+           0x24, 0x0a, 0x00, 0x14, 0x20, 0x1d, 0x0e, 0x0d, 0x00, 0x0d,
+           0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1a, 0x00,
+           0x12, 0x00, 0x16, 0x00, 0x1d, 0x00, 0x00, 0x11, 0x00, 0x00,
+           0x00, 0x17, 0x0e, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00,
+           0x00, 0x1f, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x13, 0x00, 0x23,
+           0x00, 0x1f, 0x00, 0x00, 0x05, 0x00, 0x00, 0x15, 0x1d, 0x00,
+           0x09, 0x00, 0x0f, 0x1b, 0x01,
+       };
+       uint32_t h[3];
+
+       mi_vector_hash(key, keylen, 0x5a53bb7cU, h);
+       return (g[h[0] % 75] + g[h[1] % 75]) % 37;
+}
+
+#include <stdlib.h>
+
+static uint32_t
+_t_numhash(const void * __restrict key, size_t keylen)
+{
+       static const uint8_t g[67] = {
+           0x03, 0x0e, 0x17, 0x01, 0x10, 0x00, 0x00, 0x00, 0x1e, 0x00,
+           0x10, 0x00, 0x05, 0x13, 0x00, 0x00, 0x17, 0x00, 0x06, 0x18,
+           0x03, 0x00, 0x00, 0x09, 0x18, 0x00, 0x07, 0x00, 0x00, 0x0c,
+           0x14, 0x03, 0x01, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+           0x00, 0x1e, 0x00, 0x1d, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04,
+           0x17, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x15, 0x0e, 0x0e,
+           0x00, 0x0e, 0x00, 0x00, 0x00, 0x12, 0x00,
+       };
+       uint32_t h[3];
+
+       mi_vector_hash(key, keylen, 0x6452f8e6U, h);
+       return (g[h[0] % 67] + g[h[1] % 67]) % 33;
+}
+
+#include <stdlib.h>
+
+static uint32_t
+_t_strhash(const void * __restrict key, size_t keylen)
+{
+       static const uint16_t g[789] = {
+           0x0047, 0x015c, 0x002c, 0x00b5, 0x0000, 0x0000, 0x00ea, 0x0000,
+           0x0000, 0x0127, 0x0000, 0x00a7, 0x00c0, 0x00ee, 0x0000, 0x0049,
+           0x0000, 0x0000, 0x0000, 0x004a, 0x0136, 0x0000, 0x0140, 0x0000,
+           0x0016, 0x0123, 0x002f, 0x00e7, 0x0000, 0x0000, 0x0000, 0x0042,
+           0x0000, 0x00ee, 0x0000, 0x0000, 0x001c, 0x0009, 0x008b, 0x0000,
+           0x0002, 0x012d, 0x0000, 0x0000, 0x001f, 0x0000, 0x0000, 0x0000,
+           0x00c0, 0x0000, 0x0000, 0x0034, 0x004d, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x00de, 0x0152, 0x0000, 0x00d9, 0x00dc,
+           0x00c5, 0x0096, 0x0001, 0x0058, 0x010e, 0x00ba, 0x0000, 0x0000,
+           0x0021, 0x0000, 0x0000, 0x00f0, 0x0000, 0x0000, 0x00c6, 0x0000,
+           0x0094, 0x008d, 0x0021, 0x0000, 0x0000, 0x00b8, 0x0060, 0x0000,
+           0x000e, 0x0000, 0x0000, 0x003a, 0x0026, 0x0089, 0x003f, 0x0145,
+           0x0050, 0x0000, 0x0000, 0x0170, 0x00f0, 0x0000, 0x0000, 0x0000,
+           0x00b1, 0x007d, 0x0045, 0x00de, 0x006d, 0x0092, 0x0000, 0x0177,
+           0x0049, 0x0000, 0x0000, 0x017a, 0x0000, 0x00e1, 0x0023, 0x0000,
+           0x0000, 0x0000, 0x0096, 0x0098, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0176, 0x0089, 0x00fd, 0x0000, 0x0000, 0x00e5, 0x0000, 0x0000,
+           0x0170, 0x0000, 0x014b, 0x0022, 0x0075, 0x0000, 0x0000, 0x0000,
+           0x0170, 0x0015, 0x014f, 0x012e, 0x0041, 0x010c, 0x0159, 0x00c1,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x0147, 0x0011, 0x0045, 0x0150,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x003e, 0x0000, 0x0000, 0x0168,
+           0x00fe, 0x0000, 0x0000, 0x00b2, 0x0000, 0x007a, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x0079, 0x0000, 0x0031, 0x015e, 0x0024,
+           0x0090, 0x0000, 0x0000, 0x0000, 0x005b, 0x0000, 0x00eb, 0x0000,
+           0x0142, 0x0091, 0x016f, 0x0180, 0x00a8, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x00e2, 0x0075, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0050, 0x016d, 0x00f5, 0x0018, 0x006d, 0x0059,
+           0x00bb, 0x0048, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ec, 0x0130,
+           0x0054, 0x0067, 0x0000, 0x0000, 0x0000, 0x016e, 0x0072, 0x0154,
+           0x0000, 0x0000, 0x0000, 0x012d, 0x00a5, 0x007c, 0x0000, 0x0036,
+           0x0071, 0x0000, 0x0080, 0x0000, 0x00ba, 0x0000, 0x00e5, 0x0064,
+           0x0173, 0x006c, 0x0043, 0x00ab, 0x0152, 0x0082, 0x0000, 0x0172,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x0172, 0x010a, 0x0000, 0x003e,
+           0x015b, 0x0000, 0x00dd, 0x0088, 0x0000, 0x003e, 0x0152, 0x006a,
+           0x0000, 0x0000, 0x0000, 0x0169, 0x0076, 0x008e, 0x000a, 0x009b,
+           0x0000, 0x0000, 0x0033, 0x014e, 0x0000, 0x0000, 0x0145, 0x0041,
+           0x00bd, 0x012f, 0x0177, 0x0053, 0x0031, 0x0054, 0x0000, 0x0000,
+           0x0000, 0x0105, 0x0000, 0x0000, 0x0000, 0x0000, 0x011b, 0x00b6,
+           0x00c7, 0x00b4, 0x0000, 0x0000, 0x0112, 0x009b, 0x0000, 0x0000,
+           0x00cd, 0x0000, 0x0052, 0x0094, 0x005d, 0x00f7, 0x00f5, 0x011a,
+           0x0000, 0x0000, 0x00ed, 0x0000, 0x00c2, 0x0000, 0x0000, 0x0000,
+           0x011b, 0x0000, 0x0000, 0x0000, 0x0124, 0x0064, 0x0000, 0x0000,
+           0x0045, 0x0063, 0x0131, 0x0170, 0x0000, 0x0090, 0x0000, 0x0000,
+           0x0000, 0x015d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0023, 0x0146, 0x00ec, 0x0017, 0x0000, 0x0000, 0x0029, 0x0000,
+           0x0181, 0x0000, 0x0000, 0x00a0, 0x0000, 0x015e, 0x0043, 0x0000,
+           0x00f8, 0x0037, 0x0000, 0x0110, 0x0000, 0x0147, 0x0000, 0x009f,
+           0x006f, 0x0000, 0x0140, 0x008c, 0x0000, 0x0169, 0x0000, 0x0061,
+           0x005c, 0x0000, 0x0185, 0x0000, 0x0000, 0x0000, 0x001e, 0x0000,
+           0x0000, 0x0042, 0x0111, 0x0181, 0x0000, 0x006e, 0x0000, 0x0000,
+           0x0058, 0x0041, 0x0000, 0x0000, 0x0000, 0x0035, 0x0048, 0x00d9,
+           0x0000, 0x0000, 0x0000, 0x0166, 0x0033, 0x0000, 0x00f1, 0x0022,
+           0x00eb, 0x0110, 0x0000, 0x0000, 0x00ad, 0x0113, 0x015d, 0x0000,
+           0x012e, 0x0000, 0x0000, 0x0000, 0x0136, 0x0000, 0x0189, 0x0000,
+           0x0000, 0x00ce, 0x015a, 0x000b, 0x006f, 0x0000, 0x00a0, 0x0000,
+           0x0000, 0x0112, 0x017a, 0x0000, 0x0000, 0x0040, 0x0138, 0x008b,
+           0x007e, 0x0187, 0x0140, 0x00c2, 0x0000, 0x0061, 0x0000, 0x0155,
+           0x0000, 0x0000, 0x0117, 0x0000, 0x00c5, 0x0000, 0x0000, 0x00a0,
+           0x0000, 0x00e1, 0x0000, 0x0000, 0x0128, 0x0000, 0x0000, 0x0000,
+           0x0188, 0x0000, 0x005f, 0x0000, 0x0133, 0x0044, 0x0000, 0x0000,
+           0x0000, 0x0077, 0x0123, 0x0000, 0x010a, 0x005e, 0x0011, 0x00e2,
+           0x0000, 0x004c, 0x0000, 0x004d, 0x0000, 0x0000, 0x0000, 0x0088,
+           0x007a, 0x00fa, 0x0000, 0x004e, 0x0146, 0x0000, 0x006e, 0x0000,
+           0x0000, 0x0000, 0x009a, 0x0000, 0x007b, 0x0000, 0x00ee, 0x0086,
+           0x0000, 0x0000, 0x00ee, 0x0037, 0x0169, 0x0000, 0x0000, 0x00b5,
+           0x0000, 0x0164, 0x0000, 0x00d0, 0x005d, 0x0000, 0x0139, 0x0078,
+           0x00c4, 0x0000, 0x0127, 0x0062, 0x0124, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x009e, 0x00cc, 0x0000, 0x00f4, 0x0007,
+           0x0158, 0x0051, 0x0000, 0x0000, 0x0168, 0x0000, 0x00fe, 0x0009,
+           0x0141, 0x0000, 0x0154, 0x00ba, 0x0000, 0x00af, 0x016e, 0x0000,
+           0x00b0, 0x00ed, 0x0000, 0x0000, 0x0000, 0x012a, 0x0000, 0x0000,
+           0x0077, 0x0169, 0x0028, 0x0000, 0x0000, 0x0180, 0x0000, 0x013f,
+           0x0000, 0x017e, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0000,
+           0x0118, 0x0000, 0x0000, 0x0098, 0x0000, 0x016b, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0122, 0x0000, 0x0000, 0x0000, 0x0014, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x002f, 0x016d, 0x00d3, 0x017e, 0x0000,
+           0x0000, 0x0052, 0x0172, 0x014b, 0x0141, 0x0000, 0x0000, 0x00c8,
+           0x0000, 0x0000, 0x0128, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x00b0, 0x0057, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0033, 0x0000, 0x0000, 0x0000, 0x00af, 0x00d4, 0x0000,
+           0x0000, 0x0000, 0x014a, 0x0038, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0137, 0x0000, 0x0000, 0x0018, 0x0000, 0x0004, 0x014d,
+           0x0020, 0x001c, 0x0000, 0x0000, 0x0000, 0x0160, 0x00f0, 0x013e,
+           0x0000, 0x0000, 0x0000, 0x00ca, 0x002a, 0x0000, 0x0000, 0x014b,
+           0x0047, 0x0000, 0x0000, 0x0122, 0x00bc, 0x002a, 0x0000, 0x006b,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x0099, 0x00f0, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0027, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0070, 0x0000, 0x0000, 0x0000, 0x000f, 0x0000,
+           0x0009, 0x0061, 0x003f, 0x0135, 0x0000, 0x0123, 0x0181, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x0115, 0x0059, 0x00a4, 0x0010,
+           0x0000, 0x0000, 0x0000, 0x0156, 0x0014, 0x0000, 0x0000, 0x0000,
+           0x0040, 0x00e5, 0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0003, 0x010b, 0x0046, 0x012f, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x004b, 0x0000, 0x002b, 0x0000, 0x0000, 0x0139, 0x00e8, 0x0000,
+           0x0154, 0x0000, 0x0000, 0x0000, 0x0000, 0x005a, 0x0000, 0x00e2,
+           0x0022, 0x00bd, 0x00a3, 0x00cb, 0x0144, 0x0143, 0x00f6, 0x0000,
+           0x0026, 0x012b, 0x0000, 0x0053, 0x0000, 0x0000, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x0172, 0x0000, 0x0000,
+           0x0000, 0x0000, 0x0000, 0x00b4, 0x0136,
+       };
+       uint32_t h[3];
+
+       mi_vector_hash(key, keylen, 0x9090e0f1U, h);
+       return (g[h[0] % 789] + g[h[1] % 789]) % 394;
+}
diff --git a/lib/libterminfo/termcap_map.c b/lib/libterminfo/termcap_map.c
new file mode 100644 (file)
index 0000000..00814ad
--- /dev/null
@@ -0,0 +1,511 @@
+/* $NetBSD: termcap_map.c,v 1.3 2010/09/22 06:10:51 roy Exp $ */
+
+/*
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: termcap_map.c,v 1.3 2010/09/22 06:10:51 roy Exp $");
+
+typedef struct {
+       const char id[3];
+       int ti;
+} TENTRY;
+
+static const TENTRY _ti_cap_flagids[] = {
+       { "bw", TICODE_bw },
+       { "am", TICODE_am },
+       { "ut", TICODE_bce },
+       { "cc", TICODE_ccc },
+       { "xs", TICODE_xhp },
+       { "YA", TICODE_xhpa },
+       { "YF", TICODE_cpix },
+       { "YB", TICODE_crxm },
+       { "xt", TICODE_xt },
+       { "xn", TICODE_xenl },
+       { "eo", TICODE_eo },
+       { "gn", TICODE_gn },
+       { "hc", TICODE_hc },
+       { "HC", TICODE_chts },
+       { "km", TICODE_km },
+       { "YC", TICODE_daisy },
+       { "hs", TICODE_hs },
+       { "hl", TICODE_hls },
+       { "in", TICODE_in },
+       { "YG", TICODE_lpix },
+       { "da", TICODE_da },
+       { "db", TICODE_db },
+       { "mi", TICODE_mir },
+       { "ms", TICODE_msgr },
+       { "nx", TICODE_nxon },
+       { "xb", TICODE_xsb },
+       { "NP", TICODE_npc },
+       { "ND", TICODE_ndscr },
+       { "NR", TICODE_nrrmc },
+       { "os", TICODE_os } ,
+       { "5i", TICODE_mc5i },
+       { "YD", TICODE_xvpa },
+       { "YE", TICODE_sam },
+       { "es", TICODE_eslok },
+       { "hz", TICODE_hz },
+       { "ul", TICODE_ul },
+       { "xo", TICODE_xon }
+};
+
+static const TENTRY _ti_cap_numids[] = {
+       { "Yo", TICODE_bitwin },
+       { "Yp", TICODE_bitype },
+       { "Ya", TICODE_bufsz },
+       { "BT", TICODE_btns },
+       { "co", TICODE_cols },
+       { "Yc", TICODE_spinh },
+       { "Yb", TICODE_spinv },
+       { "it", TICODE_it },
+       { "lh", TICODE_lh },
+       { "lw", TICODE_lw },
+       { "li", TICODE_lines },
+       { "lm", TICODE_lm },
+       { "ma", TICODE_ma },
+       { "sg", TICODE_xmc },
+       { "Co", TICODE_colors },
+       { "Yd", TICODE_maddr },
+       { "Ye", TICODE_mjump },
+       { "pa", TICODE_pairs },
+       { "MW", TICODE_wnum },
+       { "Yf", TICODE_mcs },
+       { "Yg", TICODE_mls },
+       { "NC", TICODE_ncv },
+       { "Nl", TICODE_nlab },
+       { "Yh", TICODE_npins },
+       { "Yi", TICODE_orc },
+       { "Yj", TICODE_orl },
+       { "Yk", TICODE_orhi },
+       { "Yl", TICODE_orvi },
+       { "pb", TICODE_pb },
+       { "Ym", TICODE_cps },
+       { "vt", TICODE_vt },
+       { "Yn", TICODE_widcs },
+       { "ws", TICODE_wsl }
+};
+
+static const TENTRY _ti_cap_strids[] = {
+       { "ac", TICODE_acsc },
+       { "S8", TICODE_scesa },
+       { "bt", TICODE_cbt },
+       { "bl", TICODE_bel },
+       { "Yv", TICODE_bicr },
+       { "Zz", TICODE_binel },
+       { "Xy", TICODE_birep },
+       { "cr", TICODE_cr },
+       { "ZA", TICODE_cpi },
+       { "ZB", TICODE_lpi },
+       { "ZC", TICODE_chr },
+       { "ZD", TICODE_cvr },
+       { "cs", TICODE_csr },
+       { "rP", TICODE_rmp },
+       { "Zy", TICODE_csnm },
+       { "ct", TICODE_tbc },
+       { "MC", TICODE_mgc },
+       { "cl", TICODE_clear },
+       { "cb", TICODE_el1 },
+       { "ce", TICODE_el },
+       { "cd", TICODE_ed },
+       { "ci", TICODE_csin },
+       { "Yw", TICODE_colornm },
+       { "ch", TICODE_hpa },
+       { "CC", TICODE_cmdch },
+       { "cm", TICODE_cup },
+       { "do", TICODE_cud1 },
+       { "ho", TICODE_home },
+       { "vi", TICODE_civis },
+       { "le", TICODE_cub1 },
+       { "CM", TICODE_mrcup },
+       { "ve", TICODE_cnorm },
+       { "nd", TICODE_cuf1 },
+       { "ll", TICODE_ll },
+       { "up", TICODE_cuu1 },
+       { "vs", TICODE_cvvis },
+       { "Yx", TICODE_defbi },
+       { "ZE", TICODE_defc },
+       { "dc", TICODE_dch1 },
+       { "dl", TICODE_dl1 },
+       { "dv", TICODE_devt },
+       { "DI", TICODE_dial },
+       { "ds", TICODE_dsl },
+       { "DK", TICODE_dclk },
+       { "S1", TICODE_dispc },
+       { "hd", TICODE_hd },
+       { "eA", TICODE_enacs },
+       { "Yy", TICODE_endbi },
+       { "as", TICODE_smacs },
+       { "SA", TICODE_smam },
+       { "mb", TICODE_blink },
+       { "md", TICODE_bold },
+       { "ti", TICODE_smcup },
+       { "dm", TICODE_smdc },
+       { "mh", TICODE_dim },
+       { "ZF", TICODE_swidm },
+       { "ZG", TICODE_sdrfq },
+       { "Xh", TICODE_ehhlm },
+       { "im", TICODE_smir },
+       { "ZH", TICODE_sitm },
+       { "Xl", TICODE_elhlm },
+       { "ZI", TICODE_slm },
+       { "Xo", TICODE_elohlm },
+       { "ZJ", TICODE_smicm },
+       { "ZK", TICODE_snlq },
+       { "ZL", TICODE_snrmq },
+       { "S2", TICODE_smpch },
+       { "mp", TICODE_prot },
+       { "mr", TICODE_rev },
+       { "Xr", TICODE_erhlm },
+       { "S4", TICODE_smsc },
+       { "mk", TICODE_invis },
+       { "ZM", TICODE_sshm },
+       { "so", TICODE_smso },
+       { "ZN", TICODE_ssubm },
+       { "ZO", TICODE_ssupm },
+       { "Xt", TICODE_ethlm },
+       { "us", TICODE_smul },
+       { "ZP", TICODE_sum },
+       { "Xv", TICODE_evhlm },
+       { "SX", TICODE_smxon },
+       { "ec", TICODE_ech },
+       { "ae", TICODE_rmacs },
+       { "RA", TICODE_rmam },
+       { "me", TICODE_sgr0 },
+       { "te", TICODE_rmcup },
+       { "ed", TICODE_rmdc },
+       { "ZQ", TICODE_rwidm },
+       { "ei", TICODE_rmir },
+       { "ZR", TICODE_ritm },
+       { "ZS", TICODE_rlm },
+       { "ZT", TICODE_rmicm },
+       { "S3", TICODE_rmpch },
+       { "S5", TICODE_rmsc },
+       { "ZU", TICODE_rshm },
+       { "se", TICODE_rmso },
+       { "ZV", TICODE_rsubm },
+       { "ZW", TICODE_rsupm },
+       { "ue", TICODE_rmul },
+       { "ZX", TICODE_rum },
+       { "RX", TICODE_rmxon },
+       { "PA", TICODE_pause },
+       { "fh", TICODE_hook },
+       { "vb", TICODE_flash },
+       { "ff", TICODE_ff },
+       { "fs", TICODE_fsl },
+       { "Gm", TICODE_getm },
+       { "WG", TICODE_wingo },
+       { "HU", TICODE_hup },
+       { "i1", TICODE_is1 },
+       { "i2", TICODE_is2 },
+       { "i3", TICODE_is3 },
+       { "is", TICODE_is2 },
+       { "if", TICODE_if },
+       { "iP", TICODE_iprog },
+       { "Ic", TICODE_initc },
+       { "Ip", TICODE_initp },
+       { "ic", TICODE_ich1 },
+       { "al", TICODE_il1 },
+       { "ip", TICODE_ip },
+       { "K1", TICODE_ka1 },
+       { "K3", TICODE_ka3 },
+       { "K2", TICODE_kb2 },
+       { "kb", TICODE_kbs },
+       { "kB", TICODE_kcbt },
+       { "K4", TICODE_kc1 },
+       { "K5", TICODE_kc3 },
+       { "ka", TICODE_ktbc },
+       { "kC", TICODE_kclr },
+       { "kt", TICODE_kctab },
+       { "kD", TICODE_kdch1 },
+       { "kL", TICODE_kdl1 },
+       { "kd", TICODE_kcud1 },
+       { "kM", TICODE_krmir },
+       { "kE", TICODE_kel },
+       { "kS", TICODE_ked },
+       { "k0", TICODE_kf0 },
+       { "k1", TICODE_kf1 },
+       { "k2", TICODE_kf2 },
+       { "k3", TICODE_kf3 },
+       { "k4", TICODE_kf4 },
+       { "k5", TICODE_kf5 },
+       { "k6", TICODE_kf6 },
+       { "k7", TICODE_kf7 },
+       { "k8", TICODE_kf8 },
+       { "k9", TICODE_kf9 },
+       { "k;", TICODE_kf10 },
+       { "F1", TICODE_kf11 },
+       { "F2", TICODE_kf12 },
+       { "F3", TICODE_kf13 },
+       { "F4", TICODE_kf14 },
+       { "F5", TICODE_kf15 },
+       { "F6", TICODE_kf16 },
+       { "F7", TICODE_kf17 },
+       { "F8", TICODE_kf18 },
+       { "F9", TICODE_kf19 },
+       { "FA", TICODE_kf20 },
+       { "FB", TICODE_kf21 },
+       { "FC", TICODE_kf22 },
+       { "FD", TICODE_kf23 },
+       { "FE", TICODE_kf24 },
+       { "FF", TICODE_kf25 },
+       { "FG", TICODE_kf26 },
+       { "FH", TICODE_kf27 },
+       { "FI", TICODE_kf28 },
+       { "FJ", TICODE_kf29 },
+       { "FK", TICODE_kf30 },
+       { "FL", TICODE_kf31 },
+       { "FM", TICODE_kf32 },
+       { "FN", TICODE_kf33 },
+       { "FO", TICODE_kf34 },
+       { "FP", TICODE_kf35 },
+       { "FQ", TICODE_kf36 },
+       { "FR", TICODE_kf37 },
+       { "FS", TICODE_kf38 },
+       { "FT", TICODE_kf39 },
+       { "FU", TICODE_kf40 },
+       { "FV", TICODE_kf41 },
+       { "FW", TICODE_kf42 },
+       { "FX", TICODE_kf43 },
+       { "FY", TICODE_kf44 },
+       { "FZ", TICODE_kf45 },
+       { "Fa", TICODE_kf46 },
+       { "Fb", TICODE_kf47 },
+       { "Fc", TICODE_kf48 },
+       { "Fd", TICODE_kf49 },
+       { "Fe", TICODE_kf50 },
+       { "Ff", TICODE_kf51 },
+       { "Fg", TICODE_kf52 },
+       { "Fh", TICODE_kf53 },
+       { "Fi", TICODE_kf54 },
+       { "Fj", TICODE_kf55 },
+       { "Fk", TICODE_kf56 },
+       { "Fl", TICODE_kf57 },
+       { "Fm", TICODE_kf58 },
+       { "Fn", TICODE_kf59 },
+       { "Fo", TICODE_kf60 },
+       { "Fp", TICODE_kf61 },
+       { "Fq", TICODE_kf62 },
+       { "Fr", TICODE_kf63 },
+       { "%1", TICODE_khlp },
+       { "kh", TICODE_khome },
+       { "kI", TICODE_kich1 },
+       { "kA", TICODE_kil1 },
+       { "kl", TICODE_kcub1 },
+       { "kH", TICODE_kll },
+       { "%2", TICODE_kmrk },
+       { "%3", TICODE_kmsg },
+       { "Km", TICODE_kmous },
+       { "%4", TICODE_kmov },
+       { "%5", TICODE_knxt },
+       { "kN", TICODE_knp },
+       { "%6", TICODE_kopn },
+       { "%7", TICODE_kopt },
+       { "kP", TICODE_kpp },
+       { "%8", TICODE_kprv },
+       { "%9", TICODE_kprt },
+       { "%0", TICODE_krdo },
+       { "&1", TICODE_kref },
+       { "&2", TICODE_krfr },
+       { "&3", TICODE_krpl },
+       { "&4", TICODE_krst },
+       { "&5", TICODE_kres },
+       { "kr", TICODE_kcuf1 },
+       { "&6", TICODE_ksav },
+       { "&9", TICODE_kBEG },
+       { "&0", TICODE_kCAN },
+       { "*1", TICODE_kCMD },
+       { "*2", TICODE_kCPY },
+       { "*3", TICODE_kCRT },
+       { "*4", TICODE_kDC },
+       { "*5", TICODE_kDL },
+       { "*6", TICODE_kslt },
+       { "*7", TICODE_kEND },
+       { "*8", TICODE_kEOL },
+       { "*9", TICODE_kEXT },
+       { "kF", TICODE_kind },
+       { "*0", TICODE_kFND },
+       { "#1", TICODE_kHLP },
+       { "#2", TICODE_kHOM },
+       { "#3", TICODE_kIC },
+       { "#4", TICODE_kLFT },
+       { "%a", TICODE_kMSG },
+       { "%b", TICODE_kMOV },
+       { "%c", TICODE_kNXT },
+       { "%d", TICODE_kOPT },
+       { "%e", TICODE_kPRV },
+       { "%f", TICODE_kPRT },
+       { "kR", TICODE_kri },
+       { "%g", TICODE_kRDO },
+       { "%h", TICODE_kRPL },
+       { "%i", TICODE_kRIT },
+       { "%j", TICODE_kRES },
+       { "!1", TICODE_kSAV },
+       { "!2", TICODE_kSPD },
+       { "kT", TICODE_khts },
+       { "!3", TICODE_kUND },
+       { "&7", TICODE_kspd },
+       { "&8", TICODE_kund },
+       { "ku", TICODE_kcuu1 },
+       { "ke", TICODE_rmkx },
+       { "ks", TICODE_smkx },
+       { "l0", TICODE_lf0 },
+       { "l1", TICODE_lf1 },
+       { "l2", TICODE_lf2 },
+       { "l3", TICODE_lf3 },
+       { "l4", TICODE_lf4 },
+       { "l5", TICODE_lf5 },
+       { "l6", TICODE_lf6 },
+       { "l7", TICODE_lf7 },
+       { "l8", TICODE_lf8 },
+       { "l9", TICODE_lf9 },
+       { "la", TICODE_lf10 },
+       { "Lf", TICODE_fln },
+       { "LF", TICODE_rmln },
+       { "LO", TICODE_smln },
+       { "mo", TICODE_rmm },
+       { "mm", TICODE_smm },
+       { "ZY", TICODE_mhpa },
+       { "ZZ", TICODE_mcud1 },
+       { "Za", TICODE_mcub1 },
+       { "Zb", TICODE_mcuf1 },
+       { "Zc", TICODE_mvpa },
+       { "Zd", TICODE_mcuu1 },
+       { "Mi", TICODE_minfo },
+       { "nw", TICODE_nel },
+       { "Ze", TICODE_porder },
+       { "oc", TICODE_oc },
+       { "op", TICODE_op },
+       { "pc", TICODE_pad },
+       { "DC", TICODE_dch },
+       { "DL", TICODE_dl },
+       { "DO", TICODE_cud },
+       { "Zf", TICODE_mcud },
+       { "IC", TICODE_ich },
+       { "SF", TICODE_indn },
+       { "AL", TICODE_il },
+       { "LE", TICODE_cub },
+       { "Zg", TICODE_mcub },
+       { "RI", TICODE_cuf },
+       { "Zh", TICODE_mcuf },
+       { "SR", TICODE_rin },
+       { "UP", TICODE_cuu },
+       { "Zi", TICODE_mcuu },
+       { "S6", TICODE_pctrm },
+       { "pk", TICODE_pfkey },
+       { "pl", TICODE_pfloc },
+       { "xl", TICODE_pfxl },
+       { "px", TICODE_pfx },
+       { "pn", TICODE_pln },
+       { "ps", TICODE_mc0 },
+       { "pO", TICODE_mc5p },
+       { "pf", TICODE_mc4 },
+       { "po", TICODE_mc5 },
+       { "PU", TICODE_pulse },
+       { "QD", TICODE_qdial },
+       { "RC", TICODE_rmclk },
+       { "rp", TICODE_rep },
+       { "RF", TICODE_rfi },
+       { "RQ", TICODE_reqmp },
+       { "r1", TICODE_rs1 },
+       { "r2", TICODE_rs2 },
+       { "r3", TICODE_rs3 },
+       { "rf", TICODE_rf },
+       { "rc", TICODE_rc },
+       { "cv", TICODE_vpa },
+       { "sc", TICODE_sc },
+       { "S7", TICODE_scesc },
+       { "sf", TICODE_ind },
+       { "sr", TICODE_ri },
+       { "Zj", TICODE_scs },
+       { "s0", TICODE_s0ds },
+       { "s1", TICODE_s1ds },
+       { "s2", TICODE_s2ds },
+       { "s3", TICODE_s3ds },
+       { "sA", TICODE_sgr1 },
+       { "AB", TICODE_setab },
+       { "AF", TICODE_setaf },
+       { "sa", TICODE_sgr },
+       { "Sb", TICODE_setb },
+       { "Zk", TICODE_smgb },
+       { "Zl", TICODE_smgbp },
+       { "SC", TICODE_sclk },
+       { "Yz", TICODE_slines },
+       { "sL", TICODE_slength },
+       { "sp", TICODE_scp },
+       { "Sf", TICODE_setf },
+       { "ML", TICODE_smgl }, /* We should fallback to TICODE_smglr */
+       { "Zm", TICODE_smglp },
+       { "YZ", TICODE_slines },
+       { "YI", TICODE_slength },
+       { "MR", TICODE_smgr },
+       { "Zn", TICODE_smgrp },
+       { "st", TICODE_hts },
+       { "MT", TICODE_smgtb },
+       { "Zo", TICODE_smgt },
+       { "Zp", TICODE_smgtp },
+       { "wi", TICODE_wind },
+       { "Zq", TICODE_sbim },
+       { "Zr", TICODE_scsd },
+       { "Zs", TICODE_rbim },
+       { "Zt", TICODE_rcsd },
+       { "Zu", TICODE_subcs },
+       { "Zv", TICODE_supcs },
+       { "ta", TICODE_ht },
+       { "Zw", TICODE_docr },
+       { "ts", TICODE_tsl },
+       { "TO", TICODE_tone },
+       { "u0", TICODE_u0 },
+       { "u1", TICODE_u1 },
+       { "u2", TICODE_u2 },
+       { "u3", TICODE_u3 },
+       { "u4", TICODE_u4 },
+       { "u5", TICODE_u5 },
+       { "u6", TICODE_u6 },
+       { "u7", TICODE_u7 },
+       { "u8", TICODE_u8 },
+       { "u9", TICODE_u9 },
+       { "uc", TICODE_uc },
+       { "hu", TICODE_hu },
+       { "WA", TICODE_wait },
+       { "XF", TICODE_xoffc },
+       { "XN", TICODE_xonc },
+       { "Zx", TICODE_zerom },
+
+       /* NetBSD extensions */
+       { "@0", TICODE_kfnd },
+       { "@1", TICODE_kbeg },
+       { "@2", TICODE_kcan },
+       { "@3", TICODE_kclo },
+       { "@4", TICODE_kcmd },
+       { "@5", TICODE_kcpy },
+       { "@6", TICODE_kcrt },
+       { "@7", TICODE_kend },
+       { "@8", TICODE_kent },
+       { "@9", TICODE_kext },
+};
diff --git a/lib/libterminfo/terminfo.3 b/lib/libterminfo/terminfo.3
new file mode 100644 (file)
index 0000000..eab4f49
--- /dev/null
@@ -0,0 +1,228 @@
+.\"    $NetBSD: terminfo.3,v 1.4 2010/02/04 09:12:56 wiz Exp $
+.\"
+.\" Copyright (c) 2009 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Roy Marples.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd December 7, 2009
+.Dt TERMINFO 3
+.Os
+.Sh NAME
+.Nm setupterm ,
+.Nm set_curterm ,
+.Nm del_curterm ,
+.Nm tigetflag ,
+.Nm tigetnum ,
+.Nm tigetstr ,
+.Nm tparm ,
+.Nm tputs ,
+.Nm putp
+.Nd terminal independent operation routines
+.Sh LIBRARY
+.Lb libterminfo
+.Sh SYNOPSIS
+.In term.h
+.Vt char PC ;
+.Vt short ospeed ;
+.Vt TERMINAL *cur_term ;
+.Ft int
+.Fn setupterm "const char *name" "int fildes" "int *errret"
+.Ft TERMINAL *
+.Fn set_curterm "TERMINAL *term"
+.Ft int
+.Fn del_curterm "TERMINAL *term"
+.Ft int
+.Fn tigetnum "const char *id"
+.Ft int
+.Fn tigetflag "const char *id"
+.Ft char *
+.Fn tigetstr "const char *id"
+.Ft char *
+.Fn tparm "const char *cm" "long p1" "long p2" "long p3" "long p4" "long p5" "long p6" "long p7" "long p8" "long p9"
+.Ft int
+.Fn tputs "const char *cp" "int affcnt" "int (*outc)(int)"
+.Ft int
+.Fn putp "const char *cp"
+.Ft int
+.Fn ti_setupterm "TERMINAL **" "const char *name" "int fildes" "int *error"
+.Ft int
+.Fn ti_getflag "const TERMINAL *" "const char *id"
+.Ft int
+.Fn ti_getnum "const TERMINAL *" "const char *id"
+.Ft const char *
+.Fn ti_getstr "const TERMINAL *" "const char *id"
+.Ft char *
+.Fn t_parm "const TERMINAL *" "const char *cm" "long p1" "long p2" "long p3" "long p4" "long p5" "long p6" "long p7" "long p8" "long p9"
+.Ft char *
+.Fn t_parm "const char *cm" "..."
+.Ft char *
+.Fn t_vparm "TERMINAL *" "const char *cm" "..."
+.Ft int
+.Fn ti_puts "const TERMINAL *term" "const char *str" "int affcnt" "int (*outc)(int, void *)"
+.Ft int
+.Fn ti_putp "const TERMINAL *term" "const char *str"
+.Sh DESCRIPTION
+These functions extract and use capabilities from a terminal capability
+database, usually
+.Pa /usr/share/misc/terminfo ,
+the format of which is described in
+.Xr terminfo 5 .
+These are low level routines;
+see
+.Xr curses 3
+for a higher level package.
+.Pp
+The
+.Fn setupterm
+function extracts the entry for terminal
+.Fa name
+and then calls
+.Fn set_curterm
+to set
+.Va cur_term
+to it.
+If
+.Fa name
+is
+.Dv NULL
+then it is replaced by the environment variable
+.Ev TERM .
+The
+.Fn setupterm
+function returns 0 on success and \-1 on error.
+.Va errret
+is set to \-1 if the
+.Nm terminfo
+database could not be opened,
+0 if the terminal could not be found in the database, and
+1 if all went well.
+.Pp
+The
+.Fn set_curterm
+function sets the variable
+.Va cur_term
+to
+.Va nterm
+and makes all of the
+.Nm terminfo
+boolean, numeric and string variables use the values from
+.Va nterm .
+The global variables
+.Va PC
+and
+.Va ospeed
+are then set.
+The old value of
+.Va cur_term
+is returned.
+The
+.Fn del_curterm
+function frees space pointed to by
+.Va oterm .
+.Pp
+The
+.Fn tigetflag
+function gets the boolean value of capability
+.Va id ,
+returning \-1 if it is not a valid capability.
+The
+.Fn tigetnum
+function gets the numeric value of the capability
+.Va id ,
+returning \-2 if it is not a valid capability.
+The
+.Fn tigetstr
+function returns the string value of the capability
+.Va id ,
+returning (char *)-1 if it is not a valid capability.
+.Pp
+The
+.Fn tparm
+function returns a string decoded from
+.Va cm
+with the parameters
+.Va p1
+\&...
+.Va p9
+applied.
+Some capabilities require string parameters and only platforms that can fit
+a
+.Vt char *
+pointer inside a
+.Vt long
+can use them.
+The string encoding and parameter application is described in
+.Xr terminfo 5 .
+.Pp
+The
+.Fn tputs
+function applies padding information to the string
+.Va cp ;
+.Va affcnt
+gives the number of lines affected by the operation,
+or 1 if this is not applicable;
+.Va outc
+is a function which is called by each character in turn.
+The external variable
+.Va ospeed
+controls how many padding characters are sent in relation to the terminal
+speed.
+The
+.Fn putp
+function calls tputs(str, 1, putchar).
+The output from
+.Fn putp
+always goes to stdout.
+.Ss NetBSD Extensions To Terminfo
+The
+.Fn vtparm
+function allows variadic parameters instead of 9 fixed longs.
+Numeric parameters must be longs.
+String parameters can be used even if the platform cannot fit a
+.Vt char *
+into a
+.Vt long .
+.Pp
+The
+.Fn ti_*
+functions correspond to the standard
+.Fn t*
+functions but take an additional
+.Ft TERMINAL *
+parameter so that the terminal can be specified instead of assuming
+.Va cur_term .
+These functions use private variables to the
+.Ft TERMINAL
+instead of the global variables, such as
+.Va PC
+and
+.Va ospeed .
+.Sh SEE ALSO
+.Xr ex 1 ,
+.Xr curses 3 ,
+.Xr terminfo 5
+.Sh AUTHORS
+.An Roy Marples Aq roy@NetBSD.org
diff --git a/lib/libterminfo/terminfo.5.in b/lib/libterminfo/terminfo.5.in
new file mode 100644 (file)
index 0000000..8a9bbc4
--- /dev/null
@@ -0,0 +1,267 @@
+.\"    $NetBSD: terminfo.5.in,v 1.14 2010/02/26 07:03:49 wiz Exp $
+.\"
+.\" Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Roy Marples.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd February 26, 2010
+.Dt TERMINFO 5
+.Os
+.Sh NAME
+.Nm terminfo
+.Nd terminal capability definition
+.Sh DESCRIPTION
+.Nm
+describes the capabilities of terminals, used by programs such as
+.Xr vi 1 ,
+.Xr rogue 6
+and libraries such as
+.Xr curses 3 .
+The
+.Nm
+source described here needs to be compiled with
+.Xr tic 1
+to be of any use.
+.Pp
+Entries in
+.Nm
+consist of a number of comma separated fields.
+White space after each comma is ignored.
+Embedded commas must be escaped by using a backslash.
+Lines beginning with
+.Sq #
+in the first column are treated as comments.
+Blank lines are ignored.
+.Pp
+The header line must begin in column one and end with a comma.
+Inside the header line are terminal name and aliases,
+separated by vertical bars, the last one being the long
+description of the terminal.
+.Pp
+Capability lines then follow, starting on column two and ending with a comma.
+Each capability is listed by its name, followed by its value if applicable.
+Booleans have no values, numeric values are prefixed by
+.Sq #
+and strings are prefixed by
+.Sq = .
+Numbers can range from 0 to 32767 and string values can be up to 1000
+characters long.
+This implementation supports strings upto 32767 characters long, including the
+.Dv NUL
+terminator.
+.Pp
+Some escapes are available for strings - both
+.Sy \eE
+and
+.Sy \ee
+map to the
+.Dv ESC
+character,
+.Sy ^X
+maps to a control-X for any appropriate X, and the sequences
+.Sy \en ,
+.Sy \er ,
+.Sy \et ,
+.Sy \eb
+and
+.Sy \ef
+map to linefeed, return, tab, backspace, and formfeed respectively.
+Any character can be escaped in octal, such as
+.Sy \e072 .
+If you need to encode a
+.Dv NUL
+character, it should be escaped as
+.Sy \e200 .
+.Pp
+A delay in milliseconds may appear anywhere in a string capability,
+prefixed with a dollar sign and enclosed by angled brackets, such as
+.Sy $\*[Lt]5\*[Gt] .
+.Ss String Parameters
+String capabilities sometimes require parameters.
+Normally this just involves replacing the parameter with a supplied
+variable; however, there are cases where the variable needs to be manipulated
+or used in conditional expressions.
+A stack is also provided for simple pop and push operations.
+.Pp
+The below % encodings have the following meanings:
+.Bl -tag -width %P[a-z]
+.It Sy %%
+outputs %
+.It Sy %[[:]flags][width[.precision]][doxXs]
+flags are
+.Dq [-+#] .
+Prefix with
+.Sq \&:
+to avoid interpreting
+.Dq %-
+as an operator.
+.It Sy %c
+pop a parameter and print the character representation of it.
+.It Sy %s
+pop a parameter and print the string representation of it.
+.It Sy %p[1-9]
+push the parameter [1-9].
+.It Sy %P[a-z]
+pop a parameter and push it to dynamic variable [a-z].
+.It Sy %g[a-z]
+push the dynamic variable [a-z].
+.It Sy %P[A-Z]
+pop a parameter and push it to static variable [a-z].
+.It Sy %g[A-Z]
+push the dynamic variable [A-Z].
+.Pp
+Static variables persist over
+.Fn tparm
+whereas dynamic variables do not.
+.It Sy %'c'
+char constant c.
+.It Sy %{nn}
+integer constant nn.
+.It Sy %l
+push the string length of the previously popped parameter.
+.It Sy %+ Sy %- Sy %* Sy %/ Sy %m
+arithmetic: pop two parameters and push the result.
+.It Sy %& Sy %| Sy %^
+bit operations: pop two parameters and push the result.
+.It Sy %! Sy %~
+unary operations: pop two parameters and push the result.
+.It Sy %i
+add 1 to parameters 1 and 2.
+.It Sy %? Va expr Sy %t Ic then Sy %e Ic else Sy %;
+If expr equates to zero then control passes to the optional else part.
+.El
+.Ss Boolean Capabilities
+.Bl -column "enter_near_quality_letter" "setcolor" "TC"
+.It Sy "Long name" Ta Sy "Code" Ta Sy "TC"
+@BOOLCAPS@
+.El
+.Ss Numeric Capabilities
+.Bl -column "enter_near_quality_letter" "setcolor" "TC"
+.It Sy "Long name" Ta Sy "Code" Ta Sy "TC"
+@NUMCAPS@
+.El
+.Ss String Capabilities
+.Bl -column "enter_near_quality_letter" "setcolor" "TC"
+.It Sy "Long name" Ta Sy "Code" Ta Sy "TC"
+@STRCAPS@
+.El
+.Ss A Sample Entry
+.Bd -literal
+vt100\||dec vt100 (w/advanced video),
+am, xenl, msgr, mc5i, xon,
+cols#80, it#8, lines#24, vt#3,
+acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, bel=^G,
+cr=^M, csr=\eE[%i%p1%d;%p2%dr, tbc=\eE[3g, clear=\eE[H\eE[J$\*[Lt]50\*[Gt],
+el1=\eE[1K$\*[Lt]3\*[Gt], el=\eE[K$\*[Lt]3\*[Gt], ed=\eE[J$\*[Lt]50\*[Gt],
+cup=\eE[%i%p1%d;%p2%dH$\*[Lt]5\*[Gt], cud1=^J, home=\eE[H, cub1=^H,
+cuf1=\eE[C$\*[Lt]2\*[Gt], cuu1=\eE[A$\*[Lt]2\*[Gt], enacs=\eE(B\eE)0, smacs=^N,
+smam=\eE[?7h, blink=\eE[5m$\*[Lt]2\*[Gt], bold=\eE[1m$\*[Lt]2\*[Gt], rev=\eE[7m$\*[Lt]2\*[Gt],
+smso=\eE[7m$\*[Lt]2\*[Gt], smul=\eE[4m$\*[Lt]2\*[Gt], rmacs=^O, rmam=\eE[?7l,
+sgr0=\eE[m017$\*[Lt]2\*[Gt], rmso=\eE[m$\*[Lt]2\*[Gt], rmul=\eE[m$\*[Lt]2\*[Gt], ka1=\eEOq,
+ka3=\eEOs, kb2=\eEOr, kbs=^H, kc1=\eEOp, kc3=\eEOn, kcud1=\eEOB,
+kent=\eEOM, kf0=\eEOy, kf1=\eEOP, kf2=\eEOQ, kf3=\eEOR, kf4=\eEOS,
+kf5=\eEOt, kf6=\eEOu, kf7=\eEOv, kf8=\eEOl, kf9=\eEOw, kf10=\eEOx,
+kcub1=\eEOD, kcuf1=\eEOC, kcuu1=\eEOA, rmkx=\eE[?1l\eE\*[Gt],
+smkx=\eE[?1h\eE=, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
+cud=\eE[%p1%dB, cub=\eE[%p1%dD, cuf=\eE[%p1%dC, cuu=\eE[%p1%dA,
+mc0=\eE[0i, mc4=\eE[4i, mc5=\eE[5i,
+rs2=\eE\*[Gt]\eE[?3l\eE[?4l\eE[?5l\eE[?7h\eE[?8h, rc=\eE8, sc=\eE7,
+ind=^J, ri=\eEM$\*[Lt]5\*[Gt],
+sgr=\eE[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t016%e017%;$\*[Lt]2\*[Gt],
+hts=\eEH, ht=^I,
+.Ed
+.Ss Fetching Compiled Descriptions
+This implementation uses hashed databases managed by
+.Xr ndbm 3
+instead of directories.
+To maintain compatability with other implementations,
+.Pa .db
+is appended to each file checked.
+.Pp
+If the environment variable
+.Ev TERMINFO
+is available, does not begin with
+.Pq Sq / ,
+can be compiled with the above rules and whose name matches
+.Ev TERM
+then it is used.
+.Pp
+If the environment variable
+.Ev TERMCAP
+is available and does not begin with a slash
+.Pq Sq /
+then it will be translated into
+terminfo and compiled as above.
+If its name matches
+.Ev TERM
+then it is used.
+.Pp
+If the environment variable
+.Ev TERMINFO
+is available and begins with a slash
+.Pq Sq /
+then only this file is searched.
+Otherwise
+.Nm
+will first look for
+.Pa $HOME/.terminfo ,
+followed by
+.Pa /usr/share/misc/terminfo
+unless
+.Ev TERMINFO_DIRS
+is available.
+If a matching description is not found then a small embedded database is
+searched, which currently holds descriptions for ansi, dumb, vt100, vt220,
+wsvt25, and xterm.
+.Sh FILES
+.Bl -tag -width /usr/share/misc/terminfo.db -compact
+.It Pa $HOME/.terminfo.db
+Database of terminal descriptions for personal use.
+.It Pa /usr/share/misc/terminfo
+File containing terminal descriptions.
+.It Pa /usr/share/misc/terminfo.db
+Database of terminal descriptions.
+.El
+.Sh SEE ALSO
+.Xr infocmp 1 ,
+.Xr tic 1 ,
+.Xr tput 1 ,
+.Xr curses 3 ,
+.Xr ndbm 3
+.Sh STANDARDS
+.Nm
+complies with the
+.St -xcurses4.2
+standard.
+.Pp
+Extensions to the standard are noted in
+.Xr tic 1 .
+.Sh AUTHORS
+.An Roy Marples Aq roy@NetBSD.org
+.Sh BUGS
+The
+.Ev TERMCAP
+capabilities %\*[Gt], %B and %D are not converted into terminfo capabilities.
diff --git a/lib/libterminfo/ti.c b/lib/libterminfo/ti.c
new file mode 100644 (file)
index 0000000..72c7425
--- /dev/null
@@ -0,0 +1,135 @@
+/* $NetBSD: ti.c,v 1.2 2010/02/04 09:46:26 roy Exp $ */
+
+/*
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ *
+ * This id is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source id must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: ti.c,v 1.2 2010/02/04 09:46:26 roy Exp $");
+
+#include <assert.h>
+#include <string.h>
+#include <term_private.h>
+#include <term.h>
+
+int
+ti_getflag(const TERMINAL *term, const char *id)
+{
+       ssize_t ind;
+       size_t i;
+       TERMUSERDEF *ud;
+
+       _DIAGASSERT(term != NULL);
+       _DIAGASSERT(id != NULL);
+
+       ind = _ti_flagindex(id);
+       if (ind != -1)
+               return term->flags[ind];
+       for (i = 0; i < term->_nuserdefs; i++) {
+               ud = &term->_userdefs[i];
+               if (ud->type == 'f' && strcmp(ud->id, id) == 0)
+                       return ud->flag;
+       }
+       return ABSENT_BOOLEAN;
+}
+
+int
+tigetflag(const char *id)
+{
+
+       _DIAGASSERT(id != NULL);        
+       if (cur_term != NULL)
+               return ti_getflag(cur_term, id);
+       return ABSENT_BOOLEAN;
+}
+
+int
+ti_getnum(const TERMINAL *term, const char *id)
+{
+       ssize_t ind;
+       size_t i;
+       TERMUSERDEF *ud;
+
+       _DIAGASSERT(term != NULL);
+       _DIAGASSERT(id != NULL);
+
+       ind = _ti_numindex(id);
+       if (ind != -1) {
+               if (!VALID_NUMERIC(term->nums[ind]))
+                       return ABSENT_NUMERIC;
+               return term->nums[ind];
+       }
+       for (i = 0; i < term->_nuserdefs; i++) {
+               ud = &term->_userdefs[i];
+               if (ud->type == 'n' && strcmp(ud->id, id) == 0) {
+                       if (!VALID_NUMERIC(ud->num))
+                           return ABSENT_NUMERIC;
+                       return ud->num;
+               }
+       }
+       return CANCELLED_NUMERIC;
+}
+
+int
+tigetnum(const char *id)
+{
+       
+       _DIAGASSERT(id != NULL);        
+       if (cur_term != NULL)
+               return ti_getnum(cur_term, id);
+       return CANCELLED_NUMERIC;
+}
+
+const char *
+ti_getstr(const TERMINAL *term, const char *id)
+{
+       ssize_t ind;
+       size_t i;
+       TERMUSERDEF *ud;
+
+       _DIAGASSERT(term != NULL);
+       _DIAGASSERT(id != NULL);
+
+       ind = _ti_strindex(id);
+       if (ind != -1)
+               return term->strs[ind];
+       for (i = 0; i < term->_nuserdefs; i++) {
+               ud = &term->_userdefs[i];
+               if (ud->type == 's' && strcmp(ud->id, id) == 0)
+                       return ud->str;
+       }
+       return (const char *)CANCELLED_STRING;
+}
+
+char *
+tigetstr(const char *id)
+{
+       
+       _DIAGASSERT(id != NULL);
+       if (cur_term != NULL)
+               return __UNCONST(ti_getstr(cur_term, id));
+       return (char *)CANCELLED_STRING;
+}
diff --git a/lib/libterminfo/tparm.c b/lib/libterminfo/tparm.c
new file mode 100644 (file)
index 0000000..92a2d69
--- /dev/null
@@ -0,0 +1,553 @@
+/* $NetBSD: tparm.c,v 1.2 2010/09/22 06:10:51 roy Exp $ */
+
+/*
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: tparm.c,v 1.2 2010/09/22 06:10:51 roy Exp $");
+
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <term_private.h>
+#include <term.h>
+
+static TERMINAL *dumbterm; /* For non thread safe functions */
+
+typedef struct {
+       long nums[20];
+       char *strings[20];
+       size_t offset;
+} TPSTACK;
+
+typedef struct {
+       long num;
+       char *string;
+} TPVAR;
+
+static int
+push(long num, char *string, TPSTACK *stack)
+{
+       if (stack->offset > sizeof(stack->nums)) {
+               errno = E2BIG;
+               return -1;
+       }
+       stack->nums[stack->offset] = num;
+       stack->strings[stack->offset] = string;
+       stack->offset++;
+       return 0;
+}
+
+static int
+pop(long *num, char **string, TPSTACK *stack)
+{
+       if (stack->offset == 0) {
+               errno = E2BIG;
+               return -1;
+       }
+       stack->offset--;
+       if (num)
+               *num = stack->nums[stack->offset];
+       if (string)
+               *string = stack->strings[stack->offset];
+       return 0;
+}
+
+static char *
+checkbuf(TERMINAL *term, size_t len)
+{
+       char *buf;
+       
+       if (term->_bufpos + len >= term->_buflen) {
+               len = term->_buflen + BUFSIZ;
+               buf = realloc(term->_buf, len);
+               if (buf == NULL)
+                       return 0;
+               term->_buf = buf;
+               term->_buflen = len;
+       }
+       return term->_buf;
+}
+
+static size_t
+ochar(TERMINAL *term, int c)
+{
+       if (c == 0)
+               c = 0200;
+       /* Check we have space and a terminator */
+       if (checkbuf(term, 2) == NULL)
+               return 0;
+       term->_buf[term->_bufpos++] = (char)c;
+       return 1;
+}
+
+static size_t
+onum(TERMINAL *term, const char *fmt, long num, int len)
+{
+       size_t l;
+
+       /* Assume we never have natural number longer than 64 chars */
+       if (len < 64)
+               len = 64;
+       if (checkbuf(term, (size_t)len + 1) == NULL)
+               return 0;
+       l = sprintf(term->_buf + term->_bufpos, fmt, num);
+       term->_bufpos += l;
+       return l;
+}
+
+static char *
+_ti_vtparm(TERMINAL *term, const char *str, va_list parms)
+{
+       const char *sp;
+       char c, fmt[64], *fp, *ostr;
+       long val, val2;
+       long dnums[26]; /* dynamic variables a-z, not preserved */
+       size_t l, max;
+       TPSTACK stack;
+       TPVAR params[9];
+       int done, dot, minus, width, precision, olen;
+       int piss[9]; /* Parameter IS String - piss ;) */
+
+       if (str == NULL)
+               return NULL;
+
+       /*
+         If not passed a terminal, malloc a dummy one.
+         This means we can preserve buffers and variables per terminal and
+         still work with non thread safe functions (which sadly are still the
+         norm and standard).
+       */
+       if (term == NULL) {
+               if (dumbterm == NULL) {
+                       dumbterm = malloc(sizeof(*dumbterm));
+                       if (dumbterm == NULL)
+                               return NULL;
+                       dumbterm->_buflen = 0;
+               }
+               term = dumbterm;
+       }
+
+       term->_bufpos = 0;
+       /* Ensure we have an initial buffer */
+       if (term->_buflen == 0) {
+               term->_buf = malloc(BUFSIZ);
+               if (term->_buf == NULL)
+                       return NULL;
+               term->_buflen = BUFSIZ;
+       }
+
+       /*
+         Make a first pass through the string so we can work out
+         which parameters are longs and which are char *.
+         Basically we only use char * if %p[1-9] is followed by %l or %s.
+       */
+       memset(&piss, 0, sizeof(piss));
+       max = 0;
+       sp = str;
+       while ((c = *sp++) != '\0') {
+               if (c != '%')
+                       continue;
+               c = *sp++;
+               if (c == '\0')
+                       break;
+               if (c != 'p')
+                       continue;
+               c = *sp++;
+               if (c < '1' || c > '9') {
+                       errno = EINVAL;
+                       return NULL;
+               }
+               l = c - '0';
+               if (l > max)
+                       max = l;
+               if (*sp != '%')
+                       continue;
+               /* Skip formatting */
+               sp++;
+               while (*sp == '.' || *sp == '#' || *sp == ' ' || *sp == ':' ||
+                   *sp == '-' || isdigit((unsigned char)*sp))
+                       sp++;
+               if (*sp == 'l' || *sp == 's')
+                       piss[l - 1] = 1;
+       }
+
+       /* Put our parameters into variables */
+       memset(&params, 0, sizeof(params));
+       for (l = 0; l < max; l++) {
+               if (piss[l] == 0)
+                       params[l].num = va_arg(parms, long);
+               else
+                       params[l].string = va_arg(parms, char *);
+       }
+
+       term->_bufpos = 0;
+       memset(&stack, 0, sizeof(stack));
+       while ((c = *str++) != '\0') {
+               if (c != '%' || (c = *str++) == '%') {
+                       if (c == '\0')
+                               break;
+                       if (ochar(term, c) == 0)
+                               return NULL;
+                       continue;
+               }
+
+               /* Handle formatting. */
+               fp = fmt;
+               *fp++ = '%';
+               done = dot = minus = width = precision = 0;
+               val = 0;
+               while (done == 0 && (size_t)(fp - fmt) < sizeof(fmt)) {
+                       switch (c) {
+                       case 'c': /* FALLTHROUGH */
+                       case 'd': /* FALLTHROUGH */
+                       case 'o': /* FALLTHROUGH */
+                       case 'x': /* FALLTHROUGH */
+                       case 'X': /* FALLTHROUGH */
+                       case 's':
+                               *fp++ = c;
+                               done = 1;
+                               break;
+                       case '#': /* FALLTHROUGH */
+                       case ' ':
+                               *fp++ = c;
+                               break;
+                       case '.':
+                               *fp++ = c;
+                               if (dot == 0) {
+                                       dot = 1;
+                                       width = val;
+                               } else
+                                       done = 2;
+                               val = 0;
+                               break;
+                       case ':':
+                               minus = 1;
+                               break;
+                       case '-':
+                               if (minus)
+                                       *fp++ = c;
+                               else
+                                       done = 1;
+                               break;
+                       default:
+                               if (isdigit((unsigned char)c)) {
+                                       val = (val * 10) + (c - '0');
+                                       if (val > 10000)
+                                               done = 2;
+                                       else
+                                               *fp++ = c;
+                               } else
+                                       done = 1;
+                       }
+                       if (done == 0)
+                               c = *str++;
+               }
+               if (done == 2) {
+                       /* Found an error in the format */
+                       fp = fmt + 1;
+                       *fp = *str;
+                       olen = 0;
+               } else {
+                       if (dot == 0)
+                               width = val;
+                       else
+                               precision = val;
+                       olen = (width > precision) ? width : precision;
+               }
+               *fp++ = '\0';
+
+               /* Handle commands */
+               switch (c) {
+               case 'c':
+                       if (pop(&val, NULL, &stack))
+                           return NULL;
+                       if (ochar(term, (unsigned char)val) == 0)
+                               return NULL;
+                       break;
+               case 's':
+                       if (pop(NULL, &ostr, &stack))
+                               return NULL;
+                       if (ostr != NULL) {
+                               l = strlen(ostr);
+                               if (l < (size_t)olen)
+                                       l = olen;
+                               if (checkbuf(term, (size_t)(l + 1)) == NULL)
+                                       return NULL;
+                               l = sprintf(term->_buf + term->_bufpos,
+                                   fmt, ostr);
+                               term->_bufpos += l;
+                       }
+                       break;
+               case 'l':
+                       if (pop(NULL, &ostr, &stack))
+                               return NULL;
+                       if (ostr == NULL)
+                               l = 0;
+                       else
+                               l = strlen(ostr);
+                       if (onum(term, "%d", (long)l, 0) == 0)
+                               return NULL;
+                       break;
+               case 'd': /* FALLTHROUGH */
+               case 'o': /* FALLTHROUGH */
+               case 'x': /* FALLTHROUGH */
+               case 'X':
+                       if (pop(&val, NULL, &stack))
+                               return NULL;
+                       if (onum(term, fmt, val, olen) == 0)
+                               return NULL;
+                       break;
+               case 'p':
+                       if (*str < '1' || *str > '9') {
+                               errno = EINVAL;
+                               return NULL;
+                       }
+                       l = *str++ - '1';
+                       if (push(params[l].num, params[l].string, &stack))
+                               return NULL;
+                       break;
+               case 'P':
+                       if (pop(&val, NULL, &stack))
+                               return NULL;
+                       str++;
+                       if (*str >= 'a' && *str <= 'z')
+                               dnums[*str - 'a'] = val;
+                       else if (*str >= 'A' && *str <= 'Z')
+                               term->_snums[*str - 'A'] = val;
+                       break;
+               case 'g':
+                       str++;
+                       if (*str >= 'a' && *str <= 'z') {
+                               if (push(dnums[*str - 'a'], NULL, &stack))
+                                       return NULL;
+                       } else if (*str >= 'A' && *str <= 'Z') {
+                               if (push(term->_snums[*str - 'A'],
+                                       NULL, &stack))
+                                       return NULL;
+                       }
+                       break;
+               case 'i':
+                       if (piss[0] == 0)
+                               params[0].num++;
+                       if (piss[1] == 0)
+                               params[1].num++;
+                       break;
+               case '\'':
+                       if (push((long)(unsigned char)*str++, NULL, &stack))
+                               return NULL;
+                       while (*str != '\0' && *str != '\'')
+                               str++;
+                       if (*str == '\'')
+                               str++;
+                       break;
+               case '{':
+                       val = 0;
+                       for (str++; isdigit((unsigned char)*str);  str++)
+                               val = (val * 10) + (*str - '0');
+                       if (push(val, NULL, &stack))
+                               return NULL;
+                       while (*str != '\0' && *str != '}')
+                               str++;
+                       if (*str == '}')
+                               str++;
+                       break;
+               case '+': /* FALLTHROUGH */
+               case '-': /* FALLTHROUGH */
+               case '*': /* FALLTHROUGH */
+               case '/': /* FALLTHROUGH */
+               case 'm': /* FALLTHROUGH */
+               case 'A': /* FALLTHROUGH */
+               case 'O': /* FALLTHROUGH */
+               case '&': /* FALLTHROUGH */
+               case '|': /* FALLTHROUGH */
+               case '^': /* FALLTHROUGH */
+               case '=': /* FALLTHROUGH */
+               case '<': /* FALLTHROUGH */
+               case '>':
+                       if (pop(&val, NULL, &stack) ||
+                           pop(&val2, NULL, &stack))
+                               return NULL;
+                       switch (c) {
+                       case '+':
+                               val = val + val2;
+                               break;
+                       case '-':
+                               val = val2 - val;
+                               break;
+                       case '*':
+                               val = val * val2;
+                               break;
+                       case '/':
+                               val = val ? val2 / val : 0;
+                               break;
+                       case 'm':
+                               val = val ? val2 % val : 0;
+                               break;
+                       case 'A':
+                               val = val && val2;
+                               break;
+                       case 'O':
+                               val = val || val2;
+                               break;
+                       case '&':
+                               val = val & val2;
+                               break;
+                       case '|':
+                               val = val | val2;
+                               break;
+                       case '^':
+                               val = val ^ val2;
+                               break;
+                       case '=':
+                               val = val == val2;
+                               break;
+                       case '<':
+                               val = val2 < val;
+                               break;
+                       case '>':
+                               val = val2 > val;
+                               break;
+                       }
+                       if (push(val, NULL, &stack))
+                               return NULL;
+                       break;
+               case '!':
+               case '~':
+                       if (pop(&val, NULL, &stack))
+                               return NULL;
+                       switch (*str) {
+                       case '!':
+                               val = !val;
+                               break;
+                       case '~':
+                               val = ~val;
+                               break;
+                       }
+                       if (push(val, NULL, &stack))
+                               return NULL;
+                       break;
+               case '?': /* if */
+                       break;
+               case 't': /* then */
+                       if (pop(&val, NULL, &stack))
+                               return NULL;
+                       if (val != 0) {
+                               l = 0;
+                               for (; *str != '\0'; str++) {
+                                       if (*str != '%')
+                                               continue;
+                                       str++;
+                                       if (*str == '?')
+                                               l++;
+                                       else if (*str == ';') {
+                                               if (l > 0)
+                                                       l--;
+                                               else
+                                                       break;
+                                       } else if (*str == 'e' && l == 0)
+                                               break;
+                               }
+                       }
+                       break;
+               case 'e': /* else */
+                       l = 0;
+                       for (; *str != '\0'; str++) {
+                               if (*str != '%')
+                                       continue;
+                               str++;
+                               if (*str == '?')
+                                       l++;
+                               else if (*str == ';') {
+                                       if (l > 0)
+                                               l--;
+                                       else
+                                               break;
+                               }
+                       }
+                       break;
+               case ';': /* fi */
+                       break;
+               }
+       }
+       term->_buf[term->_bufpos] = '\0';
+       return term->_buf;
+}
+
+char *
+t_vparm(TERMINAL *term, const char *str, ...)
+{
+       va_list va;
+       char *ret;
+
+       _DIAGASSERT(term != NULL);
+       _DIAGASSERT(str != NULL);
+
+       va_start(va, str);
+       ret = _ti_vtparm(term, str, va);
+       va_end(va);
+       return ret;
+}
+
+char *
+vtparm(const char *str, ...)
+{
+       va_list va;
+       char *ret;
+       
+       _DIAGASSERT(str != NULL);
+
+       va_start(va, str);
+        ret = _ti_vtparm(NULL, str, va);
+       va_end(va);
+       return ret;
+}
+
+char *
+t_parm(TERMINAL *term, const char *str,
+    long p1, long p2, long p3, long p4, long p5,
+    long p6, long p7, long p8, long p9)
+{
+       
+       _DIAGASSERT(term != NULL);
+       _DIAGASSERT(str != NULL);
+       return t_vparm(term, str, p1, p2, p3, p4, p5, p6, p7, p8, p9);
+}
+
+char *
+tparm(const char *str,
+    long p1, long p2, long p3, long p4, long p5,
+    long p6, long p7, long p8, long p9)
+{
+       
+       _DIAGASSERT(str != NULL);
+       return t_vparm(NULL, str, p1, p2, p3, p4, p5, p6, p7, p8, p9);
+}
diff --git a/lib/libterminfo/tputs.c b/lib/libterminfo/tputs.c
new file mode 100644 (file)
index 0000000..28ec676
--- /dev/null
@@ -0,0 +1,178 @@
+/* $NetBSD: tputs.c,v 1.2 2010/02/12 10:36:07 martin Exp $ */
+
+/*
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: tputs.c,v 1.2 2010/02/12 10:36:07 martin Exp $");
+
+#include <assert.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <string.h>
+#include <term_private.h>
+#include <term.h>
+
+/*
+ * The following array gives the number of tens of milliseconds per
+ * character for each speed as returned by gtty.  Thus since 300
+ * baud returns a 7, there are 33.3 milliseconds per char at 300 baud.
+ */
+static const short tmspc10[] = {
+       0, 2000, 1333, 909, 743, 666, 500, 333, 166, 83, 55, 41, 20, 10, 5
+};
+
+short ospeed;
+char PC;
+
+static int
+_ti_calcdelay(const char **str, int affcnt, int *mand)
+{
+       int i;
+       
+               i = 0;
+       /* Convert the delay */
+       while (isdigit(*(const unsigned char *)*str))
+               i = i * 10 + *(*str)++ - '0';
+       i *= 10;
+       if (*(*str) == '.') {
+               (*str)++;
+               if (isdigit(*(const unsigned char *)*str))
+                       i += *(*str) - '0';
+               while (isdigit(*(const unsigned char *)*str))
+                       (*str)++;
+       }
+       if (*(*str) == '*') {
+               (*str)++;
+               i *= affcnt;
+       } else if (*(*str) == '/') {
+               (*str)++;
+               if (mand != NULL)
+                       *mand = 1;
+       }
+       return i;
+}
+
+static void
+_ti_outputdelay(int delay, short os, char pc,
+    int (*outc)(int, void *), void *args)
+{
+       int mspc10;
+
+       if (delay < 1 || os < 1 || (size_t)os >= __arraycount(tmspc10))
+               return;
+       
+       mspc10 = tmspc10[os];
+       delay += mspc10 / 2;
+       for (delay /= mspc10; delay > 0; delay--)
+               outc(pc, args);
+}
+
+static int
+_ti_puts(int dodelay, int os, int pc,
+    const char *str, int affcnt, int (*outc)(int, void *), void *args)
+{
+       int taildelay, delay, mand;
+
+       if (str == NULL)
+               return OK;
+
+       taildelay = _ti_calcdelay(&str, affcnt, NULL);
+
+       /* Output the string with embedded delays */
+       for (; *str != '\0'; str++) {
+               if (str[0] != '$' ||
+                   str[1] != '<' ||
+                   !(isdigit((const unsigned char)str[2]) || str[2] == '.') ||
+                   strchr(str + 3, '>') == NULL)
+               {
+                       outc(*str, args);
+               } else {
+                       str += 2;
+                       mand = 0;
+                       delay = _ti_calcdelay(&str, affcnt, &mand);
+                       if (dodelay != 0 || mand != 0)
+                               _ti_outputdelay(delay, os, pc, outc, args);
+               }
+       }
+
+       /* Delay if needed */
+       if (dodelay)
+               _ti_outputdelay(taildelay, os, pc, outc, args);
+
+       return OK;
+}
+
+int
+ti_puts(const TERMINAL *term, const char *str, int affcnt,
+    int (*outc)(int, void *), void *args)
+{
+       int dodelay;
+       char pc;
+
+       _DIAGASSERT(term != NULL);
+       _DIAGASSERT(str != NULL);
+       _DIAGASSERT(outc != NULL);
+       
+       dodelay = (str == t_bell(term) ||
+           str == t_flash_screen(term) ||
+           (t_xon_xoff(term) == 0 && t_padding_baud_rate(term) != 0));
+
+       if (t_pad_char(term) == NULL)
+           pc = '\0';
+       else
+           pc = *t_pad_char(term);
+       return _ti_puts(dodelay, term->_ospeed, pc,
+           str, affcnt, outc, args);
+}
+
+int
+ti_putp(const TERMINAL *term, const char *str)
+{
+
+       _DIAGASSERT(term != NULL);
+       _DIAGASSERT(str != NULL);
+       return ti_puts(term, str, 1, (int (*)(int, void *))putchar, NULL);
+}
+
+int
+tputs(const char *str, int affcnt, int (*outc)(int))
+{
+
+       _DIAGASSERT(str != NULL);
+       _DIAGASSERT(outc != NULL);
+       return _ti_puts(1, ospeed, PC, str, affcnt,
+           (int (*)(int, void *))outc, NULL);
+}
+       
+int
+putp(const char *str)
+{
+
+       _DIAGASSERT(str != NULL);
+       return tputs(str, 1, putchar);
+}
index 8ae65e74093cb5682010a2ade09e3f49a836139b..79419bb1963674484e269d63a2899a281247815c 100644 (file)
@@ -1,5 +1,5 @@
 .include <bsd.own.mk>
 
-SUBDIR= mk zoneinfo
+SUBDIR= mk terminfo zoneinfo
 
 .include <bsd.subdir.mk>
diff --git a/share/terminfo/Makefile b/share/terminfo/Makefile
new file mode 100644 (file)
index 0000000..e332e7c
--- /dev/null
@@ -0,0 +1,19 @@
+#      $NetBSD: Makefile,v 1.2 2010/02/05 16:34:04 roy Exp $
+#      from: @(#)Makefile      8.1 (Berkeley) 6/8/93
+
+
+CLEANFILES= terminfo.db
+realall: terminfo.db
+FILES=terminfo.db terminfo
+.if defined(__MINIX)
+FILESDIR=/usr/share/terminfo
+TOOL_TIC=/usr/bin/tic
+.else
+FILESDIR=${BINDIR}/misc
+.endif
+
+terminfo.db: terminfo
+       ${_MKTARGET_CREATE}
+       ${TOOL_TIC} -ax -o "${.OBJDIR}/terminfo" "${.CURDIR}/terminfo" 
+
+.include <bsd.prog.mk>
diff --git a/share/terminfo/minix-port.patch b/share/terminfo/minix-port.patch
new file mode 100644 (file)
index 0000000..125d706
--- /dev/null
@@ -0,0 +1,20 @@
+diff -ru nbsdsrc/src/share/terminfo/Makefile share/terminfo/Makefile
+--- nbsdsrc/src/share/terminfo/Makefile
++++ share/terminfo/Makefile
+@@ -1,10 +1,16 @@
+ #     $NetBSD: Makefile,v 1.2 2010/02/05 16:34:04 roy Exp $
+ #     from: @(#)Makefile      8.1 (Berkeley) 6/8/93
++
+ CLEANFILES= terminfo.db
+ realall: terminfo.db
+ FILES=terminfo.db terminfo
++.if defined(__MINIX)
++FILESDIR=/usr/share/terminfo
++TOOL_TIC=/usr/bin/tic
++.else
+ FILESDIR=${BINDIR}/misc
++.endif
+ terminfo.db: terminfo
+       ${_MKTARGET_CREATE}
diff --git a/share/terminfo/terminfo b/share/terminfo/terminfo
new file mode 100644 (file)
index 0000000..6ffca1c
--- /dev/null
@@ -0,0 +1,21717 @@
+######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE
+#
+# This version of terminfo.src is distributed with ncurses and is maintained
+# by Thomas E. Dickey (TD).
+#
+# Report bugs and new terminal descriptions to
+#      bug-ncurses@gnu.org
+#
+#      $Revision: 1.1 $
+#      $Date: 2010/02/03 15:16:32 $
+#
+# The original header is preserved below for reference.  It is noted that there
+# is a "newer" version which differs in some cosmetic details (but actually
+# stopped updates several years ago); we have decided to not change the header
+# unless there is also a change in content.
+#
+# To further muddy the waters, it is noted that changes to this file as part of
+# maintenance of ncurses (since 1996) are generally conceded to be copyright
+# under the ncurses MIT-style license.  That was the effect of the agreement
+# which the principal authors of ncurses made in 1998.  However, since much of
+# the file itself is of unknown authorship (and the disclaimer below makes it
+# obvious that Raymond cannot or will not convey rights over those parts),
+# there is no explicit copyright notice on the file itself.
+#
+# It would also be a nuisance to split the file into unknown/known authorship
+# and move pieces as they are maintained, since many of the maintenance changes
+# have been small corrections to Raymond's translations to/from termcap format,
+# correcting the data but not the accompanying annotations.
+#
+# In any case, note that almost half of this file is not data but annotations
+# which reflect creative effort.  Furthermore, the structure of entries to
+# reuse common chunks also is creative (and subject to copyright).  Finally,
+# some portions of the data are derivative work under a compatible MIT-style
+# license from xterm.
+#
+#------------------------------------------------------------------------------
+#      Version 10.2.1
+#      terminfo syntax
+#
+#      Eric S. Raymond         (current maintainer)
+#      John Kunze, Berkeley
+#      Craig Leres, Berkeley
+#
+# Please e-mail changes to terminfo@thyrsus.com; the old termcap@berkeley.edu
+# address is no longer valid.  The latest version can always be found at
+# <http://www.tuxedo.org/terminfo>.
+#
+# PURPOSE OF THIS FILE:
+#
+# This file describes the capabilities of various character-cell terminals,
+# as needed by software such as screen-oriented editors.
+#
+# Other terminfo and termcap files exist, supported by various OS vendors
+# or as relics of various older versions of UNIX.  This one is the longest
+# and most comprehensive one in existence.  It subsumes not only the entirety
+# of the historical 4.4BSD, GNU, System V and SCO termcap files and the BRL
+# termcap file, but also large numbers of vendor-maintained termcap and
+# terminfo entries more complete and carefully tested than those in historical
+# termcap/terminfo versions.
+#
+# Pointers to related resources (including the ncurses distribution) may
+# be found at <http://www.tuxedo.org/terminfo>.
+#
+# INTERNATIONALIZATION:
+#
+# This file uses only the US-ASCII character set (no ISO8859 characters).
+#
+# This file assumes a US-ASCII character set. If you need to fix this, start
+# by global-replacing \E(B and \E)B with the appropriate ISO 6429 enablers
+# for your character set.  \E(A and \E)A enables the British character set
+# with the pound sign at position 2/3.
+#
+# In a Japanese-processing environment using EUC/Japanese or Shift-JIS,
+# C1 characters are considered the first-byte set of the Japanese encodings,
+# so \E)0 should be avoided in <enacs> and initialization strings.
+#
+# FILE FORMAT:
+#
+# The version you are looking at may be in any of three formats: master
+# (terminfo with OT capabilities), stock terminfo, or termcap.  You can tell
+# which by the format given in the header above.
+#
+# The master format is accepted and generated by the terminfo tools in the
+# ncurses suite; it differs from stock (System V-compatible) terminfo only
+# in that it admits a group of capabilities (prefixed `OT') equivalent to
+# various obsolete termcap capabilities.  You can, thus, convert from master
+# to stock terminfo simply by filtering with `sed "/OT[^,]*,/s///"'; but if
+# you have ncurses `tic -I' is nicer (among other things, it automatically
+# outputs entries in a canonical form).
+#
+# The termcap version is generated automatically from the master version
+# using tic -C.  This filtering leaves in the OT capabilities under their
+# original termcap names.  All translated entries fit within the 1023-byte
+# string-table limit of archaic termcap libraries except where explicitly
+# noted below.  Note that the termcap translation assumes that your termcap
+# library can handle multiple tc capabilities in an entry. 4.4BSD has this
+# capability.  Older versions of GNU termcap, through 1.3, do not.
+#
+# For details on these formats, see terminfo(5) in the ncurses distribution,
+# and termcap(5) in the 4.4BSD Unix Programmer's Manual.  Be aware that 4.4BSD
+# curses has been declared obsolete by the caretakers of the 4.4BSD sources
+# as of June 1995; they are encouraging everyone to migrate to ncurses.
+#
+# Note: unlike some other distributed terminfo files (Novell Unix & SCO's),
+# no entry in this file has embedded comments.  This is so source translation
+# to termcap only has to carry over leading comments.  Also, no name field
+# contains embedded whitespace (such whitespace confuses rdist).
+#
+# Further note: older versions of this file were often installed with an editor
+# script (reorder) that moved the most common terminal types to the front of
+# the file.  This should no longer be necessary, as the file is now ordered
+# roughly by type frequency with ANSI/VT100 and other common types up front.
+#
+# Some information has been merged in from terminfo files distributed by
+# USL and SCO (see COPYRIGHTS AND OTHER DELUSIONS below).  Much information
+# comes from vendors who maintain official terminfos for their hardware
+# (notably DEC and Wyse).
+#
+# A detailed change history is included at the end of this file.
+#
+# FILE ORGANIZATION:
+#
+# Comments in this file begin with # - they cannot appear in the middle
+# of a terminfo/termcap entry (this feature had to be sacrificed in order
+# to allow standard terminfo and termcap syntax to be generated cleanly from
+# the master format).  Individual capabilities are commented out by
+# placing a period between the colon and the capability name.
+#
+# The file is divided up into major sections (headed by lines beginning with
+# the string "########") and minor sections (beginning with "####"); do
+#
+#      grep "^####" <file> | more
+#
+# to see a listing of section headings.  The intent of the divisions is
+# (a) to make it easier to find things, and (b) to order the database so
+# that important and frequently-encountered terminal types are near the
+# front (so that you'll get reasonable search efficiency from a linear
+# search of the termcap form even if you don't use reorder).  Minor sections
+# usually correspond to manufacturers or standard terminal classes.
+# Parenthesized words following manufacturer names are type prefixes or
+# product line names used by that manufacturers.
+#
+# HOW TO READ THE ENTRIES:
+#
+# The first name in an entry is the canonical name for the model or
+# type, last entry is a verbose description.  Others are mnemonic synonyms for
+# the terminal.
+#
+# Terminal names look like <manufacturer> <model> - <modes/options>
+# The part to the left of the dash, if a dash is present, describes the
+# particular hardware of the terminal.  The part to the right may be used
+# for flags indicating special ROMs, extra memory, particular terminal modes,
+# or user preferences.
+#
+# All names should be in lower case, for consistency in typing.
+#
+# The following are conventionally used suffixes:
+#      -2p     Has two pages of memory.  Likewise 4p, 8p, etc.
+#      -am     Enable auto-margin.
+#      -m      Monochrome.  Suppress color support
+#      -mc     Magic-cookie.  Some terminals (notably older Wyses) can
+#              only support one attribute without magic-cookie lossage.
+#              Their base entry is usually paired with another that
+#              uses magic cookies to support multiple attributes.
+#      -nam    No auto-margin - suppress <am> capability
+#      -nl     No labels - suppress soft labels
+#      -ns     No status line - suppress status line
+#      -rv     Terminal in reverse video mode (black on white)
+#      -s      Enable status line.
+#      -vb     Use visible bell (<flash>) rather than <bel>.
+#      -w      Wide - in 132 column mode.
+# If a name has multiple suffixes and one is a line height, that one should
+# go first.  Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'.
+#
+# Entries with embedded plus signs are designed to be included through use/tc
+# capabilities, not used as standalone entries.
+#
+# To avoid search clashes, some older all-numeric names for terminals have
+# been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621).
+# All primary names of terminals now have alphanumeric prefixes.
+#
+# Comments marked "esr" are mostly results of applying the termcap-compiler
+# code packaged with ncurses and contemplating the resulting error messages.
+# In many cases, these indicated obvious fixes to syntax garbled by the
+# composers.  In a few cases, I was able to deduce corrected forms for garbled
+# capabilities by looking at context.  All the information in the original
+# entries is preserved in the comments.
+#
+# In the comments, terminfo capability names are bracketed with <> (angle
+# brackets).  Termcap capability names are bracketed with :: (colons).
+#
+# INTERPRETATION OF USER CAPABILITIES
+#
+# The System V Release 4 and XPG4 terminfo format defines ten string
+# capabilities for use by applications, <u0>...<u9>.   In this file, we use
+# certain of these capabilities to describe functions which are not covered
+# by terminfo.  The mapping is as follows:
+#
+#      u9      terminal enquire string (equiv. to ANSI/ECMA-48 DA)
+#      u8      terminal answerback description
+#      u7      cursor position request (equiv. to VT100/ANSI/ECMA-48 DSR 6)
+#      u6      cursor position report (equiv. to ANSI/ECMA-48 CPR)
+#
+# The terminal enquire string <u9> should elicit an answerback response
+# from the terminal.  Common values for <u9> will be ^E (on older ASCII
+# terminals) or \E[c (on newer VT100/ANSI/ECMA-48-compatible terminals).
+#
+# The cursor position request (<u7>) string should elicit a cursor position
+# report.  A typical value (for VT100 terminals) is \E[6n.
+#
+# The terminal answerback description (u8) must consist of an expected
+# answerback string.  The string may contain the following scanf(3)-like
+# escapes:
+#
+#      %c      Accept any character
+#      %[...]  Accept any number of characters in the given set
+#
+# The cursor position report (<u6>) string must contain two scanf(3)-style
+# %d format elements.  The first of these must correspond to the Y coordinate
+# and the second to the %d.  If the string contains the sequence %i, it is
+# taken as an instruction to decrement each value after reading it (this is
+# the inverse sense from the cup string).  The typical CPR value is
+# \E[%i%d;%dR (on VT100/ANSI/ECMA-48-compatible terminals).
+#
+# These capabilities are used by tack(1m), the terminfo action checker
+# (distributed with ncurses 5.0).
+#
+# TABSET FILES
+#
+# All the entries in this file have been edited to assume that the tabset
+# files directory is /usr/share/tabset, in conformance with the File Hierarchy
+# Standard for Linux and open-source BSD systems.  Some vendors (notably Sun)
+# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset.
+#
+# No curses package we know of actually uses these files.  If their location
+# is an issue, you will have to hand-patch the file locations before compiling
+# this file.
+#
+# REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL
+#
+# As the ANSI/ECMA-48 standard and variants take firmer hold, and as
+# character-cell terminals are increasingly replaced by X displays, much of
+# this file is becoming a historical document (this is part of the reason for
+# the new organization, which puts ANSI types, xterm, Unix consoles,
+# and vt100 up front in confidence that this will catch 95% of new hardware).
+#
+# For the terminal types still alive, I'd like to have manufacturer's
+# contact data (Internet address and/or snail-mail + phone).
+#
+# I'm also interested in enriching the comments so that the latter portions of
+# the file do in fact become a potted history of VDT technology as seen by
+# UNIX hackers.  Ideally, I'd like the headers for each manufacturer to
+# include its live/dead/out-of-the-business status, and for as many
+# terminal types as possible to be tagged with information like years
+# of heaviest use, popularity, and interesting features.
+#
+# I'm especially interested in identifying the obscure entries listed under
+# `Miscellaneous obsolete terminals, manufacturers unknown' before the tribal
+# wisdom about them gets lost.  If you know a lot about obscure old terminals,
+# please go to the terminfo resource page, grab the UFO file (ufo.ti), and
+# eyeball it for things you can identify and describe.
+#
+# If you have been around long enough to contribute, please read the file
+# with this in mind and send me your annotations.
+#
+# COPYRIGHTS AND OTHER DELUSIONS
+#
+# The BSD ancestor of this file had a standard Regents of the University of
+# California copyright with dates from 1980 to 1993.
+#
+# Some information has been merged in from a terminfo file SCO distributes.
+# It has an obnoxious boilerplate copyright which I'm ignoring because they
+# took so much of the content from the ancestral BSD versions of this file
+# and didn't attribute it, thereby violating the BSD Regents' copyright.
+#
+# Not that anyone should care.  However many valid functions copyrights may
+# serve, putting one on a termcap/terminfo file with hundreds of anonymous
+# contributors makes about as much sense as copyrighting a wall-full of
+# graffiti -- it's legally dubious, ethically bogus, and patently ridiculous.
+#
+# This file deliberately has no copyright.  It belongs to no one and everyone.
+# If you claim you own it, you will merely succeed in looking like a fool.
+# Use it as you like.  Use it at your own risk.  Copy and redistribute freely.
+# There are no guarantees anywhere.  Svaha!
+#
+
+######## ANSI, UNIX CONSOLE, AND SPECIAL TYPES
+#
+# This section describes terminal classes and brands that are still
+# quite common.
+#
+
+#### Specials
+#
+# Special "terminals".  These are used to label tty lines when you don't
+# know what kind of terminal is on it.  The characteristics of an unknown
+# terminal are the lowest common denominator - they look about like a ti 700.
+#
+
+dumb|80-column dumb tty,
+       am,
+       cols#80,
+       bel=^G, cr=^M, cud1=^J, ind=^J,
+unknown|unknown terminal type,
+       gn, use=dumb,
+lpr|printer|line printer,
+       OTbs, hc, os,
+       cols#132, lines#66,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, ff=^L, ind=^J,
+glasstty|classic glass tty interpreting ASCII control characters,
+       OTbs, am,
+       cols#80,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ht=^I, kcub1=^H,
+       kcud1=^J, nel=^M^J, .kbs=^H,
+
+vanilla|dumb tty,
+       OTbs,
+       bel=^G, cr=^M, cud1=^J, ind=^J,
+
+# This is almost the same as "dumb", but with no prespecified width.
+# DEL and ^C are hardcoded to act as kill characters.
+# ^D acts as a line break (just like newline).
+# It also interprets
+#      \033];xxx\007 
+# for compatibility with xterm -TD
+9term|Plan9 terminal emulator for X,
+       am,
+       OTnl=^J, bel=^G, cud1=^J,
+
+#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
+#
+# See the end-of-file comment for more on these.
+#
+
+# ANSI capabilities are broken up into pieces, so that a terminal
+# implementing some ANSI subset can use many of them.
+ansi+local1,
+       cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
+ansi+local,
+       cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
+       cuu=\E[%p1%dA, use=ansi+local1,
+ansi+tabs,
+       cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[2g,
+ansi+inittabs,
+       it#8, use=ansi+tabs,
+ansi+erase,
+       clear=\E[H\E[J, ed=\E[J, el=\E[K,
+ansi+rca,
+       hpa=\E[%p1%{1}%+%dG, vpa=\E[%p1%{1}%+%dd,
+ansi+cup,
+       cup=\E[%i%p1%d;%p2%dH, home=\E[H,
+ansi+rep,
+       rep=%p1%c\E[%p2%{1}%-%db,
+ansi+idl1,
+       dl1=\E[M, il1=\E[L,
+ansi+idl,
+       dl=\E[%p1%dM, il=\E[%p1%dL, use=ansi+idl1,
+ansi+idc,
+       dch1=\E[P, ich=\E[%p1%d@, ich1=\E[@, rmir=\E6, smir=\E6,
+ansi+arrows,
+       kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       khome=\E[H,
+ansi+sgr|ansi graphic renditions,
+       blink=\E[5m, invis=\E[8m, rev=\E[7m,
+       sgr=\E[0%?%p3%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+       sgr0=\E[0m,
+ansi+sgrso|ansi standout only,
+       rmso=\E[m, smso=\E[7m,
+ansi+sgrul|ansi underline only,
+       rmul=\E[m, smul=\E[4m,
+ansi+sgrbold|ansi graphic renditions; assuming terminal has bold; not dim,
+       bold=\E[1m,
+       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
+       use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul,
+ansi+sgrdim|ansi graphic renditions; assuming terminal has dim; not bold,
+       dim=\E[2m,
+       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;%?%p7%t8;%;m,
+       use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul,
+ansi+pp|ansi printer port,
+       mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+ansi+csr|ansi scroll-region plus cursor save & restore,
+       csr=\E[%i%p1%d;%p2%dr, rc=\E8, sc=\E7,
+
+# The IBM PC alternate character set.  Plug this into any Intel console entry.
+# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
+# ROM graphics for control characters such as the diamond, up- and down-arrow.
+# This works with the System V, Linux, and BSDI consoles.  It's a safe bet this
+# will work with any Intel console, they all seem to have inherited \E[11m
+# from the ANSI.SYS de-facto standard.
+klone+acs|alternate character set for ansi.sys displays,
+       acsc=+\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,
+       rmacs=\E[10m, smacs=\E[11m,
+
+# Highlight controls corresponding to the ANSI.SYS standard.  Most
+# console drivers for Intel boxes obey these.  Makes the same assumption
+# about \E[11m as klone+acs.  True ANSI/ECMA-48 would have <rmso=\E[27m>,
+# <rmul=\E[24m>, but this isn't a documented feature of ANSI.SYS.
+klone+sgr|attribute control for ansi.sys displays,
+       blink=\E[5m, bold=\E[1m, rev=\E[7m, rmpch=\E[10m,
+       rmso=\E[m, rmul=\E[m,
+       sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p9%t;11%;m,
+       sgr0=\E[0;10m, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
+       use=klone+acs,
+
+# Most Intel boxes do not treat "invis" (invisible) text.
+klone+sgr8|attribute control for ansi.sys displays,
+       invis=\E[8m,
+       sgr=\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,
+       use=klone+sgr,
+
+# Highlight controls corresponding to the ANSI.SYS standard.  *All*
+# console drivers for Intel boxes obey these.  Does not assume \E[11m will
+# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS
+# diamond and arrow characters under curses.
+klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m),
+       blink=\E[5m, bold=\E[1m, invis=\E[8m, rev=\E[7m, rmso=\E[m,
+       rmul=\E[m,
+       sgr=\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,
+       sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
+       use=klone+acs,
+
+# KOI8-R (RFC1489) acs (alternate character set)
+# From: Qing Long <qinglong@Bolizm.ihep.su>, 24 Feb 1996.
+klone+koi8acs|alternate character set for ansi.sys displays with KOI8 charset,
+       acsc=+\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,
+       rmacs=\E[10m, smacs=\E[11m,
+
+# ANSI.SYS color control.  The setab/setaf caps depend on the coincidence
+# between SVr4/XPG4's color numbers and ANSI.SYS attributes.  Here are longer
+# but equivalent strings that don't rely on that coincidence:
+# setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+# setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard.
+# They match a subset of ECMA-48.
+klone+color|color control for ansi.sys and ISO6429-compatible displays,
+       colors#8, ncv#3, pairs#64,
+       op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+
+# This is better than klone+color, it doesn't assume white-on-black as the
+# default color pair,  but many `ANSI' terminals don't grok the <op> cap.
+ecma+color|color control for ECMA-48-compatible terminals,
+       AX,
+       colors#8, ncv#3, pairs#64,
+       op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+
+# Attribute control for ECMA-48-compatible terminals
+ecma+sgr|attribute capabilities for true ECMA-48 terminals,
+       rmso=\E[27m, rmul=\E[24m, use=klone+sgr8,
+
+# For comparison, here are all the capabilities implied by the Intel
+# Binary Compatibility Standard (level 2) that fit within terminfo.
+# For more detail on this rather pathetic standard, see the comments
+# near the end of this file.
+ibcs2|Intel Binary Compatibility Standard prescriptions,
+       cbt=\E[Z, clear=\Ec, cub=\E[%p1%dD, cud=\E[%p1%dB,
+       cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       dch=\E[%p1%dP, dispc=\E=%p1%dg, ech=\E[%p1%dX,
+       hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
+       indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT, rmam=\E[?7l, sc=\E7,
+       smam=\E[?7h, tbc=\E[g, vpa=\E[%i%p1%dd,
+
+#### ANSI/ECMA-48 terminals and terminal emulators
+#
+# See near the end of this file for details on ANSI conformance.
+# Don't mess with these entries!  Lots of other entries depend on them!
+#
+# This section lists entries in a least-capable to most-capable order.
+# if you're in doubt about what `ANSI' matches yours, try them in that
+# order and back off from the first that breaks.
+
+# ansi-mr is for ANSI terminals with ONLY relative cursor addressing
+# and more than one page of memory.  It uses local motions instead of
+# direct cursor addressing, and makes almost no assumptions. It does
+# assume auto margins, no padding and/or xon/xoff, and a 24x80 screen.
+ansi-mr|mem rel cup ansi,
+       am, xon,
+       cols#80, lines#24, use=vanilla, use=ansi+erase,
+       use=ansi+local1,
+
+# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but
+# beware of screen size problems and memory relative cursor addressing.
+ansi-mini|any ansi terminal with pessimistic assumptions,
+       am, xon,
+       cols#80, lines#24, use=vanilla, use=ansi+cup,
+       use=ansi+erase,
+
+# ansi-mtabs adds relative addressing and minimal tab support
+ansi-mtabs|any ansi terminal with pessimistic assumptions,
+       it#8,
+       ht=^I, use=ansi+local1, use=ansi-mini,
+
+# ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL
+#
+# The following is an entry for the full ANSI 3.64 (1977).  It lacks
+# padding, but most terminals using the standard are "fast" enough
+# not to require any -- even at 9600 bps.  If you encounter problems,
+# try including the padding specifications.
+#
+# Note: the :as: and :ae: specifications are not implemented here, for
+# the available termcap documentation does not make clear WHICH alternate
+# character set to specify.  ANSI 3.64 seems to make allowances for several.
+# Please make the appropriate adjustments to fit your needs -- that is
+# if you will be using alternate character sets.
+#
+# There are very few terminals running the full ANSI 3.64 standard,
+# so I could only test this entry on one verified terminal (Visual 102).
+# I would appreciate the results on other terminals sent to me.
+#
+# Please report comments, changes, and problems to:
+#
+# U.S. MAIL:   Hugh Hansard
+#              Box: 22830
+#              Emory University
+#              Atlanta, GA. 30322.
+#
+# USENET {akgua,msdc,sb1,sb6,gatech}!emory!mlhhh.
+#
+# (Added vt100 <rc>,<sc> to quiet a tic warning --esr)
+ansi77|ansi 3.64 standard 1977 version,
+       OTbs, am, mir,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=\E[;H\E[2J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu1=\E[A, dch1=\E[P, dl1=\E[M$<5*/>, ed=\E[J, el=\E[K,
+       home=\E[H, ht=^I, il1=\E[L$<5*/>, ind=\ED, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
+       kf2=\EOR, kf4=\EOS, khome=\E[H, nel=^M\ED, rc=\E8, ri=\EM,
+       rmir=\E[4l, rmso=\E[m, rmul=\E[m, sc=\E7, smir=\E[4h,
+       smso=\E[7m, smul=\E[4m,
+
+# Procomm and some other ANSI emulations don't recognize all of the ANSI-
+# standard capabilities.  This entry deletes <cuu>, <cuf>, <cud>, <cub>, and
+# <vpa>/<hpa> capabilities, forcing curses to use repetitions of <cuu1>,
+# <cuf1>, <cud1> and <cub1>.  Also deleted <ich> and <ich1>, as QModem up to
+# 5.03 doesn't recognize these.  Finally, we delete <rep> and <ri>, which seem
+# to confuse many emulators.  On the other hand, we can count on these programs
+# doing <rmacs>/<smacs>/<sgr>. Older versions of this entry featured
+# <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under
+# ANSI.SYS influence.
+# From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995
+pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode),
+       OTbs, am, mir, msgr,
+       cols#80, it#8, lines#24,
+       bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=\E[D,
+       cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+       hts=\EH, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[2g,
+       use=klone+sgr-dumb,
+pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode),
+       lines#25, use=pcansi-m,
+pcansi-33-m|pcansi33m|ibm-pc terminal programs with 33 lines (mono mode),
+       lines#33, use=pcansi-m,
+pcansi-43-m|ansi43m|ibm-pc terminal programs with 43 lines (mono mode),
+       lines#43, use=pcansi-m,
+# The color versions.  All PC emulators do color...
+pcansi|ibm-pc terminal programs claiming to be ansi,
+       use=klone+color, use=pcansi-m,
+pcansi-25|pcansi25|ibm-pc terminal programs with 25 lines,
+       lines#25, use=pcansi,
+pcansi-33|pcansi33|ibm-pc terminal programs with 33 lines,
+       lines#33, use=pcansi,
+pcansi-43|pcansi43|ibm-pc terminal programs with 43 lines,
+       lines#43, use=pcansi,
+
+# ansi-m -- full ANSI X3.64 with ANSI.SYS-compatible attributes, no color.
+# If you want pound signs rather than dollars, replace `B' with `A'
+# in the <s0ds>, <s1ds>, <s2ds>, and <s3ds> capabilities.
+# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
+ansi-m|ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes,
+       mc5i,
+       cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
+       cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
+       ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%i%p1%dG, ht=\E[I,
+       ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, kbs=^H,
+       kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
+       rep=%p1%c\E[%p2%{1}%-%db, rin=\E[%p1%dT, s0ds=\E(B,
+       s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[2g,
+       vpa=\E[%i%p1%dd, use=pcansi-m,
+
+ansi+enq|ncurses extension for ANSI ENQ,
+       u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c,
+       u9=\E[c,
+
+# ansi -- this terminfo expresses the largest subset of X3.64 that will fit in
+# standard terminfo.  Assumes ANSI.SYS-compatible attributes and color.
+# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
+ansi|ansi/pc-term compatible with color,
+       use=ansi+enq, use=ecma+color, use=klone+sgr8, use=ansi-m,
+
+# ansi-generic is a vanilla ANSI terminal. This is assumed to implement
+# all the normal ANSI stuff with no extensions. It assumes
+# insert/delete line/char is there, so it won't work with
+# vt100 clones. It assumes video attributes for bold, blink,
+# underline, and reverse, which won't matter much if the terminal
+# can't do some of those. Padding is assumed to be zero, which
+# shouldn't hurt since xon/xoff is assumed.
+ansi-generic|generic ansi standard terminal,
+       am, xon,
+       cols#80, lines#24, use=vanilla, use=ansi+csr, use=ansi+cup,
+       use=ansi+rca, use=ansi+erase, use=ansi+tabs,
+       use=ansi+local, use=ansi+idc, use=ansi+idl, use=ansi+rep,
+       use=ansi+sgrbold, use=ansi+arrows,
+
+#### DOS ANSI.SYS variants
+#
+# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
+# documentation (except for the keyboard key reassignment feature, which
+# doesn't fit the <pfkey> model well).  The klone+acs sequences were valid
+# though undocumented.  The <pfkey> capability is untested but should work for
+# keys F1-F10 (%p1 values outside this range will yield unpredictable results).
+# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
+ansi.sys-old|ANSI.SYS under PC-DOS 2.1,
+       OTbs, am, mir, msgr, xon,
+       cols#80, lines#25,
+       clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[k, home=\E[H,
+       is2=\E[m\E[?7h, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
+       khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s", rc=\E[u,
+       rmam=\E[?7l, sc=\E[s, smam=\E[?7h, u6=\E[%i%d;%dR,
+       u7=\E[6n, use=klone+color, use=klone+sgr8,
+ansi.sys|ANSI.SYS 3.1 and later versions,
+       el=\E[K, use=ansi.sys-old,
+
+#
+# Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
+# This should only be used when the terminal emulator cannot redefine the keys.
+# Since redefining keys with ansi.sys also affects PC-DOS programs, the key
+# definitions must be restored.  If the terminal emulator is quit while in vi
+# or others using <smkx>/<rmkx>, the keypad will not be defined as per PC-DOS.
+# The PgUp and PgDn are prefixed with ESC so that tn3270 can be used on Unix
+# (^U and ^D are already defined for tn3270).  The ESC is safe for vi but it
+# does "beep".  ESC ESC i is used for Ins to avoid tn3270 ESC i for coltab.
+# Note that <kcub1> is always BS, because PC-dos can tolerate this change.
+# Caution: vi is limited to 256 string bytes, longer crashes or weirds out vi.
+# Consequently the End keypad key could not be set (it is relatively safe and
+# actually useful because it sends ^@ O, which beeps and opens a line above).
+ansi.sysk|ansisysk|PC-DOS 3.1 ANSI.SYS with keypad redefined for vi,
+       is2=U2 PC-DOS 3.1 ANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p,
+       rmkx=\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,
+       smkx=\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,
+       use=ansi.sys,
+#
+# Adds ins/del line/character, hence vi reverse scrolls/inserts/deletes nicer.
+nansi.sys|nansisys|PC-DOS Public Domain NANSI.SYS,
+       dch1=\E[1P, dl1=\E[1M, ich1=\E[1@, il1=\E[1L,
+       is2=U3 PC-DOS Public Domain NANSI.SYS 9-23-86\n,
+       use=ansi.sys,
+#
+# See ansi.sysk and nansi.sys above.
+nansi.sysk|nansisysk|PC-DOS Public Domain NANSI.SYS with keypad redefined for vi,
+       dch1=\E[1P, dl1=\E[1M, ich1=\E[1@, il1=\E[1L,
+       is2=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p,
+       use=ansi.sysk,
+
+#### ANSI console types
+#
+
+#### BeOS
+#
+# BeOS entry for Terminal program Seems to be almost ANSI
+beterm|BeOS Terminal,
+       am, eo, mir, msgr, xenl, xon,
+       colors#8, cols#80, it#8, lines#25, ncv#5, pairs#64,
+       bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H,
+       hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
+       kend=\E[4~, kf1=\E[11~, kf10=\E[20~, kf11=\E[21~,
+       kf12=\E[22~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
+       kf5=\E[15~, kf6=\E[16~, kf7=\E[17~, kf8=\E[18~, kf9=\E[19~,
+       khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
+       nel=^M^J, op=\E[m, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l,
+       rmkx=\E[?4l, rmso=\E[m, rmul=\E[24m, rs1=\Ec, sc=\E7,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       setb=\E[%p1%{40}%+%cm, setf=\E[%p1%{30}%+%cm,
+       sgr0=\E[0;10m, smir=\E[4h, smkx=\E[?4h, smso=\E[7m,
+       smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n,
+       vpa=\E[%i%p1%dd,
+
+#### Linux consoles
+#
+
+# This entry is good for the 1.2.13 or later version of the Linux console.
+#
+# ***************************************************************************
+# *                                                                         *
+# *                           WARNING:                                      *
+# * Linuxes come with a default keyboard mapping kcbt=^I.  This entry, in   *
+# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
+# * character. Here are the keymap replacement lines that will set this up: *
+# *                                                                         *
+#      keycode  15 = Tab             Tab
+#              alt     keycode  15 = Meta_Tab
+#              shift   keycode  15 = F26
+#      string F26 ="\033[Z"
+# *                                                                         *
+# * This has to use a key slot which is unfortunate (any unused one will    *
+# * do, F26 is the higher-numbered one).  The change ought to be built      *
+# * into the kernel tables.                                                 *
+# *                                                                         *
+# ***************************************************************************
+#
+# All linux kernels since 1.2.13 (at least) set the screen size
+# themselves; this entry assumes that capability.
+#
+linux-basic|linux console,
+       am, bce, eo, mir, msgr, xenl, xon,
+       it#8, ncv#18,
+       acsc=+\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,
+       bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+       el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H,
+       hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177,
+       kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+       kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+       kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
+       kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+       kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
+       rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
+       sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+       smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g,
+       vpa=\E[%i%p1%dd, use=vt102+enq, use=klone+sgr,
+       use=ecma+color,
+
+linux-m|Linux console no color,
+       colors@, pairs@,
+       setab@, setaf@, setb@, setf@, use=linux,
+
+# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
+# and it matters, turn off <ccc>.  The %02x escape used to implement this is
+# not supposedly back-portable to older SV curses (although it has worked fine
+# on Solaris for several years) and not supported in ncurses versions before
+# 1.9.9.
+linux-c-nc|linux console with color-change,
+       ccc,
+       initc=\E]P%p1%x%p2%{256}%*%{1000}%/%02x%p3%{256}%*%{1000}%/%02x%p4%{256}%*%{1000}%/%02x,
+       oc=\E]R, use=linux-basic,
+# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
+linux-c|linux console 1.3.6+ for older ncurses,
+       ccc,
+       initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{256}%*%{1000}%/%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%{256}%*%{1000}%/%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%{256}%*%{1000}%/%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%;,
+       oc=\E]R, use=linux-basic,
+
+# The 2.2.x kernels add a private mode that sets the cursor type; use that to
+# get a block cursor for cvvis.
+# reported by Frank Heckenbach <frank@g-n-u.de>.
+linux|linux console,
+       civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
+       cvvis=\E[?25h\E[?8c, use=linux-c-nc,
+
+# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
+linux-nic|linux with ich/ich1 suppressed for non-curses programs,
+       ich@, ich1@, use=linux,
+
+# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts.
+# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997.
+linux-koi8|linux with koi8 alternate character set,
+       acsc=+\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,
+       use=linux, use=klone+koi8acs,
+
+# Another entry for KOI8-r with Qing Long's acsc.
+# (which one better complies with the standard?)
+linux-koi8r|linux with koi8-r alternate character set,
+       use=linux, use=klone+koi8acs,
+
+# Entry for the latin1 and latin2 fonts
+linux-lat|linux with latin1 or latin2 alternate character set,
+       acsc=+\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,
+       use=linux,
+
+# This uses graphics from VT codeset instead of from cp437.
+# reason: cp437 (aka "straight to font") is not functional under luit.
+# from: Andrey V Lukyanov <land@long.yar.ru>.
+linux-vt|linux console using VT codes for graphics,
+       acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
+       rmacs=\E(K, rmpch@, sgr@, sgr0=\E[0m\E(K\017, smacs=\E(0,
+       smpch@, use=linux,
+
+# This is based on the Linux console (relies on the console to perform some
+# of the functionality), but does not recognize as many control sequences.
+# The program comes bundled with an old (circa 1998) copy of the Linux
+# console terminfo.  It recognizes some non-ANSI/VT100 sequences such as
+#      \E*     move cursor to home, as as \E[H
+#      \E,X    same as \E(X
+#      \EE     move cursor to beginning of row
+#      \E[y,xf same as \E[y,xH
+#
+# Note: The status-line support is buggy (dsl does not work).
+kon|kon2|jfbterm|Kanji ON Linux console,
+       ccc@, hs,
+       civis@, cnorm@, cvvis@, dsl=\E[?H, flash@, fsl=\E[?F, initc@,
+       initp@, kcbt@, oc@, op=\E[37;40m, rs1=\Ec, tsl=\E[?T,
+       use=linux,
+
+#### Mach
+#
+
+# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk>
+mach|Mach Console,
+       am, km,
+       cols#80, it#8, lines#25,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ,
+       kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
+       kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U,
+       kpp=\E[V, rev=\E[7m, rmso=\E[0m, rmul=\E[24m, sgr0=\E[0m,
+       smso=\E[7m, smul=\E[4m,
+mach-bold|Mach Console with bold instead of underline,
+       rmul=\E[0m, smul=\E[1m, use=mach,
+mach-color|Mach Console with ANSI color,
+       colors#8, pairs#64,
+       dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach,
+
+# From: Marcus Brinkmann
+# http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/
+#
+# Comments in the original are summarized here:
+#
+# hurd uses 8-bit characters (km).
+#
+# Although it doesn't do XON/XOFF, we don't want padding characters (xon).
+#
+# Regarding compatibility to vt100:  hurd doesn't specify <xenl>, as we don't
+# have the eat_newline_glitch.  It doesn't support setting or removing tab
+# stops (hts/tbc).
+#
+# hurd uses ^H instead of \E[D for cub1, as only ^H implements <bw> and it is
+# one byte instead three.
+#
+# <ich1> is not included because hurd has insert mode.
+#
+# hurd doesn't use ^J for scrolling, because this could put things into the
+# scrollback buffer.
+#
+# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
+# This is a GNU extension.
+#
+# The original has commented-out ncv, but is restored here.
+#
+# Reading the source, RIS resets cnorm, but not xmous.
+hurd|The GNU Hurd console server,
+       am, bce, bw, eo, km, mir, msgr, xon,
+       colors#8, it#8, ncv#18, pairs#64,
+       acsc=++\,\,--..00ii``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\Ec, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[34l, dch=\E[%p1%dP,
+       dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, flash=\Eg,
+       home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
+       il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
+       invis=\E[8m, kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\EOD,
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
+       kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[15~,
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+       kspd=^Z, nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\E[T,
+       rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E[10m, rmir=\E[4l,
+       rmso=\E[27m, rmul=\E[24m, rs1=\EM\E[?1000l, sc=\E7,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+       sgr0=\E[0m, sitm=\E[3m, smacs=\E[11m, smir=\E[4h,
+       smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, grbom=\E[>1l,
+       gsbom=\E[>1h,
+
+#### OSF Unix
+#
+
+# OSF/1 1.1 Snapshot 2
+pmcons|pmconsole|PMAX console,
+       am,
+       cols#128, lines#57,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ht=^I,
+       ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+
+# SCO console and SOS-Syscons console for 386bsd
+# (scoansi: had unknown capabilities
+#      :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
+#      :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
+#      :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
+#      :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
+#      :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
+# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
+# on the <smacs>=\E[12m  -- esr)
+#
+# klone+sgr-dumb is an error since the acsc does not match -TD
+#
+# In this description based on SCO's keyboard(HW) manpage list of default
+# function key values:
+#      F13-F24 are shifted F1-F12
+#      F25-F36 are control F1-F12
+#      F37-F48 are shift+control F1-F12
+#
+# hpa/vpa work in the console, but not in scoterm:
+#      hpa=\E[%p1%dG,
+#      vpa=\E[%p1%dd,
+#
+# SCO's terminfo uses
+#      kLFT=\E[d,
+#      kRIT=\E[c,
+# which do not work (console or scoterm).
+#
+# Console documents only 3 attributes can be set with SGR (so we don't use sgr).
+scoansi-old|SCO Extended ANSI standard crt (5.0.5),
+       OTbs, am, bce, eo, xon,
+       colors#8, cols#80, it#8, lines#25, pairs#64,
+       acsc=-\230.\231\,.+/0[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+       civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[=0;12C, dch=\E[%p1%dP,
+       dch1=\E[P, dispc=\E[=%p1%dg, dl=\E[%p1%dM, dl1=\E[M,
+       ed=\E[m\E[J, el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I,
+       hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
+       ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbeg=\E[E, kbs=^H,
+       kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
+       kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c,
+       kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g,
+       kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l,
+       kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p,
+       kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u,
+       kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P,
+       kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[],
+       kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q,
+       kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
+       kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8,
+       rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m,
+       rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
+       smacs=\E[12m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
+scoansi-new|SCO Extended ANSI standard crt (5.0.6),
+       km,
+       civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr,
+       cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m,
+       rep=\E[%p1%d;%p2%db, rmm=\E[=11L,
+       sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
+       smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm,
+       smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m,
+       smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m,
+       smgtp=\E[=0;%i%p1%dm, smm=\E[=10L,
+       wind=\E[%i%p1%d;%p2%d;%i%p3%d;%p4%dr,
+       use=scoansi-old,
+# make this easy to change...
+scoansi|SCO Extended ANSI standard crt,
+       use=scoansi-old,
+
+# This actually describes the generic SVr4 display driver for Intel boxes.
+# The <dim=\E[2m> isn't documented and therefore may not be reliable.
+# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
+att6386|at386|386at|AT&T WGS 6386 console,
+       am, bw, eo, xon,
+       cols#80, it#8, lines#25,
+       acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C,
+       clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub=\E[%p1%dD,
+       cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+       home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S,
+       indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kbs=^H,
+       kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ,
+       kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
+       kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@,
+       knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, rc=\E8, rev=\E[7m,
+       ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
+       sc=\E7,
+       sgr=\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,
+       sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
+       tbc=\E[2g, vpa=\E[%i%p1%dd, use=klone+color,
+# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
+pc6300plus|AT&T 6300 plus,
+       OTbs, am, xon,
+       cols#80, lines#24,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C,
+       clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
+       dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K,
+       home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=^J,
+       invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe,
+       kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk,
+       nel=^M^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+       smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+
+# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
+#
+# I have a UNIX PC which I use as a terminal attached to my Linux PC.
+# Unfortunately, the UNIX PC terminfo entry that comes with ncurses
+# is broken. All the special key sequences are broken, making it unusable
+# with Emacs. The problem stems from the following:
+#
+# The UNIX PC has a plethora of keys (103 of them, and there's no numeric
+# keypad!), loadable fonts, and strange highlighting modes ("dithered"
+# half-intensity, "smeared" bold, and real strike-out, for example.) It also
+# uses resizable terminal windows, but the bundled terminal program always
+# uses an 80x24 window (and doesn't support seem to support a 132-column
+# mode.)
+#
+# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
+# library which was a superset of SVr3.5 curses (called tam, for "terminal
+# access method".) tam includes support for real, overlapping windows,
+# onscreen function key labels, and bitmap graphics. But since the primary
+# user interface on the UNIX PC was a GUI program (ua, for "user
+# assistant",) and remote administration was considered important for the
+# machine, tam also supported VT100-compatible terminals attached to the
+# serial port or used across the StarLan network. To simulate the extra keys
+# not present on a VT100, users could press ESC and a two-letter sequence,
+# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences,
+# however, were not the same as those sent by the actual Undo key. The
+# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example.
+# (If you're interested in adding some of the tam calls to ncurses, btw, I
+# have the full documentation and several programs which use tam. It also
+# used an extended terminfo format to describe key sequences, special
+# highlighting modes, etc.)
+#
+# KEYS: This means that ncurses would quite painful on the UNIX PC, since
+# there are two sequences for every key-modifier combination (local keyboard
+# sequence and remote "VT100" sequence.) But I doubt many people are trying
+# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
+# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
+# seem to have been built from the manual describing the VT100 sequences.
+# This means it doesn't work for a real live UNIX PC.
+#
+# FONTS: The UNIX PC also has a strange interpretation of "alternate
+# character set". Rather than the VT100 graphics you might expect, it allows
+# up to 8 custom fonts to be loaded at any given time. This means that
+# programs expecting VT100 graphics will usually be disappointed. For this
+# reason I have disabled the smacs/rmacs sequences, but they could easily be
+# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
+# manpage), should you wish to do so:
+#
+# SGR10 - Select font 0 - ESC [ 10 m or SO
+# SGR11 - Select font 1 - ESC [ 11 m or SI
+# SGR12 - Select font 2 - ESC [ 12 m
+# ... (etc.)
+# SGR17 - Select font 7 - ESC [ 17 m
+#
+# Graphics for line drawing are not reliably found at *any* character
+# location because the UNIX PC has dynamically reloadable fonts. I use font
+# 0 for regular text and font 1 for italics, but this is by no means
+# universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
+#
+# MISC: The cursor visible/cursor invisible sequences were swapped in the
+# distributed terminfo.
+#
+# To ameliorate these problems (and fix a few highlighting bugs) I rewrote
+# the UNIX PC terminfo entry. The modified version works great with Lynx,
+# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
+# attached by serial cable. In Emacs, even the Undo key works, and many
+# applications can now use the F1-F8 keys.
+#
+# esr's notes:
+#      Terminfo entry for the AT&T Unix PC 7300
+#      from escape(7) in Unix PC 7300 Manual.
+#      Somewhat similar to a vt100-am (but different enough
+#      to redo this from scratch.)
+#
+#      /***************************************************************
+#      *
+#      *           FONT LOADING PROGRAM FOR THE UNIX PC
+#      *
+#      *     This routine loads a font defined in the file ALTFONT
+#      *     into font memory slot #1.  Once the font has been loaded,
+#      *     it can be used as an alternative character set.
+#      *
+#      *     The call to ioctl with the argument WIOCLFONT is the key
+#      *     to this routine.  For more information, see window(7) in
+#      *     the PC 7300 documentation.
+#      ***************************************************************/
+#      #include <string.h>             /* needed for strcpy call */
+#      #include <sys/window.h>         /* needed for ioctl call */
+#      #define FNSIZE  60              /* font name size */
+#      #define ALTFONT  "/usr/lib/wfont/special.8.ft"  /* font file */
+#      /*
+#      *     The file /usr/lib/wfont/special.8.ft comes with the
+#      *     standard PC software.  It defines a graphics character set
+#      *     similar to that of the Teletype 5425 terminal.  To view
+#      *     this or other fonts in /usr/lib/wfont, use the command
+#      *     cfont <filename>.  For further information on fonts see
+#      *     cfont(1) in the PC 7300 documentation.
+#      */
+#
+#      struct altfdata         /* structure for alt font data */
+#      {
+#      short   altf_slot;              /* memory slot number */
+#      char    altf_name[FNSIZE];      /* font name (file name) */
+#      };
+#      ldfont()
+#      {
+#              int wd;         /* window in which altfont will be */
+#              struct altfdata altf;
+#              altf.altf_slot=1;
+#              strcpy(altf.altf_name,ALTFONT);
+#              for (wd =1; wd < 12; wd++) {
+#                   ioctl(wd, WIOCLFONT,&altf);
+#              }
+#      }
+#
+# (att7300: added <civis>/<cnorm>/<ich1>/<invis> from the BSDI entry,
+# they're confirmed by the man page for the System V display---esr)
+#
+att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300,
+       am, xon,
+       cols#80, it#8, lines#24,
+       bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C,
+       clear=\E[2J\E[H, cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD,
+       cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
+       ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL,
+       il1=\E[L, ind=^J, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB,
+       kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE,
+       kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM,
+       kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR,
+       kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO,
+       kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z,
+       kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf,
+       ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd,
+       kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
+       kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B,
+       kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv,
+       kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt,
+       kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB,
+       ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM,
+       rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m,
+       smul=\E[4m,
+
+# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is
+# from SGI's terminfo database.  SGI's entry shows F9-F12 with the codes
+# for the application keypad mode.  We have added iris-ansi-ap rather than
+# change the original to keypad mode.
+#
+# (iris-ansi: added rmam/smam based on init string -- esr)
+#
+# This entry, and those derived from it, is used in xwsh (also known as
+# winterm).  Some capabilities that do not fit into the terminfo model
+# include the shift- and control-functionkeys:
+#
+# F1-F12 generate different codes when shift or control modifiers are used.
+# For example:
+#      F1              \E[001q
+#      shift F1        \E[013q
+#      control-F1      \E[025q
+#
+# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e.,
+# \EOP to \EOS.  The shifted and control modifiers still do the same thing.
+#
+# The cursor keys also have different codes:
+#      control-up      \E[162q
+#      control-down    \E[165q
+#      control-left    \E[159q
+#      control-right   \E[168q
+#
+#      shift-up        \E[161q
+#      shift-down      \E[164q
+#      shift-left      \E[158q
+#      shift-right     \E[167q
+#
+#      control-tab     \[072q
+#
+iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100),
+       am,
+       cols#80, it#8, lines#40,
+       bel=^G, bold=\E[1m, clear=\E[H\E[2J,
+       cnorm=\E[9/y\E[12/y\E[=6l, cr=^M, cub=\E[%p1%dD,
+       cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cuu1=\E[A, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+       home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+       is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P,
+       kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q,
+       kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
+       kend=\E[146q, kent=^M, kf1=\E[001q, kf10=\E[010q,
+       kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q,
+       kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
+       kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
+       knp=\E[154q, kpp=\E[150q, kprt=\E[209q, krmir=\E[146q,
+       kspd=\E[217q, nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\,
+       rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
+       sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m,
+       tbc=\E[3g,
+iris-ansi-ap|IRIS ANSI in application-keypad mode,
+       is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q,
+       kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi,
+
+# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
+# (T.Dickey 98/1/24)
+iris-color|xwsh|IRIX ANSI with color,
+       ncv#33,
+       csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m,
+       ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, ritm=\E[23m,
+       rmul=\E[24m, rs1=\Ec,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sitm=\E[3m, use=vt100+enq, use=klone+color,
+       use=iris-ansi-ap,
+
+# The following is a version of the ibm-pc entry distributed with PC/IX,
+# (Interactive Systems' System 3 for the Big Blue), modified by Richard
+# McIntosh at UCB/CSM.  The :pt: and :uc: have been removed from the original,
+# (the former is untrue, and the latter failed under UCB/man); standout and
+# underline modes have been added.  Note: this entry describes the "native"
+# capabilities of the PC monochrome display, without ANY emulation; most
+# communications packages (but NOT PC/IX connect) do some kind of emulation.
+pcix|PC/IX console,
+       am, bw, eo,
+       cols#80, lines#24,
+       clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+       home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m,
+       smul=\E[4m,
+
+# (ibmpcx: this entry used to be known as ibmx.
+# It formerly included the following extension capabilities:
+#      :GC=b:GL=v:GR=t:RT=^J:\
+#      :GH=\E[196g:GV=\E[179g:\
+#      :GU=\E[193g:GD=\E[194g:\
+#      :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\
+#      :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\
+#      :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\
+# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate
+# ":kh=\E[Y:".  Added IBM-PC forms characters and highlights, they match
+# what was there before. -- esr)
+ibmpcx|xenix|ibmx|IBM PC xenix console display,
+       OTbs, am, msgr,
+       cols#80, lines#25,
+       clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+       ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d,
+       kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e,
+       kpp=\E[Z, use=klone+acs, use=klone+sgr8,
+
+#### QNX
+#
+
+# QNX 4.0 Console
+# Michael's original version of this entry had <am@>, <smcup=\Ei>,
+# <rmcup=\Eh\ER>; this was so terminfo applications could write the lower
+# right corner without triggering a scroll.  The ncurses terminfo library can
+# handle this case with the <ich1> capability, and prefers <am> for better
+# optimization.  Bug: The <op> capability resets attributes.
+# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996
+# (removed: <sgr=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,>)
+qnx|qnx4|qnx console,
+       daisy, km, mir, msgr, xhpa, xt,
+       colors#8, cols#80, it#4, lines#25, ncv#3, pairs#8,
+       acsc=O\333a\261j\331k\277l\332m\300n\305o\337q\304s\334t\303u\264v\301w\302x\263,
+       bel=^G, blink=\E{, bold=\E<, civis=\Ey0, clear=\EH\EJ,
+       cnorm=\Ey1, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ey2,
+       dch1=\Ef, dl1=\EF, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\Ee,
+       il1=\EE, ind=^J, kBEG=\377\356, kCAN=\377\263,
+       kCMD=\377\267, kCPY=\377\363, kCRT=\377\364,
+       kDL=\377\366, kEND=\377\301, kEOL=\377\311,
+       kEXT=\377\367, kFND=\377\370, kHLP=\377\371,
+       kHOM=\377\260, kIC=\377\340, kLFT=\377\264,
+       kMOV=\377\306, kMSG=\377\304, kNXT=\377\272,
+       kOPT=\377\372, kPRT=\377\275, kPRV=\377\262,
+       kRDO=\377\315, kRES=\377\374, kRIT=\377\266,
+       kRPL=\377\373, kSAV=\377\307, kSPD=\377\303,
+       kUND=\377\337, kbeg=\377\300, kcan=\377\243, kcbt=\377\0,
+       kclo=\377\343, kclr=\377\341, kcmd=\377\245,
+       kcpy=\377\265, kcrt=\377\305, kctab=\377\237,
+       kcub1=\377\244, kcud1=\377\251, kcuf1=\377\246,
+       kcuu1=\377\241, kdch1=\377\254, kdl1=\377\274,
+       ked=\377\314, kel=\377\310, kend=\377\250, kent=\377\320,
+       kext=\377\270, kf1=\377\201, kf10=\377\212,
+       kf11=\377\256, kf12=\377\257, kf13=\377\213,
+       kf14=\377\214, kf15=\377\215, kf16=\377\216,
+       kf17=\377\217, kf18=\377\220, kf19=\377\221,
+       kf2=\377\202, kf20=\377\222, kf21=\377\223,
+       kf22=\377\224, kf23=\377\333, kf24=\377\334,
+       kf25=\377\225, kf26=\377\226, kf27=\377\227,
+       kf28=\377\230, kf29=\377\231, kf3=\377\203,
+       kf30=\377\232, kf31=\377\233, kf32=\377\234,
+       kf33=\377\235, kf34=\377\236, kf35=\377\276,
+       kf36=\377\277, kf37=\377\321, kf38=\377\322,
+       kf39=\377\323, kf4=\377\204, kf40=\377\324,
+       kf41=\377\325, kf42=\377\326, kf43=\377\327,
+       kf44=\377\330, kf45=\377\331, kf46=\377\332,
+       kf47=\377\316, kf48=\377\317, kf5=\377\205, kf6=\377\206,
+       kf7=\377\207, kf8=\377\210, kf9=\377\211, kfnd=\377\346,
+       khlp=\377\350, khome=\377\240, khts=\377\342,
+       kich1=\377\253, kil1=\377\273, kind=\377\261,
+       kmov=\377\351, kmrk=\377\355, kmsg=\377\345,
+       knp=\377\252, knxt=\377\312, kopn=\377\357,
+       kopt=\377\353, kpp=\377\242, kprt=\377\255,
+       kprv=\377\302, krdo=\377\336, kref=\377\354,
+       kres=\377\360, krfr=\377\347, kri=\377\271,
+       krmir=\377\313, krpl=\377\362, krst=\377\352,
+       ksav=\377\361, kslt=\377\247, kspd=\377\335,
+       ktbc=\377\344, kund=\377\365, mvpa=\E!%p1%02d, op=\ER,
+       rep=\Eg%p2%{32}%+%c%p1%c, rev=\E(, ri=\EI, rmcup=\Eh\ER,
+       rmso=\E), rmul=\E], rs1=\ER, setb=\E@%p1%Pb%gb%gf%d%d,
+       setf=\E@%p1%Pf%gb%gf%d%d, sgr0=\E}\E]\E>\E), smcup=\Ei,
+       smso=\E(, smul=\E[,
+#
+#
+qnxt|qnxt4|QNX4 terminal,
+       crxm, use=qnx4,
+#
+qnxm|QNX4 with mouse events,
+       maddr#1,
+       chr=\E/, cvr=\E", is1=\E/0t, mcub=\E/>1h, mcub1=\E/>7h,
+       mcud=\E/>1h, mcud1=\E/>1l\E/>9h, mcuf=\E/>1h\E/>9l,
+       mcuf1=\E/>7l, mcuu=\E/>6h, mcuu1=\E/>6l, rmicm=\E/>2l,
+       smicm=\E/>2h, use=qnx4,
+#
+qnxw|QNX4 windows,
+       xvpa, use=qnxm,
+#
+#      Monochrome QNX4 terminal or console. Setting this terminal type will
+#      allow an application running on a color console to behave as if it
+#      were a monochrome terminal. Output will be through stdout instead of
+#      console writes because the term routines will recognize that the
+#      terminal name starts with 'qnxt'.
+#
+qnxtmono|Monochrome QNX4 terminal or console,
+       colors@, pairs@,
+       scp@, use=qnx4,
+
+# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998
+# (esr: commented out <scp> and <rmcup> to avoid warnings.)
+# (TD: derive from original qnx4 entry)
+qnxt2|qnx 2.15 serial terminal,
+       am,
+       civis@, cnorm@, cvvis@, dch1@, ich1@, kRES@, kRPL@, kUND@, kspd@,
+       rep@, rmcup@, rmso=\E>, setb@, setf@, smcup@, smso=\E<, use=qnx4,
+
+# QNX ANSI terminal definition
+qansi-g|QNX ANSI,
+       am, eslok, hs, xon,
+       colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~Oa,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[2J\E[H, cnorm=\E[?25h\E[?12l, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[1M, dsl=\E[r, ech=\E[%p1%dX, ed=\E[J,
+       el=\E[K, el1=\E[1K\E[X, flash=\E[?5h$<200>\E[?5l,
+       fsl=\E[?6h\E8, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
+       ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L,
+       ind=\E[S, indn=\E[%p1%dS, invis=\E[9m,
+       is2=\E>\E[?1l\E[?7h\E[0;10;39;49m, is3=\E(B\E)0,
+       kBEG=\ENn, kCAN=\E[s, kCMD=\E[t, kCPY=\ENs, kCRT=\ENt,
+       kDL=\ENv, kEXT=\ENw, kFND=\ENx, kHLP=\ENy, kHOM=\E[h,
+       kLFT=\E[d, kNXT=\E[u, kOPT=\ENz, kPRV=\E[v, kRIT=\E[c,
+       kbs=^H, kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa,
+       kcmd=\E[G, kcpy=\E[g, kctab=\E[z, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[p, kend=\E[Y,
+       kext=\E[y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA,
+       kf13=\EOp, kf14=\EOq, kf15=\EOr, kf16=\EOs, kf17=\EOt,
+       kf18=\EOu, kf19=\EOv, kf2=\EOQ, kf20=\EOw, kf21=\EOx,
+       kf22=\EOy, kf23=\EOz, kf24=\EOa, kf25=\E[1~, kf26=\E[2~,
+       kf27=\E[3~, kf28=\E[4~, kf29=\E[5~, kf3=\EOR, kf30=\E[6~,
+       kf31=\E[7~, kf32=\E[8~, kf33=\E[9~, kf34=\E[10~,
+       kf35=\E[11~, kf36=\E[12~, kf37=\E[17~, kf38=\E[18~,
+       kf39=\E[19~, kf4=\EOS, kf40=\E[20~, kf41=\E[21~,
+       kf42=\E[22~, kf43=\E[23~, kf44=\E[24~, kf45=\E[25~,
+       kf46=\E[26~, kf47=\E[27~, kf48=\E[28~, kf5=\EOT, kf6=\EOU,
+       kf7=\EOV, kf8=\EOW, kf9=\EOX, kfnd=\ENf, khlp=\ENh,
+       khome=\E[H, khts=\ENb, kich1=\E[@, kil1=\E[`, kind=\E[a,
+       kmov=\ENi, kmrk=\ENm, kmsg=\ENe, knp=\E[U, kopn=\ENo,
+       kopt=\ENk, kpp=\E[V, kref=\ENl, kres=\ENp, krfr=\ENg,
+       kri=\E[b, krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\E[T,
+       ktbc=\ENd, kund=\ENu, ll=\E[99H, nel=\EE, op=\E[39;49m,
+       rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\E[T,
+       rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmso=\E[27m,
+       rmul=\E[24m, rs1=\017\E[?7h\E[0;39;49m$<2>\E>\E[?1l,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+       setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;9%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m,
+       smul=\E[4m, tbc=\E[2g,
+       tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH,
+#
+qansi|QNX ansi with console writes,
+       daisy, xhpa, use=qansi-g,
+#
+qansi-t|QNX ansi without console writes,
+       crxm, use=qansi,
+#
+qansi-m|QNX ansi with mouse,
+       maddr#1,
+       chr=\E[, cvr=\E], is1=\E[0t, mcub=\E[>1h, mcub1=\E[>7h,
+       mcud=\E[>1h, mcud1=\E[>1l\E[>9h, mcuf=\E[>1h\E[>9l,
+       mcuf1=\E[>7l, mcuu=\E[>6h, mcuu1=\E[>6l, rmicm=\E[>2l,
+       smicm=\E[>2h, use=qansi,
+#
+qansi-w|QNX ansi for windows,
+       xvpa, use=qansi-m,
+
+#### NetBSD consoles
+#
+# pcvt termcap database entries (corresponding to release 3.31)
+# Author's last edit-date: [Fri Sep 15 20:29:10 1995]
+#
+# (For the terminfo master file, I translated these into terminfo syntax.
+# Then I dropped all the pseudo-HP entries. we don't want and can't use
+# the :Xs: flag. Then I split :is: into a size-independent <is1> and a
+# size-dependent <is2>.  Finally, I added <rmam>/<smam> -- esr)
+
+# NOTE: <ich1> has been taken out of this entry. for reference, it should
+# be <ich1=\E[@>.  For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below.
+# (esr: added <civis> and <cnorm> to resolve NetBSD Problem Report #4583)
+pcvtXX|pcvt vt200 emulator (DEC VT220),
+       am, km, mir, msgr, xenl,
+       it#8, vt#3,
+       acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS,
+       is1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=\177,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kdch1=\E[3~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
+       kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
+       khome=\E[1~, kich1=\E[2~, kll=\E[4~, knp=\E[6~, kpp=\E[5~,
+       nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100,
+       ri=\EM, rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
+       rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+       rs1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+
+#      NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
+#      termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
+#      50 lines entries; 80 columns
+pcvt25|dec vt220 emulation with 25 lines,
+       cols#80, lines#25,
+       is2=\E[1;25r\E[25;1H, use=pcvtXX,
+pcvt28|dec vt220 emulation with 28 lines,
+       cols#80, lines#28,
+       is2=\E[1;28r\E[28;1H, use=pcvtXX,
+pcvt35|dec vt220 emulation with 35 lines,
+       cols#80, lines#35,
+       is2=\E[1;35r\E[35;1H, use=pcvtXX,
+pcvt40|dec vt220 emulation with 40 lines,
+       cols#80, lines#40,
+       is2=\E[1;40r\E[40;1H, use=pcvtXX,
+pcvt43|dec vt220 emulation with 43 lines,
+       cols#80, lines#43,
+       is2=\E[1;43r\E[43;1H, use=pcvtXX,
+pcvt50|dec vt220 emulation with 50 lines,
+       cols#80, lines#50,
+       is2=\E[1;50r\E[50;1H, use=pcvtXX,
+
+#      NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
+#      termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
+#      50 lines entries; 132 columns
+pcvt25w|dec vt220 emulation with 25 lines and 132 cols,
+       cols#132, lines#25,
+       is2=\E[1;25r\E[25;1H, use=pcvtXX,
+pcvt28w|dec vt220 emulation with 28 lines and 132 cols,
+       cols#132, lines#28,
+       is2=\E[1;28r\E[28;1H, use=pcvtXX,
+pcvt35w|dec vt220 emulation with 35 lines and 132 cols,
+       cols#132, lines#35,
+       is2=\E[1;35r\E[35;1H, use=pcvtXX,
+pcvt40w|dec vt220 emulation with 40 lines and 132 cols,
+       cols#132, lines#40,
+       is2=\E[1;40r\E[40;1H, use=pcvtXX,
+pcvt43w|dec vt220 emulation with 43 lines and 132 cols,
+       cols#132, lines#43,
+       is2=\E[1;43r\E[43;1H, use=pcvtXX,
+pcvt50w|dec vt220 emulation with 50 lines and 132 cols,
+       cols#132, lines#50,
+       is2=\E[1;50r\E[50;1H, use=pcvtXX,
+
+#      OpenBSD implements a color variation
+pcvt25-color|dec vt220 emulation with 25 lines and color,
+       cols#80, lines#25,
+       is2=\E[1;25r\E[25;1H, kf1=\EOP, kf10=\E[29~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
+       kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, use=pcvtXX,
+       use=ecma+color,
+
+# Terminfo entries to enable the use of the ncurses library in colour on a
+# NetBSD-arm32 console (only tested on a RiscPC).
+# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98
+# modified codes for setf/setb to setaf/setab, then to klone+color, corrected
+# typo in invis - TD
+arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480),
+       am, bce, msgr, xenl, xon,
+       cols#80, it#8, lines#30,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+       clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+       cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+       cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
+       enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J,
+       invis=\E[8m$<2>, ka1=\E[q, ka3=\E[s, kb2=\E[r, kbs=^H,
+       kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x,
+       kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v,
+       kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>,
+       rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
+       rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+       sc=\E7,
+       sgr=\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>,
+       sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+       smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr,
+       use=klone+color,
+
+arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768),
+       cols#132, lines#50, use=arm100,
+
+# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine
+# manufactured by Sharp for the Japenese market.
+# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996
+x68k|x68k-ite|NetBSD/x68k ITE,
+       cols#96, lines#32,
+       kclr=\E[9~, khlp=\E[28~, use=vt220,
+
+# <tv@pobox.com>:
+# Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
+#
+# (still unfinished, but good enough so far.)
+ofcons|DNARD OpenFirmware console,
+       bw,
+       cols#80, lines#30,
+       bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M,
+       cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
+       cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
+       cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
+       dim=\2332m, dl=\233%p1%dM, dl1=\233M, ed=\233J, el=\233K,
+       flash=^G, ht=^I, ich=\233%p1%d@, ich1=\233@, il=\233%p1%dL,
+       il1=\233L, ind=^J, invis=\2338m, kbs=^H, kcub1=\233D,
+       kcud1=\233B, kcuf1=\233C, kcuu1=\233A, kdch1=\233P,
+       kf1=\2330P, kf10=\2330M, kf2=\2330Q, kf3=\2330W,
+       kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r,
+       kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m,
+       rmso=\2330m, rmul=\2330m,
+       sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
+       sgr0=\2330m,
+
+# NetBSD "wscons" emulator in vt220 mode.
+# This entry is based on the NetBSD termcap entry, correcting the ncv value.
+# The emulator renders underlined text in red.  Colors are otherwise usable.
+#
+# Testing the emulator and reading the source code (NetBSD 2.0), it appears
+# that "vt220" is inaccurate.  There are a few vt220-features, but most of the
+# vt220 screens in vttest do not work with this emulator.  For instance, it
+# identifies itself (primary DA response) as a vt220 with selective erase.  But
+# the selective erase feature does not work.  The secondary response is copied
+# from Kermit's emulation of vt220, does not correspond to actual vt220.  At
+# the level of detail in a termcap, it is a passable emulator, since ECH does
+# work.  Don't use it on a VMS system -TD
+wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
+       bce, msgr,
+       colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64,
+       is2=\E[r\E[25;1H, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
+       kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+       kf9=\E[20~, khome=\E[7~, op=\E[m, setab=\E[4%p1%dm,
+       setaf=\E[3%p1%dm, use=vt220,
+
+wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
+       km, use=wsvt25,
+
+# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
+# DECstation/pmax.
+rcons|BSD rasterconsole,
+       use=sun-il,
+# Color version of above. Color currently only provided by NetBSD.
+rcons-color|BSD rasterconsole with ANSI color,
+       bce,
+       colors#8, pairs#64,
+       op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=rcons,
+
+# mgterm -- MGL/MGL2, MobileGear Graphic Library
+# for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k}
+# -- the setf/setb are probably incorrect, more likely setaf/setab -TD
+# -- compare with cons25w
+mgterm,
+       OTbs, OTpt, am, bce, bw, eo, km, msgr, npc,
+       colors#8, cols#80, it#8, lines#18, pairs#64,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+       cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, dl=\E[%p1%dM,
+       dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+       home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+       indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
+       kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf2=\E[N,
+       kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
+       kf9=\E[U, khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I,
+       nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
+       rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7, setb=\E[4%p1%dm,
+       setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
+
+#### FreeBSD console entries
+#
+# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
+# Andrey Chernov maintains the FreeBSD termcap distributions.
+#
+# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade
+# or comment out the :cb: capability in the console entry.
+#
+# Alexander Lukyanov reports:
+# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there.
+# Now el1 clears not only to the line beginning, but also a large chunk
+# of previous line. But there is another bug - ech does not work at all.
+#
+
+# for syscons
+# common entry without semigraphics
+# Bug: The <op> capability resets attributes.
+# Bug? The ech and el1 attributes appear to move the cursor in some cases; for
+# instance el1 does if the cursor is moved to the right margin first.  Removed
+# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K)
+#
+# Setting colors turns off reverse; we cannot guarantee order, so use ncv.
+# Note that this disables standout with color.
+#
+# The emulator sends difference strings based on shift- and control-keys,
+# like scoansi:
+#      F13-F24 are shifted F1-F12
+#      F25-F36 are control F1-F12
+#      F37-F48 are shift+control F1-F12
+cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode),
+       am, bce, bw, eo, msgr, npc,
+       colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+       cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
+       cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[=1C, dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m,
+       dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+       home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+       indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
+       kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf13=\E[Y,
+       kf14=\E[Z, kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d,
+       kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h,
+       kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m,
+       kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q,
+       kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, kf36=\E[v,
+       kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, kf40=\E[z,
+       kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], kf45=\E[\^,
+       kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, kf6=\E[R,
+       kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, kich1=\E[L,
+       knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m,
+       ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
+       sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
+cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
+       acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
+       use=cons25w,
+cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
+       colors@, pairs@,
+       bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
+       sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
+       smul=\E[4m, use=cons25,
+cons30|ansi80x30|freebsd console (30-line ansi mode),
+       lines#30, use=cons25,
+cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode),
+       lines#30, use=cons25-m,
+cons43|ansi80x43|freebsd console (43-line ansi mode),
+       lines#43, use=cons25,
+cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode),
+       lines#43, use=cons25-m,
+cons50|ansil|ansi80x50|freebsd console (50-line ansi mode),
+       lines#50, use=cons25,
+cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode),
+       lines#50, use=cons25-m,
+cons60|ansi80x60|freebsd console (60-line ansi mode),
+       lines#60, use=cons25,
+cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode),
+       lines#60, use=cons25-m,
+cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic,
+       acsc=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225,
+       use=cons25w,
+cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono),
+       colors@, pairs@,
+       op@, rmul=\E[m, setab@, setaf@,
+       sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
+       smul=\E[4m, use=cons25r,
+cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines),
+       lines#50, use=cons25r,
+cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono),
+       lines#50, use=cons25r-m,
+cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines),
+       lines#60, use=cons25r,
+cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono),
+       lines#60, use=cons25r-m,
+# ISO 8859-1 FreeBSD console
+cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars,
+       acsc=+\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,
+       use=cons25w,
+cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono),
+       colors@, pairs@,
+       bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
+       sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
+       smul=\E[4m, use=cons25l1,
+cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines),
+       lines#50, use=cons25l1,
+cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono),
+       lines#50, use=cons25l1-m,
+cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines),
+       lines#60, use=cons25l1,
+cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono),
+       lines#60, use=cons25l1-m,
+
+#### 386BSD and BSD/OS Consoles
+#
+
+# This was the original 386BSD console entry (I think).
+# Some places it's named oldpc3|oldibmpc3.
+# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu>
+origpc3|origibmpc3|IBM PC 386BSD Console,
+       OTbs, am, bw, eo, xon,
+       cols#80, lines#25,
+       acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+       bold=\E[7m, clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+       home=\E[H, ind=\E[S, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, khome=\E[Y, ri=\E[T, rmso=\E[1;0x\E[2;7x,
+       rmul=\E[1;0x\E[2;7x, sgr0=\E[m\E[1;0x\E[2;7x,
+       smso=\E[1;7x\E[2;0x, smul=\E[1;7x\E[2;0x,
+
+# description of BSD/386 console emulator in version 1.0 (supplied by BSDI)
+oldpc3|oldibmpc3|old IBM PC BSD/386 Console,
+       OTbs, km,
+       lines#25,
+       bel=^G, bold=\E[=15F, cr=^M, cud1=^J, dim=\E[=8F, dl1=\E[M,
+       ht=^I, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, kll=\E[F,
+       knp=\E[G, kpp=\E[I, nel=^M^J, sgr0=\E[=R,
+
+# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1
+# Note, the emulator supports many of the additional console features
+# listed in the iBCS2 (e.g. character-set selection) though not all
+# are described here.  This entry really ought to be upgraded.
+# Also note, the console will also work with fewer lines after doing
+# "stty rows NN", e.g. to use 24 lines.
+# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996)
+# Bug: The <op> capability resets attributes.
+bsdos-pc|IBM PC BSD/OS Console,
+       sgr=\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,
+       use=bsdos-pc-nobold,
+
+bsdos-pc-nobold|BSD/OS PC console w/o bold,
+       use=klone+color, use=bsdos-pc-m,
+
+bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono,
+       OTbs, am, eo, km, xon,
+       cols#80, it#8, lines#25,
+       bel=^G, clear=\Ec, cr=^M, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
+       kll=\E[F, knp=\E[G, kpp=\E[I, nel=^M^J, rc=\E8, sc=\E7,
+       sgr=\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%;,
+       use=klone+sgr8,
+
+# Old names for BSD/OS PC console used in releases before 4.1.
+pc3|BSD/OS on the PC Console,
+       use=bsdos-pc-nobold,
+ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline,
+       use=bsdos-pc,
+
+# BSD/OS on the SPARC
+bsdos-sparc|Sun SPARC BSD/OS Console,
+       use=sun,
+
+# BSD/OS on the PowerPC
+bsdos-ppc|PowerPC BSD/OS Console,
+       use=bsdos-pc,
+
+#### DEC VT52
+# (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr)
+#
+# Actually (TD pointed this out at the time the acsc string was added):
+# vt52 shouldn't define full acsc since most of the cells don't match.
+# see vt100 manual page A-31.  This is the list that does match:
+#      f degree
+#      g plus/minus
+#      h right-arrow
+#      k down-arrow
+#      m scan-1
+#      o scan-3
+#      q scan-5
+#      s scan-7
+# The line-drawing happens to work in several terminal emulators, but should
+# not be used as a guide to the capabilities of the vt52.  Note in particular
+# that vt52 does not support line-drawing characters (the scan-X values refer
+# to a crude plotting feature) -TD
+vt52|dec vt52,
+       OTbs,
+       cols#80, it#8, lines#24,
+       acsc=ffgghhompoqqss.k, bel=^G, clear=\EH\EJ, cr=^M,
+       cub1=\ED, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+       el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
+
+#### DEC VT100 and compatibles
+#
+# DEC terminals from the vt100 forward are collected here. Older DEC terminals
+# and micro consoles can be found in the `obsolete' section.  More details on
+# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be
+# found near the end of this file.
+#
+# Except where noted, these entries are DEC's official terminfos.
+# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
+# Engineering for more information.  Updated terminfos and termcaps
+# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
+#
+# In October 1995 DEC sold its terminals business, including the VT and Dorio
+# line and trademark, to SunRiver Data Systems.  SunRiver has since changed
+# its name to Boundless Technologies; see http://www.boundless.com.
+#
+
+# NOTE:  Any VT100 emulation, whether in hardware or software, almost
+# certainly includes what DEC called the `Level 1 editing extension' codes;
+# only the very oldest VT100s lacked these and there probably aren't any of
+# those left alive.  To capture these, use one of the VT102 entries.
+#
+# Note that the <xenl> glitch in vt100 is not quite the same as on the Concept,
+# since the cursor is left in a different position while in the
+# weird state (concept at beginning of next line, vt100 at end
+# of this line) so all versions of vi before 3.7 don't handle
+# <xenl> right on vt100. The correct way to handle <xenl> is when
+# you output the char in column 80, immediately output CR LF
+# and then assume you are in column 1 of the next line. If <xenl>
+# is on, am should be on too.
+#
+# I assume you have smooth scroll off or are at a slow enough baud
+# rate that it doesn't matter (1200? or less). Also this assumes
+# that you set auto-nl to "on", if you set it off use vt100-nam
+# below.
+#
+# The padding requirements listed here are guesses. It is strongly
+# recommended that xon/xoff be enabled, as this is assumed here.
+#
+# The vt100 uses <rs2> and <rf> rather than <is2>/<tbc>/<hts> because the
+# tab settings are in non-volatile memory and don't need to be
+# reset upon login. Also setting the number of columns glitches
+# the screen annoyingly. You can type "reset" to get them set.
+#
+# The VT100 series terminals have cursor ("arrows") keys which can operate
+# in two different modes: Cursor Mode and Application Mode.  Cursor Mode
+# is the reset state, and is assumed to be the normal state.  Application
+# Mode is the "set" state.  In Cursor Mode, the cursor keys transmit
+# "Esc [ {code}" sequences, conforming to ANSI standards.  In Application
+# Mode, the cursor keys transmit "Esc O <code>" sequences.  Application Mode
+# was provided primarily as an aid to the porting of VT52 applications.  It is
+# assumed that the cursor keys are normally in Cursor Mode, and expected that
+# applications such as vi will always transmit the <smkx> string.  Therefore,
+# the definitions for the cursor keys are made to match what the terminal
+# transmits after the <smkx> string is transmitted.  If the <smkx> string
+# is a null string or is not defined, then cursor keys are assumed to be in
+# "Cursor Mode", and the cursor keys definitions should match that assumption,
+# else the application may fail.  It is also expected that applications will
+# always transmit the <rmkx> string to the terminal before they exit.
+#
+# The VT100 series terminals have an auxiliary keypad, commonly referred to as
+# the "Numeric Keypad", because it is a cluster of numeric and function keys.
+# The Numeric Keypad which can operate in two different modes: Numeric Mode and
+# Application Mode.  Numeric Mode is the reset state, and is assumed to be
+# the normal state.  Application Mode is the "set" state.  In Numeric Mode,
+# the numeric and punctuation keys transmit ASCII 7-bit characters, and the
+# Enter key transmits the same as the Return key (Note: the Return key
+# can be configured to send either LF (\015) or CR LF).  In Application Mode,
+# all the keypad keys transmit "Esc O {code}" sequences.  The PF1 - PF4 keys
+# always send the same "Esc O {code}" sequences.  It is assumed that the keypad
+# is normally in Numeric Mode.  If an application requires that the keypad be
+# in Application Mode then it is expected that the user, or the application,
+# will set the TERM environment variable to point to a terminfo entry which has
+# defined the <smkx> string to include the codes that switch the keypad into
+# Application Mode, and the terminfo entry will also define function key
+# fields to match the Application Mode control codes.  If the <smkx> string
+# is a null string or is not defined, then the keypad is assumed to be in
+# Numeric Mode.  If the <smkx> string switches the keypad into Application
+# Mode, it is expected that the <rmkx> string will contain the control codes
+# necessary to reset the keypad to "Normal" mode, and it is also expected that
+# applications which transmit the <smkx> string will also always transmit the
+# <rmkx> string to the terminal before they exit.
+#
+# Here's a diagram of the VT100 keypad keys with their bindings.
+# The top line is the name of the key (some DEC keyboards have the keys
+# labelled somewhat differently, like GOLD instead of PF1, but this is
+# the most "official" name).  The second line is the escape sequence it
+# generates in Application Keypad mode (where "$" means the ESC
+# character).  The third line contains two items, first the mapping of
+# the key in terminfo, and then in termcap.
+#   _______________________________________
+#  |   PF1   |   PF2   |   PF3   |   PF4   |
+#  |   $OP   |   $OQ   |   $OR   |   $OS   |
+#  |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
+#  |    7         8         9         -    |
+#  |   $Ow   |   $Ox   |   $Oy   |   $Om   |
+#  |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________|
+#  |    4    |    5    |    6    |    ,    |
+#  |   $Ot   |   $Ou   |   $Ov   |   $Ol   |
+#  |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_|
+#  |    1    |    2    |    3    |         |
+#  |   $Oq   |   $Or   |   $Os   |  enter  |
+#  |_ka1__K1_|_kb2__K2_|_ka3__K3_|  $OM    |
+#  |         0         |   .     |         |
+#  |        $Op        |  $On    |         |
+#  |___kc1_______K4____|_kc3__K5_|_kent_@8_|
+#
+# Note however, that the arrangement of the 5-key ka1-kc3 do not follow the
+# terminfo guidelines.  That is a compromise used to assign the remaining
+# keys on the keypad to kf5-kf0, used on older systems with legacy termcap
+# support:
+vt100+keypad|dec vt100 numeric keypad no fkeys,
+       ka1=\EOq, ka3=\EOs, kb2=\EOr, kc1=\EOp, kc3=\EOn,
+vt100+pfkeys|dec vt100 numeric keypad,
+       kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+       use=vt100+keypad,
+vt100+fnkeys|dec vt100 numeric keypad,
+       kf0=\EOy, kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl,
+       kf9=\EOw, use=vt100+pfkeys,
+#
+# A better adaptation to modern keyboards such as the PC's, which have a dozen
+# function keys and the keypad 2,4,6,8 keys are labeled with arrows keys, is to
+# use the 5-key arrangement to model the arrow keys as suggested in the
+# terminfo guidelines:
+#   _______________________________________
+#  |   PF1   |   PF2   |   PF3   |   PF4   |
+#  |   $OP   |   $OQ   |   $OR   |   $OS   |
+#  |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
+#  |    7         8         9         -    |
+#  |   $Ow   |   $Ox   |   $Oy   |   $Om   |
+#  |_ka1__K1_|_________|_ka3__K3_|_________|
+#  |    4    |    5    |    6    |    ,    |
+#  |   $Ot   |   $Ou   |   $Ov   |   $Ol   |
+#  |_________|_kb2__K2_|_________|_________|
+#  |    1    |    2    |    3    |         |
+#  |   $Oq   |   $Or   |   $Os   |  enter  |
+#  |_kc1__K4_|_________|_kc3__K5_|  $OM    |
+#  |         0         |   .     |         |
+#  |        $Op        |  $On    |         |
+#  |___________________|_________|_kent_@8_|
+#
+vt220+keypad|dec vt220 numeric keypad,
+       ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, kent=\EOM,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ka2=\EOx, kb1=\EOt,
+       kb3=\EOv, kc2=\EOr,
+#
+vt100+enq|ncurses extension for vt100-style ENQ,
+       u8=\E[?1;2c, use=ansi+enq,
+vt102+enq|ncurses extension for vt102-style ENQ,
+       u8=\E[?6c, use=ansi+enq,
+#
+# And here, for those of you with orphaned VT100s lacking documentation, is
+# a description of the soft switches invoked when you do `Set Up'.
+#
+#  Scroll 0-Jump               Shifted 3   0-#
+#  |      1-Smooth             |           1-British pound sign
+#  | Autorepeat 0-Off          | Wrap Around 0-Off
+#  | |          1-On           | |           1-On
+#  | | Screen 0-Dark Bkg       | | New Line 0-Off
+#  | | |      1-Light Bkg      | | |        1-On
+#  | | | Cursor 0-Underline    | | | Interlace 0-Off
+#  | | | |      1-Block        | | | |         1-On
+#  | | | |                     | | | |
+#  1 1 0 1       1 1 1 1       0 1 0 0       0 0 1 0       <--Standard Settings
+#                | | | |                     | | | |
+#                | | | Auto XON/XOFF 0-Off   | | | Power 0-60 Hz
+#                | | |               1-On    | | |       1-50 Hz
+#                | | Ansi/VT52 0-VT52        | | Bits Per Char. 0-7 Bits
+#                | |           1-ANSI        | |                1-8 Bits
+#                | Keyclick 0-Off            | Parity 0-Off
+#                |          1-On             |        1-On
+#                Margin Bell 0-Off           Parity Sense 0-Odd
+#                            1-On                         1-Even
+#
+# The following SET-UP modes are assumed for normal operation:
+#      ANSI_MODE       AUTO_XON/XOFF_ON        NEWLINE_OFF     80_COLUMNS
+#      WRAP_AROUND_ON  JUMP_SCROLL_OFF
+# Other SET-UP modes may be set for operator convenience or communication
+# requirements; I recommend
+#      AUTOREPEAT_ON   BLOCK_CURSOR    MARGIN_BELL_OFF    SHIFTED_3_#
+# Unless you have a graphics add-on such as Digital Engineering's VT640
+# (and even then, whenever it can be arranged!) you should set
+#      INTERLACE_OFF
+#
+# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr)
+vt100|vt100-am|dec vt100 (w/advanced video),
+       OTbs, am, mc5i, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+       clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+       cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+       cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
+       enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, lf1=pf1,
+       lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+       rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
+       rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
+       sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+       smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
+       use=vt100+fnkeys,
+vt100nam|vt100-nam|vt100 no automargins,
+       am@, xenl@, use=vt100-am,
+vt100-vb|dec vt100 (w/advanced video) & no beep,
+       bel@, flash=\E[?5h\E[?5l, use=vt100,
+
+# Ordinary vt100 in 132 column ("wide") mode.
+vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video),
+       cols#132, lines#24,
+       rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-am,
+vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin),
+       cols#132, lines#14, vt@,
+       rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-nam,
+
+# vt100 with no advanced video.
+vt100-nav|vt100 without advanced video option,
+       xmc#1,
+       blink@, bold@, rev@, rmso=\E[m, rmul@, sgr@, sgr0@, smso=\E[7m,
+       smul@, use=vt100,
+vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option),
+       cols#132, lines#14, use=vt100-nav,
+
+# vt100 with one of the 24 lines used as a status line.
+# We put the status line on the top.
+vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline,
+       eslok, hs,
+       lines#23,
+       clear=\E[2;1H\E[J$<50>, csr=\E[%i%i%p1%d;%p2%dr,
+       cup=\E[%i%p1%{1}%+%d;%p2%dH$<5>, dsl=\E7\E[1;24r\E8,
+       fsl=\E8, home=\E[2;1H, is2=\E7\E[2;24r\E8,
+       tsl=\E7\E[1;%p1%dH\E[1K, use=vt100-am,
+
+# Status line at bottom.
+# Clearing the screen will clobber status line.
+vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline,
+       eslok, hs,
+       lines#23,
+       dsl=\E7\E[1;24r\E8, fsl=\E8, is2=\E[1;23r\E[23;1H,
+       tsl=\E7\E[24;%p1%dH\E[1K, use=vt100-am,
+
+# Most of the `vt100' emulators out there actually emulate a vt102
+# This entry (or vt102-nsgr) is probably the right thing to use for
+# these.
+vt102|dec vt102,
+       dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h,
+       use=vt100,
+vt102-w|dec vt102 in wide mode,
+       cols#132,
+       rs3=\E[?3h, use=vt102,
+
+# Many brain-dead PC comm programs that pretend to be `vt100-compatible'
+# fail to interpret the ^O and ^N escapes properly.  Symptom: the <sgr0>
+# string in the canonical vt100 entry above leaves the screen littered
+# with little  snowflake or star characters (IBM PC ROM character \017 = ^O)
+# after highlight turnoffs.  This entry should fix that, and even leave
+# ACS support working, at the cost of making multiple-highlight changes
+# slightly more expensive.
+# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
+vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes),
+       sgr@, sgr0=\E[m, use=vt102,
+
+# VT125 Graphics CRT.  Clear screen also erases graphics
+# Some vt125's came configured with vt102 support.
+vt125|vt125 graphics terminal,
+       mir,
+       clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100,
+
+# This isn't a DEC entry, it came from University of Wisconsin.
+# (vt131: I added <rmam>/<smam> based on the init string, also <OTbs> -- esr)
+vt131|dec vt131,
+       OTbs, am, xenl,
+       cols#80, it#8, lines#24, vt#3,
+       bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
+       clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
+       cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
+       ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
+       is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
+       kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+       kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>, ri=\EM$<5/>,
+       rmam=\E[?7h, rmkx=\E[?1l\E>, rmso=\E[m$<2/>,
+       rmul=\E[m$<2/>,
+       rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=,
+       smso=\E[7m$<2/>, smul=\E[4m$<2/>,
+
+# vt132 - like vt100 but slower and has ins/del line and such.
+# I'm told that <smir>/<rmir> are backwards in the terminal from the
+# manual and from the ANSI standard, this describes the actual
+# terminal. I've never actually used a vt132 myself, so this
+# is untested.
+#
+vt132|DEC vt132,
+       xenl,
+       dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
+       ip=$<7>, rmir=\E[4h, smir=\E[4l, use=vt100,
+
+# This vt220 description maps F5--F9 to the second block of function keys
+# at the top of the keyboard.  The "DO" key is used as F10 to avoid conflict
+# with the key marked (ESC) on the vt220.  See vt220d for an alternate mapping.
+# PF1--PF4 are used as F1--F4.
+#
+vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
+       OTbs, OTpt, am, mir, xenl, xon,
+       cols#80, lines#24, vt#3,
+       OTnl=^J,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
+       clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
+       dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
+       if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>,
+       is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\EOP,
+       kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
+       kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~,
+       khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rc=\E8,
+       rev=\E[7m$<2>, rf=/usr/share/tabset/vt100,
+       ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
+       rmso=\E[27m, rmul=\E[24m,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+       sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+       smso=\E[7m, smul=\E[4m,
+
+# A much better description of the VT200/220; used to be vt220-8
+# changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1
+# designation to accommodate bug in pcvt -TD
+vt220|vt200|dec vt220,
+       OTbs, am, mc5i, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
+       flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
+       ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
+       il=\E[%p1%dL, il1=\E[L, ind=\ED,
+       is2=\E[?7h\E[>\E[?1h\E F\E[?4l, kbs=^H, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+       kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
+       kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
+       kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
+       lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i, mc4=\E[4i,
+       mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
+       rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
+       rmul=\E[24m, rs1=\E[?3l, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+       sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+       smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+vt220-w|vt200-w|DEC vt220 in wide mode,
+       cols#132,
+       rs3=\E[?3h, use=vt220,
+vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode,
+       OTbs, am, mc5i, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=^M,
+       csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H,
+       cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C,
+       cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A,
+       dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
+       ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, enacs=\E)0,
+       flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH,
+       ich=\233%p1%d@, if=/usr/share/tabset/vt100,
+       il=\233%p1%dL, il1=\233L, ind=\ED,
+       is2=\233?7h\233>\233?1h\E F\233?4l, kbs=^H,
+       kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
+       kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
+       kf13=\23325~, kf14=\23326~, kf17=\23331~, kf18=\23332~,
+       kf19=\23333~, kf2=\EOQ, kf20=\23334~, kf3=\EOR, kf4=\EOS,
+       kf6=\23317~, kf7=\23318~, kf8=\23319~, kf9=\23320~,
+       kfnd=\2331~, khlp=\23328~, khome=\233H, kich1=\2332~,
+       knp=\2336~, kpp=\2335~, krdo=\23329~, kslt=\2334~, lf1=pf1,
+       lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i,
+       nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=\E(B,
+       rmam=\233?7l, rmir=\2334l, rmso=\23327m, rmul=\23324m,
+       rs1=\233?3l, sc=\E7,
+       sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+       sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, smir=\2334h,
+       smso=\2337m, smul=\2334m, tbc=\2333g,
+
+# vt220d:
+# This vt220 description regards F6--F10 as the second block of function keys
+# at the top of the keyboard.  This mapping follows the description given
+# in the VT220 Programmer Reference Manual and agrees with the labeling
+# on some terminals that emulate the vt220.  There is no support for an F5.
+# See vt220 for an alternate mapping.
+#
+vt220d|DEC VT220 in vt100 mode with DEC function key labeling,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+       kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+       kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf5@, kf6=\E[17~,
+       kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, use=vt220-old,
+
+vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins,
+       am@,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
+
+# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko
+# (not an official DEC entry!)
+# The problem with real vt220 terminals is they don't send escapes when in
+# in vt220 mode.  This can be gotten around two ways.  1> don't send
+# escapes or 2> put the vt220 into vt100 mode and use all the nifty
+# features of vt100 advanced video which it then has.
+#
+# This entry takes the view of putting a vt220 into vt100 mode so
+# you can use the escape key in emacs and everything else which needs it.
+#
+# You probably don't want to use this on a VMS machine since VMS will think
+# it has a vt220 and will get fouled up coming out of emacs
+#
+# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
+# (Added vt100 <rc>,<sc> to quiet a tic warning -- esr)
+vt200-js|vt220-js|dec vt200 series with jump scroll,
+       am,
+       cols#80,
+       bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=^J, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+       il1=\E[L, ind=\ED,
+       is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8,
+       rf=/usr/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l,
+       rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m,
+       rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=,
+       smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m,
+
+# This was DEC's vt320.  Use the purpose-built one below instead
+#vt320|DEC VT320 in vt100 emulation mode,
+#      use=vt220,
+
+# Use v320n for SCO's LYRIX.  Otherwise, use Adam Thompson's vt320-nam.
+#
+vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode,
+       am@,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
+
+# These entries are not DEC's official ones, they were purpose-built for the
+# VT320.  Here are the designer's notes:
+# <kel> is end on a PC kbd.  Actually 'select' on a VT.  Mapped to
+# 'Erase to End of Field'... since nothing seems to use 'end' anyways...
+# khome is Home on a PC kbd.  Actually 'FIND' on a VT.
+# Things that use <knxt> usually use tab anyways... and things that don't use
+# tab usually use <knxt> instead...
+# kprv is same as tab - Backtab is useless...
+# I left out <sgr> because of its RIDICULOUS complexity,
+# and the resulting fact that it causes the termcap translation of the entry
+# to SMASH the 1k-barrier...
+# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
+# (vt320: uncommented <fsl> --esr)
+vt320|vt300|dec vt320 7 bit terminal,
+       am, eslok, hs, mir, msgr, xenl,
+       cols#80, lines#24, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$},
+       home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
+       il1=\E[L, ind=\ED,
+       is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+       kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+       kf9=\E[20~, khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I,
+       kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, mc0=\E[i, mc4=\E[?4i,
+       mc5=\E[?5i, nel=\EE, rc=\E8, rev=\E[7m,
+       rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
+       rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
+       rmul=\E[m,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+       sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+       sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       tsl=\E[1$}\E[H\E[K, use=vt220+keypad,
+vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
+       am@,
+       is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+       use=vt320,
+# We have to init 132-col mode, not 80-col mode.
+vt320-w|vt300-w|dec vt320 wide 7 bit terminal,
+       cols#132, wsl#132,
+       is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+       rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+       use=vt320,
+vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
+       am@,
+       is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+       rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+       use=vt320-w,
+
+# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals
+#   which are pretty much a superset of the VT320.  They have the
+#   host writable status line, yet another different DRCS matrix size,
+#   and such, but they add the DEC Technical character set, Multiple text
+#   pages, selectable length pages, and the like.  The difference between
+#   the vt330 and vt340 is that the latter has only 2 planes and a monochrome
+#   monitor, the former has 4 planes and a color monitor.  These terminals
+#   support VT131 and ANSI block mode, but as with much of these things,
+#   termcap/terminfo doesn't deal with these features.
+#
+# Note that this entry is are set up in what was the standard way for GNU
+# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
+# keys were switched into application mode at the same time the numeric pad
+# is switched into application mode.  This changes the definitions of the
+# arrow keys.  Emacs v19 is smarter and mines its keys directly out of
+# your termcap or terminfo entry,
+#
+# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
+# (vt340: string capability "sb=\E[M" corrected to "sr";
+# also, added <rmam>/<smam> based on the init string -- esr)
+vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
+       am, eslok, hs, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
+       cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dl=\E[%p1%dM, dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$},
+       ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
+       home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
+       il1=\E[L, ind=\ED,
+       is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
+       kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
+       lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
+       rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
+       rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+       rmul=\E[24m, rs1=\E[?3l, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+       sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       tsl=\E[2$~\E[1$}\E[1;%dH,
+
+# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
+# (originally written with vt420 as its primary name, and usable for it).
+#
+# VT400/420 -- This terminal is a superset of the vt320.  It adds the multiple
+#    text pages and long text pages with selectable length of the vt340, along
+#    with left and right margins, rectangular area text copy, fill, and erase
+#    operations, selected region character attribute change operations,
+#    page memory and rectangle checksums, insert/delete column, reception
+#    macros, and other features too numerous to remember right now.  TERMCAP
+#    can only take advantage of a few of these added features.
+#
+# Note that this entry is are set up in what was the standard way for GNU
+# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
+# keys were switched into application mode at the same time the numeric pad
+# is switched into application mode.  This changes the definitions of the
+# arrow keys.  Emacs v19 is smarter and mines its keys directly out of
+# your termcap entry,
+#
+# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
+# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:";
+# also, added <rmam>/<smam> based on the init string -- esr)
+vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
+       am, eslok, hs, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[J$<10/>, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
+       el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
+       home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+       il=\E[%p1%dL, il1=\E[L, ind=\ED,
+       is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
+       kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
+       lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
+       rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
+       rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+       rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+       sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       tsl=\E[2$~\E[1$}\E[1;%dH,
+
+# (vt420: I removed <kf0>, it collided with <kf10>.  I also restored
+# a missing <sc> -- esr)
+vt420|DEC VT420,
+       am, mir, xenl, xon,
+       cols#80, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+       clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
+       dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
+       if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
+       is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
+       kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
+       kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       kslt=\E[4~, rc=\E8, rev=\E[7m$<2>,
+       rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B$<4>,
+       rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
+       rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+       rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+       sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+       smkx=\E=, smso=\E[7m, smul=\E[4m,
+
+# DEC VT220 and up support DECUDK (user-defined keys).  DECUDK (i.e., pfx)
+# takes two parameters, the key and the string.  Translating the key is
+# straightforward (keys 1-5 are not defined on real terminals, though some
+# emulators define these):
+#
+#               if (key < 16) then  value = key;
+#               else if (key < 21) then value = key + 1;
+#               else if (key < 25) then value = key + 2;
+#               else if (key < 27) then value = key + 3;
+#               else if (key < 30) then value = key + 4;
+#               else value = key + 5;
+#
+# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT".
+# There's no provision in terminfo for emitting a string in this format, so the
+# application has to know it.
+#
+vt420pc|DEC VT420 w/PC keyboard,
+       kdch1=\177, kend=\E[4~, kf1=\E[11~, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf13=\E[11;2~, kf14=\E[12;2~,
+       kf15=\E[13;2~, kf16=\E[14;2~, kf17=\E[15;2~,
+       kf18=\E[17;2~, kf19=\E[18;2~, kf2=\E[12~, kf20=\E[19;2~,
+       kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
+       kf24=\E[24;2~, kf25=\E[23~, kf26=\E[24~, kf27=\E[25~,
+       kf28=\E[26~, kf29=\E[28~, kf3=\E[13~, kf30=\E[29~,
+       kf31=\E[31~, kf32=\E[32~, kf33=\E[33~, kf34=\E[34~,
+       kf35=\E[35~, kf36=\E[36~, kf37=\E[23;2~, kf38=\E[24;2~,
+       kf39=\E[25;2~, kf4=\E[14~, kf40=\E[26;2~, kf41=\E[28;2~,
+       kf42=\E[29;2~, kf43=\E[31;2~, kf44=\E[32;2~,
+       kf45=\E[33;2~, kf46=\E[34;2~, kf47=\E[35;2~,
+       kf48=\E[36;2~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, khome=\E[H,
+       pctrm=USR_TERM\:vt420pcdos\:,
+       pfx=\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\\,
+       use=vt420,
+
+vt420pcdos|DEC VT420 w/PC for DOS Merge,
+       lines#25,
+       dispc=%?%p1%{19}%=%t\E\023\021%e%p1%{32}%<%t\E%p1%c%e%p1%{127}%=%t\E\177%e%p1%c%;,
+       pctrm@,
+       rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr@,
+       sgr0=\E[m, smsc=\E[?1;2r\E[34h, use=vt420pc,
+
+vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys,
+       kdch1=\177, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[H, lf1=\EOP, lf2=\EOQ, lf3=\EOR, lf4=\EOS,
+       use=vt420,
+
+vt510|DEC VT510,
+       use=vt420,
+vt510pc|DEC VT510 w/PC keyboard,
+       use=vt420pc,
+vt510pcdos|DEC VT510 w/PC for DOS Merge,
+       use=vt420pcdos,
+
+# VT520/VT525
+#
+# The VT520 is a monochrome text terminal capable of managing up to
+# four independent sessions in the terminal.  It has multiple ANSI
+# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console)
+# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950,
+# 925 910+, ADDS A2).  This terminfo data is for the ANSI emulations only.
+#
+# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or
+# [Alt]/[Print Screen] depending upon which keyboard and which
+# terminal mode is being used.  If Set-Up has been disabled or
+# assigned to an unknown key, Set-Up may be entered by pressing
+# [F3] as the first key after power up, regardless of keyboard type.
+# (vt520: I added <rmam>/<smam> based on the init string, also <sc> -- esr)
+vt520|DEC VT520,
+       am, mir, xenl, xon,
+       cols#80, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+       clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
+       dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
+       if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
+       is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
+       kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
+       kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       kslt=\E[4~,
+       pfx=\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\\,
+       rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
+       ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
+       rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+       rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+       sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+       smso=\E[7m, smul=\E[4m,
+
+# (vt525: I added <rmam>/<smam> based on the init string;
+# removed <rmso>=\E[m, <rmul>=\E[m, added <sc> -- esr)
+vt525|DEC VT525,
+       am, mir, xenl, xon,
+       cols#80, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+       clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
+       dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
+       if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
+       is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
+       kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
+       kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       kslt=\E[4~,
+       pfx=\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\\,
+       rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
+       ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
+       rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+       rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+       sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+       smso=\E[7m, smul=\E[4m,
+
+#### VT100 emulations
+#
+
+# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows
+# (the best Windows telnet as of September 1995) presents the name `dec-vt100'
+# to telnetd.   Michael Deutschmann <ldeutsch@mail.netshop.net> informs us
+# that this works best with a stock vt100 entry.
+dec-vt100|EWAN telnet's vt100 emulation,
+       use=vt100,
+
+# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996
+dec-vt220|DOS tnvt200 terminal emulator,
+       am@, use=vt220,
+
+# Zstem340 is an (IMHO) excellent VT emulator for PC's.  I recommend it to
+# anyone who needs PC VT340 emulation. (or anything below that level, for
+# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's
+# RDBM systems, it includes ReGIS and SiXel support!  I'm impressed...
+# I can send the address if requested.
+# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr)
+# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
+z340|zstem vt340 terminal emulator 132col 42line,
+       lines#42,
+       is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
+       rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
+       use=vt320-w,
+z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins),
+       am@,
+       is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
+       rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
+       use=z340,
+
+# CRT is shareware.  It implements some xterm features, including mouse.
+crt|crt-vt220|CRT 2.3 emulating VT220,
+       bce, msgr,
+       ncv@,
+       hts=\EH, use=vt100+enq, use=vt220, use=ecma+color,
+
+# PuTTY 0.55 (released 3 August 2004)
+# http://www.chiark.greenend.org.uk/~sgtatham/putty/
+#
+# Comparing with 0.51, vttest is much better (only a few problems with the
+# cursor position reports and wrapping).
+#
+# PuTTY 0.51 (released 14 December 2000)
+#
+# This emulates vt100 + vt52 (plus a few vt220 features:  ech, SRM, DECTCEM, as
+# well as SCO and Atari, color palettes from Linux console).  Reading the code,
+# it is intended to be VT102 plus selected features.  By default, it sets $TERM
+# to xterm, which is incorrect, since several features are misimplemented:
+#
+#      Alt+key always sends ESC+key, so 'km' capability is removed.
+#
+#      Control responses, wrapping and tabs are buggy, failing a couple of
+#      screens in vttest.
+#
+#      xterm mouse support is not implemented (unrelease version may).
+#
+# Several features such as backspace/delete are optional; this entry documents
+# the default behavior -TD
+
+putty|PuTTY terminal emulator,
+       am, bce, bw, ccc, hs, mir, msgr, xenl, xon,
+       colors#8, it#8, ncv#22, pairs#64,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+       dch=\E[%p1%dP, dch1=\E[P,
+       dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;,
+       dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ech=\E[%p1%dX,
+       ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+       flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, hpa=\E[%i%p1%dG,
+       ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       indn=\E[%p1%dS,
+       initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
+       is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
+       kb2=\E[G, kbs=\177, kcan=^C, kcbt=\E[Z, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
+       kend=\E[4~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+       kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m,
+       ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l,
+       rmcup=\E[2J\E[?47l, rmir=\E[4l, rmpch=\E[10m,
+       rmso=\E[27m, rmul=\E[24m,
+       rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l,
+       s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, sc=\E7,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
+       smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
+       tbc=\E[3g, tsl=\E]0;, vpa=\E[%i%p1%dd, use=vt102+enq,
+vt100-putty|Reset PuTTY to pure vt100,
+       rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
+       use=vt100,
+# palette is hardcoded...
+putty-256color|PuTTY 0.58 with xterm 256-colors,
+       initc@, use=xterm+256color, use=putty,
+
+# One of the keyboard selections is "VT100+".
+# pterm (the X11 port) uses shifted F1-F10 as F11-F20
+putty-vt100|VT100+ keyboard layout,
+       kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EO[, kf2=\EOQ,
+       kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
+       kf9=\EOX, use=putty,
+
+# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
+# T. Teranishi dated Mar 10, 1998.  It is a free software terminal emulator
+# (communication program) which supports:
+#
+#      - Serial port connections.
+#      - TCP/IP (telnet) connections.
+#      - VT100 emulation, and selected VT200/300 emulation.
+#      - TEK4010 emulation.
+#      - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and
+#        Quick-VAN).
+#      - Scripts using the "Tera Term Language".
+#      - Japanese and Russian character sets.
+#
+# The program does not come with terminfo or termcap entries.  However, the
+# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no
+# vt52 or doublesize character support; blinking is done with color).  Besides
+# the HPA, VPA extensions it also implements CPL and CNL.
+#
+# All of the function keys can be remapped.  This description shows the default
+# mapping, as installed.  Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys
+# are supported.  F13-F20 are obtained by shifting F3-F10.  The editing keypad
+# is laid out like vt220, rather than the face codes on the PC keyboard, i.e,
+#      kfnd    Insert
+#      kslt    Delete
+#      kich1   Home
+#      kdch1   PageUp
+#      kpp     End
+#      knp     PageDown
+#
+# ANSI colors are implemented, but cannot be combined with video attributes
+# except for reverse.
+#
+# No fonts are supplied with the program, so the acsc string is chosen to
+# correspond with the default Microsoft terminal font.
+#
+# Tera Term recognizes some xterm sequences, including those for setting and
+# retrieving the window title, and for setting the window size (i.e., using
+# "resize -s"), though it does not pass SIGWINCH to the application if the
+# user resizes the window with the mouse.
+teraterm|Tera Term Pro,
+       km, xon@,
+       ncv#43, vt@,
+       acsc=+\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,
+       blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
+       cnorm=\E[?25h, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+       flash=\E[?5h\E[?5l$<200/>, hpa=\E[%i%p1%dG,
+       il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+       kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+       kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
+       kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
+       kpp=\E[5~, kslt=\E[4~, op=\E[100m, rev=\E[7m, ri=\EM,
+       rmso=\E[27m, rmul=\E[24m, sgr0=\E[0m\017, smso=\E[7m,
+       smul=\E[4m, vpa=\E[%i%p1%dd, use=vt100+enq,
+       use=klone+color, use=vt100,
+
+# Tested with WinNT 4.0, the telnet application assumes the screensize is
+# 25x80.  This entry uses the 'Terminal' font, to get line-drawing characters.
+#
+# Other notes:
+# a) Fails tack's cup (cursor-addressing) test, though cup works well enough
+#    for casual (occasional) use.  Also fails several of the vttest screens,
+#    but that is not unusual for vt100 "emulators".
+# b) Does not implement vt100 keypad
+# c) Recognizes a subset of vt52 controls.
+ms-vt100|MS telnet imitating dec vt100,
+       lines#25,
+       acsc=+\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,
+       ka1@, ka3@, kb2@, kc1@, kc3@, kent@, kf0@, kf1@, kf10@, kf2@, kf3@, kf4@,
+       kf5@, kf6@, kf7@, kf8@, kf9@, tbc@, use=vt102+enq, use=vt100,
+
+# Tested with Windows 2000, the telnet application runs in a console window,
+# also using 'Terminal' font.
+#
+# Other notes:
+# a) This version has no function keys or numeric keypad.  Unlike the older
+#    version, the numeric keypad is entirely ignored.
+# b) The program sets $TERM to "ansi", which of course is inaccurate.
+ms-vt100-color|vtnt|windows 2000 ansi (sic),
+       bce,
+       dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color,
+       use=ms-vt100,
+
+# Based on comments from Federico Bianchi:
+#
+#      vt100+ is basically a VT102-noSGR with ANSI.SYS colors and a different
+#      scheme for PF keys.
+#
+# and PuTTY wishlist:
+#
+#      The modifiers are represented as the codes listed above, prefixed to
+#      the normal sequences.  If the modifier is pressed alone, its sequence
+#      is transmitted twice in succession.  If multiple modifiers apply,
+#      they're transmitted in the order shift, control, alt.
+#
+#      Shift   \E^S
+#      Alt     \E^A,
+#      Ctrl    \E^C,
+ms-vt100+|vt100+|windows XP vt100+ (sic),
+       kdch1=\E-, kend=\Ek, kf1=\E1, kf10=\E0, kf11=\E!, kf12=\E@,
+       kf13=\E\023\E1, kf14=\E\023\E2, kf15=\E\023\E3,
+       kf16=\E\023\E4, kf17=\E\023\E5, kf18=\E\023\E6,
+       kf19=\E\023\E7, kf2=\E2, kf20=\E\023\E8, kf21=\E\023\E9,
+       kf22=\E\023\E0, kf23=\E\023\E!, kf24=\E\023\E@,
+       kf25=\E\003\E1, kf26=\E\003\E2, kf27=\E\003\E3,
+       kf28=\E\003\E4, kf29=\E\003\E5, kf3=\E3, kf30=\E\003\E6,
+       kf31=\E\003\E7, kf32=\E\003\E8, kf33=\E\003\E9,
+       kf34=\E\003\E0, kf35=\E\003\E!, kf36=\E\003\E@,
+       kf37=\E\001\E1, kf38=\E\001\E2, kf39=\E\001\E3, kf4=\E4,
+       kf40=\E\001\E4, kf41=\E\001\E5, kf42=\E\001\E6,
+       kf43=\E\001\E7, kf44=\E\001\E8, kf45=\E\001\E9,
+       kf46=\E\001\E0, kf47=\E\001\E!, kf48=\E\001\E@, kf5=\E5,
+       kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, khome=\Eh, kich1=\E+,
+       knp=\E/, kpp=\E?, use=ms-vt100-color,
+
+ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+,
+       use=ms-vt100+,
+
+# a minimal subset of a vt100 (compare with "news-unk).
+tt|tkterm|Don Libes' tk text widget terminal emulator,
+       clear=\E[H\E[J, cr=^M, cuf1=\E[C, cup=\E[%p1%d;%p2%dH,
+       cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+       kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, rmso=\E[m,
+       smso=\E[7m,
+
+#### X terminal emulators
+#
+# You can add the following line to your .Xdefaults to change the terminal type
+# set by the xterms you start up to my-xterm:
+#
+# *termName:  my-xterm
+#
+# System administrators can change the default entry for xterm instances
+# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm.  In either
+# case, xterm will detect and reject an invalid terminal type, falling back
+# to the default of xterm.
+#
+
+# X10/6.6      11/7/86, minus alternate screen, plus (csr)
+# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
+# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
+# as these seem not to work -- esr)
+x10term|vs100-x10|xterm terminal emulator (X10 window system),
+       OTbs, am, km, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#65,
+       bold=\E[1m, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
+       il1=\E[L, ind=^J, is2=\E\E[m\E[?7h\E[?1;4l, kbs=^H,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
+       kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM, rmam=\E[?7l,
+       rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
+       smso=\E[7m, smul=\E[4m,
+# Compatible with the R5 xterm
+# (from the XFree86 3.2 distribution, <blink=@> removed)
+# added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD
+# corrected typos in rs2 string - TD
+# added u6-u9 -TD
+xterm-r5|xterm R5 version,
+       OTbs, am, km, msgr, xenl,
+       cols#80, it#8, lines#24,
+       bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
+       kdl1=\E[31~, kel=\E[8~, kend=\E[4~, kf0=\EOq, kf1=\E[11~,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
+       kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
+       kil1=\E[30~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8,
+       rev=\E[7m, ri=\EM, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
+       rmul=\E[m,
+       rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H,
+       sc=\E7,
+       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
+       sgr0=\E[m, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g, use=vt100+enq,
+# Compatible with the R6 xterm
+# (from XFree86 3.2 distribution, <acsc> and <it> added, <blink@> removed)
+# added khome/kend, hts based on the R6 xterm code - TD
+# (khome/kend do not actually work in X11R5 or X11R6, but many people use this
+# for compatibility with other emulators).
+xterm-r6|xterm-old|xterm X11R6 version,
+       OTbs, am, km, mir, msgr, xenl,
+       cols#80, it#8, lines#24,
+       acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
+       il1=\E[L, ind=^J,
+       is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, kbs=^H,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+       kslt=\E[4~, meml=\El, memu=\Em, rc=\E8, rev=\E[7m, ri=\EM,
+       rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
+       rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, sc=\E7,
+       sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       use=vt100+enq,
+# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
+# The name has been changed and some aliases have been removed.
+xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
+       OTbs, am, bce, km, mir, msgr, xenl,
+       cols#80, it#8, lines#24, ncv@,
+       acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+       flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+       ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+       il1=\E[L, ind=^J,
+       is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
+       kbeg=\EOE, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+       kcuu1=\EOA, kdch1=\177, kend=\EOF, kf1=\E[11~, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+       kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+       kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
+       kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+       kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
+       kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, meml=\El,
+       memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
+       rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
+       rmso=\E[27m, rmul=\E[24m, rs1=^O,
+       rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
+       setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
+       smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+       tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
+       use=ecma+color, use=vt220+keypad,
+
+# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
+# codes for F1-F4 except while in VT220 mode.
+xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System),
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=xterm-xf86-v32,
+
+# This version was released in XFree86 3.3.3 (November 1998).
+# Besides providing printer support, it exploits a new feature that allows
+# xterm to use terminfo-based descriptions with the titeInhibit resource.
+# -- the distribution contained incorrect khome/kend values -TD
+xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System),
+       mc5i,
+       blink=\E[5m, ich1@, invis=\E[8m,
+       is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
+       mc0=\E[i, mc4=\E[4i, mc5=\E[5i, rmcup=\E[?1047l\E[?1048l,
+       rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
+       sgr=\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%;,
+       smcup=\E[?1048h\E[?1047h, use=xterm-xf86-v33,
+
+# This version was released in XFree86 4.0.
+xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
+       npc,
+       kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~,
+       kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, ka1@,
+       ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kdch1=\E[3~, kend=\EOF,
+       kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
+       kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
+       kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
+       kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
+       kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf30=\E[17;5~,
+       kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
+       kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf37=\EO6P,
+       kf38=\EO6Q, kf39=\EO6R, kf40=\EO6S, kf41=\E[15;6~,
+       kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
+       kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
+       kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       smcup=\E[?1049h, use=xterm-xf86-v333,
+
+# This version was released in XFree86 4.3.
+xterm-xf86-v43|xterm terminal emulator (XFree86 4.3 Window System),
+       kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
+       kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C,
+       kbeg@,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       use=xterm-xf86-v40,
+
+# This version was released in XFree86 4.4.
+xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System),
+       cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS,
+       rin=\E[%p1%dT, use=xterm-xf86-v43,
+
+xterm-xfree86|xterm terminal emulator (XFree86),
+       use=xterm-xf86-v44,
+
+# This version reflects the current xterm features.
+xterm-new|modern xterm terminal emulator,
+       npc,
+       indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H,
+       kIC=\E[2;2~, kNXT=\E[6;2~, kPRV=\E[5;2~, kb2=\EOE,
+       kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kend=\EOF, kent=\EOM, khome=\EOH, kich1=\E[2~, kmous=\E[M,
+       knp=\E[6~, kpp=\E[5~, rin=\E[%p1%dT, use=xterm+pcfkeys,
+       use=xterm-basic,
+#
+# This fragment describes as much of XFree86 xterm's "pc-style" function
+# keys as will fit into terminfo's 60 function keys.
+# From ctlseqs.ms:
+#    Code     Modifiers
+#  ---------------------------------
+#     2       Shift
+#     3       Alt
+#     4       Shift + Alt
+#     5       Control
+#     6       Shift + Control
+#     7       Alt + Control
+#     8       Shift + Alt + Control
+#  ---------------------------------
+# The meta key may also be used as a modifier in this scheme, adding another
+# bit to the parameter.
+xterm+pcfkeys|fragment for PC-style fkeys,
+       use=xterm+app, use=xterm+pcf2, use=xterm+pcc2,
+       use=xterm+pce2,
+#
+xterm+noapp|fragment with cursor keys in normal mode,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F,
+       khome=\E[H,
+
+xterm+app|fragment with cursor keys in application mode,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\EOF,
+       khome=\EOH,
+#
+# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
+# and revised in patch #167 (2002/8/24).  Some other terminal emulators copied
+# the earlier scheme, as noted in the "use=" clauses in this file.
+#
+# The original assignments from patch #94 for cursor-keys had some technical
+# issues:
+#
+#      A parameter for a function-key to represent a modifier is just more
+#      bits.  But for a cursor-key it may change the behavior of the
+#      application.  For instance, emacs decodes the first parameter of a
+#      cursor-key as a repeat count.
+#
+#      A parameterized string should (really) not begin with SS3 (\EO).
+#      Rather, CSI (\E[) should be used.
+#
+# For these reasons, the original assignments were deprecated.  For
+# compatibility reasons, they are still available as a setting of xterm's
+# modifyCursorKeys resource.  These fragments list the modified cursor-keys
+# that might apply to xterm+pcfkeys with different values of that resource.
+xterm+pcc3|fragment with modifyCursorKeys:3,
+       kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B,
+       kri=\E[>1;2A, kDN=\E[>1;2B, kDN3=\E[>1;3B, kDN4=\E[>1;4B,
+       kDN5=\E[>1;5B, kDN6=\E[>1;6B, kDN7=\E[>1;7B,
+       kLFT3=\E[>1;3D, kLFT4=\E[>1;4D, kLFT5=\E[>1;5D,
+       kLFT6=\E[>1;6D, kLFT7=\E[>1;7D, kRIT3=\E[>1;3C,
+       kRIT4=\E[>1;4C, kRIT5=\E[>1;5C, kRIT6=\E[>1;6C,
+       kRIT7=\E[>1;7C, kUP=\E[>1;2A, kUP3=\E[>1;3A,
+       kUP4=\E[>1;4A, kUP5=\E[>1;5A, kUP6=\E[>1;6A,
+       kUP7=\E[>1;7A,
+
+xterm+pcc2|fragment with modifyCursorKeys:2,
+       kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
+       kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B,
+       kDN6=\E[1;6B, kDN7=\E[1;7B, kLFT3=\E[1;3D, kLFT4=\E[1;4D,
+       kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D,
+       kRIT3=\E[1;3C, kRIT4=\E[1;4C, kRIT5=\E[1;5C,
+       kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A,
+       kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A,
+
+xterm+pcc1|fragment with modifyCursorKeys:1,
+       kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B,
+       kDN3=\E[3B, kDN4=\E[4B, kDN5=\E[5B, kDN6=\E[6B, kDN7=\E[7B,
+       kLFT3=\E[3D, kLFT4=\E[4D, kLFT5=\E[5D, kLFT6=\E[6D,
+       kLFT7=\E[7D, kRIT3=\E[3C, kRIT4=\E[4C, kRIT5=\E[5C,
+       kRIT6=\E[6C, kRIT7=\E[7C, kUP=\E[2A, kUP3=\E[3A,
+       kUP4=\E[4A, kUP5=\E[5A, kUP6=\E[6A, kUP7=\E[7A,
+
+xterm+pcc0|fragment with modifyCursorKeys:0,
+       kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B,
+       kDN3=\EO3B, kDN4=\EO4B, kDN5=\EO5B, kDN6=\EO6B, kDN7=\EO7B,
+       kLFT3=\EO3D, kLFT4=\EO4D, kLFT5=\EO5D, kLFT6=\EO6D,
+       kLFT7=\EO7D, kRIT3=\EO3C, kRIT4=\EO4C, kRIT5=\EO5C,
+       kRIT6=\EO6C, kRIT7=\EO7C, kUP=\EO2A, kUP3=\EO3A,
+       kUP4=\EO4A, kUP5=\EO5A, kUP6=\EO6A, kUP7=\EO7A,
+
+#
+# Here are corresponding fragments from xterm patch #216:
+#
+xterm+pcf0|fragment with modifyFunctionKeys:0,
+       kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+       kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
+       kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
+       kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
+       kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
+       kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf3=\EOR,
+       kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
+       kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
+       kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R,
+       kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
+       kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
+       kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\EO3P,
+       kf5=\E[15~, kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S,
+       kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
+       kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
+       kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
+       kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+#
+xterm+pcf2|fragment with modifyFunctionKeys:2,
+       kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+       kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S,
+       kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
+       kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
+       kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q,
+       kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR,
+       kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
+       kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
+       kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R,
+       kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
+       kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
+       kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
+       kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
+       kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
+       kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
+       kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
+       kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~,
+#
+# Chunks from xterm #230:
+xterm+pce2|fragment with modifyCursorKeys:2,
+       kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
+       kNXT=\E[6;2~, kPRV=\E[5;2~, kich1=\E[2~, knp=\E[6~,
+       kpp=\E[5~, kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~,
+       kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F, kEND4=\E[1;4F,
+       kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
+       kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
+       kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
+       kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~,
+       kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~,
+       kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~,
+       kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~,
+       use=xterm+edit,
+
+xterm+edit|fragment for 6-key editing-keypad,
+       kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       use=xterm+pc+edit,
+
+xterm+pc+edit|fragment for pc-style editing keypad,
+       kend=\E[4~, khome=\E[1~,
+
+xterm+vt+edit|fragment for vt220-style editing keypad,
+       kfnd=\E[1~, kslt=\E[4~,
+
+#
+# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
+# Alternatively, the same scheme with old-style function keys as in xterm-r6
+# is shown here (because that is used in mrxvt and mlterm):
+xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2,
+       kf1=\E[11~, kf13=\E[11;2~, kf14=\E[12;2~, kf15=\E[13;2~,
+       kf16=\E[14;2~, kf2=\E[12~, kf25=\E[11;5~, kf26=\E[12;5~,
+       kf27=\E[13;5~, kf28=\E[14;5~, kf3=\E[13~, kf37=\E[11;6~,
+       kf38=\E[12;6~, kf39=\E[13;6~, kf4=\E[14~, kf40=\E[14;6~,
+       kf49=\E[11;3~, kf50=\E[12;3~, kf51=\E[13;3~,
+       kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~,
+       kf63=\E[13;4~, use=xterm+pcf2,
+#
+# This chunk is used for building the VT220/Sun/PC keyboard variants.
+xterm-basic|modern xterm terminal emulator - common,
+       OTbs, am, bce, km, mc5i, mir, msgr, xenl, AX,
+       colors#8, cols#80, it#8, lines#24, pairs#64,
+       acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+       flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+       ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
+       ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
+       kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
+       memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+       rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
+       rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
+       rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+       sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
+       smir=\E[4h, smkx=\E[?1h\E=, smm=\E[?1034h, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
+
+# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
+# In retrospect, something like xterm-r6 was intended here -TD
+xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
+       rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
+
+# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
+xterm-16color|xterm with 16 colors like aixterm,
+       use=ibm+16color, use=xterm-new,
+
+# This is a compile-time feature of XFree86 xterm beginning with
+# patch #111 (1999/7/10) -TD
+xterm+256color|xterm 256-color feature,
+       ccc,
+       colors#256, pairs#32767,
+       initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
+       setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
+       setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
+       setb@, setf@,
+
+# This is a compile-time feature of XFree86 xterm beginning with
+# patch #115 (1999/9/18) -TD
+#
+# Note that the escape sequences used are the same as for 256-colors - xterm
+# has a different table of default color resource values.  If built for
+# 256-colors, it can still handle an 88-color palette by using the initc
+# capability.
+#
+# At this time (2007/7/14), except for rxvt 2.7.x, none of the other terminals
+# which support the xterm+256color feature support the associated initc
+# capability.  So it is cancelled in the entries which use this and/or the
+# xterm+256color block.
+#
+# The default color palette for the 256- and 88-colors are different.  A
+# given executable will have one palette (perhaps compiled-in).  If the program
+# supports xterm's control sequence, it can be programmed using initc.
+xterm+88color|xterm 88-color feature,
+       colors#88, pairs#7744, use=xterm+256color,
+
+# These variants of XFree86 3.9.16 xterm are built as a configure option.
+xterm-256color|xterm with 256 colors,
+       use=xterm+256color, use=xterm-new,
+xterm-88color|xterm with 88 colors,
+       use=xterm+88color, use=xterm-256color,
+
+# These two are used to demonstrate the any-event mouse support, i.e., by
+# using an extended name "XM" which tells ncurses to put the terminal into
+# a special mode when initializing the xterm mouse.
+xterm-1002|testing xterm-mouse,
+       XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-new,
+xterm-1003|testing xterm-mouse,
+       XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-new,
+
+# This is another variant, for XFree86 4.0 xterm (T.Dickey)
+# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
+# To use it, your decTerminalID resource must be set to 200 or above.
+#
+#      HTS     \E H    \210
+#      RI      \E M    \215
+#      SS3     \E O    \217
+#      CSI     \E [    \233
+#
+xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
+       OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl, AX,
+       colors#8, cols#80, it#8, lines#24, pairs#64,
+       acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z,
+       civis=\233?25l, clear=\233H\2332J,
+       cnorm=\233?25l\233?25h, cr=^M, csr=\233%i%p1%d;%p2%dr,
+       cub=\233%p1%dD, cub1=^H, cud=\233%p1%dB, cud1=^J,
+       cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
+       cuu=\233%p1%dA, cuu1=\233A, cvvis=\233?12;25h,
+       dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
+       ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
+       flash=\233?5h$<100/>\233?5l, home=\233H,
+       hpa=\233%i%p1%dG, ht=^I, hts=\210, ich=\233%p1%d@,
+       il=\233%p1%dL, il1=\233L, ind=^J, invis=\2338m,
+       is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
+       ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kbs=^H,
+       kc1=\217q, kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
+       kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
+       kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~,
+       kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
+       kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
+       kf2=\23312~, kf20=\23334~, kf3=\23313~, kf4=\23314~,
+       kf5=\23315~, kf6=\23317~, kf7=\23318~, kf8=\23319~,
+       kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M,
+       knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i,
+       meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m,
+       ri=\215, rmacs=\E(B, rmam=\233?7l, rmcup=\233?1049l,
+       rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
+       rs1=\Ec,
+       rs2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
+       sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm,
+       setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
+       sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
+       smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=,
+       smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR,
+       u7=\E[6n, u8=\233[?1;2c, u9=\E[c, vpa=\233%i%p1%dd,
+
+xterm-hp|xterm with hpterm function keys,
+       kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+       kdch1=\EP, kend=\EF, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es,
+       kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, kich1=\EQ,
+       knp=\ES, kpp=\ET, use=xterm-basic,
+
+xterm-sco|xterm with SCO function keys,
+       kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
+       kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b,
+       kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f,
+       kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k,
+       kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O,
+       kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t,
+       kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y,
+       kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\,
+       kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{,
+       kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
+       kich1=\E[L, kmous=\E[>M, knp=\E[G, kpp=\E[I,
+       use=xterm-basic,
+
+# The xterm-new description has all of the features, but is not completely
+# compatible with vt220.  If you are using a Sun or PC keyboard, set the
+# sunKeyboard resource to true:
+#      + maps the editing keypad
+#      + interprets control-function-key as a second array of keys, so a
+#        12-fkey keyboard can support vt220's 20-fkeys.
+#      + maps numeric keypad "+" to ",".
+#      + uses DEC-style control sequences for the application keypad.
+#
+xterm-vt220|xterm emulating vt220,
+       kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kend=\E[4~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+       kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+       kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+       use=xterm+app, use=xterm+edit, use=xterm-basic,
+       use=vt220+keypad,
+
+xterm-vt52|xterm emulating dec vt52,
+       cols#80, it#8, lines#24,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
+       home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
+
+xterm-noapp|xterm with cursor keys in normal mode,
+       rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
+       use=xterm,
+
+xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
+       lines#24, use=xterm-old,
+
+# This is xterm for ncurses.
+xterm|xterm terminal emulator (X Window System),
+       use=xterm-new,
+
+# These entries allow access to the X titlebar and icon name as a status line.
+# Note that twm (and possibly window managers descended from it such as tvtwm,
+# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
+# with it.
+xterm+sl|access X title line and icon name,
+       hs,
+       wsl#40,
+       dsl=\E]0;\007, fsl=^G, tsl=\E]0;, use=xterm,
+xterm+sl-twm|access X title line (pacify twm-descended window managers),
+       hs,
+       wsl#40,
+       dsl=\E]2;\007, fsl=^G, tsl=\E]2;, use=xterm,
+
+#
+# The following xterm variants don't depend on your base version
+#
+# xterm with bold instead of underline
+xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
+       smso=\E[7m, smul=\E[1m, use=xterm-old,
+# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
+# (kterm should not invoke DEC Graphics as the alternate character set
+#  -- Kenji Rikitake)
+# (proper setting of enacs, smacs, rmacs makes kterm to use DEC Graphics
+#  -- MATSUMOTO Shoji)
+# kterm implements acsc via built-in table of X Drawable's
+kterm|kterm kanji terminal emulator (X window system),
+       eslok, hs,
+       ncv@,
+       acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~,
+       csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F,
+       kmous=\E[M, rc=\E8, rmacs=\E(B, rmam=\E[?7l, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
+       sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h,
+       tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color,
+kterm-color|kterm-co|kterm with ANSI colors,
+       ncv@, use=kterm, use=ecma+color,
+# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
+xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
+       ich@, ich1@, use=xterm,
+# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
+xterm1|xterm terminal emulator ignoring the alternate screen buffer,
+       rmcup@, smcup@, use=xterm,
+
+# This describes the capabilities of color_xterm, an xterm variant from
+# before ECMA-64 color support was folded into the main-line xterm release.
+# This entry is straight from color_xterm's maintainer.
+# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996
+# The README's with the distribution also say that it supports SGR 21, 24, 25
+# and 27, but they are not present in the terminfo or termcap.
+color_xterm|cx|cx100|color_xterm color terminal emulator for X,
+       OTbs, am, km, mir, msgr, xenl,
+       cols#80, it#8, lines#65, ncv@,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, el1=\E[1K, enacs=\E(B\E)0, home=\E[H, ht=^I,
+       ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l, kbs=^H, kcub1=\EOD,
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kf1=\E[11~,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
+       kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kich1=\E[2~,
+       kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, rev=\E[7m, ri=\EM,
+       rmacs=^O, rmam=\E[?7l, rmcup=\E>\E[?41;1r, rmir=\E[4l,
+       rmso=\E[27m, rmul=\E[24m,
+       rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
+       sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[0m\017, smacs=^N, smam=\E[?7h,
+       smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m,
+       smul=\E[4m, use=ecma+color, use=vt220+keypad,
+
+# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of
+# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support
+# SGR 39 or 49.  SGR 0 does reset colors (along with everything else).  This
+# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except
+# that each of those implements the home, end, delete keys differently.
+#
+# Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce
+# colors; note that this is not compatible with the 5.2 version.
+# csw (2002-05-15): make xterm-color primary instead of nxterm, to
+#   match XFree86's xterm.terminfo usage and prevent circular links
+xterm-color|nxterm|generic color xterm,
+       ncv@,
+       op=\E[m, use=xterm-r6, use=klone+color,
+
+# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
+gnome-rh62|Gnome terminal,
+       bce,
+       kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+       use=xterm-color,
+
+# GNOME Terminal 1.4.0.4 (Redhat 7.2)
+#
+# This implements a subset of vt102 with a random selection of features from
+# other terminals such as color and function-keys.
+#
+# shift-f1 to shift-f10 are f11 to f20
+#
+# NumLock changes the application keypad to approximate vt100 keypad, except
+# that there is no escape sequence matching comma (,).
+#
+# Other defects observed:
+#      vt100 LNM mode is not implemented.
+#      vt100 80/132 column mode is not implemented.
+#      vt100 DECALN is not implemented.
+#      vt100 DECSCNM mode is not implemented, so flash does not work.
+#      vt100 TBC (tab reset) is not implemented.
+#      xterm alternate screen controls do not restore cursor position properly
+#      it hangs in tack after running function-keys test.
+gnome-rh72|GNOME Terminal,
+       bce, km@,
+       civis=\E[?25l, cnorm=\E[?25h, kdch1=\E[3~, kf1=\EOP,
+       kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmam=\E[?7l,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=xterm-color,
+
+# GNOME Terminal 2.0.1 (Redhat 8.0)
+#
+# Documentation now claims it implements vt220 (which is demonstrably false).
+# However, it does implement ECH, which is a vt220 feature.  And there are
+# workable vt100 LNM, DECALN, DECSNM modes, making it possible to display
+# more of its bugs using vttest.
+#
+# However, note that bce and msgr are broken in this release.  Tabs (tbc and
+# hts) are broken as well.  Sometimes flash (as in xterm-new) works.
+#
+# kf1 and kf10 are not tested since they're assigned (hardcoded?) to menu
+# operations.  Shift-tab generates a distinct sequence so it can be argued
+# that it implements kcbt.
+gnome-rh80|GNOME Terminal,
+       bce@, msgr@,
+       ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, kbs=\177,
+       kcbt=\E^I, op=\E[39;49m, use=gnome-rh72,
+
+# GNOME Terminal 2.2.1 (Redhat 9.0)
+#
+# bce and msgr are repaired.
+gnome-rh90|GNOME Terminal,
+       bce, msgr,
+       hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C,
+       kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g,
+       vpa=\E[%i%p1%dd, use=xterm+pcf0, use=xterm+pcfkeys,
+       use=gnome-rh80,
+
+# GNOME Terminal 2.14.2 (Fedora Core 5)
+# Ed Catmur notes that gnome-terminal has recognized soft-reset since May 2002.
+gnome-fc5|GNOME Terminal,
+       rs1=\Ec,
+       rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
+       use=ansi+enq, use=xterm+pcc0, use=gnome-rh90,
+
+# GNOME Terminal 2.18.1 (2007 snapshot)
+#
+# For any "recent" version of gnome-terminal, it is futile to attempt to
+# support modifiers on cursor- and keypad keys because the program usually
+# is hardcoded to set $TERM to "xterm", and on startup, it builds a subset
+# of the keys (which more/less correspond to the termcap values), and will
+# interpret those according to the $TERM value, but others not in the
+# terminfo according to some constantly changing set of hacker guidelines -TD
+gnome-2007|GNOME Terminal snapshot 2.18.1,
+       use=xterm+pcc2, use=gnome-fc5,
+
+gnome|GNOME Terminal,
+       use=gnome-2007,
+
+# palette is hardcoded...
+gnome-256color|GNOME Terminal with xterm 256-colors,
+       initc@, use=xterm+256color, use=gnome,
+
+# XFCE Terminal 0.2.5.4beta2
+#
+# This is based on some of the same source code, e.g., the VTE library, as
+# gnome-terminal, but has fewer features, fails more screens in vttest.
+# Since most of the terminfo-related behavior is due to the VTE library,
+# the terminfo is the same as gnome-terminal.
+xfce|Xfce Terminal,
+       use=gnome,
+
+# Multi-Gnome-Terminal 1.6.2
+#
+# This does not use VTE, and does have different behavior (compare xfce and
+# gnome).
+mgt|Multi GNOME Terminal,
+       indn=\E[%p1%dS, rin=\E[%p1%dT, use=xterm-xf86-v333,
+
+# This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
+# or not is debatable).
+kvt|KDE terminal,
+       bce, km@,
+       kdch1=\177, kend=\E[F, khome=\E[H, use=xterm-color,
+
+# Konsole 1.0.1
+# (formerly known as kvt)
+#
+# This program hardcodes $TERM to 'xterm', which is not accurate.  However, to
+# simplify this entry (and point out why konsole isn't xterm), we base this on
+# xterm-r6.  The default keyboard appears to be 'linux'.
+#
+# Notes:
+# a) konsole implements several features from XFree86 xterm, though none of
+#    that is documented - except of course in its source code - apparently
+#    because its implementors are unaccustomed to reading documentation - as
+#    evidenced by the sparse and poorly edited documentation distributed with
+#    konsole.  Some features such as the 1049 private mode are recognized but
+#    incorrectly implemented as a duplicate of the 47 private mode.
+# b) even with the "vt100 (historical)" keyboard setting, the numeric keypad
+#    sends PC-style escapes rather than vt100.
+# c) fails vttest menu 3 (Test of character sets) because it does not properly
+#    parse some control sequences.  Also fails vttest Primary Device Attributes
+#    by sending a bogus code (in the source it says it's supposed to be a
+#    vt220, which is doubly incorrect because it does not implement vt220
+#    control sequences except for a few special cases).  Treat it as a
+#    mildly-broken vt102.
+#
+# Update for konsole 1.3.2:
+#    The 1049 private mode works (but see the other xterm screens in vttest).
+#    Primary Device Attributes now returns the code for a vt100 with advanced
+#    video option.  Perhaps that's intended to be a "mildly-broken vt102".
+#
+# Updated for konsole 1.6.4:
+#    add konsole-solaris
+konsole-base|KDE console window,
+       bce, km@, npc,
+       bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h,
+       ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l,
+       hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1@,
+       kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@,
+       kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
+       kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, rmam=\E[?7l,
+       rmso=\E[27m, rmul=\E[24m,
+       rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
+       use=ecma+color, use=xterm-r6,
+konsole-linux|KDE console window with linux keyboard,
+       kdch1=\E[3~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@,
+       kf2=\E[[B, kf20@, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       use=konsole-base,
+konsole-solaris|KDE console window with Solaris keyboard,
+       kbs=^H, kend=\E[4~, khome=\E[1~, use=konsole-vt100,
+# KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather
+# than testing the code.
+konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
+       kend=\E[4~, khome=\E[1~, use=konsole-vt100,
+# The value for kbs reflects local customization rather than the settings used
+# for XFree86 xterm.
+konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
+       kend=\EOF, kf1=\EOP, kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R,
+       kf16=\EO2S, kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
+       kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
+       kf23=\E[23;2~, kf24=\E[24;2~, kf3=\EOR, kf4=\EOS,
+       khome=\EOH, use=konsole-vt100,
+# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
+# it is still useful for deriving the other entries.
+konsole-vt100|KDE console window with vt100 (sic) keyboard,
+       kbs=\177, kdch1=\E[3~, kend=\E[F, kf1=\E[11~, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@,
+       kf18@, kf19@, kf2=\E[12~, kf20@, kf3=\E[13~, kf4=\E[14~,
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[H, use=konsole-base,
+konsole-vt420pc|KDE console window with vt420 pc keyboard,
+       kbs=^H, kdch1=\177, use=konsole-vt100,
+konsole-16color|klone of xterm-16color,
+       ncv#32, use=ibm+16color, use=konsole,
+# make a default entry for konsole
+konsole|KDE console window,
+       use=konsole-xf4x,
+
+# palette is hardcoded...
+konsole-256color|KDE console window with xterm 256-colors,
+       initc@, use=xterm+256color, use=konsole,
+
+# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
+#
+# It is nominally a vt102 emulator, with features borrowed from rxvt and
+# xterm.
+#
+# The function keys are numbered based on shift/control/alt modifiers, except
+# that the control-modifier itself is used to spawn a new copy of mlterm (the
+# "-P" option).  So control/F1 to control/F12 may not be usable, depending on
+# how it is configured.
+#
+#                              kf1 to kf12     \E[11~   to \E[24~
+#      shift                   kf1 to kf12     \E[11;2~ to \E[24;2~
+#      alt                     kf1 to kf12     \E[11;3~ to \E[24;3~
+#      shift/alt               kf1 to kf12     \E[11;4~ to \E[24;4~
+#      control                 kf1 to kf12     \E[11;5~ to \E[24;5~ (maybe)
+#      control/shift           kf1 to kf12     \E[11;6~ to \E[24;6~
+#      control/alt             kf1 to kf12     \E[11;7~ to \E[24;7~
+#      control/shift/alt       kf1 to kf12     \E[11;8~ to \E[24;8~
+#
+mlterm|multi lingual terminal emulator,
+       am, eslok, km, mc5i, mir, msgr, npc, xenl,
+       colors#8, cols#80, it#8, lines#24, pairs#64,
+       acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=,
+       home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
+       is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
+       kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+       kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~,
+       khome=\EOH, kich1=\E[2~, kind=\EO1;2B, kmous=\E[M,
+       knp=\E[6~, kpp=\E[5~, kri=\EO1;2A, kslt=\E[4~, mc0=\E[i,
+       nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+       rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
+       rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+       rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l,
+       sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
+       sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
+       smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+       tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
+       vpa=\E[%i%p1%dd, use=mlterm+pcfkeys, use=xterm+r6f2,
+
+# The insert/delete/home/end keys do not respond to modifiers because mlterm
+# looks in its termcap to decide which string to send.  If it used terminfo
+# (when available), it could use the extended names introduced for xterm.
+mlterm+pcfkeys|fragment for PC-style fkeys,
+       kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C,
+       kDN=\EO1;2B, kDN3=\EO1;3B, kDN4=\EO1;4B, kDN5=\EO1;5B,
+       kDN6=\EO1;6B, kDN7=\EO1;7B, kIC5=\E[2;5~, kIC6=\E[2;6~,
+       kLFT3=\EO1;3D, kLFT4=\EO1;4D, kLFT5=\EO1;5D,
+       kLFT6=\EO1;6D, kLFT7=\EO1;7D, kNXT5=\E[6;5~,
+       kNXT6=\E[6;6~, kPRV5=\E[5;5~, kPRV6=\E[5;6~,
+       kRIT3=\EO1;3C, kRIT4=\EO1;4C, kRIT5=\EO1;5C,
+       kRIT6=\EO1;6C, kRIT7=\EO1;7C, kUP=\EO1;2A, kUP3=\EO1;3A,
+       kUP4=\EO1;4A, kUP5=\EO1;5A, kUP6=\EO1;6A, kUP7=\EO1;7A,
+
+# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
+# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
+# Notes:
+# rxvt 2.21b uses
+#      smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O,
+# but some applications don't work with that.
+# It also has an AIX extension
+#      box2=lqkxjmwuvtn,
+# and
+#      ech=\E[%p1%dX,
+# but the latter does not work correctly.
+#
+# The distributed terminfo says it implements hpa and vpa, but they are not
+# implemented correctly, using relative rather than absolute positioning.
+#
+# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
+# Since rxvt is not really compatible with xterm, it should be configured as
+# "rxvt" or "rxvt-color".
+#
+# removed dch/dch1 because they are inconsistent with bce/ech -TD
+# remove km as per tack test -TD
+rxvt-basic|rxvt terminal base (X Window System),
+       OTbs, am, bce, eo, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+       enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, ht=^I,
+       hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
+       ind=^J, is1=\E[?47l\E=\E[?1l,
+       is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
+       kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+       rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
+       rmul=\E[24m,
+       rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
+       rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
+       s0ds=\E(B, s1ds=\E(0, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
+       smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq,
+       use=rxvt+pcfkeys, use=vt220+keypad,
+# Key Codes from rxvt reference:
+#
+# Note: Shift + F1-F10 generates F11-F20
+#
+# For the keypad, use Shift to temporarily override Application-Keypad
+# setting use Num_Lock to toggle Application-Keypad setting if Num_Lock
+# is off, escape sequences toggle Application-Keypad setting.
+# Also note that values of Home, End, Delete may have been compiled
+# differently on your system.
+#
+#                   Normal       Shift        Control      Ctrl+Shift
+#  Tab              ^I           ESC [ Z      ^I           ESC [ Z
+#  BackSpace        ^H           ^?           ^?           ^?
+#  Find             ESC [ 1 ~    ESC [ 1 $    ESC [ 1 ^    ESC [ 1 @
+#  Insert           ESC [ 2 ~    paste        ESC [ 2 ^    ESC [ 2 @
+#  Execute          ESC [ 3 ~    ESC [ 3 $    ESC [ 3 ^    ESC [ 3 @
+#  Select           ESC [ 4 ~    ESC [ 4 $    ESC [ 4 ^    ESC [ 4 @
+#  Prior            ESC [ 5 ~    scroll-up    ESC [ 5 ^    ESC [ 5 @
+#  Next             ESC [ 6 ~    scroll-down  ESC [ 6 ^    ESC [ 6 @
+#  Home             ESC [ 7 ~    ESC [ 7 $    ESC [ 7 ^    ESC [ 7 @
+#  End              ESC [ 8 ~    ESC [ 8 $    ESC [ 8 ^    ESC [ 8 @
+#  Delete           ESC [ 3 ~    ESC [ 3 $    ESC [ 3 ^    ESC [ 3 @
+#  F1               ESC [ 11 ~   ESC [ 23 ~   ESC [ 11 ^   ESC [ 23 ^
+#  F2               ESC [ 12 ~   ESC [ 24 ~   ESC [ 12 ^   ESC [ 24 ^
+#  F3               ESC [ 13 ~   ESC [ 25 ~   ESC [ 13 ^   ESC [ 25 ^
+#  F4               ESC [ 14 ~   ESC [ 26 ~   ESC [ 14 ^   ESC [ 26 ^
+#  F5               ESC [ 15 ~   ESC [ 28 ~   ESC [ 15 ^   ESC [ 28 ^
+#  F6               ESC [ 17 ~   ESC [ 29 ~   ESC [ 17 ^   ESC [ 29 ^
+#  F7               ESC [ 18 ~   ESC [ 31 ~   ESC [ 18 ^   ESC [ 31 ^
+#  F8               ESC [ 19 ~   ESC [ 32 ~   ESC [ 19 ^   ESC [ 32 ^
+#  F9               ESC [ 20 ~   ESC [ 33 ~   ESC [ 20 ^   ESC [ 33 ^
+#  F10              ESC [ 21 ~   ESC [ 34 ~   ESC [ 21 ^   ESC [ 34 ^
+#  F11              ESC [ 23 ~   ESC [ 23 $   ESC [ 23 ^   ESC [ 23 @
+#  F12              ESC [ 24 ~   ESC [ 24 $   ESC [ 24 ^   ESC [ 24 @
+#  F13              ESC [ 25 ~   ESC [ 25 $   ESC [ 25 ^   ESC [ 25 @
+#  F14              ESC [ 26 ~   ESC [ 26 $   ESC [ 26 ^   ESC [ 26 @
+#  F15 (Help)       ESC [ 28 ~   ESC [ 28 $   ESC [ 28 ^   ESC [ 28 @
+#  F16 (Menu)       ESC [ 29 ~   ESC [ 29 $   ESC [ 29 ^   ESC [ 29 @
+#  F17              ESC [ 31 ~   ESC [ 31 $   ESC [ 31 ^   ESC [ 31 @
+#  F18              ESC [ 32 ~   ESC [ 32 $   ESC [ 32 ^   ESC [ 32 @
+#  F19              ESC [ 33 ~   ESC [ 33 $   ESC [ 33 ^   ESC [ 33 @
+#  F20              ESC [ 34 ~   ESC [ 34 $   ESC [ 34 ^   ESC [ 34 @
+#
+#                                                          Application
+#  Up               ESC [ A      ESC [ a      ESC O a      ESC O A
+#  Down             ESC [ B      ESC [ b      ESC O b      ESC O B
+#  Right            ESC [ C      ESC [ c      ESC O c      ESC O C
+#  Left             ESC [ D      ESC [ d      ESC O d      ESC O D
+#  KP_Enter         ^M                                     ESC O M
+#  KP_F1            ESC O P                                ESC O P
+#  KP_F2            ESC O Q                                ESC O Q
+#  KP_F3            ESC O R                                ESC O R
+#  KP_F4            ESC O S                                ESC O S
+#  XK_KP_Multiply   *                                      ESC O j
+#  XK_KP_Add        +                                      ESC O k
+#  XK_KP_Separator  ,                                      ESC O l
+#  XK_KP_Subtract   -                                      ESC O m
+#  XK_KP_Decimal    .                                      ESC O n
+#  XK_KP_Divide     /                                      ESC O o
+#  XK_KP_0          0                                      ESC O p
+#  XK_KP_1          1                                      ESC O q
+#  XK_KP_2          2                                      ESC O r
+#  XK_KP_3          3                                      ESC O s
+#  XK_KP_4          4                                      ESC O t
+#  XK_KP_5          5                                      ESC O u
+#  XK_KP_6          6                                      ESC O v
+#  XK_KP_7          7                                      ESC O w
+#  XK_KP_8          8                                      ESC O x
+#  XK_KP_9          9                                      ESC O y
+#
+# The source-code for rxvt actually defines mappings for F21-F35, using
+# "ESC [ 35 ~" to "ESC [  49 ~".  Keyboards with more than 12 function keys
+# are rare, so this entry uses the shift- and control-modifiers as in
+# xterm+pcfkeys to define keys past F12.
+#
+# kIC is normally not used, since rxvt performs a paste for that (shifted
+# insert), unless private mode 35 is set.
+#
+# kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD
+# Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
+rxvt+pcfkeys|fragment for PC-style fkeys,
+       kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
+       kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
+       kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf2=\E[12~, kf20=\E[34~, kf21=\E[23$, kf22=\E[24$,
+       kf23=\E[11\^, kf24=\E[12\^, kf25=\E[13\^, kf26=\E[14\^,
+       kf27=\E[15\^, kf28=\E[17\^, kf29=\E[18\^, kf3=\E[13~,
+       kf30=\E[19\^, kf31=\E[20\^, kf32=\E[21\^, kf33=\E[23\^,
+       kf34=\E[24\^, kf35=\E[25\^, kf36=\E[26\^, kf37=\E[28\^,
+       kf38=\E[29\^, kf39=\E[31\^, kf4=\E[14~, kf40=\E[32\^,
+       kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@, kDN=\E[b, kDN5=\EOb,
+       kEND5=\E[8\^, kEND6=\E[8@, kHOM5=\E[7\^, kHOM6=\E[7@,
+       kIC5=\E[2\^, kIC6=\E[2@, kLFT5=\EOd, kNXT5=\E[6\^,
+       kNXT6=\E[6@, kPRV5=\E[5\^, kPRV6=\E[5@, kRIT5=\EOc,
+       kUP=\E[a, kUP5=\EOa,
+
+rxvt|rxvt terminal emulator (X Window System),
+       ncv@,
+       hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017,
+       vpa=\E[%i%p1%dd, use=rxvt-basic, use=ecma+color,
+rxvt-color|rxvt terminal emulator (X Window System),
+       use=rxvt,
+rxvt-256color|rxvt 2.7.9 with xterm 256-colors,
+       use=xterm+256color, use=rxvt,
+rxvt-88color|rxvt 2.7.9 with xterm 88-colors,
+       use=xterm+88color, use=rxvt,
+rxvt-xpm|rxvt terminal emulator (X Window System),
+       use=rxvt,
+rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
+       acsc=0\333+\257\,\256-\^`\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,
+       use=rxvt,
+rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin,
+       acsc=0\333+\257\,\256-\^`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376,
+       use=rxvt-cygwin,
+
+# This variant is supposed to work with rxvt 2.7.7 when compiled with
+# NO_BRIGHTCOLOR defined.  rxvt needs more work...
+rxvt-16color|xterm with 16 colors like aixterm,
+       ncv#32, use=ibm+16color, use=rxvt,
+
+# mrxvt 0.5.3
+#
+# mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
+# makes its function-keys different from other flavors of rxvt -TD
+mrxvt|multitabbed rxvt,
+       use=xterm+pcc2, use=xterm+r6f2, use=rxvt,
+
+# From: Michael Jennings <mej@valinux.com>
+#
+# Eterm 0.9.3
+#
+# removed kf0 which conflicts with kf10 -TD
+# remove cvvis which conflicts with cnorm -TD
+# Eterm does not implement control/shift cursor keys such as kDN6, or kPRV/kNXT
+# but does otherwise follow the rxvt+pcfkeys model -TD
+# remove nonworking flash -TD
+# remove km as per tack test -TD
+Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
+       am, bce, bw, eo, mc5i, mir, msgr, xenl, xon,
+       btns#5, cols#80, it#8, lines#24, lm#0, ncv@,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
+       home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       is1=\E[?47l\E>\E[?1l,
+       is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kNXT@,
+       kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kbs=^H,
+       kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M,
+       mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+       rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=,
+       rmso=\E[27m, rmul=\E[24m,
+       rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
+       rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
+       sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
+       smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       vpa=\E[%i%p1%dd, use=vt100+enq, use=rxvt+pcfkeys,
+       use=ecma+color,
+
+Eterm-256color|Eterm with xterm 256-colors,
+       use=xterm+256color, use=Eterm,
+
+Eterm-88color|Eterm with 88 colors,
+       use=xterm+88color, use=Eterm,
+
+# xiterm  0.5-5.2
+# This is not based on xterm's source...
+# vttest shows several problems with keyboard, cursor-movements.
+# see also http://invisible-island.net/xterm/xterm.faq.html#bug_xiterm
+xiterm|internationalized terminal emulator for X,
+       km@,
+       kbs=\177, kdch1=\E[3~, use=klone+color, use=xterm-r6,
+
+# These (xtermc and xtermm) are distributed with Solaris.  They refer to a
+# variant of xterm which is apparently no longer supported, but are interesting
+# because they illustrate SVr4 curses mouse controls - T.Dickey
+xtermm|xterm terminal emulator (monocrome),
+       OTbs, am, km, mir, msgr, xenl,
+       btns#3, cols#80, it#8, lines#24,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
+       home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy,
+       kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU,
+       kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_,
+       knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM,
+       rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m,
+       rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
+       smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
+
+xtermc|xterm terminal emulator (color),
+       colors#8, ncv#7, pairs#64,
+       op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       use=xtermm,
+
+# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
+# Here's a termcap entry I've been using for xterm_color, which comes
+# with BSD/OS 2.0, and the X11R6 contrib tape too I think.  Besides the
+# color stuff, I also have a status line defined as the window manager
+# title bar. [I have translated it to terminfo -- ESR]
+xterm-pcolor|xterm with color used for highlights and status line,
+       bold=\E[1m\E[43m, rev=\E[7m\E[34m, smso=\E[7m\E[31m,
+       smul=\E[4m\E[42m, use=xterm+sl, use=xterm-r6,
+
+# HP ships this (HPUX 9 and 10), except for the pb#9600 which was merged in
+# from BSD termcap.  (hpterm:  added empty <acsc>, we have no idea what ACS
+# chars look like --esr)
+hpterm|X-hpterm|hp X11 terminal emulator,
+       am, da, db, mir, xhp,
+       cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0,
+       acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M,
+       cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC,
+       cuu1=\EA, dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK,
+       hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=^J, kbs=^H,
+       kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
+       kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
+       khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
+       knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, meml=\El,
+       memu=\Em, pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
+       pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
+       pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
+       pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET,
+       rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@,
+       rmul=\E&d@,
+       sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
+       sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
+       smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+# HPUX 11 provides a color version.
+hpterm-color|HP X11 terminal emulator with color,
+       ccc,
+       colors#64, pairs#8,
+       home=\E&a0y0C,
+       initp=\E&v%p2%da%p3%db%p4%dc%p5%dx%p6%dy%p7%dz%p1%dI,
+       op=\E&v0S, scp=\E&v%p1%dS, use=hpterm,
+
+# This entry describes an xterm with Sun-style function keys enabled
+# via the X resource setting "xterm*sunFunctionKeys:true"
+# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
+# The <kf13>...<kf20> keys are L3-L10.  We don't set <kf16=\E[197z>
+# because we want it to be seen as <kcpy>.
+# The <kf31>...<kf45> keys are R1-R15.  We treat some of these in accordance
+# with their Sun keyboard labels instead.
+# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
+xterm-sun|xterm with sunFunctionKeys true,
+       kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB,
+       kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z,
+       kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z,
+       kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z,
+       kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z,
+       kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z,
+       kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z,
+       kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z,
+       kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z,
+       kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z,
+       kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z,
+       kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z,
+       use=xterm-basic,
+xterms-sun|small (80x24) xterm with sunFunctionKeys true,
+       cols#80, lines#24, use=xterm-sun,
+
+# This is for the extensible terminal emulator on the X11R6 contrib tape.
+# It corresponds to emu's internal emulation:
+#      emu -term emu
+# emu's default sets TERM to "xterm", but that doesn't work well -TD
+# fixes: remove bogus rmacs/smacs, change oc to op, add bce, am -TD
+# fixes: add civis, cnorm, sgr -TD
+emu|emu native mode,
+       am, bce, mir, msgr, xon,
+       colors#15, cols#80, it#8, lines#24, pairs#64, vt#200,
+       acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
+       bel=^G, blink=\EW, bold=\EU, civis=\EZ, clear=\EP\EE0;0;,
+       cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;,
+       cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\ED,
+       cup=\EE%p1%d;%p2%d;, cuu=\Ep-%p1%d;, cuu1=\EA,
+       dch=\EI%p1%d;, dch1=\EI1;, dl=\ER%p1%d;, dl1=\ER1;,
+       ech=\Ej%p1%d;, ed=\EN, el=\EK, el1=\EL, home=\EE0;0;, ht=^I,
+       hts=\Eh, il=\EQ%p1%d;, il1=\EQ1;, ind=\EG,
+       is2=\ES\Er0;\Es0;, kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED,
+       kcuu1=\EA, kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01,
+       kf10=\EF10, kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14,
+       kf15=\EF15, kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19,
+       kf2=\EF02, kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05,
+       kf6=\EF06, kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind,
+       kich1=\Eins, knp=\Enext, kpp=\Eprior, kslt=\Esel,
+       op=\Es0;\Er0;, rev=\ET, ri=\EF, rmir=\EX, rmso=\ES, rmul=\ES,
+       rs2=\ES\Es0;\Er0;, setab=\Es%i%p1%d;,
+       setaf=\Er%i%p1%d;,
+       sgr=\ES%?%p1%t\ET%;%?%p2%t\EV%;%?%p3%t\ET%;%?%p4%t\EW%;%?%p6%t\EU%;,
+       sgr0=\ES, smir=\EY, smso=\ET, smul=\EV, tbc=\Ej,
+
+# vt220 Terminfo entry for the Emu emulation, corresponds to
+#      emu -term vt220
+# with NumLock set (to make the keypad transmit kf0-kf9).
+# fixes: add am, xenl, corrected sgr0 -TD
+emu-220|Emu-220 (vt200-7bit mode),
+       am, xenl, xon,
+       cols#80, it#8, lines#24, vt#200,
+       acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+       blink=\E[0;5m, bold=\E[0;1m, civis=\E[?25l,
+       clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
+       cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
+       dch=\E[%p1%dP, dch1=\E[1P, dl=\E[%p1%dM, dl1=\E[1M,
+       ed=\E[0J, el=\E[0K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
+       hts=\EH, if=/usr/share/tabset/vt300, il=\E[%p1%dL,
+       il1=\E[1L, ind=\ED, is2=\E>\E[?1l\E[?3l\E[4l\E[?7h,
+       kbs=^H, kcmd=\E[29~, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, kf0=\EOp, kf1=\EOq,
+       kf10=\EOl, kf11=\EOm, kf12=\EOn, kf13=\EOP, kf14=\EOQ,
+       kf15=\EOR, kf16=\EOS, kf2=\EOr, kf26=\E[17~, kf27=\E[18~,
+       kf28=\E[19~, kf29=\E[20~, kf3=\EOs, kf30=\E[21~,
+       kf34=\E[26~, kf37=\E[31~, kf38=\E[32~, kf39=\E[33~,
+       kf4=\EOt, kf40=\E[34~, kf5=\EOu, kf6=\EOv, kf7=\EOw,
+       kf8=\EOx, kf9=\EOy, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
+       knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8, rev=\E[0;7m,
+       ri=\EM, rmacs=^O, rmcup=\E>, rmkx=\E>, rmso=\E[m, rmul=\E[m,
+       rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h, sc=\E7,
+       sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
+       smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
+# A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
+# print interface, ANSI X3.64 colour escape sequences, etc.  Newsgroup postings
+# indicate that it emulates more than one terminal, but incompletely.
+#
+# This is adapted from a FreeBSD bug-report by Daniel Rudy <dcrudy@pacbell.net>
+# It is based on vt102's entry, with some subtle differences, but also
+#      has status line
+#      supports ANSI colors (except for 'op' string)
+#      apparently implements alternate screen like xterm
+#      does not use padding, of course.
+mvterm|vv100|SwitchTerm aka mvTERM,
+       am, eslok, hs, km, mir, msgr, xenl,
+       colors#8, cols#80, it#8, lines#24, pairs#64,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       dsl=\E[?E, ed=\E[J, el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0,
+       fsl=\E[?F, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOy,
+       kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw,
+       op=\E[100m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+       rmcup=\E[2J\E[?47l\E8, rmkx=\E[?1l\E>, rmso=\E[m,
+       rmul=\E[m,
+       rs2=\E>\E[1;3;4;5;6l\E[?7h\E[100m\E[m\E[r\E[2J\E[H,
+       sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       tsl=\E[?E\E[?%i%p1%dT, use=vt100+fnkeys,
+
+### MTERM
+#
+# This application is available by email from <mouse@Rodents.Montreal.QC.CA>.
+#
+# "mterm -type ansi" sets $TERM to "ansi"
+mterm-ansi|ANSI emulation,
+       am, bw, mir, msgr,
+       it#8,
+       acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+       cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
+       el=\E[K, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=,
+       il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
+       invis=\E[8m, is2=\E)0\017, kbs=^H, nel=\EE, rev=\E[7m,
+       ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmso=\E[27m,
+       rmul=\E[24m,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+       vpa=\E[%i%p1%dd,
+# mterm normally sets $TERM to "mterm"
+mterm|mouse-sun|Der Mouse term,
+       am, bw, mir,
+       it#8,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^N, cuf1=^S,
+       cup=\006%p1%d.%p2%d., cuu1=^X, dch1=^Y, dl1=^K, ed=^B, el=^C,
+       home=^P, ht=^I, il1=^A, ind=^U, kbs=^H, ll=^R, nel=^M^U, ri=^W,
+       rmir=^O, rmso=^T, smir=^Q, smso=^V,
+# "mterm -type decansi" sets $TERM to "decansi"
+#
+# note: kdch1, kfnd, kslt are in the source code, but do not work -TD
+decansi|ANSI emulation with DEC compatibility hacks,
+       am, mir, msgr, xenl,
+       colors#8, it#8, pairs#64,
+       acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+       dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, enacs=\E(B\E)0,
+       home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, il=\E[%p1%dL,
+       il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m,
+       is2=\E)0\E[r\017, kbs=^H, kcub1=\EOD, kcud1=\EOB,
+       kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\E[11~,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+       kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+       kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
+       kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
+       kpp=\E[5~, kslt=\E[4~, nel=\EE, op=\E[0m, rc=\E8, rev=\E[7m,
+       ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
+       rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, sc=\E7,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR,
+       u7=\E[6n, vpa=\E[%i%p1%dd,
+
+#### MGR
+#
+# MGR is a Bell Labs window system lighter-weight than X.
+# These entries describe MGR's xterm-equivalent.
+# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997
+#
+
+mgr|Bellcore MGR (non X) window system terminal emulation,
+       am, km,
+       bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=^M,
+       csr=\E%p1%d;%p2%dt, cub1=^H, cud1=\Ef, cuf1=\Er,
+       cup=\E%p2%d;%p1%dM, cuu1=\Eu, cvvis=\E0h,
+       dch=\E%p1%dE$<5>, dch1=\EE, dl=\E%p1%dd$<3*>,
+       dl1=\Ed$<3>, ed=\EC, el=\Ec, hd=\E1;2f, ht=^I, hu=\E1;2u,
+       ich=\E%p1%dA$<5>, ich1=\EA, il=\E%p1%da$<3*>,
+       il1=\Ea$<3>, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, nel=^M^J, rev=\E1n, rmam=\E5S,
+       rmso=\E0n, rmul=\E0n, sgr0=\E0n, smam=\E5s, smso=\E1n,
+       smul=\E4n,
+mgr-sun|Mgr window with Sun keyboard,
+       ka1=\E[214z, ka3=\E[216z, kb2=\E[218z, kc1=\E[220z,
+       kc3=\E[222z, kcpy=\E[197z, kend=\E[220z, kent=\E[250z,
+       kf1=\E[224z, kf10=\E[233z, kf11=\E[234z, kf12=\E[235z,
+       kf2=\E[225z, kf3=\E[226z, kf4=\E[227z, kf5=\E[228z,
+       kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, kf9=\E[232z,
+       kfnd=\E[200z, khlp=\E[207z, khome=\E[214z, knp=\E[222z,
+       kopn=\E[198z, kpp=\E[216z, kund=\E[195z, use=mgr,
+mgr-linux|Mgr window with Linux keyboard,
+       ka1=\E[H, ka3=\E[5~, kb2=\E[G, kc1=\E[Y, kc3=\E[6~,
+       kdch1=\E[3~, kend=\E[4~, kf0=\E[[J, kf1=\E[[A, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D,
+       kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[1~, knp=\E[6~, kpp=\E[5~, use=mgr,
+
+######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
+#
+
+# Columbus UNIX virtual terminal. This terminal also appears in
+# UNIX 4.0 and successors as line discipline 1 (?), but is
+# undocumented and does not really work quite right.
+cbunix|cb unix virtual terminal,
+       OTbs, am, da, db,
+       cols#80, lines#24, lm#0,
+       bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EG%p2%c%p1%c, cuu1=\EA, dch1=\EM, dl1=\EN, ed=\EL,
+       el=\EK, ich1=\EO, il1=\EP, ind=^J, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, khome=\EE, rmso=\Eb^D, rmul=\Eb^A,
+       smso=\Ea^D, smul=\Ea^A,
+# (vremote: removed obsolete ":nl@:" -- esr)
+vremote|virtual remote terminal,
+       am@,
+       cols#79, use=cbunix,
+
+pty|4bsd pseudo teletype,
+       cup=\EG%p1%{32}%+%c%p2%{32}%+%c, rmso=\Eb$, rmul=\Eb!,
+       smso=\Ea$, smul=\Ea!, use=cbunix,
+
+# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
+eterm|gnu emacs term.el terminal emulation,
+       am, mir, xenl,
+       cols#80, lines#24,
+       bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, rev=\E[7m,
+       rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
+       smul=\E[4m,
+
+# Entries for use by the `screen' program by Juergen Weigert,
+# Michael Schroeder, Oliver Laumann.  The screen and
+# screen-w entries came with version 3.7.1.  The screen2 and screen3 entries
+# come from University of Wisconsin and may be older.
+# (screen: added <cnorm> on ANSI model -- esr)
+#
+# 'screen' defines extensions to termcap.  Some are used in its terminal
+# description:
+#      G0   (bool)  Terminal can deal with ISO 2022  font  selection sequences.
+#      AX   (bool)  Does  understand ANSI set default fg/bg color
+#                   (\E[39m / \E[49m).
+#      S0   (str)   Switch charset 'G0' to the specified charset.
+#      E0   (str)   Switch charset 'G0' back to standard charset.
+#
+# tested with screen 3.09.08
+screen|VT 100/ANSI X3.64 virtual terminal,
+       OTbs, OTpt, am, km, mir, msgr, xenl, G0,
+       colors#8, cols#80, it#8, lines#24, pairs#64,
+       acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+       cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+       flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcbt=\E[Z,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+       nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+       rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m,
+       rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B,
+       S0=\E(%p1%c, use=ecma+color,
+# The bce and status-line entries are from screen 3.9.13 (and require some
+# changes to .screenrc).
+screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
+       bce, use=screen,
+screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
+       dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen,
+
+# ======================================================================
+# Entries for GNU Screen with 16 colors.
+# Those variations permit to benefit from 16 colors palette, and from
+# bold font and blink attribute separated from bright colors. But they
+# are less portable than the generic "screen" 8 color entries: Their
+# usage makes real sense only if the terminals you attach and reattach
+# do all support 16 color palette.
+
+screen-16color|GNU Screen with 16 colors,
+       use=ibm+16color, use=screen,
+
+screen-16color-s|GNU Screen with 16 colors and status line,
+       use=ibm+16color, use=screen-s,
+
+screen-16color-bce|GNU Screen with 16 colors and BCE,
+       use=ibm+16color, use=screen-bce,
+
+screen-16color-bce-s|GNU Screen with 16 colors, BCE, and status line,
+       bce, use=ibm+16color, use=screen-s,
+
+# ======================================================================
+# Entries for GNU Screen 4.02 with --enable-colors256.
+
+screen-256color|GNU Screen with 256 colors,
+       ccc@,
+       initc@, use=xterm+256color, use=screen,
+
+screen-256color-s|GNU Screen with 256 colors and status line,
+       ccc@,
+       initc@, use=xterm+256color, use=screen-s,
+
+screen-256color-bce|GNU Screen with 256 colors and BCE,
+       ccc@,
+       initc@, use=xterm+256color, use=screen-bce,
+
+screen-256color-bce-s|GNU Screen with 256 colors, BCE, and status line,
+       bce, ccc@,
+       initc@, use=xterm+256color, use=screen-s,
+
+# ======================================================================
+
+# Read the fine manpage:
+#       When  screen  tries  to  figure  out  a  terminal name for
+#       itself, it first looks for an entry named "screen.<term>",
+#       where  <term>  is the contents of your $TERM variable.  If
+#       no such entry exists, screen tries "screen" (or "screen-w"
+#       if the terminal is wide (132 cols or more)).  If even this
+#       entry cannot be found, "vt100" is used as a substitute.
+#
+# Notwithstanding the manpage, screen uses its own notion of the termcap
+# and some keys from "screen.<term>" are ignored.  Here is an entry which
+# covers those (tested with screen 4.00.02) -TD
+screen+fkeys|function-keys according to screen,
+       kend=\E[4~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kfnd@,
+       khome=\E[1~, kslt@,
+#
+# Here are a few customized entries which are useful -TD
+#
+# Notes:
+# (a)  screen does not support invis.
+# (b)  screen's implementation of bw is incorrect according to tack.
+# (c)  screen appears to hardcode the strings for khome/kend, making it
+#      necessary to override the "use=" clause's values (screen+fkeys).
+# (d)  screen sets $TERMCAP to a termcap-formatted copy of the 'screen' entry,
+#      which is NOT the same as the terminfo screen.<term>.
+# (e)  when screen finds one of these customized entries, it sets $TERM to
+#      match.  Hence, no "screen.xterm" entry is provided, since that would
+#      create heartburn for people running remote xterm's.
+#
+#      xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV
+#      since the default translations override the built-in keycode
+#      translation.  They are suppressed here to show what is tested by tack.
+screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
+       bce@, bw,
+       invis@, kIC@, kNXT@, kPRV@, meml@, memu@,
+       sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
+       use=screen+fkeys, use=xterm-new,
+# xterm-r6 does not really support khome/kend unless it is propped up by
+# the translations resource.
+screen.xterm-r6|screen customized for X11R6 xterm,
+       bw, use=screen+fkeys, use=xterm-r6,
+# Color applications running in screen and TeraTerm do not play well together
+# on Solaris because Sun's curses implementation gets confused.
+screen.teraterm|disable ncv in teraterm,
+       ncv#127,
+       acsc=+\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,
+       use=screen+fkeys, use=screen,
+# Other terminals
+screen.rxvt|screen in rxvt,
+       bw,
+       cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+       kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
+       use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
+# fix the backspace key
+screen.linux|screen in linux console,
+       bw,
+       kbs=\177, kcbt@, use=screen+fkeys, use=screen,
+screen.mlterm|screen in mlterm,
+       use=screen+fkeys, use=mlterm,
+
+screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
+       cols#132, use=screen,
+
+screen2|old VT 100/ANSI X3.64 virtual terminal,
+       cols#80, it#8, lines#24,
+       cbt=\E[Z, clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL,
+       il1=\E[L, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
+       kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
+       nel=^M^J, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m,
+       rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smir=\E[4h,
+       smso=\E[3m, smul=\E[4m, tbc=\E[3g,
+# (screen3: removed unknown ":xv:LP:G0:" -- esr)
+screen3|older VT 100/ANSI X3.64 virtual terminal,
+       km, mir, msgr,
+       cols#80, it#8, lines#24,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+       cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcub1=\EOD,
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
+       kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
+       rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs1=\Ec,
+       sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
+       smul=\E[4m, tbc=\E[3g,
+
+# Francesco Potorti <F.Potorti@cnuce.cnr.it>:
+# NCSA telnet is one of the most used telnet clients for the Macintosh.  It has
+# been maintained until recently by the National Center for Supercomputer
+# Applications, and it is feature rich, stable and free.  It can be downloaded
+# from www.ncsa.edu.  This terminfo description file is based on xterm-vt220,
+# xterm+sl, and the docs at NCSA.  It works well.
+#
+# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode
+# The terminal options should be set as follows:
+#         Xterm sequences ON
+#         use VT wrap mode ON
+#         use Emacs arrow keys OFF
+#         CTRL-COMND is Emacs meta ON
+#         8 bit mode ON
+#         answerback string: "ncsa-vt220-8"
+#         setup keys: all disabled
+#
+# Application mode is not used.
+#
+# Other special mappings:
+#      Apple           VT220
+#      HELP            Find
+#      HOME            Insert here
+#      PAGEUP          Remove
+#      DEL             Select
+#      END             Prev Screen
+#      PAGEDOWN        Next Screen
+#
+# Though it supports ANSI color, NCSA Telnet uses color to represent blinking
+# text.
+#
+# The status-line manipulation is a mapping of the xterm-compatible control
+# sequences for setting the window-title.  So you must use tsl and fsl in
+# pairs, since the latter ends the string that is loaded to the window-title.
+ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
+       am, hs, km, mir, msgr, xenl,
+       acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       dsl=\E]0;\007, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
+       flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, ht=^I, hts=\EH,
+       ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
+       il=\E[%p1%dL, il1=\E[L, ind=\n$<150*>,
+       is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~,
+       kf11=\E[29~, kf12=\E[31~, kf13=\E[32~, kf14=\E[33~,
+       kf15=\E[34~, kf2=\E[18, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~,
+       kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khlp=\E[1~,
+       khome=\E[2~, knp=\E[6~, kpp=\E[3~, mc4=\E[4i, mc5=\E[5i,
+       rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
+       rmacs=\E(B, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l,
+       rmso=\E[27m, rmul=\E[24m,
+       rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
+       sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7,
+       smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;,
+       u8=\E[?62;1;6c, use=ansi+enq,
+ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
+       use=ncsa-m, use=klone+color,
+ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
+       hs@,
+       dsl@, fsl@, tsl@, use=ncsa,
+ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
+       hs@,
+       dsl@, fsl@, tsl@, use=ncsa-m,
+# alternate -TD:
+# The documented function-key mapping refers to the Apple Extended Keyboard
+# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6).  We use the VT220-style
+# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on
+# some keyboards and many applications require these as F1-F4.
+#
+ncsa-vt220|NCSA Telnet using vt220-compatible function keys,
+       kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+       kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+       kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
+       kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, use=ncsa,
+
+#### Pilot Pro Palm-Top
+#
+# Termcap for Top Gun Telnet and SSH on the Palm Pilot.
+# http://www.ai/~iang/TGssh/
+pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional,
+       OTbs, am, xenl,
+       cols#39, lines#16,
+       bel=^G, clear=\Ec, cr=^M, cub1=^H, cud1=^J,
+       cup=\Em%p1%{32}%+%c%p2%{32}%+%c, home=\Em\s\s, ht=^I,
+       ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s,
+       rmso=\EB, smso=\Eb,
+
+# From: Federico Bianchi <bianchi@www.arte.unipi.it>
+# These entries are for the Embeddable Linux Kernel System (ELKS)
+# project - an heavily stripped down Linux to be run on 16 bit
+# boxes or, eventually, to be used in embedded systems - and have been
+# adapted from the stock ELKS termcap. The project itself looks stalled,
+# and the latest improvements I know of date back to March 2000.
+#
+# To cope with the ELKS dumb console I added an "elks-glasstty" entry;
+# as an added bonus, this deals with all the capabilities common to
+# both VT52 and ANSI (or, eventually, "special") modes.
+
+elks-glasstty|ELKS glass-TTY capabilities,
+       OTbs, am,
+       cols#80, it#8, lines#25,
+       bel=^G, cr=^M, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
+       nel=^M^J,
+
+elks-vt52|ELKS vt52 console,
+       clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\EK,
+       home=\EH, use=elks-glasstty,
+
+elks-ansi|ELKS ANSI console,
+       clear=\E[H\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
+       rmso=\E[m, smso=\E[7m, use=elks-glasstty,
+
+# As a matter of fact, ELKS 0.0.83 on PCs defaults to ANSI emulation
+# instead of VT52, but the "elks" entry still refers to the latter.
+
+elks|default ELKS console,
+       use=elks-vt52,
+
+# Project SIBO (for Psion 3 palmtops) console is identical to the ELKS
+# one but in screen size
+
+sibo|ELKS SIBO console,
+       cols#61, it#8, lines#20, use=elks-vt52,
+
+######## COMMERCIAL WORKSTATION CONSOLES
+#
+
+#### Alpha consoles
+#
+
+# This is from the OSF/1 Release 1.0 termcap file
+pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation,
+       am, xon,
+       cols#80, lines#25,
+       bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+       el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
+       nel=^M^J, rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m,
+
+#### Sun consoles
+#
+
+# :is1: resets scrolling region in case a previous user had used "tset vt100"
+oldsun|Sun Microsystems Workstation console,
+       OTbs, am, km, mir, msgr,
+       cols#80, it#8, lines#34,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+       dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
+       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       is1=\E[1r, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
+       rmso=\E[m, sgr0=\E[m, smso=\E[7m,
+# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995
+# <lines> capability later corrected by J.T. Conklin <jtc@cygnus.com>
+# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998)
+sun-il|Sun Microsystems console with working insert-line,
+       am, km, msgr,
+       cols#80, lines#34,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+       dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
+       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       kb2=\E[218z, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kdch1=\177, kend=\E[220z, kf1=\E[224z,
+       kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z,
+       kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z,
+       kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
+       knp=\E[222z, kopt=\E[194z, kpp=\E[216z, kres=\E[193z,
+       kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, rs2=\E[s,
+       sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, smso=\E[7m,
+       u8=\E[1t, u9=\E[11t,
+# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
+# flake out on the last line.  Unfortunately, without them the terminal has no
+# way to scroll.
+sun-cgsix|sun-ss5|Sun SparcStation 5 console,
+       il@, il1@, use=sun-il,
+# If you are using an SS5, change the sun definition to use sun-ss5.
+sun|sun1|sun2|Sun Microsystems Inc. workstation console,
+       use=sun-il,
+
+# From: <john@ucbrenoir>  Tue Sep 24 13:14:44 1985
+sun-s|Sun Microsystems Workstation window with status line,
+       hs,
+       dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun,
+sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs,
+       hs,
+       dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun-e,
+sun-48|Sun 48-line window,
+       cols#80, lines#48, use=sun,
+sun-34|Sun 34-line window,
+       cols#80, lines#34, use=sun,
+sun-24|Sun 24-line window,
+       cols#80, lines#24, use=sun,
+sun-17|Sun 17-line window,
+       cols#80, lines#17, use=sun,
+sun-12|Sun 12-line window,
+       cols#80, lines#12, use=sun,
+sun-1|Sun 1-line window for sysline,
+       eslok, hs,
+       cols#80, lines#1,
+       dsl=^L, fsl=\E[K, tsl=^M, use=sun,
+sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character,
+       ich1@, rmir@, smir@, use=sun,
+sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history,
+       lines#35,
+       rmcup=\E[>4h, smcup=\E[>4l, use=sun,
+sun-type4|Sun Workstation console with type 4 keyboard,
+       kcub1=\E[217z, kcud1=\E[221z, kcuf1=\E[219z,
+       kcuu1=\E[215z, use=sun-il,
+
+# Most of the current references to sun-color are from users wondering why this
+# is the default on install.  Details from reading the wscons manpage, adding
+# cub, etc., here (rather than in the base sun-il entry) since it is not clear
+# when those were added -TD
+sun-color|Sun Microsystems Workstation console with color support (IA systems),
+       colors#8, pairs#64,
+       cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
+       cuu=\E[%p1%dA, home=\E[H, op=\E[m\E[p, setab=\E[4%p1%dm,
+       setaf=\E[3%p1%dm,
+       setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+       use=sun,
+
+#### Iris consoles
+#
+
+# (wsiris: this had extension capabilities
+#      :HS=\E7F2:HE=\E7F7:\
+#      :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite:
+# See the note on Iris extensions near the end of this file.
+# Finally, removed suboptimal <clear>=\EH\EJ and added <cud1> &
+# <flash> from BRL -- esr)
+wsiris|iris40|iris emulating a 40 line visual 50 (approximately),
+       OTbs, OTnc, OTpt, am,
+       OTkn#3, cols#80, it#8, lines#40,
+       OTnl=\EB, bel=^G, clear=\Ev, cnorm=\E>, cub1=^H, cud1=\EB,
+       cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
+       cvvis=\E;, dim=\E7F2, dl1=\EM, ed=\EJ, el=\EK,
+       flash=\E7F4\E7B1\013\E7F7\E7B0, home=\EH, ht=^I, il1=\EL,
+       ind=^J, is2=\E7B0\E7F7\E7C2\E7R3, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3,
+       kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, ri=\EI,
+       rmso=\E0@, rmul=\E7R3\E0@, sgr0=\E7F7, smso=\E9P,
+       smul=\E7R2\E9P,
+
+#### NeWS consoles
+#
+# Console terminal windows under the NeWS (Sun's Display Postscript windowing
+# environment).   Note: these have nothing to do with Sony's News workstation
+# line.
+#
+
+# Entry for NeWS's psterm from Eric Messick & Hugh Daniel
+# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr)
+psterm|psterm-basic|NeWS psterm-80x34,
+       OTbs, am, hs, km, ul,
+       cols#80, it#8, lines#34,
+       blink=\EOb, bold=\EOd, clear=^L, csr=\EE%p1%d;%p2%d;,
+       cub1=\ET, cud1=\EP, cuf1=\EV, cup=\E%p1%d;%p2%d;, cuu1=\EY,
+       dch1=\EF, dl1=\EK, ed=\EB, el=\EC, flash=\EZ, fsl=\ENl,
+       home=\ER, ht=^I, il1=\EA, ind=\EW, is1=\EN*, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ll=\EU, rc=^\, rev=\EOr,
+       ri=\EX, rmcup=\ENt, rmir=\ENi, rmso=\ENo, rmul=\ENu, sc=^],
+       sgr0=\EN*, smcup=\EOt, smir=\EOi, smso=\EOo, smul=\EOu,
+       tsl=\EOl,
+psterm-96x48|NeWS psterm 96x48,
+       cols#96, lines#48, use=psterm,
+psterm-90x28|NeWS psterm 90x28,
+       cols#90, lines#28, use=psterm,
+psterm-80x24|NeWS psterm 80x24,
+       cols#80, lines#24, use=psterm,
+# This is a faster termcap for psterm.  Warning:  if you use this termcap,
+# some control characters you type will do strange things to the screen.
+# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr)
+psterm-fast|NeWS psterm fast version (flaky ctrl chars),
+       OTbs, am, hs, km, ul,
+       cols#80, it#8, lines#34,
+       blink=^Ob, bold=^Od, clear=^L, csr=\005%p1%d;%p2%d;,
+       cub1=^T, cud1=^P, cuf1=^V, cup=\004%p1%d;%p2%d;, cuu1=^Y,
+       dch1=^F, dl1=^K, ed=^B, el=^C, flash=^Z, fsl=^Nl, home=^R, ht=^I,
+       il1=^A, ind=^W, is1=^N*, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, ll=^U, rc=^\, rev=^Or, ri=^X, rmcup=^Nt, rmir=^Ni,
+       rmso=^No, rmul=^Nu, sc=^], sgr0=^N*, smcup=^Ot, smir=^Oi,
+       smso=^Oo, smul=^Ou, tsl=^Ol,
+
+#### NeXT consoles
+#
+# Use `glasstty' for the Workspace application
+#
+
+# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995
+next|NeXT console,
+       am, xt,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
+       ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
+       rmso=\E[4;1m, sgr0=\E[m, smso=\E[4;2m,
+nextshell|NeXT Shell application,
+       am,
+       cols#80,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, kbs=^H, kcub1=^H,
+       kcud1=^J, nel=^M^J,
+
+#### Sony NEWS workstations
+#
+
+# (news-unk: this had :KB=news: -- esr)
+news-unk|SONY NEWS vt100 emulator common entry,
+       OTbs, OTpt, am, xenl,
+       cols#80,
+       OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
+       cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
+       ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+       if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
+       is2=\E[?7h\E[?1l\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP,
+       kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
+       kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM,
+       rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r, sc=\E7,
+       sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+#
+# (news-29: this had :TY=ascii: --esr)
+news-29,
+       lines#29, use=news-unk,
+# (news-29-euc: this had :TY=euc: --esr)
+news-29-euc,
+       use=news-29,
+# (news-29-sjis: this had :TY=sjis: --esr)
+news-29-sjis,
+       use=news-29,
+#
+# (news-33: this had :TY=ascii: --esr)
+news-33,
+       lines#33, use=news-unk,
+# (news-33-euc: this had :TY=euc: --esr)
+news-33-euc,
+       use=news-33,
+# (news-33-sjis: this had :TY=sjis: --esr)
+news-33-sjis,
+       use=news-33,
+#
+# (news-42: this had :TY=ascii: --esr)
+news-42,
+       lines#42, use=news-unk,
+# (news-42-euc: this had :TY=euc: --esr)
+news-42-euc,
+       use=news-42,
+# (news-42-sjis: this had :TY=sjis: --esr)
+news-42-sjis,
+       use=news-42,
+#
+#      NEWS-OS old termcap entry
+#
+# (news-old-unk: this had :KB=news:TY=sjis: --esr)
+news-old-unk|SONY NEWS vt100 emulator common entry,
+       OTbs, OTpt, am, xenl,
+       cols#80, vt#3,
+       OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
+       cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+       home=\E[H, ht=^I, if=/usr/share/tabset/vt100, kbs=^H,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
+       kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM,
+       rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+#
+# (nwp512: this had :DE=^H:, which I think means <OTbs> --esr)
+nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines,
+       OTbs,
+       lines#40,
+       is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
+       use=news-old-unk,
+#
+# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr)
+nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line,
+       lines#42,
+       is2=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8,
+       use=news-old-unk,
+#
+# (nwp-512-o: this had :KB=nwp410:DE=^H:  I interpret the latter as <OTbs>. --esr)
+nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines,
+       OTbs,
+       lines#40,
+       is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
+       use=news-old-unk,
+#
+# (nwp513: this had :DE=^H: and the alias vt100-bm --esr)
+nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines,
+       OTbs,
+       lines#31,
+       is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
+       use=news-old-unk,
+#
+# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as <OTbs>; --esr)
+# also the alias vt100-bm.
+nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines,
+       OTbs,
+       lines#33,
+       is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8,
+       use=news-old-unk,
+#
+# (nwp513-o: had :DE=^H:, I think that's <OTbs>; also the alias vt100-bm --esr)
+nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines,
+       OTbs,
+       lines#31,
+       is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
+       use=news-old-unk,
+#
+# (news28: this had :DE=^H:, I think that's <OTbs>, and :KB=nws1200: --esr)
+news28|sony vt100 emulator 28 lines,
+       OTbs,
+       lines#28,
+       is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8,
+       use=news-old-unk,
+#
+# (news29: this had :TY=ascii:KB=nws1200:\ --esr)
+news29|news28-a|sony vt100 emulator 29 lines,
+       lines#29,
+       is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8,
+       use=news-old-unk,
+#
+# (news511: this had :TY=sjis: --esr)
+nwp511|nwp-511|nwp-511 vt100,
+       OTbs, OTpt, am, xenl,
+       cols#80, lines#24,
+       clear=\E[;H\E[2J$<20/>, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M,
+       ed=\E[J$<30/>, el=\E[K$<3/>,
+       flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
+       il1=\E[L, is2=\E[?5l\E[?1l\E>\E[?7h\E[?8h, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
+       kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\E#W, khome=\E[H,
+       ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
+       rs2=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h,
+       smso=\E[7m$<2/>, smul=\E[4m$<2/>,
+# (news517: this had :TY=sjis:. --esr)
+nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows,
+       eslok, hs,
+       cols#80, lines#30,
+       OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
+       is2=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+       tsl=\E[1$}\E[;%df, use=vt200,
+# (news517-w: this had :TY=sjis:. --esr)
+nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows,
+       eslok, hs,
+       cols#132, lines#50,
+       OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
+       is2=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
+       rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
+       tsl=\E[1$}\E[;%df, use=vt200,
+
+#### Common Desktop Environment
+#
+
+# This ships with Sun's CDE in Solaris 2.5
+# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net>
+dtterm|CDE desktop terminal,
+       am, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, lm#0, ncv@,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+       dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+       enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, home=\E[H,
+       ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
+       ind=\ED, invis=\E[8m, is2=\E F\E>\E[?1l\E[?7h\E[?45l,
+       kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+       rmam=\E[?7l, rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m,
+       sc=\E7,
+       sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+       smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ecma+color,
+
+#### Non-Unix Consoles
+#
+
+### EMX termcap.dat compatibility modes
+#
+# Keypad:      Home=\0G        Up=\0H  PrPag=\0I
+#              ka1,kh          kcuu1           kpp,ka3
+#
+#              Left=\0K        5=\0L           Right=\0M
+#              kcub1           kb2             kcuf1
+#
+#              End=\0O         Down=\0P        NxPag=\0Q
+#              kc1,kend        kcud1           kc3,knp
+#
+#              Ins=\0R         Del=\0S
+#              kich1           kdch1
+#
+# On keyboard with 12 function keys,
+#      shifted f-keys: F13-F24
+#      control f-keys: F25-F36
+#      alt f-keys:     F37-F48
+# The shift/control/alt keys do not modify each other, but alt overrides both,
+# and control overrides shift.
+#
+# Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
+# no_color_video to inform the application that standout(1), underline(2)
+# reverse(4) and invisible(64) don't work with color.
+emx-base|DOS special keys,
+       bce, bw,
+       it#8, ncv#71,
+       bel=^G, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
+       kcbt=\0^O, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
+       kdch1=\0S, kend=\0O, kf1=\0;, kf10=\0D, kf11=\0\205,
+       kf12=\0\206, kf13=\0T, kf14=\0U, kf15=\0V, kf16=\0W,
+       kf17=\0X, kf18=\0Y, kf19=\0Z, kf2=\0<, kf20=\0[, kf21=\0\\,
+       kf22=\0], kf23=\0\207, kf24=\0\210, kf25=\0\^, kf26=\0_,
+       kf27=\0`, kf28=\0a, kf29=\0b, kf3=\0=, kf30=\0c, kf31=\0d,
+       kf32=\0e, kf33=\0f, kf34=\0g, kf35=\0\211, kf36=\0\212,
+       kf37=\0h, kf38=\0i, kf39=\0j, kf4=\0>, kf40=\0k, kf41=\0l,
+       kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
+       kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
+       kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
+       use=ansi.sys,
+
+# Except for the "-emx" suffixes, these are as distributed with EMX 0.9b,
+# a Unix-style environment used on OS/2.  (Note that the suffix makes some
+# names longer than 14 characters, the nominal maximum).
+#
+# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
+ansi-emx|ANSI.SYS color,
+       am, bce, eo, mir, msgr, xon,
+       colors#8, cols#80, it#8, lines#25, pairs#64,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
+       cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
+       home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
+       kb2=\E[G, kbs=^H, kf0=\0D, kll=\0O, kspd=^Z, nel=^M^J,
+       rev=\E[5;37;41m, rmir=\E[4l, rmpch=\E[10m,
+       rmso=\E[0;44m\E[1;33m, rmul=\E[0;44m\E[1;33m, rs1=\Ec,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr0=\E[0m\E[1;33;44m, smir=\E[4h, smpch=\E[11m,
+       smso=\E[0;31;47m, smul=\E[1;31;44m, tbc=\E[3g, u8=\E[?6c,
+       u9=\E[c, use=emx-base,
+# nice colors for Emacs (white on blue, mode line white on cyan)
+ansi-color-2-emx|ANSI.SYS color 2,
+       clear=\E[0;37;44m\E[H\E[J, rev=\E[1;37;46m,
+       rmso=\E[0;37;44m, rmul=\E[0;37;44m, rs1=\Ec,
+       setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smso=\E[1;37;46m,
+       smul=\E[1;36;44m, use=ansi-emx,
+# nice colors for Emacs (white on black, mode line black on cyan)
+ansi-color-3-emx|ANSI.SYS color 3,
+       clear=\E[0;37;40m\E[H\E[J, rev=\E[1;37;46m,
+       rmso=\E[0;37;40m, rmul=\E[0;37;40m, rs1=\Ec,
+       setaf=\E[3%p1%dm, sgr0=\E[0;10m, smso=\E[1;37;46m,
+       smul=\E[0;36;40m, use=ansi-emx,
+mono-emx|stupid monochrome ansi terminal with only one kind of emphasis,
+       am,
+       cols#80, it#8, lines#24,
+       clear=\E[H\E[2J$<50>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
+       ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M,
+       kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>,
+       kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G,
+       kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=^M^J, rev=\E[7m,
+       sgr0=\E[0m,
+
+# Use this for cygwin32 (tested with beta 19.1)
+# underline is colored bright magenta
+# shifted kf1-kf12 are kf11-kf22
+cygwinB19|ansi emulation for cygwin32,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+       kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+       kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
+       kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@,
+       use=ansi.sys,
+
+# Use this for cygwin (tested with version 1.1.0).
+# I've combined pcansi and linux.  Some values of course were different and
+# I've indicated which of these were and which I used.
+# Cheers, earnie_boyd@yahoo.com
+# several changes based on running with tack and comparing with older entry -TD
+# more changes from csw:
+#   add    cbt   [backtab]
+#   remove eo    [erase overstrike with blank]
+#   change clear was \E[H\E[J  now \E[2J  (faster?)
+#   remove cols
+#   remove lines
+#   remove ncv#3 [colors collide with highlights, bitmask] not applicable
+#                to MSDOS box?
+#   add    cub   [cursor back param]
+#   add    cuf   [cursor forward param]
+#   add    cuu   [cursor up param]
+#   add    cud   [cursor down param]
+#   add    hs    [has status line]
+#   add    fsl   [return from status line]
+#   add    tsl   [go to status line]
+#   add    smacs [Start alt charset] (not sure if this works)
+#   add    rmacs [End alt charset]   (ditto)
+#   add    smcup [enter_ca_mode] (save console; thanks Corinna)
+#   add    rmcup [exit_ca_mode]  (restore console; thanks Corinna)
+#   add    kb2   [center of keypad]
+#   add    u8    [user string 8] \E[?6c
+#   add    el    [clear to end of line] \E[K
+# Notes:
+#   cnorm [make cursor normal] not implemented
+#   flash [flash] not implemented
+#   blink [blink] not implemented very usefully in cygwin? \E[5m
+#   dim   [dim] not implemented very usefully in cygwin? \E[2m
+#   cub1  [cursor back 1] typically \E[D, but ^H is faster?
+#   kNXT  [shifted next key] not implemented
+#   kPRV  [shifted prev key] not implemented
+#   khome [home key] really is \E[1~ NOT \E[H
+#   tbc   [clear tab stops] not implemented
+#   xenl  [newline ignnored after 80 cols] messes up last line? Ehud Karni
+#   smpch [Start PC charset] is \E[11m, same as smacs
+#   rmpch [End PC charset] is \E[10m, same as rmacs
+#   mir   [move in insert mode] fails in tack?
+#   bce   [back color erase] causes problems with change background color?
+#   cvvis [make cursor very visible] causes a stackdump when testing with
+#         testcurs using the output option? \E[?25h\E[?8c
+#   civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c
+#   ech   [erase characters param] broken \E[%p1%dX
+#   kcbt  [back-tab key] not implemented in cygwin?  \E[Z
+#
+# 2005/11/12 -TD
+#      Remove cbt since it does not work in current cygwin
+#      Add 'mir' and 'in' flags based on tack
+cygwin|ansi emulation for Cygwin,
+       am, hs, mir, msgr, xon,
+       colors#8, it#8, pairs#64,
+       acsc=+\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,
+       bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD,
+       cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, home=\E[H,
+       hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G,
+       kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+       kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+       kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
+       kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
+       nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+       rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
+       rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R,
+       sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr=\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,
+       sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h,
+       smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];,
+       vpa=\E[%i%p1%dd, use=vt102+enq,
+
+# I've supplied this so that you can help test new values and add other
+# features.  Cheers, earnie_boyd@yahoo.com.
+#
+# Some features are from pcansi.  The op value is from linux.  Function-keys
+# are from linux.  These have been tested not to cause problems.  xenl was in
+# this list, but DOES cause problems so it has been removed
+cygwinDBG|Debug Version for Cygwin,
+       am, eo, mir, msgr, xon,
+       colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
+       acsc=+\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,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+       cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+       flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG,
+       ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+       il1=\E[L, ind=^J, invis=\E[8m, kNXT=\E[6$, kPRV=\E[5$,
+       kb2=\E[G, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+       kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+       kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
+       kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
+       knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m,
+       rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, rmir=\E[4l,
+       rmso=\E[m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr=\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,
+       sgr0=\E[0;10m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
+       smul=\E[4m, tbc=\E[2g, vpa=\E[%i%p1%dd, use=vt102+enq,
+
+# Key definitions:
+# The encodings for unshifted arrow keys, F1-F12, Home, Insert, etc.  match the
+# encodings used by other x86 environments.  All others are invented for DJGPP.
+# Oddly enough, while several combinations of modifiers are tabulated, there is
+# none for shifted cursor keys.
+#
+#      F1                      \E[[A
+#      F2                      \E[[B
+#      F3                      \E[[C
+#      F4                      \E[[D
+#      F5                      \E[[E
+#      F6                      \E[17~
+#      F7                      \E[18~
+#      F8                      \E[19~
+#      F9                      \E[20~
+#      F10                     \E[21~
+#      F11                     \E[23~
+#      F12                     \E[24~
+#
+#      Delete                  \E[3~
+#      Down Arrow              \E[B
+#      End                     \E[4~
+#      Home                    \E[1~
+#      Insert                  \E[2~
+#      Left Arrow              \E[D
+#      Page Down               \E[6~
+#      Page Up                 \E[5~
+#      Right Arrow             \E[C
+#      Up Arrow                \E[A
+#
+#      Shift-F1                \E[25~
+#      Shift-F2                \E[26~
+#      Shift-F3                \E[27~
+#      Shift-F4                \E[28~
+#      Shift-F5                \E[29~
+#      Shift-F6                \E[30~
+#      Shift-F7                \E[31~
+#      Shift-F8                \E[32~
+#      Shift-F9                \E[33~
+#      Shift-F10               \E[34~
+#      Shift-F11               \E[35~
+#      Shift-F12               \E[36~
+#
+#      Ctrl-F1                 \E[47~
+#      Ctrl-F2                 \E[48~
+#      Ctrl-F3                 \E[49~
+#      Ctrl-F4                 \E[50~
+#      Ctrl-F5                 \E[51~
+#      Ctrl-F6                 \E[52~
+#      Ctrl-F7                 \E[53~
+#      Ctrl-F8                 \E[54~
+#      Ctrl-F9                 \E[55~
+#      Ctrl-F10                \E[56~
+#      Ctrl-F11                \E[57~
+#      Ctrl-F12                \E[58~
+#
+#      Ctrl-Delete             \E[43~
+#      Ctrl-Down Arrow         \E[38~
+#      Ctrl-End                \E[44~
+#      Ctrl-Home               \E[41~
+#      Ctrl-Insert             \E[42~
+#      Ctrl-Left Arrow         \E[39~
+#      Ctrl-Page Down          \E[46~
+#      Ctrl-Page Up            \E[45~
+#      Ctrl-Right Arrow        \E[40~
+#      Ctrl-Up Arrow           \E[37~
+#
+#      Alt-F1                  \E[59~
+#      Alt-F2                  \E[60~
+#      Alt-F3                  \E[61~
+#      Alt-F4                  \E[62~
+#      Alt-F5                  \E[63~
+#      Alt-F6                  \E[64~
+#      Alt-F7                  \E[65~
+#      Alt-F8                  \E[66~
+#      Alt-F9                  \E[67~
+#      Alt-F10                 \E[68~
+#      Alt-F11                 \E[79~
+#      Alt-F12                 \E[80~
+#
+#      Alt-Delete              \E[65~
+#      Alt-Down Arrow          \E[60~
+#      Alt-End                 \E[66~
+#      Alt-Home                \E[41~
+#      Alt-Insert              \E[64~
+#      Alt-Left Arrow          \E[61~
+#      Alt-Page Down           \E[68~
+#      Alt-Page Up             \E[67~
+#      Alt-Right Arrow         \E[62~
+#      Alt-Up Arrow            \E[59~
+#
+# Also:
+#      Alt-A                   \E[82~
+#      Alt-B                   \E[82~
+#      Alt-C                   \E[83~
+#      Alt-D                   \E[84~
+#      Alt-E                   \E[85~
+#      Alt-F                   \E[86~
+#      Alt-G                   \E[87~
+#      Alt-H                   \E[88~
+#      Alt-I                   \E[89~
+#      Alt-J                   \E[90~
+#      Alt-K                   \E[91~
+#      Alt-L                   \E[92~
+#      Alt-M                   \E[93~
+#      Alt-N                   \E[94~
+#      Alt-O                   \E[95~
+#      Alt-P                   \E[96~
+#      Alt-Q                   \E[97~
+#      Alt-R                   \E[98~
+#      Alt-S                   \E[99~
+#      Alt-T                   \E[100~
+#      Alt-U                   \E[101~
+#      Alt-V                   \E[102~
+#      Alt-W                   \E[103~
+#      Alt-X                   \E[104~
+#      Alt-Y                   \E[105~
+#      Alt-Z                   \E[106~
+djgpp|ansi emulation for DJGPP alpha,
+       am, bce, msgr, xhp, xon, xt,
+       colors#8, it#8, pairs#64,
+       acsc=+\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,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
+       clear=\E[H\E[J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+       home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+       indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
+       kend=\E[4~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=^M^J,
+       op=\E[37;40m, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmso=\E[m,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%e;25%;%?%p6%t;1%;%?%p7%t;8%;m,
+       sgr0=\E[m, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+
+djgpp203|Entry for DJGPP 2.03,
+       OTbs, am,
+       cols#80, it#8, lines#25,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H,
+       kcud1=^J, nel=^M^J,
+
+djgpp204|Entry for DJGPP 2.04,
+       OTbs, am, AX,
+       colors#8, cols#80, it#8, lines#25, ncv#3, pairs#64,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
+       clear=\E[H\E[2J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD,
+       cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cuu1=\E[A, cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P,
+       dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+       home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+       il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[3~, kf0=\E[21~, kf1=\E[[A, kf10=\E[21~, kf2=\E[[B,
+       kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
+       kll=\E[4~, knp=\E[6~, kpp=\E[5~, nel=^M^J, rev=\E[7m,
+       ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, setab=\E[4%p1%dm,
+       setaf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+
+# This is tested using U/Win's telnet.  Scrolling is omitted because it is
+# buggy.  Another odd bug appears when displaying "~" in alternate character
+# set (the emulator spits out error messages).  Compare with att6386 -TD
+uwin|U/Win 3.2 console,
+       am, eo, in, msgr, xenl, xon,
+       colors#8, it#8, ncv#58, pairs#64,
+       acsc=+\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,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
+       ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH,
+       ich=\E[%p1%d@, ich1=\E[@, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[Y, kf1=\EOP,
+       kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ, kf3=\EOR,
+       kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX,
+       khome=\E[H, kich1=\E[@, nel=^M^J, op=\E[39;49m, rc=\E8,
+       rev=\E[7m, rmacs=\E[10m, rmir=\E[4l, rmpch=\E[10m,
+       rmso=\E[27m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
+       smacs=\E[11m, smir=\E[4h, smpch=\E[11m, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
+
+# This entry fits the Windows NT console when the _POSIX_TERM environment
+# variable is set to 'on'.  While the Windows NT POSIX console is seldom used,
+# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP
+# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating
+# systems is not, and (surprise!) they match very well.
+#
+# See:  MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up
+# VI POSIX Editor for Windows NT 3.1".  True to Microsoft form, not only
+# are the installation instructions a pile of mind-numbing bureaucratese,
+# but the termcap entry is actually broken and unusable as given; the :do:
+# capability is misspelled "d".
+#
+# To use this, you need to a bunch of environment variables:
+#
+# SET _POSIX_TERM=on
+# SET TERM=ansi
+# SET TERMCAP=location of termcap file in POSIX file format
+# which is case-sensitive.
+# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap
+# SET TMP=//C/TEMP
+#
+# Important note: setting the TMP environment variable in POSIX style renders
+# it incompatible with a lot of other applications, including Visual C++. So
+# you should have a separate command window just for vi. All the other
+# variables may be permanently set in the Control Panel\System applet.
+#
+# You can find out more about the restrictions of this facility at
+# <http://www.nentug.org/unix-to-nt/ntposix.htm>.
+#
+# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997
+ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode,
+       am, bw, msgr,
+       cols#80, it#8, lines#25,
+       bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+       home=\E[H, ht=^I, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[V,
+       kcuf1=\E[C, kcuu1=\E[A, nel=\r\E[S, rc=\E[u, rev=\E[7m,
+       ri=\E[T, rmso=\E[m, sc=\E[s, sgr0=\E[0m, smso=\E[7m,
+# From: jew@venus.sunquest.com
+# Date: 19 Feb 93 23:41:07 GMT
+# Here's  a  combination of  ansi and  vt100 termcap
+# entries   that  works  nearly   perfectly  for  me
+# (Gateway 2000 Handbook and Microsoft Works 3.0):
+pcmw|PC running Microsoft Works,
+       am, xenl,
+       cols#80, it#8, lines#24, vt#3,
+       bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
+       clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J,
+       cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
+       cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
+       ht=^I, hts=\EH$<2/>, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED$<5/>,
+       rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/lib/tabset/vt100,
+       ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr0=\E[m$<2/>, smso=\E[7m$<2/>, smul=\E[4m$<2/>,
+       tbc=\E[3g$<2/>,
+
+# From: Federico Bianchi
+# This is the entry for the OpenNT terminal.
+# The ntconsole name is for backward compatability.
+# This is for OpenNT 2.0 and later.
+# Later OpenNT was renamed to Interix.
+#
+# Presently it is distributed by Microsoft as Services For Unix (SFU).
+# The 3.5 beta contains ncurses 4.2 (that is header files and executables,
+# the documentation dates from 1.9.9e) -TD
+
+interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color,
+       am, bw, msgr,
+       colors#8, cols#80, lines#25, ncv#3, pairs#64,
+       acsc=`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~q\304r\362s_t\303u\264v\301w\302x\263y\371z\372{\373|\374}\375~\376.\031-\030\,\021+^P0\333p\304r\304y\363z\362{\343|\330}\234,
+       bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[2J, cub=\E[%p1%dD,
+       cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
+       home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+       indn=\E[%p1%dS, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[M, kend=\E[U, kf0=\EFA,
+       kf1=\EF1, kf10=\EFA, kf11=\EFB, kf12=\EFC, kf13=\EFD,
+       kf14=\EFE, kf15=\EFF, kf16=\EFG, kf17=\EFH, kf18=\EFI,
+       kf19=\EFJ, kf2=\EF2, kf20=\EFK, kf21=\EFL, kf22=\EFM,
+       kf23=\EFN, kf24=\EFO, kf25=\EFP, kf26=\EFQ, kf27=\EFR,
+       kf28=\EFS, kf29=\EFT, kf3=\EF3, kf30=\EFU, kf31=\EFV,
+       kf32=\EFW, kf33=\EFX, kf34=\EFY, kf35=\EFZ, kf36=\EFa,
+       kf37=\EFb, kf38=\EFc, kf39=\EFd, kf4=\EF4, kf40=\EFe,
+       kf41=\EFf, kf42=\EFg, kf43=\EFh, kf44=\EFi, kf45=\EFj,
+       kf46=\EFk, kf47=\EFm, kf48=\EFn, kf49=\EFo, kf5=\EF5,
+       kf50=\EFp, kf51=\EFq, kf52=\EFr, kf53=\EFs, kf54=\EFt,
+       kf55=\EFu, kf56=\EFv, kf57=\EFw, kf58=\EFx, kf59=\EFy,
+       kf6=\EF6, kf60=\EFz, kf61=\EF+, kf62=\EF-,
+       kf63=\EF\014 kf64=\EF$, kf7=\EF7, kf8=\EF8, kf9=\EF9,
+       kich1=\E[L, kll=\E[U, knp=\E[T, kpp=\E[S, ll=\E[U, nel=^M^J,
+       op=\E[m, rc=\E[u, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
+       rmcup=\E[2b\E[u\r\E[K, rmso=\E[m, rmul=\E[m, rs1=\Ec,
+       sc=\E[s, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       setb=\E[%p1%{40}%+%dm, setf=\E[%p1%{30}%+%dm,
+       sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[1m, smul=\E[4m,
+
+opennt-35|ntconsole-35|OpenNT-term35 compatible with color,
+       lines#35, use=opennt,
+
+opennt-50|ntconsole-50|OpenNT-term50 compatible with color,
+       lines#50, use=opennt,
+
+opennt-60|ntconsole-60|OpenNT-term60 compatible with color,
+       lines#60, use=opennt,
+
+opennt-100|ntconsole-100|OpenNT-term100 compatible with color,
+       lines#100, use=opennt,
+
+# OpenNT wide terminals
+opennt-w|opennt-25-w|ntconsole-w|ntconsole-25-w|OpenNT-term-w compat with color,
+       cols#125, use=opennt,
+
+opennt-35-w|ntconsole-35-w|OpenNT-term35-w compatible with color,
+       lines#35, use=opennt-w,
+
+opennt-50-w|ntconsole-50-w|OpenNT-term50-w compatible with color,
+       lines#50, use=opennt-w,
+
+opennt-60-w|ntconsole-60-w|OpenNT-term60-w compatible with color,
+       lines#60, use=opennt-w,
+
+opennt-w-vt|opennt-25-w-vt|ntconsole-w-vt|ntconsole-25-w-vt|OpenNT-term-w-vt compat with color,
+       cols#132, use=opennt,
+
+# OpenNT terminals with no smcup/rmcup (names match termcap entries)
+interix-nti|opennt-nti|opennt-25-nti|ntconsole-25-nti|OpenNT-nti compatible with color,
+       rmcup@, smcup@, use=opennt,
+
+opennt-35-nti|ntconsole-35-nti|OpenNT-term35-nti compatible with color,
+       lines#35, use=opennt-nti,
+
+opennt-50-nti|ntconsole-50-nti|OpenNT-term50-nti compatible with color,
+       lines#50, use=opennt-nti,
+
+opennt-60-nti|ntconsole-60-nti|OpenNT-term60-nti compatible with color,
+       lines#60, use=opennt-nti,
+
+opennt-100-nti|ntconsole-100-nti|OpenNT-term100-nti compatible with color,
+       lines#100, use=opennt-nti,
+
+######## COMMON TERMINAL TYPES
+#
+# This section describes terminal classes and maker brands that are still
+# quite common, but have proprietary command sets not blessed by ANSI.
+#
+
+#### Altos
+#
+# Altos made a moderately successful line of UNIX boxes.  In 1990 they were
+# bought out by Acer, a major Taiwanese manufacturer of PC-clones.
+# Acer has a web site at http://www.acer.com.
+#
+# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993
+# His comments suggest they were shipped with the system.
+#
+
+# (altos2: had extension capabilities
+#      :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
+#      :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
+#      :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
+#      :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
+#      :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
+#      :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\
+#      :HL=^AP\r:SP=\E[i:\
+#      :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
+#      :LO=\E[0q:LC=\E[5q:LL=\E[6q:\
+# Comparison with the k* capabilities makes it obvious that the c* things are
+# shift keys.  I have renamed them to keys 32 and up accordingly.  Also,
+# :sr: was given as a boolean-- esr)
+altos2|alt2|altos-2|altos II,
+       cols#80, it#8, lines#24, xmc#0,
+       clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[1B, cuf1=\E[1C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch1=\E[P, dl1=\E[M,
+       ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
+       if=/usr/share/tabset/vt100, il1=\E[L, ind=^J,
+       is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kDL=^Am\r,
+       kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^AM\r, kel=^AN\r,
+       kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
+       kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
+       kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
+       kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r, khome=\E[f, kil1=^AJ\r, kind=^AO\r,
+       nel=^M^J, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+       smam=\E[?7h, smso=\E[7m, smul=\E[4m,
+# (altos3: had extension capabilities
+#      :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
+#      :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
+#      :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
+#      :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
+#      :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
+#      :HL=^AP\r:SP=\E[i:\
+#      :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
+altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V,
+       blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2,
+altos4|alt4|altos-4|altos IV,
+       use=wy50,
+# (altos7: had extension capabilities:
+#      :GG#0:GI=\EH8:GF=\EH7:\
+#      :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
+#      :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
+#      :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
+#      :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
+# Comparison with the k* capabilities makes it obvious that the c* things are
+# shift keys.  I have renamed them to keys 32 and up accordingly.  I have
+# also made this entry relative to adm12 in order to give it an <sgr>. The
+# <invis> imported by use=adm+sgr may work, let me know. -- esr)
+altos7|alt7|altos VII,
+       am, mir,
+       cols#80, lines#24, xmc#0,
+       acsc=j5k3l2m1n8q\:t4u9v=w0x6, blink=\EG2, bold=\EGt,
+       clear=\E+^^, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dim=\EGp, dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, il1=\EE,
+       ind=^J, invis=\EG1,
+       is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2, kDL=^Am\r,
+       kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=^H,
+       kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=^AM\r, kel=^AN\r,
+       kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
+       kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
+       kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
+       kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r, khome=^^, kil1=^AJ\r, kind=^AO\r,
+       knp=\EK, kpp=\EJ, mc4=\EJ, mc5=\Ed#, nel=^M^J, ri=\Ej,
+       rmir=\Er, smir=\Eq, use=adm+sgr,
+altos7pc|alt7pc|altos PC VII,
+       kend=\ET, use=altos7,
+
+#### Hewlett-Packard (hp)
+#
+#      Hewlett-Packard
+#      8000 Foothills Blvd
+#      Roseville, CA 95747
+#      Vox: 1-(916)-785-4363   (Technical response line for VDTs)
+#           1-(800)-633-3600   (General customer support)
+#
+#
+# As of March 1998, HP no longer has any terminals in production.
+# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being
+# supported (they still have parts). So are the 2392a and 2394a.
+# See the WORKSTATION CONSOLES section for the 700s.
+#
+
+# Generic HP terminal - this should (hopefully) work on any HP terminal.
+hpgeneric|hp|hewlett-packard generic terminal,
+       OTbs, OTpt, am, da, db, mir, xhp,
+       cols#80, lines#24, lm#0, vt#6,
+       bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\E&a%p2%dc%p1%dY$<6>, cuu1=\EA, dch1=\EP, dl1=\EM,
+       ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL,
+       ind=^J, kbs=^H, kcbt=\Ei, rmir=\ER, rmso=\E&d@, rmul=\E&d@,
+       sgr0=\E&d@, smir=\EQ, smso=\E&dJ, smul=\E&dD, tbc=\E3,
+       vpa=\E&a%p1%dY,
+
+hp110|hewlett-packard model 110 portable,
+       lines#16, use=hpgeneric,
+
+hp+pfk+cr|hp function keys with CR,
+       kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r,
+       kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r,
+
+hp+pfk-cr|hp function keys w/o CR,
+       kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev,
+       kf8=\Ew,
+
+# The hp2621s use the same keys for the arrows and function keys,
+# but not separate escape sequences. These definitions allow the
+# user to use those keys as arrow keys rather than as function
+# keys.
+hp+pfk+arrows|hp alternate arrow definitions,
+       kcub1=\Eu\r, kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1@,
+       kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, khome=\Ep\r, kind=\Er\r,
+       kll=\Eq\r, kri=\Es\r,
+
+hp+arrows|hp arrow definitions,
+       kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
+       kind=\ES, kll=\EF, kri=\ET,
+
+# Generic stuff from the HP 262x series
+#
+hp262x|HP 262x terminals,
+       xhp,
+       blink=\E&dA, dch1=\EP$<2>, ed=\EJ, ht=\011$<2>, ind=\ES,
+       invis=\E&dS, ip=$<2>, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
+       kich1=\EQ, kil1=\EL, kind=\ES, knp=\EU, kpp=\EV, kri=\ET,
+       krmir=\ER, rev=\E&dB, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
+       sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c,
+       sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, smul=\E&dD,
+
+# Note: no <home> on HPs since that homes to top of memory, not screen.
+# Due to severe 2621 braindamage, the only way to get the arrow keys to
+# transmit anything at all is to turn on the function key labels
+# with <smkx>, and even then the user has to hold down shift!
+# The default 2621 turns off the labels except when it has to to
+# enable the function keys. If your installation prefers labels
+# on all the time, or off all the time (at the "expense" of the
+# function keys), use 2621-nl or 2621-wl.
+#
+# Note: there are newer ROMs for 2621's that allow you to set
+# strap A so the regular arrow keys xmit \EA, etc, as with the
+# 2645. However, even with this strap set, the terminal stops
+# xmitting if you reset it, until you unset and reset the strap!
+# Since there is no way to set/unset the strap with an escape
+# sequence, we don't use it in the default.
+# If you like, you can use 2621-ba (brain-damaged arrow keys).
+hp2621-ba|2621 w/new rom and strap A set,
+       rmkx@, smkx@, use=hp+arrows, use=hp2621,
+
+# hp2621 with function labels. Most of the time they are off,
+# but inside vi, the function key labels appear. You have to
+# hold down shift to get them to xmit.
+hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels,
+       is2=\E&jA\r, rmkx=\E&jA, use=hp2621-fl,
+hp2621-fl|hp 2621,
+       xhp@, xon,
+       pb#19200,
+       cbt=\Ei, cup=\E&a%p2%dc%p1%dY, dch1=\EP$<2>, ht=\011$<2>,
+       ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, rmso=\E&d@, rmul=\E&d@,
+       sgr0=\E&d@, smkx=\E&jB, smso=\E&dD, smul=\E&dD,
+       use=hp+pfk+cr, use=hpgeneric,
+
+# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p
+hp2621p|hp 2621 with printer,
+       mc4=\E&p13C, mc5=\E&p11C, use=hp2621,
+
+hp2621p-a|hp2621p with fn as arrows,
+       use=hp+pfk+arrows, use=hp2621p,
+
+# hp2621 with k45 keyboard
+hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard,
+       kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+       khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621,
+
+# 2621 using all 48 lines of memory, only 24 visible at any time.
+hp2621-48|48 line 2621,
+       lines#48,
+       cup=\E&a%p2%dc%p1%dR, home=\EH, vpa=\E&a%p1%dR,
+       use=hp2621,
+
+# 2621 with no labels ever. Also prevents vi delays on escape.
+hp2621-nl|hp 2621 with no labels,
+       kcub1@, kcud1@, kcuf1@, kcuu1@, khome@, rmkx@, smkx@,
+       use=hp2621-fl,
+
+# Needed for UCB ARPAVAX console, since lsi-11 expands tabs
+# (wrong).
+#
+hp2621-nt|hp 2621 w/no tabs,
+       ht@, use=hp2621,
+
+# Hp 2624 B with 4 or 10 pages of memory.
+#
+# Some assumptions are made with this entry. These settings are
+# NOT set up by the initialization strings.
+#
+# Port Configuration
+#      RecvPace=Xon/Xoff
+#      XmitPace=Xon/Xoff
+#      StripNulDel=Yes
+#
+# Terminal Configuration
+#      InhHndShk=Yes
+#      InhDC2=Yes
+#      XmitFnctn(A)=No
+#      InhEolWrp=No
+#
+# Note: the 2624 DOES have a true <home>, believe it or not!
+#
+# The 2624 has an "error line" to which messages can be sent.
+# This is CLOSE to what is expected for a "status line". However,
+# after a message is sent to the "error line", the next carriage
+# return is EATEN and the "error line" is turned back off again!
+# So I guess we can't define <hs>, <eslok>, <wsl>, <dsl>, <fsl>, <tsl>.
+#
+# This entry supports emacs (and any other program that uses raw
+# mode) at 4800 baud and less. I couldn't get the padding right
+# for 9600.
+#
+# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr)
+hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B,
+       da, db,
+       lm#96,
+       flash=\E&w13F$<66/>\E&w12F$<66/>\E&w13F$<66/>\E&w12F,
+       use=hp+labels, use=scrhp,
+
+# This hp2626 entry does not use any of the fancy windowing stuff
+# of the 2626.
+#
+# Indeed, terminfo does not yet handle such stuff. Since changing
+# any window clears memory, it is probably not possible to use
+# this for screen opt.
+#
+# ed is incredibly slow most of the time - I am guessing at the
+# exact padding. Since the terminal uses xoff/xon this is intended
+# only for cost computation, so that the terminal will prefer el
+# or even dl1 which is probably faster!
+#
+# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only
+# extra slow on the last line of the window.
+#
+# The padding probably should be changed.
+#
+hp2626|hp2626a|hp2626p|hp 2626,
+       da, db,
+       lm#0, pb#19200,
+       ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>,
+       is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk+cr,
+       use=hp+labels, use=scrhp,
+
+# This entry is for sysline. It allocates a 23 line window with
+# a 115 line workspace for regular use, and a 1 line window for
+# the status line.
+#
+# This assumes port 2 is being used.
+# Turn off horizontal line, Create ws #1 with 115 lines,
+# Create ws #2 with 1 line, Create window #1 lines 1-23,
+# Create window #2 lines 24-24, Attach cursor to workspace #1.
+# Note that this clears the tabs so it must be done by tset before
+# it sets the tabs.
+#
+hp2626-s|hp 2626 using only 23 lines,
+       eslok, hs,
+       lines#23,
+       fsl=\E&d@\E&w7f2p1I\E&w4f1I,
+       is1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r,
+       tsl=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC, use=hp2626,
+# Force terminal back to 24 lines after being 23.
+hp2626-ns|hp 2626 using all 24 lines,
+       is1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r,
+       use=hp2626,
+# Various entries useful for small windows on 2626.
+hp2626-12|hewlett-packard 2626 12 lines,
+       lines#12, use=hp2626,
+hp2626-12x40|hewlett-packard 2626 12 lines 40 columns,
+       cols#40, lines#12, use=hp2626,
+hp2626-x40|hewlett-packard 2626 40 columns,
+       cols#40, use=hp2626,
+hp2626-12-s|hewlett-packard 2626 11 lines plus status,
+       lines#11, use=hp2626-s,
+
+#
+# hp2627 color tubes from University of Wisconsin
+#
+hp2627a-rev|hp 2627 with reverse video colors,
+       cr=^M, cud1=^J, ht=^I, ind=^J,
+       is2=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r,
+       kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmul=\E&v0S\E&d@,
+       smul=\E&dD\E&v1S, use=hp2621-nl,
+hp2627a|hp 2627 color terminal with no labels,
+       cr=^M, cud1=^J, ht=^I, ind=^J,
+       is2=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r,
+       kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmso=\E&v0S,
+       rmul=\E&v0S\E&d@, smso=\E&v2S, smul=\E&dD\E&v1S,
+       use=hp2621-nl,
+hp2627c|hp 2627 color (cyan) terminal with no labels,
+       cr=^M, cud1=^J, ht=^I, ind=^J,
+       is2=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r,
+       kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, use=hp2627a,
+
+# hp2640a doesn't have the Y cursor addressing feature, and C is
+# memory relative instead of screen relative, as we need.
+#
+hp2640a|hp 2640a,
+       cup@, rmkx@, smkx@, use=hp2645,
+
+hp2640b|hp2644a|hp 264x series,
+       rmkx@, smkx@, use=hp2645,
+
+# (hp2641a: removed unknown :gu: -- esr)
+hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry,
+       am, da, db, mir, xhp,
+       cols#80, lines#24,
+       bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
+       ed=\EJ, el=\EK, hpa=\E&a%p1%2dC, ht=^I,
+       if=/usr/share/tabset/std, il1=\EL, ind=^J,
+       is2=\EE$<500/>, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
+       rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
+       vpa=\E&a%p1%2dY,
+
+# This terminal should be used at 4800 baud or less. It needs padding for
+# plain characters at 9600, I guessed at an appropriate cr delay.  It really
+# wants ^E/^F handshaking, but that doesn't work well even if you write
+# software to support it.
+hp2645|hp45|HP 2645 series,
+       pb#9600,
+       blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
+       ked=\EJ, kel=\EK, khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL,
+       kind=\ES, knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, rev=\E&dB,
+       rmkx=\E&s0A,
+       sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c,
+       sgr0=\E&d@, smkx=\E&s1A, smul=\E&dD, use=hpgeneric,
+# You should use this terminal at 4800 baud or less.
+hp2648|hp2648a|HP 2648a graphics terminal,
+       clear=\EH\EJ$<50>, cup=\E&a%p2%dc%p1%dY$<20>,
+       dch1=\EP$<7>, ip=$<5>, use=hp2645,
+
+# The HP 150 terminal is a fairly vanilla HP terminal, with the
+# clreol standout problem. It also has graphics capabilities and
+# a touch screen, which we don't describe here.
+hp150|hewlett packard Model 150,
+       OTbs, use=hp2622,
+
+# HP 2382a terminals, "the little ones." They don't have any
+# alternate character set support and sending out ^N/^O will
+# leave the screen blank.
+hp2382a|hp2382|hewlett packard 2382a,
+       da, db,
+       lh#1, lm#48,
+       acsc@,
+       pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
+       rmacs@,
+       sgr=\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,
+       sgr0=\E&d@, smacs@, use=hp+labels, use=scrhp,
+
+hp2621-a|hp2621a-a|hp2621 with fn as arrows,
+       use=hp+pfk+arrows, use=hp2621-fl,
+
+# newer hewlett packard terminals
+
+newhpkeyboard|generic entry for HP extended keyboard,
+       kbs=^H, kcbt=\Ei, kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
+       kich1=\EQ, kil1=\EL, kind=\ET, kll=\EF, knp=\EU, kpp=\EV,
+       kri=\ES, krmir=\ER, rmkx=\E&s0A, smkx=\E&s1A,
+       use=hp+pfk-cr,
+
+newhp|generic entry for new hewlett packard terminals,
+       am, bw, mir, xhp, xon,
+       cols#80, lines#24, pb#4800,
+       acsc=2[3@4>5I9(\:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X\:Y+Z*dHjGkTlRmFn/q\,t5u6v8w7x.,
+       bel=^G, blink=\E&dA, bold=\E&dF, cbt=\Ei, cr=^M, cub1=^H,
+       cud1=^J, cuf1=\EC, cuu1=\EA, dch1=\EP$<2>, dim=\E&dH,
+       dl1=\EM, ed=\EJ, el=\EK, ht=\011$<2>, hts=\E1, il1=\EL, ind=^J,
+       invis=\E&dS, ip=$<2>, is1=\E&jB$<8>, nel=^M^J,
+       pfkey=\E&f0a%p1%dk0d%p2%l%dL%p2%s,
+       pfloc=\E&f1a%p1%dk0d%p2%l%dL%p2%s,
+       pfx=\E&f2a%p1%dk0d%p2%l%dL%p2%s, rev=\E&dB, ri=\ET,
+       rmacs=^O, rmir=\ER, rmso=\E&d@, rmul=\E&d@, rs1=\Eg,
+       sgr=\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%;,
+       sgr0=\E&d@\017, smacs=^N, smir=\EQ, smso=\E&dJ, smul=\E&dD,
+       tbc=\E3, use=newhpkeyboard,
+
+memhp|memory relative addressing for new HP ttys,
+       vt#6,
+       clear=\EH\EJ$<40>, cub=\E&a-%p1%dC, cud=\E&a+%p1%dR,
+       cuf=\E&a+%p1%dC, cup=\E&a%p1%dr%p2%dC, cuu=\E&a-%p1%dR,
+       home=\EH, hpa=\E&a%p1%dC, ll=\E&a23R\r,
+       mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dR, use=newhp,
+
+scrhp|screen relative addressing for new HP ttys,
+       clear=\E&a0c0Y\EJ$<40>, cub=\E&a-%p1%dC,
+       cud=\E&a+%p1%dR, cuf=\E&a+%p1%dC,
+       cup=\E&a%p1%dy%p2%dC$<10>, cuu=\E&a-%p1%dR,
+       home=\E&a0y0C, hpa=\E&a%p1%dC, ll=\E&a0y0C\EA,
+       mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dY, use=newhp,
+
+# (hp+labels: added label values from a BRL termcap -- esr)
+hp+labels|"standard" label info for new HP ttys,
+       lh#2, lw#8, nlab#8,
+       lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8,
+       pln=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
+       rmln=\E&j@, smln=\E&jB,
+
+hp+printer|"standard" printer info for HP ttys,
+       ff=\E&p4u0C, mc0=\EH\E&p4dF, mc4=\E&p13C, mc5=\E&p11C,
+
+
+# The new hp2621b is kind of a cross between the old 2621 and the
+# new 262x series of machines. It has dip-switched options.
+# The firmware has a bug in it such that if you give it a null
+# length label, the following character is eaten!
+hp2621b|hp 2621b with old style keyboard,
+       lh#1, lm#48, lw#8, nlab#8,
+       kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
+       kind=\ET, kll=\EF, kri=\ES,
+       pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r,
+       smln=\E&jB, use=hp2621,
+
+hp2621b-p|hp 2621b with printer,
+       use=hp+printer, use=hp2621b,
+
+# hp2621b - new 2621b with new extended keyboard
+# these are closer to the new 26xx series than the other 2621b
+hp2621b-kx|hp 2621b with extended keyboard,
+       use=newhpkeyboard, use=hp2621b,
+
+hp2621b-kx-p|hp 2621b with new keyboard & printer,
+       use=hp+printer, use=hp2621b-kx,
+
+# Some assumptions are made in the following entries.
+# These settings are NOT set up by the initialization strings.
+#
+#    Port Configuration
+# RecvPace=Xon/Xoff    XmitPace=Xon/Xoff       StripNulDel=Yes
+#
+#    Terminal Configuration
+# InhHndShk(G)=Yes     InhDC2(H)=Yes
+# XmitFnctn(A)=No              InhEolWrp=No
+#
+#
+# Hp 2622a & hp2623a display and graphics terminals
+#
+hp2622|hp2622a|hp 2622,
+       da, db,
+       lm#0, pb#19200,
+       is2=\E&dj@\r, use=hp+pfk+cr, use=hp+labels, use=scrhp,
+
+# The 2623 is a 2622 with extra graphics hardware.
+hp2623|hp2623a|hp 2623,
+       use=hp2622,
+
+hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer,
+       use=hp+printer, use=hp2624,
+
+# The hewlett packard B can have an optional extra 6 pages of memory.
+hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory,
+       lm#240, use=hp2624,
+
+hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer,
+       lm#240, use=hp2624b-p,
+
+# Color manipulations for HP terminals
+hp+color|hp with colors,
+       ccc,
+       colors#16, ncv#17, pairs#7,
+       initp=\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,
+       oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I,
+       op=\E&v0S, scp=\E&v%p1%dS,
+
+# <is2> sets the screen to be 80 columns wide
+hp2397a|hp2397|hewlett packard 2397A color terminal,
+       is2=\E&w6f80X, use=memhp, use=hp+labels, use=hp+color,
+
+#  HP 700/44 Setup parameters:
+# Terminal Mode                HP-PCterm
+# Inhibit Auto Wrap    NO
+# Status Line          Host Writable
+# PC Character Set     YES
+# Twenty-Five Line Mode        YES
+# XON/XOFF             @128 or 64 (sc)
+# Keycode Mode                 NO   or YES (sc)
+# Backspace Key                BS or BS/DEL
+#
+# <is2>        sets pcterm; autowrap; 25 lines; pc char set; prog DEL key;
+# \E\\? does not turn off keycode mode
+# <smsc>       sets alternate start/stop; keycode on
+hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode,
+       am, eo, xenl, xon,
+       cols#80, lines#25,
+       acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+       bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[2J\E[H,
+       cnorm=\E[?25h, cr=^M, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+       ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
+       ind=^J,
+       is2=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\,
+       kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
+       kf2=\E[18~, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, kf6=\E[23~,
+       kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khome=\E[1~, knp=\E[6~,
+       kpp=\E[5~, rmam=\E[?7l,
+       rmsc=\E[>11l\EP1**x0/11;1/13\E[m\E\\, rmso=\E[m,
+       rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
+       smsc=\E[>11h\EPO**x0/65;1/67\E\\$<250>, smso=\E[7m,
+       smul=\E[4m, xoffc=g, xonc=e,
+#
+# (hp2392: copied <rmir> here from hpex -- esr)
+hp2392|239x series,
+       cols#80,
+       cbt=\Ei, cup=\E&a%p1%dy%p2%dC, kf1=\Ep\r, kf2=\Eq\r,
+       kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r,
+       kf8=\Ew\r, khome=\Eh, kind=\EU, knp=\Eu, kpp=\Ev, kri=\EV,
+       rmir=\ER, rmul=\E&d@, smir=\EQ, smul=\E&dD, vpa=\E&a%p1%dY,
+       use=hpsub,
+
+hpsub|hp terminals -- capability subset,
+       am, da, db, mir, xhp, xon,
+       lines#24,
+       bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+       cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC,
+       ht=^I, if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J,
+       is2=\E&s1A\E<\E&k0\\, kbs=^H, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, khome=\Eh, rmkx=\E&s0A, rmso=\E&d@,
+       sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB,
+
+# hpex:
+#      May be used for most 24 x 80 hp terminals,
+# but has no padding added, so may allow runover in some terminals at high
+# baud rates.  Will not work for hp2640a or hp2640b terminals, hp98x6 and
+# hp98x5 terminal emulators or hp98x6 consoles.
+#      Adds xy-cursor addressing, vertical cursor addressing, home,
+# last line, and underline capabilities.
+#
+# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:",
+# moved <rmir> here from hpsub -- esr)
+hpex|hp extended capabilites,
+       cr=^M, cud1=^J, cup=\E&a%p1%dy%p2%dC, ht=^I, ind=^J, kbs=^H,
+       kcub1=^H, kcud1=^J, nel=^M^J, rmir=\ER, rmul=\E&d@, smir=\EQ,
+       smul=\E&dD, vpa=\E&a%p1%dY, use=hpsub,
+
+# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996
+hp2|hpex2|hewlett-packard extended capabilities newer version,
+       am, da, db, mir, xhp,
+       cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, xmc#0,
+       bel=^G, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
+       cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
+       dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
+       il1=\EL, ind=^J, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
+       ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
+       kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
+       kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
+       krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
+       pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
+       pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
+       pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
+       pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rmir=\ER, rmkx=\E&s0A,
+       rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
+       sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
+       sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smln=\E&jB, smso=\E&dB,
+       smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+
+# HP 236 console
+# From: <ddavis@ic.berkeley.edu>
+hp236|hp236 internal terminal emulator,
+       OTbs, am,
+       cols#80, lines#24,
+       clear=\EF, cnorm=\EDE, cub1=^H,
+       cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\EDB,
+       dch1=\EJ, dl1=\EH, el=\EK, ich1=\EI, il1=\EG, rmso=\ECI,
+       sgr0=\ECI, smso=\EBI,
+
+# This works on a hp300 console running Utah 4.3 BSD
+# From: Craig Leres <leres@okeeffe.berkeley.edu>
+hp300h|HP Catseye console,
+       OTbs, am, da, db, mir, xhp,
+       cols#128, lines#51, lm#0, xmc#0,
+       bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
+       cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
+       dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I,
+       if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J, kbs=^H,
+       kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
+       rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@,
+       smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, tbc=\E3,
+       vpa=\E&a%p1%dY,
+# From: Greg Couch <gregc@ernie.berkeley.edu>
+hp9837|hp98720|hp98721|HP 9000/300 workstations,
+       OTbs, am, da, db, mir, xhp,
+       cols#128, it#8, lines#46, lm#0,
+       bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cub1=^H, cud1=\EB,
+       cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
+       dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
+       il1=\EL, ind=^J, is2=\E&v0m1b0i&j@, kbs=^H, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
+       ked=\EJ, kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL, knp=\EU,
+       kpp=\EV, rmir=\ER, rmkx=\E&s0A, rmso=\E&v0S, rmul=\E&d@,
+       sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&v5S, smul=\E&dD,
+       tbc=\E3, vpa=\E&a%p1%dY,
+# HP 9845 desktop computer from BRL
+# (hp9845: removed unknown capability :gu: -- esr)
+hp9845|HP 9845,
+       OTbs, am, da, db, eo, mir, xhp,
+       cols#80, lines#21,
+       OTbc=\ED, clear=\EH\EJ, cuf1=\EC, cup=\E&a%p2%2dc%p1%2dY,
+       cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK,
+       if=/usr/share/tabset/std, il1=\EL, rmir=\ER, rmso=\E&d@,
+       smir=\EQ, smso=\E&dB,
+# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90
+# (hp98550: replaced /usr/share/tabset/9837 with std because <it#8>,<hts=\E1>;
+# added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr)
+hp98550|hp98550a|HP 9000 Series 300 color console,
+       OTbs, am, da, db, mir, xhp,
+       cols#128, it#8, lines#49, lm#0,
+       acsc=, bel=^G, blink=\E&dA, bold=\E&dJ, cbt=\Ei, civis=\E*dR,
+       clear=\EH\EJ, cnorm=\E*dQ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, dim=\E&dH,
+       dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
+       if=/usr/share/tabset/std, il1=\EL, ind=^J, invis=\E&ds,
+       kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
+       kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
+       khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
+       knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, rev=\E&dJ,
+       rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
+       sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smso=\E&dJ,
+       smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+# From: Victor Duchovni <vic@fine.princeton.edu>
+# (hp700-wy: removed obsolete ":nl=^J:";
+# replaced /usr/share/tabset/hp700-wy with std because <it#8>,<hts=\E1> -- esr)
+hp700-wy|HP700/41 emulating wyse30,
+       OTbs, am, bw, mir, msgr,
+       cols#80, it#8, lines#24, xmc#1,
+       cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\EY, el=\ET$<10/>, home=^^, ht=^I, hts=\E1,
+       if=/usr/share/tabset/stdcrt, il1=\EE$<0.7*/>,
+       is1=\E~"\EC\Er\E(\EG0\003\E`9\E`1, kbs=\177, kcbt=\EI,
+       kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, ked=\EY,
+       kel=\ET, khome=^^, khts=\EI, kich1=\Eq, krmir=\Er, ll=^^^K,
+       ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>,
+       sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>,
+       smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c,
+hp70092|hp70092a|hp70092A|HP 700/92,
+       am, da, db, xhp,
+       cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8,
+       acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA,
+       bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H,
+       cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA,
+       dch1=\EP, dim=\E&dH, dl1=\EM, el=\EK, hpa=\E&a%p1%dC, ht=^I,
+       hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
+       ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
+       kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
+       kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
+       krmir=\ER, ktbc=\E3, rev=\E&dB, ri=\ET, rmacs=^O, rmir=\ER,
+       rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
+       sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
+       smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+
+bobcat|sbobcat|HP 9000 model 300 console,
+       am, da, db, mir, xhp,
+       cols#128, it#8, lines#47, xmc#0,
+       cbt=\Ei, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\E&a%p1%dy%p2%dC$<6/>, cuu1=\EA, dch1=\EP,
+       dl1=\EM$<10*/>, ed=\EJ, el=\EK, hpa=\E&a%p1%dC$<6/>, ht=^I,
+       il1=\EL$<10*/>, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, khome=\Eh, nel=^M^J, rmir=\ER,
+       rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smir=\EQ,
+       smkx=\E&s1A, smso=\E&dB, smul=\E&dD, vpa=\E&a%p1%dY$<6/>,
+gator-t|HP 9000 model 237 emulating extra-tall AAA,
+       lines#94, use=gator,
+gator|HP 9000 model 237 emulating AAA,
+       bw, km, mir, ul,
+       cols#128, it#8, lines#47,
+       bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
+       dch=\E[%p1%dP$<4/>, dch1=\E[P, dl=\E[%p1%dM$<1*/>,
+       dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%d`,
+       ht=^I, ich=\E[%p1%d@$<4/>, ich1=\E[@, il=\E[%p1%dL$<1*/>,
+       il1=\E[L, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
+       rep=%p1%c\E[%p2%db$<1*/>, rev=\E[7m, rmso=\E[m,
+       rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+gator-52|HP 9000 model 237 emulating VT52,
+       cols#128, lines#47, use=vt52,
+gator-52t|HP 9000 model 237 emulating extra-tall VT52,
+       lines#94, use=gator-52,
+
+#### Honeywell-Bull
+#
+# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93
+#
+
+# Honeywell Bull terminal.  Its cursor and function keys send single
+# control characters and it has standout/underline glitch.  Most programs
+# do not like these features/bugs.  Visual bell is realized by flashing the
+# "keyboard locked" LED.
+dku7003-dumb|Honeywell Bull DKU 7003 dumb mode,
+       cols#80, lines#25,
+       clear=^]^_, cr=^M, cub1=^Y, cud1=^K, cuf1=^X,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, ed=^_, el=\E[K,
+       flash=\E[2h\E[2l, home=^], ht=^I, ind=^J, kbs=^H, kcub1=^Y,
+       kcud1=^K, kcuf1=^X, kcuu1=^Z, khome=^], nel=^M^J,
+dku7003|Honeywell Bull DKU 7003 all features described,
+       msgr,
+       xmc#1,
+       blink=\E[5m, bold=\E[7m, dim=\E[2m, rev=\E[7m, rmso=\E[m,
+       rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+       use=dku7003-dumb,
+
+#### Lear-Siegler (adm)
+#
+# These guys are long since out of the terminals business, but
+# in 1995 many current terminals still have an adm type as one of their
+# emulations (usually their stupidest, and usually labeled adm3, though
+# these `adm3' emulations normally have adm3a+ capabilities).
+#
+# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a
+# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator')
+# was being held to ground would trigger a send of the top line on the screen.
+# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22
+# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>,
+# for clearing up this point.)
+
+adm1a|adm1|lsi adm1a,
+       am,
+       cols#80, lines#24,
+       bel=^G, clear=\E;$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, home=^^,
+       ind=^J,
+adm2|lsi adm2,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\EY, el=\ET, home=^^, ich1=\EQ, il1=\EE, ind=^J,
+       kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
+# (adm3: removed obsolete ":ma=^K^P:" -- esr)
+adm3|lsi adm3,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, ind=^J,
+# The following ADM-3A switch settings are assumed for normal operation:
+#      SPACE           U/L_DISP        CLR_SCRN        24_LINE
+#      CUR_CTL         LC_EN           AUTO_NL         FDX
+# Other switches may be set for operator convenience or communication
+# requirements.  I recommend
+#      DISABLE_KB_LOCK LOCAL_OFF       103             202_OFF
+#      ETX_OFF         EOT_OFF
+# Most of these terminals required an option ROM to support lower case display.
+# Open the case and look at the motherboard; if you see an open 24-pin DIP
+# socket, you may be out of luck.
+#
+# (adm3a: some capabilities merged in from BRl entry -- esr)
+adm3a|lsi adm3a,
+       OTbs, am,
+       cols#80, lines#24,
+       OTma=^K^P, OTnl=^J, bel=^G, clear=\032$<1/>, cr=^M, cub1=^H,
+       cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=^K, home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L,
+       kcuu1=^K, rs2=^N,
+adm3a+|adm3a plus,
+       kbs=^H, use=adm3a,
+# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr)
+adm5|lsi adm5,
+       xmc#1,
+       bel=^G, cr=^M, cud1=^J, ed=\EY, el=\ET, kbs=^H, khome=^^,
+       rmso=\EG, smso=\EG, use=adm3a+,
+# A lot of terminals other than adm11s use these.  Wherever you see
+# use=adm+sgr with some of its capabilities disabled, try the
+# disabled ones.  They may well work but not have been documented or
+# expressed in the using entry.  We'd like to cook up an <sgr> but the
+# <rmacs>/<smacs> sequences of the using entries vary too much.
+adm+sgr|adm style highlight capabilities,
+       invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0, sgr0=\EG0,
+       smso=\EG4, smul=\EG8,
+# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL
+# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs>
+# <khome> from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>.  <clear> could also
+# be ^Z, according to his entry.
+# (adm11: <smul>=\EG4 was obviously erroneous because it also said
+# <rev>=\EG4.  Looking at other ADMs confirms this -- esr)
+adm11|LSI ADM-11,
+       OTbs, am, hs,
+       OTkn#8, cols#80, lines#24,
+       OTnl=^J, bel=^G, blink=\EG2, clear=\E*, cr=^M, cub1=^H,
+       cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=^K, dsl=\Eh, ed=\EY, el=\ET, fsl=\E(\r, home=^^, ht=^I,
+       kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
+       kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+       kf7=^AF\r, kf8=^AG\r, khome=^^, nel=^M^J, tsl=\EF\E),
+       use=adm+sgr,
+# From: Andrew Scott Beals <bandy@lll-crg.ARPA>
+# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995
+# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996
+# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :".  This formerly had
+# <is2>=\Eq but that looked wrong; this <is2> is from Dave Yost <esquire!yost>
+# via BRL.  That entry asserted <xmc#1>, but I've left that out because
+# neither earlier nor later ADMSs have it -- esr)
+#
+# You will need to get into the supervisor setup before you can set
+# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should
+# see a lot more setup options.
+#
+# While in supervisor setup you can also use following codes:
+#
+# Ctrl-P Personality character selections (configure for example what
+#        arrow keys send, if I recall correctly)
+# Ctrl-T tabs 1-80   use left&right to move and up to set and
+# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor
+# Ctrl-B Binary setup (probably not needed. I think that everything can
+#        be set using normal setup)
+# Ctrl-A Answerback mode (enter answerback message)
+# Ctrl-U User friendly mode (normal setup)
+# Ctrl-D Defaults entire setup and function keys from EPROM tables
+# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds.
+# Ctrl-R Reads both setup and functions keys from NVM.
+# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status
+#
+# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to
+# RTS/CTS used nowadays with virtually every modem and computer. 19200
+# bps works fine with hardware flow control.
+#
+# The following null-modem cable should fix this and enable you to use
+# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also
+# set ADM-12+ for DTR handshaking from supervisor setup.
+#
+# PC Serial   ADM-12+
+#  --------   -------
+#         2 - 3
+#         3 - 2
+#         4 - 5
+#         5 - 20
+#       6,8 - 4
+#         7 - 7
+#        20 - 6,8
+#
+adm12|lsi adm12,
+       OTbs, OTpt, am, mir,
+       OTug#1, cols#80, it#8, lines#24,
+       bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE,
+       is2=\E0        \E1        \E1        \E1        \E1        \E1        \E1        \E1        \E1,
+       kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
+       kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
+       kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, smir=\Eq, tbc=\E0,
+       use=adm+sgr,
+# (adm20: removed obsolete ":kn#7:" -- esr)
+adm20|lear siegler adm20,
+       OTbs, am,
+       cols#80, it#8, lines#24,
+       bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cuf1=^L,
+       cup=\E=%i%p2%{31}%+%c%p1%{31}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, ich1=\EQ, il1=\EE,
+       kf1=^A, kf2=^B, kf3=^W, kf4=^D, kf5=^E, kf6=^X, kf7=^Z, rmso=\E(,
+       sgr0=\E(, smso=\E),
+adm21|lear siegler adm21,
+       xmc#1,
+       bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=30*\ER, ed=\EY, el=\ET,
+       ich1=\EQ, il1=30*\EE, ind=^J, invis@, kbs=^H, kcub1=^H,
+       kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, use=adm+sgr,
+       use=adm3a,
+# (adm22: ":em=:" was an obvious typo for ":ei=:"; also,
+# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :";
+# removed bogus-looking \200 from before <cup>. -- esr)
+adm22|lsi adm22,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\Ey, el=\Et, home=^^, ht=\Ei, ich1=\EQ, il1=\EE,
+       is2=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0,
+       kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
+       kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+       kf7=^AF\r, khome=^^, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
+       lf6=F6, lf7=F7, rmso=\E(, sgr0=\E(, smso=\E),
+# ADM 31 DIP Switches
+#
+# This information comes from two versions of the manual for the
+# Lear-Siegler ADM 31.
+#
+# Main board:
+#                  rear of case
+#   +-||||-------------------------------------+
+#   + S1S2                              ||S    +
+#   +                                   ||3    +
+#   +                                          +
+#   +                                ||S       +
+#   +                                ||4       +
+#   +                                          +
+#   +                                          +
+#   +                                          +
+#   +                                          +
+#   +                                          +
+# +-+                                          +-+
+# +                                              +
+# +                               S5 S6 S7       +
+# +                               == == ==       +
+# +----------------------------------------------+
+#            front of case (keyboard)
+#
+#  S1 - Data Rate - Modem
+#  S2 - Data Rate - Printer
+# ------------------------
+# Data Rate   Setting
+# -------------------
+# 50          0 0 0 0
+# 75          1 0 0 0
+# 110         0 1 0 0
+# 134.5       1 1 0 0
+# 150         0 0 1 0
+# 300         1 0 1 0
+# 600         0 1 1 0
+# 1200        1 1 1 0
+# 1800        0 0 0 1
+# 2000        1 0 0 1
+# 2400        0 1 0 1
+# 3600        1 1 0 1
+# 4800        0 0 1 1
+# 7200        1 0 1 1
+# 9600        0 1 1 1
+# x           1 1 1 1
+#
+# S3 - Interface/Printer/Attributes
+# ---------------------------------
+# Printer Busy Control
+# sw1   sw2   sw3
+# ---------------
+# off   off   off   Busy not active, CD disabled
+# off   off   on    Busy not active, CD enabled
+# off   on    off   Busy active on J5-20, CD disabled
+# on    off   off   Busy active on J5-19, CD disabled - Factory Set.
+# on    off   on    Busy active on J5-19, CD enabled
+#
+# sw4   Used in conjuction with S4 for comm interface control - Fact 0
+#
+# sw5   Secondary Channel Control (Hardware implementation only) - Fact 0
+#
+# sw6   ON enables printer BUSY active LOW - Factory Setting
+#       OFF enables printer BUSY active HIGH - If set to this, ADM31 senses
+#
+# sw7   ON - steady cursor - Factory Setting
+#       OFF - blinking cursor
+#
+# sw8   ON causes selected attribute character to be displayed
+#       OFF causes SPACE to be displayed instead - Factory Setting
+#
+# S4 - Interface
+# --------------
+# Modem Interface
+# S3    S4    S4    S4    S4
+# sw4   sw1   sw2   sw3   sw4
+# ---------------------------
+# OFF   ON    OFF   ON    OFF   Enable RS-232C interface, Direct Connect and
+#                               Current Loop disabled - Factory Setting
+# ON    ON    OFF   ON    OFF   Enable Current Loop interface, Direct Connect
+#                               disabled
+# OFF   OFF   ON    OFF   ON    Enable Direct Connect interface, RS-232C and
+#                               Current Loop Disabled
+#
+# sw5   ON disables dot stretching mode - Factory Setting
+#       OFF enables dot stretching mode
+# sw6   ON enables blanking function
+#       OFF enables underline function - Factory Setting
+# sw7   ON causes NULLS to be displayed as NULLS
+#       OFF causes NULLS to be displayed as SPACES - Factory Setting
+#
+# S5 - Word Structure
+# -------------------
+# sw1   ON enables BREAK key - Factory Setting
+#       OFF disables BREAK key
+# sw2   ON selects 50Hz monitor refresh rate
+#       OFF selects 60Hz monitor refresh rate - Factory Setting
+#
+# Modem Port Selection
+# sw3   sw4   sw5
+# ---------------
+# ON    ON    ON    Selects 7 DATA bits, even parity, 2 STOP bits
+# OFF   ON    ON    Selects 7 DATA bits, odd  parity, 2 STOP bits
+# ON    OFF   ON    Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set.
+# OFF   OFF   ON    Selects 7 DATA bits, odd  parity, 1 STOP bit
+# ON    ON    OFF   Selects 8 DATA bits, no   parity, 2 STOP bits
+# OFF   ON    OFF   Selects 8 DATA bits, no   parity, 1 STOP bit
+# ON    OFF   OFF   Selects 8 DATA bits, even parity, 1 STOP bit
+# OFF   OFF   OFF   Selects 8 DATA bits, odd  parity, 1 STOP bit
+#
+# sw6   ON  sends bit 8 a 1 (mark)
+#       OFF sends bit 8 as 0 (space) - Factory Setting
+# sw7   ON  selects Block Mode
+#       OFF selects Conversation Mode - Factory Setting
+# sw8   ON  selects Full Duplex operation
+#       OFF selects Half Duplex operation - Factory Setting
+#
+# S6 - Printer
+# ------------
+# sw1, sw2, sw6, sw7   Reserved - Factory 0
+#
+# Printer Port Selection
+# same as Modem above, bit 8 (when 8 DATA bits) is always = 0
+#
+# sw8   ON   enables Printer Port
+#       OFF disables Printer Port - Factory Setting
+#
+# S7 - Polling Address
+# --------------------
+# sw1-7 Establish ASCII character which designates terminal polling address
+#       ON  = logic 0
+#       OFF = logic 1 - Factory Setting
+# sw8   ON   enables Polling Option
+#       OFF disables Polling Option - Factory Setting
+#
+#
+# On some older adm31s, S4 does not exist, and S5-sw6 is not defined.
+#
+# This adm31 entry uses underline as the standout mode.
+# If the adm31 gives you trouble with standout mode, check the DIP switch in
+# position 6, bank @c11, 25% from back end of the circuit board.  Should be
+# OFF.  If there is no such switch, you have an old adm31 and must use oadm31.
+# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr)
+adm31|lsi adm31 with sw6 set for underline mode,
+       OTbs, am, mir,
+       cols#80, lines#24,
+       bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, ind=^J, is2=\Eu\E0,
+       kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
+       kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
+       kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, rmso=\EG0,
+       rmul=\EG0, sgr0=\EG0, smir=\Eq, smso=\EG1, smul=\EG1,
+adm31-old|o31|old adm31,
+       rmul@, smso=\EG4, smul@, use=adm31,
+# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL
+adm36|LSI ADM36,
+       OTbs, OTpt,
+       OTkn#4,
+       if=/usr/share/tabset/vt100,
+       is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l,
+       use=vt100,
+# (adm42: removed obsolete ":ma=^K^P:" -- esr)
+adm42|lsi adm42,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, cbt=\EI, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ht=^I,
+       il1=\EE$<270>, ind=^J, invis@, ip=$<6*>, kcub1=^H, kcud1=^J,
+       kcuf1=^L, kcuu1=^K, khome=^^, pad=\177, rmir=\Er, rmul@,
+       smir=\Eq, smul@, use=adm+sgr,
+# The following termcap for the Lear Siegler ADM-42 leaves the
+# "system line" at the bottom of the screen blank (for those who
+# find it distracting otherwise)
+adm42-ns|lsi adm-42 with no system line,
+       cbt=\EI\EF \011, clear=\E;\EF \011,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<6>\EF \011,
+       dch1=\EW\EF \011, dl1=\ER\EF \011, ed=\EY\EF \011,
+       el=\ET\EF \011, il1=\EE\EF \011, rmir=\Er\EF \011,
+       smir=\Eq\EF \011, use=adm42,
+# ADM 1178 terminal -- rather like an ADM-42.  Manual is dated March 1 1985.
+# The insert mode of this terminal is commented out because it's broken for our
+# purposes in that it will shift the position of every character on the page,
+# not just the cursor line!
+# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996
+adm1178|1178|lsi adm1178,
+       am,
+       cols#80, lines#24, xmc#1,
+       bel=^G, bold=\E(, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J,
+       cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET,
+       home=^^, ht=^I, il1=\EE, ind=^J, ip=$<6*/>, kbs=^H, kcub1=^H,
+       kcud1=^J, nel=^M^J, pad=\177, rev=\EG4, rmso=\EG0, rmul=\EG0,
+       sgr0=\E), smso=\EG4, smul=\EG1,
+
+#### Prime
+#
+# Yes, Prime made terminals.  These entries were posted by Kevin J. Cummings
+# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr.
+# Prime merged with ComputerVision in the late 1980s; you can reach them at:
+#
+#      ComputerVision Services
+#      500 Old Connecticut Path
+#      Framingham, Mass.
+#
+
+# Standout mode is dim reverse-video.
+pt100|pt200|wren|fenix|prime pt100/pt200,
+       am, bw, mir, msgr,
+       cols#80, it#8, lines#24,
+       cbt=\E[Z, clear=\E?, cr=^M, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E0%p1%{33}%+%c%p2%{33}%+%c, cuu=\E[%p1%dA,
+       cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl1=\E[M,
+       ed=\E[J\E[r, el=\E[K\E[t, flash=\E$$<200/>\E$P,
+       home=\E$B, ht=^I, il1=\E[L\E[t, ind=^J, kbs=^H, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E$A, nel=^M^J,
+       rmcup=, rmir=\E[4l, rmkx=\E[>13l, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m,
+       smcup=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q,
+       smir=\E[4h, smkx=\E[>13h, smso=\E[2;7m, smul=\E[4m,
+pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode,
+       cols#132,
+       cup=\E[%i%p1%d;%p2%dH, use=pt100,
+pt250|Prime PT250,
+       rmso@, smso@, use=pt100,
+pt250w|Prime PT250 in 132-column mode,
+       rmso@, smso@, use=pt100w,
+
+#### Qume (qvt)
+#
+#      Qume, Inc.
+#      3475-A North 1st Street
+#      San Jose CA 95134
+#      Vox: (800)-457-4447
+#      Fax: (408)-473-1510
+#      Net: josed@techsupp.wyse.com (Jose D'Oliveira)
+#
+# Qume was bought by Wyse, but still (as of early 1995) has its own support
+# group and production division.
+#
+# Discontinued Qume models:
+#
+# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+
+# built to replace them, and a qvt119+ which was a 101+ with available wide
+# mode (132 columns).  There was a qvt103 which added vt100/vt131 emulations
+# and an ANSI-compatible qvt203 that replaced it.  Qume started producing
+# ANSI-compatible terminals with the qvt323 and qvt61.
+#
+# Current Qume models (as of February 1995):
+#
+# All current Qume terminals have ANSI-compatible operation modes.
+# Qume is still producing the qvt62, which features emulations for other
+# popular lines such as ADDS, and dual-host capabilities.  The qvt82 is
+# designed for use as a SCO ANSI terminal.  The qvt70 is a color terminal
+# with many emulations including Wyse370, Wyse 325, etc.  Their newest
+# model is the qvt520, which is vt420-compatible.
+#
+# There are some ancient printing Qume terminals under `Daisy Wheel Printers'
+#
+# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its
+# setup mode.  Shift-s should be a configuration save to NVRAM.
+
+qvt101|qvt108|qume qvt 101 and QVT 108,
+       xmc#1, use=qvt101+,
+
+# This used to have <cvvis=\E.2> but no <cnorm> or <civis>.  The BSD termcap
+# file had <cvvis=\EM4 \200\200\200>.  I've done the safe thing and yanked
+# both. The <rev> is from BSD, which also claimed bold=\E( and dim=\E).
+# What seems to be going on here is that this entry was designed so that
+# the normal highlight is bold and standout is dim plus something else
+# (reverse-video maybe?  But then, are there two <rev> sequences?)
+qvt101+|qvt101p|qume qvt 101 PLUS product,
+       am, bw, hs, ul,
+       cols#80, lines#24, xmc#0,
+       bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^J,
+       cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
+       flash=\Eb$<200>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
+       ich1=\EQ, il1=\EE, ind=^J, invis@, kbs=^H, kcbt=\EI, kcub1=^H,
+       kcud1=^J, kcuf1=^L, kcuu1=^K, kdl1=\ER, ked=\EY, kel=\ET,
+       kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
+       kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
+       khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@, rmso=\E(,
+       smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
+qvt102|qume qvt 102,
+       cnorm=\E., use=qvt101,
+# (qvt103: added <rmam>/<smam> based on init string -- esr)
+qvt103|qume qvt 103,
+       am, xenl, xon,
+       cols#80, it#8, lines#24, vt#3,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+       clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+       cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+       cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
+       hts=\EH, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+       kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8,
+       rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>,
+       rmso=\E[m$<2>, rmul=\E[m$<2>,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
+       sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=,
+       smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
+qvt103-w|qume qvt103 132 cols,
+       cols#132, lines#24,
+       rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt103,
+qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals,
+       am, hs, mir, msgr,
+       cols#80, lines#24, xmc#0,
+       bel=^G, cbt=\EI, clear=\E*1, cnorm=\E.4, cr=^M, cub1=^H,
+       cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=^K, cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey,
+       el=\Et, flash=\En0$<200>\En1, fsl=^M, home=^^, ht=^I,
+       hts=\E1, il1=\EE, ind=^J, is2=\EDF\EC\EG0\Er\E(\E%EX,
+       kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r,
+       kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+       kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+       mc4=\EA, mc5=\E@, ri=\EJ, rmir=\Er, smir=\Eq, smul=\EG8,
+       tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
+qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines,
+       lines#25, use=qvt119+,
+qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode,
+       cols#132,
+       is2=\EDF\EC\EG0\Er\E(\E%\EX\En4, use=qvt119+,
+qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25,
+       lines#25, use=qvt119+,
+qvt203|qvt203+|qume qvt 203 Plus,
+       dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
+       ip=$<7>, kf0=\E[29~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
+       kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
+       kf9=\E[28~, rmir=\E[4l, smir=\E[4h, use=qvt103,
+qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video),
+       cols#132, lines#24,
+       rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt203,
+#
+#      Since a command is present for enabling 25 data lines,
+#      a specific terminfo entry may be generated for the 203.
+#      If one is desired for the QVT 119 PLUS then 25 lines must
+#      be selected in the status line (setup line 9).
+#
+qvt203-25|QVT 203 PLUS with 25 by 80 column mode,
+       cols#80, lines#25,
+       is2=\E[=40h\E[?3l, use=qvt203,
+qvt203-25-w|QVT 203 PLUS with 25 by 132 columns,
+       cols#132, lines#25,
+       rs2=\E[?3h\E[=40h, use=qvt203,
+
+#### Televideo (tvi)
+#
+#      TeleVideo
+#      550 East Brokaw Road
+#      PO Box 49048    95161
+#      San Jose CA 95112
+#      Vox: (408)-954-8333
+#      Fax: (408)-954-0623
+#
+#
+# These require incredible amounts of padding.
+#
+# All of these terminals (912 to 970 and the tvipt) are discontinued.  Newer
+# Televideo terminals are ANSI and PC-ANSI compatible.
+
+tvi803|televideo 803,
+       clear=\E*$<10>, use=tvi950,
+
+# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
+# Switch settings are:
+#
+# S1  1 2 3 4
+#     D D D D  9600
+#     D D D U    50
+#     D D U D    75
+#     D D U U   110
+#     D U D D   135
+#     D U D U   150
+#     D U U D   300
+#     D U U U   600
+#     U D D D  1200
+#     U D D U  1800
+#     U D U D  2400
+#     U D U U  3600
+#     U U D D  4800
+#     U U D U  7200
+#     U U U D  9600
+#     U U U U 19200
+#
+# S1  5 6 7 8
+#     U D X D  7N1 (data bits, parity, stop bits) (X means ignored)
+#     U D X U  7N2
+#     U U D D  7O1
+#     U U D U  7O2
+#     U U U D  7E1
+#     U U U U  7E2
+#     D D X D  8N1
+#     D D X U  8N2
+#     D U D D  8O1
+#     D U U U  8E2
+#
+# S1  9  Autowrap
+#     U  on
+#     D  off
+#
+# S1 10  CR/LF
+#     U  do CR/LF when CR received
+#     D  do CR when CR received
+#
+# S2  1  Mode
+#     U  block
+#     D  conversational
+#
+# S2  2  Duplex
+#     U  half
+#     D  full
+#
+# S2  3  Hertz
+#     U  50
+#     D  60
+#
+# S2  4  Edit mode
+#     U  local
+#     D  duplex
+#
+# S2  5  Cursor type
+#     U  underline
+#     D  block
+#
+# S2  6  Cursor down key
+#     U  send ^J
+#     D  send ^V
+#
+# S2  7  Screen colour
+#     U  green on black
+#     D  black on green
+#
+# S2  8  DSR status (pin 6)
+#     U  disconnected
+#     D  connected
+#
+# S2  9  DCD status (pin 8)
+#     U  disconnected
+#     D  duplex
+#
+# S2 10  DTR status (pin 20)
+#     U  disconnected
+#     D  duplex
+# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added <khome>, <cub1>, <cud1>,
+# <ind>, <hpa>, <vpa>, <am>, <msgr> from SCO entry -- esr)
+tvi910|televideo model 910,
+       OTbs, am, msgr,
+       cols#80, it#8, lines#24, xmc#1,
+       bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
+       home=\E=\001\001, hpa=\E]%p1%{32}%+%c, ht=^I,
+       if=/usr/share/tabset/stdcrt, ind=^J, invis@, kbs=^H,
+       kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r, kf1=^A@\r,
+       kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+       kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+       vpa=\E[%p1%{32}%+%c, use=adm+sgr,
+# From: Alan R. Rogers <rogers%albany@csnet-relay>
+# as subsequently hacked over by someone at SCO
+# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr)
+#
+# Here are the 910+'s DIP switches (U = up, D = down, X = don't care):
+#
+# S1  1 2 3 4:
+#     D D D D  9600     D D D U    50     D D U D    75     D D U U   110
+#     D U D D   135     D U D U   150     D U U D   300     D U U U   600
+#     U D D D  1200     U D D U  1800     U D U D  2400     U D U U  3600
+#     U U D D  4800     U U D U  7200     U U U D  9600     U U U U 19200
+#
+# S1  5 6 7 8:
+#     U D X D  7N1     U D X U  7N2     U U D D  7O1     U U D U  7O2
+#     U U U D  7E1     U U U U  7E2     D D X D  8N1     D D X U  8N2
+#     D U D D  8O1     D U U U  8E2
+#
+# S1  9  Autowrap            (U = on, D = off)
+# S1 10  CR/LF               (U = CR/LF on CR received, D = CR on CR received)
+# S2  1  Mode                (U = block, D = conversational)
+# S2  2  Duplex              (U =  half, D = full)
+# S2  3  Hertz               (U = 50, D = 60)
+# S2  4  Edit mode           (U = local, D = duplex)
+# S2  5  Cursor type         (U = underline, D = block)
+# S2  6  Cursor down key     (U = send ^J, D = send ^V)
+# S2  7  Screen colour       (U = green on black, D = black on green)
+# S2  8  DSR status (pin 6)  (U = disconnected, D = connected)
+# S2  9  DCD status (pin 8)  (U = disconnected, D = connected)
+# S2 10  DTR status (pin 20) (U = disconnected, D = connected)
+#
+tvi910+|televideo 910+,
+       dch1=\EW, dl1=\ER$<33*>, home=^^, ich1=\EQ, il1=\EE$<33*>,
+       kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r,
+       kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r,
+       ll=\E=7\s, use=tvi910,
+
+# (tvi912: removed obsolete ":ma=^K^P^L :", added  <flash> and
+# <khome> from BRL entry -- esr)
+tvi912|tvi914|tvi920|old televideo 912/914/920,
+       OTbs, OTpt, am, msgr,
+       cols#80, it#8, lines#24, xmc#1,
+       bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER$<33*>, ed=\Ey, el=\ET, flash=\Eb$<50/>\Ed, home=^^,
+       ht=^I, hts=\E1, ich1=\EQ, if=/usr/share/tabset/stdcrt,
+       il1=\EE$<33*>, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
+       kcuu1=^K, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
+       kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
+       kf9=^AH\r, khome=^^, rmso=\Ek, rmul=\Em, smso=\Ej, smul=\El,
+       tbc=\E3,
+# We got some new tvi912c terminals that act really weird on the regular
+# termcap, so one of our gurus worked this up. Seems that cursor
+# addressing is broken.
+tvi912cc|tvi912 at cowell college,
+       cup@, use=tvi912c,
+
+# tvi{912,920}[bc] - TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C
+# From: Benjamin C. W. Sittler
+#
+# Someone has put a scanned copy of the manual online at:
+#     http://vt100.net/televideo/912b-om/
+#
+# These terminals were produced ca. 1979, and had a 12" monochrome
+# screen, supported 75-9600 baud (no handshaking), monochrome, 7-bit
+# ASCII, and were generally similar to adm3a but with attributes
+# (including some with magic cookies), fancy half-duplex mode, and
+# different bugs.
+#
+# Some operations reqire truly incredible amounts of padding. The
+# insert_line (<il1>) and delete_line (<dl1>) operations in particular
+# are so slow as to be nearly unusable.
+#
+# There may or may not have been a separate, earlier series of 912/920
+# terminals (without the "B" and "C" suffix); I have never seen one,
+# and the manual only describes the "B" and "C" series. The 912 and 920
+# are quite distinct from the 914 and 924, which were much nicer non-
+# magic-cookie terminals similar to the 950.
+#
+# This is a new description for the following TeleVideo terminals,
+# distinguished chiefly by their keyboards:
+#
+#   TVI-912B - very odd layout, no function keys (84 keys)
+#   TVI-920B - typewriter layout, no function keys (103 keys)
+#   TVI-912C - very odd layout, function keys F1-F11 (82 keys)
+#   TVI-920C - typewriter layout, function keys F1-F11 (101 keys)
+#
+# To choose a setting for the TERM variable, start with the model:
+#
+#    Model  || base name
+# ----------||-----------
+#  TVI-912B || tvi912b
+#  TVI-912C || tvi912c
+#  TVI-920B || tvi920b
+#  TVI-920C || tvi920c
+#
+# Then add a suffix from the following table describing installed options
+# and how you'd like to use the terminal:
+#
+#   Use Video | Second | Visual |  Magic  |  Page || feature
+#  Attributes |  Page  |  Bell  | Cookies | Print || suffix
+# ------------|--------|--------|---------|-------||---------
+#      No     |   No   |  N/A   |   N/A   |   No  || -unk
+#      No     |   No   |  N/A   |   N/A   |  Yes  || -p
+#      No     |  Yes   |   No   |   N/A   |   No  || -2p-unk
+#      No     |  Yes   |   No   |   N/A   |  Yes  || -2p-p
+#      No     |  Yes   |  Yes   |   N/A   |   No  || -vb-unk
+#      No     |  Yes   |  Yes   |   N/A   |  Yes  || -vb-p
+#     Yes     |   No   |  N/A   |    No   |  N/A  ||
+#     Yes     |   No   |  N/A   |   Yes   |  N/A  || -mc
+#     Yes     |  Yes   |   No   |    No   |  N/A  || -2p
+#     Yes     |  Yes   |   No   |   Yes   |  N/A  || -2p-mc
+#     Yes     |  Yes   |  Yes   |    No   |  N/A  || -vb
+#     Yes     |  Yes   |  Yes   |   Yes   |  N/A  || -vb-mc
+#
+# So e.g. a model 920 C with second page memory option, visual bell
+# and no magic cookies would be tvi920c-vb; a model 912 B without the
+# second page memory option and using magic cookies would be
+# tvi912b-mc
+#
+# PADDING
+#
+# At 9600 baud, the terminal is prone to overflow its input buffer
+# during complex operations (insert/delete
+# character/line/screen/page), and it does not signal this over the
+# RS232 cable. The typical symptom of an overrun is that the terminal
+# starts beeping, and output becomes garbled.
+#
+# The padding delays in this terminfo were derived using tack(1)
+# running on a Linux box connected to a TVI-920C with a later-model
+# (A49C1-style) ROM running at 9600 baud, so your mileage may
+# vary. The numbers below seem to give the terminal enough time so
+# that it doesn't overflow its input buffer and start losing
+# characters.
+#
+# KEYS
+#
+# If you want to use the FUNCT key on a tvi912[bc], use the
+# corresponding tvi920[bc] terminfo with FUNCT + ... equivalents from
+# the following table (these also work on the 920 series):
+#
+# Unshifted Function Keys:
+#
+#  Key | capname|| Equivalent
+# -----|--------||------------
+#   F1 |  <kf1> || FUNCT + @
+#   F2 |  <kf2> || FUNCT + A
+#   F3 |  <kf3> || FUNCT + B
+#   F4 |  <kf4> || FUNCT + C
+#   F5 |  <kf5> || FUNCT + D
+#   F6 |  <kf6> || FUNCT + E
+#   F7 |  <kf7> || FUNCT + F
+#   F8 |  <kf8> || FUNCT + G
+#   F9 |  <kf9> || FUNCT + H
+#  F10 | <kf10> || FUNCT + I
+#  F11 | <kf11> || FUNCT + J
+#
+# Shifted Function Keys:
+#
+#  SHIFT + Key | capname|| Equivalent
+# -------------|--------||------------
+#   SHIFT + F1 | <kf12> || FUNCT + `
+#   SHIFT + F2 | <kf13> || FUNCT + a
+#   SHIFT + F3 | <kf14> || FUNCT + b
+#   SHIFT + F4 | <kf15> || FUNCT + c
+#   SHIFT + F5 | <kf16> || FUNCT + d
+#   SHIFT + F6 | <kf17> || FUNCT + e
+#   SHIFT + F7 | <kf18> || FUNCT + f
+#   SHIFT + F8 | <kf19> || FUNCT + g
+#   SHIFT + F9 | <kf20> || FUNCT + h
+#  SHIFT + F10 | <kf21> || FUNCT + i
+#  SHIFT + F11 | <kf22> || FUNCT + j
+#
+# PORTS AND SWITCH SETTINGS
+#
+# Here are the switch settings for the TVI-912B/TVI-920B and
+# TVI-912C/TVI-920C:
+#
+# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down:
+# 2: 9600      3: 4800         4: 2400         5: 1200
+# 6:  600      7:  300         8:  150         9:   75
+# 10: 110
+#
+# S2 UART/Terminal options:
+#              Up                      Down
+# 1:           Not used                Not allowed
+# 2:   Alternate character set   Standard character set
+# 3:       Full duplex             Half duplex
+# 4:       50 Hz refresh           60 Hz refresh
+# 5:         No parity              Send parity
+# 6:        2 stop bits             1 stop bit
+# 7:        8 data bits             7 data bits
+# 8:           Not used                Not allowed on Rev E or lower
+# 9:        Even parity             Odd parity
+# 10:      Steady cursor           Blinking cursor
+#      (On Rev E or lower, use W25 instead of switch 10.)
+#
+# S5 UART/Terminal options:
+#              Open                    Closed
+# 1:   P3-6 Not connected      DSR received on P3-6
+# 2:   P3-8 Not connected      DCD received on P3-8
+#
+# 3 Open, 4 Open:              P3-20 Not connected
+# 3 Open, 4 Closed:    DTR on when terminal is on
+# 3 Closed, 4 Open:    DTR is connected to RTS
+# 3 Closed, 4 Closed:  Not allowed
+#
+# 5 Closed:    HDX printer (hardware control) Rev. K with extension port off,
+#              all data transmitted out of the modem port (P3) will also be
+#              transmitted out of the printer port (P4).
+#
+# 6 Open, 7 Open:              Not allowed
+# 6 Open, 7 Closed:    20ma current loop input
+# 6 Closed, 7 Open:    RS232 input
+# 6 Closed, 7 Closed:  Not allowed
+#
+# Jumper options:
+# If the jumper is installed, the effect will occur (the next time the terminal
+# is switched on).
+#
+# S4/W31:      Enables automatic LF upon receipt of CR from
+#              remote or keyboard.
+# S4/W32:      Enables transmission of EOT at the end of Send.  If not
+#              installed, a carriage return is sent.
+# S4/W33:      Disables automatic carriage return in column 80.
+# S4/W34:      Selects Page Print Mode as initial condition.  If not
+#              installed, Extension Mode is selected.
+#
+# NON-STANDARD CAPABILITIES
+#
+# Sending <u9> or <u7> returns a cursor position report in the format
+# YX\r, where Y and X are as in <cup>. This format is described in
+# <u8> and <u6>, but it's not clear how one should write an
+# appropriate scanf string, since we need to subtract %' ' from the
+# character after reading it. The <u9> capability is used by tack(1)
+# to synchronize during padding tests, and seems to work for that
+# purpose.
+#
+# This description also includes the obsolete termcap capabilities
+# has_hardware_tabs (<OTpt>) and backspaces_with_bs (<OTbs>).
+#
+# FEATURES NOT YET DESCRIBED IN THIS TERMINFO
+#
+# The FUNCT modifier actually works with every normal key by sending
+# ^AX\r, where X is the sequence normally sent by that key. This is a
+# sort of meta key not currently describable in terminfo.
+#
+# There are quite a few other keys (especially on the 920 models,) but
+# they are for the most part only useful in block mode.
+#
+# These terminals have lots of forms manipulation features, mainly
+# useful in block mode, including "clear X to nulls" (vs. "clear X to
+# spaces"; nulls are sentinels for "send X" operations); "send X"
+# operations for uploading all or part of the screen; and block-mode
+# editing keys (they don't send escape sequences, but manipulate video
+# memory directly). Block mode is used for local editing, and protect
+# mode (in conjunction with the "write protect" attribute,
+# a.k.a. half-intensity outside of protect mode) is used to control
+# which parts of the screen are edited/sent/printed (by <mc0>).
+#
+# There are at least two major families of ROM, "early" and
+# A49B1/A49C1; the major difference seems to be that the latter ROMs
+# support a few extra escape sequences for manipulating the off-screen
+# memory page, and for sending whole pages back to the host (mainly
+# useful in block mode.) The descriptions in this file don't use any
+# of those sequences: set cursor position including page (\E-PYX,
+# where P is \s for page 0 and ! for page 1 [actually only the LSB of
+# P is taken into account, so e.g. 0 and 1 work too,] and Y and X are
+# as in <cup>); read cursor position (\E/), which is analogous to <u9>
+# and returns PYX\r, where P is \s for page 0 or ! for page 1, and YX
+# are as in <cup>, and some "send page" features mainly useful for
+# forms manipulation.
+#
+# The keyboard enable (\E") and disable (\E#) sequences are unused,
+# except that a terminal reset (<is2>) enables the keyboard.
+#
+# Auto-flip mode (\Ev) is likely faster than the scrolling mode (\Ew)
+# enabled in <is2>, but auto-flip is very jarring so we don't use it.
+#
+# BUGS
+#
+# At least up to the A49B1 and A49C1 ROMs, there are no \Eb and \Ed
+# sequences (I infer that in some TeleVideo terminal they may invert
+# and uninvert the display) so the <flash> sequence given here is a
+# cheesy page-flip instead.
+#
+# The back_tab (<cbt>) sequence (\EI) doesn't work according to
+# tack(1), so it is not included in the descriptions below.
+#
+# It's not clear whether auto_left_margin (<bw>) flag should be set
+# for these terminals; tack says yes, so it is set here, but this
+# differs from other descriptions I've seen.
+#
+# Extension print mode (<mc5>) echoes all characters to the printer
+# port [in addition to displaying them] except for the page print mode
+# sequence (<mc4>); this is a slight violation of the terminfo
+# definition for <mc5> but I don't expect it to cause problems.  We
+# reset to page print mode in <rs1> since it may have been enabled
+# accidentally.
+#
+# The descriptions with plus signs (+) are building blocks.
+
+tvi912b-unk|tvi912c-unk|TeleVideo TVI-912B or TVI-912C (no attributes),
+       OTbs, OTpt, am, bw,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=\032$<50>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%' '%+%c%p2%' '%+%c, cuu1=^K, dch1=\EW$<30>,
+       dl1=\ER$<1*>$<100>, ed=\Ey$<2*>$<10>, el=\ET$<15>,
+       home=^^, ht=^I, hts=\E1, ich1=\EQ$<30>,
+       if=/usr/share/tabset/stdcrt, il1=\EE$<1*>$<100>,
+       ind=\n$<10>, is2=\Ew\EA\E'\E"\E(, kcub1=^H, kcud1=^J,
+       kcuf1=^L, kcuu1=^K, kdch1=\177, kent=^M, khome=^^, mc4=\EA,
+       mc5=\E@, rs1=\Ek\010\Em\010\Eq\032, tbc=\E3, u6=%c%c\r,
+       u7=\E?, u8=%c%c\r, u9=\E?,
+
+# This isn't included in the basic capabilities because it is
+# typically unusable in combination with the full range of video
+# attributes, since the magic cookie attributes turn into ASCII
+# control characters, and the half-intensity ("protected") attribute
+# converts all affected characters to spaces.
+
+tvi912b+printer|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C page print support,
+       mc0=\EP,
+
+# This uses half-intensity mode (<dim>) for standout (<smso>), and
+# exposes no other attributes (half-intensity is the only attribute
+# that does not generate a magic cookie.)
+
+tvi912b+dim|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C half-intensity attribute support,
+       msgr,
+       dim=\E), rmso=\E(, sgr=\E%?%p1%p5%|%t)%e(%;, sgr0=\E(,
+       smso=\E),
+
+# Full magic-cookie attribute support, with half-intensity reverse
+# video for standout. Note that we add a space in the <dim> sequence
+# to give a consistent magic-cookie count. Also note that <sgr> uses
+# backspacing (in the TVI-supported order) to apply all requested
+# attributes with only a single magic cookie.
+
+tvi912b+mc|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C full magic-cookie attribute support,
+       xmc#1,
+       blink=\E\^, dim=\E)\s, invis=\E_, rev=\Ej, rmso=\E(\Ek,
+       rmul=\Em,
+       sgr=\E%?%p1%p5%|%t)%e(%; \010\E%?%p1%p3%|%tj%ek%;\010\E%?%p2%tl%em%;\010\E%?%p7%t_%e%?%p4%t\^%eq%;%;,
+       sgr0=\E(\Ek\010\Em\010\Eq, smso=\E)\Ej, smul=\El,
+
+# This uses the second page memory option to save & restore screen
+# contents. If your terminal is missing the option, this description
+# should still work, but that has not been tested.
+
+tvi912b+2p|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option support,
+       flash=\EK$<100>\EK, rmcup=\032$<50>\EK\E=7\s,
+       smcup=\EK\032$<50>\E(\Ek\010\Em\010\Eq\032$<50>,
+
+# This simulates flashing by briefly toggling to the other page
+# (kludge!)
+
+tvi912b+vb|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option "visible bell" support,
+       bel=\EK$<100>\EK, use=tvi912b+2p,
+
+# Function keys (<kf12> .. <kf22> are shifted <kf1> .. <kf11>)
+
+tvi920b+fn|TeleVideo TVI-920B and TVI-920C function key support,
+       kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^A`\r, kf13=^Aa\r,
+       kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r, kf17=^Ae\r, kf18=^Af\r,
+       kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r, kf21=^Ai\r, kf22=^Aj\r,
+       kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r,
+
+# Combinations of the basic building blocks
+
+tvi912b-2p-unk|tvi912c-2p-unk|tvi912b-unk-2p|tvi912c-unk-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes),
+       use=tvi912b+2p, use=tvi912b-unk,
+
+tvi912b-vb-unk|tvi912c-vb-unk|tvi912b-unk-vb|tvi912c-unk-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes),
+       use=tvi912b+vb, use=tvi912b-unk,
+
+tvi912b-p|tvi912c-p|TeleVideo TVI-912B or TVI-912C (no attributes; page print),
+       use=tvi912b+printer, use=tvi912b-unk,
+
+tvi912b-2p-p|tvi912c-2p-p|tvi912b-p-2p|tvi912c-p-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes; page print),
+       use=tvi912b+2p, use=tvi912b+printer, use=tvi912b-unk,
+
+tvi912b-vb-p|tvi912c-vb-p|tvi912b-p-vb|tvi912c-p-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes; page print),
+       use=tvi912b+vb, use=tvi912b+printer, use=tvi912b-unk,
+
+tvi912b-2p|tvi912c-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; half-intensity attribute),
+       use=tvi912b+2p, use=tvi912b+dim, use=tvi912b-unk,
+
+tvi912b-2p-mc|tvi912c-2p-mc|tvi912b-mc-2p|tvi912c-mc-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; magic cookies),
+       use=tvi912b+2p, use=tvi912b+mc, use=tvi912b-unk,
+
+tvi912b-vb|tvi912c-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; half-intensity attribute),
+       use=tvi912b+vb, use=tvi912b+dim, use=tvi912b-unk,
+
+tvi912b-vb-mc|tvi912c-vb-mc|tvi912b-mc-vb|tvi912c-mc-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; magic cookies),
+       use=tvi912b+vb, use=tvi912b+mc, use=tvi912b-unk,
+
+tvi912b|tvi912c|TeleVideo TVI-912B or TVI-912C (half-intensity attribute),
+       use=tvi912b+dim, use=tvi912b-unk,
+
+tvi912b-mc|tvi912c-mc|TeleVideo TVI-912B or TVI-912C (magic cookies),
+       use=tvi912b+mc, use=tvi912b-unk,
+
+tvi920b-unk|tvi920c-unk|TeleVideo TVI-920B or TVI-920C (no attributes),
+       use=tvi920b+fn, use=tvi912b-unk,
+
+tvi920b-2p-unk|tvi920c-2p-unk|tvi920b-unk-2p|tvi920c-unk-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes),
+       use=tvi920b+fn, use=tvi912b+2p, use=tvi912b-unk,
+
+tvi920b-vb-unk|tvi920c-vb-unk|tvi920b-unk-vb|tvi920c-unk-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes),
+       use=tvi920b+fn, use=tvi912b+vb, use=tvi912b-unk,
+
+tvi920b-p|tvi920c-p|TeleVideo TVI-920B or TVI-920C (no attributes; page print),
+       use=tvi920b+fn, use=tvi912b+printer, use=tvi912b-unk,
+
+tvi920b-2p-p|tvi920c-2p-p|tvi920b-p-2p|tvi920c-p-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes; page print),
+       use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+printer,
+       use=tvi912b-unk,
+
+tvi920b-vb-p|tvi920c-vb-p|tvi920b-p-vb|tvi920c-p-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes; page print),
+       use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+printer,
+       use=tvi912b-unk,
+
+tvi920b-2p|tvi920c-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; half-intensity attribute),
+       use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+dim,
+       use=tvi912b-unk,
+
+tvi920b-2p-mc|tvi920c-2p-mc|tvi920b-mc-2p|tvi920c-mc-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; magic cookies),
+       use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+mc,
+       use=tvi912b-unk,
+
+tvi920b-vb|tvi920c-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; half-intensity attribute),
+       use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+dim,
+       use=tvi912b-unk,
+
+tvi920b-vb-mc|tvi920c-vb-mc|tvi920b-mc-vb|tvi920c-mc-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; magic cookies),
+       use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+mc,
+       use=tvi912b-unk,
+
+tvi920b|tvi920c|TeleVideo TVI-920B or TVI-920C (half-intensity attribute),
+       use=tvi920b+fn, use=tvi912b+dim, use=tvi912b-unk,
+
+tvi920b-mc|tvi920c-mc|TeleVideo TVI-920B or TVI-920C (magic cookies),
+       use=tvi920b+fn, use=tvi912b+mc, use=tvi912b-unk,
+
+# Televideo 921 and variants
+# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995
+# (tvi921: removed :ko=bt: before translation, I see no backtab cap;
+# also added empty <acsc> to suppress tic warning -- esr)
+tvi921|televideo model 921 with sysline same as page & real vi function,
+       OTbs, OTpt, am, hs, xenl, xhp,
+       cols#80, lines#24, xmc#0,
+       acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
+       cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
+       el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
+       if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, invis@,
+       is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, kcub1=^H,
+       kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER$<1*/>,
+       ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, nel=^M^J, rmacs=\E%%,
+       rmir=, smacs=\E$, smir=, tsl=\Ef\EG0, use=adm+sgr,
+# without the beeper
+# (tvi92B: removed :ko=bt: before translation, I see no backtab cap;
+# also added empty <acsc> to suppress tic warning -- esr)
+tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper,
+       am, hs, xenl, xhp,
+       cols#80, lines#24, xmc#0,
+       acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
+       cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
+       el=\ET, flash=\Eb$<200/>\Ed, fsl=\Eg, home=^^, ht=^I,
+       ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
+       invis@, is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z,
+       kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
+       kdl1=\ER$<1*/>, ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE,
+       nel=^M^J, rmacs=\E%%, smacs=\E$, tsl=\Ef\EG0, use=adm+sgr,
+# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr)
+tvi92D|tvi92B with DTR instead of XON/XOFF & better padding,
+       dl1=\ER$<2*/>, il1=\EE$<2*/>,
+       is2=\El\E"\EF1\E.3\016\EA\E<, kdl1=\ER$<2*/>,
+       kil1=\EE$<2*/>, use=tvi92B,
+
+# (tvi924: This used to have <dsl=\Es0>, <fsl=\031>.  I put the new strings
+# in from a BSD termcap file because it looks like they do something the
+# old ones skip -- esr)
+tvi924|televideo tvi924,
+       am, bw, hs, in, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, wsl#80, xmc#0,
+       bel=^G, blink=\EG2, cbt=\EI, civis=\E.0, clear=\E*0,
+       cnorm=\E.3, cr=^M, csr=\E_%p1%{32}%+%c%p2%{32}%+%c,
+       cub1=^H, cud1=^V, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\E.1,
+       dch1=\EW, dl1=\ER, dsl=\Es0\Ef\031, ed=\Ey, el=\Et,
+       flash=\Eb$<200>\Ed, fsl=\031\Es1, home=^^, ht=^I, hts=\E1,
+       ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
+       invis@, is1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0,
+       kbs=^H, kclr=\E*0, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
+       kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A@\r, kf1=^AA\r,
+       kf10=^AJ\r, kf11=^AK\r, kf12=^AL\r, kf13=^AM\r, kf14=^AN\r,
+       kf15=^AO\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, kf5=^AE\r,
+       kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, khome=^^,
+       kich1=\EQ, kil1=\EE, lf0=F1, lf1=F2, lf10=F11, lf2=F3, lf3=F4,
+       lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10,
+       pfkey=\E|%p1%{49}%+%c%p2%s\031, ri=\Ej, tbc=\E3, tsl=\Ef,
+       use=adm+sgr,
+
+# TVI925 DIP switches.  In each of these, D = Down and U = Up,
+#
+# Here are the settings for the external (baud) switches (S1):
+#
+#             Position         Baud
+# 7    8       9       10              [Printer]
+# 1    2       3       4               [Main RS232]
+# -----------------------------------------------------
+# D    D       D       D       9600
+# D    D       D       U         50
+# D    D       U       D         75
+# D    D       U       U        110
+# D    U       D       D        135
+# D    U       D       U        150
+# D    U       U       D        300
+# D    U       U       U        600
+# U    D       D       D       1200
+# U    D       D       U       1800
+# U    D       U       D       2400
+# U    D       U       U       3600
+# U    U       D       D       4800
+# U    U       D       U       7200
+# U    U       U       D       9600
+# U    U       U       U       19200
+#
+#
+# Settings for word length and stop-bits (S1)
+#
+#  Position    Description
+# 5    6
+# ---------------------------
+# U    -       7-bit word
+# D    -       8-bit word
+# -    U       2 stop bits
+# -    D       1 stop bit
+#
+#
+# S2 (external) settings
+#
+# Position     Up      Dn      Description
+# --------------------------------------------
+# 1            X               Local edit
+#                      X       Duplex edit (transmit editing keys)
+# --------------------------------------------
+# 2            X               912/920 emulation
+#                      X       925
+# --------------------------------------------
+# 3                    X
+# 4                    X       No parity
+# 5                    X
+# --------------------------------------------
+# 3                    X
+# 4                    X       Odd parity
+# 5            X
+# --------------------------------------------
+# 3                    X
+# 4            X               Even parity
+# 5            X
+# --------------------------------------------
+# 3            X
+# 4                    X       Mark parity
+# 5            X
+# --------------------------------------------
+# 3            X
+# 4            X               Space parity
+# 5            X
+# --------------------------------------------
+# 6            X               White on black display
+#                      X       Black on white display
+# --------------------------------------------
+# 7                    X       Half Duplex
+# 8                    X
+# --------------------------------------------
+# 7            X               Full Duplex
+# 8                    X
+# --------------------------------------------
+# 7                    X       Block mode
+# 8            X
+# --------------------------------------------
+# 9                    X       50 Hz
+#              X               60 Hz
+# --------------------------------------------
+# 10           X               CR/LF (Auto LF)
+#                      X       CR only
+#
+# S3 (internal switch) settings:
+#
+# Position     Up      Dn      Description
+# --------------------------------------------
+# 1            X               Keyclick off
+#                      X       Keyclick on
+# --------------------------------------------
+# 2                    X       English
+# 3                    X
+# --------------------------------------------
+# 2                    X       German
+# 3            X
+# --------------------------------------------
+# 2            X               French
+# 3                    X
+# --------------------------------------------
+# 2            X               Spanish
+# 3            X
+# --------------------------------------------
+# 4                    X       Blinking block cursor
+# 5                    X
+# --------------------------------------------
+# 4                    X       Blinking underline cursor
+# 5            X
+# --------------------------------------------
+# 4            X               Steady block cursor
+# 5                    X
+# --------------------------------------------
+# 4            X               Steady underline cursor
+# 5            X
+# --------------------------------------------
+# 6            X               Screen blanking timer (ON)
+#                      X       Screen blanking timer (OFF)
+# --------------------------------------------
+# 7            X               Page attributes
+#                      X       Line attributes
+# --------------------------------------------
+# 8            X               DCD disconnected
+#                      X       DCD connected
+# --------------------------------------------
+# 9            X               DSR disconnected
+#                      X       DSR connected
+# --------------------------------------------
+# 10           X               DTR Disconnected
+#                      X       DTR connected
+# --------------------------------------------
+#
+# (tvi925: BSD has <clear=\E*>.  I got <is2> and <ri> from there -- esr)
+tvi925|televideo 925,
+       OTbs, am, bw, hs, ul,
+       cols#80, lines#24, xmc#1,
+       bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^V,
+       cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
+       flash=\Eb$<200>\Ed, fsl=^M\Eg, home=^^, ht=^I, hts=\E1,
+       ich1=\EQ, il1=\EE, ind=^J, invis@, is2=\El\E", kbs=^H, kclr=^Z,
+       kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
+       ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
+       kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
+       kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, ri=\Ej, tbc=\E3,
+       tsl=\Eh\Ef, use=adm+sgr,
+# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL
+# to avoid "magic cookie" standout glitch:
+tvi925-hi|TeleVideo Model 925 with half intensity standout mode,
+       xmc@,
+       kbs=^H, kcub1=^H, kcud1=^J, rmso=\E(, smso=\E), use=tvi925,
+
+# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993
+# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82
+# for additional capabilities,
+# The following tvi descriptions from B:pjphar and virus!mike
+# is for all 950s.  It sets the following attributes:
+# full duplex (\EDF)           write protect off (\E()
+# conversation mode (\EC)      graphics mode off (\E%)
+# white on black (\Ed)         auto page flip off (\Ew)
+# turn off status line (\Eg)   clear status line (\Ef\r)
+# normal video (\E0)           monitor mode off (\EX or \Eu)
+# edit mode (\Er)              load blank char to space (\Ee\040)
+# line edit mode (\EO)         enable buffer control (^O)
+# protect mode off (\E\047)    duplex edit keys (\El)
+# program unshifted send key to send line all (\E016)
+# program shifted send key to send line unprotected (\E004)
+# set the following to nulls:
+#      field delimiter (\Ex0\200\200)
+#      line delimiter (\Ex1\200\200)
+#      start-protected field delimiter (\Ex2\200\200)
+#      end-protected field delimiter (\Ex3\200\200)
+# set end of text delimiter to carriage return/null (\Ex4\r\200)
+#
+#                     TVI 950 Switch Setting Reference Charts
+#
+#                                     TABLE 1:
+#
+#      S1     1     2     3     4     5     6     7     8     9    10
+#          +-----------------------+-----+-----+-----------------------+
+#          | Computer Baud Rate    |Data |Stop | Printer Baud Rate     |
+#          |                       |Bits |Bits |                       |
+#   +------+-----------------------+-----+-----+-----------------------+
+#   |  Up  |        See            |  7  |  2  |        See            |
+#   +------+-----------------------+-----+-----+-----------------------+
+#   | Down |      TABLE 2          |  8  |  1  |      TABLE 2          |
+#   +------+-----------------------+-----+-----+-----------------------+
+#
+#
+#      S2     1     2     3     4     5     6     7     8     9    10
+#          +-----+-----+-----------------+-----+-----------+-----+-----+
+#          |Edit |Cursr|    Parity       |Video|Transmiss'n| Hz  |Click|
+#   +------+-----+-----+-----------------+-----+-----------+-----+-----+
+#   |  Up  | Dplx|Blink|      See        |GonBk|   See     | 60  | Off |
+#   +------+-----+-----+-----------------+-----+-----------+-----+-----+
+#   | Down |Local|St'dy|    TABLE 3      |BkonG|  CHART    | 50  | On  |
+#   +------+-----+-----+-----------------+-----+-----------+-----+-----+
+#
+#                                    TABLE 2:
+#
+#             +-----------+-----+-----+-----+-----+-----------+
+#             | Display   |  1  |  2  |  3  |  4  |   Baud    |
+#             +-----------+-----+-----+-----+-----+           |
+#             | Printer   |  7  |  8  |  9  | 10  |   Rate    |
+#             +-----------+-----+-----+-----+-----+-----------+
+#                         |  D  |  D  |  D  |  D  |   9600    |
+#                         |  U  |  D  |  D  |  D  |     50    |
+#                         |  D  |  U  |  D  |  D  |     75    |
+#                         |  U  |  U  |  D  |  D  |    110    |
+#                         |  D  |  D  |  U  |  D  |    135    |
+#                         |  U  |  D  |  U  |  D  |    150    |
+#                         |  D  |  U  |  U  |  D  |    300    |
+#                         |  U  |  U  |  U  |  D  |    600    |
+#                         |  D  |  D  |  D  |  U  |   1200    |
+#                         |  U  |  D  |  D  |  U  |   1800    |
+#                         |  D  |  U  |  D  |  U  |   2400    |
+#                         |  U  |  U  |  D  |  U  |   3600    |
+#                         |  D  |  D  |  U  |  U  |   4800    |
+#                         |  U  |  D  |  U  |  U  |   7200    |
+#                         |  D  |  U  |  U  |  U  |   9600    |
+#                         |  U  |  U  |  U  |  U  |  19200    |
+#                         +-----+-----+-----+-----+-----------+
+#
+#                                    TABLE 3:
+#                         +-----+-----+-----+-----------+
+#                         |  3  |  4  |  5  |   Parity  |
+#                         +-----+-----+-----+-----------+
+#                         |  X  |  X  |  D  |    None   |
+#                         |  D  |  D  |  U  |     Odd   |
+#                         |  D  |  U  |  U  |    Even   |
+#                         |  U  |  D  |  U  |    Mark   |
+#                         |  U  |  U  |  U  |   Space   |
+#                         +-----+-----+-----+-----------+
+#                                 X = don't care
+#
+#                                     CHART:
+#                         +-----+-----+-----------------+
+#                         |  7  |  8  | Communication   |
+#                         +-----+-----+-----------------+
+#                         |  D  |  D  |  Half Duplex    |
+#                         |  D  |  U  |  Full Duplex    |
+#                         |  U  |  D  |     Block       |
+#                         |  U  |  U  |     Local       |
+#                         +-----+-----+-----------------+
+#
+# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:".
+# I also inserted <ich1> and <kich1>; the :ko: string indicated that <ich>
+# should be present and all tvi native modes use the same string for this.
+# Finally, note that BSD has cud1=^V. -- esr)
+tvi950|televideo 950,
+       OTbs, am, hs, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, xmc#1,
+       acsc=b\011c\014d\re\ni\013, bel=^G, cbt=\EI, clear=\E*,
+       cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey, el=\Et, flash=\Eb$<200/>\Ed,
+       fsl=^M, home=^^, ht=^I, hts=\E1, ich1=\EQ, il1=\EE, ind=^J,
+       invis@,
+       is2=\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,
+       kbs=^H, kcbt=\EI, kclr=\E*, kcub1=^H, kcud1=^V, kcuf1=^L,
+       kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A0\r,
+       kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+       kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+       kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, ri=\Ej, rmacs=^X,
+       rmir=\Er, smacs=^U, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
+       use=adm+sgr,
+#
+# is for 950 with two pages adds the following:
+#      set 48 line page (\E\\2)
+#      place cursor at page 0, line 24, column 1 (\E-07 )
+#      set local (no send) edit keys (\Ek)
+#
+# two page 950 adds the following:
+#      when entering ex, set 24 line page (\E\\1)
+#      when exiting ex, reset 48 line page (\E\\2)
+#                       place cursor at 0,24,1 (\E-07 )
+#      set duplex (send) edit keys (\El) when entering vi
+#      set local (no send) edit keys (\Ek) when exiting vi
+#
+tvi950-2p|televideo950 w/2 pages,
+       is2=\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,
+       rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
+       smkx=\El, use=tvi950,
+#
+# is for 950 with four pages adds the following:
+#      set 96 line page (\E\\3)
+#      place cursor at page 0, line 24, column 1 (\E-07 )
+#
+# four page 950 adds the following:
+#      when entering ex, set 24 line page (\E\\1)
+#      when exiting ex, reset 96 line page (\E\\3)
+#                       place cursor at 0,24,1 (\E-07 )
+#
+tvi950-4p|televideo950 w/4 pages,
+       is2=\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,
+       rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
+       smkx=\El, use=tvi950,
+#
+# <is2> for reverse video 950 changes the following:
+#      set reverse video (\Ed)
+#
+# set vb accordingly (\Ed ...delay... \Eb)
+#
+tvi950-rv|televideo950 rev video,
+       flash=\Ed$<200/>\Eb,
+       is2=\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,
+       use=tvi950,
+
+# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv
+tvi950-rv-2p|televideo950 rev video w/2 pages,
+       flash=\Ed$<200/>\Eb,
+       is2=\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,
+       rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
+       smkx=\El, use=tvi950,
+
+# tvi950-rv uses the appropriate entries from 950-4p and 950-rv
+tvi950-rv-4p|televideo950 rev video w/4 pages,
+       flash=\Ed$<200/>\Eb,
+       is2=\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,
+       rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
+       smkx=\El, use=tvi950,
+# From: Andreas Stolcke <stolcke@icsi.berkeley.edu>
+# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H";
+# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in
+# the :rs: string, inserted the <ich> implied by the termcap :ko: string.  Note
+# the :ko: string had :cl: in it, which means that one of the original
+# <clear=\E*>, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what
+# the 950 has.   Finally, corrected the <kel> string to match the 950 and what
+# ko implies -- esr)
+# If the BSD termcap file was right, <cup=\E=%p1%{32}%+%c%p2%{32}%+%c> would
+# also work.
+tvi955|televideo 955,
+       OTbs, mc5i, msgr@,
+       it#8, xmc@,
+       acsc=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ, blink=\EG2,
+       civis=\E.0, cnorm=\E.2, cud1=^V, cup=\E[%i%p1%d;%p2%dH,
+       cvvis=\E.1, dim=\E[=5h, ind@, invis=\EG1,
+       is2=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El, kctab=\E2, khts=\E1,
+       knp=\EK, kpp=\EJ, krmir=\EQ, ktbc=\E3, mc0=\EP, rmacs=\E%%,
+       rmam=\E[=7l, rmxon=^N,
+       rs1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r,
+       sgr0=\EG0\E[=5l, smacs=\E$, smam=\E[=7h, smxon=^O,
+       use=tvi950,
+tvi955-w|955-w|televideo955 w/132 cols,
+       cols#132,
+       is2=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El, use=tvi955,
+# use half-intensity as normal mode, full intensity as <bold>
+tvi955-hb|955-hb|televideo955 half-bright,
+       bold=\E[=5l, dim@, is2=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El,
+       sgr0=\EG0\E[=5h, use=tvi955,
+# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin
+# (tvi970: removed ":sg#0:"; removed <rmso>=\E[m, <rmul>=\E[m;
+# added <am>/<csr>/<home>/<hpa>/<vpa>/<smcup>/<rmcup> from BRL.
+# According to BRL we could have <rmkx>=\E>, <smkx>=\E= but I'm not sure what
+# it does to the function keys.  I deduced <rmam>/<smam>.
+# also added empty <acsc> to suppress tic warning,  -- esr)
+tvi970|televideo 970,
+       OTbs, OTpt, am, da, db, mir, msgr,
+       cols#80, it#8, lines#24,
+       acsc=, cbt=\E[Z, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=\ED, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
+       cuu1=\EM, cvvis=\E[1Q, dch1=\E[P, dl1=\E[M, dsl=\Eg\Ef\r,
+       ed=\E[J, el=\E[K, flash=\E[5m$<200/>\E[m, home=\E[H,
+       hpa=\E[%i%p1%dG, ht=^I, il1=\E[L,
+       is2=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J,
+       kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kf1=\E?a, kf2=\E?b, kf3=\E?c, kf4=\E?d, kf5=\E?e, kf6=\E?f,
+       kf7=\E?g, kf8=\E?h, kf9=\E?i, khome=\E[H, ri=\EM, rmacs=\E(B,
+       rmam=\E[?7h, rmcup=, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smacs=\E(B, smam=\E[?7l,
+       smcup=\E[?20l\E[?7h\E[1Q, smir=\E[4h, smso=\E[7m,
+       smul=\E[4m, vpa=\E[%i%p1%dd,
+tvi970-vb|televideo 970 with visual bell,
+       flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
+       use=tvi970,
+tvi970-2p|televideo 970 with using 2 pages of memory,
+       rmcup=\E[H\E[J\E[V, smcup=\E[U\E[?20l\E[?7h\E[1Q,
+       use=tvi970,
+# Works with vi and rogue.  NOTE: Esc v sets autowrap on, Esc u sets 80 chars
+# per line (rather than 40), Esc K chooses the normal character set.  Not sure
+# padding is needed, but adapted from the tvi920c termcap.  The <smso> and
+# <smul> strings are klutzy, but at least use no screen space.
+# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:".  I wish we knew <rmam>,
+# its absence means <smam>=\Ev isn't safe to use. -- esr)
+# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84.
+# The <ed>/<kf0>/<kf1>/<khome>/<mc4>, and <mc5> caps are from BRL, which says:
+# F1 and F2 should be programmed as ^A and ^B; required for UNIFY.
+tvipt|televideo personal terminal,
+       OTbs, am,
+       cols#80, lines#24,
+       cbt=\EI, clear=^Z, cub1=^H, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER$<5*>,
+       ed=\EY, el=\ET, home=^^, if=/usr/share/tabset/stdcrt,
+       il1=\EE$<5*>, is2=\Ev\Eu\EK, kbs=^H, kcub1=^H, kcud1=^J,
+       kcuf1=^L, kcuu1=^K, kf0=^A, kf1=^B, khome=^^, mc4=^T, mc5=^R,
+       rmso=\EF, rmul=\EF, smso=\EG1@A\EH, smul=\EG1B@\EH,
+# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996
+tvi9065|televideo 9065,
+       am, bw, chts, hs, mc5i, mir, msgr, xenl, xon,
+       cols#80, it#8, lh#1, lines#25, lm#0, lw#9, ma#4, nlab#8, vt#0,
+       wnum#0, wsl#30,
+       acsc='r0_jhkglfmeniopqksqtmulvownxj, bel=^G,
+       blink=\EG2, bold=\EG\,, cbt=\EI, civis=\E.0, clear=^Z,
+       cnorm=\E.3, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD,
+       cub1=^H, cud=\E[%p1%dB, cud1=^V, cuf=\E[%p1%dC, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu=\E[%p1%dA,
+       cuu1=^K, cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp,
+       dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%d@, ed=\EY,
+       el=\ET, flash=\Eb$<15>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
+       ich=\E[%p1%d@, if=/usr/share/tabset/stdcrt,
+       il=\E[%p1%dL, il1=\EE, ind=^J, indn=\E[%p1%dS, invis=\EG1,
+       ip=$<3>,
+       is1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er,
+       is2=\EF2\EG0\E\\L, is3=\E<\E[=4l\E[=8h, kHOM=\E\s\s\s,
+       kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
+       kdch1=\EW, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r,
+       kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+       kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ll=\E[25;1H,
+       mc0=\E[0;0i, mc4=\Ea, mc5=\E`, nel=^M^J,
+       pfkey=\E|%p1%{48}%+%c3%p2%s\031,
+       pfloc=\E|%p1%{48}%+%c2%p2%s\031,
+       pfx=\E|%p1%{48}%+%c1%p2%s\031,
+       pln=\E_%p1%{63}%+%c%p2%s\r, prot=\E&,
+       rep=\E[%p2%db%p1%c, rev=\EG4,
+       rf=/usr/share/tabset/stdcrt, ri=\Ej, rin=\E[%p1%dT,
+       rmacs=\E%%, rmam=\E[=7l, rmcup=\E.3\Er\E[1;25r\E[25;0H,
+       rmdc=\0, rmir=\Er, rmln=\E[4;1v, rmso=\EG0, rmul=\EG0,
+       rmxon=^N, rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l,
+       rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=13.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=21l\E[=23l\E[=3l\E_40\E_50\En\Ew\Ee \Ex0\0\0\Ex1\0\0\Ex2\0\0\Ex3\0\0\Ex4\0\0\E1,
+       rs3=\E[=19h\E.3\E9\E0O\0\0\0\0\0\E0o\0\0\0\0\0\E0J\177\0\0\0\0,
+       sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p9%t\E$%e\E%%%;,
+       sgr0=\EG0, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
+       smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O,
+       tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0,
+
+#### Visual (vi)
+#
+# In September 1993, Visual Technology of Westboro, Massachusetts,
+# merged with White Pine Software of Nashua, New Hampshire.
+#
+# White Pine Software may be contacted at +1 603/886-9050.
+# Or visit White Pine on the World Wide Web at URL http://www.wpine.com.
+#
+
+# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs>
+# Recently I hacked together the following termcap for Visual
+# Technology's Visual 50 terminal. It's a slight modification of
+# the vt52 termcap.
+# It's intended to run when the Visual 50 is in vt52 emulation mode
+# (I know what you're thinking; if it's emulating a vt52, then why
+# another termcap? Well, it turns out that the Visual 50 can handle
+# <dl1> and db(?) among other things, which the vt52 can't)
+# The termcap works OK for the most part. The only problem is on
+# character inserts. The whole line gets painfully redrawn for each
+# character typed. Any suggestions?
+# Beau's entry is combined with the vi50 entry from University of Wisconsin.
+# Note especially the <il1> function.  <kf4>-<kf6> are really l4-l6 in
+# disguise; <kf7>-<kf9> are really l1-l3.
+vi50|visual 50,
+       OTbs, OTpt, am, da, db, msgr,
+       cols#80, it#8, lines#24,
+       OTnl=^J, bel=^G, cbt=\Ez$<4/>, clear=\EH\EJ, cr=^M, cub1=^H,
+       cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=\EA, dl1=\EM$<3*/>, ed=\EJ, el=\EK$<16/>, home=\EH,
+       ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\EV,
+       kf5=\EE, kf6=\E], kf7=\EL, kf8=\Ev, kf9=\EM, khome=\EH,
+       nel=^M^J, ri=\EI, rmso=\ET, rmul=\EW, smso=\EU, smul=\ES,
+# this one was BSD & SCO's vi50
+vi50adm|visual 50 in adm3a mode,
+       am, msgr,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\EM,
+       ed=\Ek, el=\EK, home=\EH, ht=^I, il1=\EL, ind=^J, kbs=^H,
+       kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH,
+       rmso=\ET, smso=\EU,
+# From: Jeff Siegal <jbs@quiotix.com>
+vi55|Visual 55,
+       OTbs, am, mir, msgr,
+       cols#80, it#8, lines#24,
+       clear=\Ev, csr=\E_%p1%{65}%+%c%p2%{65}%+%c, cub1=^H,
+       cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=\EA, dch1=\Ew, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I,
+       il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EI, rmir=\Eb, rmso=\ET,
+       smir=\Ea, smso=\EU,
+
+# Visual 200 from BRL
+# The following switch settings are assumed for normal operation:
+#      FULL_DUPLEX             SCROLL                  CR
+#      AUTO_NEW_LINE_ON        VISUAL_200_EMULATION_MODE
+# Other switches may be set for operator convenience or communication
+# requirements.
+# Character insertion is kludged in order to get around the "beep" misfeature.
+# (This cap is commented out because <smir>/<rmir> is more efficient -- esr)
+# Supposedly "4*" delays should be used for <il1>, <ed>, <clear>, <dch1>,
+# and <dl1> strings, but we seem to get along fine without them.
+vi200|visual 200,
+       OTbs, OTpt, am, mir, msgr,
+       OTkn#10, cols#80, it#8, lines#24,
+       acsc=, bel=^G, cbt=\Ez, clear=\Ev, cnorm=\Ec, cr=^M, cub1=^H,
+       cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=\EA, cvvis=\Ed, dch1=\EO, dim=\E4, dl1=\EM, ed=\Ey,
+       el=\Ex, home=\EH, ht=^I, hts=\E1, il1=\EL, ind=^J, invis=\Ea,
+       kbs=^H, kclr=\Ev, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kdch1=\EO, kdl1=\EM, ked=\EJ, kel=\Et, kf0=\E?p,
+       kf1=\E?q, kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v,
+       kf7=\E?w, kf8=\E?x, kf9=\E?y, khome=\EH, khts=\E1, kich1=\Ei,
+       kil1=\EL, krmir=\Ej, mc0=\EH\E], mc4=\EX, mc5=\EW, ri=\EI,
+       rmacs=\EG, rmkx=\E>, rmso=\E3,
+       rs1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX, sgr0=\E3\Eb, smacs=\EF,
+       smkx=\E=, smso=\E4, tbc=\Eg,
+# The older Visuals didn't come with function keys. This entry uses
+# <smkx> and <rmkx> so that the keypad keys can be used as function keys.
+# If your version of vi doesn't support function keys you may want
+# to use vi200-f.
+vi200-f|visual 200 no function keys,
+       is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, kf0=\E?p, kf1=\E?q,
+       kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, kf7=\E?w,
+       kf8=\E?x, kf9=\E?y, rmkx=\E>, rmso@, smkx=\E=, smso@,
+       use=vi200,
+vi200-rv|visual 200 reverse video,
+       cnorm@, cvvis@, ri@, rmso=\E3, smso=\E4, use=vi200,
+
+# the function keys are programmable but we don't reprogram them to their
+# default values with <is2> because programming them is very verbose. maybe
+# an initialization file should be made for the 300 and they could be stuck
+# in it.
+# (vi300: added <rmam>/<smam> based on init string -- esr)
+vi300|visual 300 ansi x3.64,
+       am, bw, mir, xenl,
+       cols#80, lines#24,
+       bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       dch1=\E[P$<40>, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+       il1=\E[L, ind=^J,
+       is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kf1=\E_A\E\\, kf2=\E_B\E\\, kf3=\E_C\E\\, kf4=\E_D\E\\,
+       kf5=\E_E\E\\, kf6=\E_F\E\\, kf7=\E_G\E\\, kf8=\E_H\E\\,
+       kf9=\E_I\E\\, khome=\E[H, ri=\EM, rmam=\E[?7l, rmir=\E[4l,
+       rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
+       smso=\E[1m, smul=\E[4m,
+# some of the vi300s have older firmware that has the command
+# sequence for setting editing extent reversed.
+vi300-old|visual 300 with old firmware (set edit extent reversed),
+       is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s,
+       use=vi300,
+
+# Visual 500 prototype entry from University of Wisconsin.
+# The best place to look for the escape sequences is page A1-1 of the
+# Visual 500 manual.  The initialization sequence given here may be
+# overkill, but it does leave out some of the initializations which can
+# be done with the menus in set-up mode.
+# The :xp: line below is so that emacs can understand the padding requirements
+# of this slow terminal.  :xp: is 10 time the padding factor.
+# (vi500: removed unknown :xp#4: termcap;
+# also added empty <acsc> to suppress tic warning -- esr)
+vi500|visual 500,
+       am, mir, msgr,
+       cols#80, it#8, lines#33,
+       acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=^M,
+       csr=\E(%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=\EB,
+       cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
+       dch1=\EO$<3*/>, dl1=\EM$<3*/>, ed=\Ey$<3*/>,
+       el=\Ex$<16/>, home=\EH, ht=\011$<8/>, il1=\EL\Ex$<3*/>,
+       ind=^J,
+       is2=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\\,
+       kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+       khome=\EH, nel=^M^J, rmacs=^O, rmir=\Ej, rmso=\E^G,
+       rmul=\E^C, smacs=^N, smir=\Ei, smso=\E^H, smul=\E^D,
+
+# The visual 550 is a visual 300 with tektronix graphics,
+# and with 33 lines. clear screen is modified here to
+# also clear the graphics.
+vi550|visual 550 ansi x3.64,
+       lines#33,
+       clear=\030\E[H\E[2J, use=vi300,
+
+vi603|visual603|visual 603,
+       hs, mir,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
+       csr=\E[%i%p1%d;%p2%dr, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+       dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, il1=\E[L,
+       ind=\ED, is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r,
+       rev=\E[7m, ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+       sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=\EP2~,
+       use=vt100,
+
+#### Wyse (wy)
+#
+#      Wyse Technology
+#      3471 North First Street
+#      San Jose, CA 95134
+#      Vox: (408)-473-1200
+#      Fax: (408) 473-1222
+#      Web: http://www.wyse.com
+#
+# Wyse sales can be reached by phone at 1-800-GET-WYSE.  Tech support is at
+# (800)-800-WYSE (option 5 gets you a human).  There's a Web page at the
+# obvious address, <http://www.wyse.com>.  They keep terminfo entries at
+# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>.
+#
+# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995.
+# They now own the Qume and Amdek brands, too.  So these are the people to
+# talk with about all Link, Qume, and Amdek terminals.
+#
+# These entries include a few small fixes.
+# I canceled the bel capacities in the vb entries.
+# I made two trivial syntax fixes in the wyse30 entry.
+# I made some entries relative to adm+sgr.
+#
+#
+# Note: The wyse75, wyse85, and wyse99 have been discontinued.
+
+#         Although the Wyse 30 can support more than one attribute
+#      it requires magic cookies to do so.  Many applications do not
+#      function well with magic cookies.  The following terminfo uses
+#      the protect mode to support one attribute (dim) without cookies.
+#      If more than one attribute is needed then the wy30-mc terminfo
+#      should be used.
+#
+wy30|wyse30|Wyse 30,
+       am, bw, hs, mc5i, mir, msgr, xon,
+       cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
+       acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
+       civis=\E`0, clear=\E+$<80>, cnorm=\E`1, cr=^M, cub1=^H,
+       cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=^K, dch1=\EW$<10>, dim=\E`7\E), dl1=\ER$<1>,
+       dsl=\EF\r, ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9,
+       fsl=^M, home=^^, ht=\011$<1>, hts=\E1, il1=\EE$<2>,
+       ind=\n$<2>, ip=$<2>, is2=\E'\E(\E\^3\E`9\016\024,
+       kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
+       kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kent=\E7,
+       kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+       kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=^^, kich1=\EQ,
+       kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er, ll=^^^K, mc0=\EP, mc4=^T,
+       mc5=^X, nel=^M^J, pfx=\Ez%p1%{63}%+%c%p2%s\177,
+       pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), ri=\Ej$<3>,
+       rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
+       sgr=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
+       sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
+       smso=\E`7\E), tbc=\E0, tsl=\EF,
+#
+#      This terminal description uses the non-hidden attribute mode
+#      (with magic cookie).
+#
+# (wy30-mc: added <smcup> to suppress tic warning --esr)
+wy30-mc|wyse30-mc|wyse 30 with magic cookies,
+       msgr@,
+       ma@, xmc#1,
+       blink=\EG2, dim=\EGp, prot=\EG0\E), rmacs=\EG0\EH\003,
+       rmcup=\EG0, rmso=\EG0,
+       sgr=\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%;,
+       sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
+       smso=\EG4, use=wy30, use=adm+sgr,
+#      The mandatory pause used by <flash> does not work with
+#      older versions of terminfo.  If you see this effect then
+#      unset xon and delete the / from the delay.
+#      i.e. change $<100/> to $<100>
+wy30-vb|wyse30-vb|wyse 30 visible bell,
+       bel@, use=wy30,
+#
+#         The Wyse 50 can support one attribute (e.g. Dim, Inverse,
+#      Normal) without magic cookies by using the protect mode.
+#      The following description uses this feature, but when more
+#      than one attribute is put on the screen at once, all attributes
+#      will be changed to be the same as the last attribute given.
+#         The Wyse 50 can support more attributes when used with magic
+#      cookies.  The wy50-mc terminal description uses magic cookies
+#      to correctly handle multiple attributes on a screen.
+#
+wy50|wyse50|Wyse 50,
+       am, bw, hs, mc5i, mir, msgr, xon,
+       cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
+       acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
+       civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, cub1=^H,
+       cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, dsl=\EF\r,
+       ed=\EY$<20>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
+       home=^^, ht=^I, hts=\E1, il1=\EE, ind=\n$<2>, ip=$<1>,
+       is1=\E`\:\E`9$<30>, is2=\016\024\E'\E(, kHOM=\E{, kbs=^H,
+       kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW,
+       kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
+       kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
+       kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+       kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+       kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
+       ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J,
+       pfx=\Ez%p1%{63}%+%c%p2%s\177,
+       pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), rev=\E`6\E),
+       ri=\Ej, rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
+       sgr=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
+       sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
+       smso=\E`6\E), tbc=\E0, tsl=\EF,
+#
+#      This terminal description uses the non-hidden attribute mode
+#      (with magic cookie).
+#
+#      The mandatory pause used by flash does not work with some
+#      older versions of terminfo.  If you see this effect then
+#      unset <xon> and delete the / from the delay.
+#      i.e. change $<100/> to $<100>
+# (wy50-mc: added <smcup> to suppress tic warning --esr)
+wy50-mc|wyse50-mc|wyse 50 with magic cookies,
+       msgr@,
+       ma@, xmc#1,
+       blink=\EG2, dim=\EGp, prot=\EG0\E), rev=\EG4,
+       rmacs=\EG0\EH\003, rmcup=\EG0, rmso=\EG0,
+       sgr=\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%;,
+       sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
+       smso=\EGt, use=wy50, use=adm+sgr,
+wy50-vb|wyse50-vb|wyse 50 visible bell,
+       bel@, use=wy50,
+wy50-w|wyse50-w|wyse 50 132-column,
+       cols#132, lw#7, nlab#16, wsl#97,
+       cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
+       use=wy50,
+wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell,
+       bel@, use=wy50-w,
+
+#
+#      The Wyse 350 is a Wyse 50 with color.
+#      Unfortunately this means that it has magic cookies.
+#      The color attributes are designed to overlap the reverse, dim and
+#      underline attributes.  This is nice for monochrome applications
+#      because you can make underline stuff green (or any other color)
+#      but for true color applications it's not so hot because you cannot
+#      mix color with reverse, dim or underline.
+#          To further complicate things one of the attributes must be
+#      black (either the foreground or the background).  In reverse video
+#      the background changes color with black letters.  In normal video
+#      the foreground changes colors on a black background.
+#          This terminfo uses some of the more advanced features of curses
+#      to display both color and blink.  In the final analysis I am not
+#      sure that the wy350 runs better with this terminfo than it does
+#      with the wy50 terminfo (with user adjusted colors).
+#
+#      The mandatory pause used by flash does not work with
+#      older versions of terminfo.  If you see this effect then
+#      unset xon and delete the / from the delay.
+#      i.e. change $<100/> to $<100>
+#
+# Bug: The <op> capability resets attributes.
+wy350|wyse350|Wyse 350,
+       am, bw, hs, mc5i, mir, xon,
+       colors#8, cols#80, lh#1, lines#24, lw#8, ncv#55, nlab#8, pairs#8,
+       wsl#45, xmc#1,
+       acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
+       cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
+       cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<1>,
+       dim=\EGp, dl1=\ER, dsl=\EF\r, ed=\EY$<20>, el=\ET,
+       flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
+       il1=\EE, ind=\n$<2>, ip=$<1>, is1=\E`\:\E`9$<30>,
+       is2=\016\024\E'\E(, is3=\E%?, kHOM=\E{, kbs=^H, kcbt=\EI,
+       kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
+       ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
+       kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
+       kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+       kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+       kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
+       ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J, oc=\E%?, op=\EG0,
+       pfx=\Ez%p1%{63}%+%c%p2%s\177,
+       pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\EG0\E), ri=\Ej,
+       rmacs=\EG0\EH\003, rmir=\Er, rmln=\EA11, setb=,
+       setf=%?%p1%{0}%=%t%{76}%e%p1%{1}%=%t%{64}%e%p1%{2}%=%t%{8}%e%p1%{3}%=%t%{72}%e%p1%{4}%=%t%{4}%e%p1%{5}%=%t%{68}%e%p1%{6}%=%t%{12}%e%p1%{7}%=%t%{0}%;%PC\EG%gC%gA%+%{48}%+%c,
+       sgr=%{0}%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;%PA\EG%?%gC%t%gC%e%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p5%t%{64}%|%;%;%gA%+%{48}%+%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
+       sgr0=\EG0\E(\EH\003%{0}%PA%{0}%PC, smacs=\EG0\EH\002,
+       smir=\Eq, smln=\EA10, tbc=\E0, tsl=\EF, use=adm+sgr,
+wy350-vb|wyse350-vb|wyse 350 visible bell,
+       bel@, use=wy350,
+wy350-w|wyse350-w|wyse 350 132-column,
+       cols#132, lw#7, nlab#16, wsl#97,
+       cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
+       use=wy350,
+wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell,
+       bel@, use=wy350-w,
+#
+#      This terminfo description is untested.
+#      The wyse100 emulates an adm31, so the adm31 entry should work.
+#
+wy100|wyse 100,
+       hs, mir,
+       cols#80, lines#24, xmc#1,
+       bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, dsl=\EA31, ed=\EY, el=\ET, fsl=^M, il1=\EE, ind=^J,
+       invis@, is2=\Eu\E0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
+       kcuu1=^K, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
+       kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=\E{,
+       rmir=\Er, smir=\Eq, tsl=\EF, use=adm+sgr,
+#
+#      The Wyse 120/150 has most of the features of the Wyse 60.
+#      This terminal does not need padding up to 9600 baud!
+#      <msgr> should be set but the clear screen fails when in
+#      alt-charset mode.  Try \EcE\s\s\E+\s if the screen is really clear
+#      then set <msgr>.
+#
+wy120|wyse120|wy150|wyse150|Wyse 120/150,
+       am, bw, hs, km, mc5i, mir, msgr, xon,
+       cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
+       acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+       bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
+       cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
+       dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
+       flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=\011$<1>,
+       hts=\E1, il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
+       is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
+       is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
+       kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
+       kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+       kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+       kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+       kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
+       kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
+       mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
+       pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
+       pfx=\EZ1%p1%{63}%+%c%p2%s\177,
+       pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
+       rmacs=\EcD, rmam=\Ed., rmcup=\Ew1, rmir=\Er, rmln=\EA11,
+       rmxon=\Ec20, rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
+       rs3=\EwG\Ee($<100>,
+       sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+       sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
+       smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
+       tbc=\E0, tsl=\EF, use=adm+sgr,
+#
+wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column,
+       cols#132, lw#7, nlab#16, wsl#97,
+       cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
+       rs2=\E`;$<70>, use=wy120,
+#
+wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines,
+       lh@, lines#25, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<100>, use=wy120,
+#
+wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines,
+       lh@, lines#25, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<100>, use=wy120-w,
+#
+wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell,
+       bel@, use=wy120,
+#
+wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell,
+       bel@, use=wy120-w,
+#
+#      The Wyse 60 is like the Wyse 50 but with more padding.
+#      The reset strings are slow and the pad times very depending
+#      on other parameters such as font loading.  I have tried
+#      to follow the following outline:
+#
+#              <rs1> -> set personality
+#              <rs2> -> set number of columns
+#              <rs3> -> set number of lines
+#              <is1> -> select the proper font
+#              <is2> -> do the initialization
+#              <is3> -> set up display memory (2 pages)
+#
+#      The Wyse 60's that have vt100 emulation are slower than the
+#      older Wyse 60's.  This change happened mid-1987.
+#      The capabilities effected are <dch1> <dl1> <il1> <ind> <ri>
+#
+#      The meta key is only half right.  This terminal will return the
+#      high order bit set when you hit CTRL-function_key
+#
+#      It may be useful to assign two function keys with the
+#      values  \E=(\s  look at old data in page 1
+#              \E=W,   look at bottom of page 1
+#      where \s is a space ( ).
+#
+#      Note:
+#         The Wyse 60 runs faster when the XON/XOFF
+#         handshake is turned off.
+#
+# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid
+# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
+wy60|wyse60|Wyse 60,
+       am, bw, hs, km, mc5i, mir, msgr,
+       cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45,
+       acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+       bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>,
+       cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>, dsl=\EF\r,
+       ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
+       home=\E{, ht=\011$<1>, hts=\E1, il1=\EE$<4>, ind=\n$<5>,
+       ip=$<3>, is1=\EcB0\EcC1,
+       is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
+       is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
+       kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
+       kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+       kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+       kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+       kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
+       kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
+       mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
+       pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
+       pfx=\EZ1%p1%{63}%+%c%p2%s\177,
+       pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
+       rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew1, rmir=\Er,
+       rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<150>,
+       rs2=\EeG$<150>, rs3=\EwG\Ee($<200>,
+       sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+       sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
+       smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
+       tbc=\E0, tsl=\EF, use=adm+sgr,
+#
+wy60-w|wyse60-w|wyse 60 132-column,
+       cols#132, lw#7, nlab#16, wsl#97,
+       cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<16>, ip=$<5>,
+       rs2=\EeF$<150>\E`;$<150>, use=wy60,
+#
+wy60-25|wyse60-25|wyse 60 80-column 25-lines,
+       lh@, lines#25, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<200>, use=wy60,
+wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines,
+       lh@, lines#25, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<200>, use=wy60-w,
+#
+wy60-42|wyse60-42|wyse 60 80-column 42-lines,
+       lines#42,
+       clear=\E+$<260>, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<2>,
+       dch1=\EW$<16>, dl1=\ER$<11>, ed=\Ey$<260>, il1=\EE$<11>,
+       ind=\n$<9>, ip=$<5>, is1=\EcB2\EcC3, nel=\r\n$<6>,
+       ri=\Ej$<10>, rs3=\Ee*$<150>, use=wy60,
+wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines,
+       cols#132, lw#7, nlab#16, wsl#97,
+       clear=\E+$<260>, cup=\Ea%i%p1%dR%p2%dC$<2>,
+       dch1=\EW$<19>, ed=\Ey$<260>, home=\036$<2>, ip=$<6>,
+       nel=\r\n$<11>, rs2=\EeF$<150>\E`;$<150>, use=wy60-42,
+#
+wy60-43|wyse60-43|wyse 60 80-column 43-lines,
+       lh@, lines#43, lw@, nlab@,
+       pln@, rs3=\Ee+$<150>, use=wy60-42,
+wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines,
+       lh@, lines#43, lw@, nlab@,
+       pln@, rs3=\Ee+$<150>, use=wy60-42-w,
+#
+wy60-vb|wyse60-vb|Wyse 60 visible bell,
+       bel@, use=wy60,
+wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell,
+       bel@, use=wy60-w,
+
+#      The Wyse-99GT looks at lot like the Wyse 60 except that it
+#      does not have the 42/43 line mode.  In the Wyse-60 the "lines"
+#      setup parameter controls the number of lines on the screen.
+#      For the Wyse 99GT the "lines" setup parameter controls the
+#      number of lines in a page.  The screen can display 25 lines max.
+#          The Wyse-99GT also has personalities for the VT220 and
+#      Tektronix 4014.  But this has no bearing on the native mode.
+#
+#      (msgr) should be set but the clear screen fails when in
+#      alt-charset mode.  Try \EcE\s\s\E+\s if the screen is really clear
+#      then set msgr, else use msgr@.
+#
+#      u0 -> enter Tektronix mode
+#      u1 -> exit Tektronix mode
+#
+wy99gt|wyse99gt|Wyse 99gt,
+       msgr@,
+       clear=\E+$<130>, dch1=\EW$<7>, dl1=\ER$<4>, ed=\Ey$<130>,
+       el=\Et$<5>, flash=\E`8$<100/>\E`9, ht=\011$<1>,
+       il1=\EE$<4>, ind=\n$<4>, ip=$<2>, is3=\Ew0$<20>, nel@,
+       ri=\Ej$<3>, rmcup=\Ew0, rs2=\E`\:$<150>, smcup=\Ew1,
+       u0=\E~>\E8, u1=\E[42h, use=wy60,
+#
+wy99gt-w|wyse99gt-w|wyse 99gt 132-column,
+       cols#132, lw#7, nlab#16, wsl#97,
+       clear=\E+$<160>, cup=\Ea%i%p1%dR%p2%dC$<2>,
+       dch1=\EW$<9>, ed=\Ey$<160>, ip=$<4>, rs2=\E`;$<150>,
+       use=wy99gt,
+#
+wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines,
+       lh@, lines#25, lw@, nlab@,
+       pln@, rs2=\E`\:$<150>, rs3=\EwG\Ee)$<200>, use=wy99gt,
+#
+wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines,
+       lh@, lines#25, lw@, nlab@,
+       pln@, rs2=\E`;$<150>, use=wy99gt-w,
+#
+wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell,
+       bel@, use=wy99gt,
+#
+wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell,
+       bel@, use=wy99gt-w,
+
+# Can't set tabs! Other bugs (ANSI mode only):
+# - can't redefine function keys (anyway, key redefinition in ANSI mode
+#   is too much complex to be described);
+# - meta key can't be described (the terminal forgets it when reset);
+# The xon-xoff handshaking can't be disabled while in ansi personality, so
+# emacs can't work at speed greater than 9600 baud.  No padding is needed at
+# this speed.
+#   dch1 has been commented out because it causes annoying glittering when
+# vi deletes one character at the beginning of a line with tabs in it.
+#   dch makes sysgen(1M) have a horrible behaviour when deleting
+# a screen and makes screen(1) behave badly, so it is disabled too. The nice
+# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are
+# not, so smir and rmir are commented out as well.
+# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard),
+       am, km, mc5i, mir, msgr, xenl,
+       cols#80, it#8, lines#25, vt#3,
+       acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J$<200>, cnorm=\E[34h\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<1>,
+       cub1=\010$<1>, cud=\E[%p1%dB, cud1=\ED,
+       cuf=\E[%p1%dC$<1>, cuf1=\E[C$<1>,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+       cvvis=\E[34l\E[?25h, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J$<8*>, el=\E[K$<1>, el1=\E[1K$<1>,
+       enacs=\E)0, flash=\E[?5h$<30/>\E[?5l, home=\E[H,
+       hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL,
+       il1=\E[L, ind=\n$<1>, invis=\E[8m,
+       is2=\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,
+       kbs=^H, kcbt=\E[z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+       kcuu1=\EOA, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf17=\E[K, kf18=\E[31~, kf19=\E[32~, kf2=\EOQ,
+       kf20=\E[33~, kf21=\E[34~, kf22=\E[35~, kf23=\E[1~,
+       kf24=\E[2~, kf3=\EOR, kf4=\EOS, kf5=\E[M, kf6=\E[17~,
+       kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ll=\E[24E, mc0=\E[?19h,
+       mc4=\E[4i, mc5=\E[5i, nel=\EE, prot=\E[1"q, rc=\E8,
+       rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
+       rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m,
+       rs2=\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,
+       sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%O%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m\E[%?%p8%t1%;"q%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017\E["q, smacs=^N, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+
+#   This is the american terminal. Here tabs work fine.
+# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard),
+       hts=\EH, is3=\E[?5l, rs3=\E[?5l, tbc=\E[3g, use=wy99-ansi,
+
+# This terminal (firmware version 02) has a lot of bugs:
+# - can't set tabs;
+# - other bugs in ANSI modes (see above).
+# This description disables handshaking when using cup. This is because
+# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal
+# cannot be used at speeds greater than 9600 baud, because at greater
+# speeds handshaking is needed even for character sending. If you use
+# DTR handshaking, you can use even greater speeds.
+# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
+       am, bw, hs, km, mc5i, mir, msgr, xon,
+       cols#80, it#8, lines#25, wsl#46,
+       acsc='x+y.wi~_vj(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
+       blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032,
+       cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, dsl=\EF\r,
+       ed=\EY$<8*>, el=\ET$<8>, enacs=\Ec@1J$<2000>,
+       flash=\E\^1$<30/>\E\^0, fsl=^M, home=^^, ht=^I, il1=\EE,
+       ind=^J, invis=\EG3,
+       is2=\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,
+       ka1=^^, ka3=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H,
+       kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r,
+       kf11=^AJ\r, kf12=^AK\r, kf13=^A`\r, kf14=^Aa\r, kf15=^Ab\r,
+       kf16=^Ac\r, kf17=^Ad\r, kf18=^Ae\r, kf19=^Af\r, kf2=^AA\r,
+       kf20=^Ag\r, kf21=^Ah\r, kf22=^Ai\r, kf23=^Aj\r, kf24=^Ak\r,
+       kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r, kprt=\EP, mc0=\EP, mc4=^T, mc5=\Ed#,
+       nel=^_, prot=\E), rev=\EG4, ri=\Ej, rmacs=\EcD, rmam=\Ed.,
+       rmcup=\Ec21\Ec31, rmir=\Er, rmso=\EG0, rmxon=\Ec20\Ec30,
+       rs2=\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,
+       sgr=\E(\EG%{48}%?%p1%p3%O%t%{4}%+%;%?%p2%t%{8}%+%;%?%p4%t%{2}%+%;%?%p5%t%{64}%+%;%?%p7%t%{1}%+%;%c%?%p8%t\E)%;%?%p9%t\EcE%e\EcD%;,
+       sgr0=\E(\EG0, smacs=\EcE, smam=\Ed/, smcup=\Ec20\Ec30,
+       smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, tsl=\EF,
+
+# This is the american terminal. Here tabs work.
+# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard),
+       hts=\E1, tbc=\E0, use=wy99f,
+
+#
+#      The Wyse 160 is combination of the WY-60 and the WY-99gt.
+#      The reset strings are slow and the pad times very depending
+#      on other parameters such as font loading.  I have tried
+#      to follow the following outline:
+#
+#              <rs1> -> set personality
+#              <rs2> -> set number of columns
+#              <rs3> -> set number of lines
+#              <is1> -> select the proper font
+#              <is2> -> do the initialization
+#              <is3> -> set up display memory (2 pages)
+#
+#      The display memory may be used for either text or graphics.
+#      When "Display Memory = Shared" the terminal will have more pages
+#      but garbage may be left on the screen when you switch from
+#      graphics to text.  If "Display Memory = Unshared" then the
+#      text area will be only one page long.
+#
+# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid
+# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
+wy160|wyse160|Wyse 160,
+       am, bw, hs, km, mc5i, mir, msgr,
+       cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
+       acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+       bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>,
+       cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>,
+       dclk=\E`b, dim=\EGp, dl1=\ER$<1>, dsl=\EF\r, ed=\EY$<30>,
+       el=\ET$<5>, flash=\E`8$<100/>\E`9, fsl=^M, home=\E{, ht=^I,
+       hts=\E1, il1=\EE$<1>, ind=\n$<1>, ip=$<2>, is1=\EcB0\EcC1,
+       is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
+       is3=\Ew0$<100>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
+       kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
+       kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+       kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+       kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+       kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
+       kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
+       mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<1>,
+       pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
+       pfx=\EZ1%p1%{63}%+%c%p2%s\177,
+       pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<1>,
+       rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew0, rmir=\Er,
+       rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<70>,
+       rs2=\E`\:$<100>, rs3=\EwG\Ee($<140>,
+       sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+       sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
+       smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
+       tbc=\E0, tsl=\EF, use=adm+sgr,
+#
+wy160-w|wyse160-w|wyse 160 132-column,
+       cols#132, lw#7, nlab#16, wsl#90,
+       cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<9>,
+       rs2=\EeF$<150>\E`;$<150>, use=wy160,
+#
+wy160-25|wyse160-25|wyse 160 80-column 25-lines,
+       lh@, lines#25, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<200>, use=wy160,
+wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines,
+       lh@, lines#25, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<200>, use=wy160-w,
+#
+wy160-42|wyse160-42|wyse 160 80-column 42-lines,
+       lines#42,
+       clear=\E+$<50>, dl1=\ER$<2>, ed=\Ey$<50>, il1=\EE$<2>,
+       ind=\n$<2>, is1=\EcB2\EcC3, nel=\r\n$<2>, ri=\Ej$<2>,
+       rs3=\Ee*$<150>, use=wy160,
+wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines,
+       cols#132, lw#7, nlab#16, wsl#90,
+       cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<8>, ip=$<3>,
+       rs2=\EeF$<150>\E`;$<150>, use=wy160-42,
+#
+wy160-43|wyse160-43|wyse 160 80-column 43-lines,
+       lh@, lines#43, lw@, nlab@,
+       pln@, rs3=\Ee+$<150>, use=wy160-42,
+wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines,
+       lh@, lines#43, lw@, nlab@,
+       pln@, rs3=\Ee+$<150>, use=wy160-42-w,
+#
+wy160-vb|wyse160-vb|Wyse 160 visible bell,
+       bel@, use=wy160,
+wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell,
+       bel@, use=wy160-w,
+#
+#      The Wyse 75 is a vt100 lookalike without advanced video.
+#
+#         The Wyse 75 can support one attribute (e.g. Dim, Inverse,
+#      Underline) without magic cookies.  The following description
+#      uses this capability, but when more than one attribute is
+#      put on the screen at once, all attributes will be changed
+#      to be the same as the last attribute given.
+#         The Wyse 75 can support more attributes when used with magic
+#      cookies.  The wy75-mc terminal description uses magic cookies
+#      to correctly handle multiple attributes on a screen.
+#
+wy75|wyse75|wyse 75,
+       am, hs, mc5i, mir, msgr, xenl, xon,
+       cols#80, lines#24, ma#1, pb#1201, wsl#78,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[J$<30>,
+       cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr$<2>,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP$<3*>,
+       dch1=\E[P$<3>, dim=\E[0t\E[2m, dl=\E[%p1%dM$<1*>,
+       dl1=\E[M, dsl=\E[>\,\001\001\E[>-\001\001,
+       ech=\E[%p1%dX, ed=\E[J$<30>, el=\E[K$<3>, el1=\E[1K$<3>,
+       enacs=\E)0, flash=\E[30h\E\,\E[30l$<250>, fsl=^A,
+       home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
+       ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
+       ind=\n$<2>, ip=$<1>,
+       is1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h,
+       is2=\E>\E(B\E)0\017, is3=\E[m, kbs=^H, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K,
+       kf1=\E[?5i, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+       kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+       kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[?3i,
+       kf20=\E[34~, kf21=\E[35~, kf3=\E[2i, kf4=\E[@, kf5=\E[M,
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
+       khlp=\E[28~, khome=\E[H, kich1=\E[@, kil1=\E[L, knp=\E[6~,
+       kpp=\E[5~, kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, mc4=\E[4i,
+       mc5=\E[5i, rc=\E8, rev=\E[1t\E[7m, ri=\EM$<2>, rmacs=^O,
+       rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m,
+       rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l,
+       sc=\E7,
+       sgr=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m,
+       tbc=\E[3g, tsl=\E[>\,\001, use=vt220+keypad,
+#
+#      This terminal description uses the non-hidden attribute mode
+#      (with magic cookie).
+#
+wy75-mc|wyse75-mc|wyse 75 with magic cookies,
+       msgr@,
+       ma@, xmc#1,
+       blink=\E[2p, dim=\E[1p, invis=\E[4p, is3=\E[m\E[p,
+       rev=\E[16p, rmacs=\E[0p\017, rmso=\E[0p, rmul=\E[0p,
+       sgr=\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%;,
+       sgr0=\E[0p\017, smacs=\E[0p\016, smso=\E[17p, smul=\E[8p,
+       use=wy75,
+wy75-vb|wyse75-vb|wyse 75 with visible bell,
+       pb@,
+       bel@, use=wy75,
+wy75-w|wyse75-w|wyse 75 in 132 column mode,
+       cols#132, wsl#130,
+       rs2=\E[35h\E[?3h$<80>, use=wy75,
+wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns,
+       pb@,
+       bel@, use=wy75-w,
+#
+#      Wyse 85 emulating a vt220 7 bit mode.
+#              24 line screen with status line.
+#
+#      The vt220 mode permits more function keys but it wipes out
+#      the escape key.  I strongly recommend that <f11> be set to
+#      escape (esc).
+#      The terminal may have to be set for 8 data bits and 2 stop
+#      bits for the arrow keys to work.
+#      The Wyse 85 runs faster with XON/XOFF enabled.  Also the
+#      <dch> and <ich> work best when XON/XOFF is set.  <ich> and
+#      <dch> leave trash on the screen when used without XON/XOFF.
+#
+wy85|wyse85|wyse 85,
+       am, hs, mc5i, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
+       dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
+       ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
+       enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
+       fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
+       ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
+       ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
+       is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
+       is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+       kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+       kf19=\E[33~, kf20=\E[34~, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
+       khome=\E[26~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
+       mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
+       rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
+       rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
+       rs3=\E[?5l, sc=\E7,
+       sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       tsl=\E[40h\E7\E[25;%i%p1%dH, use=vt220+keypad,
+#
+#      Wyse 85 with visual bell.
+wy85-vb|wyse85-vb|wyse 85 with visible bell,
+       bel@, flash=\E[30h\E\,\E[30l$<300>, use=wy85,
+#
+#      Wyse 85 in 132-column mode.
+wy85-w|wyse85-w|wyse 85 in 132-column mode,
+       cols#132, wsl#132,
+       rs2=\E[35h\E[?3h$<70>, use=wy85,
+#
+#      Wyse 85 in 132-column mode with visual bell.
+wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns,
+       bel@, use=wy85-w,
+
+# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998
+# This copes with an apparent firmware bug in the wy85.  He writes:
+# "What I did was change leave the terminal cursor keys set to Normal
+# (instead of application), and change \E[ to \233 for all the keys in
+# terminfo. At one point, I found some reference indicating that this
+# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just
+# me), but I can't find that and the server under my bookmark to "Wyse
+# Technical" isn't responding.  So there's the question of wether the wy85
+# terminfo should reflect the manufactuer's intended behaviour of the terminal
+# or the actual."
+wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode,
+       am, hs, mc5i, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
+       dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
+       ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
+       enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
+       fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
+       ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
+       ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
+       is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
+       is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
+       kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B,
+       kcuf1=\233C, kcuu1=\233A, kdch1=\2333~, kent=\EOM,
+       kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
+       kf13=\23325~, kf14=\23326~, kf15=\23328~, kf16=\23329~,
+       kf17=\23331~, kf18=\23332~, kf19=\23333~, kf2=\EOQ,
+       kf20=\23334~, kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~,
+       kf8=\23319~, kf9=\23320~, kfnd=\2331~, khlp=\23328~,
+       khome=\23326~, kich1=\2332~, knp=\2336~, kpp=\2335~,
+       kslt=\2334~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
+       mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
+       rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
+       rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
+       rs3=\E[?5l, sc=\E7,
+       sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;+m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       tsl=\E[40h\E7\E[25;%i%p1%dH,
+#
+#      Wyse 185 emulating a vt320 7 bit mode.
+#
+#      This terminal always displays 25 lines.  These lines may be used
+#      as 24 data lines and a terminal status line (top or bottom) or
+#      25 data lines.  The 48 and 50 line modes change the page size
+#      and not the number of lines on the screen.
+#
+#      The Compose Character key can be used as a meta key if changed
+#      by set-up.
+#
+wy185|wyse185|wyse 185,
+       am, hs, km, mc5i, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<3>,
+       dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
+       dsl=\E7\E[99;0H\E[K\E8, ech=\E[%p1%dX, ed=\E[J$<40>,
+       el=\E[K, el1=\E[1K, enacs=\E)0,
+       flash=\E[30h\E\,\E[30l$<100>, fsl=\E[1;24r\E8,
+       home=\E[H, hpa=\E[%i%p1%d`, ht=^I, hts=\EH,
+       ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>,
+       ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
+       is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h,
+       is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+       kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+       kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR,
+       kf4=\EOS, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, kich1=\E[2~,
+       knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3,
+       lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
+       ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l,
+       rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
+       rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
+       rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
+       sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
+       smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
+       tbc=\E[3g, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd,
+       use=vt220+keypad,
+#
+#      Wyse 185 with 24 data lines and top status (terminal status)
+wy185-24|wyse185-24|wyse 185 with 24 data lines,
+       hs@,
+       dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
+       use=wy185,
+#
+#      Wyse 185 with visual bell.
+wy185-vb|wyse185-vb|wyse 185+flash,
+       bel@, use=wy185,
+#
+#      Wyse 185 in 132-column mode.
+wy185-w|wyse185-w|wyse 185 in 132-column mode,
+       cols#132, wsl#132,
+       dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
+       ip=$<7>, rs2=\E[35h\E[?3h, use=wy185,
+#
+#      Wyse 185 in 132-column mode with visual bell.
+wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols,
+       bel@, use=wy185-w,
+
+# wy325 terminfo entries
+# Done by Joe H. Davis        3-9-92
+
+# lines 25  columns 80
+#
+wy325|wyse325|Wyse epc,
+       am, bw, hs, mc5i, mir,
+       cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
+       acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+       bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
+       cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
+       dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
+       flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
+       il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
+       is2=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
+       is3=\Ew0$<16>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
+       kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
+       kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+       kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+       kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+       kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq,
+       kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
+       mc0=\EP, mc4=^T, mc5=\Ed#,
+       pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
+       pfx=\EZ1%p1%{63}%+%c%p2%s\177,
+       pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
+       rmacs=\EcD, rmam=\Ed., rmcup=\Ew0, rmir=\Er, rmln=\EA11,
+       rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
+       rs3=\EwG\Ee($<100>,
+       sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+       sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
+       smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, tbc=\E0,
+       tsl=\EF, use=adm+sgr,
+
+#
+# lines 24  columns 80  vb
+#
+wy325-vb|wyse325-vb|wyse-325 with visual bell,
+       bel@, use=wy325,
+
+#
+# lines 24  columns 132
+#
+wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode,
+       cols#132, lw#7, nlab#16, wsl#97,
+       cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
+       rs2=\E`;$<70>, use=wy325,
+#
+# lines 25  columns 80
+#
+wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines,
+       lh@, lines#25, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<100>, use=wy325,
+#
+# lines 25  columns 132
+#
+wy325-25w|wyse325-25w|wy325 132 columns,
+       lh@, lines#25, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
+#
+# lines 25  columns 132  vb
+#
+wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video,
+       bel@, use=wy325-w,
+
+#
+# lines 42  columns 80
+#
+wy325-42|wyse325-42|wyse-325 42 lines,
+       lh@, lines#42, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<100>, use=wy325,
+#
+# lines 42  columns 132
+#
+wy325-42w|wyse325-42w|wyse-325 42 lines wide mode,
+       lh@, lines#42, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
+#
+# lines 42  columns 132  vb
+#
+wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell,
+       bel@, use=wy325-w,
+#
+# lines 43  columns 80
+#
+wy325-43|wyse325-43|wyse-325 43 lines,
+       lh@, lines#43, lw@, nlab@,
+       pln@, use=wy325,
+#
+# lines 43  columns 132
+#
+wy325-43w|wyse325-43w|wyse-325 43 lines wide mode,
+       lh@, lines#43, lw@, nlab@,
+       pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
+#
+# lines 43  columns 132  vb
+#
+wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell,
+       bel@, use=wy325-w,
+
+#      Wyse 370 -- 24 line screen with status line.
+#
+#      The terminal may have to be set for 8 data bits and 2 stop
+#      bits for the arrow keys to work.
+#
+#      If you change keyboards the terminal will send different
+#      escape sequences.
+#      The following definition is for the basic terminal without
+#      function keys.
+#
+#      <u0> -> enter Tektronix 4010/4014 mode
+#      <u1> -> exit  Tektronix 4010/4014 mode
+#      <u2> -> enter ASCII mode (from any ANSI mode)
+#      <u3> -> exit  ASCII mode (goto native ANSI mode)
+#      <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode)
+#      <u5> -> exit  Tek 4207 mode (goto native ANSI mode)
+#
+# Bug: The <op> capability resets attributes.
+wy370-nk|wyse 370 without function keys,
+       am, ccc, hs, mc5i, mir, msgr, xenl, xon,
+       colors#64, cols#80, it#8, lines#24, ncv#48, pairs#64, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<1*>, dch1=\E[P$<1>,
+       dclk=\E[31h, dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
+       dsl=\E[40l, ech=\E[%p1%dX$<.1*>, ed=\E[J$<40>,
+       el=\E[K$<10>, el1=\E[1K$<12>, enacs=\E)0,
+       flash=\E[30h\E\,\E[30l$<300>, fsl=\E[1;24r\E8,
+       home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>, hts=\EH,
+       ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
+       ind=\n$<2>,
+       initc=\E[66;%p1%d;%?%p2%{250}%<%t%{0}%e%p2%{500}%<%t%{16}%e%p2%{750}%<%t%{32}%e%{48}%;%?%p3%{250}%<%t%{0}%e%p3%{500}%<%t%{4}%e%p3%{750}%<%t%{8}%e%{12}%;%?%p4%{250}%<%t%{0}%e%p4%{500}%<%t%{1}%e%p4%{750}%<%t%{2}%e%{3}%;%{1}%+%+%+%dw,
+       invis=\E[8m, ip=$<1>, is1=\E[90;1"p\E[?5W$<6>,
+       is2=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h,
+       is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i, mc4=\E[4i,
+       mc5=\E[5i,
+       oc=\E[60w\E[63;0w\E[66;1;4w\E[66;2;13w\E[66;3;16w\E[66;4;49w\E[66;5;51w\E[66;6;61w\E[66;7;64w,
+       op=\E[m, rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O,
+       rmam=\E[?7l, rmclk=\E[31l, rmcup=\E[ R, rmir=\E[4l,
+       rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
+       rs1=\E[13l\E[3l\E!p\E[?4i, rs2=\E[35h\E[?3l$<8>,
+       rs3=\E[?5l, sc=\E7, setb=\E[62;%p1%dw, setf=\E[61;%p1%dw,
+       sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
+       smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
+       tbc=\E[3g, tsl=\E[40l\E[40h\E7\E[99;%i%p1%dH,
+       u0=\E[?38h\E8, u1=\E[?38l\E)0, u2=\E[92;52"p, u3=\E~B,
+       u4=\E[92;76"p, u5=\E%!1\E[90;1"p, vpa=\E[%i%p1%dd,
+#
+#      Function key set for the ASCII (wy-50 compatible) keyboard
+#      This is the default 370.
+#
+wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard,
+       kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kdch1=\EOQ, kdl1=\EOQ, kent=\EOM, kf1=\E[?4i,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+       kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf2=\E[?3i,
+       kf3=\E[2i, kf4=\E[@, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, khome=\E[H, kich1=\EOP, kil1=\EOP,
+       knp=\E[U, kpp=\E[V, use=wy370-nk,
+#
+#      Function key set for the VT-320 (and wy85) compatible keyboard
+#
+wy370-105k|Wyse 370 with 105 key keyboard,
+       kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+       kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+       kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
+       khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~,
+       kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4,
+       use=wy370-nk, use=vt220+keypad,
+#
+#      Function key set for the PC compatible keyboard
+#
+wy370-EPC|Wyse 370 with 102 key keyboard,
+       kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kend=\E[1~, kent=\EOM, kf1=\EOP, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+       kf5=\E[M, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[H, kich1=\E[2~, knp=\E[U, kpp=\E[V, use=wy370-nk,
+#
+#      Wyse 370 with visual bell.
+wy370-vb|Wyse 370 with visible bell,
+       bel@, use=wy370,
+#
+#      Wyse 370 in 132-column mode.
+wy370-w|Wyse 370 in 132-column mode,
+       cols#132, wsl#132,
+       rs2=\E[35h\E[?3h$<70>, use=wy370,
+#
+#      Wyse 370 in 132-column mode with visual bell.
+wy370-wvb|Wyse 370 with visible bell 132-columns,
+       flash=\E[30h\E\,\E[30l$<300>, use=wy370-w,
+wy370-rv|Wyse 370 reverse video,
+       rs3=\E[32h\E[?5h, use=wy370,
+#
+#      Wyse 99gt Tektronix 4010/4014 emulator,
+#
+wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator,
+       am, os,
+       cols#74, lines#35,
+       bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
+       cup=\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,
+       cuu1=^K, ff=^L,
+       hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
+       home=^]7`x @\037,
+       hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
+       is2=\E8, nel=^M^J, u0=\E~>\E8, u1=\E[42h,
+#
+#      Wyse 160 Tektronix 4010/4014 emulator,
+#
+wy160-tek|Wyse 160 Tektronix 4010/4014 emulator,
+       cup=\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,
+       home=^]8`g @\037, use=wy99gt-tek,
+#
+#      Wyse 370 Tektronix 4010/4014 emulator,
+#
+wy370-tek|Wyse 370 Tektronix 4010/4014 emulator,
+       am, os,
+       cols#80, lines#36,
+       bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
+       cup=\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,
+       cuu1=^K, ff=^L,
+       hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
+       home=^]8g @\037,
+       hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
+       is2=\E8, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^I, kcuu1=^K,
+       nel=^M^J, u0=\E[?38h\E8, u1=\E[?38l\E)0,
+
+# Vendor-supplied Wyse entries end here.
+
+#
+#TITLE:  TERMINFO ENTRY WY520
+#DATE:   8/5/93
+# The WY520 terminfo is based on the WY285 entry published on the WYSE
+# BBS with the addition of more function keys and special keys.
+#
+#               rs1 -> set personality
+#               rs2 -> set number of columns
+#               rs3 -> set number of lines
+#               is1 -> select the proper font
+#               is2 -> do the initialization
+#               is3 -> If this string is empty then rs3 gets sent.
+#
+#       Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard
+#       - The BS key is programmed to generate BS in smcup since
+#         is2 doesn't seem to work.
+#       - Remove and shift/Remove: delete a character
+#       - Insert : enter insert mode
+#       - Find   : delete to end of file
+#       - Select : clear a line
+#       - F11, F12, F13: send default sequences (not ESC, BS, LF)
+#       - F14 : Home key
+#       - Bottom status line (host writable line) is used.
+#       - smkx,rmkx are removed because this would put the numeric
+#         keypad in Dec application mode which doesn't seem to work
+#         with SCO applications.
+#
+wy520|wyse520|wyse 520,
+       am, hs, km, mc5i, mir, xenl, xon,
+       cols#80, it#8, lines#24, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<30>,
+       dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, dsl=\E[0$~,
+       ech=\E[%p1%dX, ed=\E[J$<40>, el=\E[K, el1=\E[1K,
+       enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`, ht=^I,
+       hts=\EH, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>,
+       il1=\E[L$<3>, ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
+       is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h,
+       is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, ked=\E[1~,
+       kel=\E[4~, kent=\EOM, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+       kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, khome=\E[26~,
+       kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1,
+       lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+       rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O, rmam=\E[?7l,
+       rmcup=\E[ R, rmir=\E[4l, rmso=\E[m, rmul=\E[24m,
+       rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
+       rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
+       sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h,
+       smcup=\E[ Q\E[?67;8h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+       tbc=\E[3g, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
+       vpa=\E[%i%p1%dd, use=vt220+keypad,
+#
+#       Wyse 520 with 24 data lines and status (terminal status)
+wy520-24|wyse520-24|wyse 520 with 24 data lines,
+       hs@,
+       dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
+       use=wy520,
+#
+#       Wyse 520 with visual bell.
+wy520-vb|wyse520-vb|wyse 520 with visible bell,
+       flash=\E[30h\E\,\E[30l$<100>, use=wy520,
+#
+#       Wyse 520 in 132-column mode.
+wy520-w|wyse520-w|wyse 520 in 132-column mode,
+       cols#132, wsl#132,
+       dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
+       ip=$<7>, rs2=\E[35h\E[?3h, use=wy520,
+#
+#       Wyse 520 in 132-column mode with visual bell.
+wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns,
+       flash=\E[30h\E\,\E[30l$<100>, use=wy520-w,
+#
+#
+#       Wyse 520 emulating a vt420 7 bit mode.
+#       The DEL key is programmed to generate BS in is2.
+#       With EPC keyboard.
+#       - 'End' key will clear till end of line on EPC keyboard
+#       - Shift/End : ignored.
+#       - Insert : enter insert mode.
+#       - Delete : delete a character (have to change interrupt character
+#                  to CTRL-C: stty intr '^c') for it to work since the
+#                  Delete key sends 7FH.
+wy520-epc|wyse520-epc|wyse 520 with EPC keyboard,
+       kdch1=\177, kel=\E[4~, kend=\E[4~, kf0=\E[21~, kf1=\E[11~,
+       kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, khome=\E[H,
+       use=wy520,
+#
+#       Wyse 520 with 24 data lines and status (terminal status)
+#       with EPC keyboard.
+wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard,
+       hs@,
+       dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
+       use=wy520-epc,
+#
+#       Wyse 520 with visual bell.
+wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard,
+       flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc,
+#
+#       Wyse 520 in 132-column mode.
+wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard,
+       cols#132, wsl#132,
+       dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
+       ip=$<7>, rs2=\E[35h\E[?3h, use=wy520-epc,
+#
+#       Wyse 520 in 132-column mode with visual bell.
+wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard,
+       flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc-w,
+#
+#       Wyse 520 in 80-column, 36 lines
+wy520-36|wyse520-36|wyse 520 with 36 data lines,
+       hs@,
+       lines#36,
+       dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
+       use=wy520,
+#
+#       Wyse 520 in 80-column, 48 lines
+wy520-48|wyse520-48|wyse 520 with 48 data lines,
+       hs@,
+       lines#48,
+       dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
+       use=wy520,
+#
+#       Wyse 520 in 132-column, 36 lines
+wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines,
+       cols#132, wsl#132,
+       rs2=\E[?3h,
+       rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
+       use=wy520-36,
+#
+#       Wyse 520 in 132-column, 48 lines
+wy520-48w|wyse520-48w|wyse 520 with 48 data lines,
+       cols#132, wsl#132,
+       rs2=\E[?3h,
+       rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
+       use=wy520-48,
+#
+#
+#       Wyse 520 in 80-column, 36 lines with EPC keyboard
+wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard,
+       hs@,
+       lines#36,
+       dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
+       use=wy520-epc,
+#
+#       Wyse 520 in 80-column, 48 lines with EPC keyboard
+wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard,
+       hs@,
+       lines#48,
+       dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
+       use=wy520-epc,
+#
+#       Wyse 520 in 132-column, 36 lines with EPC keyboard
+wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard,
+       cols#132, wsl#132,
+       rs2=\E[?3h,
+       rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
+       use=wy520-36pc,
+#
+#       Wyse 520 in 132-column, 48 lines with EPC keyboard
+wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard,
+       cols#132, wsl#132,
+       rs2=\E[?3h,
+       rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
+       use=wy520-48pc,
+
+# From: John Gilmore <hoptoad!gnu@lll-crg.arpa>
+# (wyse-vp: removed <if=/usr/share/tabset/wyse-adds>, there's no such
+# file and we don't know what <hts> is -- esr)
+wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on,
+       OTbs, am,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EW,
+       dl1=\El, ed=\Ek, el=\EK, home=^A, ht=^I, il1=\EM, ind=^J,
+       is2=\E`\:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=^J, kcuf1=^F,
+       kcuu1=^Z, khome=^A, ll=^A^Z, nel=^M^J, rmir=\Er, rmso=^O,
+       rmul=^O, rs1=\E`\:\E`9\017\Er, sgr0=^O, smir=\Eq, smso=^N,
+       smul=^N,
+
+wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad,
+       is2=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       khome=\EOH, rmkx=\E[?1l\E>$<10/>, smkx=\E[?1h\E=$<10/>,
+       use=wy75,
+
+# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu>
+wy100q|Wyse 100 for Quotron,
+       OTbs,
+       cols#80, lines#24, xmc#1,
+       cbt=\EI, clear=^Z, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, invis@,
+       is2=\E`\:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=^J,
+       kcuf1=^L, kcuu1=^K, ri=\Ej, rmir=\Er, smir=\Eq, use=adm+sgr,
+
+#### Kermit terminal emulations
+#
+# Obsolete Kermit versions may be listed in the section describing obsolete
+# non-ANSI terminal emulators later in the file.
+#
+
+# KERMIT standard all versions.
+# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
+# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
+# From: greg small <gts@populi.berkeley.edu> 9-25-84
+kermit|standard kermit,
+       OTbs,
+       cols#80, lines#24,
+       clear=\EE, cub1=^H, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+       el=\EK, home=\EH, is2=K0 Standard Kermit  9-25-84\n,
+       kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
+kermit-am|standard kermit plus auto-margin,
+       am,
+       is2=K1 Standard Kermit plus Automatic Margins\n,
+       use=kermit,
+# IBMPC Kermit 1.2.
+# Bugs: <ed>, <el>: do not work except at beginning of line!  <clear> does
+# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of
+# line).
+# From: greg small <gts@populi.berkeley.edu> 8-30-84
+pckermit|pckermit12|UCB IBMPC Kermit 1.2,
+       am,
+       lines#25,
+       clear=\EH\EJ, ed@, el@,
+       is2=K2 UCB IBMPC Kermit 1.2  8-30-84\n, use=kermit,
+# IBMPC Kermit 1.20
+# Cannot use line 25, now acts funny like ansi special scrolling region.
+# Initialization must escape from that region by cursor position to line 24.
+# Cannot use character insert because 1.20 goes crazy if insert at col 80.
+# Does not use :am: because autowrap is lost when kermit dropped and restarted.
+# From: greg small <gts@populi.berkeley.edu> 12-19-84
+pckermit120|UCB IBMPC Kermit 1.20,
+       it#8, lines#24,
+       cud1=\EB, cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I,
+       il1=\EL,
+       is2=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20  12-19-84\n,
+       rmir@, rmso=\Eq, smir@, smso=\Ep, use=kermit,
+# MS-DOS Kermit 2.27 for the IBMPC
+# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
+# Cannot use line 25, now acts funny like ansi special scrolling region.
+# Initialization must escape from that region by cursor position to line 24.
+# Does not use am: because autowrap is lost when kermit dropped and restarted.
+# Reverse video for standout like H19.
+# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
+# From: greg small <gts@populi.berkeley.edu> 3-17-85
+msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC,
+       OTbs, am@,
+       cols#80, it#8, lines#24,
+       clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
+       cvvis=\EO\Eq\EG\EwK4, dch1=\EN, dl1=\EM, ed=\EJ, el=\EK,
+       home=\EH, ht=^I, il1=\EL,
+       is2=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n,
+       kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rc=\Ek,
+       rmir=\EO, rmso=\Eq, sc=\Ej, smir=\E@, smso=\Ep,
+# MS-DOS Kermit 2.27 with automatic margins
+# From:        greg small <gts@populi.berkeley.edu> 3-17-85
+msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins,
+       am,
+       cvvis=\EO\Eq\EG\EvK5,
+       is2=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n,
+       use=msk227,
+# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC
+# Automatic margins now default.  Use ansi <sgr> for highlights.
+# Define function keys.
+# (msk22714: removed obsolete ":kn#10:" -- esr)
+# From: greg small <gts@populi.berkeley.edu> 3-17-85
+msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC,
+       am,
+       bold=\E[1m, cvvis=\EO\Eq\EG\EvK6,
+       is2=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n,
+       kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6,
+       kf7=\E7, kf8=\E8, kf9=\E9, rev=\E[7m, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smso=\E[1m, smul=\E[4m, use=mskermit227,
+# This was designed for a VT320 emulator, but it is probably a good start
+# at support for the VT320 itself.
+# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
+# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
+vt320-k3|MS-Kermit 3.00's vt320 emulation,
+       am, eslok, hs, km, mir, msgr, xenl,
+       cols#80, it#8, lines#49, pb#9600, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[J, cmdch=\E, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+       flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l,
+       fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
+       ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       is2=\E>\E F\E[?1l\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
+       kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~,
+       kpp=\E[5~, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, nel=^M^J, rc=\E8,
+       rev=\E[7m, ri=\EM, rin=\E[%p1%dL, rmacs=\E(B, rmam=\E[?7l,
+       rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+       rs1=\E(B\E)B\E>\E F\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h\E[4i\E[?4i\E[m\E[r\E[2$~,
+       sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd,
+# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991
+# ACS capabilities from Philippe De Muyter  <phdm@info.ucl.ac.be> 30 May 1996
+# (I removed a bogus boolean :mo: and added <msgr>, <smam>, <rmam> -- esr)
+vt320-k311|dec vt320 series as defined by kermit 3.11,
+       am, eslok, hs, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[;H\E[2J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
+       flash=\E[?5h\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, hts=\EH,
+       ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, ind=\ED,
+       is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
+       kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
+       lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
+       rf=/usr/share/tabset/vt100, ri=\EM, rmacs=^O,
+       rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+       rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N,
+       smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH,
+
+######## NON-ANSI TERMINAL EMULATIONS
+#
+
+#### Avatar
+#
+# These entries attempt to describe Avatar, a terminal emulation used with
+# MS-DOS bulletin-board systems.  It was designed to give ANSI-like
+# capabilities, but with cheaper (shorter) control sequences.  Messy design,
+# excessively dependent on PC idiosyncracies, but apparently rather popular
+# in the BBS world.
+#
+# No color support.  Avatar doesn't fit either of the Tektronix or HP color
+# models that terminfo knows about.  An Avatar color attribute is the
+# low 7 bits of the IBM-PC display-memory attribute.  Bletch.
+#
+# I wrote these entries while looking at the Avatar spec.  I don't have
+# the facilities to test them.  Let me know if they work, or don't.
+#
+# Avatar escapes not used by these entries (because maybe you're smarter
+# and more motivated than I am and can figure out how to wrap terminfo
+# around some of them, and because they are weird enough to be funny):
+#                              level 0:
+# ^L           -- clear window/reset current attribute to default
+# ^V^A%p1%c    -- set current color attribute, parameter decodes as follows:
+#
+#      bit:         6   5   4   3   2   1   0
+#                   |       |   |   |       |
+#                   +---+---+   |   +---+---+
+#                       |       |       |
+#                       |       |  foreground color
+#                       |  foreground intensity
+#                  background color
+#                              level 0+:
+# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c        -- scroll (p2,p3) to (p4,p5) up by p1 lines
+# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c        -- scroll (p2,p3) to (p4,p5) down by p1 lines
+# ^V^L%p1%c%p2%c%p3%c          -- clear p2 lines and p3 cols w/attr %p1
+# ^V^M%p1%c%p2%c%p3%c%p4%c     -- fill p3 lines & p4 cols w/char p2+attr %p1
+# (^V^L and ^V^M set the current attribute as a side-effect.)
+# ^V ^Y <a> [...] <c>  -- repeat pattern. <a> specifies the number of bytes
+#                         in the pattern, <c> the number of times the pattern
+#                         should be repeated. If either value is 0, no-op.
+#                         The pattern can contain Avatar console codes,
+#                         including other ^V ^Y patterns.
+#                              level 1:
+# ^V^O         -- clockwise mode on; turn print direction right each time you
+#                 hit a window edge (yes, really).  Turned off by CR
+# ^V^P         -- no-op
+# ^V^Q%c       -- query the driver
+# ^V^R         -- driver reset
+# ^V^S         -- Sound tone (PC-specific)
+# ^V^T                 -- change highlight at current cursor poition to %c
+# ^V^U%p1%c%p2%c       -- highlight window <a> with attribute <b>
+# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c
+#                      -- define window
+#
+# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
+# (The <blink>/<bold>/<rev>/<smacs>/<smul>/<smso> capabilities exist only to
+# tell ncurses that the corresponding highlights exist; it should use <sgr>,
+# which is the only method that will actually work for multiple highlights.)
+#
+# Update by TD - 2004: half of this was inconsistent.  Found documentation
+# and repaired most of the damage.  sgr0 is probably incorrect, but the
+# available documentation gives no clues for a workable string.
+avatar0|avatar terminal emulator level 0,
+       am, bce, msgr,
+       cols#80, it#8, lines#25,
+       blink=^V^B, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D,
+       cuf1=^V^F, cup=\026\010%p1%c%p2%c, cuu1=^V^C, el=^V^G,
+       ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%c, rev=^V^Ap,
+       rmacs@, rs2=^L,
+       sgr=%?%p1%p2%|%p3%|%p6%|%p7%|%t\026\001%?%p7%t%{128}%e%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p6%t%{16}%|%;%;%c%;%?%p4%t\026\002%;,
+       sgr0=^V^A^G, smacs@, smso=^V^Ap, smul=^V^A^A,
+       use=klone+acs,
+# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
+avatar0+|avatar terminal emulator level 0+,
+       dch1=^V^N, rmir=\026\n\0\0\0\0, smir=^V^I, use=avatar0,
+# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
+avatar|avatar1|avatar terminal emulator level 1,
+       civis=^V'^B, cnorm=^V'^A, cvvis=^V^C, dl1=^V-, il1=^V+,
+       rmam=^V", rmir=^V^P, smam=^V$, use=avatar0+,
+
+#### RBcomm
+#
+# RBComm is a lean and mean terminal emulator written by the Interrupt List
+# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early
+# '90s), especially in the BBS world, and still has some loyal users due to
+# its very small memory footprint and to a cute macro language.
+rbcomm|IBM PC with RBcomm and EMACS keybindings,
+       am, bw, mir, msgr, xenl,
+       cols#80, it#8, lines#25,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=^L, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=^C, cuf1=^B,
+       cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^, dch1=^W,
+       dl=\E[%p1%dM, dl1=^Z, ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I,
+       il=\E[%p1%dL, il1=^K, ind=\ED, invis=\E[8m,
+       is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H,
+       kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=^M\ED,
+       rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=,
+       rmir=^], rmkx=\E>, rmso=^U, rmul=^U,
+       rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sc=\E7, sgr0=\E[m,
+       smcup=, smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T,
+rbcomm-nam|IBM PC with RBcomm without autowrap,
+       am@,
+       bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
+       is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kbs=^H,
+       kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
+rbcomm-w|IBM PC with RBcomm in 132 column mode,
+       cols#132,
+       bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
+       is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kbs=^H,
+       kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
+
+######## LCD DISPLAYS
+#
+
+#### Matrix Orbital
+# from: Eric Z. Ayers  (eric@ale.org)
+#
+# Matrix Orbital 20x4 LCD display
+# Command Character is 0xFE (decimal 254, octal 376)
+#
+# On this device, cursor addressability isn't possible.  The LCD expects:
+#      0xfe G <col> <row>
+#      for cup: %p1 == row and %p2 is column
+#
+# This line:
+#      cup=\376G%p2%c%p1%c
+# LOOKS like it will work, but sometimes only one of the two numbers is sent.
+# See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'.
+#
+# Alas, there is no cursor upline capability on this display.
+#
+# These entries add some 'sanity stuff' to the clear function.  That is, it
+# does a 'clear' and also turns OFF auto scroll, turns ON Auto Line Wrapping,
+# and turns off the cursor blinking and stuff like that.
+#
+# NOTE: calling 'beep' turns on the backlight (bell)
+# NOTE: calling 'flash' turns it on and back off (visual bell)
+#
+MtxOrb|Generic Matrix Orbital LCD display,
+       bel=\376B^A, clear=\376X\376C\376R\376K\376T,
+       cnorm=\376K\376T, cub1=\376L, cuf1=\376M,
+       flash=\376B\001$<200>\376F, home=\376H,
+MtxOrb204|20x4 Matrix Orbital LCD display,
+       cols#20, lines#4, use=MtxOrb,
+MtxOrb162|16x2 Matrix Orbital LCD display,
+       cols#16, lines#2, use=MtxOrb,
+# The end
+
+######## OLDER TERMINAL TYPES
+#
+# This section is devoted to older commercial terminal brands that are now
+# discontinued, but known to be still in use or represented by emulations.
+#
+
+#### AT&T (att, tty)
+#
+# This section also includes Teletype-branded VDTs.
+#
+# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now
+# Boundless Technologies); for details, see the header comment on the ADDS
+# section.
+#
+# These are AT&T's official terminfo entries.  All-caps aliases have been
+# removed.
+#
+att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode,
+       am, eo, mir, msgr, xon,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcbt=\E[Z, kclr=\E[J,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+       kdl1=\E[M, kf1=\E[1r, kf10=\E[10r, kf11=\E[11r,
+       kf12=\E[12r, kf13=\E[13r, kf14=\E[14r, kf15=\E[15r,
+       kf16=\E[16r, kf2=\E[2r, kf3=\E[3r, kf4=\E[4r, kf5=\E[5r,
+       kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, khome=\E[H,
+       kich1=\E[@, kil1=\E[L, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+       rev=\E[7m, rmir=\E[4l, rmso=\E[m, sgr0=\E[m, smir=\E[4h,
+       smso=\E[7m,
+att2350|AT&T 2350 Video Information Terminal 80 column mode,
+       mc0@, mc4@, mc5@, use=att2300,
+
+# Must setup RETURN KEY - CR, REC'VD LF - INDEX.
+# Seems upward compatible with vt100, plus ins/del line/char.
+# On sgr, the protection parameter is ignored.
+# No check is made to make sure that only 3 parameters are output.
+#      standout= reverse + half-intensity = 3 | 5.
+#      bold= reverse + underline = 2 | 3.
+# note that half-bright blinking doesn't look different from normal blinking.
+# NOTE:you must program the function keys first, label second!
+# (att4410: a BSD entry has been seen with the following capabilities:
+# <is2=\E[?6l>, <kf1=\EOc>, <kf2=\EOd>, <kf3=\EOe>, <kf4=\EOg>,
+# <kf6=\EOh>, <kf7=\EOi>, <kf8=\EOj>, -- esr)
+att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1,
+       am, hs, mir, msgr, xon,
+       cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
+       acsc=++\,\,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[2;7m, clear=\E[H\E[J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dim=\E[2m,
+       dl1=\E[M, ed=\E[J, el=\E[K, fsl=\E8, home=\E[H, ht=^I,
+       ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, is1=\E[?3l\E)0,
+       is3=\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,
+       kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
+       kf6=\EOU, kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H,
+       ll=\E[24H, nel=^M^J,
+       pfx=\E[%p1%1d;%p2%l%2.2dq   f%p1%1d           %p2%s,
+       pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
+       rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
+       sc=\E7,
+       sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
+       tsl=\E7\E[25;%p1%{1}%+%dH,
+
+att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1,
+       cols#132, wsl#132,
+       is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att5410v1,
+
+att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2,
+       OTbs,
+       pfx=\E[%p1%d;%p2%l%02dq   f%p1%d           %p2%s,
+       use=att5410v1,
+
+att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode,
+       cols#132, wsl#132,
+       is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att4410,
+
+# 5410 in terms of a vt100
+# (v5410: added <rmam>/<smam> based on init string -- esr)
+v5410|att5410 in terms of a vt100,
+       am, mir, msgr, xon,
+       cols#80, it#8, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+       clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=^J, cuf1=\E[C$<2>,
+       cup=\E[%i%p1%d;%p2%dH$<5>, cuu1=\E[A$<2>, dch1=\E[P,
+       dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
+       enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ich1=\E[@,
+       il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+       kcuu1=\EOA, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O,
+       rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
+       rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+       sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
+       sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+       smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
+       use=vt100+fnkeys,
+
+#
+# Teletype Model 5420 -- A souped up 5410, with multiple windows,
+# even! the 5420 has three modes: scroll, window or page mode
+# this terminfo should work in scroll or window mode, but doesn't
+# take advantage of any of the differences between them.
+#
+# Has memory below (2 lines!)
+# 3 pages of memory (plus some spare)
+# The 5410 sequences for <cup>, <cvvis>, <dch>, <dl>, <ech>, <flash>, <home>,
+# <hpa>, <hts> would work for these, but these work in both scroll and window
+# mode... Unset insert character so insert mode works
+# <is1> sets 80 column mode,
+# <is2> escape sequence:
+# 1) turn off all fonts
+# 2) function keys off, keyboard lock off, control display off,
+#    insert mode off, erasure mode off,
+# 3) full duplex, monitor mode off, send graphics off, nl on lf off
+# 4) reset origin mode
+# 5) set line wraparound
+# 6) exit erasure mode, positional attribute mode, and erasure extent mode
+# 7) clear margins
+# 8) program ENTER to transmit ^J,
+# We use \212 to program the ^J because a bare ^J will get translated by
+# UNIX into a CR/LF. The enter key is needed for AT&T uOMS.
+#     1      2            3              4     5     6    7  8
+# <is3> set screen color to black,
+# No representation in terminfo for the delete word key: kdw1=\Ed
+# Key capabilities assume the power-up send sequence...
+# This <rmcup> is not strictly necessary, but it helps maximize
+# memory usefulness: <rmcup=\Ez>,
+# Alternate sgr0:      <sgr0=\E[m\EW^O>,
+# Alternate sgr:       <sgr=\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%;>,
+# smkx programs the SYS PF keys to send a set sequence.
+# It also sets up labels f1, f2, ..., f8, and sends edit keys.
+# This string causes them to send the strings <kf1>-<kf8>
+# when pressed in SYS PF mode.
+# (att4415: I added <rmam>/<smam> based on the init string -- esr)
+att4415|tty5420|att5420|AT&T 4415/5420 80 cols,
+       OTbs, db, mir, xon,
+       lh#2, lm#78, lw#8, nlab#8, wsl#55,
+       cbt=\E[Z, clear=\E[x\E[J, cnorm=\E[11;0j, cub=\E[%p1%dD,
+       cud=\E[%p1%dB, cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dx,
+       cuu=\E[%p1%dA, cvvis=\E[11;1j, dch=\E[%p1%dP,
+       dl=\E[%p1%dM, ech=\E[%p1%ds\E[%p1%dD,
+       flash=\E[?5h$<200>\E[?5l, home=\E[x,
+       hpa=\E[%p1%{1}%+%dG, hts=\EH, ich=\E[%p1%d@, ich1@,
+       il=\E[%p1%dL, indn=\E[%p1%dE, is1=\E[?3l$<100>,
+       is2=\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,
+       is3=\E[?5l, kbeg=\Et, kcbt=\E[Z, kdch1=\E[P, kdl1=\E[M,
+       kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc, kf2=\EOd,
+       kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
+       kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
+       kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
+       lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?2i, mc4=\E[?9i,
+       mc5=\E[?4i, mrcup=\E[%i%p1%d;%p2%dt,
+       pfx=\E[%p1%d;%p2%l%02dq   F%p1%d           %p2%s,
+       pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV,
+       rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
+       rmkx=\E[19;0j\E[21;1j\212, rmln=\E|,
+       sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g,
+       tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
+       use=att4410,
+
+att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols,
+       cols#132, lm#54, wsl#97,
+       is1=\E[?3h$<100>, use=att4415,
+
+att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv,
+       flash=\E[?5l$<200>\E[?5h, is3=\E[?5h, use=att4415,
+
+att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv,
+       cols#132, lm#54, wsl#97,
+       flash=\E[?5l$<200>\E[?5h, is1=\E[?3h$<100>, is3=\E[?5h,
+       use=att4415,
+
+# Note that this mode permits programming USER PF KEYS and labels
+# However, when you program user pf labels you have to reselect
+# user pf keys to make them appear!
+att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels,
+       kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
+       pfx=\E[%p1%d;%p2%l%02d;0;1q   F%p1%d           %p2%s,
+       pln=\E[%p1%d;0;0;1q%p2%:-16.16s,
+
+att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels,
+       kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
+       use=att4415,
+
+att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels,
+       kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
+       use=att4415-rv,
+
+att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels,
+       kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
+       use=att4415-w,
+
+att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels,
+       kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
+       use=att4415-w-rv,
+
+att5420_2|AT&T 5420 model 2 80 cols,
+       am, db, hs, mir, msgr, xon,
+       cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j,
+       cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cvvis=\E[11;1j,
+       dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+       dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J, el=\E[0K,
+       el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
+       hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
+       invis=\E[8m,
+       is1=\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,
+       kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
+       kel=\E[2K, kend=\Ez, kent=^J, kf1=\EOc, kf2=\EOd, kf3=\EOe,
+       kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, khome=\E[H,
+       kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
+       kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
+       lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?;2i, mc4=\E[4i,
+       mc5=\E[5i, mrcup=\E[%i%p1%d;%p2%dt, nel=^M^J,
+       pfx=\E[%p1%d;%p2%l%02dq   F%p1%d           %p2%s\E~,
+       pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, rc=\E8,
+       rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j,
+       rmln=\E|, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
+       sc=\E7,
+       sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smkx=\E[19;1j, smln=\E~,
+       smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
+att5420_2-w|AT&T 5420 model 2 in 132 column mode,
+       cols#132,
+       is1=\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,
+       use=att5420_2,
+
+att4418|att5418|AT&T 5418 80 cols,
+       am, xon,
+       cols#80, lines#24,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD,
+       cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H,
+       ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=^J,
+       is1=\E[?3l, is2=\E)0\E?6l\E?5l, kclr=\E[%%, kcub1=\E@,
+       kcud1=\EU, kcuf1=\EA, kcuu1=\ES, kent=\E[, kf1=\E[h,
+       kf10=\E[m, kf11=\E[n, kf12=\E[o, kf13=\E[H, kf14=\E[I,
+       kf15=\E[J, kf18=\E[K, kf19=\E[L, kf2=\E[i, kf20=\E[E,
+       kf21=\E[_, kf22=\E[M, kf23=\E[N, kf24=\E[O, kf3=\E[j,
+       kf6=\E[k, kf7=\E[l, kf8=\E[f, kf9=\E[w, khome=\Ec, rc=\E8,
+       rev=\E[7m, rmacs=^O, rmso=\E[m, rmul=\E[m, sc=\E7,
+       sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
+att4418-w|att5418-w|AT&T 5418 132 cols,
+       cols#132,
+       is1=\E[?3h, use=att5418,
+
+att4420|tty4420|teletype 4420,
+       OTbs, da, db, eo, msgr, ul, xon,
+       cols#80, lines#24, lm#72,
+       bel=^G, clear=\EH\EJ, cr=\EG, cub1=\ED, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
+       dl1=\EM, ed=\EJ, el=\Ez, home=\EH, il1=\EL, ind=\EH\EM\EY7\s,
+       kcbt=\EO, kclr=\EJ, kcub1=^H, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kdch1=\EP, kdl1=\EM, kf0=\EU, kf3=\E@, khome=\EH,
+       kich1=\E\^, kil1=\EL, kind=\ES, kri=\ET,
+       lf0=segment advance, lf3=cursor tab, rmdc@, rmso=\E~,
+       rmul=\EZ, smdc@, smso=\E}, smul=\E\\,
+
+#  The following is a terminfo entry for the Teletype 4424
+#  asynchronous keyboard-display terminal.  It supports
+#  the vi editor.  The terminal must be set up as follows,
+#
+#      HIGHLIGHT DEFINITION    3-TONE
+#      DISPLAY FUNCTION        GROUP III
+#
+#  The second entry below provides limited (a la adm3a)
+#  operation under GROUP II.
+#
+#  This must be used with DISPLAY FUNCTION GROUP I or III
+#      and HIGHLIGHT DEFINITION 3-TONE
+# The terminal has either bold or blink, depending on options
+#
+# (att4424: commented out <smcup>=\E[1m, we don't need bright locked on -- esr)
+att4424|tty4424|teletype 4424,
+       OTbs, am, xon,
+       cols#80, lines#24,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E3, bold=\E3, cbt=\EO, clear=\E[H\E[2J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\EB, cuf=\E[%p1%dC, cuf1=\EC,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EA,
+       dch=\E[%p1%dP, dch1=\EP, dim=\EW, dl=\E[%p1%dM, dl1=\EM,
+       ed=\EJ, el=\Ez, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       ich1=\E\^, il=\E[%p1%dL, il1=\EL, ind=^J, is2=\E[20l\E[?7h,
+       kbs=^H, kclr=\EJ, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+       khome=\E[H, nel=\EE, rev=\E}, ri=\ET, rmacs=\E(B, rmso=\E~,
+       rmul=\EZ,
+       sgr=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m,
+       sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\,
+       tbc=\EF,
+
+att4424-1|tty4424-1|teletype 4424 in display function group I,
+       kclr@, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome@,
+       use=att4424,
+
+# This entry is not one of AT&T's official ones, it was translated from the
+# 4.4BSD termcap file.  The highlight strings are different from att4424.
+# I have no idea why this is -- older firmware version, maybe?
+# The following two lines are the comment originally attached to the entry:
+# This entry appears to avoid the top line - I have no idea why.
+# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp
+att4424m|tty4424m|teletype 4424M,
+       am, da, db, mir,
+       cols#80, it#8, lines#23,
+       bel=^G, clear=\E[2;H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%2d;%p2%2dH\E[B, cuu1=\E[A, dch1=\EP,
+       dl1=\EM, el=\E[K, ht=^I, ich1=\E\^, il1=\EL, ind=^J, ip=$<2/>,
+       is2=\E[m\E[2;24r, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+       kf4=\EOS, khome=\E[H, nel=^M^J, ri=\ET, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+
+# The Teletype 5425 is really version 2 of the Teletype 5420. It
+# is quite similar, except for some minor differences. No page
+# mode, for example, so all of the <cup> sequences used above have
+# to change back to what's being used for the 5410. Many of the
+# option settings have changed their numbering as well.
+#
+# This has been tested on a preliminary model.
+#
+# (att5425: added <rmam>/<smam> based on the init string -- esr)
+att5425|tty5425|att4425|AT&T 4425/5425,
+       am, da, db, hs, mir, msgr, xenl, xon,
+       cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
+       clear=\E[H\E[J, cnorm=\E[12;0j, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[12;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[J,
+       el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+       flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
+       hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
+       invis=\E[8m, is1=\E<\E[?3l$<100>,
+       is2=\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,
+       is3=\E[?5l, kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[J,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+       kdl1=\E[M, kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc,
+       kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi,
+       kf8=\EOj, khome=\E[H, kich1=\E[4h, kil1=\E[L, kind=\E[T,
+       kri=\E[S, ll=\E[24H, mc0=\E[?2i, mc4=\E[?9i, mc5=\E[?4i,
+       nel=^M^J,
+       pfx=\E[%p1%d;%p2%l%02dq   F%p1%1d           %p2%s,
+       pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, rc=\E8,
+       rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l,
+       rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
+       rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7,
+       sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH,
+       vpa=\E[%p1%{1}%+%dd,
+
+att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels,
+       smkx=\E[21;1j\E[25;4j\Eent, use=att4425,
+
+att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode,
+       cols#132, lm#54, wsl#97,
+       is1=\E[?3h$<100>, use=tty5425,
+
+# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:.
+# I also added <rmam>/<smam> -- esr)
+att4426|tty4426|teletype 4426S,
+       am, da, db, xon,
+       cols#80, lines#24, lm#48,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V,
+       cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\EA, dch=\E[%p1%dP, dch1=\EP,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H,
+       hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^,
+       il=\E[%p1%dL, il1=\EL, ind=^J, indn=\E[%p1%dS,
+       is1=\Ec\E[?7h, is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO,
+       kclr=\E[2J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
+       kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H, ll=\E[24H,
+       nel=^M^J, rc=\E8, rev=\E[7m, ri=\ET, rin=\E[%p1%dT,
+       rmacs=\E(B, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
+       rs2=\Ec\E[?3l\E[2;0y, sc=\E7, sgr0=\E[m\E(B, smacs=\E(0,
+       smam=\E[?7h, smso=\E[5m, smul=\E[4m, tbc=\E[3g,
+       vpa=\E[%p1%dd,
+
+# Terminfo entry for the AT&T 510 A Personal Terminal
+# Function keys 9 - 16 are available only after the
+# screen labeled (soft keys/action blocks) are labeled.  Function key
+# 9 corresponds to the leftmost touch target on the screen,
+# function key 16 corresponds to the rightmost.
+#
+# This entry is based on one done by Ernie Rice at Summit, NJ and
+# changed by Anne Gallup, Skokie, IL, ttrdc!anne
+att510a|bct510a|AT&T 510A Personal Terminal,
+       am, mir, msgr, xenl, xon,
+       cols#80, lh#2, lines#24, lw#7, nlab#8,
+       acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
+       civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[1B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP,
+       dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J,
+       el=\E[0K, el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, ht=^I,
+       hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E(B\E)1\E[2l,
+       is3=\E[21;1|\212, kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm,
+       kf10=\EOd, kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh,
+       kf15=\EOi, kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe,
+       kf6=\ENf, kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T,
+       mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, nel=\EE,
+       pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
+       rmacs=^O, rmkx=\E[19;0|, rmso=\E[m, rmul=\E[m, sc=\E7,
+       sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smkx=\E[19;1|, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g,
+
+# Terminfo entry for the AT&T 510 D Personal Terminal
+# Function keys 9 through 16 are accessed by bringing up the
+# system blocks.
+# Function key 9 corresponds to the leftmost touch target on the screen,
+# function key 16 corresponds to the rightmost.
+#
+# There are problems with soft key labeling.  These are due to
+# strangenesses in the native terminal that are impossible to
+# describe in a terminfo.
+att510d|bct510d|AT&T 510D Personal Terminal,
+       am, da, db, mir, msgr, xenl, xon,
+       cols#80, lh#2, lines#24, lm#48, lw#7, nlab#8,
+       acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
+       clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, cub=\E[%p1%dD,
+       cub1=^H, cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P,
+       dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K,
+       el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H,
+       hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
+       invis=\E[8m, is1=\E(B\E)1\E[5;0|, is3=\E[21;1|\212,
+       kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, kf10=\EOd,
+       kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh, kf15=\EOi,
+       kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, kf6=\ENf,
+       kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, ll=\E#2,
+       mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, mgc=\E\:, nel=\EE,
+       pln=\E[%p1%dp%p2%:-16s, rc=\E8,
+       rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
+       rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|,
+       rmln=\E<, rmso=\E[m, rmul=\E[m, rmxon=\E[29;1|,
+       rs2=\E[5;0|, sc=\E7,
+       sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smgl=\E4, smgr=\E5, smir=\E[4h,
+       smkx=\E[19;1|, smln=\E?, smso=\E[7m, smul=\E[4m,
+       smxon=\E[29;0|, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
+
+# (att500: I merged this with the att513 entry, att500 just used att513 -- esr)
+att500|att513|AT&T 513 using page mode,
+       am, chts, mir, msgr, xenl, xon,
+       cols#80, lh#2, lines#24, lw#8, nlab#8,
+       acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
+       clear=\E[H\E[J, cnorm=\E[11;0|, cr=^M,
+       csr=%i\E[%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[11;1|, dch=\E[%p1%dP, dch1=\E[P$<1>, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+       enacs=\E(B\E)1, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
+       hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       indn=\E[%p1%dE, invis=\E[8m,
+       is1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l,
+       kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
+       kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
+       kFND=\EOX, kHLP=\EOM, kHOM=\ENM, kIC=\ENJ, kLFT=\ENK,
+       kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, kOPT=\EOR, kPRT=\EOZ,
+       kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, kRIT=\ENL, kRPL=\EOY,
+       kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, kbs=^H, kcan=\EOw,
+       kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd,
+       kcrt=\EOn, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\Eent,
+       kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
+       kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx, khlp=\EOm,
+       khome=\E[H, kich1=\ENj, kind=\E[S, kmov=\ENc, kmrk=\ENi,
+       kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
+       kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
+       kres=\EOq, krfr=\ENa, kri=\E[T, krpl=\EOy, krst=\EOB,
+       ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, ll=\E#2,
+       mc0=\E[?98l\E[0i, mc4=\E[?98l\E[?8i, mc5=\E[?98l\E[?4i,
+       nel=\EE,
+       pfkey=\E[%p1%d;%p2%l%d;3;0p   F%p1%d           %p2%s,
+       pfloc=\E[%p1%d;%p2%l%d;2;0p   F%p1%d           %p2%s,
+       pfx=\E[%p1%d;%p2%l%d;1;0p   F%p1%d           %p2%s,
+       pln=\E[%p1%dp%p2%:-16s, rc=\E8,
+       rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
+       rin=\E[%p1%dF, rmacs=^O, rmir=\E[4l,
+       rmkx=\E[19;0|\E[21;1|\212, rmln=\E<, rmso=\E[m,
+       rmul=\E[m,
+       rs1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l,
+       rs2=\E[5;0|, sc=\E7,
+       sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smir=\E[4h,
+       smkx=\E[19;1|\E[21;4|\Eent, smln=\E?, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
+
+# 01-07-88
+# printer must be set to EMUL ANSI to accept ESC codes
+# <cuu1> stops at top margin
+# <is1> sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font
+#      and alt font ascii,wrap on,tabs cleared
+# <is2> disables newline on LF,Emphasized off
+# The <u0> capability sets form length
+att5310|att5320|AT&T Model 53210 or 5320 matrix printer,
+       xhpa, xvpa,
+       bufsz#8192, cols#132, cps#120, it#8, lines#66, orc#10,
+       orhi#100, orl#12, orvi#72,
+       cpi=%?%p1%{10}%=%t\E[w%e%p1%{12}%=%t\E[2w%e%p1%{5}%=%t\E[5w%e%p1%{13}%=%p1%{14}%=%O%t\E[3w%e%p1%{16}%=%p1%{17}%=%O%t\E[4w%e%p1%{6}%=%t\E[6w%e%p1%{7}%=%t\E[7w%e%p1%{8}%=%t\E[8w%;,
+       cr=^M,
+       csnm=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfinnish%e%p1%{3}%=%tjapanese%e%p1%{4}%=%tnorwegian%e%p1%{5}%=%tswedish%e%p1%{6}%=%tgermanic%e%p1%{7}%=%tfrench%e%p1%{8}%=%tcanadian_french%e%p1%{9}%=%titalian%e%p1%{10}%=%tspanish%e%p1%{11}%=%tline%e%p1%{12}%=%tsecurity%e%p1%{13}%=%tebcdic%e%p1%{14}%=%tapl%e%p1%{15}%=%tmosaic%;,
+       cud=\E[%p1%de, cud1=^J, cuf=\E[%p1%da, cuf1=\s, cuu1=\EM,
+       ff=^L, hpa=\E[%p1%d`, ht=^I, is1=\Ec, is2=\E[20l\r,
+       lpi=%?%p1%{2}%=%t\E[4z%e%p1%{3}%=%t\E[5z%e%p1%{4}%=%t\E[6z%e%p1%{6}%=%t\E[z%e%p1%{8}%=%t\E[2z%e%p1%{12}%=%t\E[3z%;,
+       rshm=\E[m,
+       scs=%?%p1%{0}%=%t\E(B%e%p1%{1}%=%t\E(A%e%p1%{2}%=%t\E(C%e%p1%{3}%=%t\E(D%e%p1%{4}%=%t\E(E%e%p1%{5}%=%t\E(H%e%p1%{6}%=%t\E(K%e%p1%{7}%=%t\E(R%e%p1%{8}%=%t\E(Q%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(Z%e%p1%{11}%=%t\E(0%e%p1%{12}%=%t\E(1%e%p1%{13}%=%t\E(3%e%p1%{14}%=%t\E(8%e%p1%{15}%=%t\E(}%;,
+       smgbp=\E[;%p1%dr, smglp=\E[%{1}%p1%+%ds,
+       smgrp=\E[;%{1}%p1%+%ds, smgtp=\E[%p1%dr, sshm=\E[5m,
+       u0=\E[%p1%dt, vpa=\E[%p1%dd,
+
+# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL
+# The following SET-UP modes are assumed for normal operation:
+#      CR_DEF=CR       NL_DEF=INDEX    DUPLEX=FULL
+# Other SET-UP modes may be set for operator convenience or communication
+# requirements.  This termcap description is for the Resident Terminal Mode.
+# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# The BRL entry also said: UNSAFE :ll=\E[70H:
+att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs,
+       am, xon,
+       cols#88, it#8, lines#70, vt#3,
+       bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+       dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
+       home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+       il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=^H, kclr=\E[2J,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
+       kll=\E[70;1H, nel=^M^J, rc=\E8, ri=\E[T, rin=\E[%p1%dT,
+       rs1=\Ec, sc=\E7,
+
+# 5620 terminfo  (2.0 or later ROMS with char attributes)
+# The following SET-UP modes are assumed for normal operation:
+#      DUPLEX=FULL     GEN_FLOW=ON     NEWLINE=INDEX   RETURN=CR
+# Other SET-UP modes may be set for operator convenience or communication
+# requirements.  This termcap description is for Resident Terminal Mode.  No
+# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# assumptions: <ind> (scroll forward one line) is only done at screen bottom
+# Be aware that older versions of the dmd have a firmware bug that affects
+# parameter defaulting; for this terminal, the 0 in \E[0m is not optional.
+# <msgr> is from an otherwise inferior BRL for this terminal.  That entry
+# also has <ll>=\E[70H commented out and marked unsafe.
+# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>.
+att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns,
+       OTbs, am, msgr, npc, xon,
+       cols#88, it#8, lines#70,
+       bel=^G, bold=\E[2m, clear=\E[H\E[J, cr=^M, cub1=^H,
+       cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+       indn=\E[%p1%dS, kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kll=\E[70;1H, nel=^J,
+       pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\E[T,
+       rin=\E[%p1%dT, rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7,
+       sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
+att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer,
+       lines#24, use=att5620,
+att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer,
+       lines#34, use=att5620,
+# 5620 layer running the "S" system's downloaded graphics handler:
+att5620-s|tty5620-s|layer|vitty|5620 S layer,
+       OTbs, OTpt, am,
+       cols#80, it#8, lines#72,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
+       cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=^K, dl1=\ED,
+       el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=^J, kbs=^H, kclr=\E[2J,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
+       kll=\E[70;1H,
+
+# Entries for <kf15> thru <kf28> refer to the shifted system pf keys.
+#
+# Entries for <kf29> thru <kf46> refer to the alternate keypad mode
+# keys:  = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER
+att605|AT&T 605 80 column 102key keyboard,
+       am, eo, xon,
+       cols#80, lines#24, lw#8, nlab#8, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+       cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+       dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, el1=\E[1K, fsl=\E8, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
+       il1=\E[L, ind=^J, invis=\E[8m,
+       is1=\E[8;0|\E[?\E[13;20l\E[?\E[12h, is2=\E[m\017,
+       kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, kclr=\E[2J,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+       kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, kf11=\ENq,
+       kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD,
+       kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH,
+       kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ,
+       kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe,
+       kf30=\EOQ, kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx,
+       kf35=\EOy, kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv,
+       kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs,
+       kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh,
+       kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, kich1=\E[@,
+       kil1=\E[L, kind=\E[S, knp=\E[U, kpp=\E[V, ll=\E[24H,
+       mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+       pfx=\E[%p1%d;%p2%l%02dq   F%p1%1d           %p2%s,
+       pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
+       rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
+       rs2=\Ec\E[?3l, sc=\E7, sgr0=\E[m\017, smacs=\E)0\016,
+       smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
+       tsl=\E7\E[25;%i%p1%dx,
+att605-pc|ATT 605 in pc term mode,
+       acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+       cbt=\E[Z, cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
+       dch1=\E[P, dl1=\E[M, ich1=\E[@, il1=\E[L, kcbt=\E[Z,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+       kdl1=\E[M, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N,
+       kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
+       kf9=\E[U, khome=\E[H, kich1=\E[@, knp=\E[G, kpp=\E[I,
+       rmsc=400\E[50;0|, smsc=250\E[?11l\E[50;1|, xoffc=g,
+       xonc=e, use=att605,
+att605-w|AT&T 605-w 132 column 102 key keyboard,
+       cols#132, wsl#132,
+       is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0,
+       use=att605,
+# (att610: I added <rmam>/<smam> based on the init string.  I also
+# added <indn> and <rin> because the BSD file says the att615s have them,
+# and the 615 is like a 610 with a big keyboard, and most of their other
+# smart terminals support the same sequence -- esr)
+att610|AT&T 610; 80 column; 98key keyboard,
+       am, eslok, hs, mir, msgr, xenl, xon,
+       cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+       flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
+       ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+       indn=\E[%p1%dS, invis=\E[8m,
+       is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0,
+       is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
+       kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
+       kf13=\ENs, kf14=\ENt, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
+       kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
+       kind=\E[S, kri=\E[T, ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i,
+       nel=\EE,
+       pfx=\E[%p1%d;%p2%l%02dq   F%p1%1d           %p2%s,
+       pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
+       ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
+       rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+       smln=\E[p, smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,
+att610-w|AT&T 610; 132 column; 98key keyboard,
+       cols#132, wsl#132,
+       is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
+       use=att610,
+
+att610-103k|AT&T 610; 80 column; 103key keyboard,
+       kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
+       kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
+       kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
+       kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
+       kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
+       kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
+       kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
+       kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf9@, kfnd=\EOx,
+       khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi, kmsg=\EOl,
+       knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, kpp=\E[V,
+       kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, kres=\EOq,
+       krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB, ksav=\EOo,
+       kslt=\ENI, kspd=\EOp, kund=\EOs, use=att610,
+att610-103k-w|AT&T 610; 132 column; 103key keyboard,
+       cols#132, wsl#132,
+       is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
+       use=att610-103k,
+att615|AT&T 615; 80 column; 98key keyboard,
+       kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
+       kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
+       kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
+       kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
+       kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
+       kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
+       kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610,
+att615-w|AT&T 615; 132 column; 98key keyboard,
+       kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
+       kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
+       kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
+       kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
+       kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
+       kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
+       kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610-w,
+att615-103k|AT&T 615; 80 column; 103key keyboard,
+       kLFT=\E[ A, kRIT=\E[ @, use=att610-103k,
+att615-103k-w|AT&T 615; 132 column; 103key keyboard,
+       kLFT=\E[ A, kRIT=\E[ @, use=att610-103k-w,
+# (att620: I added <rmam>/<smam> based on the init string and
+# <rin>/<indn> from a BSD termcap -- esr)
+att620|AT&T 620; 80 column; 98key keyboard,
+       am, eslok, hs, mir, msgr, xenl, xon,
+       cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+       flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
+       ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+       indn=\E[%p1%dS, invis=\E[8m,
+       is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h,
+       is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H,
+       kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
+       kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, kf17=\EOE,
+       kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, kf21=\EOI,
+       kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR,
+       kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, kf30=\EOQ,
+       kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, kf35=\EOy,
+       kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, kf4=\EOf,
+       kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, kf44=\EOp,
+       kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
+       kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T, ll=\E[24H,
+       mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+       pfx=\E[%p1%d;%p2%l%02dq   F%p1%1d           %p2%s,
+       pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
+       ri=\EM, rin=\E[%p1%dT, rmacs=\E(B\017, rmam=\E[?7l,
+       rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
+       rs2=\Ec\E[?3l, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h,
+       smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
+       tsl=\E7\E[25;%i%p1%dx,
+att620-w|AT&T 620; 132 column; 98key keyboard,
+       cols#132, wsl#132,
+       is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
+       use=att620,
+att620-103k|AT&T 620; 80 column; 103key keyboard,
+       kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
+       kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
+       kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
+       kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
+       kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
+       kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
+       kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
+       kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@, kf17@,
+       kf18@, kf19@, kf20@, kf21@, kf22@, kf23@, kf24@, kf25@, kf26@, kf27@,
+       kf28@, kf29@, kf30@, kf31@, kf32@, kf33@, kf34@, kf35@, kf36@, kf37@,
+       kf38@, kf39@, kf40@, kf41@, kf42@, kf43@, kf44@, kf45@, kf46@, kf9@,
+       kfnd=\EOx, khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi,
+       kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
+       kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
+       kres=\EOq, krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB,
+       ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, use=att620,
+
+att620-103k-w|AT&T 620; 132 column; 103key keyboard,
+       cols#132, wsl#132,
+       is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
+       use=att620-103k,
+
+# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal
+# The following SETUP modes are assumed for normal operation:
+#      Local_Echo=Off  Gen_Flow=On     Return=CR       Received_Newline=LF
+#      Font_Size=Large         Non-Layers_Window_Cols=80
+#                              Non-Layers_Window_Rows=60
+# Other SETUP modes may be set for operator convenience or communication
+# requirements.  Some capabilities assume a printer attached to the Aux EIA
+# port.  This termcap description is for the Fixed Non-Layers Window.  No
+# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# (att630: added <ich1>, <blink> and <dim> from a BSD termcap file -- esr)
+att630|AT&T 630 windowing terminal,
+       OTbs, am, da, db, mir, msgr, npc, xon,
+       cols#80, it#8, lines#60, lm#0,
+       bel=^G, blink=\E[5m, cbt=\E[Z, clear=\E[H\E[J, cr=^M,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
+       el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
+       il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS, is2=\E[m,
+       kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kent=^M,
+       kf10=\ENp, kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt,
+       kf15=\ENu, kf16=\ENv, kf17=\ENw, kf18=\ENx, kf19=\ENy,
+       kf20=\ENz, kf21=\EN{, kf22=\EN|, kf23=\EN}, kf24=\EN~,
+       kf9=\ENo, khome=\E[H, kich1=\E[@, kil1=\E[L, mc4=\E[?4i,
+       mc5=\E[?5i, nel=^M^J, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8,
+       rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmir=\E[4l, rmso=\E[m,
+       rmul=\E[m, rs2=\Ec, sc=\E7,
+       sgr=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m,
+       sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
+       lines#24, use=att630,
+
+# This is the att700 entry for 700 native emulation of the AT&T 700
+# terminal.  Comments are relative to changes from the 605V2 entry and
+# att730 on which the entry is based.  Comments show the terminfo
+# capability name, termcap name, and description.
+#
+# Here is what's going onm in the init string:
+#      ESC [ 50;4|     set 700 native mode (really is 605)
+# x    ESC [ 56;ps|    set lines to 24: ps=0; 40: ps=1 (plus status line)
+#      ESC [ 53;0|     set GenFlow to Xon/Xoff
+#      ESC [ 8 ;0|     set CR on NL
+# x    ESC [ ? 3 l/h   set workspace: 80 col(l); 132 col(h)
+#      ESC [ ? 4 l     jump scroll
+#      ESC [ ? 5 l/h   video: normal (l); reverse (h)
+#      ESC [ ?13 l     Labels on
+#      ESC [ ?15 l     parity check = no
+#      ESC [ 13 l      monitor mode off
+#      ESC [ 20 l      LF on NL (not CRLF on NL)
+#      ESC [ ? 7 h     autowrap on
+#      ESC [ 12 h      local echo off
+#      ESC ( B         GO = ASCII
+#      ESC ) 0         G1 = Special Char & Line Drawing
+#      ESC [ ? 31 l    Set 7 bit controls
+#
+# Note: Most terminals, especially the 600 family use Reverse Video for
+# standout mode.  DEC also uses reverse video.  The VT100 uses bold in addition
+# Assume we should stay with reverse video for 70..  However, the 605V2 exits
+# standout mode with \E[m (all normal attributes).  The 730 entry simply
+# exits reverse video which would leave other current attributes intact.  It
+# was assumed the 730 entry to be more correct so rmso has changed.  The
+# 605V2 has no sequences to turn individual attributes off, thus its setting
+# and the rmso/smso settings from the 730.
+#
+# Note: For the same reason as above in rmso I changed exit under-score mode
+# to specifically turn off underscore, rather than return to all normal
+# attributes
+#
+# Note: The following pkey_xmit is taken from the 605V2 which contained the
+# capability as pfxl.  It was changed here to pfx since pfxl
+# will only compile successfully with Unix 4.0 tic.  Also note that pfx only
+# allows strings to be parameters and label values must be programmed as
+# constant strings.  Supposedly the pfxl of Version 4.0 allows both labels
+# and strings to be parameters.  The 605V2 pfx entry should be examined later
+# in this regard. For reference the 730 pfxl entry is shown here for comparison
+# 730 pfx entry:
+#     pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s
+# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s,
+#
+# (for 4.0 tic)
+#     pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t   F%p1%1d           %;%p2%s,
+#
+# (for <4.0 tic)
+#     pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t   F%p1%1d           %;%p2%s,
+#
+# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9
+#
+# Port1 Interface
+#
+# modular 10 pin Connector
+# Left side       Right side
+# Pin 1 2 3 4 5 6 7 8 9 10
+#
+#        Key (notch) at bottom
+#
+# Pin    1 DSR
+#        3 DCD
+#        4 DTR
+#        5 Sig Ground
+#        6 RD
+#        7 SD
+#        8 CTS
+#        9 RTS
+#        10 Frame Ground
+#
+# The manual is 189 pages and is loaded with details about the escape codes,
+# etc..... Available from AT&T CIC 800-432-6600...
+# ask for Document number 999-300-660..
+#
+att700|AT&T 700 24x80 column display w/102key keyboard,
+       am, eslok, hs, mir, msgr, xenl, xon,
+       cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+       enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fln=4\,4,
+       fsl=\E8, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       il=\E[%p1%dL, il1=\E[L, ind=\ED, invis=\E[8m,
+       is2=\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,
+       is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z,
+       kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[P, kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp,
+       kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC,
+       kf16=\EOD, kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd,
+       kf20=\EOH, kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP,
+       kf25=\ENQ, kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOq,
+       kf3=\EOe, kf30=\EOr, kf31=\EOs, kf32=\EOt, kf33=\EOu,
+       kf34=\EOv, kf35=\EOw, kf36=\EOx, kf37=\EOy, kf38=\EOu,
+       kf39=\EOv, kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr,
+       kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg,
+       kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
+       kich1=\E[@, kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H,
+       mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+       pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t   F%p1%1d           %;%p2%s,
+       pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
+       rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
+       rmir=\E[4l, rmln=\E[2p, rmso=\E[27m, rmul=\E[24m,
+       rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smir=\E[4h, smln=\E[p, smso=\E[7m,
+       smul=\E[4m, smxon=\E[53;0|, tbc=\E[3g,
+       tsl=\E7\E[99;%i%p1%dx,
+
+# This entry was modified 3/13/90 by JWE.
+# fixes include additions of <enacs>, correcting <rep>, and modification
+# of <kHOM>.  (See comments below)
+# att730 has status line of 80 chars
+# These were commented out: <indn=\E[%p1%dS>, <rin=\E[%p1%dT>,
+# the <kf25> and up keys are used for shifted system Fkeys
+# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is
+# currently the same as <khome> (unshifted HOME or \E[H).  On the 102, 102+1
+# and 122 key keyboards, the 730's translation is \E[2J.  For consistency
+# <kHOM> has been commented out.  The user can uncomment <kHOM> if using the
+# 102, 102+1, or 122 key keyboards
+#       kHOM=\E[2J,
+# (att730: I added <rmam>/<smam> based on the init string -- esr)
+att730|AT&T 730 windowing terminal,
+       am, da, db, eslok, hs, mir, msgr, npc, xenl, xon,
+       cols#80, it#8, lh#2, lines#60, lm#0, lw#8, nlab#24, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+       enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
+       home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
+       ind=\ED, invis=\E[8m,
+       is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B,
+       is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
+       kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
+       kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv, kf17=\ENw,
+       kf18=\ENx, kf19=\ENy, kf2=\EOd, kf20=\ENz, kf21=\EN{,
+       kf22=\EN|, kf23=\EN}, kf24=\EN~, kf25=\EOC, kf26=\EOD,
+       kf27=\EOE, kf28=\EOF, kf29=\EOG, kf3=\EOe, kf30=\EOH,
+       kf31=\EOI, kf32=\EOJ, kf33=\ENO, kf34=\ENP, kf35=\ENQ,
+       kf36=\ENR, kf37=\ENS, kf38=\ENT, kf39=\EOU, kf4=\EOf,
+       kf40=\EOV, kf41=\EOW, kf42=\EOX, kf43=\EOY, kf44=\EOZ,
+       kf45=\EO[, kf46=\EO\s, kf47=\EO], kf48=\EO\^, kf5=\EOg,
+       kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
+       kich1=\E[@, kil1=\E[L, kind=\E[S, kri=\E[T,
+       mc0=\E[?19h\E[0i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+       pfx=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq   SYS     F%p1%:-2d  %e;0;3q%;%p2%s,
+       pfxl=\E[%p1%d;%p2%l%02d;0;0q%p3%:-16.16s%p2%s,
+       pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
+       rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
+       rmam=\E[?7l, rmir=\E[4l, rmln=\E[?13h, rmso=\E[27m,
+       rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+       smln=\E[?13l, smso=\E[7m, smul=\E[4m, smxon=\E[?21h,
+       swidm=\E#6, tsl=\E7\E[;%i%p1%dx,
+att730-41|730MTG-41|AT&T 730-41 windowing terminal Version,
+       lines#41, use=att730,
+att730-24|730MTG-24|AT&T 730-24 windowing terminal Version,
+       lines#24, use=att730,
+att730r|730MTGr|AT&T 730 rev video windowing terminal Version,
+       flash=\E[?5l$<200>\E[?5h,
+       is1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B,
+       use=att730,
+att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version,
+       lines#41, use=att730r,
+att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version,
+       lines#24, use=att730r,
+
+# The following represents the screen layout along with the associated
+# bezel buttons for the 5430/pt505 terminal. The "kf" designations do
+# not appear on the screen but are shown to reference the bezel buttons.
+# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate
+# position relative to the screen.
+#
+#
+#
+#      +----------------------------------------------------------------+
+#      |                                                                |
+# XXXX | kf0                                                       kf24 | XXXX
+#      |                                                                |
+#      |                                                                |
+# XXXX | kf1                                                       kf23 | XXXX
+#      |                                                                |
+#      |                                                                |
+# XXXX | kf2                                                       kf22 | XXXX
+#      |                                                                |
+#      |                                                                |
+# XXXX | kf3                                                       kf21 | XXXX
+#      |                                                                |
+#      |                                                                |
+# XXXX | kf4                                                       kf20 | XXXX
+#      |                                                                |
+#      |                                                                |
+# XXXX | kf5                                                       kf19 | XXXX
+#      |                                                                |
+#      |                                                                |
+# XXXX | kf6                                                       kf18 | XXXX
+#      |                                                                |
+#      |                                                                |
+# XXXX |                                                                | XXXX
+#      |                                                                |
+#      |                                                                |
+#      +----------------------------------------------------------------+
+#
+#          XXXX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX
+#
+# Note: XXXX represents the screen buttons
+#                                                          CMD   REDRAW
+#
+#                                                          MAIL
+#
+# version 1 note:
+#      The character string sent by key 'kf26' may be user programmable
+#       to send either \E[16s, or \E[26s.
+#       The character string sent by key 'krfr' may be user programmable
+#       to send either \E[17s, or \E[27s.
+#
+# Depression of the "CMD" key sends    \E!    (kcmd)
+# Depression of the "MAIL" key sends   \E[26s (kf26)
+# "REDRAW" same as "REFRESH" (krfr)
+#
+# "kf" functions adds carriage return to output string if terminal is in
+# 'new line' mode.
+#
+# The following are functions not covered in the table above:
+#
+#       Set keyboard character (SKC): \EPn1;Pn2w
+#                       Pn1= 0 Back Space key
+#                       Pn1= 1 Break key
+#                       Pn2=   Program char (hex)
+#
+#       Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t
+#                       Pn1=     Window number (1-39)
+#                       Pn2-Pn5= Y;X;Y;X coordinates
+#
+#       Screen Selection (SSL): \E[Pnu
+#                       Pn= Window number
+#
+#       Set Terminal Modes (SM): \E[Pnh
+#                       Pn= 3 Graphics mode
+#                       Pn= > Cursor blink
+#                       Pn= < Enter new line mode
+#                       Pn= = Enter reverse insert/replace mode
+#                       Pn= ? Enter no scroll mode
+#
+#       Reset Terminal Mode (RM): \E[Pnl
+#                       Pn= 3 Exit graphics mode
+#                       Pn= > Exit cursor blink
+#                       Pn= < Exit new line mode
+#                       Pn= = Exit reverse insert/replace mode
+#                       Pn= ? Exit no scroll mode
+#
+#       Screen Status Report (SSR): \E[Pnp
+#                       Pn= 0 Request current window number
+#                       Pn= 1 Request current window dimensions
+#
+#       Device Status Report (DSR): \E[6n    Request cursor position
+#
+#       Call Status Report (CSR): \E[Pnv
+#                       Pn= 0 Call failed
+#                       Pn= 1 Call successful
+#
+#       Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string
+#                       Pn1= Button number to be loaded
+#                       Pn2= Character count of "string"
+#                       Pn3= Key mode being loaded:
+#                               0= Unshifted
+#                               1= Shifted
+#                               2= Control
+#                       String= Text string (15 chars max)
+#
+#       Screen Number Report (SNR): \E[Pnp
+#                       Pn= Screen number
+#
+#       Screen Dimension Report (SDR): \E[Pn1;Pn2r
+#                       Pn1= Number of rows available in window
+#                       Pn2= Number of columns available in window
+#
+#       Cursor Position Report (CPR): \E[Pn1;Pn2R
+#                       Pn1= "Y" Position of cursor
+#                       Pn2= "X" Position of cursor
+#
+#       Request Answer Back (RAB): \E[c
+#
+#       Answer Back Response (ABR): \E[?;*;30;VSV
+#                       *=  0 No printer available
+#                       *=  2 Printer available
+#                       V=  Software version number
+#                       SV= Software sub version number
+#      (printer-available field not documented in v1)
+#
+#       Screen Alignment Aid: \En
+#
+#       Bell (lower pitch): \E[x
+#
+#       Dial Phone Number: \EPdstring\
+#                       string= Phone number to be dialed
+#
+#       Set Phone Labels: \EPpstring\
+#                       string= Label for phone buttons
+#
+#       Set Clock: \EPchour;minute;second\
+#
+#       Position Clock: \EPsY;X\
+#                       Y= "Y" coordinate
+#                       X= "X" coordinate
+#
+#       Delete Clock: \Epr\
+#
+#       Programming The Function Buttons: \EPfPn;string\
+#                       Pn= Button number (00-06, 18-24)
+#                                         (kf00-kf06, kf18-kf24)
+#                       string= Text to sent on button depression
+#
+# The following in version 2 only:
+#
+#       Request For Local Directory Data: \EPp12;\
+#
+#       Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\
+#
+#      Request for Local Directory Data in print format: \EPp13;\
+#
+#      Enable 'Prt on Line' mode: \022 (DC2)
+#
+#      Disable 'Prt on Line' mode: \024 (DC4)
+#
+
+# 05-Aug-86:
+# The following Terminfo entry describes functions which are supported by
+# the AT&T 5430/pt505 terminal software version 2 and later.
+att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal,
+       am, xon,
+       cols#80, it#8, lines#24,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H,
+       cnorm=\E[>l, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[>h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[0J, el=\E[0K, el1=\E[2K, home=\E[H, ht=^I,
+       il=\E[%p1%dL, il1=\E[L, ind=^J,
+       is1=\EPr\\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l,
+       kbs=^H, kcmd=\E!, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kf0=\E[00s, kf1=\E[01s, kf18=\E[18s,
+       kf19=\E[19s, kf2=\E[02s, kf20=\E[20s, kf21=\E[21s,
+       kf22=\E[22s, kf23=\E[23s, kf24=\E[24s, kf26=\E[26s,
+       kf3=\E[03s, kf4=\E[04s, kf5=\E[05s, kf6=\E[06s,
+       krfr=\E[27s, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
+       rmacs=\E[10m, rmam=\E[11;1j, rmir=\E[4l, rmso=\E[m,
+       rmul=\E[m, rs1=\Ec, sc=\E7, sgr0=\E[m, smacs=\E[11m,
+       smam=\E[11;0j, smir=\E[4h, smso=\E[1m, smul=\E[4m,
+
+# The following Terminfo entry describes functions which are supported by
+# the AT&T 5430/pt505 terminal software version 1.
+att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines,
+       lines#24,
+       mc4@, mc5@, rc@, rmam@, sc@, smam@, use=att505,
+tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines,
+       lines#22, use=att505,
+#
+#### ------------------ TERMINFO FILE CAN BE SPLIT HERE ---------------------
+# This cut mark helps make life less painful for people running ncurses tic
+# on machines with relatively little RAM.  The file can be broken in half here
+# cleanly and compiled in sections -- no `use' references cross this cut
+# going forward.
+#
+
+#### Ampex (Dialogue)
+#
+# Yes, these are the same people who are better-known for making audio- and
+# videotape.  I'm told they are located in Redwood City, CA.
+#
+
+# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981
+# (ampex80: some capabilities merged in from SCO's entry -- esr)
+ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80,
+       OTbs, am, bw, ul,
+       cols#80, it#8, lines#24,
+       bel=^G, cbt=\EI, clear=\E*$<75>, cr=^M, cub1=^H, cud1=^J,
+       cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       dch1=\EW, dl1=\ER$<5*>, ed=\Ey, el=\Et, ht=^I, hts=\E1,
+       ich1=\EQ, il1=\EE$<5*>, ind=^J, is2=\EA, rmso=\Ek, rmul=\Em,
+       smso=\Ej, smul=\El, tbc=\E3,
+# This entry was from somebody anonymous, Tue Aug  9 20:11:37 1983, who wrote:
+ampex175|ampex d175,
+       am,
+       cols#80, lines#24,
+       bel=^G, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\Ey, el=\Et, home=^^, ich1=\EQ, il1=\EE, ind=^J,
+       is2=\EX\EA\EF, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
+       kdch1=\EW, kdl1=\ER, khome=^^, kich1=\EQ, kil1=\EE, ll=^^^K,
+       rmcup=\EF, rmso=\Ek, rmul=\Em, smcup=\EN, smso=\Ej, smul=\El,
+# No backspace key in the main QWERTY cluster. Fortunately, it has a
+# NEWLINE/PAGE key just above RETURN that sends a strange single-character
+# code.  Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS
+# mode), this key can be used as the erase key; I find I like this. Because
+# some people and some systems may not, there is another termcap ("ampex175")
+# that suppresses this little eccentricity by omitting the relevant capability.
+ampex175-b|ampex d175 using left arrow for erase,
+       kbs=^_, use=ampex175,
+# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu>
+# (ampex210: removed obsolete ":kn#10:" -- esr)
+ampex210|a210|ampex a210,
+       OTbs, am, hs, xenl,
+       cols#80, it#8, lines#24, xmc#1,
+       cbt=\EI, clear=\E*, cub1=^H, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\Ey, el=\Et, flash=\EU\EX\EU\EX\EU\EX\EU\EX,
+       fsl=\E.2, home=^^, ht=^I, ich1=\EQ,
+       if=/usr/share/tabset/std, il1=\EE, invis@,
+       is2=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En, kcub1=^H,
+       kcud1=^V, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
+       kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
+       kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, khome=^^,
+       tsl=\E.0\Eg\E}\Ef, use=adm+sgr,
+# (ampex219: I added <rmam>/<smam> based on the init string, added <cvvis>
+# from ampex219w, added <cnorm>=\E[?3l, irresistibly suggested by <cvvis>,
+# and moved the padding to be *after* the caps -- esr)
+ampex219|ampex-219|amp219|Ampex with Automargins,
+       hs, xenl,
+       cols#80, it#8, lines#24,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, cbt=\E[Z,
+       clear=\E[H\E[2J$<50>, cnorm=\E[?3l, cr=^M,
+       csr=%i\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B,
+       cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
+       cuu1=\E[A$<2>, cvvis=\E[?3h, dim=\E[1m, ed=\E[J$<50>,
+       el=\E[K$<3>, home=\E[H, ht=^I, ind=^J,
+       is2=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[21~,
+       kf1=\E[7~, kf2=\E[8~, kf3=\E[9~, kf4=\E[10~, kf5=\E[11~,
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
+       rev=\E[7m, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E>,
+       rmso=\E[m$<2>, rmul=\E[m$<2>, sgr0=\E[m$<2>, smam=\E[?7h,
+       smkx=\E=, smso=\E[7m$<2>, smul=\E[4m$<2>,
+ampex219w|ampex-219w|amp219w|Ampex 132 cols,
+       cols#132, lines#24,
+       bel=^G, cr=^M, cud1=^J, ind=^J,
+       is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, use=ampex219,
+# (ampex232: removed <if=/usr/share/tabset/ampex>, no file and no <hts> --esr)
+ampex232|ampex-232|Ampex Model 232,
+       am,
+       cols#80, lines#24, xmc#1,
+       cbt=\EI, civis=\E.0, clear=\E+, cnorm=\E.4, cub1=^H, cud1=^V,
+       cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       dch1=\EW, dl1=\ER$<5*/>, ed=\EY, el=\ET,
+       flash=\Eb$<200/>\Ed, ht=^I, ich1=\EQ, il1=\EE$<5*/>,
+       invis@, is2=\Eg\El, kbs=^H, kcub1=^H, kcud1=^V, kcuf1=^L,
+       kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r,
+       kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r,
+       kf9=^AI\r, khome=^^, use=adm+sgr,
+# (ampex: removed <if=/usr/share/tabset/amp-132>, no file and no <hts> -- esr)
+ampex232w|Ampex Model 232 / 132 columns,
+       cols#132, lines#24,
+       is2=\E\034Eg\El, use=ampex232,
+
+#### Ann Arbor (aa)
+#
+# Ann Arbor made dream terminals for hackers -- large screen sizes and huge
+# numbers of function keys.  At least some used monitors in portrait mode,
+# allowing up to 76-character screen heights!  They were reachable at:
+#
+#      Ann Arbor Terminals
+#      6175 Jackson Road
+#      Ann Arbor, MI 48103
+#      (313)-663-8000
+#
+# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor
+# can't be found on the Web; I fear they're long dead.  R.I.P.
+#
+
+
+# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs.
+# Highly modified 6/22 by Mike O'Brien.
+# split out into several for the various screen sizes by dave-yost@rand
+# Modifications made 3/82 by Mark Horton
+# Modified by Tom Quarles at UCB for greater efficiency and more diversity
+# status line moved to top of screen, <flash> removed 5/82
+# Some unknown person at SCO then hacked the init strings to make them more
+# efficient.
+#
+# assumes the following setup:
+#   A menu: 0000 1010  0001 0000
+#   B menu: 9600  0100 1000  0000 0000  1000 0000  17  19
+#   C menu: 56   66   0    0    9600  0110 1100
+#   D menu: 0110 1001   1   0
+#
+#      Briefly, the settings are for the following modes:
+#         (values are for bit set/clear with * indicating our preference
+#          and the value used to test these termcaps)
+#      Note that many of these settings are irrelevent to the terminfo
+#      and are just set to the default mode of the terminal as shipped
+#      by the factory.
+#
+# A menu: 0000 1010  0001 0000
+#      Block/underline cursor*
+#      blinking/nonblinking cursor*
+#      key click/no key click*
+#      bell/no bell at column 72*
+#
+#      key pad is cursor control*/key pad is numeric
+#      return and line feed/return for <cr> key *
+#      repeat after .5 sec*/no repeat
+#      repeat at 25/15 chars per sec. *
+#
+#      hold data until pause pressed/process data unless pause pressed*
+#      slow scroll/no slow scroll*
+#      Hold in area/don't hold in area*
+#      functions keys have default*/function keys disabled on powerup
+#
+#      show/don't show position of cursor during page transmit*
+#      unused
+#      unused
+#      unused
+#
+# B menu: 9600  0100 1000  0000 0000  1000 0000  17  19
+#      Baud rate (9600*)
+#
+#      2 bits of parity - 00=odd,01=even*,10=space,11=mark
+#      1 stop bit*/2 stop bits
+#      parity error detection off*/on
+#
+#      keyboard local/on line*
+#      half/full duplex*
+#      disable/do not disable keyboard after data transmission*
+#
+#      transmit entire page/stop transmission at cursor*
+#      transfer/do not transfer protected characters*
+#      transmit all characters/transmit only selected characters*
+#      transmit all selected areas/transmit only 1 selected area*
+#
+#      transmit/do not transmit line separators to host*
+#      transmit/do not transmit page tab stops tabs to host*
+#      transmit/do not transmit column tab stop tabs to host*
+#      transmit/do not transmit graphics control (underline,inverse..)*
+#
+#      enable*/disable auto XON/XOFF control
+#      require/do not require receipt of a DC1 from host after each LF*
+#      pause key acts as a meta key/pause key is pause*
+#      unused
+#
+#      unused
+#      unused
+#      unused
+#      unused
+#
+#      XON character (17*)
+#      XOFF character (19*)
+#
+# C menu: 56   66   0    0    9600  0110 1100
+#      number of lines to print data on (printer) (56*)
+#
+#      number of lines on a sheet of paper (printer) (66*)
+#
+#      left margin (printer) (0*)
+#
+#      number of pad chars on new line to printer (0*)
+#
+#      printer baud rate (9600*)
+#
+#      printer parity: 00=odd,01=even*,10=space,11=mark
+#      printer stop bits: 2*/1
+#      print/do not print guarded areas*
+#
+#      new line is: 01=LF,10=CR,11=CRLF*
+#      unused
+#      unused
+#
+# D menu: 0110 1001   1   0
+#      LF is newline/LF is down one line, same column*
+#      wrap to preceding line if move left from col 1*/don't wrap
+#      wrap to next line if move right from col 80*/don't wrap
+#      backspace is/is not destructive*
+#
+#      display*/ignore DEL character
+#      display will not/will scroll*
+#      page/column tab stops*
+#      erase everything*/erase unprotected only
+#
+#      editing extent: 0=display,1=line*,2=field,3=area
+#
+#      unused
+#
+
+annarbor4080|aa4080|ann arbor 4080,
+       OTbs, am,
+       cols#80, lines#40,
+       bel=^G, clear=\014$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=^_,
+       cup=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c,
+       cuu1=^N, home=^K, ht=^I, hts=^]^P1, ind=^J, kbs=^^, kcub1=^H,
+       kcud1=^J, kcuf1=^_, kcuu1=^N, khome=^K, tbc=^\^P^P,
+
+# Strange Ann Arbor terminal from BRL
+aas1901|Ann Arbor K4080 w/S1901 mod,
+       am,
+       cols#80, lines#40,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^N,
+       home=^K, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ll=^O\0c,
+       nel=^M^J,
+
+# If you're using the GNU termcap library, add
+#      :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp:
+# to these capabilities.  This is the nonstandard GNU termcap scrolling
+# capability, arguments are:
+#   1. Total number of lines on the screen.
+#   2. Number of lines above desired scroll region.
+#   3. Number of lines below (outside of) desired scroll region.
+#   4. Total number of lines on the screen, the same as the first parameter.
+# The generic Ann Arbor entry is the only one that uses this.
+aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly),
+       OTbs, am, km, mc5i, mir, xon,
+       cols#80, it#8,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+       clear=\E[H\E[J$<156>, cr=^M, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
+       hts=\EH, ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il=\E[%p1%dL,
+       il1=\E[L$<3>, ind=^K, invis=\E[8m, is1=\E[m\E7\E[H\E9\E8,
+       is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kbs=^H, kcbt=\E[Z,
+       kclr=\E[J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E[P, kdl1=\E[M, kf1=\EOA, kf10=\EOJ, kf11=\EOK,
+       kf12=\EOL, kf13=\EOM, kf14=\EON, kf15=\EOO, kf16=\EOP,
+       kf17=\EOQ, kf18=\EOR, kf19=\EOS, kf2=\EOB, kf20=\EOT,
+       kf21=\EOU, kf22=\EOV, kf23=\EOW, kf24=\EOX, kf3=\EOC,
+       kf4=\EOD, kf5=\EOE, kf6=\EOF, kf7=\EOG, kf8=\EOH, kf9=\EOI,
+       khome=\E[H, kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i,
+       mc4=^C, mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8,
+       rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
+       rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\,
+       rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7,
+       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
+       sgr0=\E[m,
+       smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\,
+       smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
+       vpa=\E[%p1%{1}%+%dd,
+
+aaa+rv|ann arbor ambassador in reverse video,
+       blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m,
+       is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
+       rs1=\E[H\E[7m\E[J$<156>,
+       sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
+       sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m,
+# Ambassador with the DEC option, for partial vt100 compatibility.
+aaa+dec|ann arbor ambassador in dec vt100 mode,
+       acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}},
+       csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N,
+       sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
+       smacs=^O,
+aaa-18|ann arbor ambassador/18 lines,
+       lines#18,
+       is2=\E7\E[60;0;0;18p\E8,
+       rmcup=\E[60;0;0;18p\E[60;1H\E[K, smcup=\E[18;0;0;18p,
+       use=aaa+unk,
+aaa-18-rv|ann arbor ambassador/18 lines+reverse video,
+       use=aaa+rv, use=aaa-18,
+aaa-20|ann arbor ambassador/20 lines,
+       lines#20,
+       is2=\E7\E[60;0;0;20p\E8,
+       rmcup=\E[60;0;0;20p\E[60;1H\E[K, smcup=\E[20;0;0;20p,
+       use=aaa+unk,
+aaa-22|ann arbor ambassador/22 lines,
+       lines#22,
+       is2=\E7\E[60;0;0;22p\E8,
+       rmcup=\E[60;0;0;22p\E[60;1H\E[K, smcup=\E[22;0;0;22p,
+       use=aaa+unk,
+aaa-24|ann arbor ambassador/24 lines,
+       lines#24,
+       is2=\E7\E[60;0;0;24p\E8,
+       rmcup=\E[60;0;0;24p\E[60;1H\E[K, smcup=\E[24;0;0;24p,
+       use=aaa+unk,
+aaa-24-rv|ann arbor ambassador/24 lines+reverse video,
+       use=aaa+rv, use=aaa-24,
+aaa-26|ann arbor ambassador/26 lines,
+       lines#26,
+       is2=\E7\E[60;0;0;26p\E8,
+       rmcup=\E[60;0;0;26p\E[26;1H\E[K,
+       smcup=\E[H\E[J$<156>\E[26;0;0;26p, use=aaa+unk,
+aaa-28|ann arbor ambassador/28 lines,
+       lines#28,
+       is2=\E7\E[60;0;0;28p\E8,
+       rmcup=\E[60;0;0;28p\E[28;1H\E[K,
+       smcup=\E[H\E[J$<156>\E[28;0;0;28p, use=aaa+unk,
+aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status,
+       eslok, hs,
+       lines#29,
+       dsl=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K,
+       fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;30p\E8,
+       rmcup=\E[60;1;0;30p\E[29;1H\E[K,
+       smcup=\E[H\E[J$<156>\E[30;1;0;30p\E[30;1H\E[K,
+       tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
+aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video,
+       use=aaa+rv, use=aaa-30-s,
+aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context,
+       rmcup=\E[60;1;0;30p\E[59;1H\E[K,
+       smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s,
+aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video,
+       rmcup=\E[60;1;0;30p\E[59;1H\E[K,
+       smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s-rv,
+aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines,
+       lines#30,
+       is2=\E7\E[60;0;0;30p\E8,
+       rmcup=\E[60;0;0;30p\E[30;1H\E[K,
+       smcup=\E[H\E[J$<156>\E[30;0;0;30p, use=aaa+unk,
+aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video,
+       use=aaa+rv, use=aaa-30,
+aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context,
+       rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
+       use=aaa-30,
+aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context,
+       rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
+       use=aaa+rv, use=aaa-30,
+aaa-36|ann arbor ambassador/36 lines,
+       lines#36,
+       is2=\E7\E[60;0;0;36p\E8,
+       rmcup=\E[60;0;0;36p\E[36;1H\E[K,
+       smcup=\E[H\E[J$<156>\E[36;0;0;36p, use=aaa+unk,
+aaa-36-rv|ann arbor ambassador/36 lines+reverse video,
+       use=aaa+rv, use=aaa-36,
+aaa-40|ann arbor ambassador/40 lines,
+       lines#40,
+       is2=\E7\E[60;0;0;40p\E8,
+       rmcup=\E[60;0;0;40p\E[40;1H\E[K,
+       smcup=\E[H\E[J$<156>\E[40;0;0;40p, use=aaa+unk,
+aaa-40-rv|ann arbor ambassador/40 lines+reverse video,
+       use=aaa+rv, use=aaa-40,
+aaa-48|ann arbor ambassador/48 lines,
+       lines#48,
+       is2=\E7\E[60;0;0;48p\E8,
+       rmcup=\E[60;0;0;48p\E[48;1H\E[K,
+       smcup=\E[H\E[J$<156>\E[48;0;0;48p, use=aaa+unk,
+aaa-48-rv|ann arbor ambassador/48 lines+reverse video,
+       use=aaa+rv, use=aaa-48,
+aaa-60-s|ann arbor ambassador/59 lines+status,
+       eslok, hs,
+       lines#59,
+       dsl=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K,
+       fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;60p\E8,
+       tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
+aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video,
+       use=aaa+rv, use=aaa-60-s,
+aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video,
+       use=aaa+dec, use=aaa+rv, use=aaa-60-s,
+aaa-60|ann arbor ambassador/60 lines,
+       lines#60,
+       is2=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8,
+       use=aaa+unk,
+aaa-60-rv|ann arbor ambassador/60 lines+reverse video,
+       use=aaa+rv, use=aaa-60,
+aaa-db|ann arbor ambassador 30/destructive backspace,
+       OTbs@,
+       cub1=\E[D, is3=\E[1Q\E[m\E[>20l\E[>30h, use=aaa-30,
+
+guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols,
+       lines#33,
+       flash=\E[>59h$<100>\E[>59l,
+       is2=\E7\E[255;0;0;33;80;80p\E8\E[J, is3=\E[>59l,
+       rmcup=\E[255p\E[255;1H\E[K, smcup=\E[33p, use=aaa+unk,
+guru+rv|guru changes for reverse video,
+       flash=\E[>59l$<100>\E[>59h, is3=\E[>59h,
+guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video,
+       use=guru+rv, use=guru-33,
+guru+s|guru status line,
+       eslok, hs,
+       dsl=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K, fsl=\E[>51l,
+       rmcup=\E[255;1p\E[255;1H\E[K, smcup=,
+       tsl=\E[>51h\E[1;%p1%dH\E[2K,
+guru-nctxt|guru with no saved context,
+       smcup=\E[H\E[J$<156>\E[33p\E[255;1H\E[K, use=guru,
+guru-s|guru-33-s|ann arbor guru/33 lines+status,
+       lines#32,
+       is2=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J,
+       smcup=\E[33;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
+guru-24|ann arbor guru 24 lines,
+       cols#80, lines#24,
+       is2=\E7\E[255;0;0;24;80;80p\E8\E[J, smcup=\E[24p,
+       use=guru+unk,
+guru-44|ann arbor guru 44 lines,
+       cols#97, lines#44,
+       is2=\E7\E[255;0;0;44;97;100p\E8\E[J, smcup=\E[44p,
+       use=guru+unk,
+guru-44-s|ann arbor guru/44 lines+status,
+       lines#43,
+       is2=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J,
+       smcup=\E[44;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
+guru-76|guru with 76 lines by 89 cols,
+       cols#89, lines#76,
+       is2=\E7\E[255;0;0;76;89;100p\E8\E[J, smcup=\E[76p,
+       use=guru+unk,
+guru-76-s|ann arbor guru/76 lines+status,
+       cols#89, lines#75,
+       is2=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J,
+       smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
+guru-76-lp|guru-lp|guru with page bigger than line printer,
+       cols#134, lines#76,
+       is2=\E7\E[255;0;0;76;134;134p\E8\E[J, smcup=\E[76p,
+       use=guru+unk,
+guru-76-w|guru 76 lines by 178 cols,
+       cols#178, lines#76,
+       is2=\E7\E[255;0;0;76;178;178p\E8\E[J, smcup=\E[76p,
+       use=guru+unk,
+guru-76-w-s|ann arbor guru/76 lines+status+wide,
+       cols#178, lines#75,
+       is2=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J,
+       smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
+guru-76-wm|guru 76 lines by 178 cols with 255 cols memory,
+       cols#178, lines#76,
+       is2=\E7\E[255;0;0;76;178;255p\E8\E[J, smcup=\E[76p,
+       use=guru+unk,
+aaa-rv-unk|ann arbor unknown type,
+       lh#0, lw#0, nlab#0,
+       blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m,
+       is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
+       rs1=\E[H\E[7m\E[J,
+       sgr=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
+       sgr0=\E[7m, smso=\E[m, smul=\E[4;7m,
+
+#### Applied Digital Data Systems (adds)
+#
+# ADDS itself is long gone.  ADDS was bought by NCR, and the same group made
+# ADDS and NCR terminals.  When AT&T and NCR merged, the engineering for
+# terminals was merged again.  Then AT&T sold the terminal business to
+# SunRiver, which later changed its  name to Boundless Technologies.  The
+# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there
+# as of early 1995) are at:
+#
+#      Boundless Technologies
+#      100 Marcus Boulevard
+#      Hauppauge, NY 11788-3762
+#      Vox: (800)-231-5445
+#      Fax: (516)-342-7378
+#      Web: http://boundless.com
+#
+# Their voice mail used to describe the place as "SunRiver (formerly ADDS)".
+# In 1995 Boundless acquired DEC's terminals business.
+#
+
+# Regent: lowest common denominator, works on all regents.
+# (regent: renamed ":bc:" to ":le:" -- esr)
+regent|Adds Regent Series,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F, cuu1=^Z,
+       home=\EY\s\s, ind=^J, ll=^A,
+# Regent 100 has a bug where if computer sends escape when user is holding
+# down shift key it gets confused, so we avoid escape.
+regent100|Adds Regent 100,
+       xmc#1,
+       bel=^G,
+       cup=\013%p1%' '%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
+       kf0=^B1\r, kf1=^B2\r, kf2=^B3\r, kf3=^B4\r, kf4=^B5\r,
+       kf5=^B6\r, kf6=^B7\r, kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3,
+       lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@,
+       sgr0=\E0@, smso=\E0P, smul=\E0`, use=regent,
+regent20|Adds Regent 20,
+       bel=^G, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ed=\Ek, el=\EK,
+       use=regent,
+regent25|Adds Regent 25,
+       bel=^G, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, khome=^A,
+       use=regent20,
+regent40|Adds Regent 40,
+       xmc#1,
+       bel=^G, dl1=\El$<2*>, il1=\EM$<2*>, kf0=^B1\r, kf1=^B2\r,
+       kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
+       kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6,
+       lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, sgr0=\E0@, smso=\E0P,
+       smul=\E0`, use=regent25,
+regent40+|Adds Regent 40+,
+       is2=\EB, use=regent40,
+regent60|regent200|Adds Regent 60,
+       dch1=\EE, is2=\EV\EB, kdch1=\EE, kich1=\EF, krmir=\EF,
+       rmir=\EF, rmso=\ER\E0@\EV, smir=\EF, smso=\ER\E0P\EV,
+       use=regent40+,
+# From: <edward@onyx.berkeley.edu> Thu Jul  9 09:27:33 1981
+# (viewpoint: added <kcuf1>, function key, and <dl1> capabilities -- esr)
+viewpoint|addsviewpoint|adds viewpoint,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=^L, cnorm=\017\E0`, cr=^M, cub1=^H, cud1=^J,
+       cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
+       cvvis=\017\E0P, dl1=\El, ed=\Ek$<16.1*>, el=\EK$<16>,
+       ind=^J, is2=\017\E0`, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
+       kf0=^B1, kf2=^B2, kf3=^B!, kf4=^B", kf5=^B#, khome=^A, ll=^A,
+       rmso=^O, rmul=^O, sgr0=^O, smso=^N, smul=^N,
+# Some viewpoints have bad ROMs that foo up on ^O
+screwpoint|adds viewpoint with ^O bug,
+       cvvis@, rmso@, rmul@, smso@, smul@, use=viewpoint,
+
+# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
+# The <civis>/<cnorm>/<sgr>/<sgr0> strings were added by ESR from specs.
+# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000,
+# underline=01100000, rev=01010000, blink=01000010,dim=01000001,
+# invis=01000100 and %c is the logical or of desired attributes.
+# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(.
+#
+# Update by TD - 2004:
+# Adapted from
+#      http://www.cs.utk.edu/~shuford/terminal/adds_viewpoint_news.txt
+#
+# COMMANDS                        ASCII CODE
+#
+# Address, Absolute               ESC,=,row,column
+# Beep                            BEL
+# Aux Port Enable                 ESC,@
+# Aux Port Disable                ESC,A
+# Backspace                       BS
+# Cursor back                     BS
+# Cursor down                     LF
+# Cursor forward                  FF
+# Cursor home                     RS
+# Cursor up                       VT
+# Cursor supress                  ETB
+# Cursor enable                   CAN
+# Erase to end of line            ESC,T
+# Erase to end of page            ESC,Y
+# Erase screen                    SUB
+# Keyboard lock                   SI
+# Keyboard unlock                 SO
+# Read current cursor position    ESC,?
+# Set Attribute                   ESC,0,x  (see below for values of x)
+# Tag bit reset                   ESC,(
+# Tag bit set                     ESC,)
+# Transparent Print on            ESC,3
+# Transparent Print off           ESC,4
+#
+#
+# ATTRIBUTES
+#
+# Normal                          @    0100
+# Half Intensity                  A    0101
+# Blinking                        B    0102
+# Half Intensity Blinking         C    0103
+# Reverse Video                   P    0120
+# Reverse Video Half Intensity    Q    0121
+# Reverse Video Blinking          R    0122
+# Reverse Video Half Intensity
+#    Blinking                     S    0123
+# Underlined                      `    0140
+# Underlined Half Intensity       a    0141
+# Underlined Blinking             b    0142
+# Underlined Half Intensity
+#    Blinking                     c    0143
+# Video suppress                  D    0104
+vp3a+|viewpoint3a+|adds viewpoint 3a+,
+       am, bw,
+       cols#80, it#8, lines#24,
+       blink=\E0B\E), civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M,
+       cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dim=\E0A\E),
+       ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, invis=\E0D\E),
+       kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
+       nel=^M^J, rev=\E0P\E), rmso=\E(,
+       sgr=%?%p1%p2%|%p3%|%p4%|%p5%|%p7%|%t\E0%{64}%?%p1%t%{17}%|%;%?%p2%t%{32}%|%;%?%p3%t%{16}%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%c%?%p7%tD%;\E)%e\E(%;,
+       sgr0=\E(, smso=\E0Q\E), smul=\E0`\E),
+vp60|viewpoint60|addsvp60|adds viewpoint60,
+       use=regent40,
+#
+# adds viewpoint 90 - from cornell
+# Note:  emacs sends ei occasionally to insure the terminal is out of
+#        insert mode. This unfortunately puts the viewpoint90 IN insert
+#        mode.  A hack to get around this is <ich1=\EF\s\EF^U>.  (Also,
+#   -    :ei=:im=: must be present in the termcap translation.)
+#   -    <xhp> indicates glitch that attributes stick to location
+#   -    <msgr> means it's safe to move in standout mode
+#   -    <clear=\EG\Ek>: clears screen and visual attributes without affecting
+#               the status line
+# Function key and label capabilities merged in from SCO.
+vp90|viewpoint90|adds viewpoint 90,
+       OTbs, bw, msgr, xhp,
+       cols#80, lines#24,
+       clear=\EG\Ek, cub1=^H, cud1=^J, cuf1=^F,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EE,
+       dl1=\El, ed=\Ek, el=\EK, home=\EY\s\s, ht=^I,
+       ich1=\EF \EF\025, ind=^J, kbs=^H, kcub1=^U, kcud1=^J,
+       kcuf1=^F, kcuu1=^Z, kf0=^B1\r, kf1=^B2\r, kf10=^B;\r,
+       kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
+       kf7=^B8\r, kf8=^B9\r, kf9=^B\:\r, khome=^A, lf0=F1, lf1=F2,
+       lf10=F11, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9,
+       lf9=F10, ll=^A, rmso=\ER\E0@\EV, rmul=\ER\E0@\EV,
+       sgr0=\ER\E0@\EV, smso=\ER\E0Q\EV, smul=\ER\E0`\EV,
+# Note: if return acts weird on a980, check internal switch #2
+# on the top chip on the CONTROL pc board.
+adds980|a980|adds consul 980,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\014$<1>\013@, cr=^M, cub1=^H, cud1=^J,
+       cuf1=\E^E01, cup=\013%p1%{64}%+%c\E\005%p2%2d,
+       dl1=\E\017$<13>, il1=\E\016$<13>, ind=^J, kf0=\E0, kf1=\E1,
+       kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8,
+       kf9=\E9, rmso=^O, sgr0=^O, smso=^Y^^^N,
+
+#### C. Itoh Electronics
+#
+# As of 1995 these people no longer make terminals (they're still in the
+# printer business).  Their terminals were all clones of the DEC VT series.
+# They're located in Orange County, CA.
+#
+
+# CIT 80  - vt-52 emulator, the termcap has been modified to remove
+#           the delay times and do an auto tab set rather than the indirect
+#           file used in vt100.
+cit80|cit-80|citoh 80,
+       OTbs, am,
+       cols#80, lines#24,
+       clear=\E[H\EJ, cr=^M, cub1=^H, cuf1=\E[C,
+       cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L,
+       ind=^J, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+       kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
+# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985
+# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr)
+cit101|citc|C.itoh fast vt100,
+       OTbs, am, xenl,
+       cols#80, lines#24,
+       bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E7\E[U,
+       dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
+       flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L,
+       is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+       smul=\E[4m,
+# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL
+# The following termcap entry was created from the Callan cd100 entry.  The
+# last two lines (with the capabilities in caps) are used by RM-cobol to allow
+# full selection of combinations of reverse video, underline, and blink.
+# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\
+# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\
+# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr)
+cit101e|C. Itoh CIT-101e,
+       OTbs, OTpt, am, mir, msgr,
+       cols#80, it#8, lines#24,
+       acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
+       cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
+       cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M, ed=\E[J,
+       el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl,
+       kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l,
+       rmkx=\E>, rmso=\E[m, rmul=\E[m, sc=\E7, smacs=^N, smir=\E[4h,
+       smkx=\E=, smso=\E[7m, smul=\E[4m,
+# From: David S. Lawyer, June 1997:
+# The CIT 101-e was made in Japan in 1983-4 and imported by CIE
+# Terminals in Irvine, CA.  It was part of CITOH Electronics.  In the
+# late 1980's CIT Terminals went out of business.
+# There is no need to use the initialization string is=... (by invoking
+# tset or setterm etc.) provided that the terminal has been manually set
+# up (and the setup saved with ^S) to be compatible with this termcap.  To be
+# compatible it should be in ANSI mode (not VT52).   A set-up that
+# works is to set all the manually setable stuff to factory defaults
+# by pressing ^D in set-up mode.  Then increse the brighness with the
+# up-arrow key since the factory default will likely be dim on an old
+# terminal.  Then change any options you want (provided that they are
+# compatible with the termcap).  For my terminal I set: Screen
+# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver:
+# on.  I also set up mine for parity (but you may not need it).  Then
+# save the setup with ^S.
+# (cit101e-rv: added empty <rmcup> to suppress a tic warning. --esr)
+cit101e-rv|Citoh CIT-101e (sets reverse video),
+       am, eo, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24,
+       OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+       civis=\E[1v, clear=\E[H\E[J, cnorm=\E[0;3;4v, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[3;5v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l\E[?5h$<200/>,
+       home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
+       is2=\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,
+       kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8,
+       rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=, rmir=\E[4l,
+       rmso=\E[m, rmul=\E[m, rs1=\Ec\E[?7h\E[>5g, sc=\E7,
+       sgr0=\E[m, smcup=\E[>5g\E[?7h\E[?5h, smir=\E[4h,
+       smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%p1%d;%p2%dR,
+       u7=\E[6n, u8=\E[?6c, u9=\E[c,
+cit101e-n|CIT-101e w/o am,
+       am@,
+       cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
+       use=cit101e,
+cit101e-132|CIT-101e with 132 cols,
+       cols#132,
+       kbs=^H, kcub1=^H, kcud1=^J, use=cit101e,
+cit101e-n132|CIT-101e with 132 cols w/o am,
+       am@,
+       cols#132,
+       cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
+       use=cit101e,
+# CIE Terminals CIT-500 from BRL
+# The following SET-UP modes are assumed for normal operation:
+#      GENERATE_XON/XOFF:YES   DUPLEX:FULL             NEWLINE:OFF
+#      AUTOWRAP:ON             MODE:ANSI               SCREEN_LENGTH:64_LINES
+#      DSPLY_CNTRL_CODES?NO    PAGE_WIDTH:80           EDIT_MODE:OFF
+# Other SET-UP modes may be set for operator convenience or communication
+# requirements.
+# Hardware tabs are assumed to be set every 8 columns; they can be set up
+# by the "reset", "tset", or "tabs" utilities.  No delays are specified; use
+# "stty ixon -ixany" to enable DC3/DC1 flow control!
+# (cit500: I added <rmam>/<smam> based on the init string -- esr)
+cit500|CIE Terminals CIT-500,
+       OTbs, OTpt, mir, msgr, xon,
+       OTkn#10, cols#80, it#8, lines#64, vt#3,
+       acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+       clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\EM, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ed=\EJ, el=\EK, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
+       il1=\E[L, ind=^J, is2=\E<\E)0, kbs=^H, kcbt=\E[Z, kcub1=\EOD,
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[P, kdl1=\E[M,
+       ked=\EJ, kel=\EK, kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
+       kf4=\EOU, kf5=\EOV, kf6=\EOW, kf7=\EOX, kf8=\EOY, kf9=\EOZ,
+       khome=\E[H, kich1=\E[4h, kil1=\E[L, krmir=\E[4l, lf0=PF1,
+       lf1=PF2, lf2=PF3, lf3=PF4, lf4=F15, lf5=F16, lf6=F17, lf7=F18,
+       lf8=F19, lf9=F20, ll=\E[64H, nel=\EE, rc=\E8, rev=\E[7m,
+       ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
+       rmso=\E[m, rmul=\E[m,
+       rs1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>,
+       sc=\E7, sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+
+# C. Itoh printers begin here
+citoh|ci8510|8510|c.itoh 8510a,
+       cols#80, it#8,
+       bold=\E!, cub1@,
+       is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073.,
+       rep=\ER%p2%03d%p1%c, ri=\Er, rmul=\EY, sgr0=\E"\EY,
+       smul=\EX, use=lpr,
+citoh-pica|citoh in pica,
+       is1=\EN, use=citoh,
+citoh-elite|citoh in elite,
+       cols#96,
+       is1=\EE,
+       is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089.,
+       use=citoh,
+citoh-comp|citoh in compressed,
+       cols#136,
+       is1=\EQ,
+       is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089\,097\,105\,113\,121\,129.,
+       use=citoh,
+# citoh has infinite cols because we don't want lp ever inserting \n\t**.
+citoh-prop|citoh-ps|ips|citoh in proportional spacing mode,
+       cols#32767,
+       is1=\EP, use=citoh,
+citoh-6lpi|citoh in 6 lines per inch mode,
+       is3=\EA, use=citoh,
+citoh-8lpi|citoh in 8 lines per inch mode,
+       lines#88,
+       is3=\EB, use=citoh,
+
+#### Control Data (cdc)
+#
+
+cdc456|cdc 456 terminal,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E1%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dl1=\EJ, ed=^X,
+       el=^V, home=^Y, il1=\EL, ind=^J,
+
+# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick)
+cdc721|CDC Viking,
+       OTbs, am,
+       cols#80, lines#24,
+       clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
+       cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
+       kcuu1=^W, khome=^Y,
+cdc721ll|CDC Vikingll,
+       OTbs, am,
+       cols#132, lines#24,
+       clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
+       cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
+       kcuu1=^W, khome=^Y,
+# (cdc752: the BRL entry had :ll=\E1  ^Z: commented out
+cdc752|CDC 752,
+       OTbs, am, bw, xhp,
+       cols#80, lines#24,
+       bel=^G, clear=\030\E1\s\s, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+       cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z, el=^V,
+       home=\E1\s\s, ind=^J, ll=^Y, rs1=\E1  \030\002\003\017,
+# CDC 756
+# The following switch/key settings are assumed for normal operation:
+#      96 chars        SCROLL          FULL duplex     not BLOCK
+# Other switches may be set according to communication requirements.
+# Insert/delete-character cannot be used, as the whole display is affected.
+# "so" & "se" are commented out until jove handles "sg" correctly.
+cdc756|CDC 756,
+       OTbs, am, bw,
+       OTkn#10, cols#80, lines#24,
+       bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+       cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z,
+       dl1=\EJ$<6*/>, ed=^X, el=^V, home=^Y, il1=\EL$<6*/>, ind=^J,
+       kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z, kdch1=\EI,
+       kdl1=\EL, ked=^X, kel=^V, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED,
+       kf4=\EE, kf5=\EF, kf6=\EG, kf7=\EH, kf8=\Ea, kf9=\Eb, khome=^Y,
+       khts=^O, kich1=\EK, kil1=\EL, lf0=F1, lf1=F2, lf2=F3, lf3=F4,
+       lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10, ll=^Y^Z,
+       rs1=\031\030\002\003\017,
+#
+# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL.
+#
+# Part of the long initialization string defines the "DOWN" key to the left
+# of the tab key to send an ESC.  The real ESC key is positioned way out
+# in right field.
+#
+# The termcap won't work in 132 column mode due to the way it it moves the
+# cursor.  Termcap doesn't have the capability (as far as I could tell) to
+# handle the 721 in 132 column mode.
+#
+# (cdc721: changed :ri: to :sr: -- esr)
+cdc721-esc|Control Data 721,
+       OTbs, OTpt, am, bw, msgr, xon,
+       OTkn#10, cols#80, it#8, lines#30,
+       bel=^G, blink=^N, cbt=^^^K, clear=^L, cub1=^H, cud1=^Z,
+       cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, cuu1=^W,
+       dch1=^^N, dim=^\, dl1=^^Q, ed=^^P, el=^K, home=^Y, hts=^^^RW,
+       ich1=^^O, il1=^^R, ind=\036W =\036U, invis=^^^R[,
+       is2=\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,
+       kbs=^H, kcub1=^H, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^q,
+       kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v, kf6=^^w, kf7=^^x,
+       kf8=^^y, kf9=^^z, khome=^Y, ll=^B =, rev=^^D,
+       ri=\036W =\036V, rmir=, rmkx=^^^Rl, rmso=^^E, rmul=^],
+       sgr0=\017\025\035\036E\036\022\\, smir=, smkx=^^^Rk,
+       smso=^^D, smul=^\, tbc=^^^RY,
+
+#### Getronics
+#
+# Getronics is a Dutch electronics company that at one time was called
+# `Geveke' and made async terminals; but (according to the company itself!)
+# they've lost all their documentation on the command set.  The hardware
+# documentation suggests the terminals were actually manufactured by a
+# Taiwanese electronics company named Cal-Comp.  There are known
+# to have been at least two models, the 33 and the 50.
+#
+
+# The 50 seems to be a top end vt220 clone, with the addition of a higher
+# screen resolution, a larger screen, at least 1 page of memory above and
+# below the screen, apparently pages of memory right and left of the screen
+# which can be panned, and about 75 function keys (15 function keys x normal,
+# shift, control, func A, func B). It also has more setup possibilities than
+# the vt220. The monitor case is dated November 1978 and the keyboard case is
+# May 1982.
+#
+# The vt100 emulation works as is.  The entry below describes the rather
+# non-conformant (but more featureful) ANSI mode.
+#
+# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995
+visa50|geveke visa 50 terminal in ansi 80 character mode,
+       bw, mir, msgr,
+       cols#80, lines#25,
+       acsc=0_aaffggh jjkkllmmnnooqqssttuuvvwwxx, bel=^G,
+       blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, home=\E[H,
+       hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
+       is2=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h,
+       ka1=\E[f, ka3=\EOQ, kb2=\EOP, kbs=^H, kc1=\EOR, kc3=\EOS,
+       kcub1=\E[D, kcud1=\E[A, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
+       kdl1=\EOS, kf0=\E010, kf1=\E001, kf10=\E011, kf2=\E002,
+       kf3=\E003, kf4=\E004, kf5=\E005, kf6=\E006, kf7=\E007,
+       kf8=\E008, kf9=\E009, khome=\E[f, lf2=A delete char,
+       lf3=A insert line, lf4=A delete line, lf5=A clear,
+       lf6=A ce of/cf gn, lf7=A print, lf8=A on-line,
+       lf9=A funcl0=A send, nel=^M^J, rev=\E[7m, rmacs=\E[3l,
+       rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[0;2m,
+       rmul=\E[0m, sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h,
+       smir=\E[4h, smkx=\E=, smso=\E[2;7m, smul=\E[4m, tbc=\E[3g,
+       vpa=\E[%i%p1%dd,
+
+#### Human Designed Systems (Concept)
+#
+#      Human Designed Systems
+#      400 Fehley Drive
+#      King of Prussia, PA 19406
+#      Vox: (610)-277-8300
+#      Fax: (610)-275-5739
+#      Net: support@hds.com
+#
+# John Martin <john@hds.com> is their termcap expert.  They're mostly out of
+# the character-terminal business now (1995) and making X terminals.  In
+# particular, the whole `Concept' line described here was discontinued long
+# ago.
+#
+
+# From: <vax135!hpk>  Sat Jun 27 07:41:20 1981
+# Extensive changes to c108 by arpavax:eric Feb 1982
+# Some unknown person at SCO then translated it to terminfo.
+#
+# There seem to be a number of different versions of the C108 PROMS
+# (with bug fixes in its Z-80 program).
+#
+# The first one that we had would lock out the keyboard of you
+# sent lots of short lines (like /usr/dict/words) at 9600 baud.
+# Try that on your C108 and see if it sends a ^S when you type it.
+# If so, you have an old version of the PROMs.
+#
+# You should configure the C108 to send ^S/^Q before running this.
+# It is much faster (at 9600 baud) than the c100 because the delays
+# are not fixed.
+# new status line display entries for c108-8p:
+# <is3> - init str #3 - setup term for status display -
+# set programmer mode, select window 2, define window at last
+# line of memory, set bkgnd stat mesg there, select window 0.
+#
+# <tsl> - to status line - select window 2, home cursor, erase to
+# end-of-window, 1/2 bright on, goto(line#0, col#?)
+#
+# <fsl> - from status line - 1/2 bright off, select window 0
+#
+# <dsl> - disable status display - set bkgnd status mesg with
+# illegal window #
+#
+# There are probably more function keys that should be added but
+# I don't know what they are.
+#
+# No delays needed on c108 because of ^S/^Q handshaking
+#
+c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages,
+       is3=\EU\E z"\Ev\001\177 !p\E ;"\E z \Ev  \001\177p\Ep\n,
+       rmcup=\Ev  \001\177p\Ep\r\n, use=c108-4p,
+c108-4p|concept108-4p|concept 108 w/4 pages,
+       OTbs, eslok, hs, xon,
+       pb@,
+       acsc=jEkTl\\mMqLxU, cnorm=\Ew, cr=^M,
+       cup=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c,
+       cvvis=\EW, dch1=\E 1$<16*>, dsl=\E ;\177, fsl=\Ee\E z\s,
+       ind=^J, is1=\EK\E!\E F,
+       is3=\EU\E z"\Ev\177 !p\E ;"\E z \Ev  \001 p\Ep\n,
+       rmacs=\Ej\s, rmcup=\Ev  \001 p\Ep\r\n, smacs=\Ej!,
+       smcup=\EU\Ev  8p\Ep\r\E\025,
+       tsl=\E z"\E?\E\005\EE\Ea %+\s, use=c100,
+c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video,
+       rmcup=\Ev  \002 p\Ep\r\n, smcup=\EU\Ev  8p\Ep\r,
+       use=c108-rv-4p,
+c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video,
+       flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, smso=\EE,
+       use=c108-4p,
+c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode,
+       cols#132,
+       is1=\E F\E", rmcup=\Ev  ^A0\001D\Ep\r\n,
+       smcup=\EU\Ev  8\001D\Ep\r, use=c108-8p,
+
+# Concept 100:
+# These have only window relative cursor addressing, not screen
+# relative. To get it to work right here, smcup/rmcup (which
+# were invented for the concept) lock you into a one page
+# window for screen style programs.
+#
+# To get out of the one page window, we use a clever trick:
+# we set the window size to zero ("\Ev    " in rmcup) which the
+# terminal recognizes as an error and resets the window to all
+# of memory.
+#
+# This trick works on c100 but does not on c108, sigh.
+#
+# Some tty drivers use cr3 for concept, others use nl3, hence
+# the delays on cr and ind below. This padding is only needed at
+# 9600 baud and up.  One or the other is commented out depending on
+# local conventions.
+#
+# 2 ms padding on <rmcup> isn't always enough. 6 works fine. Maybe
+# less than 6 but more than 2 will work.
+#
+# Note: can't use function keys f7-f10 because they are
+# indistinguishable from arrow keys (!), also, del char and
+# clear eol use xon/xoff so they probably won't work very well.
+#
+# Also note that we don't define insrt/del char/delline/eop/send
+# because they don't transmit unless we reset them - I figured
+# it was a bad idea to clobber their definitions.
+#
+# The <mc5> sequence changes the escape character to ^^ so that
+# escapes will be passed through to the printer. Only trouble
+# is that ^^ won't be - ^^ was chosen to be unlikely.
+# Unfortunately, if you're sending raster bits through to be
+# plotted, any character you choose will be likely, so we lose.
+#
+# \EQ"\EY(^W (send anything from printer to host, for xon/xoff)
+# cannot be # in is2 because it will hang a c100 with no printer
+# if sent twice.
+c100|concept100|concept|c104|c100-4p|hds concept 100,
+       OTbs, am, eo, mir, ul, xenl,
+       cols#80, lines#24, pb#9600, vt#8,
+       bel=^G, blink=\EC, clear=\E?\E\005$<2*>, cr=$<9>\r,
+       cub1=^H, cud1=^J, cuf1=\E=,
+       cup=\Ea%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E;,
+       dch1=\E\021$<16*>, dim=\EE, dl1=\E\002$<3*>,
+       ed=\E\005$<16*>, el=\E\025$<16>, flash=\Ek$<200>\EK,
+       ht=\011$<8>, il1=\E\022$<3*>, ind=^J, invis=\EH, ip=$<16*>,
+       is1=\EK,
+       is2=\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,
+       is3=\Ev    $<6>\Ep\n, kbs=^H, kcbt=\E', kctab=\E_,
+       kcub1=\E>, kcud1=\E<, kcuf1=\E=, kcuu1=\E;, kdch1=\E^Q,
+       kdl1=\E^B, ked=\E^C, kel=\E^S, kf1=\E5, kf2=\E6, kf3=\E7,
+       kf4=\E8, kf5=\E9, kf6=\E\:a, kf7=\E\:b, kf8=\E\:c, khome=\E?,
+       khts=\E], kich1=\E^P, kil1=\E^R, kind=\E[, knp=\E-, kpp=\E.,
+       kri=\E\\, krmir=\E\0, mc4=\036o \E\EQ!\EYP\027,
+       mc5=\EQ"\EY(\027\EYD\Eo \036, prot=\EI,
+       rep=\Er%p1%c%p2%{32}%+%c$<.2*>, rev=\ED,
+       rmcup=\Ev    $<6>\Ep\r\n, rmir=\E\s\s, rmkx=\Ex,
+       rmso=\Ed, rmul=\Eg, sgr0=\EN@,
+       smcup=\EU\Ev  8p\Ep\r\E\025$<16>, smir=\E^P, smkx=\EX,
+       smso=\ED, smul=\EG,
+c100-rv|c100-rv-4p|concept100-rv|c100 rev video,
+       cnorm@, cvvis@, flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee,
+       smso=\EE, use=c100,
+oc100|oconcept|c100-1p|old 1 page concept 100,
+       in,
+       is3@, use=c100,
+
+# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996.
+# Lots of notes, originally inline, but ncurses doesn't grok that.
+#
+# am:  not available in power on mode, but turned on with \E[=107;207h in
+#      is2=.  Also, \E=124l in is2= could have been used to prevent needing
+#      to specify xenl:, but that would have rendered the last space on the
+#      last line useless.
+# bw:  Not available in power on mode, but turned on with \E[=107;207h in
+#      is2=.
+# clear: Could be done with \E[2J alone, except that vi (and probably most
+#      other programs) assume that this also homes the cursor.
+# dsl: Go to window 2, go to the beginning of the line, use a line feed to
+#      scroll the window, and go back to window 1.
+# is2: the string may cause a warning to be issued by tic that it
+#      found a very long line and that it suspects that a comma is missing
+#      somewhere.  This warning can be ignored (unless it comes up more than
+#      once).  The initialization string contains the following commands:
+#
+#       [Setup mode items changed from factory defaults:]
+#              \E)0                    set alternate character set to
+#                                              graphics
+#              ^O                      set character set to default
+#       [In case it wasn't]
+#              \E[m                    turn off all attributes
+#       [In case they weren't off]
+#              \E[=107;                cursor wrap and
+#                      207h                    character wrap on
+#              \E[90;3u                set Fkey definitions to "transmit"
+#                                              defaults
+#              \E[92;3u                set cursor key definitions to
+#                                              "transmit" defaults
+#              \E[43;1u                set shift F13 to transmit...
+#              \177\E$P\177
+#              \E[44;1u                set shift F14 to transmit...
+#                      \177\E$Q\177
+#              \E[45;1u                set shift F15 to transmit...
+#                      \177\E$R\177
+#              \E[46;1u                set shift F16 to transmit...
+#                      \177\E$S\177
+#              \E[200;1u               set shift up to transmit...
+#                      \177\E$A\177
+#              \E[201;1u               set shift down to transmit...
+#                      \177\E$B\177
+#              \E[202;1u               set shift right to transmit...
+#                      \177\E$C\177
+#              \E[203;1u               set shift left to transmit...
+#                      \177\E$D\177
+#              \E[204;1u               set shift home to transmit...
+#                      \177\E$H\177
+#              \E[212;1u               set backtab to transmit...
+#                      \177\E$I\177
+#              \E[213;1u               set shift backspace to transmit...
+#                      \177\E$^H\177
+#              \E[214;1u               set shift del to transmit...
+#                      "\E$\177"
+#       [Necessary items not mentioned in setup mode:]
+#              \E[2!w                  move to window 2
+#              \E[25;25w               define window as line 25 of memory
+#              \E[!w                   move to window 1
+#              \E[2*w                  show current line of window 2 as
+#                                              status line
+#              \E[2+x                  set meta key to use high bit
+#              \E[;3+}                 move underline to bottom of character
+#
+#      All Fkeys are set to their default transmit definitions with \E[90;3u
+#      in is2=.  IMPORTANT:  to use this terminal definition, the "quit" stty
+#      setting MUST be redefined or deactivated, because the default is
+#      contained in almost all of this terminal's Fkey strings!  If for some
+#      reason "quit" cannot be altered, the Fkeys can, but it would be
+#      necessary to change ^| to ^] in all of these definitions, and add
+#      \E[2;029!t to is2.
+# lines: is set to 24 because this terminal refuses to treat the 25th
+#      line normally.
+# ll:  Not available in power on mode, but turned on with \E[=107;207h in
+#      is2=.
+# lm:  Pointless, given that this definition locks a single screen of
+#      memory into view, but what the hey...
+# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any
+#      other attributes alone), but some programs expect this to turn off
+#      everything.
+# rmul: Could use \E[4!{ to turn off only underline (leaving any other
+#      attributes alone), but some programs expect this to turn off
+#      everything.
+# sgr: Attributes are set on this terminal with the string \E[ followed by
+#      a list of attribute code numbers (in decimal, separated by
+#      semicolons), followed by the character m.  The attribute code
+#      numbers are:
+#                1 for bold;
+#                2 for dim (which is ignored in power on mode);
+#                4 for underline;
+#                5 for blinking;
+#                7 for inverse;
+#                8 for not displayable; and
+#              =99 for protected (except that there are strange side
+#              effects to protected characters which make them inadvisable).
+#       The mapping of terminfo parameters to attributes is as follows:
+#              %p1 (standout) = bold and inverse together;
+#              %p2 (underline) = underline;
+#              %p3 (reverse) = inverse;
+#              %p4 (blink) = blinking;
+#              %p5 (dim) is ignored;
+#              %p6 (bold) = bold;
+#              %p7 (invisible) = not displayable;
+#              %p8 (protected) is ignored; and
+#              %p9 (alt char set) = alt char set.
+#       The code to do this is:
+#              \E[0            OUTPUT  \E[0
+#              %?%p1%p6%O      IF      (standout; bold) OR
+#              %t;1            THEN    OUTPUT  ;1
+#              %;              ENDIF
+#              %?%p2           IF      underline
+#              %t;4            THEN    OUTPUT  ;4
+#              %;              ENDIF
+#              %?%p4           IF      blink
+#              %t;5            THEN    OUTPUT  ;5
+#              %;              ENDIF
+#              %?%p1%p3%O      IF      (standout; reverse) OR
+#              %t;7            THEN    OUTPUT  ;7
+#              %;              ENDIF
+#              %?%p7           IF      invisible
+#              %t;8            THEN    OUTPUT  ;8
+#              %;              ENDIF
+#              m               OUTPUT  m
+#              %?%p9           IF      altcharset
+#              %t^N            THEN    OUTPUT  ^N
+#              %e^O            ELSE    OUTPUT  ^O
+#              %;              ENDIF
+# sgr0: Everything is turned off (including alternate character set), since
+#      there is no way of knowing what it is that the program wants turned
+#      off.
+# smul: The "underline" attribute is reconfigurable to an overline or
+#      strikethru, or (as done with \E[;3+} in is2=), to a line at the true
+#      bottom of the character cell.  This was done to allow for more readable
+#      underlined characters, and to be able to distinguish between an
+#      underlined space, an underscore, and an underlined underscore.
+# xenl: Terminal can be configured to not need this, but this "glitch"
+#      behavior is actually preferable with autowrap terminals.
+#
+# Parameters kf31= thru kf53= actually contain the strings sent by the shifted
+# Fkeys.  There are no parameters for shifted Fkeys in terminfo.  The is2
+# string modifies the 'O' in kf43 to kf46 to a '$'.
+#
+# kcbt was originally ^I but redefined in is2=.
+# kHOM was \E[H originally but redefined in is2=, as were a number of
+# other keys.
+# kDC was originally \177 but redefined in is2=.
+#
+# kbs: Shift was also ^H originally but redefined as \E$^H in is2=.
+# tsl: Go to window 2, then do an hpa=.
+#
+#------- flash=\E[8;3!}^G\E[3;3!}
+#------- flash=\E[?5h$<100>\E[?5l
+# There are two ways to flash the screen, both of which have their drawbacks.
+# The first is to set the bell mode to video, transmit a bell character, and
+# set the bell mode back - but to what?  There is no way of knowing what the
+# user's old bell setting was before we messed with it.  Worse, the command to
+# set the bell mode also sets the key click volume, and there is no way to say
+# "leave that alone", or to know what it's set to, either.
+# The second way to do a flash is to set the screen to inverse video, pad for a
+# tenth of a second, and set it back - but like before, there's no way to know
+# that the screen wasn't ALREADY in inverse video, or that the user may prefer
+# it that way.  The point is moot anyway, since vi (and probably other
+# programs) assume that by defining flash=, you want the computer to use it
+# INSTEAD of bel=, rather than as a secondary type of signal.
+#
+#------- cvvis=\E[+{
+# The is the power on setting, which is also as visible as the cursor
+# gets.
+#-------  wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw
+# Windowing is possible, but not defined here because it is also used to
+# emulate status line functions.  Allowing a program to set a window could
+# clobber the status line or render it unusable.  There is additional memory,
+# but screen scroll functions are destructive and do not make use of it.
+#
+#-------   dim=                        Not available in power on mode.
+# You have a choice of defining low intensity characters as "half bright" and
+# high intensity as "normal", or defining low as "normal" and high as "bold".
+# No matter which you choose, only one of either "half bright" or "bold" is
+# available at any time, so taking the time to override the default is
+# pointless.
+#
+#-------  prot=\E[=0;99m
+# Not defined, because it appears to have some strange side effects.
+#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
+#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
+#-------   pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%;
+#       Available, but making them available to programs is inadvisable.
+#       The code to do this is:
+#              %?%p1%{24}%<    IF      ((key; 24) <;
+#              %p1%{30}%>               ((key; 30) >;
+#              %p1%{54}%<                (key; 54) <
+#              %A                       ) AND
+#              %O                      ) OR
+#       [that is, "IF key < 24 OR (key > 30 AND key < 54)",]
+#              %t\E[           THEN    OUTPUT  \E[
+#              %p1%d                   OUTPUT  (key) as decimal
+#       [next line applies to pfx only]
+#              ;1                      OUTPUT  ;1
+#              u                       OUTPUT  u
+#              \177                    OUTPUT  \177
+#              %p2%s                   OUTPUT  (string) as string
+#              \177                    OUTPUT  \177
+#       [DEL chosen as delimiter, but could be any character]
+#       [implied:              ELSE    do nothing]
+#              %;              ENDIF
+#
+#-------   rs2=
+# Not defined since anything it might do could be done faster and easier with
+# either Meta-Shift-Reset or the main power switch.
+#
+#-------  smkx=\E[1!z
+#-------  rmkx=\E[!z
+# These sequences apply to the cursor and setup keys only, not to the
+# numeric keypad.  But it doesn't matter anyway, since making these
+# available to programs is inadvisable.
+# For the key definitions below, all sequences beginning with \E$ are
+# custom and programmed into the terminal via is2.  \E$ also has no
+# meaning to any other terminal.
+#
+#------- cmdch=\E[;%p1%d!t
+# Available, but making it available to programs is inadvisable.
+#------- smxon=\E[1*q
+# Available, but making it available to programs is inadvisable.
+# Terminal will send XON/XOFF on buffer overflow.
+#------- rmxon=\E[*q
+# Available, but making it available to programs is inadvisable.
+# Terminal will not notify on buffer overflow.
+#-------   smm=\E[2+x
+#-------   rmm=\E[+x
+# Available, but making them available to programs is inadvisable.
+#
+# Printing:
+#       It's not made clear in the manuals, but based on other ansi/vt type
+#       terminals, it's a good guess that this terminal is capable of both
+#       "transparent print" (which doesn't copy data to the screen, and
+#       therefore needs mc5i: specified to say so) and "auxilliary print"
+#       (which does duplicate printed data on the screen, in which case mc4=
+#       and mc5= should use the \E[?4i and \E[?5i strings instead).
+
+hds200|Human Designed Systems HDS200,
+       am, bw, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, lm#0,
+       acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+       blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{,
+       clear=\E[H\E[J, cnorm=\E[+{, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       dsl=\E[2!w\r\n\E[!w, ed=\E[J, el=\E[K, el1=\E[1K,
+       fsl=\E[!w, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
+       ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+       invis=\E[0;8m,
+       is2=\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+},
+       kDC=\E$\177, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kbs=^H,
+       kcbt=\E$I, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\177, kent=^M, kf1=^\001\r, kf10=^\010\r,
+       kf11=^\011\r, kf12=^\012\r, kf13=\EOP, kf14=\EOQ,
+       kf15=\EOR, kf16=\EOS, kf17=^\017\r, kf18=^\018\r,
+       kf19=^\019\r, kf2=^\002\r, kf20=^\020\r, kf21=^\021\r,
+       kf22=^\022\r, kf23=^\023\r, kf3=^\003\r, kf31=^\031\r,
+       kf32=^\032\r, kf33=^\033\r, kf34=^\034\r, kf35=^\035\r,
+       kf36=^\036\r, kf37=^\037\r, kf38=^\038\r, kf39=^\039\r,
+       kf4=^\004\r, kf40=^\040\r, kf41=^\041\r, kf42=^\042\r,
+       kf43=\E$P, kf44=\E$Q, kf45=\E$R, kf46=\E$S, kf47=^\047\r,
+       kf48=^\048\r, kf49=^\049\r, kf5=^\005\r, kf50=^\050\r,
+       kf51=^\051\r, kf52=^\052\r, kf53=^\053\r, kf6=^\006\r,
+       kf7=^\007\r, kf8=^\008\r, kf9=^\009\r, khome=\E[H,
+       kind=\E[T, knp=\E[U, kpp=\E[V, kri=\E[S, ll=\E[H\E[A,
+       mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\E[E, rc=\E8,
+       rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmso=\E[m\017,
+       rmul=\E[m\017, sc=\E7,
+       sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m,
+       smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG,
+       vpa=\E[%i%p1%dd,
+
+# <ht> through <el> included to specify padding needed in raw mode.
+# (avt-ns: added empty <acsc> to suppress a tic warning --esr)
+avt-ns|concept avt no status line,
+       OTbs, am, eo, mir, ul, xenl, xon,
+       cols#80, it#8, lines#24, lm#192,
+       acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+       clear=\E[H\E[J$<38>, cnorm=\E[=119l, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[=119h, dch1=\E[P, dim=\E[1!{, dl=\E[%p1%dM$<4*>,
+       dl1=\E[M$<4>, ed=\E[J$<96>, el=\E[K$<6>, home=\E[H,
+       hpa=\E[%p1%{1}%+%dG, ht=\011$<4>, hts=\EH, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>,
+       invis=\E[8m, ip=$<4>, is1=\E[=103l\E[=205l,
+       is2=\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,
+       kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\E^B\r, ked=\E^D\r, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+       kf4=\EOS, khome=\E[H, kich1=\E^A\r, kil1=\E^C\r, ll=\E[24H,
+       mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+       pfloc=\E[%p1%d;0u#%p2%s#, pfx=\E[%p1%d;1u#%p2%s#,
+       prot=\E[99m, rc=\E8, rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
+       ri=\EM$<4>, rmacs=\016$<1>, rmcup=\E[w\E2\r\n,
+       rmir=\E[4l, rmkx=\E[!z\E[0;2u, rmso=\E[7!{, rmul=\E[4!{,
+       sc=\E7,
+       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
+       sgr0=\E[m, smacs=\017$<1>, smcup=\E[=4l\E[1;24w\E2\r,
+       smir=\E[4h, smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m,
+       tbc=\E[2g, vpa=\E[%p1%{1}%+%dd,
+avt-rv-ns|concept avt in reverse video mode/no status line,
+       flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
+       use=avt-ns,
+avt-w-ns|concept avt in 132 column mode/no status line,
+       is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
+       use=avt-ns,
+avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video,
+       flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
+       smcup=\E[H\E[1;24;1;132w, use=avt-ns,
+
+# Concept AVT with status line. We get the status line using the
+# "Background status line" feature of the terminal. We swipe the
+# first line of memory in window 2 for the status line, keeping
+# 191 lines of memory and 24 screen lines for regular use.
+# The first line is used instead of the last so that this works
+# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this
+# assumes an 8 page AVT but lm isn't currently used anywhere.)
+#
+avt+s|concept avt status line changes,
+       eslok, hs,
+       lm#191,
+       dsl=\E[0*w, fsl=\E[1;1!w,
+       is3=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n,
+       rmcup=\E[2w\E2\r\n, smcup=\E[2;25w\E2\r,
+       tsl=\E[2;1!w\E[;%p1%dH\E[2K,
+avt|avt-s|concept-avt|avt w/80 columns,
+       use=avt+s, use=avt-ns,
+avt-rv|avt-rv-s|avt reverse video w/sl,
+       flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
+       use=avt+s, use=avt-ns,
+avt-w|avt-w-s|concept avt 132 cols+status,
+       is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
+       use=avt+s, use=avt-ns,
+avt-w-rv|avt-w-rv-s|avt wide+status+rv,
+       flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
+       smcup=\E[H\E[1;24;1;132w, use=avt+s, use=avt-ns,
+
+#### Contel Business Systems.
+#
+
+# Contel c300 and c320 terminals.
+contel300|contel320|c300|Contel Business Systems C-300 or C-320,
+       am, in, xon,
+       cols#80, lines#24, xmc#1,
+       bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
+       dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
+       el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
+       hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
+       kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
+       kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
+       rmso=\E!\0, sgr0=\E!\0, smso=\E!\r, tbc=\E3,
+# Contel c301 and c321 terminals.
+contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321,
+       flash@, ich1@, ip@, rmso=\E!\0$<20>, smso=\E!\r$<20>,
+       use=contel300,
+
+#### Data General (dg)
+#
+# According to James Carlson <carlson@xylogics.com> writing in January 1995,
+# the terminals group at Data General was shut down in 1991; all these
+# terminals have thus been discontinued.
+#
+# DG terminals have function keys that respond to the SHIFT and CTRL keys,
+# e.g., SHIFT-F1 generates a different code from F1.  To number the keys
+# sequentially, first the unmodified key codes are listed as F1 through F15.
+# Then their SHIFT versions are listed as F16 through F30, their CTRL versions
+# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as
+# F46 through F60.  This is done in the private "includes" below whose names
+# start with "dgkeys+".
+#
+# DG terminals generally support 8 bit characters.  For each of these terminals
+# two descriptions are supplied:
+#      1) A default description for 8 bits/character communications, which
+#         uses the default DG international character set and keyboard codes.
+#      2) A description with suffix "-7b" for 7 bits/character communications.
+#         This description must use the NON-DEFAULT native keyboard language.
+
+# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33),
+# Ctrl/Shift fdkeys (kf34-kf44).
+
+dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys,
+       ka1=\233020z, ka3=\233021z, kc1=\233022z, kc3=\233023z,
+       kclr=\2332J, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
+       kcuu1=\233A, kel=\233K, kf1=\233001z, kf10=\233010z,
+       kf11=\233011z, kf12=\233012z, kf13=\233013z,
+       kf14=\233014z, kf15=\233000z, kf16=\233101z,
+       kf17=\233102z, kf18=\233103z, kf19=\233104z,
+       kf2=\233002z, kf20=\233105z, kf21=\233106z,
+       kf22=\233107z, kf23=\233108z, kf24=\233109z,
+       kf25=\233110z, kf26=\233111z, kf27=\233112z,
+       kf28=\233113z, kf29=\233114z, kf3=\233003z,
+       kf30=\233100z, kf31=\233201z, kf32=\233202z,
+       kf33=\233203z, kf34=\233204z, kf35=\233205z,
+       kf36=\233206z, kf37=\233207z, kf38=\233208z,
+       kf39=\233209z, kf4=\233004z, kf40=\233210z,
+       kf41=\233211z, kf42=\233212z, kf43=\233213z,
+       kf44=\233214z, kf45=\233200z, kf46=\233301z,
+       kf47=\233302z, kf48=\233303z, kf49=\233304z,
+       kf5=\233005z, kf50=\233305z, kf51=\233306z,
+       kf52=\233307z, kf53=\233308z, kf54=\233309z,
+       kf55=\233310z, kf56=\233311z, kf57=\233312z,
+       kf58=\233313z, kf59=\233314z, kf6=\233006z,
+       kf60=\233300z, kf7=\233007z, kf8=\233008z, kf9=\233009z,
+       khome=\233H, kprt=\233i,
+
+dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys,
+       ka1=\E[020z, ka3=\E[021z, kc1=\E[022z, kc3=\E[023z,
+       kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kel=\E[K, kf1=\E[001z, kf10=\E[010z, kf11=\E[011z,
+       kf12=\E[012z, kf13=\E[013z, kf14=\E[014z, kf15=\E[000z,
+       kf16=\E[101z, kf17=\E[102z, kf18=\E[103z, kf19=\E[104z,
+       kf2=\E[002z, kf20=\E[105z, kf21=\E[106z, kf22=\E[107z,
+       kf23=\E[108z, kf24=\E[109z, kf25=\E[110z, kf26=\E[111z,
+       kf27=\E[112z, kf28=\E[113z, kf29=\E[114z, kf3=\E[003z,
+       kf30=\E[100z, kf31=\E[201z, kf32=\E[202z, kf33=\E[203z,
+       kf34=\E[204z, kf35=\E[205z, kf36=\E[206z, kf37=\E[207z,
+       kf38=\E[208z, kf39=\E[209z, kf4=\E[004z, kf40=\E[210z,
+       kf41=\E[211z, kf42=\E[212z, kf43=\E[213z, kf44=\E[214z,
+       kf45=\E[200z, kf46=\E[301z, kf47=\E[302z, kf48=\E[303z,
+       kf49=\E[304z, kf5=\E[005z, kf50=\E[305z, kf51=\E[306z,
+       kf52=\E[307z, kf53=\E[308z, kf54=\E[309z, kf55=\E[310z,
+       kf56=\E[311z, kf57=\E[312z, kf58=\E[313z, kf59=\E[314z,
+       kf6=\E[006z, kf60=\E[300z, kf7=\E[007z, kf8=\E[008z,
+       kf9=\E[009z, khome=\E[H, kprt=\E[i,
+
+dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys,
+       kclr=^L, kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kel=^K,
+       kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^a, kf13=^^b, kf14=^^c,
+       kf15=^^d, kf16=^^e, kf17=^^f, kf18=^^g, kf19=^^h, kf2=^^r,
+       kf20=^^i, kf21=^^j, kf22=^^k, kf23=^^1, kf24=^^2, kf25=^^3,
+       kf26=^^4, kf27=^^5, kf28=^^6, kf29=^^7, kf3=^^s, kf30=^^8,
+       kf31=^^9, kf32=^^\:, kf33=^^;, kf34=^^!, kf35=^^", kf36=^^#,
+       kf37=^^$, kf38=^^%%, kf39=^^&, kf4=^^t, kf40=^^', kf41=^^(,
+       kf42=^^), kf43=^^*, kf44=^^+, kf5=^^u, kf6=^^v, kf7=^^w,
+       kf8=^^x, kf9=^^y, khome=^H,
+
+dgkeys+15|Private entry describing 15 DG mode special keys,
+       kHOM=^^^H, kLFT=^^^Y, kRIT=^^^X, ka1=^^\\, ka3=^^], kc1=^^\^,
+       kc3=^^_, kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^|, kf13=^^},
+       kf14=^^~, kf15=^^p, kf16=^^a, kf17=^^b, kf18=^^c, kf19=^^d,
+       kf2=^^r, kf20=^^e, kf21=^^f, kf22=^^g, kf23=^^h, kf24=^^i,
+       kf25=^^j, kf26=^^k, kf27=^^l, kf28=^^m, kf29=^^n, kf3=^^s,
+       kf30=^^`, kf31=^^1, kf32=^^2, kf33=^^3, kf34=^^4, kf35=^^5,
+       kf36=^^6, kf37=^^7, kf38=^^8, kf39=^^9, kf4=^^t, kf40=^^\:,
+       kf41=^^;, kf42=^^<, kf43=^^=, kf44=^^>, kf45=^^0, kf46=^^!,
+       kf47=^^", kf48=^^#, kf49=^^$, kf5=^^u, kf50=^^%%, kf51=^^&,
+       kf52=^^', kf53=^^(, kf54=^^), kf55=^^*, kf56=^^+, kf57=^^\,,
+       kf58=^^-, kf59=^^., kf6=^^v, kf60=^^\s, kf7=^^w, kf8=^^x,
+       kf9=^^y,
+
+# Data General color terminals use the "Tektronix" color model.  The total
+# number of colors varies with the terminal model, as does support for
+# attributes used in conjunction with color.
+
+# Removed u7, u8 definitions since they conflict with tack:
+#              Preserve user-defined colors in at least some cases.
+#      u7=^^Fh,
+#              Default is ACM mode.
+#      u8=^^F}20^^Fi^^F}21,
+#
+dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode,
+       bce,
+       colors#16, ncv#53, pairs#256,
+       op=\036Ad\036Bd,
+       setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
+       setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
+       setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
+
+dg+fixed|Fixed color info for DG D430C terminals in DG mode,
+       use=dgunix+fixed,
+
+# Video attributes are coordinated using static variables set by "sgr", then
+# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings.
+# (D=dim, U=underline, B=blink, R=reverse.)
+dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode,
+       bce,
+       colors#8, ncv#16, pairs#64,
+       op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m,
+       setab=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+       setaf=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+       setb=\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,
+       setf=\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,
+
+dg+color|Color info for Data General D470C terminals in ANSI mode,
+       colors#16, ncv#53, pairs#256,
+       setab=\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,
+       setaf=\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,
+       setb=\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,
+       setf=\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,
+       use=dg+color8,
+
+dgmode+color8|Color info for Data General D220/D230C terminals in DG mode,
+       bce,
+       colors#8, ncv#16, pairs#64,
+       op=\036Ad\036Bd,
+       setab=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
+       setaf=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
+       setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
+
+dgmode+color|Color info for Data General D470C terminals in DG mode,
+       colors#16, pairs#256,
+       setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
+       setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
+       use=dgmode+color8,
+
+dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode,
+       bce, ccc,
+       colors#52, ncv#53, pairs#26,
+       initp=\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,
+       oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00,
+       op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D,
+       scp=\036RG2%p1%02X,
+
+# Colors are in the order:  normal, reverse, dim, dim + reverse.
+dg+ccc|Configurable color info for DG D430C terminals in DG mode,
+       bce, ccc,
+       colors#52, ncv#53, pairs#26,
+       initp=\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,
+       oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00,
+       op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=,
+       scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c,
+
+# The generic DG terminal type (an 8-bit-clean subset of the 6053)
+# Initialization string 1 sets:
+#      ^R              - vertical scrolling enabled
+#      ^C              - blinking enabled
+dg-generic|Generic Data General terminal in DG mode,
+       am, bw, msgr, xon,
+       cols#80, lines#24,
+       bel=^G, blink=^N, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
+       cup=\020%p2%c%p1%c, cuu1=^W, dim=^\, el=^K, ind=^J, is1=^R^C,
+       mc0=^Q, nel=^J, rmso=^], rmul=^U, sgr0=^O^U^], smso=^\,
+       smul=^T, use=dgkeys+11,
+
+# According to the 4.4BSD termcap file, the dg200 <cup> should be the
+# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap
+# notation that's "^P%r%+\200%+\200").  Those \200s are suspicious,
+# maybe they were originally nuls (which would fit).
+
+dg200|data general dasher 200,
+       OTbs, am, bw,
+       cols#80, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
+       cup=\020%p2%c%p1%c, cuu1=^W, el=^K, home=^H, ind=^J,
+       kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^z, kf1=^^q,
+       kf2=^^r, kf3=^^s, kf4=^^t, kf5=^^u, kf6=^^v, kf7=^^w, kf8=^^x,
+       kf9=^^y, khome=^H, lf0=f10, nel=^J, rmso=^^E, rmul=^U,
+       smso=^^D, smul=^T,
+
+# Data General 210/211 (and 410?)      from Lee Pearson (umich!lp) via BRL
+dg210|dg-ansi|Data General 210/211,
+       am,
+       cols#80, lines#24,
+       OTnl=\E[B, clear=\E[2J, cud1=\E[B, cup=\E[%i%p1%d;%p2%dH,
+       cuu1=\E[A, ed=\E[J, el=\E[K, home=\E[H, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
+       nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m, smso=\E[7;m,
+       smul=\E[4;m,
+# From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
+# courtesy of Carlos Rucalde of Vantage Software, Inc.
+# (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover.
+# I suspect the d200 function keys actually work on the dg211, check it out.)
+dg211|Data General d211,
+       cnorm=^L, cvvis=^L^R, ht=^I, ind@, kbs=^Y, kf0@, kf1@, kf2@, kf3@,
+       kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, lf0@, nel=^M^Z, rmcup=^L,
+       rmso=\036E$<\0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200,
+
+# dg450 from Cornell (not official)
+dg450|dg6134|data general 6134,
+       cub1@, cuf1=^X, use=dg200,
+
+# Not official...
+# Note: lesser Dasher terminals will not work with vi because vi insists upon
+# having a command to move straight down from any position on the bottom line
+# and scroll the screen up, or a direct vertical scroll command.  The 460 and
+# above have both, the D210/211, for instance, has neither.  We must use ANSI
+# mode rather than DG mode because standard UNIX tty drivers assume that ^H is
+# backspace on all terminals.  This is not so in DG mode.
+# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the
+# grounds that there is no matching ":ml:"
+# fixed garbled ":k9=\E[00\:z:" capability -- esr)
+dg460-ansi|Data General Dasher 460 in ANSI-mode,
+       OTbs, am, msgr, ul,
+       cols#80, it#8, lines#24,
+       OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P,
+       dim=\E[2m, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+       ich1=\E[@, il1=\E[L, ind=\E[S, is2=^^F@, kbs=\E[D,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z,
+       kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z,
+       kf8=\E[009z, kf9=\E[010z, khome=\E[H, lf0=f1, lf1=f2, lf2=f3,
+       lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10, rev=\E[7m,
+       ri=\E[T, rmso=\E[m, rmul=\E[05, sgr0=\E[m, smso=\E[7m,
+       smul=\E[4m,
+# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
+# Data General 605x
+# Ought to work for a Model 6242, Type D210 as well as a 605x.
+# Note that the cursor-down key transmits ^Z.  Job control users, beware!
+# This also matches a posted description of something called a `Dasher 100'
+# so there's a dg100 alias here.
+# (dg6053: the 4.4BSD file had <cub1=^H>, <cud1=^J>, <cuf1=^S>. -- esr)
+dg6053-old|dg100|data general 6053,
+       OTbs, am, bw, ul,
+       cols#80, lines#24,
+       OTbc=^Y, bel=^G, clear=^L, cnorm=^L, cr=^M, cub1=^Y, cud1=^Z,
+       cuf1=^X, cup=\020%p2%c%p1%c, cuu1=^W, cvvis=^L^R, el=^K,
+       home=^H, ht=^I, is2=^R, kbs=^Y, kcub1=^Y, kcud1=^Z, kcuf1=^X,
+       kcuu1=^W, kf0=^^q, kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v,
+       kf6=^^w, kf7=^^x, kf8=^^y, kf9=^^z, khome=^H, rmcup=^L,
+       rmso=\0^^E, rmul=^U, smcup=^L^R, smso=\0\0\0\0\0\036D,
+       smul=^T,
+
+# (Some performance can be gained over the generic DG terminal type)
+dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053,
+       xon@,
+       home=^P\0\0, ll=^P\0^W, use=dg-generic,
+
+# Like 6053, but adds reverse video and more keypad and function keys.
+d200|d200-dg|Data General DASHER D200,
+       bold=^^D^T, home@, ll@, rev=^^D, rmso=^^E^],
+       sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;,
+       sgr0=\017\025\035\036E, smso=^^D^\, use=dgkeys+15,
+       use=dg6053,
+
+# DASHER D210 series terminals in ANSI mode.
+#      Reverse video, no insert/delete character/line, 7 bits/character only.
+#
+# Initialization string 1 sets:
+#      <0              - scrolling enabled
+#      <1              - blink enabled
+#      <4              - print characters regardless of attributes
+d210|d214|Data General DASHER D210 series,
+       am, bw, msgr, xon,
+       cols#80, lines#24,
+       bel=^G, blink=\E[5m, bold=\E[4;7m, clear=\E[2J, cr=^M,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K,
+       el1=\E[1K, home=\E[H, ind=^J, is1=\E[<0;<1;<4l,
+       ll=\E[H\E[A, nel=^J, rev=\E[7m, rmso=\E[m, rmul=\E[m,
+       sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m,
+       sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b,
+
+# DASHER D210 series terminals in DG mode.
+# Like D200, but adds clear to end-of-screen and needs XON/XOFF.
+d210-dg|d214-dg|Data General DASHER D210 series in DG mode,
+       xon,
+       ed=^^FF, use=d200-dg,
+
+# DASHER D211 series terminals in ANSI mode.
+# Like the D210, but with 8-bit characters and local printer support.
+#
+# Initialization string 2 sets:
+#      \E[2;1;1;1v
+#              2;1     - 8 bit operations
+#              1;1     - 8 bit (international) keyboard language
+#      \E(B            - default primary character set (U.S. ASCII)
+#      \E)4            - default secondary character set (international)
+#      ^O              - primary character set
+#
+d211|d215|Data General DASHER D211 series,
+       km,
+       is2=\E[2;1;1;1v\E(B\E)4\017, mc0=\E[i, use=dgkeys+8b,
+       use=d210,
+
+# Initialization string 2 sets:
+#      \E[2;0;1;0v
+#              2;0     - 7 bit operations
+#              1;0     - 7 bit (native) keyboard language
+#      \E(0            - default character set (the keyboard native language)
+#      ^O              - primary character set
+d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode,
+       km@,
+       is2=\E[2;0;1;0v\E(0\017, use=dgkeys+7b, use=d211,
+
+# Like the D210 series, but adds support for 8-bit characters.
+#
+# Reset string 2 sets:
+#      ^^N     - secondary character set
+#      ^^FS0>  - 8 bit international character set
+#      ^^O     - primary character set
+#      ^^FS00  - default character set (matching the native keyboard language)
+#
+d211-dg|d215-dg|Data General DASHER D211 series in DG mode,
+       km,
+       rs2=\036N\036FS0>\036O\036FS00, use=d210-dg,
+
+d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode,
+       use=d211-dg,
+
+# Enhanced DG mode with changes to be more UNIX compatible.
+d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode,
+       mc5i,
+       it#8,
+       acsc=a\177j$k"l!m#n)q+t'u&v(w%x*, blink=^^PI,
+       clear=^^PH, cub1=^^PD, cud1=^^PB, cuf1=^^PC, cuu1=^^PA,
+       el=^^PE, home=^^PF, hpa=\020%p1%c\177, ht=^I, ind=^J,
+       is1=\022\003\036P@1, is3=\036Fz0, kHOM=^^Pf, kLFT=^^Pd,
+       kPRT=^^P1, kRIT=^^Pc, kclr=^^PH, kcub1=^^PD, kcud1=^^PB,
+       kcuf1=^^PC, kcuu1=^^PA, kel=^^PE, khome=^^PF, kprt=^^P0,
+       mc0=\036F?9, mc4=^^Fa, mc5=^^F`, rmacs=\036FS00,
+       rs2=\036N\036FS0E\036O\036FS00,
+       sgr=\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%;,
+       sgr0=\036PJ\025\035\036E\036FS00, smacs=\036FS11,
+       vpa=\020\177%p1%c, use=dgkeys+15, use=d216-dg,
+d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines,
+       lines#25,
+       is3=\036Fz2, use=d216+,
+
+d217-unix|Data General DASHER D217 in DG-UNIX mode,
+       use=d216-unix,
+d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines,
+       use=d216-unix-25,
+
+# DASHER D220 color terminal in ANSI mode.
+# Like the D470C but with fewer colors and screen editing features.
+#
+# Initialization string 1 sets:
+#      \E[<0;<1;<4l
+#              <0      - scrolling enabled
+#              <1      - blink enabled
+#              <4      - print characters regardless of attributes
+#      \E[m            - all attributes off
+# Reset string 1 sets:
+#      \Ec             - initial mode defaults (RIS)
+#
+d220|Data General DASHER D220,
+       mc5i@,
+       dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
+       use=dg+color8, use=d470c,
+
+d220-7b|Data General DASHER D220 in 7 bit mode,
+       mc5i@,
+       dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
+       use=dg+color8, use=d470c-7b,
+
+# Initialization string 3 sets:
+#      - default cursor (solid rectangle)
+# Reset string 2 sets:
+#      ^^N     - secondary character set
+#      ^^FS0>  - 8 bit international character set
+#      ^^O     - primary character set
+#       ^^FS00  - default character set (matching the native keyboard language)
+#
+d220-dg|Data General DASHER D220 color terminal in DG mode,
+       mc5i@,
+       dl1@, home@, il1@, is2@, is3=\036FQ2, ll@, mc4@, mc5@, rs1@,
+       rs2=\036N\036FS0>\036O\036FS00, use=dgmode+color8,
+       use=d470c-dg,
+
+# DASHER D230C color terminal in ANSI mode.
+# Like the D220 but with minor ANSI compatibility improvements.
+#
+d230c|d230|Data General DASHER D230C,
+       blink=\E[5;50m, bold=\E[4;7;50m, dim=\E[2;50m, nel=^M^J,
+       rev=\E[7;50m, rmkx=\E[2;1v, rmso=\E[50m, rmul=\E[50m,
+       sgr=\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%;,
+       sgr0=\E[50m\E)4\017, smkx=\E[2;0v, smso=\E[2;7;50m,
+       smul=\E[4;50m, use=dgkeys+7b, use=d220,
+
+d230c-dg|d230-dg|Data General DASHER D230C in DG mode,
+       use=d220-dg,
+
+# DASHER D400/D450 series terminals.
+# These add intelligent features like insert/delete to the D200 series.
+#
+# Initialization string 2 sets:
+#      ^^FQ2           - default cursor (solid rectangle)
+#      ^^FW            - character protection disabled
+#      ^^FJ            - normal (80 column) mode
+#      ^^F\^           - horizontal scrolling enabled (for alignment)
+#      ^^FX004?        - margins at columns 0 and 79
+#      ^^F]            - horizontal scrolling disabled
+#      ^^O             - primary character set
+#      ^^FS00          - default character set (the keyboard native language)
+#      - (should reset scrolling regions, but that glitches the screen)
+# Reset string 1 sets:
+#      ^^FA            - all terminal defaults except scroll rate
+# Reset string 2 sets:
+#      ^^F]            - horizontal scrolling disabled
+#      ^^FT0           - jump scrolling
+#
+d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series,
+       mc5i,
+       acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\036FQ0,
+       cnorm=\036FQ2, dch1=^^K, dl1=^^FI,
+       enacs=\036N\036FS11\036O, home=^^FG, hpa=\020%p1%c\177,
+       ich1=^^J, il1=^^FH,
+       is2=\036FQ2\036FW\036FJ\036F\^\036FX004?\036F]\036O\036FS00,
+       ll=\036FG\027, mc4=^^Fa, mc5=^^F`, ri=^^I, rmacs=^^O,
+       rs1=^^FA, rs2=\036F]\036FT0,
+       sgr=\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%;,
+       sgr0=\017\025\035\036E\036O, smacs=^^N,
+       vpa=\020\177%p1%c, use=d210-dg,
+
+# DASHER D410/D460 series terminals in ANSI mode.
+# These add a large number of intelligent terminal features.
+#
+# Initialization string 1 sets:
+#      \E[<0;<1;<2;<4l
+#              <0      - scrolling enabled
+#              <1      - blink enabled
+#              <2      - horizontal scrolling enabled (for alignment)
+#              <4      - print characters regardless of attributes
+#      \E[5;0v         - normal (80 column) mode
+#      \E[1;1;80w      - margins at columns 1 and 80
+#      \E[1;6;<2h
+#              1       - print all characters even if protected
+#              6       - character protection disabled
+#              <2      - horizontal scrolling disabled
+#      - (should reset scrolling regions, but that glitches the screen)
+#
+# Initialization string 2 sets:
+#      \E[3;2;2;1;1;1v
+#              3;2     - default cursor (solid rectangle)
+#              2;1     - 8 bit operations
+#              1;1     - international keyboard language
+#      \E(B            - default primary character set (U.S. ASCII)
+#      \E)4            - default secondary character set (international)
+#      ^O              - primary character set
+#
+#      Reset string 1 sets:
+#      \Ec             - initial mode defaults (RIS)
+#      \E[<2h          - horizontal scrolling disabled
+#
+# Reset string 2 sets:
+#      \E[4;0;2;1;1;1v
+#              4;0     - jump scrolling
+#              2;1     - 8 bit operations
+#              1;1     - 8 bit (international) keyboard language
+#      \E(B            - default primary character set (U.S. ASCII)
+#      \E)4            - default secondary character set (international)
+#
+d410|d411|d460|d461|Data General DASHER D410/D460 series,
+       mc5i,
+       acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\E[3;0v,
+       cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
+       is1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h,
+       is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i,
+       ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h,
+       rs2=\E[4;0;2;1;1;1v\E(B\E)4,
+       sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;,
+       sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211,
+
+# Initialization string 2 sets:
+#      \E[3;2;2;0;1;0v
+#              3;2     - default cursor (solid rectangle)
+#              2;0     - 7 bit operations
+#              1;0     - 7 bit (native) keyboard language
+#      \E(0            - default character set (the keyboard native language)
+#      ^O              - primary character set
+#
+# Reset string 2 sets:
+#      \E[4;0;2;0;1;0v
+#              4;0     - jump scrolling
+#              2;0     - 7 bit operations
+#              1;0     - 7 bit (native) keyboard language
+#      \E(0            - default character set (the keyboard native language)
+#
+d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode,
+       km@,
+       enacs=\E)6, is2=\E[3;2;2;0;1;0v\E(0\017, rmacs=^O,
+       rs2=\E[4;0;2;0;1;0v\E(0,
+       sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, use=dgkeys+7b, use=d410,
+
+d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode,
+       km,
+       enacs@, rmacs=\036FS00,
+       sgr=\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%;,
+       sgr0=\017\025\035\036E\036FS00, smacs=\036FS11,
+       use=d400-dg,
+
+# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode.
+#
+# Initialization string 1 sets:
+#      \E[<0;<1;<2;<4l
+#              <0      - scrolling enabled
+#              <1      - blink enabled
+#              <2      - horizontal scrolling enabled (for alignment)
+#              <4      - print characters regardless of attributes
+#      \E[5;1v         - compressed (135 column) mode
+#      \E[1;1;126      - margins at columns 1 and 126
+#      \E[1;6;<2h
+#              1       - print all characters even if protected
+#              6       - character protection disabled
+#              <2      - horizontal scrolling disabled
+#      - (should reset scrolling regions, but that glitches the screen)
+#
+# Reset string 1 sets:
+#      \Ec             - initial mode defaults (RIS)
+#      \E[5;1v         - compressed (135 column) mode
+#      \E[1;1;126w     - margins at columns 1 and 126
+#      \E[<2h          - horizontal scrolling disabled
+#
+d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode,
+       cols#126,
+       is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
+       rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410,
+
+d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode,
+       cols#126,
+       is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
+       rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410-7b,
+
+d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode,
+       use=d410-dg,
+
+# These add intelligent features like scrolling regions.
+d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode,
+       civis=\036FQ0, clear=^^FE, cnorm=\036FQ5,
+       cup=\036FP%p2%2.2X%p1%2.2X, dch1=^^K, dl1=^^FI,
+       home=^^FG, hpa=\036FP%p1%2.2XFF, ich1=^^J, il1=^^FH,
+       is2=\036FQ5\036FW\036FJ\036F\^\036FX004F\036O\036FS00,
+       ll=\036FG\036PA, mc0=^A, rc=\036F}11, ri=^^I,
+       rs1=\036FA\036FT0, rs2=\036P@1, sc=\036F}10,
+       vpa=\036FPFF%p1%2.2X,
+       wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
+       use=d216+,
+d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode,
+       cols#132,
+       is2=\036FQ5\036FW\036FK\036F\^\036FX0083\036O\036FS00,
+       rs2=\036P@1\036FK\036FX0083,
+       wind=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X,
+       use=d412-unix,
+d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines,
+       lines#25,
+       is3=\036Fz2,
+       wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
+       use=d462+,
+d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line,
+       eslok, hs,
+       clear=\036FG\036PH, fsl=\036F}01\022,
+       is3=\036Fz2\036F}00\036FB180000\036F}01, ll@,
+       tsl=\036F}00\036FP%p1%2.2X18\036PG,
+       wind=\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,
+       use=d462+,
+
+#      Relative cursor motions are confined to the current window,
+#      which is not what the scrolling region specification expects.
+#      Thus, relative vertical cursor positioning must be deleted.
+d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region,
+       csr=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;,
+       cud1@, cuu1@, ll@, use=d462+,
+
+d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode,
+       use=d412-unix,
+d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode,
+       use=d412-unix-w,
+d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines,
+       use=d412-unix-25,
+d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line,
+       use=d412-unix-s,
+d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region,
+       use=d412-unix-sr,
+
+d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode,
+       use=d413-unix,
+d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode,
+       use=d413-unix-w,
+d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines,
+       use=d413-unix-25,
+d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line,
+       use=d413-unix-s,
+d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region,
+       use=d413-unix-sr,
+
+d430c-dg|d430-dg|Data General D430C in DG mode,
+       use=d413-dg, use=dg+fixed,
+d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors,
+       use=d413-dg, use=dg+ccc,
+
+d430c-unix|d430-unix|Data General D430C in DG-UNIX mode,
+       use=d413-unix, use=dgunix+fixed,
+d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode,
+       use=d413-unix-w, use=dgunix+fixed,
+d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines,
+       use=d413-unix-25, use=dgunix+fixed,
+d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line,
+       use=d413-unix-s, use=dgunix+fixed,
+d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region,
+       use=d413-unix-sr, use=dgunix+fixed,
+d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors,
+       use=d413-unix, use=dgunix+ccc,
+d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors,
+       use=d413-unix-w, use=dgunix+ccc,
+d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors,
+       use=d413-unix-25, use=dgunix+ccc,
+d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors,
+       use=d413-unix-s, use=dgunix+ccc,
+d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors,
+       use=d413-unix-sr, use=dgunix+ccc,
+
+# DASHER D470C color terminal in ANSI mode.
+# Like the D460 but with 16 colors and without a compressed mode.
+#
+# Initialization string 1 sets:
+#      \E[<0;<1;<2;<4l
+#              <0      - scrolling enabled
+#              <1      - blink enabled
+#              <2      - horizontal scrolling enabled (for alignment)
+#              <4      - print characters regardless of attributes
+#      \E[1;1;80w      - margins at columns 1 and 80
+#      \E[1;6;<2h
+#              1       - print all characters even if protected
+#              6       - character protection disabled
+#              <2      - horizontal scrolling disabled
+#      - (should reset scrolling regions, but that glitches the screen)
+#
+d470c|d470|Data General DASHER D470C,
+       is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
+       sgr=\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%;,
+       use=dg+color, use=d460,
+
+d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode,
+       is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
+       sgr=\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%;,
+       use=dg+color, use=d460-7b,
+
+# Initialization string 2 sets:
+#      ^^FQ2           - default cursor (solid rectangle)
+#      ^^FW            - character protection disabled
+#      ^^F\^           - horizontal scrolling enabled (for alignment)
+#      ^^FX004?        - margins at columns 0 and 79
+#      ^^F]            - horizontal scrolling disabled
+#      ^^O             - primary character set
+#      ^^FS00          - default character set (the keyboard native language)
+#      - (should reset scrolling regions, but that glitches the screen)
+#
+d470c-dg|d470-dg|Data General DASHER D470C in DG mode,
+       is2=\036FQ2\036FW\036F\^\036FX004?\036F]\036O\036FS00,
+       use=dgmode+color, use=d460-dg,
+
+# DASHER D555 terminal in ANSI mode.
+# Like a D411, but has an integrated phone.
+d555|Data General DASHER D555,
+       use=d411,
+d555-7b|Data General DASHER D555 in 7-bit mode,
+       use=d411-7b,
+d555-w|Data General DASHER D555 in wide mode,
+       use=d411-w,
+d555-7b-w|Data General DASHER D555 in wide 7-bit mode,
+       use=d411-7b-w,
+d555-dg|Data General DASHER D555 series in DG mode,
+       use=d411-dg,
+
+# DASHER D577 terminal in ANSI mode.
+# Like a D411, but acts as a keyboard for serial printers ("KSR" modes).
+d577|Data General DASHER D577,
+       use=d411,
+d577-7b|Data General DASHER D577 in 7-bit mode,
+       use=d411-7b,
+d577-w|Data General DASHER D577 in wide mode,
+       use=d411-w,
+d577-7b-w|Data General DASHER D577 in wide 7-bit mode,
+       use=d411-7b-w,
+
+d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode,
+       use=d411-dg,
+
+# DASHER D578 terminal.
+# Like a D577, but without compressed mode; like a D470C in this respect.
+#
+# Initialization string 1 sets:
+#      \E[<0;<1;<2;<4l
+#              <0      - scrolling enabled
+#              <1      - blink enabled
+#              <2      - horizontal scrolling enabled (for alignment)
+#              <4      - print characters regardless of attributes
+#      \E[1;1;80w      - margins at columns 1 and 80
+#      \E[1;6;<2h
+#              1       - print all characters even if protected
+#              6       - character protection disabled
+#              <2      - horizontal scrolling disabled
+#      - (should reset scrolling regions, but that glitches the screen)
+#
+d578|Data General DASHER D578,
+       is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577,
+d578-7b|Data General DASHER D578 in 7-bit mode,
+       is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577-7b,
+
+#### Datamedia (dm)
+#
+# Datamedia was headquartered in Nashua, New Hampshire until it went
+# out of business in 1993, but the ID plates on the terminals referred
+# to the factory in Pennsauken, NJ.  The factory was sold to a PCB board
+# manufacturer which threw out all information about the terminals.
+#
+
+cs10|colorscan|Datamedia Color Scan 10,
+       msgr,
+       cols#80, lines#24,
+       bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+       ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+cs10-w|Datamedia Color Scan 10 with 132 columns,
+       cols#132,
+       cup=\E[%i%p1%02d;%p2%03dH, use=cs10,
+
+# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr)
+dm1520|dm1521|datamedia 1520,
+       OTbs, am, xenl,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
+       cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+       home=^Y, ht=^I, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
+       khome=^Y,
+# dm2500: this terminal has both <ich> and <smir>. Applications using
+# termcap/terminfo directly (rather than through ncurses) might be confused.
+dm2500|datamedia2500|datamedia 2500,
+       OTbs, OTnc,
+       cols#80, lines#24,
+       bel=^G, clear=^^^^\177, cub1=^H, cud1=^J, cuf1=^\,
+       cup=\014%p2%{96}%^%c%p1%{96}%^%c, cuu1=^Z,
+       dch1=\020\010\030\035$<10*>,
+       dl1=\020\032\030\035$<10*>, el=^W, home=^B,
+       ich1=\020\034\030\035$<10*>,
+       il1=\020\n\030\035\030\035$<15>, ind=^J, pad=\377,
+       rmdc=^X^], rmir=\377\377\030\035$<10>, rmso=^X^],
+       smdc=^P, smir=^P, smso=^N,
+# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82)
+# also, has a meta-key.
+# From: <goldberger@su-csli.arpa>
+# (dmchat: ":MT:" changed to ":km:" -- esr)
+dmchat|dmchat version of datamedia 2500,
+       km,
+       dl1=\020\032\030\035$<2/>,
+       il1=\020\n\030\035\030\035$<1*/>, use=dm2500,
+# (dm3025: ":MT:" changed to ":km:" -- esr)
+dm3025|datamedia 3025a,
+       OTbs, km,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=\EM$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
+       dch1=\010$<6>, dl1=\EP\EA\EQ$<130>, ed=\EJ$<2>, el=\EK,
+       home=\EH, ht=^I, il1=\EP\n\EQ$<130>, ind=^J, ip=$<6>,
+       is2=\EQ\EU\EV, rmdc=\EQ, rmir=\EQ, rmso=\EO0, smdc=\EP,
+       smir=\EP, smso=\EO1,
+dm3045|datamedia 3045a,
+       OTbs, am, eo, km@, ul, xenl,
+       dch1=\EB$<6>, dl1@, il1@, is2=\EU\EV, kcuf1=\EC, kcuu1=\EA,
+       kf0=\Ey\r, kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r,
+       kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, kf9=\Ex\r,
+       khome=\EH, pad=\177, rmdc@, rmir=\EP, rmso@, smdc@, smso@,
+       use=dm3025,
+# Datamedia DT80 soft switches:
+# 1    0=Jump  1=Smooth
+#      Autorepeat      0=off  1=on
+#      Screen          0=Dark 1=light
+#      Cursor          0=u/l  1=block
+#
+# 2    Margin Bell     0=off  1=on
+#      Keyclick        0=off  1=on
+#      Ansi/VT52       0=VT52 1=Ansi
+#      Xon/Xoff        0=Off  1=On
+#
+# 3    Shift3          0=Hash 1=UK Pound
+#      Wrap            0=Off  1=On
+#      Newline         0=Off  1=On
+#      Interlace       0=Off  1=On
+#
+# 4    Parity          0=Odd  1=Even
+#      Parity          0=Off  1=On
+#      Bits/Char       0=7    1=8
+#      Power           0=60Hz 1=50Hz
+#
+# 5    Line Interface  0=EIA  1=Loop
+#      Aux Interface   0=EIA  1=Loop
+#      Local Copy      0=Off  1=On
+#      Spare
+#
+# 6    Aux Parity      0=Odd  1=Even
+#      Aux Parity      0=Off  1=On
+#      Aux Bits/Char   0=7    1=8
+#      CRT Saver       0=Off  1=On
+# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding.
+dm80|dmdt80|dt80|datamedia dt80/1,
+       clear=\E[2J\E[H, cud1=^J, cuf1=\E[C,
+       cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+       home=\E[H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ri=\EM,
+       rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+       use=vt100,
+# except in 132 column mode, where it needs a little padding.
+# This is still less padding than the vt100, and you can always turn on
+# the ^S/^Q handshaking, so you can use vt100 flavors for things like
+# reverse video.
+dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode,
+       cols#132,
+       clear=\E[H\E[2J$<50/>, cud1=^J,
+       cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<5/>,
+       ed=\E[0J$<20/>, el=\E[0K$<20/>, use=dm80,
+# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
+dt80-sas|Datamedia DT803/DTX for SAS usage,
+       am, bw,
+       cols#80, lines#24,
+       acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
+       bel=^G, clear=^L, cr=^M,
+       csr=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2,
+       cub1=^H, cud1=\EB, cuf1=^\,
+       cup=\E=%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, dl1=\EM, ed=^K,
+       el=^], ff=^L, home=^Y, ht=^I, hts=\E'1, il1=\EL, ind=\EB,
+       is2=\E)0\E<\EP\E'0\E$2, kclr=^L, kcub1=^H, kcud1=^J,
+       kcuf1=^\, kcuu1=^_, ked=^K, kel=^], khome=^Y, mc4=^O, mc5=^N,
+       rev=\E$2\004, ri=\EI, rmacs=\EG, rmso=^X, sgr0=^X, smacs=\EF,
+       smso=\E$2\004, tbc=\E'0,
+
+# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL
+# These aren't end-all Excel termcaps; but do insert/delete char/line
+# and name some of the extra function keys.  (Mike Feldman ccvaxa!feldman)
+# The naming convention has been bent somewhat, with the use of E? (where
+# E is for 'Excel') as # a name.  This was done to distinguish the entries
+# from the other Datamedias in use here, and yet to associate a model of
+# the Excel terminals with the regular datamedia terminals that share
+# major characteristics.
+excel62|excel64|datamedia Excel 62,
+       dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
+       kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
+       use=dt80,
+excel62-w|excel64-w|datamedia Excel 62 in 132 char mode,
+       dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
+       kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
+       use=dt80w,
+excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode,
+       dch1=\E[P, flash=\E[?5l\E[?5h, kbs=^H, kcub1=^H, kcud1=^J,
+       kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l,
+       smir=\E[4h, use=dt80,
+
+#### Falco
+#
+#      Falco Data Products
+#      440 Potrero Avenue
+#      Sunnyvale, CA 940864-196
+#      Vox: (800)-325-2648
+#      Fax: (408)-745-7860
+#      Net: techsup@charm.sys.falco.com
+#
+# Current Falco models as of 1995 are generally ANSI-compatible and support
+# emulations of DEC VT-series, Wyse, and Televideo types.
+#
+
+# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info
+# This terminal was released around 1983 and was discontinued long ago.
+# The standout and underline highlights are the same.
+falco|ts1|ts-1|falco ts-1,
+       OTbs, am,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\EY, el=\ET\EG0\010, home=^^, ht=^I, il1=\EE,
+       ind=^J, is2=\Eu\E3, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
+       kf0=^A0\r, rmir=\Er, rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0,
+       smir=\Eq, smso=\Eg1, smul=\Eg1,
+falco-p|ts1p|ts-1p|falco ts-1 with paging option,
+       OTbs, am, da, db, mir, msgr, ul,
+       cols#80, it#8, lines#24,
+       bel=^G, cbt=\EI, clear=\E*, cr=^M, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E[A,
+       dch1=\EW, dl1=\ER, ed=\EY, el=\ET\EG0\010\Eg0, ht=^I,
+       il1=\EE, ind=^J, is2=\EZ\E3\E_c, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, rmcup=\E_b, rmir=\Er,
+       rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, smcup=\E_d, smir=\Eq,
+       smso=\Eg4, smul=\Eg1,
+# (ts100: I added <rmam>/<smam> based on the init string -- esr)
+ts100|ts100-sp|falco ts100-sp,
+       am, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+       clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+       cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+       cuu1=\E[A$<2>, dch1=\E~W, dl1=\E~R, ed=\E[J$<50>,
+       el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H,
+       ht=^I, hts=\EH, ich1=\E~Q, il1=\E~E, ind=^J, is1=\E~)\E~ea,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
+       rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
+       sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+       smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
+       use=vt100+fnkeys,
+ts100-ctxt|falco ts-100 saving context,
+       rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100,
+
+#### Florida Computer Graphics
+#
+
+# Florida Computer Graphics Beacon System, using terminal emulator program
+# "host.com", as provided by FCG.  This description is for an early release
+# of the "host" program.  Known bug: <ed> clears the whole screen, so it's
+# commented out.
+
+# From: David Bryant <cbosg!djb> 1/7/83
+beacon|FCG Beacon System,
+       am, da, db,
+       cols#80, lines#32,
+       bel=\ESTART\r\E37\r\EEND\r$<1>,
+       blink=\ESTART\r\E61\,1\r\EEND\r, clear=\EZ$<10>, cr=^M,
+       cub1=^H, cud1=^J, cuf1=\EV,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=\EU,
+       dch1=\EW, dl1=\ER, el=\ET, home=\EH$<10>, ich1=\EQ, il1=\EE,
+       ind=^J, rev=\ESTART\r\E59\,1\r\EEND\r, rmcup=,
+       rmso=\ESTART\r\E70\,0\r\EEND\r$<20>,
+       rmul=\ESTART\r\E60\,0\r\EEND\r,
+       sgr0=\ESTART\r\E78\r\E70\,0\r\EEND\r$<20>,
+       smcup=\ESTART\r\E2\,0\r\E12\r\EEND\r$<10>,
+       smso=\ESTART\r\E70\,6\r\EEND\r$<20>,
+       smul=\ESTART\r\E60\,1\r\EEND\r,
+
+#### Fluke
+#
+
+# The f1720a differences from ANSI: no auto margin, destructive
+# tabs, # of lines, funny highlighting and underlining
+f1720|f1720a|fluke 1720A,
+       xt,
+       cols#80, lines#16, xmc#1,
+       bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J,
+       el=\E[K, ind=\ED, is2=\E[H\E[2J, kcub1=^_, kcud1=^],
+       kcuf1=^^, kcuu1=^\, ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+       smso=\E[7m, smul=\E[4m,
+
+#### Liberty Electronics (Freedom)
+#
+#      Liberty Electronics
+#      48089 Fremont Blvd
+#      Fremont CA 94538
+#      Vox: (510)-623-6000
+#      Fax: (510)-623-7021
+
+# From: <faletti@berkeley.edu>
+# (f100: added empty <acsc> to suppress a tic warning;
+# made this relative to adm+sgr -- note that <invis> isn't
+# known to work for f100 but does on the f110. --esr)
+f100|freedom|freedom100|freedom model 100,
+       OTbs, am, bw, hs, mir, msgr, xon,
+       cols#80, lines#24,
+       acsc=, bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J,
+       cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       dch1=\EW, dl1=\ER$<11.5*>, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
+       flash=\Eb$<200>\Ed, fsl=^M, home=^^, hpa=\E]%p1%{32}%+%c,
+       ht=^I, hts=\E1, il1=\EE$<8.5*>, ind=^J, ip=$<6>,
+       is2=\Eg\Ef\r\Ed, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V,
+       kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r,
+       kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r, khome=^^, ri=\Ej, rmacs=\E$, rmir=\Er,
+       smacs=\E%%, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
+       vpa=\E[%p1%{32}%+%c, use=adm+sgr,
+f100-rv|freedom-rv|freedom 100 in reverse video,
+       flash=\Ed$<200>\Eb, is2=\Eg\Ef\r\Eb, use=f100,
+# The f110 and f200 have problems with vi(1).  They use the ^V
+# code for the down cursor key. When kcud1 is defined in terminfo
+# as ^V, the Control Character Quoting capability (^V in insert mode)
+# is lost! It cannot be remapped in vi because it is necessary to enter
+# a ^V to to quote the ^V that is being remapped!!!
+#
+# f110/f200 users will have to decide whether
+# to lose the down cursor key or the quoting capability. We will opt
+# initially for leaving the quoting capability out, since use of VI
+# is not generally applicable to most interactive applications
+# (f110: added <ht>, <khome> & <kcbt> from f100 -- esr)
+f110|freedom110|Liberty Freedom 110,
+       bw@, eslok,
+       it#8, wsl#80,
+       blink=\EG2, bold=\EG0, civis=\E.1, cnorm=\E.2, cud1=^V,
+       dim=\EG@, dl1=\ER, dsl=\Ef\r, flash=\Eb$<200/>\Ed, il1=\EE,
+       ip@, is2@, kclr=^^, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET,
+       kf0=^AI\r, kf10@, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
+       ri=\EJ, rmacs=\E%%, rmir=\Er\EO, smacs=\E$, smir=\EO\Eq,
+       smso=\EG<, tsl=\Ef, use=f100,
+f110-14|Liberty Freedom 110 14inch,
+       dch1@, use=f110,
+f110-w|Liberty Freedom 110 - 132 cols,
+       cols#132, use=f110,
+f110-14w|Liberty Freedom 110 14in/132 cols,
+       cols#132,
+       dch1@, use=f110,
+# (f200: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
+f200|freedom200|Liberty Freedom 200,
+       OTbs, am, eslok, hs, mir, msgr, xon,
+       cols#80, it#8, lines#24, wsl#80,
+       acsc=, bel=^G, blink=\EG2, bold=\EG0, cbt=\EI, civis=\E.0,
+       clear=^Z, cnorm=\E.1, cr=^M,
+       csr=\Em0%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^V,
+       cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET,
+       flash=\Eo$<200/>\En, fsl=^M, home=^^,
+       hpa=\E]%p1%{32}%+%c, hts=\E1, il1=\EE, ind=^J, kbs=^H,
+       kclr=^^, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
+       kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
+       kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
+       ri=\EJ, rmacs=\E%%, rmir=\Er, smacs=\E$, smir=\Eq, smso=\EG<,
+       tbc=\E3, tsl=\Ef, vpa=\E[%p1%{32}%+%c, use=adm+sgr,
+f200-w|Liberty Freedom 200 - 132 cols,
+       cols#132, use=f200,
+# The f200 has the ability to reprogram the down cursor key. The key is
+# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM,
+# so powering the terminal off and on will not cause the change to be lost.
+f200vi|Liberty Freedom 200 for vi,
+       flash=\Eb$<200/>\Ed, kcud1=^J, use=f200,
+f200vi-w|Liberty Freedom 200 - 132 cols for vi,
+       cols#132, use=f200vi,
+
+#### GraphOn (go)
+#
+#      Graphon Corporation
+#      544 Division Street
+#      Campbell, CA 95008
+#      Vox: (408)-370-4080
+#      Fax: (408)-370-5047
+#      Net: troy@graphon.com (Troy Morrison)
+#
+#
+# The go140 and go225 have been discontinued.  GraphOn now makes X terminals,
+# including one odd hybrid that starts out life on power-up as a character
+# terminal, than can be switched to X graphics mode (driven over the serial
+# line) by an escape sequence.  No info on this beast yet.
+# (go140: I added <rmam>/<smam> based on the init string -- esr)
+go140|graphon go-140,
+       OTbs,
+       cols#80, it#8, lines#24,
+       clear=\E[H\E[2J$<10/>, cub1=^H, cuf1=\E[C,
+       cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+       ed=\E[J$<10/>, el=\E[K, ht=^I,
+       if=/usr/share/tabset/vt100, il1=\E[L,
+       is2=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
+       kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
+       rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
+       rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+go140w|graphon go-140 in 132 column mode,
+       am,
+       cols#132,
+       is2=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q,
+       use=go140,
+# Hacked up vt200 termcap to handle GO-225/VT220
+# From: <edm@nwnexus.WA.COM>
+# (go225: I added <rmam>/<smam> based on the init string -- esr)
+go225|go-225|Graphon 225,
+       OTbs, am, mir, xenl,
+       cols#80, it#8, lines#25, vt#3,
+       blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
+       csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+       ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[L, ind=\ED,
+       is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
+       kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, rc=\E8, rev=\E[7m,
+       rf=/usr/share/tabset/vt100, ri=\EM, rmam=\E[?7l,
+       rmcup=\E[!p\E[?7h\E[2;1;1#w, rmir=\E[4l, rmkx=\E>,
+       rmso=\E[27m, rmul=\E[24m, rs1=\E[!p\E[?7h\E[2;1;1#w,
+       sc=\E7, sgr0=\E[m, smam=\E[?7h, smcup=\E[2;0#w\E[1;25r,
+       smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
+
+#### Harris (Beehive)
+#
+# Bletch.  These guys shared the Terminal Brain Damage laurels with Hazeltine.
+# Their terminal group is ancient history now (1995) though the parent
+# company is still in business.
+#
+
+# Beehive documentation is undated and marked Preliminary and has no figures
+# so we must have early Superbee2 (Model 600, according to phone conversation
+# with mfr.). It has proved reliable except for some missing padding
+# (notably after \EK and <nl> at bottom of screen).
+#
+# The key idea is that AEP mode is poison for <cup> & that US's in
+# the local memory should be avoided like the plague. That means
+# that the 2048 character local buffer is used as 25 lines of 80
+# characters, period. No scrolling local memory, folks. It also
+# appears that we cannot use naked INS LINE feature since it uses
+# US. The sbi fakes <il1> with an 80-space insert that may be too
+# slow at low speeds; also spaces get converted to \040 which is
+# too long for some programs (not vi).  DEL LINE is ok but slow.
+#
+# The <nl> string is designed for last line of screen ONLY; cup to
+# 25th line corrects the motion inherent in scrolling to Page 1.
+#
+# There is one understood bug. It is that the screen appears to
+# pop to a new (blank) page after a <nel>, or leave a half-line
+# ellipsis to a quad that is the extra 48 memory locations. The
+# data received is dumped into memory but not displayed.  Not to
+# worry if <cup> is being used; the lines not displayed will be,
+# whenever the cursor is moved up there. Since <cup> is addressed
+# relative to MEMORY of window, nothing is lost; but beware of
+# relative cursor motion (<cuu1>,<cud1>,<cuf1>,<cub1>). Recommended,
+# therefore, is setenv MORE -c .
+#
+# WARNING: Not all features tested.
+#
+# Timings are assembled from 3 sources. Some timings may reflect
+# SB2/Model 300 that were used if more conservative.
+# Tested on a Model 600 at 1200 and 9600 bd.
+#
+# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly
+# placed on the keyboard and useless because of AEP, is made
+# into a backspace key. In use ESC must be pressed twice (to send)
+# and sending ^C must be prefixed by ESC to avoid that weird
+# transmit mode associated with ENTER key.
+#
+# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across
+# the screen, then it has dropped into ENTER mode; hit
+# RESET--ONLINE--!tset.
+#
+# As delivered this machine has a FATAL feature that will throw
+# it into that strange transmit state (SPOW) if the space bar is
+# hit after a CR is received, but before receiving a LF (or a
+# few others).
+#
+# The circuits MUST be modified to eliminate the SPOW latch.
+# This is done by strapping on chip A46 of the I/O board; cut
+# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that
+# chip. This mod has been checked out on a Mod 600 of Superbee II.
+# With this modification absurdly high timings on cr are
+# unnecessary.
+#
+# NOTE WELL that the rear panel switch should be set to CR/LF,
+# not AEP!
+#
+sb1|beehive superbee,
+       OTbs, am, bw, da, db, mir, ul, xsb,
+       cols#80, lines#25, xmc#1,
+       bel=^G, cbt=\E`$<650>, clear=\EH$<1>\EJ$<3>, cr=$<1>\r,
+       cub1=^H, cud1=^J, cuf1=\EC$<3>, cup=\EF%p2%03d%p1%03d,
+       cuu1=\EA$<3>, dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>,
+       el=\EK$<3>, home=\EH$<1>, ht=^I, hts=\E1,
+       il1=\EN\EL$<3>\EQ                                                                                \EP$<3> \EO\ER\EA$<3>,
+       ind=^J, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdl1=\EM, ked=\EJ, kel=\EK,
+       kf0=\E2, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu,
+       kf7=\Ev, kf8=\Ew, kf9=\E1, khome=\EH, kich1=\EQ\EO,
+       krmir=\ER, lf0=TAB CLEAR, lf9=TAB SET, rmcup=, rmir=\ER,
+       rmso=\E_3, rmul=\E_3, sgr0=\E_3, smcup=\EO, smir=\EQ\EO,
+       smso=\E_1, smul=\E_0, tbc=\E3,
+sbi|superbee|beehive superbee at Indiana U.,
+       xsb,
+       cr=\r$<1>, il1=1\EN\EL$<9>\EQ \EP$<9> \EO\ER\EA,
+       use=sb1,
+# Alternate (older) description of Superbee - f1=escape, f2=^C.
+# Note: there are at least 3 kinds of superbees in the world.  The sb1
+# holds onto escapes and botches ^C's.  The sb2 is the best of the 3.
+# The sb3 puts garbage on the bottom of the screen when you scroll with
+# the switch in the back set to CRLF instead of AEP.  This description
+# is tested on the sb2 but should work on all with either switch setting.
+# The f1/f2 business is for the sb1 and the <xsb> can be taken out for
+# the other two if you want to try to hit that tiny escape key.
+# This description is tricky: being able to use cup depends on there being
+# 2048 bytes of memory and the hairy <nl> string.
+superbee-xsb|beehive super bee,
+       am, da, db, xsb,
+       cols#80, it#8, lines#25,
+       clear=\EH\EJ$<3>, cnorm=^J, cr=\r$<1000>, cub1=^H, cud1=^J,
+       cuf1=\EC, cup=\EF%p2%3d%p1%3d, cuu1=\EA$<3>,
+       dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, el=\EK$<3>,
+       home=\EH, ht=^I, hts=\E1,
+       ind=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET, is2=\EH\EJ,
+       kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ep, kf2=\Eq,
+       kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
+       khome=\EH, rmso=\E_3, sgr0=\E_3, smso=\E_1, tbc=\E3,
+# This loses on lines > 80 chars long, use at your own risk
+superbeeic|super bee with insert char,
+       ich1=, rmir=\ER, smir=\EQ, use=superbee-xsb,
+sb2|sb3|fixed superbee,
+       xsb@, use=superbee,
+
+####  Beehive Medical Electronics
+#
+# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999):
+# Regarding your question though; Beehive terminals weren't made by Harris.
+# They were made by Beehive Medical Electronics in Utah. They went out of
+# business in the early '80s.
+#
+# (OK, then, I don't know why a couple of these say "harris beehive".)
+#
+
+# Reports are that most of these Beehive entries (except superbee) have not
+# been tested and do not work right.  <rmso> is a trouble spot.  Be warned.
+
+# (bee: <ich1> was empty, which is obviously bogus -- esr)
+beehive|bee|harris beehive,
+       OTbs, am, mir,
+       cols#80, lines#24,
+       cbt=\E>, clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
+       dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, kbs=^H, kcbt=\E>,
+       kclr=\EE, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+       kdch1=\EP, kdl1=\EM, kel=\EK, khome=\EH, kich1=\EQ, kil1=\EL,
+       krmir=\E@, rmir=\E@, rmso=\Ed@, rmul=\Ed@, sgr0=\Ed@,
+       smir=\EQ, smso=\EdP, smul=\Ed`,
+# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs.
+# good grief - does this entry make :sg:/:ug: when it doesn't have to?
+# look at those spaces in <rmso>/<smso>.  Seems strange to me...
+# (beehive: <if=/usr/share/tabset/beehive> removed, no such file.  If you
+# really care, cook up one using ^F -- esr)
+beehive3|bh3m|beehiveIIIm|harris beehive 3m,
+       OTbs, am,
+       cols#80, it#8, lines#20,
+       bel=^G, clear=^E^R, cr=^M, cub1=^H, cud1=^J, cuf1=^L, cuu1=^K,
+       dl1=\021$<350>, ed=^R, el=^P, home=^E, ht=^I, hts=^F,
+       il1=\023$<160>, ind=^J, ll=^E^K, rmso=\s^_, smso=^]\s,
+beehive4|bh4|beehive 4,
+       am,
+       cols#80, lines#24,
+       bel=^G, clear=\EE, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
+       cuu1=\EA, ed=\EJ, el=\EK, home=\EH, ind=^J,
+# There was an early Australian kit-built computer called a "Microbee".
+# It's not clear whether this is for one of those or for a relative
+# of the Beehive.
+microb|microbee|micro bee series,
+       OTbs, am,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+       el=\EK, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
+       kf6=\Eu, kf7=\Ev, kf8=\Ew, kf9=\Ex, khome=\EH, rmso=\Ed@,
+       rmul=\Ed@, sgr0=\Ed@, smso=\s\EdP, smul=\Ed`,
+
+# 8675, 8686, and bee from Cyrus Rahman
+# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr)
+ha8675|harris 8675,
+       is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU, kf1=^F,
+       kf10=\Ed, kf11=^W, kf12=\ER, kf13=\EE, kf14=\EI, kf15=\Ei,
+       kf16=\Eg, kf2=^P, kf3=^N, kf4=^V, kf5=^J, kf6=^T, kf7=^H,
+       kf8=\177, kf9=\Ee, use=bee,
+# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation
+# in :is: -- esr)
+ha8686|harris 8686,
+       is2=\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#,
+       kf1=\002\Ep\003, kf10=\Ej, kf11=\EW, kf12=\002\E{\003,
+       kf13=\002\E|\003, kf14=\002\E}\003, kf15=\002\E~\003,
+       kf16=\002\E\177\003, kf2=\002\Eq\003, kf3=\002\Er\003,
+       kf4=\002\Es\003, kf5=\E3, kf6=\EI, kf7=\ER, kf8=\EJ, kf9=\E(,
+       use=bee,
+
+#### Hazeltine
+#
+# Hazeltine appears to be out of the terminal business as of 1995.  These
+# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with
+# Harris. They have a hazeltine.com domain (but no web page there ) and can
+# be reached at:
+#
+#      Hazeltine
+#      450 East Pulaski Road
+#      Greenlawn, New York 11740
+#
+# As late as 1993, manuals for the terminal product line could still be
+# purchased from:
+#
+#      TRW Customer Service Division
+#      15 Law Drive
+#      P.O. Box 2076
+#      Fairfield, NJ 07007-2078
+#
+# They're now (1998) a subsidiary of General Electric, operating under the
+# marque "GEC-Marconi Hazeltine" and doing military avionics.  Web page
+# at <http://www.gec.com/cpd/1ncpd.htm#1.55>.
+#
+
+# Since <cuf1> is blank, when you want to erase something you
+# are out of luck.  You will have to do ^L's a lot to
+# redraw the screen.  h1000 is untested.  It doesn't work in
+# vi - this terminal is too dumb for even vi.  (The code is
+# there but it isn't debugged for this case.)
+hz1000|hazeltine 1000,
+       OTbs,
+       cols#80, lines#12,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, home=^K,
+       ind=^J,
+# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
+hz1420|hazeltine 1420,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=^J, cuf1=^P,
+       cup=\E\021%p2%c%p1%{32}%+%c, cuu1=\E^L, dl1=\E^S,
+       ed=\E^X, el=\E^O, ht=^N, il1=\E^Z, ind=^J, rmso=\E^Y,
+       smso=\E^_,
+# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>.  Prevents
+# freakout with out-of-range args and tn3270.  No hz since it needs to
+# receive tildes.
+hz1500|hazeltine 1500,
+       OTbs, am, hz,
+       cols#80, lines#24,
+       bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
+       cup=~\021%p2%p2%?%{30}%>%t%{32}%+%;%{96}%+%c%p1%{96}%+%c,
+       cuu1=~^L, dl1=~\023$<40>, ed=~\030$<10>, el=~^O, home=~^R,
+       il1=~\032$<40>, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^P,
+       kcuu1=~^L, khome=~^R, rmso=~^Y, smso=~^_,
+# h1510 assumed to be in sane escape mode.  Else use h1500.
+# (h1510: early versions of this entry apparently had "<rmso=\E^_>,
+# <smso=\E^Y>, but these caps were commented out in 8.3; also,
+# removed incorrect and overridden ":do=^J:" -- esr)
+hz1510|hazeltine 1510,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, cuf1=^P,
+       cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, ed=\E^X,
+       el=\E^O, il1=\E^Z, ind=^J,
+# Hazeltine 1520
+# The following switch settings are assumed for normal operation:
+#      FULL            CR              U/L_CASE        ESCAPE
+#      FORMAT_OFF      EOM_A_OFF       EOM_B_OFF       WRAPAROUND_ON
+# Other switches may be set for operator convenience or communication
+# requirements.
+hz1520|Hazeltine 1520,
+       OTbs, am, bw, msgr,
+       cols#80, lines#24,
+       bel=^G, bold=\E^_, clear=\E^\, cr=^M, cub1=^H, cud1=^J,
+       cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
+       ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, kbs=^H,
+       kclr=\E^\, kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L,
+       kdl1=\E^S, ked=\E^X, kel=\E^O, khome=\E^R, kil1=\E^Z,
+       rmso=\E^Y, rs1=\E$\E\005\E?\E\031, sgr0=\E^Y, smso=\E^_,
+# This version works with the escape switch off
+# (h1520: removed incorrect and overridden ":do=^J:" -- esr)
+hz1520-noesc|hazeltine 1520,
+       am, hz,
+       cols#80, lines#24,
+       bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
+       cup=~\021%p2%c%p1%c$<1>, cuu1=~^L, dl1=~^S, ed=~^X, el=~^O,
+       home=~^R, il1=~^Z, ind=^J, rmso=~^Y, smso=~^_,
+# Note: the h1552 appears to be the first Hazeltine terminal which
+# is not braindamaged.  It has tildes and backprimes and everything!
+# Be sure the auto lf/cr switch is set to cr.
+hz1552|hazeltine 1552,
+       OTbs,
+       cud1=^J, dl1=\EO, il1=\EE, kf1=\EP, kf2=\EQ, kf3=\ER, lf1=blue,
+       lf2=red, lf3=green, use=vt52,
+hz1552-rv|hazeltine 1552 reverse video,
+       cud1=^J, rmso=\ET, smso=\ES, use=hz1552,
+# Note: h2000 won't work well because of a clash between upper case and ~'s.
+hz2000|hazeltine 2000,
+       OTbs, OTnc, am,
+       cols#74, lines#27,
+       bel=^G, clear=~\034$<6>, cub1=^H, cud1=^J,
+       cup=~\021%p2%c%p1%c, dl1=~\023$<6>, home=~^R,
+       il1=~\032$<6>, ind=^J, pad=\177,
+# Date: Fri Jul 23 10:27:53 1982.  Some unknown person wrote:
+# I tested this termcap entry for the Hazeltine Esprit with vi. It seems
+# to work ok. There is one problem though if one types a lot of garbage
+# characters very fast vi seems not able to keep up and hangs while trying
+# to insert. That's in insert mode while trying to insert in the middle of
+# a line. It might be because the Esprit doesn't have insert char and delete
+# char as a built in function. Vi has to delete to end of line and then
+# redraw the rest of the line.
+esprit|Hazeltine Esprit I,
+       OTbs, am, bw,
+       cols#80, lines#24,
+       bel=^G, cbt=\E^T, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K,
+       cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
+       ed=\E^W, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, is2=\E?, kbs=^H,
+       kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, kf0=^B0^J,
+       kf1=^B1^J, kf2=^B2^J, kf3=^B3^J, kf4=^B4^J, kf5=^B5^J,
+       kf6=^B6^J, kf7=^B7^J, kf8=^B8^J, kf9=^B9^J, khome=\E^R,
+       lf0=0, lf1=1, lf2=2, lf3=3, lf4=4, lf5=5, lf6=6, lf7=7, lf8=8, lf9=9,
+       rmkx=\E>, rmso=\E^Y, smkx=\E<, smso=\E^_,
+esprit-am|hazeltine esprit auto-margin,
+       am, use=esprit,
+# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL
+# Vi it seems always wants to send a control J for "do" and it turned out
+# that the terminal would work somewhat if the auto LF/CR was turned off.
+# (hmod1: removed :dn=~^K: -- esr)
+hmod1|Hazeltine Modular 1,
+       OTbs, am, hz,
+       cols#80, lines#24,
+       bel=^G, cbt=~^T, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
+       cup=~\021%p2%c%p1%c, cuu1=~^L, dl1=~^S, home=~^R, il1=~^Z,
+       ind=^J, kcub1=^H, kcud1=~^K, kcuf1=^P, kcuu1=~^L, khome=~^R,
+       rc=~^Q, rmso=~^Y, sc=~^E, sgr0=~^Y, smso=~^_,
+#
+# Hazeltine Executive 80 Model 30 (1554?)
+#      from  Will Martin <control@ALMSA-1.ARPA> via BRL
+# Like VT100, except for different "am" behavior.
+hazel|exec80|h80|he80|Hazeltine Executive 80,
+       OTbs, OTpt, am,
+       cols#80, it#8, lines#24, vt#3,
+       OTnl=^J, bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
+       clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
+       cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
+       ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
+       is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
+       kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+       kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
+       rf=/usr/share/tabset/vt100, ri=\EM$<5/>,
+       rmkx=\E[?1l\E>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
+       rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr0=\E[m$<2/>, smkx=\E[?1h\E=, smso=\E[7m$<2/>,
+       smul=\E[4m$<2/>,
+
+#### IBM
+#
+
+ibm327x|line mode IBM 3270 style,
+       gn,
+       clear=^M^J, el=^M, home=^M,
+
+ibm3101|i3101|IBM 3101-10,
+       OTbs, am, xon,
+       cols#80, lines#24,
+       bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+       el=\EI, home=\EH, hts=\E0, ind=^J, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, nel=^M^J, tbc=\EH,
+ibm3151|IBM 3151 display,
+       is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B,
+       sgr=\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%;,
+       sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162,
+# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
+# removed kend, knp, kpp -TD
+ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
+       OTbs, am, mir, msgr,
+       cols#80, it#8, lines#24,
+       acsc=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370,
+       bel=^G, blink=\E4D, bold=\E4H, clear=\EH\EJ, cr=^M, cub1=\ED,
+       cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH, ind=^J,
+       invis=\E4P, kbs=^H, kcbt=\E2, kclr=\EL\r, kctab=\E1,
+       kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EQ,
+       kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r, kf10=\Ej\r,
+       kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r, kf14=\E!b\r,
+       kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r, kf18=\E!f\r,
+       kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r, kf21=\E!i\r,
+       kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r, kf3=\Ec\r,
+       kf4=\Ed\r, kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r, kf8=\Eh\r,
+       kf9=\Ei\r, khome=\EH, khts=\E0, kich1=\EP \010, kil1=\EN,
+       ktbc=\E 1, mc4=^P^T, mc5=^P^R, rev=\E4A, rmcup=\E>A,
+       rmso=\E4@, rmul=\E4@,
+       sgr=\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<@%;,
+       sgr0=\E4@\E<@, smcup=\E>A, smso=\E4A, smul=\E4B,
+
+ibm3161-C|IBM 3161-C NLS terminal using cartridge,
+       rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161,
+ibm3162|IBM 3162 display,
+       blink=\E4$a, bold=\E4(a, il1=\EN, invis=\E40a, rev=\E4!a,
+       rmso=\E4>b, rmul=\E4=b, sgr0=\E4@, smso=\E4!a, smul=\E4"a,
+       use=ibm3161-C,
+
+# This really should not use setab/setaf, but it is clear that the
+# original terminfo does not toggle red/blue colors as in setb/setf.
+ibm3164|i3164|IBM 3164,
+       msgr,
+       colors#8, pairs#64,
+       op=\E4 "@, rmcup=\E!9(N\E>B, s0ds=\E>B, s1ds=\E>A,
+       setab=\E4  %p1%{64}%+%c,
+       setaf=\E4%?%p1%t %p1%{32}%+%c%e!'%;@,
+       smcup=\E!9/N\E>B, use=ibm3161,
+
+ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display,
+       am, bw, msgr, xon,
+       cols#80, it#8, lines#25,
+       acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H,
+       hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+       indn=\E[%p1%dS, invis=\E[8m, is2=\Ec, kbs=^H, kcbt=\E[Z,
+       kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, kel=\E[142q,
+       kend=\E[146q, kf1=\E[001q, kf10=\E[010q, kf11=\E[011q,
+       kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, kf15=\E[015q,
+       kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, kf19=\E[019q,
+       kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, kf22=\E[022q,
+       kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, kf26=\E[026q,
+       kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, kf3=\E[003q,
+       kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, kf33=\E[033q,
+       kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, kf4=\E[004q,
+       kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
+       kf9=\E[009q, khome=\E[H, kich1=\E[139q, kil1=\E[140q,
+       kind=\E[151q, knp=\E[154q, kpp=\E[150q, kri=\E[155q,
+       krmir=\E[4l, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmir=\E[4l,
+       rmso=\E[m, rmul=\E[m, rs2=\Ec,
+       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
+       sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+
+ibmaed|IBM Experimental display,
+       OTbs, am, eo, msgr,
+       cols#80, it#8, lines#52,
+       clear=\EH\EK, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
+       dl1=\EO, ed=\EJ, el=\EI, flash=\EG, home=\EH, ht=^I, ich1=\EP,
+       il1=\EN, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+       rmso=\E0, sgr0=\E0, smso=\E0,
+ibm-apl|apl|IBM apl terminal simulator,
+       lines#25, use=dm1520,
+# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
+# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr)
+ibmmono|IBM workstation monochrome,
+       eslok, hs,
+       bold=\EZ, dl1=\EM, dsl=\Ej\EY8 \EI\Ek, fsl=\Ek, il1=\EL,
+       invis=\EF\Ef0;\Eb0;, kbs=^H, kf0=\E<, kf1=\ES, kf2=\ET,
+       kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EY,
+       khome=\EH, kich1=\0, kind=\EE, knp=\EE, kpp=\Eg, kri=\EG,
+       lf0=f10, rev=\Ep, ri=\EA, rmso=\Ez, rmul=\Ew,
+       sgr0=\Ew\Eq\Ez\EB, smso=\EZ, smul=\EW, tsl=\Ej\EY8%+ \Eo,
+       use=ibm3101,
+ibmega|IBM Enhanced Color Display,
+       cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
+       nel=^M^J, use=ibmmono,
+# This color scheme is assumed in some recent IBM terminal descriptions
+# (green on black, emulated on a 16-color terminal).
+ibm+color|IBM color definitions,
+       colors#8, ncv#3, pairs#64,
+       op=\E[32m\E[40m,
+       setb=\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%;,
+       setf=\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%;,
+ibm+16color|IBM aixterm color definitions,
+       colors#16, pairs#256,
+       setab=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm,
+       setaf=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm,
+       setb=%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,
+       setf=%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,
+ibm5154|IBM 5154 Color display,
+       colors#8, ncv@, pairs#64,
+       bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
+       use=ibm+color,
+ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline,
+       rmso=\EB, rmul=\EB, smso=\EF\Ef3;, smul=\EF\Ef2;,
+       use=ibmmono,
+ibmvga-c|IBM VGA display color termcap,
+       cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
+       nel=^M^J, use=ibmega-c,
+ibmvga|IBM VGA display,
+       cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
+       nel=^M^J, use=ibmega,
+# ibmapa* and ibmmono entries come from ACIS 4.3 distribution
+rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display,
+       lines#32,
+       dsl=\Ej\EY@ \EI\Ek, tsl=\Ej\EY@%+ \Eo, use=ibmmono,
+ibm6155|IBM 6155 Black & White display,
+       blink@, bold@, use=ibm5151,
+# Advanced Monochrome (6153) and Color (6154) Graphics Display:
+ibmapa8c|ibmapa8|IBM 6154 Advanced Graphics Display,
+       lines#31,
+       dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo, use=ibmmono,
+ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display,
+       lines#31,
+       dim=\EF\Ef7;, dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo,
+       use=ibmega-c,
+ibm6154|IBM 6154 Color displays,
+       blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
+       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
+       sgr0=\E[0;10m, use=ibm5154,
+ibm6153|IBM 6153 Black & White display,
+       blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
+       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
+       sgr0=\E[0;10m, use=ibm5151,
+ibm6153-90|IBM 6153 Black & White display,
+       cols#90, lines#36,
+       blink@, bold@, use=ibm5151,
+ibm6153-40|IBM 6153 Black & White display,
+       cols#40, lines#12, use=ibm6153-90,
+ibm8512|ibm8513|IBM color VGA Terminal,
+       am, mir, msgr,
+       cols#80, it#8, lines#25,
+       acsc=jjkkllmmnnqqttuuvvwwxx, blink=\E[5m, bold=\E[1m,
+       clear=\E[H\E[J, cub1=\E[D, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, il=\E[%p1%dL,
+       il1=\E[L, is2=\Eb\E[m\017\E[?7h, kcud1=\E[B, kcuu1=\E[A,
+       kf0=\E[010q, kf1=\E[001q, kf2=\E[002q, kf3=\E[003q,
+       kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
+       kf8=\E[008q, kf9=\E[009q, khome=\E[H, rc=\E[u, rev=\E[7m,
+       rmacs=^O, rmam=\E[?7l, rmcup=\E[20h, rmdc=\E[4l,
+       rmir=\E[4l, rmso=\E[m, rmul=\E[m,
+       rs1=\Eb\E[m\017\E[?7h\E[H\E[J, sc=\E[s, sgr0=\E[m,
+       smacs=^N, smam=\E[?7h, smcup=\E[20;4l\E[?7h\Eb,
+       smdc=\E[4h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+       use=ibm8503,
+hft-c|HFT with Color,
+       colors#8, pairs#64,
+       acsc=jjkkllmmnnqqttuuvvwwxx, s0ds=\E(B, s1ds=\E(0,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m\E(B,
+       use=ibm5151, use=ibm+color,
+hft-c-old|HFT with Color PC850,
+       colors#8, pairs#64,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
+       use=ibm+color,
+hft-old|AIWS High Function Terminal,
+       am, xon,
+       cols#80, lines#25,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+       cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
+       ht=^I, ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q,
+       kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
+       kf9=\E[009q, khome=\E[H, knp=\E[153q, kpp=\E[159q,
+       ktbc=\E[010q, rev=\E[7m, rmir=\E6, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m, use=ibm+color,
+ibm-system1|system1|ibm system/1 computer,
+       am, xt,
+       cols#80, lines#24,
+       bel=^G, clear=^Z, cub1=^H, cuf1=^\,
+       cup=\005%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, home=^K,
+       ind=^J,
+#       lft-pc850 : IBM Low Function Terminal Device
+#    lft "supports" underline, bold, and blink in the sense that the lft code
+#    sets all the right bits.  HOWEVER, depending upon the adapter, these
+#    attributes may or may not be supported by the device driver.
+lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device,
+       am, bw, msgr, xon,
+       cols#80, it#8, lines#25,
+       acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+       cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[2J, el=\E[0K,
+       home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, il=\E[%p1%dL,
+       il1=\E[L, ind=\ED, indn=\E[%p1%dS, invis=\E[8m, is2=\Ec,
+       kbs=^H, kcbt=\E[Z, kclr=\E[144q, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ked=\E[148q,
+       kel=\E[142q, kend=\E[146q, kf1=\E[001q, kf10=\E[010q,
+       kf11=\E[011q, kf12=\E[012q, kf13=\E[013q, kf14=\E[014q,
+       kf15=\E[015q, kf16=\E[016q, kf17=\E[017q, kf18=\E[018q,
+       kf19=\E[019q, kf2=\E[002q, kf20=\E[020q, kf21=\E[021q,
+       kf22=\E[022q, kf23=\E[023q, kf24=\E[024q, kf25=\E[025q,
+       kf26=\E[026q, kf27=\E[027q, kf28=\E[028q, kf29=\E[029q,
+       kf3=\E[003q, kf30=\E[030q, kf31=\E[031q, kf32=\E[032q,
+       kf33=\E[033q, kf34=\E[034q, kf35=\E[035q, kf36=\E[036q,
+       kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
+       kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
+       kil1=\E[140q, kind=\E[151q, knp=\E[154q, kpp=\E[150q,
+       kri=\E[155q, krmir=\E[4l, rev=\E[7m, ri=\EL, rin=\E[%p1%dT,
+       rmacs=\E(B, rmir=\E[4l, rmso=\E[0m, rmul=\E[0m, rs2=\Ec,
+       sgr=\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%;,
+       sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+       tbc=\E[3g,
+ibm5081|hft|IBM Megapel Color display,
+       acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B,
+       s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
+ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display,
+       eslok, hs,
+       lines#33,
+       dsl=\Ej\EYA \EI\Ek, fsl=\Ek, tsl=\Ej\EYA%+ \Eo,
+       use=ibmega-c,
+ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display,
+       use=hft-c,
+ibm8514|IBM 8514/a color VGA display,
+       eslok, hs,
+       dsl=\Ej\EYI \EI\Ek, fsl=\Ek, tsl=\Ej\EYI%+ \Eo, use=hft,
+ibm8514-c|IBM 8514 color display with standout and underline,
+       eslok, hs,
+       lines#41,
+       cr=^M, cud1=^J, dsl=\Ej\EYI \EI\Ek, fsl=\Ek, ht=^I, ind=^J,
+       kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, tsl=\Ej\EYI%+ \Eo,
+       use=ibmega-c,
+
+#
+# AIX entries.  IBM ships these with AIX 3.2.5.
+# -- added rc, sc based on manpage -TD
+# Note that we could use ibm+16color, but that is not how IBM defines this one.
+aixterm|IBM Aixterm Terminal Emulator,
+       eslok, hs,
+       acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
+       fsl=\E[?F, rc=\E8, ri@, s0ds=\E(B, s1ds=\E(0, sc=\E7,
+       sgr=\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%;,
+       sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6154,
+aixterm-m|IBM AIXterm Monochrome Terminal Emulator,
+       eslok, hs,
+       acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
+       fsl=\E[?F, ri@, s0ds=\E(B, s1ds=\E(0,
+       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
+       sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6153,
+aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator,
+       eslok, hs,
+       bold=\E[1m, dsl=\E[?E, fsl=\E[?F, ri@,
+       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
+       tsl=\E[?%p1%dT, use=ibm6153,
+jaixterm|IBM Kanji Aixterm Terminal Eemulator,
+       acsc@, use=aixterm,
+jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator,
+       acsc@, use=aixterm-m,
+
+# This flavor is adapted from xterm, in turn from aixterm documentation -TD
+aixterm-16color|IBM Aixterm Terminal Emulator with 16 colors,
+       use=ibm+16color, use=aixterm,
+
+#### Infoton/General Terminal Corp.
+#
+
+# gt100 sounds like something DEC would come out with.  Let's hope they don't.
+i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100),
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\Ef%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dl1=\EM,
+       ed=\EJ, el=\EK, flash=\Eb$<200/>\Ea, home=\EH, il1=\EL,
+       ind=^J, rmso=\Ea, smso=\Eb,
+i400|infoton 400,
+       OTbs, am,
+       cols#80, lines#25,
+       bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%3d;%p2%3dH, cuu1=\E[A,
+       dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N,
+       il1=\E[L, ind=^J, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q,
+# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
+addrinfo,
+       am,
+       cols#80, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y,
+       cup=\037%p1%c%p2%c, cuu1=^\, ed=^K, home=^H, ind=^J, ll=^H^\,
+# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
+infoton,
+       am,
+       cols#80, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, cuu1=^\,
+       ed=^K, ind=^J, ll=^H^\,
+
+# The ICL6402 was actually the Kokusai Display System 6402.
+# The 6404 was the KDS7372 (color version of the 6402).
+#
+# ICL6404 control codes follow:
+#
+#code            function
+#~~~~~~~~~~~     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#ctrl-A          set SOM position at cursor position
+#ctrl-G          Bell
+#ctrl-H          Backspace
+#ctrl-I          Horiz tab
+#ctrl-J          Linefeed
+#ctrl-K          Cursor up
+#ctrl-L          Cursor right
+#ctrl-M          Carriage return
+#ctrl-N          Disable xon/xoff to host
+#ctrl-O          Enable xon/xoff to host
+#ctrl-R          Enable bidirectional mode
+#ctrl-T          Disable bidirectional mode
+#ctrl-V          Cursor down
+#ctrl-Z          Clear unprotected data to insert char
+#ctrl-^          Cursor home
+#ctrl-_          Newline
+#
+#ESC             lead-in char for multiple character command
+#
+#ESC space R     execute power on sequence
+#ESC ! p1 p2     define scroll region:
+#                p1 = scroll top    line:  20h - 37h
+#                p1 = scroll bottom line:  20h - 37h
+#ESC "           unlock keyboard
+#ESC #           lock keyboard
+#ESC $           Semi-graphics mode on
+#ESC %           Semi-graphics mode off
+#ESC &           protect mode on
+#ESC '           protect mode off
+#ESC (           write protect mode off (full intensity)
+#ESC )           write protect mode on (half intensity)
+#
+#ESC *           clear screen
+#ESC +           clear unprotected data to insert char
+#ESC ,           clear unprotected data to half intensity spaces
+#ESC - p1 p2 p3 p4     address cursor to page, row, column:
+#                      p1 = page number  0 - 3
+#                      p2 = row          20h - 7fh
+#                      p3 = column (lo)  20h - 7fh
+#                      p4 = column (hi)  20h - 21h (only 132 col)
+#ESC . p1        set cursor style:
+#                p1 = 0  invisible cursor
+#                p1 = 1  block blinking cursor
+#                p1 = 2  block steady cursor
+#                p1 = 3  underline blinking cursor
+#                p1 = 4  underline steady cursor
+#ESC /           transmit cursor location (page, row, column)
+#ESC 0 p1 p2 p3 p4     program edit key:
+#                      p1 = edit key code: '@'-'S', '`'-'s'
+#                      p2 p3 p4 = program data (3 bytes)
+#
+#ESC 1           set tab
+#ESC 2           clear tab at cursor
+#ESC 3           clear all tabs
+#ESC 4           send unprotect line to cursor
+#ESC 5           send unprotect page to cursor
+#ESC 6           send line to cursor
+#ESC 7           send page to cursor
+#ESC 8 n         set scroll mode:
+#                n = 0   set jump scroll
+#                n = 1   set smooth scroll
+#ESC 9 n         control display:
+#                n = 0   display off
+#                n = 1   display on
+#ESC :           clear unprotected data to null
+#ESC ;           clear unprotected data to insert char
+#
+#ESC <           keyclick on
+#ESC = p1 p2     address cursor to row, column
+#                p1 = row          20h - 7fh
+#                p2 = column (lo)  20h - 7fh
+#                p3 = column (hi)  20h - 21h (only 132 col)
+#ESC >           keyclick off
+#ESC ?           transmit cursor location (row, column)
+#
+#ESC @           copy print mode on
+#ESC A           copy print mode off
+#ESC B           block mode on
+#ESC C           block mode off (conversation mode)
+#ESC D F         set full duplex
+#ESC D H         set half duplex
+#ESC E           line insert
+#ESC F p1 p2     set page colour (p1 = f/grnd, p2 = b/grnd)
+#                0 = black, 1 = red,     2 = green, 3 = yellow
+#                4 = blue,  5 = magenta, 6 = cyan,  7 = white
+#ESC G n         set serial field attribute (n = 30h - 3Fh)
+#ESC H n         full graphics mode:
+#                n = 0  exit full graphics mode
+#                n = 1  enter full graphics mode
+#ESC I           back tab
+#ESC J           back page
+#ESC K           forward page
+#
+#ESC L           unformatted page print
+#ESC M L         move window left  (132 col mode only)
+#ESC M R         move window right (132 col mode only)
+#ESC N           set page edit (clear line edit)
+#ESC O           set line edit (clear page edit)
+#ESC P           formatted page print
+#ESC Q           character insert
+#ESC R           line delete
+#ESC S           send message unprotected only
+#ESC T           erase line to insert char
+#ESC U           set monitor mode   (see ESC X, ESC u)
+#
+#ESC V n         select video attribute mode:
+#                n = 0   serial field attribute mode
+#                n = 1   parallel character attribute mode
+#ESC V 2 n       define line attribute:
+#                n = 0   single width single height
+#                n = 1   single width double height
+#                n = 2   double width single height
+#                n = 3   double width double height
+#ESC V 3 n       select character font:
+#                n = 0   system font
+#                n = 1   user defined font
+#ESC V 4 n       select screen mode:
+#                n = 0   page screen mode
+#                n = 1   virtual screen mode
+#ESC V 5 n       control mouse mode:
+#                n = 0   disable mouse
+#                n = 1   enable sample mode
+#                n = 2   send mouse information
+#                n = 3   enable request mode
+#ESC W           character delete
+#ESC X           clear monitor mode (see ESC U, ESC u)
+#ESC Y           erase page to insert char
+#
+#ESC Z n         send user/status line:
+#                n = 0   send user line
+#                n = 1   send status line
+#                n = 2   send terminal ID
+#ESC [ p1 p2 p3  set character attribute (parallel char mode):
+#                p1: 0 = normal
+#                    1 = blank
+#                    2 = blink
+#                    3 = blink blank (= blank)
+#                    4 = reverse
+#                    5 = reverse blank
+#                    6 = reverse blink
+#                    7 = reverse blink blank (= reverse blank)
+#                    8 = underline
+#                    9 = underline blank
+#                    : = underline blink
+#                    ; = underline blink blank
+#                    < = reverse underline
+#                    = = reverse underline blank
+#                    > = reverse underline blink
+#                    ? = reverse underline blink blank
+#                p2, p3: f/grnd, b/grnd colour
+#                (see ESC F for colours)
+#                use ZZ for mono, eg.
+#                    ESC [ 0 Z Z for normal
+#                    ESC [ 4 Z Z for inverse etc.
+#
+#ESC \ n         set page size:
+#                n = 1   24 lines/page
+#                n = 2   48 lines/page
+#                n = 3   72 lines/page
+#                n = 4   96 lines/page
+#ESC ] n         set Wordstar mode:
+#                n = 0   normal (KDS7372) mode
+#                n = 1   Wordstar mode
+#
+#ESC b           set foreground colour screen
+#
+#ESC c n         enter self-test mode:
+#                n = 0   exit self test mode
+#                n = 1   ROM test
+#                n = 2   RAM test
+#                n = 3   NVRAM test
+#                n = 4   screen display test
+#                n = 5   main/printer port test
+#                n = 6   mouse port test
+#                n = 7   graphics board test
+#                n = 8   graphics memory test
+#                n = 9   display all 'E'
+#                n = :   display all 'H'
+#ESC d           set background colour screen
+#
+#ESC e n         program insert char (n = insert char)
+#ESC f text CR   load user status line with 'text'
+#
+#ESC g           display user status line on 25th line
+#ESC h           display system status line on 25th line
+#ESC i           tab
+#ESC j           reverse linefeed
+#ESC k n         duplex/local edit mode:
+#                n = 0   duplex edit mode
+#                n = 1   local edit mode
+#ESC l n         select virtual screen:
+#                n = 0   screen 1
+#                n = 1   screen 2
+#ESC m           save current config to NVRAM
+#ESC n p1        select display screen:
+#                p1 = 0  screen 1
+#                p1 = 1  screen 2
+#                p1 = 2  screen 3
+#                p1 = 3  screen 4
+#ESC o p1 p2     set characters/line and attribute:
+#                p1 = 0  80 chars/line
+#
+#ESC o p1 p2     set characters/line and attribute:
+#                p1 = 0  80 chars/line
+#                p1 = 1  132 chars/line
+#                p2 = 0  single width single height
+#                p2 = 1  single width double height
+#                p2 = 2  double width single height
+#                p2 = 3  double width double height
+#
+#ESC q           insert mode on
+#ESC r           edit mode on
+#ESC s           send message all
+#ESC t           erase line to null
+#ESC u           clear monitor mode (see ESC U, ESC X)
+#ESC v           autopage mode on
+#ESC w           autopage mode off
+#ESC x p1 p2 p3  define delimiter code...
+#ESC y           erase page to null
+#
+#ESC z 2 p1 p2 p3 p4   draw quadrangle:
+#                      p1 = starting row
+#                      p2 = starting column
+#                      p3 = end row
+#                      p4 = end column
+#
+#ESC { p1 p2 p3 p4     configure main port
+#                      (baud, stop bits, parity, word length)
+#
+#ESC | p1 p2 text Ctrl-Y    program function key with 'text':
+#                        p1 = function key code:
+#                             '1' - ';'  normal f1- f11
+#                             '<' - 'F'  shifted f1 - f11
+#                        p2 = program mode:
+#                             1 = FDX
+#                             2 = LOC
+#                             3 = HDX
+#                        Ctrl-Y = terminator
+#                        (use Ctrl-P to escape ^P, ^Y )
+#
+#ESC } p1 p2 p3 p4     configure printer port
+#                      (baud, stop bits, parity, word length)
+#ESC ~           send system status
+#
+# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997
+#
+# Entry is by esr going solely on above information and is UNTESTED.
+# This actually looks a lot like a Televideo 9xx.
+# This entry uses page 0 and is monochrome; I'm not brave enough to try
+# to make color work without a test terminal.  The <am> capability is a guess.
+# The initialization string sets conversation mode, blinking underline cursor,
+# full duplex, parallel attribute mode, display user status line, white
+# foreground, black background, normal highlight.
+#
+icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372,
+       OTbs, am, hs,
+       cols#80, lines#24,
+       bel=^G, blink=\E[2ZZ, cbt=\EI, civis=\E.0, clear=\E*,
+       cnorm=\E.3, cr=^M,
+       csr=\E!%+%p1%{32}%+%p2%{32} cud1=\026, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{80}%m%{32}%+%c%p2%{80}%>%{32}%+%c,
+       cuu1=^K, cvvis=\E.1, dch1=\EW, dl1=\ER, home=^^, ht=^I,
+       hts=\E1, il1=\EE, invis=\E[1ZZ,
+       is1=\EC\E.3\EDF\EV1\Eg\E[0ZZ, nel=^_, rev=\E[4ZZ,
+       rmir=\Er, rmso=\E[%gh%{4}%^%Ph%gh%dZZ,
+       rmul=\E[%gh%{8}%^%Ph%gh%dZZ, rs2=\Eo1,
+       sgr=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ,
+       sgr0=\E[0ZZ, smir=\Eq, smso=\E[8ZZ, smul=\E[8ZZ, tbc=\E3,
+icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols,
+       rs2=\Eo1, use=icl6404,
+
+#### Interactive Systems Corp
+#
+# ISC used to sell OEMed and customized hardware to support ISC UNIX.
+# ISC UNIX still exists in 1995, but ISC itself is no more; they got
+# bought out by Sun.
+#
+
+# From: <cithep!eric>  Wed Sep 16 08:06:44 1981
+# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the
+# ":le=^_:" later overridden -- esr)
+intext|Interactive Systems Corporation modified owl 1200,
+       OTbs, am,
+       cols#80, it#8, lines#24, xmc#1,
+       bel=^G, cbt=^Y, clear=\014$<132>, cr=^M, cub1=^H, cud1=^J,
+       cuf1=^^, cup=\017%p1%{32}%+%c%p2%{32}%+%c, cuu1=^\,
+       dch1=\022$<5.5*>, dl1=\021$<5.5*>, ed=\026J$<5.5*>,
+       el=^Kp^R, ht=^I, il1=\020$<5.5*>, ind=^J, ip=$<5.5*>, kbs=^H,
+       kcub1=^_, kcud1=^J, kcuf1=^^, kcuu1=^\, kf0=^VJ\r, kf1=^VA\r,
+       kf2=^VB\r, kf3=^VC\r, kf4=^VD\r, kf5=^VE\r, kf6=^VF\r,
+       kf7=^VG\r, kf8=^VH\r, kf9=^VI\r, khome=^Z, rmir=^V<,
+       rmkx=^V9, rmso=^V#\s, smir=^V;, smkx=\036\:\264\026%%,
+       smso=^V$\,,
+intext2|intextii|INTERACTIVE modified owl 1251,
+       am, bw, ul,
+       cols#80, lines#24, xmc#0,
+       bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cud1=\E[B,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
+       dl1=\E[M, ed=\E[J, el=\E[K,
+       flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u,
+       hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S,
+       kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r,
+       kf0=\E@\r, kf1=\EP\r, kf2=\EQ\r, kf3=\ES\r, kf4=\ET\r,
+       kf5=\EU\r, kf6=\EV\r, kf7=\EW\r, kf8=\EX\r, kf9=\EY\r,
+       khome=\ER\r, lf0=REFRSH, lf1=DEL CH, lf2=TABSET, lf3=GOTO,
+       lf4=+PAGE, lf5=+SRCH, lf6=-PAGE, lf7=-SRCH, lf8=LEFT,
+       lf9=RIGHT, ri=\E[T, rmso=\E[2 D, rmul=\E[2 D, smso=\E[6 D,
+       smul=\E[18 D,
+
+#### Kimtron (abm, kt)
+#
+# Kimtron seems to be history, but as March 1998 these people are still
+# offering repair services for Kimtron equipment:
+#
+#    Com/Pair Monitor Service
+#    1105 N. Cliff Ave.
+#    Sioux Falls, South Dakota 57103
+#
+#    WATS voice:  1-800/398-4946
+#    POTS   fax: +1 605/338-8709
+#    POTS voice: +1 605/338-9650
+#         Email: <compair@sd.cybernex.net>
+#  Internet/Web: <http://www.com-pair.com>
+#
+# Kimtron entries include (undocumented) codes for: enter dim mode,
+# enter bold mode, enter reverse mode, turn off all attributes.
+#
+
+# Kimtron ABM 85 added by Dual Systems
+# (abm85: removed duplicated ":kd=^J:" -- esr)
+abm85|Kimtron ABM 85,
+       OTbs, am, bw, msgr,
+       cols#80, it#8, lines#24, xmc#1,
+       cbt=\EI, clear=\E*, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\Ey, el=\Et, ht=^I,
+       if=/usr/share/tabset/stdcrt, il1=\EE,
+       is2=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq, kbs=^H, kcub1=^H,
+       kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rmir=\Er, rmso=\Ek,
+       rmul=\Em, smir=\EQ, smso=\Ej, smul=\El,
+# Kimtron ABM 85H added by Dual Systems.
+# Some notes about the abm85h entries:
+# 1) there are several firmware revs of 85H in the world. Use abm85h-old for
+#    firmware revs prior to SP51
+# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the
+#    abm85e entry if it is in tvi920 emulation mode. They are incompatible
+#    in some places and NOT software settable i.e., <is2> can't fix it)
+# 3) In 85h mode, the arrow keys and special functions transmit when
+#    the terminal is in dup-edit, and work only locally in local-edit.
+#    Vi won't swallow `del char' for instance, but <smcup> turns on
+#    dup-edit anyway so that the arrow keys will work right. If the
+#    arrow keys don't work the way you like, change <smcup>, <rmcup>, and
+#    <is2>.  Note that 920E mode does not have software commands to toggle
+#    between dup and local edit, so you get whatever was set last on the
+#    terminal.
+# 4) <flash> attribute is nice, but seems too slow to work correctly
+#    (\Eb<pad>\Ed)
+# 5) Make sure `hidden' attributes are selected. If `embedded' attributes
+#    are selected, the <xmc@> entry should be removed.
+# 6) auto new-line should be on (selectable from setup mode only)
+#
+# From: Erik Fair <fair@ucbarpa>  Sun Oct 27 07:21:05 1985
+abm85h|Kimtron ABM 85H native mode,
+       hs,
+       xmc@,
+       bel=^G, cnorm=\E.4, cvvis=\E.2, dim=\E), dsl=\Ee, flash@,
+       fsl=^M, invis@,
+       is2=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El,
+       kcud1=^V, sgr0=\E(\EG0, smir=\EZ, tsl=\Eg\Ef, use=adm+sgr,
+       use=abm85,
+abm85e|Kimtron ABM 85H in 920E mode,
+       xmc@,
+       bel=^G, dim=\E), flash@,
+       is2=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em,
+       rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
+abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev.,
+       xmc@,
+       bel=^G, dim=\E),
+       is2=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF,
+       rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
+# From: <malman@bbn-vax.arpa>
+# (kt7: removed obsolete :ma=^V^J^L :" -- esr)
+kt7|kimtron model kt-7,
+       OTbs, am,
+       cols#80, it#8, lines#24,
+       cbt=\EI, clear=^Z, cub1=^H, cud1=^V, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\EY, el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
+       if=/usr/share/tabset/stdcrt, il1=\EE, invis@, is2=\El\E",
+       kbs=^H, kcbt=\EI, kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L,
+       kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r,
+       kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+       kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+       kich1=\EQ, kil1=\EE, tsl=\Ef, use=adm+sgr,
+# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the
+# other kt7 entry and the adjacent key capabilities).  Removed EE which is
+# identical to :mh:.  Removed :ES=\EGD: which is some kind of highlight
+# but we can't figure out what.
+kt7ix|kimtron model kt-7 or 70 in IX mode,
+       am, bw,
+       cols#80, it#8, lines#25,
+       acsc=jYk?lZm@nEqDt4uCvAwBx3, bel=^G, blink=\EG2, cbt=\EI,
+       civis=\E.0, clear=\E*, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V,
+       cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, fsl=^M,
+       home=^^, ht=^I, ich1=\EQ, il1=\EE, ind=^J,
+       is2=\EG0\E s\017\E~, kbs=^H, kcbt=\EI, kclr=\E*,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\ER,
+       ked=\EY, kel=\ET, kend=\EY, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
+       kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, knp=\EJ,
+       nel=^M^J, pulse=\EK, rmacs=\E%%, rmir=, rmso=\EG0, rmul=\EG0,
+       sgr0=\EG0, smacs=\E$, smir=, smso=\EG4, smul=\EG8, tsl=\Ef,
+
+#### Microdata/MDIS
+#
+# This was a line of terminals made by McDonnell-Douglas Information Systems.
+# These entries come direct from MDIS documentation.  I have edited them only
+# to move primary names of the form p[0-9] * to aliases, and to comment out
+# <rmacs>/<smacs> in a couple of entries without <acsc> strings.  I have
+# also removed the change history; the last version indicates this is
+# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989).
+#
+
+# McDonnell Information Systems Terminal Family History
+# =========================================
+#
+# Prism-1, Prism-2 and P99:
+#       Ancient Microdata and CMC terminals, vaguely like Adds Regent 25.
+#
+# Prism-4 and Prism-5:
+#       Slightly less ancient range of Microdata terminals. Follow-on from
+#       Prism-2, but with many enhancements. P5 has eight display pages.
+#
+# Prism-6:
+#       A special terminal for use with library systems, primarily in Germany.
+#       Limited numbers. Similar functionality to P5 (except attributes?).
+#
+# Prism-7, Prism-8 and Prism-9:
+#       More recent range of MDIS terminals, in which P7 and P8
+#       replace the P4 & P5, with added functionality, and P9 is the flagship.
+#       The P9 has two emulation modes - P8 and ANSI - and includes a
+#       large number of the DEC VT220 control sequences. Both
+#       P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats.
+#
+# Prism-12 and Prism-14:
+#       Latest range, functionally very similar to the P9.  The P14 has a
+#       black-on-white overscanning screen.
+#
+# The terminfo definitions given here are:
+#
+# p2      - Prism-2 (or Prism-1 or P99).
+#
+# p4      - Prism-4 (and older P7s & P8s).
+# p5      - Prism-5 (or Prism-6).
+#
+# p7      - Prism-7.
+# p8      - Prism-8 (in national or multinational mode).
+# p8-w    - 132 column version of p8.
+# p9      - Prism-9 in ANSI mode.
+# p9-w    - 132 column version of p9.
+# p9-8    - Prism-9 in Prism-8 emulation mode.
+# p9-8-w  - As p9-8, but with 132 columns.
+#
+# p12     - Prism-12 in ANSI mode.
+# p12-w   - 132 column version of p12.
+# p12-m   - Prism-12 in MDC emulation mode.
+# p12-m-w - As p12-m, but with 132 columns.
+# p14     - Prism-14 in ANSI mode.
+# p14-w   - 132 column version of p14.
+# p14-m   - Prism-14 in MDC emulation mode.
+# p14-m-w - As p14-m, but with 132 columns.
+#
+# p2: Prism-2
+# -----------
+#
+# Includes Prism-1 and basic P99 without SP or MP loaded.
+# The simplest form of Prism-type terminal.
+# Basic cursor movement and clearing operations only.
+# No video attributes.
+# Notes:
+#  Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
+#  value up, followed by backspace.
+#
+prism2|MDC Prism-2,
+       am, bw, msgr,
+       cols#80, lines#24,
+       bel=^G, clear=\014$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
+       cup=\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,
+       cuu1=^Z, ed=\EJ, el=\EK, home=^A,
+       hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
+       ind=^J, kbs=^H, khome=^A, vpa=\013%p1%{32}%+%c,
+
+# p4: Prism-4
+# -----------
+#
+# Includes early versions of P7 & P8.
+# Basic family definition for most Prisms (except P2 and P9 ANSI).
+# Notes:
+#  Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
+#  value up, followed by backspace.
+#  Cursor key definitions removed because they interfere with vi and csh keys.
+#
+prism4|p4|P4|MDC Prism-4,
+       am, bw, hs, mc5i, msgr,
+       cols#80, lines#24, wsl#72, xmc#1,
+       bel=^G, blink=^CB, civis=^]\344, clear=\014$<20>,
+       cnorm=^]\342, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
+       cup=\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,
+       cuu1=^Z, dim=^CA, dsl=\035\343\035\345, ed=\EJ, el=\EK,
+       fsl=^]\345, home=^A,
+       hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
+       ind=^J, invis=^CH, kbs=^H, khome=^A, mc0=\EU, mc4=\ET, mc5=\ER,
+       rev=^CD, rmso=^C\s, rmul=^C\s,
+       sgr=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;,
+       sgr0=^C\s, smso=^CD, smul=^CP, tsl=^]\343,
+       vpa=\013%p1%{32}%+%c,
+
+# p5: Prism-5
+# -----------
+#
+# Same definition as p4. Includes Prism-6 (not tested!).
+# Does not use any multi-page features.
+#
+prism5|p5|P5|MDC Prism-5,
+       use=p4,
+
+# p7: Prism-7
+# -----------
+#
+# Similar definition to p4. Uses ANSI cursor motion to avoid network problems.
+# Notes:
+#  Use p4 for very early models of P7.
+#  Rev-index removed; can't send nulls to terminal in 8-bit modes.
+#
+prism7|p7|P7|MDC Prism-7,
+       cup=\E[%i%p1%d;%p2%dH, hpa@, vpa@, use=p4,
+
+# p8: Prism-8
+# -----------
+#
+# Similar definition to p7. Uses ANSI cursor motion to avoid network problems.
+# Supports national and multinational character sets.
+# Notes:
+#  Alternate char set operations only work in multinational mode.
+#  Use p4 for very early models of P8.
+#  Rev-index removed; can't send nulls to terminal in 8-bit modes.
+# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
+#
+prism8|p8|P8|MDC Prism-8,
+       cup=\E[%i%p1%d;%p2%dH, hpa=\E[%i%p1%d`, is2=\E[<12h,
+       vpa=\E[%i%p1%dd, use=p4,
+
+# p8-w: Prism-8 in 132 column mode
+# --------------------------------
+#
+# 'Wide' version of p8.
+# Notes:
+#  Rev-index removed; can't send nulls to terminal in 8-bit modes.
+#
+prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode,
+       cols#132,
+       is2=\E[<12h\E[<14h, use=p8,
+
+# p9: Prism-9 in ANSI mode
+# -------------------------
+#
+# The "flagship" model of this generation of terminals.
+# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones.
+# Notes:
+#  Tabs only reset by "reset". Otherwise assumes default (8 cols).
+#  Fixes to deal with terminal firmware bugs:
+#  . 'ri' uses insert-line since rev index doesn't always
+#  . 'sgr0' has extra '0' since esc[m fails
+#  . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25
+#  Not covered in the current definition:
+#  . Labels
+#  . Programming Fn keys
+#  . Graphic characters (defaults correctly to vt100)
+#  . Padding values (sets xon)
+# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
+#
+prism9|p9|P9|MDC Prism-9 in ANSII mode,
+       am, bw, hs, mc5i, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3, wsl#72,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l,
+       clear=^L, cnorm=\E[<4h, cr=^M, csr=\E[%i%p1%d;%p2%d%%v,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dl=\E[%p1%dM, dl1=\E[M, dsl=\E[%}\024, ech=\E[%p1%dX,
+       ed=\E[J$<10>, el=\E[K, fsl=^T, home=\E[H, hpa=\E[%i%p1%d`,
+       ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       is2=\E[&p\E[<12l\E F, kbs=^H, kclr=^L, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[11~,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+       kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+       kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[H, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=^M^J,
+       prot=\E[32%{, rc=\E[%z, rep=\E[%p2%db%p1%c, rev=\E[7m,
+       ri=\E[L, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+       rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N,
+       sc=\E[%y,
+       sgr=\E[%{0}%?%p1%p3%|%t%{7}%+%;%?%p2%t%{2}%+%;%?%p4%t%{5}%+%;%?%p6%t%{1}%+%;m%?%p8%t\E[%{32}%+%d%%{%;%?%p9%t\016%e\017%;,
+       sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+       tbc=\E[2g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
+
+# p9-w: Prism-9 in 132 column mode
+# --------------------------------
+#
+# 'Wide' version of p9.
+#
+prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode,
+       cols#132,
+       is2=\E[&p\E[<12l\E F\E[<14h,
+       rs2=\E[&p\E[<12l\E F\E[<14h, use=p9,
+
+# p9-8: Prism-9 in P8 mode
+# ------------------------
+#
+# P9 terminal in P8 emulation mode.
+# Similar to p8 definition.
+# Insertion and deletion operations possible.
+#
+prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8,
+
+# p9-8-w: Prism-9 in P8 and 132 column modes
+# ------------------------------------------
+#
+# P9 terminal in P8 emulation mode and 132 column mode.
+#
+prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8-w,
+
+# p12: Prism-12 in ANSI mode
+# ---------------------------
+#
+# See p9 definition.
+#
+prism12|p12|P12|MDC Prism-12 in ANSI mode,
+       use=p9,
+
+# p12-w: Prism-12 in 132 column mode
+# ----------------------------------
+#
+# 'Wide' version of p12.
+#
+prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode,
+       use=p9-w,
+
+# p12-m: Prism-12 in MDC emulation mode
+# -------------------------------------
+#
+# P12 terminal in MDC emulation mode.
+# Similar to p8 definition.
+# Insertion and deletion operations possible.
+#
+prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode,
+       use=p9-8,
+
+# p12-m-w: Prism-12 in MDC emulation and 132 column modes
+# -------------------------------------------------------
+#
+# P12 terminal in MDC emulation mode and 132 column mode.
+#
+prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode,
+       use=p9-8-w,
+
+# p14: Prism-14 in ANSII mode
+# ---------------------------
+#
+# See p9 definition.
+#
+prism14|p14|P14|MDC Prism-14 in ANSII mode,
+       use=p9,
+
+# p14-w: Prism-14 in 132 column mode
+# ----------------------------------
+#
+# 'Wide' version of p14.
+#
+prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode,
+       use=p9-w,
+
+# p14-m: Prism-14 in MDC emulation mode
+# -------------------------------------
+#
+# P14 terminal in MDC emulation mode.
+# Similar to p8 definition.
+# Insertion and deletion operations possible.
+#
+prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode,
+       use=p9-8,
+
+# p14-m-w: Prism-14 in MDC emulation and 132 column modes
+# -------------------------------------------------------
+#
+# P14 terminal in MDC emulation mode and 132 column mode.
+#
+prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode,
+       use=p9-8-w,
+
+# End of McDonnell Information Systems Prism definitions
+
+# These things were popular in the Pick database community at one time
+# From: George Land <georgeland@aol.com> 24 Sep 1996
+p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition,
+       am, bw, hs, mir,
+       cols#80, lines#24, ma#1, wsl#78, xmc#1,
+       bel=^G, blink=^CB, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, dch1=\s^H, dim=^CA, dl1=^P,
+       ed=\EJ, el=\EK, home=^A, ind=^J, invis=^CH, kbs=^H, kcub1=^U,
+       kcud1=^J, kcuf1=^F, kcuu1=^Z, kdch1=\s^H, kdl1=^P, ked=\EJ,
+       kel=\EK, kf1=^A@\r, kf10=^AI\r, kf12=^AJ\r, kf13=^AK\r,
+       kf14=^AL\r, kf15=^AM\r, kf16=^AN\r, kf17=^AO\r, kf2=^AA\r,
+       kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r, khome=^A, lf1=F1, lf10=F10, lf2=F2,
+       lf3=F3, lf4=F4, lf5=F5, lf6=F6, lf7=F7, lf8=F8, lf9=F9, nel=^J^M,
+       pad=\0, rev=^CD, rmso=^C\s, rmul=^C\s, sgr0=^C\s, smso=^CE,
+       smul=^C0,
+
+#### Microterm (act, mime)
+#
+# The mime1 entries refer to the Microterm Mime I or Mime II.
+# The default mime is assumed to be in enhanced act iv mode.
+#
+
+# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>.  Prevents
+# freakout with out-of-range args on Sytek multiplexors.  No <smso=^N> and
+# <rmso=^N> since  it gets confused and it's too dim anyway.  No <ich1>
+# since Sytek insists ^S means xoff.
+# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr)
+act4|microterm|microterm act iv,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\014$<12/>, cr=^M, cub1=^H, cud1=^K, cuf1=^X,
+       cup=\024%p1%{24}%+%c%p2%p2%?%{47}%>%t%{48}%+%;%{80}%+%c,
+       cuu1=^Z, dch1=\004$<.1*/>, dl1=\027$<2.3*/>,
+       ed=\037$<2.2*/>, el=\036$<.1*/>, home=^],
+       il1=\001<2.3*/>, ind=^J, kcub1=^H, kcud1=^K, kcuf1=^X,
+       kcuu1=^Z,
+# The padding on :sr: and :ta: for act5 and mime is a guess and not final.
+# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)...
+# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr)
+act5|microterm5|microterm act v,
+       kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, ri=\EH$<3>, uc=^H\EA,
+       use=act4,
+# Mimes using brightness for standout.  Half bright is really dim unless
+# you turn up the brightness so far that lines show up on the screen.
+mime-fb|full bright mime1,
+       is2=^S\E, rmso=^S, smso=^Y, use=mime,
+mime-hb|half bright mime1,
+       is2=^Y\E, rmso=^Y, smso=^S, use=mime,
+# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode
+# the more plausible ":do=^J:" -- esr)
+# uc was at one time disabled to get around a curses bug, be wary of it
+mime|mime1|mime2|mimei|mimeii|microterm mime1,
+       OTbs, am,
+       cols#80, it#8, lines#24, vt#9,
+       bel=^G, clear=^]^C, cr=^M, cub1=^H, cud1=^J, cuf1=^X,
+       cup=\024%p1%{24}%+%c%p2%p2%?%{32}%>%t%{48}%+%;%{80}%+%c,
+       cuu1=^Z, dl1=\027$<80>, ed=^_, el=^^, home=^], ht=\011$<2>,
+       il1=\001$<80>, ind=^J, is2=^S\E^Q, kcub1=^H, kcud1=^K,
+       kcuf1=^X, kcuu1=^Z, ri=\022$<3>, uc=^U,
+# These termcaps (for mime2a) put the terminal in low intensity mode
+# since high intensity mode is so obnoxious.
+mime2a-s|microterm mime2a (emulating an enhanced soroc iq120),
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EI, dch1=\ED,
+       dl1=\027$<20*>, ed=\EJ$<20*>, el=\EK, home=^^,
+       il1=\001$<20*>, ind=^J, ip=$<2>, is2=\E), kcub1=^H, kcud1=^J,
+       kcuf1=^L, kcuu1=^K, ri=\EI, rmir=^Z, rmso=\E;, rmul=\E7,
+       smir=\EE, smso=\E\:, smul=\E6,
+# This is the preferred mode (but ^X can't be used as a kill character)
+mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52),
+       OTbs,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=^N,
+       dl1=\027$<20*>, ed=\EQ$<20*>, el=\EP, home=\EH, ht=^I,
+       il1=\001$<20*>, ind=^J, ip=$<2>, is2=^Y, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EA, rmir=^Z, rmso=\E9,
+       rmul=\E5, smir=^O, smso=\E8, smul=\E4,
+# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr)
+mime3a|mime1 emulating 3a,
+       am@,
+       kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, use=adm3a,
+mime3ax|mime-3ax|mime1 emulating enhanced 3a,
+       it#8,
+       dl1=\027$<80>, ed=^_, el=^X, ht=\011$<3>, il1=\001$<80>,
+       use=mime3a,
+# Wed Mar  9 18:53:21 1983
+# We run our terminals at 2400 baud, so there might be some timing problems at
+# higher speeds. The major improvements in this model are the terminal now
+# scrolls down and insert mode works without redrawing the rest of the line
+# to the right of the cursor. This is done with a bit of a kludge using the
+# exit graphics mode to get out of insert, but it does not appear to hurt
+# anything when using vi at least. If you have some users using act4s with
+# programs that use curses and graphics mode this could be a problem.
+mime314|mm314|mime 314,
+       am,
+       cols#80, lines#24,
+       clear=^L, cub1=^H, cuf1=^X, cup=\024%p1%c%p2%c, cuu1=^Z,
+       dch1=^D, dl1=^W, ed=^_, el=^^, home=^], ht=^I, il1=^A, kcub1=^H,
+       kcud1=^K, kcuf1=^X, kcuu1=^Z, rmir=^V, smir=^S,
+# Microterm mime 340 from University of Wisconsin
+mm340|mime340|mime 340,
+       cols#80, lines#24,
+       clear=\032$<12/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       dch1=\E#$<2.1*/>, dl1=\EV$<49.6/>, ed=\037$<2*/>,
+       el=\EL$<2.1/>, ht=^I, il1=\EU$<46/>, ind=^J, is2=\E\,,
+       kbs=^H, kcub1=^H, kcud1=^J, kcuu1=^K, nel=^M^J,
+# This came from University of Wisconsin marked "astro termcap for jooss".
+# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:";
+# also added <rmam>/<smam> based  on the init string -- esr)
+mt4520-rv|micro-term 4520 reverse video,
+       am, hs, msgr, xenl, xon,
+       cols#80, it#8, lines#24, wsl#80,
+       bel=^G, clear=\E[H\E[J, cnorm=\E[0V\E8, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h,
+       fsl=\E[?5l\E[?5h, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+       is2=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J,
+       kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
+       ll=\E[24;1H, nel=\EE, rc=\E8, rf=/usr/share/tabset/vt100,
+       ri=\EM, rmam=\E[?7l, rmso=\E[0m, rmul=\E[24m,
+       rs1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J,
+       sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
+       tbc=\E[g, tsl=\E[25;1H,
+
+# Fri Aug  5 08:11:57 1983
+# This entry works for the ergo 4000 with the following setups:
+# ansi,wraparound,newline disabled, xon/xoff disabled in both
+# setup a & c.
+#
+# WARNING!!! There are multiple versions of ERGO 4000 microcode
+# Be advised that very early versions DO NOT WORK RIGHT !!
+# Microterm does have a ROM exchange program- use it or lose big
+# (ergo400: added <rmam>/<smam> based on the init string -- esr)
+ergo4000|microterm ergo 4000,
+       da, db, msgr,
+       cols#80, lines#66,
+       bel=^G, clear=\E[H\E[2J$<80>, cr=^M, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       dch1=\E[1P$<80>, dl1=\E[1M$<5*>, ed=\E[0J$<15>,
+       el=\E[0K$<13>, ht=^I, il1=\E[1L$<5*>, ind=\ED$<20*>,
+       is2=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h$<300>,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
+       kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=pf1, lf2=pf2, lf3=pf3,
+       lf4=pf4, ri=\EM$<20*>, rmam=\E[?7l, rmir=\E[4l,
+       rmkx=\E=$<4>, rmso=\E[m$<20>, sgr0=\E[m$<20>,
+       smam=\E[?7m, smir=\E[4h$<6>, smkx=\E=$<4>,
+       smso=\E[7m$<20>,
+
+#### NCR
+#
+# NCR's terminal group was merged with AT&T's when AT&T bought the company.
+# For what happened to that group, see the ADDS section.
+#
+# There is an NCR4103 terminal that's just a re-badged Wyse-50.
+#
+
+# The following vendor-supplied termcaps were captured from the Boundless
+# Technologies site, 8 March 1998.  I removed all-upper-case names that were
+# identical, except for case, to lower-case ones.  I also uncommented the acsc
+# capabilities.X
+#
+# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
+# DEC vt200/300 with color capabilities added.
+ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
+       colors#8, pairs#64,
+       op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       use=ncr260vt300an,
+# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
+# DEC vt200/300 with color capabilities added.
+ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
+       colors#8, pairs#64,
+       op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       use=ncr260vt300wan,
+# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
+# DEC vt200/300 with color capabilities added.
+ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard,
+       colors#8, pairs#64,
+       op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       use=ncr260vt300pp,
+# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a
+# DEC vt200/300 with color capabilities added.
+ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode,
+       colors#8, pairs#64,
+       op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       use=ncr260vt300wpp,
+# This definition for ViewPoint supports several attributes.  This means
+# that it has magic cookies (extra spaces where the attributes begin).
+# Some applications do not function well with magic cookies.  The System
+# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
+# If supporting various attributes is not vital, 'xmc#1' and the extra
+# attributes can be removed.
+# Mapping to ASCII character set ('acsc' capability) can also be
+# restored if needed.
+ncr260vppp|NCR 2900_260 viewpoint,
+       am, bw, hs, km, mc5i, mir, msgr, xon,
+       cols#80, lines#24, nlab#32, xmc#1,
+       acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+       cbt=\EI, civis=\E`0, clear=\014$<40>, cnorm=\E`5,
+       cr=\r$<2>, cub1=\010$<2>, cud1=\n$<2>, cuf1=\006$<2>,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>,
+       dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c, ed=\Ek$<2>,
+       el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I, hts=\E1,
+       il1=\EM$<2>, ind=\n$<2>, invis=\EG1,
+       is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
+       kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ,
+       kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=^J, kcuf1=^F,
+       kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=^B\:\r,
+       kf11=^B;\r, kf12=^B<\r, kf13=^B=\r, kf14=^B>\r, kf15=^B?\r,
+       kf16=^B@\r, kf17=^B!\r, kf18=^B"\r, kf19=^B#\r, kf2=^B2\r,
+       kf20=^B$\r, kf21=\002%^M, kf22=^B&\r, kf23=^B'\r,
+       kf24=^B(\r, kf25=^B)\r, kf26=^B*\r, kf27=^B+\r,
+       kf28=^B\,\r, kf29=^B-\r, kf3=^B3\r, kf30=^B.\r, kf31=^B/\r,
+       kf32=^B0\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r,
+       kf8=^B8\r, kf9=^B9\r, khome=^A, kich1=\Eq, knp=\EJ, kpp=\EJ,
+       kprt=\EP, ll=\001$<5>, mc0=\EP$<100>, mc4=^T, mc5=^R,
+       mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>,
+       nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003,
+       rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
+       rs2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
+       sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq,
+       smso=\EG4, smul=\EG8, smxon=\Ec21, tsl=\EF,
+ncr260vpwpp|NCR 2900_260 viewpoint wide mode,
+       cols#132,
+       cup=\Ea%i%p1%dR%p2%dC$<30>,
+       is2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
+       rs2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
+       use=ncr260vppp,
+ncr260vt100an|NCR 2900_260 vt100 with ansi kybd,
+       am, hs, mir, msgr, xenl, xon,
+       cols#80, lines#24, nlab#32,
+       acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+       blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<5>,
+       cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
+       cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
+       cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
+       cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
+       dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
+       ech=\E[%p1%dX, ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>,
+       fsl=\E[0$}, home=\E[H$<1>, hpa=\E[%p1%dG$<40>, ht=^I,
+       hts=\EH, ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>,
+       il1=\E[L$<5>, ind=\ED$<5>, indn=\E[%p1%dE$<5>,
+       invis=\E[8m,
+       is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kdch1=\E[3~, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
+       knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, nel=\EE$<5>,
+       rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=^O, rmir=\E[4l,
+       rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m,
+       rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
+       sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g,
+       tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, use=vt220+keypad,
+ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd,
+       cols#132,
+       cup=\E[%i%p1%d;%p2%dH$<30>,
+       is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       use=ncr260vt100an,
+ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd,
+       is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
+       kend=\E[5~, khome=\E[2~, kich1=\E[1~, knp=\E[6~, kpp=\E[3~,
+       lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>,
+       rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       smkx=\E=, use=ncr260vt100an,
+ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+  kybd,
+       cols#132,
+       cup=\E[%i%p1%d;%p2%dH$<30>,
+       is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       use=ncr260vt100pp,
+ncr260vt200an|NCR 2900_260 vt200 with ansi kybd,
+       am, hs, mir, msgr, xenl, xon,
+       cols#80, lines#24, nlab#32,
+       acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+       blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
+       csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
+       cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
+       cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
+       cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
+       cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
+       dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
+       ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
+       fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
+       ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
+       ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
+       is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf2=\EOQ, kf20=\E[34~, kf21=\E[31~, kf22=\E[32~,
+       kf23=\E[33~, kf24=\E[34~, kf25=\E[35~, kf26=\E[1~,
+       kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR, kf30=\E[5~,
+       kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~,
+       kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
+       kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
+       mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
+       ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l,
+       rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+       rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
+       sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
+       smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+       tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
+       use=vt220+keypad,
+ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd,
+       cols#132,
+       cup=\E[%i%p1%d;%p2%dH$<30>,
+       is2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
+       rs2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
+       use=ncr260vt200an,
+ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd,
+       ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
+       kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
+       use=ncr260vt200an,
+ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+  kybd,
+       cols#132,
+       cup=\E[%i%p1%d;%p2%dH$<30>,
+       is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+       use=ncr260vt200pp,
+ncr260vt300an|NCR 2900_260 vt300 with ansi kybd,
+       am, hs, mir, msgr, xenl, xon,
+       cols#80, lines#24, nlab#32,
+       acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+       blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
+       csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
+       cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
+       cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
+       cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
+       cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
+       dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
+       ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
+       fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
+       ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
+       ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
+       is2=\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>$<200>,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~,
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+       kf20=\E[34~, kf21=\E[31~, kf22=\E[32~, kf23=\E[33~,
+       kf24=\E[34~, kf25=\E[35~, kf26=\E[1~, kf27=\E[2~,
+       kf28=\E[3~, kf29=\E[4~, kf30=\E[5~, kf31=\E[6~, kf32=\E[7~,
+       kf33=\E[8~, kf34=\E[9~, kf35=\E[10~, kf5=\E[M, kf6=\E[17~,
+       kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
+       khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       krdo=\E[29~, kslt=\E[4~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
+       nel=\EE, rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=\017$<20>,
+       rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+       rmul=\E[24m,
+       rs2=\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>$<200>,
+       sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
+       sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
+       smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+       tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
+       use=vt220+keypad,
+ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd,
+       cols#132,
+       cup=\E[%i%p1%d;%p2%dH$<30>,
+       is2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
+       rs2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
+       use=ncr260vt300an,
+ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd,
+       ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
+       kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
+       use=ncr260vt300an,
+NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+  kybd,
+       cols#132,
+       cup=\E[%i%p1%d;%p2%dH$<30>,
+       is2=\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>$<200>,
+       rs2=\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>$<200>,
+       use=ncr260vt300pp,
+# This terminfo file contains color capabilities for the Wyse325 emulation of
+# the NCR 2900/260C color terminal.  Because of the structure of the command
+# (escape sequence) used to set color attributes, one of the fore/background
+# colors must be preset to a given value. I have set the background color to
+# black.  The user can change this setup by altering the last section of the
+# 'setf' definition.  The escape sequence to set color attributes is
+#              ESC d y <foreground_color> <background_color> 1
+# In addition, the background color can be changed through the desk accessories.
+# The capablitiy 'op' sets colors to green on black (default combination).
+#
+# NOTE:  The NCR Unix System Administrator's Shell will not function properly
+#          if the 'pairs' capability is defined. Un-Comment the 'pairs'
+#          capability and recompile if you wish to have it included.
+#
+ncr260wy325pp|NCR 2900_260 wyse 325,
+       am, bw, hs, km, mc5i, mir, msgr, xon,
+       colors#16, cols#80, lines#24, ncv#33, nlab#32,
+       acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+       cbt=\EI, civis=\E`0, clear=\E*$<10>, cnorm=\E`1, cr=^M,
+       cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
+       cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
+       ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<5>, ht=^I,
+       hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
+       is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
+       kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI,
+       kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kend=\ET,
+       kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r,
+       kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r,
+       kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r,
+       kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r,
+       kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, kf30=^Am\r, kf31=^An\r,
+       kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ,
+       kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
+       mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
+       nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
+       rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
+       rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       setb=\s,
+       setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{64}%e%p1%{8}%=%t%{57}%e%p1%{9}%=%t%{58}%e%p1%{10}%=%t%{59}%e%p1%{11}%=%t%{60}%e%p1%{12}%=%t%{61}%e%p1%{13}%=%t%{62}%e%p1%{14}%=%t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>,
+       sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/,
+       smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
+       tsl=\EF,
+ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode,
+       cols#132,
+       cup=\Ea%i%p1%dR%p2%dC$<30>,
+       is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       use=ncr260wy325pp,
+# This definition for Wyse 350 supports several attributes.  This means
+# that it has magic cookies (extra spaces where the attributes begin).
+# Some applications do not function well with magic cookies.  The System
+# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
+# If supporting various attributes is not vital, 'xmc#1' and the extra
+# attributes can be removed.
+# Mapping to ASCII character set ('acsc' capability) can also be
+# restored if needed.
+# In addition, color capabilities have been added to this file.  The drawback,
+# however, is that the background color has to be black.  The foreground colors
+# are numbered 0 through 15.
+#
+# NOTE:  The NCR Unix System Administrator's Shell does not function properly
+#          with the 'pairs' capability defined as below.  If you wish to
+#          have it included, Un-comment it and recompile (using 'tic').
+#
+ncr260wy350pp|NCR 2900_260 wyse 350,
+       am, bw, hs, km, mc5i, mir, msgr, xon,
+       colors#16, cols#80, lines#24, ncv#33, nlab#32, pairs#16, xmc#1,
+       acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+       cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
+       cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, cuu1=\013$<5>,
+       cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
+       ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<10>, ht=^I,
+       hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
+       is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
+       kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
+       kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
+       kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
+       kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
+       kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
+       kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
+       kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
+       kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
+       khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
+       mc0=\EP$<10>, mc4=^T, mc5=^R,
+       mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<20>,
+       nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
+       rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
+       rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       setb=\s,
+       setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{102}%e%p1%{8}%=%t%{97}%e%p1%{9}%=%t%{98}%e%p1%{10}%=%t%{99}%e%p1%{11}%=%t%{101}%e%p1%{12}%=%t%{106}%e%p1%{13}%=%t%{110}%e%p1%{14}%=%t%{111}%e%p1%{15}%=%t%{56}%;\Em0%c$<100>,
+       sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, smam=\Ed/,
+       smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
+       tsl=\EF,
+ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode,
+       cols#132,
+       cup=\Ea%i%p1%dR%p2%dC$<30>,
+       is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
+       rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
+       use=ncr260wy350pp,
+# This definition for Wyse 50+ supports several attributes.  This means
+# that it has magic cookies (extra spaces where the attributes begin).
+# Some applications do not function well with magic cookies.  The System
+# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
+# If supporting various attributes is not vital, 'xmc#1' and the extra
+# attributes can be removed.
+# Mapping to ASCII character set ('acsc' capability) can also be
+# restored if needed.
+# (ncr260wy50+pp: originally contained commented-out
+# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
+ncr260wy50+pp|NCR 2900_260 wyse 50+,
+       am, bw, hs, km, mc5i, mir, msgr, xon,
+       cols#80, lines#24, nlab#32, xmc#1,
+       acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
+       cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
+       cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>,
+       cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
+       ed=\EY$<5>, el=\ET$<5>, fsl=^M, home=\036$<10>,
+       ht=\011$<5>, hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>,
+       invis=\EG1,
+       is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
+       kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
+       kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
+       kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
+       kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
+       kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
+       kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
+       kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
+       kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
+       khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
+       mc0=\EP$<10>, mc4=^T, mc5=^R,
+       mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
+       nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
+       rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
+       rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq,
+       smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>, tsl=\EF,
+ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode,
+       cols#132,
+       cup=\Ea%i%p1%dR%p2%dC$<30>,
+       is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
+       rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
+       use=ncr260wy50+pp,
+ncr260wy60pp|NCR 2900_260 wyse 60,
+       am, bw, hs, km, mc5i, mir, msgr, xon,
+       cols#80, lines#24, nlab#32,
+       acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+       cbt=\EI$<15>, civis=\E`0, clear=\E*$<100>, cnorm=\E`1,
+       cr=^M, cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
+       cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
+       ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<25>,
+       ht=\011$<15>, hts=\E1$<15>, il1=\EE$<5>, ind=\n$<5>,
+       invis=\EG1,
+       is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
+       kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK,
+       kcbt=\EI$<15>, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
+       kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+       kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+       kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r,
+       kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r,
+       kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r,
+       kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r,
+       kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+       kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
+       mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>,
+       nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
+       rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
+       rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/,
+       smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>,
+       tsl=\EF,
+ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode,
+       cols#132,
+       cup=\Ea%i%p1%dR%p2%dC$<30>,
+       is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+       use=ncr260wy60pp,
+ncr160vppp|NCR 2900_160 viewpoint,
+       use=ncr260vppp,
+ncr160vpwpp|NCR 2900_160 viewpoint wide mode,
+       use=ncr260vpwpp,
+ncr160vt100an|NCR 2900_160 vt100 with ansi kybd,
+       use=ncr260vt100an,
+ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd,
+       use=ncr260vt100pp,
+ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd,
+       use=ncr260vt100wan,
+ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+  kybd,
+       use=ncr260vt100wpp,
+ncr160vt200an|NCR 2900_160 vt200 with ansi kybd,
+       use=ncr260vt200an,
+ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd,
+       use=ncr260vt200pp,
+ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd,
+       use=ncr260vt200wan,
+ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+  kybd,
+       use=ncr260vt200wpp,
+ncr160vt300an|NCR 2900_160 vt300 with ansi kybd,
+       use=ncr260vt300an,
+ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd,
+       use=ncr260vt300pp,
+ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd,
+       use=ncr260vt300wan,
+ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+  kybd,
+       use=ncr260vt300wpp,
+ncr160wy50+pp|NCR 2900_160 wyse 50+,
+       use=ncr260wy50+pp,
+ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode,
+       use=ncr260wy50+wpp,
+ncr160wy60pp|NCR 2900_160 wyse 60,
+       use=ncr260wy60pp,
+ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode,
+       use=ncr260wy60wpp,
+ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal,
+       am, hs, mc5i, mir, msgr, xon,
+       cols#80, it#8, lines#24, nlab#32,
+       acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~,
+       bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>,
+       clear=\E[2J\E[1;1H$<300>, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr$<100>, cub=\E[%p1%dD$<30>,
+       cub1=\E[D$<2>, cud=\E[%p1%dB$<30>, cud1=\E[B$<2>,
+       cuf=\E[%p1%dC$<30>, cuf1=\E[C$<2>,
+       cup=\E[%i%p1%d;%p2%dH$<100>, cuu=\E[%p1%dA$<30>,
+       cuu1=\E[A$<2>, dch=\E[%p1%dP$<40>, dch1=\E[1P$<10>,
+       dl=\E[%p1%dM$<70>, dl1=\E[M$<40>, dsl=\E[31l$<25>,
+       ed=\E[0J$<300>, el=\E[0K$<30>, el1=\E[1K$<30>,
+       enacs=\E(B\E)0$<40>, fsl=1$<10>, home=\E[H$<2>$<80>,
+       ht=^I, hts=\EH, il=\E[%p1%dL$<80>, il1=\E[B\E[L$<80>,
+       ind=\ED,
+       is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0$<200>,
+       kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kbs=^H, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kent=^M, kf1=\EOP,
+       kf2=\EOQ, kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE,
+       rc=\E8, rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>,
+       rmir=\E[4l$<80>, rmso=\E[0m$<30>, rmul=\E[0m$<30>,
+       rs2=\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$<200>,
+       sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>,
+       sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>,
+       smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>,
+       tsl=\E[>+1$<70>,
+ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal,
+       cols#132,
+       is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0$<200>,
+       rs2=\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$<200>,
+       use=ncrvt100an,
+#
+# Vendor-supplied NCR termcaps end here
+
+# NCR7900 DIP switches:
+#
+# Switch A:
+# 1-4 - Baud Rate
+# 5   - Parity (Odd/Even)
+# 6   - Don't Send or Do Send Spaces
+# 7   - Parity Enable
+# 8   - Stop Bits (One/Two)
+#
+# Switch B:
+# 1   - Upper/Lower Shift
+# 2   - Typewriter Shift
+# 3   - Half Duplex / Full Duplex
+# 4   - Light/Dark Background
+# 5-6 - Carriage Return Without / With Line Feed
+# 7   - Extended Mode
+# 8   - Suppress Keyboard Display
+#
+# Switch C:
+# 1   - End of line entry disabled/enabled
+# 2   - Conversational mode / (Local?) Mode
+# 3   - Control characters displayed / not displayed
+# 4   - (2-wire?) / 4-wire communications
+# 5   - RTS on and off for each character
+# 6   - (50Hz?) / 60 Hz
+# 7   - Exit after level zero diagnostics
+# 8   - RS-232 interface
+#
+# Switch D:
+# 1   - Reverse Channel (yes / no)
+# 2   - Manual answer (no / yes)
+# 3-4 - Cursor appearance
+# 5   - Communication Rate
+# 6   - Enable / Disable EXT turnoff
+# 7   - Enable / Disable CR turnoff
+# 8   - Enable / Disable backspace
+#
+# Since each attribute parameter is 0 or 1, we shift each attribute (standout,
+# reverse, blink, dim, and underline) the appropriate number of bits (by
+# multiplying the 0 or 1 by a correct factor to shift) so the bias character,
+# '@' is (effectively) "or"ed with each attribute to generate the proper third
+# character in the <ESC>0 sequence.  The <sgr> string implements the following
+# equation:
+#
+# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17))    =>
+# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17))
+#
+#      Where:  P1 <==> Standout attribute parameter
+#              P2 <==> Underline attribute parameter
+#              P3 <==> Reverse attribute parameter
+#              P4 <==> Blink attribute parameter
+#              P5 <==> Dim attribute parameter
+# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO.
+ncr7900i|ncr7900|ncr 7900 model 1,
+       am, bw, ul,
+       cols#80, lines#24, xmc#1,
+       bel=^G, blink=\E0B, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
+       cup=\E1%p2%c%p1%c, cuu1=^Z, dim=\E0A, ed=\Ek, el=\EK, ind=^J,
+       is2=\E0@\010\E3\E4\E7, kcub1=^U, kcud1=^J, kcuf1=^F,
+       kcuu1=^Z, khome=^A, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=\E0@,
+       rmul=\E0@,
+       sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c,
+       sgr0=\E0@, smso=\E0Q, smul=\E0`,
+ncr7900iv|ncr 7900 model 4,
+       am, bw, eslok, hs,
+       cols#80, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
+       cup=\013%p1%{64}%+%c\E\005%p2%02d, dl1=\E^O, dsl=\Ey1,
+       fsl=\Ek\Ey5, home=\013@\E^E00, il1=\E^N, ind=^J, kbs=^H,
+       kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET,
+       kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
+       khome=\EH, lf6=blue, lf7=red, lf8=white, nel=^M^J,
+       tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo,
+# Warning: This terminal will lock out the keyboard when it receives a CTRL-D.
+#         The user can enter a CTRL-B to get out of this locked state.
+# In <hpa>, we want to output the character given by the formula:
+#              ((col / 10) * 16) + (col % 10)          where "col" is "p1"
+ncr7901|ncr 7901 model,
+       am, bw, ul,
+       cols#80, lines#24,
+       bel=^G, blink=\E0B, civis=^W, clear=^L, cnorm=^X, cr=^M,
+       cub1=^H, cud1=^J, cuf1=^F,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dim=\E0A,
+       ed=\Ek, el=\EK,
+       hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c, ind=^J,
+       is2=\E4^O, kclr=^L, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
+       khome=^H, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=^O, rmul=^O,
+       sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016,
+       sgr0=^O, smso=\E0Q\016, smul=\E0`\016,
+       vpa=\013%p1%{64}%+%c,
+
+# Newbury Data Recording Limited (Newbury Data)
+#
+# Have been manufacturing and reselling  various peripherals for a long time
+# They don't make terminals anymore, but are still in business (in 2007).
+# Their e-mail address is at ndsales@newburydata.co.uk
+# and their post address is:
+#
+# Newbury Data Recording Ltd,
+# Premier Park, Road One,
+# Winsford, Cheshire, CW7 3PT
+#
+# Their technical support is still good, they sent me for free a printed copy
+# of the 9500 user manual and I got it just 1 week after I first contacted them
+# (in 2005)!
+
+# NDR 9500
+# Manufactured in the early/mid eighties, behaves almost the same as a
+# Televideo 950.  Take a 950, change its cabinet for a more 80s-ish one (but
+# keep the same keyboard layout), add an optional 25-line mode, replace the DIP
+# switches with a menu and remove the "lock line" feature (ESC !  1 and ESC ! 
+# 2), here is the NDR 9500.  Even the line-lock, albeit disabled, is
+# recognized:  if you type in "ESC !", the next (third) character is not
+# echoed, showing that the terminal was actually waiting for a parameter!
+ndr9500|nd9500|Newbury Data 9500,
+       am, bw, hs, mc5i, mir, msgr, ul, xon,
+       cols#80, lines#24, wsl#79,
+       acsc=qKnImAjDwNuLtMvOlBkCxJ, bel=^G, cbt=\EI, civis=\E.0,
+       clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
+       flash=\Eb$<50/>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
+       ich1=\EQ, il1=\EE, ind=^J, is2=\Ew\E'\EDF\El\Er\EO,
+       kDC=\Er, kDL=\EO, kEOL=\Et, kIC=\Eq, kcbt=\EI, kclr=^Z,
+       kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
+       ked=\EY, kel=\ET, kent=^M, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+       kf12=^A`\r, kf13=^Aa\r, kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r,
+       kf17=^Ae\r, kf18=^Af\r, kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r,
+       kf21=^Ai\r, kf22=^Aj\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+       kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+       kich1=\EQ, kil1=\EE, kprt=\EP, mc4=\Ea, mc5=\E`, nel=^_,
+       pfloc=\E|%{48}%p1%+%c2%p2\031,
+       pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej,
+       rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
+       sgr=\E%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
+       sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
+       tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H,
+
+ndr9500-nl|NDR 9500 with no status line,
+       hs@,
+       wsl@,
+       dsl@, fsl@, tsl@, use=ndr9500,
+
+ndr9500-25|NDR 9500 with 25th line enabled,
+       lines#25, use=ndr9500,
+
+ndr9500-25-nl|NDR 9500 with 25 lines and no status line,
+       lines#25, use=ndr9500-nl,
+
+ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink),
+       msgr@,
+       xmc#1,
+       blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0,
+       sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c,
+       sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500,
+
+ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
+       lines#25, use=ndr9500-mc,
+
+ndr9500-mc-nl|NDR 9500 with magic cookies and no status line,
+       hs@,
+       wsl@,
+       dsl@, fsl@, tsl@, use=ndr9500-mc,
+
+ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line,
+       lines#25, use=ndr9500-mc-nl,
+
+#### Perkin-Elmer (Owl)
+#
+# These are official terminfo entries from within Perkin-Elmer.
+#
+
+bantam|pe550|pe6100|perkin elmer 550,
+       OTbs,
+       cols#80, lines#24,
+       bel=^G, clear=\EK$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
+       el=\EI$<20>, home=\EH, ind=^J, ll=\EH\EA,
+fox|pe1100|perkin elmer 1100,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
+       cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
+       ed=\EJ$<5.5*>, el=\EI, flash=\020\002$<200/>\020\003,
+       home=\EH, hts=\E1, ind=^J, ll=\EH\EA, tbc=\E3,
+owl|pe1200|perkin elmer 1200,
+       OTbs, am, in,
+       cols#80, lines#24,
+       bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
+       cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
+       dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
+       el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
+       hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
+       kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
+       kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
+       rmso=\E!\0, sgr0=\E!\0, smso=\E!^H, tbc=\E3,
+pe1251|pe6300|pe6312|perkin elmer 1251,
+       am,
+       cols#80, it#8, lines#24, pb#300, vt#8, xmc#1,
+       bel=^G, clear=\EK$<332>, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
+       cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
+       ed=\EJ$<20*>, el=\EI$<10*>, home=\EH, hts=\E1, ind=^J,
+       kf0=\ERA, kf1=\ERB, kf10=\ERK, kf2=\ERC, kf3=\ERD, kf4=\ERE,
+       kf5=\ERF, kf6=\ERG, kf7=\ERH, kf8=\ERI, kf9=\ERJ, tbc=\E3,
+# (pe7000m: this had
+#      rmul=\E!\0, smul=\E!\040,
+# which is probably wrong, it collides with kf0
+pe7000m|perkin elmer 7000 series monochrome monitor,
+       am,
+       cols#80, lines#24,
+       bel=^G, cbt=\E!Y, clear=\EK, cr=^M, cub1=\ED, cud1=\EB,
+       cuf1=\EC, cup=\ES%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
+       ed=\EJ, el=\EI, home=\EH, ind=^J,
+       is1=\E!\0\EW  7o\Egf\ES7\s, kbs=^H, kcub1=\E!V,
+       kcud1=\E!U, kcuf1=\E!W, kcuu1=\E!T, kf0=\E!\0, kf1=\E!^A,
+       kf10=\E!^J, kf2=\E!^B, kf3=\E!^C, kf4=\E!^D, kf5=\E!^E,
+       kf6=\E!^F, kf7=\E!^G, kf8=\E!^H, kf9=\E!^I, khome=\E!S,
+       ll=\ES7\s, ri=\ER,
+pe7000c|perkin elmer 7000 series colour monitor,
+       is1=\E!\0\EW  7o\Egf\Eb0\Ec7\ES7\s, rmso=\Eb0,
+       rmul=\E!\0, smso=\Eb2, smul=\E!\s, use=pe7000m,
+
+#### Sperry Univac
+#
+# Sperry Univac has merged with Burroughs to form Unisys.
+#
+
+# This entry is for the Sperry UTS30 terminal running the TTY
+# utility under control of CP/M Plus 1R1. The functionality
+# provided is comparable to the DEC vt100.
+# (uts30: I added <rmam>/<smam> based on the init string -- esr)
+uts30|sperry uts30 with cp/m@1R1,
+       am, bw, hs,
+       cols#80, lines#24, wsl#40,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L,
+       cnorm=\ES, cr=^M, csr=\EU%p1%{32}%+%c%p2%{32}%+%c,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\EB,
+       cuf=\E[%p1%dC, cuf1=\EC, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EM,
+       dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=^M, home=\E[H,
+       ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN,
+       ind=^J, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H, kbs=^H,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\E[H,
+       rc=\EX, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EI,
+       rin=\E[%p1%dA, rmacs=\Ed, rmam=\E[?7l, rmso=\E[m,
+       rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+       sc=\EW, sgr0=\E[m, smacs=\EF, smam=\E[?7m, smso=\E[7m,
+       smul=\E[4m, tsl=\E], uc=\EPB,
+
+#### Tandem
+#
+# Tandem builds these things for use with its line of fault-tolerant
+# transaction-processing computers.  They aren't generally available
+# on the merchant market, and so are fairly uncommon.
+#
+
+tandem6510|adm3a repackaged by Tandem,
+       use=adm3a,
+
+# A funny series of terminal that TANDEM uses.  The actual model numbers
+# have a fourth digit after 653 that designates minor variants.  These are
+# natively block-mode and rather ugly, but they have a character mode which
+# this doubtless(?) exploits.  There is a 6520 that is slightly dumber.
+# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also,
+# removed <if=/usr/share/tabset/tandem653>, no such file -- esr)
+tandem653|t653x|Tandem 653x multipage terminal,
+       OTbs, am, da, db, hs,
+       cols#80, lines#24, wsl#64, xmc#1,
+       clear=\EI, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\023%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dsl=\Eo\r,
+       ed=\EJ, el=\EK, fsl=^M, home=\EH, ind=\ES, ri=\ET, rmso=\E6\s,
+       rmul=\E6\s, sgr0=\E6\s, smso=\E6$, smul=\E60, tsl=\Eo,
+
+#### Tandy/Radio Shack
+#
+# Tandy has a line of VDTs distinct from its microcomputers.
+#
+
+dmterm|deskmate terminal,
+       am, bw,
+       cols#80, lines#24,
+       bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=^M, cub1=^H,
+       cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=\EA, dch1=\ES, dl1=\ER, ed=\EJ, el=\EK, home=\EH, ht=^I,
+       ich1=\EQ, il1=\EP, ind=\EX, invis@, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, kf0=\E1, kf1=\E2, kf2=\E3, kf3=\E4,
+       kf4=\E5, kf5=\E6, kf6=\E7, kf7=\E8, kf8=\E9, kf9=\E0,
+       khome=\EH, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6,
+       lf6=f7, lf7=f8, lf8=f9, lf9=f10, ll=\EE, rmul@, smul@,
+       use=adm+sgr,
+dt100|dt-100|Tandy DT-100 terminal,
+       xon,
+       cols#80, lines#24, xmc#1,
+       acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
+       clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
+       dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
+       il1=\E[L, ind=^J, is2=\E[?3l\E)0\E(B, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[?3i,
+       kf10=\E[?5i, kf2=\E[2i, kf3=\E[@, kf4=\E[M, kf5=\E[17~,
+       kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, khome=\E[H,
+       knp=\E[29~, kpp=\E[28~, lf1=f1, lf2=f2, lf3=f3, lf4=f4, lf5=f5,
+       lf6=f6, lf7=f7, lf8=f8, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
+dt100w|dt-100w|Tandy DT-100 terminal (wide mode),
+       cols#132, use=dt100,
+dt110|Tandy DT-110 emulating ansi,
+       xon,
+       cols#80, lines#24,
+       acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
+       clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[0B, cuf1=\E[C,
+       cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[0A, dch1=\E[0P,
+       dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H,
+       ht=^I, ich1=\E[0@, il1=\E[0L, ind=^J, is2=\E[?3l\E)0\E(B,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K,
+       kf1=\E[1~, kf10=\E[10~, kf2=\E[2~, kf3=\E[3~, kf4=\E[4~,
+       kf5=\E[5~, kf6=\E[6~, kf7=\E[7~, kf8=\E[8~, kf9=\E[9~,
+       khome=\E[G, kich1=\E[@, knp=\E[26~, kpp=\E[25~, lf0=f1,
+       lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf8=f9,
+       lf9=f10, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+       smacs=^N, smso=\E[7m, smul=\E[4m,
+pt210|TRS-80 PT-210 printing terminal,
+       hc, os,
+       cols#80,
+       bel=^G, cr=^M, cud1=^J, ind=^J,
+
+#### Tektronix (tek)
+#
+# Tektronix tubes are graphics terminals.  Most of them use modified
+# oscilloscope technology incorporating a long-persistence green phosphor,
+# and support vector graphics on a main screen with an attached "dialogue
+# area" for interactive text.
+#
+
+tek|tek4012|tektronix 4012,
+       OTbs, os,
+       cols#75, lines#35,
+       bel=^G, clear=\E\014$<1000>, cr=^M, cub1=^H, cud1=^J,
+       ff=\014$<1000>, is2=\E^O,
+# (tek4013: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
+tek4013|tektronix 4013,
+       acsc=, rmacs=\E^O, smacs=\E^N, use=tek4012,
+tek4014|tektronix 4014,
+       cols#81, lines#38,
+       is2=\E\017\E9, use=tek4012,
+# (tek4015: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
+tek4015|tektronix 4015,
+       acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014,
+tek4014-sm|tektronix 4014 in small font,
+       cols#121, lines#58,
+       is2=\E\017\E\:, use=tek4014,
+# (tek4015-sm: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
+tek4015-sm|tektronix 4015 in small font,
+       acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014-sm,
+# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay>
+#
+# You need to have "stty nl2" in effect.  Some versions of tset(1) know
+# how to set it for you.
+#
+# It's got the Magic Cookie problem around stand-out mode.  If you can't
+# live with Magic Cookie, remove the :so: and :se: fields and do without
+# reverse video.  If you like reverse video stand-out mode but don't want
+# it to flash, change the letter 'H' to 'P' in the :so: field.
+tek4023|tektronix 4023,
+       OTbs, am,
+       OTdN#4, cols#80, lines#24, vt#4, xmc#1,
+       OTnl=^J, bel=^G, clear=\E\014$<4/>, cr=^M, cub1=^H, cud1=^J,
+       cuf1=^I, cup=\034%p2%{32}%+%c%p1%{32}%+%c, kbs=^H,
+       rmso=^_@, smso=^_P,
+# It is recommended that you run the 4025 at 4800 baud or less;
+# various bugs in the terminal appear at 9600.  It wedges at the
+# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed
+# on keyboard don't work.  You have to hit BREAK twice to get
+# one break at any speed - this is a documented feature.
+# Can't use cursor motion because it's memory relative, and
+# because it only works in the workspace, not the monitor.
+# Same for home. Likewise, standout only works in the workspace.
+#
+# <el> was commented out since vi and rogue seem to work better
+# simulating it with lots of spaces!
+#
+# <il1> and <il> had 145ms of padding, but that slowed down vi's ^U
+# and didn't seem necessary.
+#
+tek4024|tek4025|tek4027|tektronix 4024/4025/4027,
+       OTbs, am, da, db,
+       cols#80, it#8, lines#34, lm#0,
+       bel=^G, clear=\037era\r\n\n, cmdch=^_, cr=^M,
+       cub=\037lef %p1%d\r, cub1=^H, cud=\037dow %p1%d\r,
+       cud1=^F^J, cuf=\037rig %p1%d\r, cuf1=\037rig\r,
+       cuu=\037up %p1%d\r, cuu1=^K, dch1=\037dch\r,
+       dl=\037dli %p1%d\r\006, dl1=\037dli\r\006,
+       ed=\037dli 50\r, ht=^I, ich1=\037ich\r \010,
+       il=\037up\r\037ili %p1%d\r, il1=\037up\r\037ili\r,
+       ind=^F^J,
+       is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
+       rmkx=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r,
+       smkx=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r,
+tek4025-17|tek 4025 17 line window,
+       lines#17, use=tek4025,
+tek4025-17-ws|tek 4025 17 line window in workspace,
+       is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r,
+       rmcup=\037mon h\r, rmso=\037att s\r, smcup=\037wor h\r,
+       smso=\037att e\r, use=tek4025-17,
+tek4025-ex|tek4027-ex|tek 4025/4027 w/!,
+       is2=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r,
+       rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
+# Tektronix 4025a
+# From: Doug Gwyn <gwyn@brl-smoke.ARPA>
+# The following status modes are assumed for normal operation (replace the
+# initial "!" by whatever the current command character is):
+#      !COM 29                 # NOTE: changes command character to GS (^])
+#      ^]DUP
+#      ^]ECH R
+#      ^]EOL
+#      ^]RSS T
+#      ^]SNO N
+#      ^]STO 9 17 25 33 41 49 57 65 73
+# Other modes may be set according to communication requirements.
+# If the command character is inadvertently changed, termcap can't restore it.
+# Insert-character cannot be made to work on both top and bottom rows.
+# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas.
+# There also seems to be a problem with vertical motion, perhaps involving
+# delete/insert-line, following a typed carriage return.  This terminal sucks.
+# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't
+# work any more. -- esr)
+tek4025a|Tektronix 4025A,
+       OTbs, OTpt, am, bw, da, db, xon,
+       cols#80, it#8, lines#34,
+       bel=^G, cbt=\035bac;, clear=\035era;\n\035rup;, cmdch=^],
+       cr=^M, cub=\035lef %p1%d;, cub1=^H, cud=\035dow %p1%d;,
+       cud1=^J, cuf=\035rig %p1%d;, cuf1=\035rig;,
+       cuu=\035up %p1%d;, cuu1=^K, dch=\035dch %p1%d;,
+       dch1=\035dch;, dl=\035dli %p1%d;, dl1=\035dli;,
+       el=\035dch 80;, hpa=\r\035rig %p1%d;, ht=^I,
+       il1=\013\035ili;, ind=^J, indn=\035dow %p1%d;,
+       rs2=!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;,
+       tbc=\035sto;,
+# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981
+# Here's the command file that I use to get rogue to work on the 4025.
+# It should work with any program using the old curses (e.g. it better
+# not try to scroll, or cursor addressing won't work.  Also, you can't
+# see the cursor.)
+# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh)
+tek4025-cr|tek 4025 for curses and rogue,
+       OTbs, am,
+       cols#80, it#8, lines#33,
+       clear=\037era;, cub1=^H, cud1=^F^J, cuf1=\037rig;,
+       cup=\037jum%i%p1%d\,%p2%d;, cuu1=^K, ht=^I, ind=^F^J,
+       is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
+       rmcup=\037wor 0, smcup=\037wor 33h,
+# next two lines commented out since curses only allows 128 chars, sigh.
+#      :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:\
+#      :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:
+tek4025ex|4025ex|4027ex|tek 4025 w/!,
+       is2=\037com 33\r\n!sto 9\,17\,25\,33\,41\,49\,57\,65\,73\r,
+       rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
+tek4105|tektronix 4105,
+       OTbs, am, mir, msgr, ul, xenl, xt,
+       cols#79, it#8, lines#29,
+       acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z,
+       clear=\E[2J\E[H, cr=^M, cud1=\E[1B, cuf1=\E[1C,
+       cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[1A, dch1=\E[1P,
+       dim=\E[=1;<6m, dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+       il1=\E[1L, ind=\E[S, invis=\E[=6;<5, is1=\E%!1\E[m,
+       is2=\E%!1\E[?6141\E[m, kbs=^H, kcub1=\E[1D, kcud1=\E[1B,
+       kcuf1=\E[1C, kcuu1=\E[1A, rev=\E[=1;<3m, ri=\E[T,
+       rmacs=\E[m, rmcup=, rmir=\E[4l, rmso=\E[=0;<1m,
+       rmul=\E[=0;<1m, sgr0=\E[=0;<1m, smacs=\E[1m,
+       smcup=\E%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
+       smul=\E[=5;<2m, tbc=\E[1g,
+
+# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr)
+tek4105-30|4015 emulating 30 line vt100,
+       am, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#30, vt#3,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+       clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+       cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+       cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
+       enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
+       rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
+       rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
+       sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+       smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
+       use=vt100+fnkeys,
+
+# Tektronix 4105 from BRL
+# The following setup modes are assumed for normal operation:
+#      CODE ansi               CRLF no                 DABUFFER 141
+#      DAENABLE yes            DALINES 30              DAMODE replace
+#      DAVISIBILITY yes        ECHO no                 EDITMARGINS 1 30
+#      FLAGGING input          INSERTREPLACE replace   LFCR no
+#      ORIGINMODE relative     PROMPTMODE no           SELECTCHARSET G0 B
+#      SELECTCHARSET G1 0      TABS -2
+# Other setup modes may be set for operator convenience or communication
+# requirements; I recommend
+#      ACURSOR 1 0             AUTOREPEAT yes          AUTOWRAP yes
+#      BYPASSCANCEL <LF>       CURSORKEYMODE no        DAINDEX 1 0 0
+#      EOFSTRING ''            EOLSTRING <CR>          EOMCHARS <CR> <NU>
+#      GAMODE overstrike       GCURSOR 0 100 0         GSPEED 10 1
+#      IGNOREDEL no            KEYEXCHAR <DL>          NVDEFINE -53 "<NU>"
+#      PROMPTSTRING ''         QUEUESIZE 2460          WINDOW 0 0 4095 3132
+#      XMTDELAY 0
+# and factory color maps.  After setting these modes, save them with NVSAVE. No
+# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# "IC" cannot be used in combination with "im" & "ei".
+# "tek4105a" is just a guess:
+tek4105a|Tektronix 4105,
+       OTbs, OTpt, msgr, xon,
+       OTkn#8, cols#80, it#8, lines#30, vt#3,
+       acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+       civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
+       cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
+       kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
+       lf5=F6, lf6=F8, ll=\E[30;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
+       rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
+       rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       rs2=\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>,
+       sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+
+#
+# Tektronix 4106/4107/4109 from BRL
+# The following setup modes are assumed for normal operation:
+#      CODE ansi               COLUMNMODE 80           CRLF no
+#      DABUFFER 141            DAENABLE yes            DALINES 32
+#      DAMODE replace          DAVISIBILITY yes        ECHO no
+#      EDITMARGINS 1 32        FLAGGING input          INSERTREPLACE replace
+#      LFCR no                 LOCKKEYBOARD no         ORIGINMODE relative
+#      PROMPTMODE no           SELECTCHARSET G0 B      SELECTCHARSET G1 0
+#      TABS -2
+# Other setup modes may be set for operator convenience or communication
+# requirements; I recommend
+#      ACURSOR 1 0             AUTOREPEAT yes          AUTOWRAP yes
+#      BYPASSCANCEL <LF>       CURSORKEYMODE no        DAINDEX 1 0 0
+#      EOFSTRING ''            EOLSTRING <CR>          EOMCHARS <CR> <NU>
+#      GAMODE overstrike       GCURSOR 0 100 0         GSPEED 9 3
+#      IGNOREDEL no            KEYEXCHAR <DL>          NVDEFINE -53 "<NU>"
+#      PROMPTSTRING ''         QUEUESIZE 2620          WINDOW 0 0 4095 3132
+#      XMTDELAY 0
+# and factory color maps.  After setting these modes, save them with NVSAVE.  No
+# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# "IC" cannot be used in combination with "im" & "ei".
+tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109,
+       msgr, xon,
+       cols#80, it#8, lines#32, vt#3,
+       acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+       civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
+       cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
+       kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
+       lf5=F6, lf6=F8, ll=\E[32;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
+       rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
+       rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       rs1=\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>,
+       sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
+       smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g,
+
+tek4107|tek4109|tektronix terminals 4107 4109,
+       OTbs, am, mir, msgr, ul, xenl, xt,
+       cols#79, it#8, lines#29,
+       bel=^G, blink=\E%!1\E[5m$<2>\E%!0,
+       bold=\E%!1\E[1m$<2>\E%!0, clear=\ELZ, cnorm=\E%!0, cr=^M,
+       cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3,
+       dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=^J,
+       kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+       rev=\E%!1\E[7m$<2>\E%0, ri=\EI,
+       rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0,
+       sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>\E%%!0,
+       sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0,
+       smul=\E%!1\E[4m$<2>\E%!0,
+# Tektronix 4207 with sysline.  In the ancestral termcap file this was 4107-s;
+# see the note attached to tek4207.
+tek4207-s|Tektronix 4207 with sysline but no memory,
+       eslok, hs,
+       dsl=\E7\E[?6l\E[2K\E[?6h\E8, fsl=\E[?6h\E8,
+       is1=\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,
+       is2=\E7\E[?6l\E[2K\E[?6h\E8,
+       tsl=\E7\E[?6l\E[2K\E[;%i%df, use=tek4107,
+
+# The 4110 series may be a wonderful graphics series, but they make the 4025
+# look good for screen editing.  In the dialog area, you can't move the cursor
+# off the bottom line.  Out of the dialog area, ^K moves it up, but there
+# is no way to scroll.
+#
+# Note that there is a floppy for free from Tek that makes the
+# 4112 emulate the vt52 (use the vt52 termcap). There is also
+# an expected enhancement that will use ANSI standard sequences.
+#
+# 4112 in non-dialog area pretending to scroll. It really wraps
+# but vi is said to work (more or less) in this mode.
+#
+# 'vi' works reasonably well with this entry.
+#
+otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series,
+       am,
+       cols#80, lines#34,
+       bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ind=^J,
+       rmcup=\EKA1\ELV1, smcup=\EKA0\ELV0\EMG0,
+# The 4112 with the ANSI compatibility enhancement
+tek4112|tek4114|tektronix 4110 series,
+       OTbs, am, db,
+       cols#80, lines#34,
+       cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P, dl1=\E[M,
+       ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
+       ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8,
+       rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+tek4112-nd|4112 not in dialog area,
+       OTns,
+       cuu1=^K, use=tek4112,
+tek4112-5|4112 in 5 line dialog area,
+       lines#5, use=tek4112,
+# (tek4113: this used to have "<cuf1=\LM1\s\LM0>", someone's mistake;
+# removed "<smacs=\E^N>, <rmacs=\E^O>", which had been commented out in 8.3.
+# Note, the !0 and !1 sequences in <rmcup>/<smcup>/<cnorm>/<civis> were
+# previously \0410 and \0411 sequences...I don't *think* they were supposed
+# to be 4-digit octal -- esr)
+tek4113|tektronix 4113 color graphics with 5 line dialog area,
+       OTbs, am, da, eo,
+       cols#80, lines#5,
+       clear=\ELZ, cub1=^H, cud1=^J, cuf1=\ELM1 \ELM0,
+       flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
+       is2=\EKA1\ELL5\ELV0\ELV1, uc=\010\ELM1_\ELM0,
+tek4113-34|tektronix 4113 color graphics with 34 line dialog area,
+       lines#34,
+       is2=\EKA1\ELLB2\ELV0\ELV1, use=tek4113,
+# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not
+# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up .
+# :vb: needs enough delay to let you see the background color being toggled.
+tek4113-nd|tektronix 4113 color graphics with no dialog area,
+       OTbs, am, eo,
+       cols#80, it#8, lines#34,
+       clear=\E^L, cub1=^H, cud1=^J, cuf1=^I, cuu1=^K,
+       cvvis=\ELZ\EKA0,
+       flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
+       home=\ELF7l\177 @, ht=^I, is2=\ELZ\EKA0\ELF7l\177 @,
+       ll=\ELF hl @, rmso=\EMT1, smso=\EMT2, uc=\010\EMG1_\EMG0,
+# This entry is from Tek. Inc.  (Brian Biehl)
+# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr)
+otek4115|Tektronix 4115,
+       OTbs, am, da, db, eo,
+       cols#80, it#8, lines#34,
+       cbt=\E[Z, clear=\E[H\E[2J,
+       cnorm=\E%!0\ELBG8\E%!1\E[34;1H, cub1=\E[D, cud1=\E[B,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       cvvis=\E%!0\ELBB2\E%!1, dch1=\E[P, dl1=\E[M, ed=\E[J,
+       el=\E[K, home=\E[H, ht=^I, if=/usr/share/tabset/vt100,
+       il1=\E[L,
+       is2=\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,
+       kbs=^H, ri=\EM, rmam=\E[?7l,
+       rmcup=\E%!0\ELBG8\E%!1\E[34;1H\E[J, rmir=\E[4l,
+       rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
+       smcup=\E%!0\ELBB2\E%!1, smir=\E[4h, smkx=\E=, smso=\E[7m,
+       smul=\E[4m,
+tek4115|newer tektronix 4115 entry with more ANSI capabilities,
+       am, xon,
+       cols#80, lines#34,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+       cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%p1%{1}%+%dG,
+       ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+       il1=\E[L, ind=^J, invis=\E[8m, kbs=^H, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
+       rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rmam=\E[?7l,
+       rmso=\E[m, rmul=\E[m,
+       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
+       sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
+       vpa=\E[%p1%{1}%+%dd,
+# The tek4125 emulates a vt100 incorrectly - the scrolling region
+# command is ignored.  The following entry replaces <csr> with the needed
+# <il>, <il>, and <smir>; removes some cursor pad commands that the tek4125
+# chokes on; and adds a lot of initialization for the tek dialog area.
+# Note that this entry uses all 34 lines and sets the cursor color to green.
+# Steve Jacobson 8/85
+# (tek4125: there were two "\!"s in the is that I replaced with "\E!";
+# commented out, <smir>=\E1 because there's no <rmir>  -- esr)
+tek4125|tektronix 4125,
+       lines#34,
+       csr@, dl1=\E[1M, il1=\E[1L,
+       is2=\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,
+       rc@, sc@, smkx=\E=, use=vt100,
+
+# From: <jcoker@ucbic>
+# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO
+# supplied another, less capable 4107 entry.  So we'll use that for 4107 and
+# note that if jcoker wasn't confused you may be able to use this one.
+# I merged in <msgr>,<ind>,<ri>,<invis>,<tbc> from a BRL entry -- esr)
+tek4207|Tektronix 4207 graphics terminal with memory,
+       am, bw, mir, msgr, ul, xenl,
+       cols#80, it#8, lines#32,
+       blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J$<156/>,
+       cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu1=\EM, dch1=\E[P$<4/>, dl1=\E[M$<3/>, ed=\E[J,
+       el=\E[K$<5/>, home=\E[H, ht=^I, ich1=\E[@$<4/>,
+       il1=\E[L$<3/>, ind=\E[S, invis=\E[=6;<5,
+       is2=\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,
+       kcub1=\E[D, kcud1=\ED, kcuf1=\E[C, kcuu1=\EM, khome=\E[H,
+       rev=\E[7m, ri=\E[T,
+       rmcup=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f, rmso=\E[m,
+       rmul=\E[m, sgr0=\E[m, smcup=\E[?6l\E[H\E[J, smso=\E[7m,
+       smul=\E[4m, tbc=\E[1g,
+
+# From: <carolyn@dali.berkeley.edu>  Thu Oct 31 12:54:27 1985
+# (tek4404: There was a "\!" in <smcup> that I replaced with "\E!".
+# Tab had been given as \E2I,that must be the tab-set capability -- esr)
+tek4404|tektronix 4404,
+       OTbs,
+       cols#80, it#8, lines#32,
+       blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
+       csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[1M,
+       ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\E[2I, il1=\E[1L,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rc=\E8,
+       rmcup=\E[1;1H\E[0J\E[?6h\E[?1l, rmir=\E[4l,
+       rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, sc=\E7, sgr0=\E[m,
+       smcup=\E%\E!1\E[1;32r\E[?6l\E>, smir=\E[4h,
+       smkx=\E[?1l, smso=\E[7m, smul=\E[4m,
+# Some unknown person wrote:
+# I added the is string - straight Unix has ESC ; in the login
+# string which sets a ct8500 into monitor mode (aka 4025 snoopy
+# mode). The is string here cleans up a few things (but not
+# everything).
+ct8500|tektronix ct8500,
+       am, bw, da, db,
+       cols#80, lines#25,
+       bel=^G, cbt=\E^I, clear=\E^E, cr=^M, cub1=^H, cud1=^J,
+       cuf1=\ES, cup=\E|%p1%{32}%+%c%p2%{32}%+%c, cuu1=\ER,
+       dch1=\E^], dl1=\E^M, ed=\E^U, el=\E^T, ht=^I, ich1=\E^\,
+       il1=\E^L, ind=^J, is2=\037\EZ\Ek, ri=\E^A, rmso=\E\s,
+       rmul=\E\s, sgr0=\E\s, smso=\E$, smul=\E!,
+
+# Tektronix 4205 terminal.
+#
+# am is not defined because the wrap around occurs not when the char.
+# is placed in the 80'th column, but when we are attempting to type
+# the 81'st character on the line.  (esr: hmm, this is like the vt100
+# version of xenl, perhaps am + xenl would work!)
+#
+# Bold, dim, and standout are simulated by colors and thus not allowed
+# with colors.  The tektronix color table is mapped into the RGB color
+# table by setf/setb. All colors are reset to factory specifications by oc.
+# The <initc> cap uses RGB notation to define colors.  for arguments 1-3 the
+# interval (0-1000) is broken into 8 smaller sub-intervals (125).  Each sub-
+# interval then maps into pre-defined value.
+tek4205|tektronix 4205,
+       ccc, mir, msgr,
+       colors#8, cols#80, it#8, lines#30, ncv#49, pairs#63,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[=7;<4m, cbt=\E[Z,
+       clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch1=\E[1P, dim=\E[=1;<6m, dl1=\E[1M, ech=\E%p1%dX,
+       ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
+       ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
+       initc=\E%%!0\ETF4%?%p1%{0}%=%t0%e%p1%{1}%=%t4%e%p1%{2}%=%t3%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}%<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:%eF4%;\E%%!1,
+       invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA,
+       kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EP, kf5=\EQ, kf6=\ER,
+       kf7=\ES,
+       oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1,
+       op=\E[39;40m, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=,
+       rmir=\E[4l, rmso=\E[=0;<1m, rmul=\E[24m,
+       setb=\E[=%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
+       setf=\E[<%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
+       sgr0=\E[=0;<1m\E[24;25;27m\017, smacs=^N,
+       smcup=\E%%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
+       smul=\E[4m, tbc=\E[1g,
+
+#### Teletype (tty)
+#
+# These are the hardcopy Teletypes from before AT&T bought the company,
+# clattering electromechanical dinosaurs in Bakelite cases that printed on
+# pulpy yellow roll paper.  If you remember these you go back a ways.
+# Teletype-branded VDTs are listed in the AT&T section.
+#
+# The earliest UNIXes were designed to use these clunkers; nroff and a few
+# other programs still default to emitting codes for the Model 37.
+#
+
+tty33|tty35|model 33 or 35 teletype,
+       hc, os, xon,
+       cols#72,
+       bel=^G, cr=^M, cud1=^J, ind=^J,
+tty37|model 37 teletype,
+       OTbs, hc, os, xon,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
+       ind=^J,
+
+# There are known to be at least three flavors of the tty40, all seem more
+# like IBM half duplex forms fillers than ASCII terminals.  They have lots of
+# awful braindamage, such as printing a visible newline indicator after each
+# newline.  The 40-1 is a half duplex terminal and is hopeless.  The 40-2 is
+# braindamaged but has hope and is described here.  The 40-4 is a 3270
+# lookalike and beyond hope.  The terminal has visible bell but I don't know
+# it - it's null here to prevent it from showing the BL character.
+# There is an \EG in <nl> because of a bug in old vi (if stty says you have
+# a "newline" style terminal (-crmode) vi figures all it needs is nl
+# to get crlf, even if <cr> is not ^M.)
+# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr)
+tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2,
+       OTbs, xon,
+       cols#80, lines#24,
+       clear=\EH$<20>\EJ$<80>, cr=\EG, cub1=^H, cud1=\EB,
+       cuf1=\EC, cuu1=\E7, dch1=\EP$<50>, dl1=\EM$<50>,
+       ed=\EJ$<75>, home=\EH$<10>, ht=\E@$<10>, hts=\E1,
+       ich1=\E\^$<50>, il1=\EL$<50>, ind=\ES$<20>, kbs=^],
+       kcub1=^H, mc4=^T, mc5=\022$<2000>, ri=\ET$<10>, rmso=\E4,
+       rs2=\023\ER$<60>, smso=\E3, tbc=\EH\E2$<80>,
+tty43|model 43 teletype,
+       OTbs, am, hc, os, xon,
+       cols#132,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
+
+#### Tymshare
+#
+
+# You can add <is2=\E<> to put this 40-column mode, though I can't
+# for the life of me think why anyone would want to.
+scanset|sc410|sc415|Tymshare Scan Set,
+       am, bw, msgr,
+       cols#80, lines#24,
+       acsc=j%k4l<m-q\,x5, bel=^G, clear=\EH\EJ, cr=^M, cub1=^H,
+       cud1=^J, cuf1=^I, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=^J, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, mc0=\E;3, mc4=\E;0,
+       mc5=\E;0, rc=^C, rmacs=^O, rs1=\E>, sc=^B, smacs=^N,
+
+#### Volker-Craig (vc)
+#
+# If you saw a Byte Magazine cover with a terminal on it during the early
+# 1980s, it was probably one of these.  Carl Helmers liked them because
+# they could crank 19.2 and were cheap (that is, he liked them until he tried
+# to program one...)
+#
+
+# Missing in vc303a and vc303 descriptions:  they scroll 2 lines at a time
+# every other linefeed.
+vc303|vc103|vc203|volker-craig 303,
+       OTbs, OTns, am,
+       cols#80, lines#24,
+       bel=^G, clear=\014$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
+       cuu1=^N, home=\013$<40>, kcub1=^H, kcud1=^J, kcuf1=^I,
+       kcuu1=^N, ll=\017$<1>W,
+vc303a|vc403a|volker-craig 303a,
+       clear=\030$<40>, cuf1=^U, cuu1=^Z, el=\026$<20>,
+       home=\031$<40>, kcuf1=^U, kcuu1=^Z, ll=^P, use=vc303,
+# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr)
+vc404|volker-craig 404,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\030$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+       cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
+       ed=\027$<40>, el=\026$<20>, home=\031$<40>, ind=^J,
+       kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z,
+vc404-s|volker-craig 404 w/standout mode,
+       cud1=^J, rmso=^O, smso=^N, use=vc404,
+# From: <wolfgang@cs.sfu.ca>
+# (vc414: merged in cup/dl1/home from an old vc414h-noxon)
+vc414|vc414h|Volker-Craig 414H in sane escape mode.,
+       OTbs, am,
+       cols#80, lines#24,
+       clear=\E\034$<40>, cud1=\E^K, cuf1=^P,
+       cup=\E\021%p2%c%p1%c$<40>, cuu1=\E^L, dch1=\E3,
+       dl1=\E\023$<40>, ed=\E^X, el=\E\017$<10/>, home=\E^R,
+       ich1=\E\:, il1=\E\032$<40>, kcub1=^H, kcud1=\E^K, kcuf1=^P,
+       kcuu1=\E^L, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, kf4=\EE,
+       kf5=\EF, kf6=\EG, kf7=\EH, khome=\E^R, lf0=PF1, lf1=PF2,
+       lf2=PF3, lf3=PF4, lf4=PF5, lf5=PF6, lf6=PF7, lf7=PF8,
+       rmso=\E^_, smso=\E^Y,
+vc415|volker-craig 415,
+       clear=^L, use=vc404,
+
+######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS
+#
+
+#### IBM PC and clones
+#
+
+# The pcplot IBM-PC terminal emulation program is really messed up. It is
+# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly,
+# doesn't support scrolling regions, ignores add line commands, and ignores
+# delete line commands. Consequently, the resulting behavior looks like a
+# crude adm3a-type terminal.
+# Steve Jacobson 8/85
+pcplot|pc-plot terminal emulation program,
+       xenl@,
+       csr@, dl@, dl1@, il@, il1@, rc@, sc@, use=vt100,
+# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA>
+# I've found that my KayPro II, running MDM730, continues to emulate an
+# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX
+# system the following termcap entry works well:
+# I have noticed a couple of minor glitches, but nothing I can't work
+# around. (I added two capabilities from the BRL entry -- esr)
+kaypro|kaypro2|kaypro II,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\032$<1/>, cr=^M, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER, ed=^W,
+       el=^X, home=^^, il1=\EE, ind=^J, kcud1=^J, kcuf1=^L, kcuu1=^K,
+
+# From IBM, Thu May  5 19:35:27 1983
+# (ibmpc: commented out <smir>=\200R because we don't know <rmir> -- esr)
+ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS),
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=^L^K, cr=^M^^, cub1=^], cud1=^J, cuf1=^\,
+       cuu1=^^, home=^K, ind=\n$<10>, kcud1=^_,
+
+ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX,
+       OTbs, am, bw, eo, hs, km, msgr, ul,
+       cols#80, it#8, lines#24,
+       acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
+       cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+       home=\E[H, hpa=\E[%i%p1%dG, ind=\E[S\E[B,
+       indn=\E[%p1%dS\E[%p1%dB, invis=\E[30;40m, kbs=^H,
+       kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kdch1=\177, kend=\E[Y, kf1=\240, kf10=\251, kf2=\241,
+       kf3=\242, kf4=\243, kf5=\244, kf6=\245, kf7=\246, kf8=\247,
+       kf9=\250, khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V,
+       ll=\E[24;1H, nel=^M, rev=\E[7m, ri=\E[T\E[A,
+       rin=\E[%p1%dT\E[%p1%dA, rmso=\E[m, rmul=\E[m,
+       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
+       sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+
+#### Apple II
+#
+# Apple II firmware console first, then various 80-column cards and
+# terminal emulators.  For two cents I'd toss all these in the UFO file
+# along with the 40-column apple entries.
+#
+
+# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL
+#      'it#8' tells UNIX that you have tabs every 8 columns.  This is a
+#              function of TIC, not the firmware.
+#      The clear key on a IIgs will do something like clear-screen,
+#              depending on what you're in.
+appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface,
+       OTbs, am, bw, eo, msgr,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
+       cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+       home=^Y, ht=^I, ind=^W, kbs=^H, kclr=^X, kcub1=^H, kcud1=^J,
+       kcuf1=^U, kcuu1=^K, kdch1=\177, nel=^M^W, ri=^V, rmso=^N,
+       smso=^O,
+# Apple //e with 80-column card, entry from BRL
+# The modem interface is permitted to discard LF (maybe DC1), otherwise
+# passing characters to the 80-column firmware via COUT (PR#3 assumed).
+# Auto-wrap does not work right due to newline scrolling delay, which also
+# requires that you set "stty cr2".
+# Note: Cursor addressing is only available via the Pascal V1.1 entry,
+# not via the BASIC PR#3 hook.  All this nonsense can be avoided only by
+# using a terminal emulation program instead of the built-in firmware.
+apple2e|Apple //e,
+       bw, msgr,
+       cols#80, lines#24,
+       bel=^G, clear=\014$<100/>, cub1=^H, cud1=^J, cuu1=^_,
+       ed=\013$<4*/>, el=\035$<4/>, home=^Y, ht=^I, ind=^W,
+       is2=^R^N, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^K,
+       nel=\r$<100/>, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
+       smso=^O,
+# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro
+# 4.20, with incoming and outgoing terminals both on 0, emulation On.
+apple2e-p|Apple //e via Pascal,
+       cup=\036%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, kcub1=^H,
+       kcud1=^J, use=apple2e,
+# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL
+# Enable DC3/DC1 flow control with "stty ixon -ixany".
+apple-ae|ASCII Express,
+       OTbs, am, bw, msgr, nxon, xon,
+       cols#80, it#8, lines#24,
+       bel=\007$<500/>, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+       cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+       home=^Y, ind=^W, is2=^R^N, kclr=^X, kcub1=^H, kcud1=^J,
+       kcuf1=^U, kcuu1=^K, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
+       smso=^O,
+appleII|apple ii plus,
+       OTbs, am,
+       cols#80, it#8, lines#24,
+       clear=^L, cnorm=^TC2, cub1=^H, cud1=^J, cuf1=^\,
+       cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, cvvis=^TC6,
+       ed=^K, el=^], flash=\024G1$<200/>\024T1, home=\E^Y, ht=^I,
+       is2=\024T1\016, kcud1=^J, kcuf1=^U, rmso=^N, sgr0=^N,
+       smso=^O,
+# Originally by Gary Ford 21NOV83
+# From: <ee178aci%sdcc7@SDCSVAX.ARPA>  Fri Oct 11 21:27:00 1985
+apple-80|apple II with smarterm 80 col,
+       OTbs, am, bw,
+       cols#80, lines#24,
+       cbt=^R, clear=\014$<10*/>, cr=\r$<10*/>, cub1=^H, cud1=^J,
+       cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_,
+       ed=\013$<10*/>, el=\035$<10/>, home=^Y,
+apple-soroc|apple emulating soroc 120,
+       am,
+       cols#80, lines#24,
+       bel=^G, clear=\E*$<300>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
+       home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
+# From Peter Harrison, Computer Graphics Lab, San Francisco
+#   ucbvax!ucsfmis!harrison  .....uucp
+#   ucbvax!ucsfmis!harrison@BERKELEY   .......ARPA
+# "These two work.  If you don't have the inverse video chip for the
+# Apple with videx then remove the :so: and :se: fields."
+# (apple-videx: this used to be called DaleApple -- esr)
+apple-videx|Apple with videx videoterm 80 column board with inverse video,
+       OTbs, am, xenl,
+       cols#80, it#8, lines#24,
+       clear=\014$<300/>, cub1=^H, cud1=^J, cuf1=^\,
+       cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+       home=^Y, ht=^I, kcub1=^H, kcud1=^J, kcuf1=^U, khome=^Y,
+       rmso=^Z2, sgr0=^Z2, smso=^Z3,
+# My system [for reference] : Apple ][+, 64K, Ultraterm display card,
+#                            Apple Cat ][ 212 modem, + more all
+#                            controlled by ASCII Express: Pro.
+# From Dave Shaver <isucs1!shaver>
+apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell,
+       OTbs, am, eo, xt,
+       cols#80, lines#24,
+       acsc=, clear=^L, cuf1=^\,
+       cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+       flash=^W35^W06, home=^Y,
+       is2=^V4^W06\017\rVisible Bell Installed.\016\r\n,
+       rmso=^N, smso=^O,
+apple-uterm|Ultraterm for Apple micros,
+       OTbs, am, eo, xt,
+       cols#80, lines#24,
+       acsc=, clear=^L, cuf1=^\,
+       cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+       home=^Y, is2=^V4^W06\016, rmso=^N, smso=^O,
+# from trwrba!bwong (Bradley W. Wong):
+#
+# This entry assumes that you are using an apple with the UCSD Pascal
+# language card.  SYSTEM.MISCINFO is assumed to be the same as that
+# supplied with the standard apple except that screenwidth should be set
+# using SETUP to 80 columns.  Note that the right arrow in not mapped in
+# this termcap entry.  This is because that key, on the Apple, transmits
+# a ^U and would thus preempt the more useful "up" function of vi.
+#
+# HMH 2/23/81
+apple80p|80-column apple with Pascal card,
+       am, bw,
+       cols#80, lines#24,
+       clear=^Y^L, cuf1=^\\:,
+       cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+       home=^Y, kcub1=^H,
+#
+# Apple II+ equipped with Videx 80 column card
+#
+# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL;
+# manually converted by D A Gwyn
+#
+# DO NOT use any terminal emulation with this data base, it works directly
+# with the Videx card.  This has been tested with vi 1200 baud and works fine.
+#
+# This works great for vi, except I've noticed in pre-R2, ^U will scroll back
+# 1 screen, while in R2 ^U doesn't.
+# For inverse alternate character set add:
+#      <smacs>=^O:<rmacs>=^N:
+# (apple-v: added it#8 -- esr)
+apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520),
+       am, xenl,
+       cols#80, it#8, lines#24,
+       bel=\007$<100/>, clear=\014$<16*/>, cr=^M, cub1=^H,
+       cud1=^J, cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c,
+       cuu1=^_, ed=\013$<16*/>, el=^], home=^Y, ht=\011$<8/>,
+       ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
+       khome=^Y, rmso=^Z2, smso=^Z3,
+apple-videx3|vapple|Apple II with 80 col card,
+       OTbs, am,
+       cols#80, lines#24,
+       clear=\Ev, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=\EA, el=\Ex, home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!,
+       kf5=\E", kf6=\E#, kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
+#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
+aepro|Apple II+ running ASCII Express Pro--vt52,
+       OTbs,
+       cols#80, lines#24,
+       clear=\014$<300/>, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+       el=\EK, home=\EH,
+# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
+apple-vm80|ap-vm80|apple with viewmax-80,
+       OTbs,
+       cols#80, lines#24,
+       clear=\014$<300/>, cuf1=^\\:,
+       cup=\036%p1%{32}%+%c%p2%{32}%+%c$<100/>, cuu1=^_,
+       ed=\013$<300/>, el=^], home=\031$<200/>,
+
+#### Apple Lisa & Macintosh
+#
+
+# (lisa: changed <cvvis> to <cnorm> -- esr)
+lisa|apple lisa console display (black on white),
+       OTbs, am, eo, msgr,
+       cols#88, it#8, lines#32,
+       acsc=jdkclfmenbqattuvvuwsx`, civis=\E[5h, clear=^L,
+       cnorm=\E[5l, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+       ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
+       is2=\E>\E[m\014, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smacs=\E[11m, smso=\E[7m, smul=\E[4m,
+liswb|apple lisa console display (white on black),
+       is2=\E>\E[0;7m\014, rmso=\E[0;7m, rmul=\E[0;7m,
+       smso=\E[m, smul=\E[4m, use=lisa,
+
+# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL;
+# <is2> revised by Ferd Brundick <fsbrn@BRL.ARPA>
+#
+# These entries assume that the 'Auto Wraparound' is enabled.
+# Xon-Xoff flow control should also be enabled.
+#
+# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab
+# settings are in non-volatile memory and don't need to be reset upon login.
+# Also setting the number of columns glitches the screen annoyingly.
+# You can type "reset" to get them set.
+#
+lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation,
+       OTbs, OTpt, am, xenl, xon,
+       OTkn#4, cols#80, it#8, lines#24, vt#3,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
+       el=\E[K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, kcub1=\EOD,
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP, kf1=\EOQ,
+       kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, rc=\E8,
+       rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       rs1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r,
+       sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+       tbc=\E[3g,
+# Lisaterm in 132 column ("wide") mode.
+lisaterm-w|Apple Lisa with Lisaterm in 132 column mode,
+       cols#132,
+       kbs=^H, kcub1=^H, kcud1=^J, use=lisaterm,
+# Although MacTerminal has insert/delete line, it is commented out here
+# since it is much faster and cleaner to use the "lock scrolling region"
+# method of inserting and deleting lines due to the MacTerminal implementation.
+# Also, the "Insert/delete ch" strings have an extra character appended to them
+# due to a bug in MacTerminal V1.1.  Blink is disabled since it is not
+# supported by MacTerminal.
+mac|macintosh|Macintosh with MacTerminal,
+       xenl,
+       OTdN#30,
+       blink@, dch1=\E[P$<7/>, ich1=\E[@$<9/>, ip=$<7/>, use=lisa,
+# Lisaterm in 132 column ("wide") mode.
+mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode,
+       cols#132, use=mac,
+
+# The AppKit Terminal.app descriptions all have names beginning with
+# "nsterm". Note that the statusline (-s) versions use the window
+# titlebar as a phony status line, and may produce warnings during
+# compilation as a result ("tsl uses 0 parameters, expected 1".) Ignore
+# these warnings, or even ignore these entries entirely. Apps which
+# need to position the cursor or do other fancy stuff inside the status
+# line won't work with these entries. They're primarily useful for
+# programs like Pine which provide simple notifications in the status
+# line. Please note that non-ASCII characters don't work right in the
+# status line, since Terminal.app incorrectly interprets their Unicode
+# codepoints as MacRoman codepoints.
+#
+# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
+#   "nsterm" to comply with the name length and case conventions and
+#   limitations of various software packages [notably Solaris terminfo
+#   and UNIX.] A single Apple_Terminal alias is retained for
+#   backwards-compatbility.
+#
+# * Added function key support (F1-F4). These only work in Terminal.app
+#   version 51, hopefully the capabilities won't cause problems for people
+#   using version 41.
+#
+# * Added "full color" (-c) entries which support the 16-color mode in
+#   version 51.
+#
+# * By default, version 51 uses UTF-8 encoding with broken altcharset
+#   support, so "ASCII" (-7) entries without altcharset support were
+#   added.
+
+# nsterm - AppKit Terminal.app
+#
+# Apple's Mac OS X includes a Terminal.app derived from the old NeXT
+# Terminal.app. It is a partial VT100 emulation with some xterm-like
+# extensions. This terminfo was written to describe versions 41
+# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X
+# version 10.1) of Terminal.app.
+#
+# Terminal.app runs under the Mac OS X Quartz windowing system (and
+# other AppKit-supported windowing systems.)  On the Mac OS X machine I
+# use, the executable for Terminal.app is:
+# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
+#
+# If you're looking for a description of the full-screen system
+# console which runs under Apple's Darwin operating system on PowerPC
+# platforms, see the "xnuppc" entry instead.
+#
+# There were no function keys in version 41. In version 51, there are
+# four working function keys (F1, F2, F3 and F4.) The function keys
+# are included in all of these entries.
+#
+# It does not support mouse pointer position reporting. Under some
+# circumstances the cursor can be positioned using option-click; this
+# works by comparing the cursor position and the selected position,
+# and simulating enough cursor-key presses to move the cursor to the
+# selected position. This technique fails in all but the simplest
+# applications.
+#
+# It provides partial ANSI color support (background colors interacted
+# badly with bold in version 41, though, as reflected in :ncv:.) The
+# monochrome (-m) entries are useful if you've disabled color support
+# or use a monochrome monitor. The full color (-c) entries are useful
+# in version 51, which doesn't exhibit the background color bug. They
+# also enable an xterm-compatible 16-color mode.
+#
+# The configurable titlebar is set using xterm-compatible sequences;
+# it is used as a status bar in the statusline (-s) entries. Its width
+# depends on font sizes and window sizes, but 50 characters seems to
+# be the default for an 80x24 window.
+#
+# The MacRoman character encoding is used for some of the alternate
+# characters in the "MacRoman" entries; the "ASCII" (-7) entries
+# disable alternate character set support entirely, and the "VT100"
+# (-acs) entries rely instead on Terminal.app's own buggy VT100
+# graphics emulation, which seems to think the character encoding is
+# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries
+# are useful in Terminal.app version 51, which supports UTF-8 and
+# other ASCII-compatible character encodings but does not correctly
+# implement VT100 graphics; once VT100 graphics are correctly
+# implemented in Terminal.app, the "VT100" (-acs) entries should be
+# usable in any ASCII-compatible character encoding [except perhaps
+# in UTF-8, where some experts argue for disallowing alternate
+# characters entirely.]
+#
+# Terminal.app reports "vt100" as the terminal type, but exports
+# several environment variables which may aid detection in a shell
+# profile (i.e. .profile or .login):
+#
+# TERM=vt100
+# TERM_PROGRAM=Apple_Terminal
+# TERM_PROGRAM_VERSION=41      # in Terminal.app version 41
+# TERM_PROGRAM_VERSION=51      # in Terminal.app version 51
+#
+# For example, the following Bourne shell script would detect the
+# correct terminal type:
+#
+# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ]
+# then
+#     export TERM
+#     if [ :"$TERM_PROGRAM_VERSION" = :41 ]
+#     then
+#         TERM="nsterm"
+#     else
+#         TERM="nsterm-c-7"
+#     fi
+# fi
+#
+# In a C shell derivative, this would be accomplished by:
+#
+# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then
+#     if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then
+#          if ( :"$TERM_PROGRAM_VERSION" == :41 ) then
+#              setenv TERM "nsterm"
+#          else
+#              setenv TERM "nsterm-c-7"
+#          endif
+#     endif
+# endif
+
+# The '+' entries are building blocks
+nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset,
+       am, bw, msgr, xenl, xon,
+       cols#80, it#8, lines#24,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+       home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
+       rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
+       sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys,
+
+nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       enacs=\E(B\E)0, rmacs=^O,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       smacs=^N, use=nsterm+7,
+
+nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
+       acsc=0#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245+\335-\366\,\334.\377,
+       enacs=\E(B\E)0, rmacs=^O,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+       smacs=^N, use=nsterm+7,
+
+nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
+       hs,
+       wsl#50,
+       dsl=\E]2;\007, fsl=^G, tsl=\E]2;,
+
+nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors),
+       op=\E[0m, use=ibm+16color,
+
+nsterm+c41|AppKit Terminal.app v41 color support,
+       colors#8, ncv#37, pairs#64,
+       op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+
+# These are different combinations of the building blocks
+
+# ASCII charset (-7)
+nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome),
+       use=nsterm+7,
+
+nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline),
+       use=nsterm+s, use=nsterm+7,
+
+nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color),
+       use=nsterm+c41, use=nsterm+7,
+
+nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color),
+       use=nsterm+c, use=nsterm+7,
+
+nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline),
+       use=nsterm+s, use=nsterm+c41, use=nsterm+7,
+
+nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline),
+       use=nsterm+s, use=nsterm+c, use=nsterm+7,
+
+# VT100 alternate-charset (-acs)
+nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome),
+       use=nsterm+acs,
+
+nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline),
+       use=nsterm+s, use=nsterm+acs,
+
+nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color),
+       use=nsterm+c41, use=nsterm+acs,
+
+nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color),
+       use=nsterm+c, use=nsterm+acs,
+
+nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline),
+       use=nsterm+s, use=nsterm+c41, use=nsterm+acs,
+
+nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline),
+       use=nsterm+s, use=nsterm+c, use=nsterm+acs,
+
+# MacRoman charset
+nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome),
+       use=nsterm+mac,
+
+nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline),
+       use=nsterm+s, use=nsterm+mac,
+
+nsterm|Apple_Terminal|AppKit Terminal.app v41+ w/MacRoman charset (color),
+       use=nsterm+c41, use=nsterm+mac,
+
+nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color),
+       use=nsterm+c, use=nsterm+mac,
+
+nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline),
+       use=nsterm+s, use=nsterm+c41, use=nsterm+mac,
+
+nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline),
+       use=nsterm+s, use=nsterm+c, use=nsterm+mac,
+
+
+# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
+# and D P Schreber comparing to nsterm-c-s-acs.
+#
+# D P Schreber notes that $TERM can be set in Terminal.app, e.g.,
+#      defaults write com.apple.Terminal TermCapString nsterm-c-s-acs
+# and that it is not set in Terminal's preferences dialog.
+nsterm-16color|AppKit Terminal.app v100.1.8 with MacOS X 10.3.9,
+       kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       knp=\E[6~, kpp=\E[5~, use=nsterm-c-s-acs,
+
+# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
+#
+# On PowerPC platforms, Apple's Darwin operating system uses a
+# full-screen system console derived from a NetBSD framebuffer
+# console. It is an ANSI-style terminal, and is not really VT-100
+# compatible.
+#
+# Under Mac OS X, this is the system console driver used while in
+# single-user mode [reachable by holding down Command-S during the
+# boot process] and when logged in using console mode [reachable by
+# typing ">console" at the graphical login prompt.]
+#
+# If you're looking for a description of the Terminal.app terminal
+# emulator which runs under the Mac OS X Quartz windowing system (and
+# other AppKit-supported windowing systems,) see the "nsterm"
+# entry instead.
+#
+# NOTE: Under Mac OS X version 10.1, the default login window does not
+# prompt for user name, instead requiring an icon to be selected from
+# a list of known users. Since the special ">console" login is not in
+# this list, you must make one of two changes in the Login Window
+# panel of the Login section of System Prefs to make the special
+# ">console" login accessible. The first option is to enable 'Show
+# "Other User" in list for network users', which will add a special
+# "Other..." icon to the graphical login panel. Selecting "Other..."
+# will present the regular graphical login prompt. The second option
+# is to change the 'Display Login Window as:' setting to 'Name and
+# password entry fields', which replaces the login panel with a
+# graphical login prompt.
+#
+# There are no function keys, at least not in Darwin 1.3.
+#
+# It has no mouse support.
+#
+# It has full ANSI color support, and color combines correctly with
+# all three supported attributes: bold, inverse-video and underline.
+# However, bold colored text is almost unreadable (bolding is
+# accomplished using shifting and or-ing, and looks smeared) so bold
+# has been excluded from the list of color-compatible attributes
+# [using (ncv)]. The monochrome entry (-m) is useful if you use a
+# monochrome monitor.
+#
+# There is one serious bug with this terminal emulation's color
+# support: repositioning the cursor onto a cell with non-matching
+# colors obliterates that cell's contents, replacing it with a blank
+# and displaying a colored cursor in the "current" colors. There is
+# no complete workaround at present [other than using the monochrome
+# (-m) entries,] but removing the (msgr) capability seemed to help.
+#
+# The "standout" chosen was simple reverse-video, although a colorful
+# standout might be more aesthetically pleasing. Similarly, the bold
+# chosen is the terminal's own smeared bold, although a simple
+# color-change might be more readable. The color-bold (-b) entries
+# uses magenta colored text for bolding instead. The fancy color (-f
+# and -f2) entries use color for bold, standout and underlined text
+# (underlined text is still underlined, though.)
+#
+# Apparently the terminal emulator does support a VT-100-style
+# alternate character set, but all the alternate character set
+# positions have been left blank in the font. For this reason, no
+# alternate character set capabilities have been included in this
+# description. The console driver appears to be ASCII-only, so (enacs)
+# has been excluded [although the VT-100 sequence does work.]
+#
+# The default Mac OS X and Darwin installation reports "vt100" as the
+# terminal type, and exports no helpful environment variables. To fix
+# this, change the "console" entry in /etc/ttys from "vt100" to
+# "xnuppc-WxH", where W and H are the character dimensions of your
+# console (see below.)
+#
+# The font used by the terminal emulator is apparently one originally
+# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This
+# file includes descriptions for the following geometries:
+#
+#     Pixels        Characters   Entry Name (append -m for monochrome)
+#    -------------------------------------------------------------------
+#     640x400       80x25        xnuppc-80x25
+#     640x480       80x30        xnuppc-80x30
+#     720x480       90x30        xnuppc-90x30
+#     800x600       100x37       xnuppc-100x37
+#     896x600       112x37       xnuppc-112x37
+#     1024x640      128x40       xnuppc-128x40
+#     1024x768      128x48       xnuppc-128x48
+#     1152x768      144x48       xnuppc-144x48
+#     1280x1024     160x64       xnuppc-160x64
+#     1600x1024     200x64       xnuppc-200x64
+#     1600x1200     200x75       xnuppc-200x75
+#     2048x1536     256x96       xnuppc-256x96
+#
+# The basic "xnuppc" entry includes no size information, and the
+# emulator includes no reporting capability, so you'll be at the mercy
+# of the TTY device (which reports incorrectly on my hardware.) The
+# color-bold entries do not include size information.
+
+# The '+' entries are building blocks
+xnuppc+basic|Darwin PowerPC Console basic capabilities,
+       am, bce, mir, xenl,
+       it#8,
+       bold=\E[1m, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dsl=\E]2;\007, ed=\E[J, el=\E[K,
+       el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=\177,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
+       rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m,
+       rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+       sc=\E7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
+       sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g, use=vt100+keypad,
+
+xnuppc+c|Darwin PowerPC Console ANSI color support,
+       colors#8, ncv#32, pairs#64,
+       op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+
+xnuppc+b|Darwin PowerPC Console color-bold support,
+       ncv#32,
+       bold=\E[35m,
+       sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
+       use=xnuppc+basic,
+
+xnuppc+f|Darwin PowerPC Console fancy color support,
+       ncv#35,
+       sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;m,
+       smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b,
+
+xnuppc+f2|Darwin PowerPC Console alternate fancy color support,
+       ncv#35,
+       bold=\E[33m,
+       sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m,
+       smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic,
+
+# Building blocks for specific screen sizes
+xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels),
+       cols#80, lines#25,
+
+xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels),
+       cols#80, lines#30,
+
+xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels),
+       cols#90, lines#30,
+
+xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels),
+       cols#100, lines#37,
+
+xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels),
+       cols#112, lines#37,
+
+xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels),
+       cols#128, lines#40,
+
+xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels),
+       cols#128, lines#48,
+
+xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels),
+       cols#144, lines#48,
+
+xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels),
+       cols#160, lines#64,
+
+xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels),
+       cols#200, lines#64,
+
+xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels),
+       cols#200, lines#75,
+
+xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels),
+       cols#256, lines#96,
+
+# These are different combinations of the building blocks
+
+xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome),
+       use=xnuppc+basic,
+
+xnuppc|darwin|Darwin PowerPC Console (color),
+       use=xnuppc+c, use=xnuppc+basic,
+
+xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold),
+       use=xnuppc+b,
+
+xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold),
+       use=xnuppc+b, use=xnuppc+c,
+
+xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome),
+       use=xnuppc+f,
+
+xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color),
+       use=xnuppc+f, use=xnuppc+c,
+
+xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome),
+       use=xnuppc+f2,
+
+xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color),
+       use=xnuppc+f2, use=xnuppc+c,
+
+# Combinations for specific screen sizes
+xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25,
+       use=xnuppc+80x25, use=xnuppc+basic,
+
+xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25,
+       use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic,
+
+xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30,
+       use=xnuppc+80x30, use=xnuppc+basic,
+
+xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30,
+       use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic,
+
+xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30,
+       use=xnuppc+90x30, use=xnuppc+basic,
+
+xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30,
+       use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic,
+
+xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37,
+       use=xnuppc+100x37, use=xnuppc+basic,
+
+xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37,
+       use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic,
+
+xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37,
+       use=xnuppc+112x37, use=xnuppc+basic,
+
+xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37,
+       use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic,
+
+xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40,
+       use=xnuppc+128x40, use=xnuppc+basic,
+
+xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40,
+       use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic,
+
+xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48,
+       use=xnuppc+128x48, use=xnuppc+basic,
+
+xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48,
+       use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic,
+
+xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48,
+       use=xnuppc+144x48, use=xnuppc+basic,
+
+xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48,
+       use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic,
+
+xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64,
+       use=xnuppc+160x64, use=xnuppc+basic,
+
+xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64,
+       use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic,
+
+xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64,
+       use=xnuppc+200x64, use=xnuppc+basic,
+
+xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64,
+       use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic,
+
+xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75,
+       use=xnuppc+200x75, use=xnuppc+basic,
+
+xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75,
+       use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic,
+
+xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96,
+       use=xnuppc+256x96, use=xnuppc+basic,
+
+xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96,
+       use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic,
+
+#### Radio Shack/Tandy
+#
+
+# (coco3: This had "ta" used incorrectly as a boolean and bl given as "bl#7".
+# I read these as mistakes for ":it#8:" and ":bl=\007:" respectively -- esr)
+# From: <{pbrown,ctl}@ocf.berkeley.edu> 12 Mar 90
+coco3|os9LII|Tandy CoCo3 24*80 OS9 Level II,
+       OTbs, am,
+       cols#80, it#8, lines#24,
+       bel=^G, blink=^_", bold=\E\:^A, civis=^E\s,
+       clear=\014$<5*/>, cnorm=^E!, cub1=^H, cud1=^J, cuf1=^F,
+       cup=\002%p2%{32}%+%c%p1%{32}%+%c$<2/>, cuu1=^I,
+       dl1=^_1, ed=^K, el=^D, home=^A, il1=^_0, kcub1=^H, kcud1=^J,
+       kcuf1=^I, kcuu1=^L, rev=^_\s, rmso=^_!, rmul=^_#,
+       sgr0=\037!\E\:\0, smso=^_\s, smul=^_",
+# (trs2: removed obsolete ":nl=^_:" -- esr)
+trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M,
+       OTbs, am, msgr,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^_, cuf1=^],
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, dl1=^K, ed=^B,
+       el=^A, home=^F, ht=^I, il1=^D, ind=^J, kbs=^H, kcub1=^\,
+       kcud1=^_, kcuf1=^], kcuu1=^^, rmso=^O, sgr0=^O, smso=^N,
+# From: Kevin Braunsdorf <ksb@mentor.cc.purdue.edu>
+# (This had extension capabilities
+#      :BN=\E[?33h:BF=\E[?33l:UC=\E[_ q:BC=\E[\177 q:\
+#      :CN=\ERC:CF=\ERc:NR=\ERD:NM=\ER@:
+# I also deleted the unnecessary ":kn#2:", ":sg#0:" -- esr)
+trs16|trs-80 model 16 console,
+       OTbs, am,
+       cols#80, it#8, lines#24,
+       acsc=jak`l_mbquvewcxs, bel=^G, civis=\ERc, clear=^L,
+       cnorm=\ERC, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
+       dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
+       ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+       kf0=^A, kf1=^B, kf2=^D, kf3=^L, kf4=^U, kf5=^P, kf6=^N, kf7=^S,
+       khome=^W, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7,
+       lf7=f8, mc4=\E]+, mc5=\E]=, rmacs=\ERg, rmso=\ER@, sgr0=\ER@,
+       smacs=\ERG, smso=\ERD,
+
+#### Atari ST
+#
+
+# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
+atari|atari st,
+       OTbs, am,
+       cols#80, it#8, lines#25,
+       clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
+       ed=\EJ, el=\EK, ht=^I, il1=\EL, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, ri=\EI, rmso=\Eq, sgr0=\Eq, smso=\Ep,
+# UniTerm terminal program for the Atari ST:  49-line VT220 emulation mode
+# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
+uniterm|uniterm49|UniTerm VT220 emulator with 49 lines,
+       lines#49,
+       is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H,
+       use=vt220,
+# MiNT VT52 emulation. 80 columns, 25 rows.
+# MiNT is Now TOS, the operating system which comes with all Ataris now
+# (mainly Atari Falcon). This termcap is for the VT52 emulation you get
+# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode
+# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996
+st52|Atari ST with VT52 emulation,
+       am, km,
+       cols#80, lines#25,
+       bel=^G, civis=\Ef, clear=\EH\EJ, cnorm=\Ee, cr=^M, cub1=\ED,
+       cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
+       ind=^J, ka1=\E#7, ka3=\E#5, kb2=\E#9, kbs=^H, kc1=\E#1,
+       kc3=\E#3, kclr=\E#7, kcub1=\E#K, kcud1=\E#P, kcuf1=\E#M,
+       kcuu1=\E#H, kf0=\E#D, kf1=\E#;, kf2=\E#<, kf3=\E#=, kf4=\E#>,
+       kf5=\E#?, kf6=\E#@, kf7=\E#A, kf8=\E#B, kf9=\E#C, khome=\E#G,
+       kil1=\E#R, kind=\E#2, kri=\E#8, lf0=f10, nel=^M^J, rc=\Ek,
+       ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq,
+       smcup=\Ee, smso=\Ep,
+
+#### Commodore Business Machines
+#
+# Formerly located in West Chester, PA; went spectacularly bust in 1994
+# after years of shaky engineering and egregious mismanagement.  Made one
+# really nice machine (the Amiga) and boatloads of nasty ones (PET, C-64,
+# C-128, VIC-20).  The C-64 is said to have been the most popular machine
+# ever (most units sold); they can still be found gathering dust in closets
+# everywhere.
+#
+
+# From: Kent Polk <kent@swrinde.nde.swri.edu>, 30 May 90
+# Added a few more entries, converted caret-type control sequence (^x) entries
+# to '\0xx' entries since a couple of people mentioned losing '^x' sequences.
+# Corrections by Ty Sarna <tsarna@endicor.com>, Sat Feb 28 18:55:15 1998
+#
+# :as:, :ae:                   Support for alternate character sets.
+# :ve=\E[\040p:vi=\E[\060\040p:        cursor visible/invisible.
+# :xn:  vt100 kludginess at column 80/NEWLINE ignore after 80 cols(Concept)
+#     This one appears to fix a problem I always had with a line ending
+#     at 'width+1' (I think) followed by a blank line in vi. The blank
+#     line tended to disappear and reappear depending on how the screen
+#     was refreshed. Note that this is probably needed only if you use
+#     something like a Dnet Fterm with the window sized to some peculiar
+#     dimension larger than 80 columns.
+# :k0=\E9~:    map F10 to k0 - could have F0-9 -> k0-9, but ... F10 was 'k;'
+# (amiga: removed obsolete :kn#10:,
+# also added empty <acsc> to suppress a warning --esr)
+amiga|Amiga ANSI,
+       OTbs, am, bw, xenl,
+       cols#80, lines#24,
+       acsc=, bel=^G, blink=\E[7;2m, bold=\E[1m, cbt=\E[Z,
+       civis=\E[0 p, clear=\E[H\E[J, cnorm=\E[ p, cub=\E[%p1%dD,
+       cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
+       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+       indn=\E[%p1%dS, invis=\E[8m, is2=\E[20l, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[9~,
+       kf1=\E[0~, kf2=\E[1~, kf3=\E[2~, kf4=\E[3~, kf5=\E[4~,
+       kf6=\E[5~, kf7=\E[6~, kf8=\E[7~, kf9=\E[8~, rev=\E[7m,
+       ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmso=\E[m, rmul=\E[m,
+       rs1=\Ec, sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
+
+# From: Hans Verkuil <hans@wyst.hobby.nl>, 4 Dec 1995
+# (amiga: added empty <acsc> to suppress a warning.
+# I'm told this entry screws up badly with AS225, the Amiga
+# TCP/IP package once from Commodore, and now sold by InterWorks.--esr)
+amiga-h|Hans Verkuil's Amiga ANSI,
+       OTbs, bw, msgr,
+       cols#80, lines#24,
+       acsc=, bel=^G, blink=\2337;2m, bold=\2331m, cbt=\233Z,
+       civis=\2330 p, clear=\233H\233J, cnorm=\233 p, cr=^M,
+       cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
+       cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
+       cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
+       dim=\2332m, ech=\233%p1%dP, ed=\233J, el=\233K, flash=^G,
+       home=\233H, ht=^I, ich=\233%p1%d@, ich1=\233@, ind=\233S,
+       indn=\233%p1%dS, invis=\2338m, is2=\23320l, kbs=^H,
+       kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
+       kdch1=\177, kf0=\2339~, kf1=\2330~, kf2=\2331~, kf3=\2332~,
+       kf4=\2333~, kf5=\2334~, kf6=\2335~, kf7=\2336~, kf8=\2337~,
+       kf9=\2338~, nel=\233B\r, rev=\2337m, ri=\233T,
+       rin=\233%p1%dT, rmacs=^O, rmcup=\233?7h, rmso=\2330m,
+       rmul=\2330m, rs1=\Ec, sgr0=\2330m, smacs=^N, smcup=\233?7l,
+       smso=\2337m, smul=\2334m,
+
+# From: Henning 'Faroul' Peters <Faroul@beyond.kn-bremen.de>, 25 Sep 1999
+#
+# Pavel Fedin added
+#      Home    Shift+Left
+#      End     Shift+Right
+#      PgUp    Shift+Up
+#      PgDn    Shift+Down
+amiga-8bit|Amiga ANSI using 8-bit controls,
+       acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L,
+       ind=\204, indn@, kend=\233 @, khome=\233 A, knp=\233S,
+       kpp=\233T, ri=\215, rin@, use=amiga-h,
+
+# From: Ruediger Kuhlmann <terminfo@ruediger-kuhlmann.de>, 18 Jul 2000
+# requires use of appropriate preferences settings.
+amiga-vnc|Amiga using VNC console (black on light gray),
+       am, da, db, msgr, ndscr,
+       btns#1, colors#16, cols#80, lines#24, lm#0, ncv#0, pairs#256,
+       bel=^G, blink=\E[7;2m, bold=\E[1m, civis=\E[0p,
+       clear=\E[H\E[J, cnorm=\E[p\E[>?6l, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\E[>?6h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[1M, ed=\E[J, el=\E[K, flash=^G,
+       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
+       indn=\E[%p1%dS, invis=\E8m,
+       is2=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h,
+       kbs=^H, kcbt=\233Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kdch1=\177, kf0=\E[9~, kf1=\E[0~, kf2=\E[1~,
+       kf3=\E[2~, kf4=\E[3~, kf5=\E[4~, kf6=\E[5~, kf7=\E[6~,
+       kf8=\E[7~, kf9=\E[8~, khlp=\E[?~, khome=\E[44~, kll=\E[45~,
+       kmous=\E[M, knp=\E[42~, kpp=\E[41~, nel=\EE, oc=\E[0m,
+       rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=\E[?7h\E[r\E[J,
+       rmkx=\E[?1l, rmso=\E[21m, rmul=\E[24m, rs1=\Ec,
+       rs2=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h,
+       setab=\E[%?%p1%{8}%>%t%'F'%p1%+%d%e4%p1%d%;m,
+       setaf=\E[%?%p1%{8}%>%t%'2'%p1%+%d%e3%p1%d%;m,
+       sgr0=\E[0m\017\E[30;85;>15m, smcup=\E[?7h, smkx=\E[?1h,
+       smso=\E[1m, smul=\E[4m,
+
+# MorphOS on Genesi Pegasos
+# By Pavel Fedin <sonic_amiga@rambler.ru>
+morphos,
+       acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L,
+       ind=\204, indn@, kend=\23345~, kf11=\23320~, kf12=\23321~,
+       khome=\23344~, kich1=\23340~, knp=\23342~, kpp=\23341~,
+       ri=\215, rin@, use=amiga-h,
+
+# Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA>
+#      I'm trying to write a termcap for a commodore b-128, and I'm
+# having a little trouble. I've had to map most of my control characters
+# to something that unix will accept (my delete-char is a ctrl-t, etc),
+# and create some functions (like cm), but thats life.
+#      The problem is with the arrow keys - right, and up work fine, but
+# left deletes the previous character and down I just can't figure out.
+# Jove knows what I want, but I don't know what it's sending to me (it
+# isn't thats bound to next-line in jove).
+#      Anybody got any ideas? Here's my termcap.
+# DAG -- I changed his "^n" entries to "\n"; see if that works.
+#
+commodore|b-128|Commodore B-128 micro,
+       am, bw,
+       OTdN#20, cols#80, lines#24, pb#150,
+       OTbc=^H, OTnl=^M, clear=\E\006$<10/>, cr=^M, cud1=^J,
+       cuf1=^F, cup=\E\013%p1%2d\,%p2%2d\,$<20/>, cuu1=^P,
+       dch1=\177$<10*/>, dl1=\Ed$<10*/>, el=\Eq$<10/>,
+       home=\E^E, ht=\011$<5/>, ich1=\E\n$<5/>, il1=\Ei$<10/>,
+       kcub1=^B, kcud1=^J, kcuf1=^F, kcuu1=^P, khome=\E^E, rmir=,
+       smir=,
+
+#### North Star
+#
+# North Star Advantage from Lt. Fickie <brl-ibd!fickie> via BRL
+northstar|North Star Advantage,
+       OTbs,
+       cols#80, lines#24,
+       clear=\004$<200/>,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<1/>, ed=\017$<200/>,
+       el=\016$<200/>, home=\034\032$<200/>,
+
+#### Osborne
+#
+# Thu Jul  7 03:55:16 1983
+#
+# As an aside, be careful; it may sound like an anomaly on the
+# Osborne, but with the 80-column upgrade, it's too easy to
+# enter lines >80 columns!
+#
+# I've already had several comments...
+# The Osborne-1 with the 80-col option is capable of being
+# 52, 80, or 104 characters wide; default to 80 for compatibility
+# with most systems.
+#
+# The tab is destructive on the Ozzie; make sure to 'stty -tabs'.
+osborne-w|osborne1-w|osborne I in 104-column mode,
+       msgr, ul, xt,
+       cols#104, lines#24,
+       bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, el=\ET, ich1=\EQ, il1=\EE, ind=^J, kcub1=^H, kcud1=^J,
+       kcuf1=^L, kcuu1=^K, rmso=\E(, rmul=\Em, smso=\E), smul=\El,
+# Osborne I    from ptsfa!rhc (Robert Cohen) via BRL
+osborne|osborne1|osborne I in 80-column mode,
+       OTbs, am, mir, msgr, ul, xhp,
+       OTdB#4, cols#80, lines#24,
+       clear=^Z, cub1=\010$<4>, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+       dch1=\EW$<4/>, dl1=\ER, el=\ET, il1=\EE, is2=^Z, kbs=^H,
+       kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, rmir=, rmso=\E),
+       rmul=\Em, smir=\EQ, smso=\E(, smul=\El,
+#
+# Osborne Executive definition from BRL
+# Similar to tvi920
+# Added by David Milligan and Tom Smith (SMU)
+osexec|Osborne executive,
+       OTbs, am,
+       OTug#1, cols#80, lines#24, xmc#1,
+       OTnl=^J, bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE,
+       is2=\Eq\Ek\Em\EA\Ex0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
+       kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r,
+       kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r,
+       kf9=^AI\r, rmir=, rmso=\Ek, rmul=\Em, smir=, smso=\Ej,
+       smul=\El, tbc=\E3,
+
+#### Console types for obsolete UNIX clones
+#
+# Coherent, Minix, Venix, and several lesser-known kin were OSs for 8088
+# machines that tried to emulate the UNIX look'n'feel.  Coherent and Venix
+# were commercial, Minix an educational tool sold in conjunction with a book.
+# Memory-segmentation limits and a strong tendency to look like V7 long after
+# it was obsolete made all three pretty lame.  Venix croaked early.  Coherent
+# and Minix were ported to 32-bit Intel boxes, only to be run over by a
+# steamroller named `Linux' (which, to be fair, traces some lineage to Minix).
+# Coherent's vendor, the Mark Williams Company, went belly-up in 1994.  There
+# are also, I'm told, Minix ports that ran on Amiga and Atari machines and
+# even as single processes under SunOS and the Macintosh OS.
+#
+
+# This is the entry provided with minix 1.7.4, with bogus :ri: removed.
+minix|minix console (v1.7),
+       am, xenl,
+       cols#80, it#8, lines#25,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
+       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       is2=\E[0m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S,
+       kf5=\E[G, khome=\E[H, lf0=End, lf1=PgUp, lf2=PgDn, lf3=Num +,
+       lf4=Num -, lf5=Num 5, nel=^M^J, rev=\E[7m, ri=\EM,
+       rmso=\E[0m, rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
+# Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil>
+minix-old|minix console (v1.5),
+       xon,
+       cols#80, it#8, lines#25,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
+       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S, kf5=\E[G,
+       khome=\E[H, nel=^M^J, rev=\E[7m, ri=\EM, rmso=\E[0m,
+       rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
+# The linewrap option can be specified by editing /usr/include/minix/config.h
+# before recompiling the minix 1.5 kernel.
+minix-old-am|minix console with linewrap,
+       am, use=minix-old,
+
+pc-minix|minix console on an Intel box,
+       use=klone+acs, use=minix,
+
+# According to the Coherent 2.3 manual, the PC console is similar
+# to a z19. The differences seem to be (1) 25 lines, (2) no status
+# line, (3) standout is broken, (4) ins/del line is broken, (5)
+# has blinking and bold.
+pc-coherent|pcz19|coherent|IBM PC console running Coherent,
+       am, mir,
+       cols#80, it#8, lines#25,
+       bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EN,
+       ed=\EJ, el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, ri=\EI, rmir=\EO,
+       rmso=\Eq, sgr0=\Eq, smir=\E@, smso=\Ep,
+
+# According to the Venix 1.1 manual, the PC console is similar
+# to a DEC vt52.  Differences seem to be (1) arrow keys send
+# different strings, (2) enhanced standout, (3) added insert/delete line.
+# Note in particular that it doesn't have automatic margins.
+# There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they
+# not described here because this derives from an old termcap entry.
+pc-venix|venix|IBM PC console running Venix,
+       cols#80, it#8, lines#25,
+       bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
+       ed=\EJ, el=\EK, ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\EK,
+       kcud1=\EP, kcuf1=\EM, kcuu1=\EH, khome=\EG, ri=\EI,
+
+#### Miscellaneous microcomputer consoles
+#
+# If you know anything more about any of these, please tell me.
+#
+
+# The MAI Basic Four computer was obsolete at the end of the 1980s.
+# It may be used as a terminal by putting it in "line" mode as seen on
+# one of the status lines.
+# Initialization is similar to CIT80. <is2> will set ANSI mode for you.
+# Hardware tabs set by <if> at 8-spacing.  Auto line wrap causes glitches so
+# wrap mode is reset by <cvvis>.  Using <ind>=\E[S caused errors so I
+# used \ED instead.
+# From: bf347@lafn.org (David Lawyer), 28 Jun 1997
+mai|basic4|MAI Basic Four in ansi mode,
+       am, da, db, mir, msgr,
+       cols#82, it#8, lines#25,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=^]^_, cnorm=\E[?7h,
+       cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=^X,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, cvvis=\E[?7l, dch1=\E[1P,
+       dl1=\E[M, ed=^_, el=^^, home=^], ht=^I,
+       if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED,
+       is2=\E>\E[?1h\E[?7h\E[?5l\017\E(B\E[m\E[20l\E[1;24r\E[24;1H,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
+       kf7=\EOV, kf8=\EOW, nel=^M\ED, rc=\E8, rev=\E[7m, ri=\E[T,
+       rmir=\E[4l, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m,
+       smir=\E[4h, smso=\E[7m, smul=\E[4m,
+# basis from Peter Harrison, Computer Graphics Lab, San Francisco
+#   ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA
+#
+# On Sat, 7 Aug 1999, Torsten Jerzembeck <toje@nightingale.ms.sub.org> wrote:
+# The Basis 108 was a Apple II clone, manufactured by the "Basis
+# Mikrocomputer GmbH" in Munster, Germany (the company still exists today,
+# about 1,5 km from where I live, but doesn't build own computers any
+# more). A Basis 108 featured a really heavy (cast aluminium?) case, was
+# equipped with one or two 5.25" disk drives, had a monochrome and colour
+# video output for a TV set or a dedicated monitor and several slots for
+# Apple II cards. Basis 108 were quite popular at german schools before
+# the advent of the IBM PC. They run, for example, the UCSD Pascal
+# development system (which I used even in 1993 to program the steering
+# and data recording for our school's experimental solar panel :), Apple DOS
+# or CP/M.
+# (basis: removed obsolete ":ma=^K^P^R^L^L :nl=5000*^J:" -- esr)
+basis|BASIS108 computer with terminal translation table active,
+       clear=\E*$<300/>, cud1=\n$<5000/>, ed=\EY, el=\ET, kbs=^H,
+       kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, rmso=\E), sgr0=\E),
+       smso=\E(, use=adm3a,
+# luna's BMC terminal emulator
+luna|luna68k|LUNA68K Bitmap console,
+       cols#88, lines#46, use=ansi-mini,
+megatek|pegasus workstation terminal emulator,
+       am, os,
+       cols#83, lines#60,
+# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived
+# interface (pre-Macintosh by several years) that went nowhere.
+xerox820|x820|Xerox 820,
+       am,
+       cols#80, lines#24,
+       bel=^G, clear=1^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^Q, el=^X,
+       home=^^, ind=^J,
+
+#### Videotex and teletext
+#
+
+# \E\:1}       switch to te'le'informatique mode (ascii terminal/ISO 6429)
+# \E[?3l       80 columns
+# \E[?4l       scrolling on
+# \E[12h       local echo off
+# \Ec          reset: G0 U.S. charset (to get #,@,{,},...), 80 cols, clear screen
+# \E)0         G1 DEC set (line graphics)
+#
+# From: Igor Tamitegama <igor@ppp1493-ft.teaser.fr>, 18 Jan 1997
+m2-nam|minitel|minitel-2|minitel-2-nam|France Telecom Minitel 2 mode te'le'informatique,
+       OTbs, eslok, hs, xenl,
+       cols#80, it#8, lines#24, wsl#72, xmc#0,
+       acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx, bel=^G,
+       blink=\E[5m, bold=\E[1m, civis=\E[<1h, clear=\E[H\E[J,
+       cnorm=\E[<1l, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, flash=^G, fsl=^J,
+       home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J, ip=$<7/>,
+       is1=\E\:1}\Ec\E[?4l\E[12h, is2=\Ec\E[12h\E)0,
+       is3=\E[?3l kbs=\010, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kf0=\EOp,
+       kf1=\EOq, kf10=\EOp, kf2=\EOr, kf3=\EOs, kf4=\EOt, kf5=\EOu,
+       kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, khome=\E[H,
+       kich1=\E[4h, kil1=\E[4l, knp=\EOn, kpp=\EOR, ll=\E[24;80H,
+       mc0=\E[i, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+       rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+       rs1=\Ec\E[?4l\E[12h, rs2=\Ec\E)0, sc=\E7, sgr0=\E[m,
+       smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=^_@A,
+       u6=\E[%i%d;%dR, u7=\E[6n,
+
+# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998
+#
+minitel1|minitel 1,
+       am, bw, eslok, hs, hz, msgr,
+       colors#8, cols#40, lines#24, pairs#8,
+       acsc=+.\,\,./f0g1, bel=^G, blink=\EH, civis=^T, clear=^L,
+       cnorm=^Q, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
+       cup=\037%p1%{65}%+%c%p2%{65}%+%c, cuu1=^K, el=^X,
+       enacs=^Y, fsl=^J, home=^^, ind=^J,
+       is2=\E;`ZQ\E\:iC\E\:iE\021, nel=^M^J, op=\EG,
+       rep=%p1%c\022%p2%{63}%+%c, rev=\E], ri=^K, rmso=\E\\,
+       setf=\E%?%p1%{1}%=%tD%e%p1%{3}%=%tF%e%p1%{4}%=%tA%e%p1%{6}%=%tC%e%p1%{64}%+%c%;,
+       sgr=%?%p1%t\E]%;%?%p3%t\E]%;%?%p4%t\EH%;,
+       sgr0=\EI\E\\, smso=\E], tsl=\037@%p1%{65}%+%c,
+# is2=Fnct TE, Fnct MR, Fnct CM et pour finir: curseur ON.
+minitel1b|minitel 1-bistandard (in 40cols mode),
+       mir,
+       cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
+       cuu=\E[%p1%dA, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el1=\E[1K, il=\E[%p1%dL, il1=\E[L,
+       is1=\E;iYA\E;jYC, kclr=\E[2J, kctab=^I, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
+       kel=^X, khome=\E[H, kich1=\E[4h, kil1=\E[L, rmir=\E[4l,
+       smir=\E[4h, smkx=\E;iYA\E;jYC, use=minitel1,
+# <rmkx> posait des problemes (logout en sortant de vi).
+minitel1b-80|minitel 1-bistandard (standard teleinformatique),
+       am@, bw@, hz@,
+       colors@, cols#80, it#8, pairs@,
+       blink=\E[5m, bold=\E[1m, civis=\037@A\024\n,
+       clear=\E[H\E[2J, cnorm=\037@A\021\n, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
+       ht=^I, ind=\ED, is1@, is2@, kent=\EOM, kf0=\EOp, kf1=\EOq,
+       kf2=\EOr, kf3=\EOs, kf4=\EOt, kf5=\EOu, kf6=\EOv, kf7=\EOw,
+       kf8=\EOx, kf9=\EOy, nel=\EE, op@, rc=\E8, rep@, rev=\E[7m,
+       ri=\EM, rmkx@, rmso=\E[27m, rmul=\E[24m, sc=\E7, setf@,
+       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
+       sgr0=\E[m, smkx@, smso=\E[7m, smul=\E[4m, use=minitel1b,
+
+######## OBSOLETE VDT TYPES
+#
+# These terminals are *long* dead -- these entries are retained for
+# historical interest only.
+
+#### Amtek Business Machines
+#
+
+# (abm80: early versions of this entry apparently had ":se=\E^_:so=\E^Y",
+# but these caps were commented out in 8.3; also, removed overridden
+# ":do=^J:" -- esr)
+abm80|amtek business machines 80,
+       OTbs, am, bw,
+       cols#80, lines#24,
+       cbt=^T, clear=\E^\, cub1=^H, cud1=\E^K, cuf1=^P,
+       cup=\E\021%p2%{32}%+%c%p1%{32}%+%c, cuu1=\E^L,
+       dl1=\E^S, ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z,
+
+#### Bell Labs blit terminals
+#
+# These were AT&T's official entries.  The 5620 FAQ maintained by
+# David Breneman <daveb@dgtl.com> has this to say:
+#
+#  Actually, in the beginning was the Jerq, and the Jerq was white with a
+#  green face, and Locanthi and Pike looked upon the Jerq and said the Jerq
+#  was good.  But lo, upon the horizon loomed a mighty management-type person
+#  (known now only by the initials VP) who said, the mighty Jerq must stay
+#  alone, and could not go forth into the world. So Locanthi and Pike put the
+#  Jerq to sleep, cloned its parts, and the Blit was brought forth unto the
+#  world. And the Jerq lived the rest of its days in research, but never
+#  strayed from those paths.
+#
+#  In all seriousness, the Blit was originally known as the Jerq, but when
+#  it started to be shown outside of the halls of the Bell Labs Research
+#  organization, the management powers that be decided that the name could
+#  not remain. So it was renamed to be Blit. This was in late 1981.
+#
+# (The AT&T 5620 was the commercialized Blit.  Its successors were the 630,
+# 730, and 730+.)
+#
+
+blit|jerq|blit running teletype rom,
+       am, eo, ul, xon,
+       cols#87, it#8, lines#72,
+       bel=^G, clear=^L, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
+       cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
+       dch=\Ee%p1%{32}%+%c, dch1=\Ee!, dl=\EE%p1%{32}%+%c,
+       dl1=\EE!, el=\EK, ht=^I, ich=\Ef%p1%{32}%+%c, ich1=\Ef!,
+       il=\EF%p1%{32}%+%c, il1=\EF!, ind=^J, kbs=^H, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ex, kf2=\Ey, kf3=\Ez,
+
+# (cbblit: here's a BSD termcap that says <cud1=\EG> -- esr)
+cbblit|fixterm|blit running columbus code,
+       cols#88,
+       ed=\EJ, flash=\E^G, ich1@, mc4=^T, mc5=^R, mc5p=\EP%p1%03d,
+       rmir=\ER, rmso=\EV!, rmul=\EV", smir=\EQ, smso=\EU!,
+       smul=\EU", use=blit,
+
+oblit|ojerq|first version of blit rom,
+       am, da, db, eo, mir, ul, xon,
+       cols#88, it#8, lines#72,
+       bel=^G, clear=^L, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
+       cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dch1=\EO,
+       dl=\Ee%p1%{32}%+%c, dl1=\EE, ed=\EJ, el=\EK, flash=\E^G,
+       ht=^I, il=\Ef%p1%{32}%+%c, il1=\EF, ind=^J, kbs=^H, rmir=\ER,
+       smir=\EQ,
+
+#### Bolt, Beranek & Newman (bbn)
+#
+# The BitGraph was a product of the now-defunct BBN Computer Corporation.
+# The parent company, best known as the architects of the Internet, is
+# still around.
+#
+# Jeff DelPapa <dp@world.std.com> writes:
+# The bitgraph was a large white box that contained a monochrome bitmap
+# display, and a 68000 to run it.  You could download code and run it on
+# the cpu, it had 128kb (I think) of memory.  I used one in the late
+# 70's, sure beat a vt100.  It had one strange feature tho -- it used
+# the cpu to bitblt pixels to scroll, it took longer than the refresh
+# rate, and looked like a rubber sheet stretching, then snapping
+# upwards.  It had everything the early mac had, except a floppy drive a
+# small screen (it had a 17" crisp beauty) and a real OS. They (Bolt
+# Beranek and Neuman) sold at most a few hundred of them to the real
+# world.  DOD may have bought more...
+#
+
+# Entries for the BitGraph terminals.  The problem
+# with scrolling in vi can only be fixed by getting BBN to put
+# smarter scroll logic in the terminal or changing vi or padding
+# scrolls with about 500 ms delay.
+#
+# I always thought the problem was related to the terminal
+# counting newlines in its input buffer before scrolling and
+# then moving the screen that much. Then vi comes along and
+# paints lines in on the bottom line of the screen, so you get
+# this big white gap.
+
+bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video),
+       flash=\E[?5h$<200/>\E[?5l, is2=\E>\E[?5l\E[?7h,
+       use=bg2.0,
+bg2.0rv|bg3.10rv|bbn bitgraph 2.0 (reverse video),
+       flash=\E[?5l$<200/>\E[?5h, is2=\E>\E[?5h\E[?7h,
+       use=bg2.0,
+bg2.0|bg3.10|bbn bitgraph 2.0 or later (no init),
+       OTbs, xenl,
+       cols#85, lines#64,
+       bel=^G, clear=\E[H\E[J$<150>, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, dl1=\E[M$<2*>,
+       ed=\E[J$<150>, el=\E[K$<2>, ht=^I, il1=\E[L$<2*>,
+       ind=\n$<280>, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+       kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=PF1,
+       lf2=PF2, lf3=PF3, lf4=PF4, rc=\E8, rmkx=\E>, rmso=\E[m, sc=\E7,
+       sgr0=\E[m, smkx=\E=, smso=\E[7m,
+
+bg1.25rv|bbn bitgraph 1.25 (reverse video),
+       flash=\E[?5l$<200/>\E[?5h, is2=\E>\E[?5h\E[?7h,
+       use=bg1.25,
+bg1.25nv|bbn bitgraph 1.25 (normal video),
+       flash=\E[?5h$<200/>\E[?5l, is2=\E>\E[?5l\E[?7h,
+       use=bg1.25,
+# (bg1.25: I added <rmam>/<smam> based on the init string -- esr)
+bg1.25|bbn bitgraph 1.25,
+       cols#85, lines#64,
+       bel=^G, clear=\E[H\E[J$<150>, cr=^M, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A,
+       dl1=\E[M$<2*>, ed=\E[J$<150>, el=\E[K$<2>, ht=^I,
+       il1=\E[L$<2*>, ind=\n$<280>, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\ES,
+       lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, ll=\E[64;1H, rmam=\E[?7l,
+       rmkx=\E>, rmso=\E[m, sgr0=\E[m, smam=\E[?7h, smkx=\E=,
+       smso=\E[7m,
+
+#### Bull (bq, dku, vip)
+#
+# (Adapted for terminfo; AIX extension capabilities translated -- esr)
+
+#============================================#
+# BULL QUESTAR 210 `SDP' terminals emulation #
+#============================================#
+#
+# Description written by R.K.Saunders (Bull Transac)
+#
+# Modifications written by F. Girard (Bull MTS)
+#              19-05-87 V02.00.01
+#              17-12-87 V02.00.02
+#              15-09-89 V02.00.05
+#
+#      Typical technical selections F1 (modes SDP/ROLL):
+# -------------------------------------------------------
+# |   01   02   03   04   05   06   07   08   09   10   |
+# |  1010 0011 1010 0110 0110 0001 0100 0000 0000 0000  |
+# |                                                     |
+# |   11   12   13   14   15   16   17   18   19   20   |
+# |  0000 0110 100? 0000 0000 0000 0001 0000 0000 0001  |
+# |                                                     |
+# |   21   22   23   24   25   26   27   28   29   30   |
+# |  0011 0000 0001 1000 0000 0000 0000 0000 0000 0000  |
+# |                                                     |
+# |   31   32   33   34   35   36   37   38   39   40   |
+# |  1010 0011 0000 0000 0000 0000 0000 0000 0000 0000  |
+# -------------------------------------------------------
+#      Typical firmware identification F5 "etat 6":
+#  P287.02.04b (AZERTY)
+#  P297.11.04  (24-pin: 2732)  or P798.11.04   (28-pin: 2764)
+#  P298.03.03  (monochrome)    or P374.03.02   (colour)
+#
+#      SM SDP mode (VIP command):      ^[[?=h
+#      RIS (erases screen):            ^[c
+#      DMI disable keyboard:           ^[`
+#      SM double rendition mode:       ^[[?>h
+#      RM solicited status mode:       ^[[5l
+#      RM character mode:              ^[[>l
+#      RM echoplex mode:               ^[[12l
+#      RM column tab mode:             ^[[18l
+#      RM forbid SS2 keyboard mode:    ^[[?<l
+#      SM scroll mode:                 ^[[=h
+#      FCF enable XON/XOFF:            ^[P1s^[\
+#      MTL select end msg character:   ^[[^Wp
+#      EMI enable keyboard:            ^[b
+#      RIS retour etat initial:        ^[c
+#      enable FC keypad:               ^[[?<h,
+#      MPW map status line window:     ^[PY99:98^[\
+#      SCP select status line:         ^[[0;98v
+#      ED erase entire partition:      ^[[2J
+#      SCP select main partition:      ^[[v
+#      SM character insertion mode:    ^[[4h
+#      RM character replacement mode:  ^[[4l
+#      COO cursor on:                  ^[[r
+#      COO cursor off:                 ^[[1r
+#      SGR dim (turquoise) rev attr:   ^[[2;7m
+#      SGR Data normal attr:           ^[[m
+#      SO Line-graphic mode ON:        ^N
+#      SI Line-graphic mode OFF:       ^O
+#      MC start routing to printer:    ^[[5i
+#      MC stop routing to printer:     ^M^[[4i
+#
+
+# This entry covers the following terminals:
+# dku7102, tws2102, and tws models 2105 to 2112
+tws-generic|dku7102|Bull Questar tws terminals,
+       am, eslok, hs, mir, msgr, xenl, xhp@, xon,
+       cols#80, it#8, lines#24, wsl#80,
+       acsc=``aaffggj)k\,l&m#n/ooppq*rrsst'u-v+w.x%yyzz{{||}}~~,
+       bel=^G, blink=\E[0;5m, cbt=\E[Z, civis=\E[1r, clear=\E[2J,
+       cnorm=\E[r, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
+       cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dim=\E[0;2m, dl=\E[%p1%dM, dl1=\E[M,
+       dsl=\EPY99\:98\E\\\E[0;98v\E[2J\E[v, ed=\E[J, el=\E[K,
+       fsl=\E[v, home=\E[H, ht=\E[I, hts=\EH, il=\E[%p1%dL,
+       il1=\E[L, ind=^J, invis=\E[0;8m,
+       is1=\E[?=h\Ec\E`\E[?>h\EPY99\:98\E\\,
+       is2=\E[5;>;12;18;?<l\E[=h\EP1s\E\\\E[\027p,
+       is3=\Eb\E[?<h, kbs=^H, kcbt=\E[Z, kctab=\E[g, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
+       ked=\E[J, kel=\E[K, kf1=\E[1u\027, kf2=\E[2u\027,
+       kf3=\E[3u\027, kf4=\E[4u\027, kf5=\E[5u\027,
+       kf6=\E[6u\027, kf7=\E[7u\027, kf8=\E[8u\027, khome=\E[H,
+       khts=\EH, kil1=\E[L, krmir=\E[4l, ll=\E[H\E[A, mc0=\E[0i,
+       mc4=\r\E[4i, mc5=\E[5i, rev=\E[0;7m, rmacs=^O,
+       rmcup=\E[0;98v\E[2J\E[v, rmir=\E[4l, rmso=\E[m,
+       rmul=\E[m, rs2=\E[?=h\Ec, s0ds=^O, s1ds=^N,
+       sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, smcup=\E[?>h\EPY99\:98\E\\,
+       smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[2g,
+       tsl=\EPY99\:98\E\\\E[0;98v\E[2;7m,
+tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA,
+       dsl=\E[0;98v\E[2J\E[v, fsl=\E[v, is3=\Eb, tsl=\E[0;98v,
+       use=tws-generic,
+tws2103|xdku|BULL Questar tws2103,
+       ht=^I, use=tws-generic,
+tws2103-sna|dku7103-sna|BULL Questar tws2103 for SNA,
+       ht=^I, use=tws2102-sna,
+dku7102-old|BULL Questar 200 DKU7102 (microcode version < 6),
+       clear=\E[2J\E[H, cup@, dl@, dl1@,
+       dsl=\EPY99\:98\E\\\E[0;98v\E[2J\E[H\E[v, el=\E[K\E[m,
+       il@, il1@, tsl=\EPY99\:98\E\\\E[0;98v\E[H\E[2;7m,
+       use=tws-generic,
+dku7202|BULL Questar 200 DKU7202 (colour/character attributes),
+       blink=\E[0;2;4m, dim=\E[0;5m, ht=^I, is3=\E[?3h\Eb,
+       smso=\E[0;4;5;7m, smul=\E[0;2m, use=tws-generic,
+
+#=========================================================#
+# BULL QUESTAR 303 & 310 `DEC VT 320' terminals emulation #
+#=========================================================#
+#
+# Description written by J. Staerck (BULL SA)
+#       Copyright (c) 1989 BULL SA
+#---------------------------------------------------------------------------
+#  This entry is used for terminals with vt320 emulation mode
+#  and following set-up :
+#    8 bit ISO Latin Character Set (ISO 8859-1),
+#    7 bit Control Characters,
+#    80 columns screen.
+#  Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300)
+#  They are used in string capabilities with vt220-320 emulation mode.
+#  In the following DEC definitions, two kinds of terminfo databases are
+#    provided :
+#    1. the first with Command Sequence Introducer starting with escape
+#       sequence in 7 bits characters ex. ESC [ : 2 chars. in 7-bit mode.
+#    2. the second with Command Sequence Introducer starting with escape
+#       sequence in 8 bits characters ex. ESC [ : 1 char. 'CSI' =x9B.
+#      Soft Terminal Reset             esc [ ! p
+#      RIS (erases screen):            esc c
+#      DECKPNM numeric keypad mode:    esc >
+#      DECKPAM applic. keypad mode:    esc =
+#      DECSTBM Scrolling region:       esc [ r
+#      SCS select G0 = US:             esc ( B
+#      SCS select G1 = line-graphic:   esc ) 0
+#      Select 7-bit C1 controls:       esc sp F
+#      Select 8-bit C1 controls:       esc sp G
+#      Select cursor home:             esc [  H
+#      Select erase screen:            esc [  J
+#      SM KAM lock keyboard:           esc [ 2 h
+#      RM KAM unlock keyboard:         esc [ 2 l
+#      SM SRM local echo off:          esc [ 1 2 h
+#      RM SRM local echo on:           esc [ 1 2 l
+#      SM LNM New line :               esc [ 2 0 h
+#      RM LNM return = CR only:        esc [ 2 0 l
+#      SM DECCKM cursor keys mode:     esc [ ? 1 h
+#      RM DECCKM appli. keys mode:     esc [ ? 1 l
+#      SM DECANM ANSI mode on:         esc [ ? 2 h
+#      RM DECANM ANSI mode off:        esc [ ? 2 l
+#      SM DECCOLM 132-column screen:   esc [ ? 3 h
+#      RM DECCOLM 80-column screen:    esc [ ? 3 l
+#      SM DECSCLM Smooth scroll:       esc [ ? 4 h
+#      RM DECSCLM Jump scroll:         esc [ ? 4 l
+#      SM DECSCNM screen light backgr. esc [ ? 5 h
+#      RM DECSCNM screen dark backgr.  esc [ ? 5 l
+#      SM DECOM move within margins:   esc [ ? 6 h
+#      RM DECOM move outside margins:  esc [ ? 6 l
+#      SM DECAWM auto right margin:    esc [ ? 7 h
+#      RM DECAWM auto right margin:    esc [ ? 7 l
+#      SM DECARM auto repeat:          esc [ ? 8 h
+#      RM DECARM auto repeat:          esc [ ? 8 l
+#      DECSASD Select active main:     esc [ 0 $ }
+#      DECSASD Select active status:   esc [ 1 $ }
+#      DECSSDT Select status none:     esc [ 0 $ ~
+#      DECSSDT Select status indic.:   esc [ 1 $ ~
+#      DECSSDT Select status host-wr:  esc [ 2 $ ~
+#      SM DECTCEM Visible cursor:      esc [ ? 2 5 h
+#      RM DECTCEM Invisible cursor:    esc [ ? 2 5 l
+#      SM DECNCRM 7 bits NCR set:      esc [ ? 4 2 h
+#      RM DECNCRM Multi or ISO latin:  esc [ ? 4 2 l
+#      SM DECNKM numeric keypad mode:  esc [ ? 6 6 h
+#      RM DECNKM numeric keypad appl.: esc [ ? 6 6 l
+#      SM DECKBUM clavier informatique esc [ ? 6 8 h
+#      RM DECKBUM clavier bureautique: esc [ ? 6 8 l
+#      DECSCL vt300 mode 8-bit ctrl:   esc [ 6 3 " p
+# or   DECSCL vt300 mode 8-bit ctrl:   esc [ 6 3 ; 0 " p
+# or   DECSCL vt300 mode 8-bit ctrl:   esc [ 6 3 ; 2 " p
+#      DECSCL vt300 mode 7-bit ctrl:   esc [ 6 3 ; 1 " p
+#      Char. and Line attributes:      esc [ Ps ... Ps m
+# with:  0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
+# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
+#
+
+# This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310
+bq300|Bull vt320 ISO Latin 1 80 columns terminal,
+       am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+       dsl=\E[1$}\E[2$~\n\E[0$}, ech=\E[%p1%dX, ed=\E[J,
+       el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+       flash=\E[?5h$<50>\E[?5l, fsl=\E[0$}, home=\E[H, ht=^I,
+       hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+       is1=\E[63;1"p\E[2h,
+       is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
+       is3=\E[0$}\E[?25h\E[2l\E[H\E[J, ka1=\EOw, ka3=\EOy,
+       kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, kf10=\E[21~,
+       kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+       kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+       kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS,
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
+       khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
+       mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
+       ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l,
+       rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\E[!p,
+       rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
+       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
+       sgr0=\E[0m\E(B, smacs=\E(0, smam=\E[?7h,
+       smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~,
+bq300-rv|Bull vt320 reverse 80 columns,
+       flash=\E[?5l$<50>\E[?5h,
+       is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
+       use=bq300,
+bq300-w|Bull vt320 132 columns,
+       cols#132, wsl#132,
+       is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
+       rs2=\E[?3h, use=bq300,
+bq300-w-rv|Bull vt320 reverse mode 132 columns,
+       cols#132, wsl#132,
+       flash=\E[?5l$<50>\E[?5h,
+       is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
+       rs2=\E[?3h, use=bq300,
+
+#  This entry is used for terminals with vt320 emulation mode
+#  and following set-up :
+#    8 bit ISO Latin Character Set (ISO 8859-1),
+#    8 bit Control Characters, (CSI coded as x9B for ESC [)
+#    80 columns screen.
+#      Soft Terminal Reset             csi ! p
+#      RIS (erases screen):            esc c
+#      DECKPNM numeric keypad mode:    esc >
+#      DECKPAM applic. keypad mode:    esc =
+#      DECSTBM Scrolling region:       esc [ r
+#      SCS select G0 = US:             esc ( B
+#      SCS select G1 = line-graphic:   esc ) 0
+#      Select 7-bit C1 controls:       esc sp F
+#      Select 8-bit C1 controls:       esc sp G
+#      Select cursor home:             csi H
+#      Select erase screen:            csi J
+#      SM KAM lock keyboard:           csi 2 h
+#      RM KAM unlock keyboard:         csi 2 l
+#      SM SRM local echo off:          csi 1 2 h
+#      RM SRM local echo on:           csi 1 2 l
+#      SM LNM New line :               csi 2 0 h
+#      RM LNM return = CR only:        csi 2 0 l
+#      SM DECCKM cursor keys mode:     csi ? 1 h
+#      RM DECCKM appli. keys mode:     csi ? 1 l
+#      SM DECANM ANSI mode on:         csi ? 2 h
+#      RM DECANM ANSI mode off:        csi ? 2 l
+#      SM DECCOLM 132-column screen:   csi ? 3 h
+#      RM DECCOLM 80-column screen:    csi ? 3 l
+#      SM DECSCLM Smooth scroll:       csi ? 4 h
+#      RM DECSCLM Jump scroll:         csi ? 4 l
+#      SM DECSCNM screen light backgr. csi ? 5 h
+#      RM DECSCNM screen dark backgr.  csi ? 5 l
+#      SM DECOM move within margins:   csi ? 6 h
+#      RM DECOM move outside margins:  csi ? 6 l
+#      SM DECAWM auto right margin:    csi ? 7 h
+#      RM DECAWM auto right margin:    csi ? 7 l
+#      SM DECARM auto repeat:          csi ? 8 h
+#      RM DECARM auto repeat:          csi ? 8 l
+#      DECSASD Select active main:     csi 0 $ }
+#      DECSASD Select active status:   csi 1 $ }
+#      DECSSDT Select status none:     csi 0 $ ~
+#      DECSSDT Select status indic.:   csi 1 $ ~
+#      DECSSDT Select status host-wr:  csi 2 $ ~
+#      SM DECTCEM Visible cursor:      csi ? 2 5 h
+#      RM DECTCEM Invisible cursor:    csi ? 2 5 l
+#      SM DECNCRM 7 bits NCR set:      csi ? 4 2 h
+#      RM DECNCRM Multi or ISO latin:  csi ? 4 2 l
+#      DECSCL vt300 mode 8-bit ctrl:   csi 6 3 " p
+# or   DECSCL vt300 mode 8-bit ctrl:   csi 6 3 ; 0 " p
+#      DECSCL vt300 mode 7-bit ctrl:   csi 6 3 ; 1 " p
+#      Char. and Line attributes:      csi Ps ... Ps m
+# with:  0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
+# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
+# (bq300-8: <cub1>,<cuf1>,<cuu1>,<cud1>,<dl1>,<il1> to get under 1024 --esr)
+bq300-8|Bull vt320 full 8 bits 80 columns,
+       am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3, wsl#80,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\2335m, bold=\2331m, civis=\233?25l,
+       clear=\233H\233J, cnorm=\233?25h, cr=^M,
+       csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cud=\233%p1%dB,
+       cuf=\233%p1%dC, cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA,
+       dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM,
+       dsl=\2331$}\2332$~\n\2330$}, ech=\233%p1%dX, ed=\233J,
+       el=\233K, el1=\2331K, enacs=\E(B\E)0,
+       flash=\233?5h$<50>\233?5l, fsl=\2330$}, home=\233H,
+       ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, ind=\ED,
+       is1=\E[63;2"p\E[2h,
+       is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
+       is3=\2330$}\233?25h\2332l\233H\233J, ka1=\217w,
+       ka3=\217y, kb2=\217u, kbs=^H, kc1=\217q, kc3=\217s,
+       kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
+       kdch1=\2333~, kf1=\217P, kf10=\23321~, kf11=\23323~,
+       kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
+       kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
+       kf2=\217Q, kf20=\23334~, kf3=\217R, kf4=\217S, kf6=\23317~,
+       kf7=\23318~, kf8=\23319~, kf9=\23320~, kfnd=\2331~,
+       khlp=\23328~, kich1=\2332~, knp=\2336~, kpp=\2335~,
+       krdo=\23329~, kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3,
+       lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8,
+       rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l, rmcup=\233?7h,
+       rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
+       rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
+       sgr=\233%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
+       sgr0=\2330m\E(B, smacs=^N, smam=\233?7h,
+       smcup=\233?7l\233?1l\E(B, smir=\2334h, smso=\2337m,
+       smul=\2334m, tbc=\2333g, tsl=\2331$}\2332$~,
+bq300-8rv|Bull vt320 8-bit reverse mode 80 columns,
+       flash=\233?5l$<50>\233?5h,
+       is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
+       use=bq300-8,
+bq300-8w|Bull vt320 8-bit 132 columns,
+       cols#132, wsl#132,
+       is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
+       rs2=\233?3h, use=bq300-8,
+bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns,
+       cols#132, wsl#132,
+       flash=\233?5l$<50>\233?5h,
+       is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
+       rs2=\233?3h, use=bq300-8,
+
+#  This entry is used for terminals with vt320 emulation mode
+#  a 102 keys keyboard (PC scancode !) and following set-up :
+#    8 bit ISO Latin Character Set (ISO 8859-1),
+#    7 bit Control Characters,
+#    80 columns screen.
+bq300-pc|Questar 303 with PC keyboard ISO Latin 1 80 columns,
+       kbs=^H, kdch1=\E[3~, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
+       kf11=\E[29~, kf12=\E[31~, kf13@, kf14@, kf15@, kf16@, kf17@,
+       kf18@, kf19@, kf2=\E[18~, kf20@, kf3=\E[19~, kf4=\E[20~,
+       kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~,
+       kfnd@, khlp@, khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       krdo@, kslt@, lf1@, lf2@, lf3@, lf4@, use=bq300,
+bq300-pc-rv|Questar 303 with PC keyboard reverse mode 80 columns,
+       flash=\E[?5l$<50>\E[?5h,
+       is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
+       use=bq300-pc,
+bq300-pc-w|Questar 303 with PC keyboard 132 columns terminal,
+       cols#132, wsl#132,
+       is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
+       rs2=\E[?3h, use=bq300-pc,
+bq300-pc-w-rv|Questar 303 with PC keyboard reverse mode 132 columns,
+       cols#132, wsl#132,
+       flash=\E[?5l$<50>\E[?5h,
+       is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
+       rs2=\E[?3h, use=bq300-pc,
+#    8 bit ISO Latin Character Set (ISO 8859-1),
+#    8 bit Control Characters,
+#    80 columns screen.
+bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns,
+       kbs=^H, kdch1=\2333~, kend=\2334~, kf1=\23317~,
+       kf10=\23328~, kf11=\23329~, kf12=\23331~, kf13@, kf14@,
+       kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\23318~, kf20@,
+       kf3=\23319~, kf4=\23320~, kf5=\23321~, kf6=\23323~,
+       kf7=\23324~, kf8=\23325~, kf9=\23326~, kfnd@, khlp@,
+       khome=\2331~, kich1=\2332~, knp=\2336~, kpp=\2335~, krdo@,
+       kslt@, lf1@, lf2@, lf3@, lf4@, use=bq300-8,
+bq300-8-pc-rv|Questar 303 with PC keyboard full 8 bits reverse mode 80 columns,
+       flash=\E[?5l$<50>\E[?5h,
+       is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
+       use=bq300-8-pc,
+bq300-8-pc-w|Questar 303 with PC keyboard full 8 bits 132 columns,
+       cols#132, wsl#132,
+       is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
+       rs2=\E[?3h, use=bq300-8-pc,
+bq300-8-pc-w-rv|Questar 303 with PC keyboard full 8 bits reverse 132 columns,
+       cols#132, wsl#132,
+       flash=\E[?5l$<50>\E[?5h,
+       is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
+       rs2=\E[?3h, use=bq300-8-pc,
+
+#======================================================#
+# BULL QUESTAR 310 `VIP 7800/8800' terminals emulation #
+#======================================================#
+
+# normal mode, 8 bits, 80 columns terminal.
+#      RES reset :                     ^[e
+#      RIS reset initial state:        ^[c
+#      BLE bell enable                 ^[h
+#      BLD bell disable                ^[g
+#      CAMS char. attr. mode set       ^[[D
+#      CAMR char. attr. mode reset     ^[[G
+#      CLR clear                       ^[`
+#      KBU keyboard unlock (set)       ^[[W
+#      KBL keyboard lock (reset)       ^[[X
+#      CM  character mode (async.)     ^[k
+#      NEP non echoplex mode (by host) ^[l
+#      EP  echoplex mode (by host)     ^[m
+#      IM  insert mode set             ^[[I
+#      IM  insert mode reset           ^[[J
+#      RMS roll mode set               ^[r
+#      RMR roll mode reset             ^[q
+#      SM78 set mode vip7800           ^[[1q
+#      SD  scroll up   (72 lines)      ^[[0s
+#      SD  scroll down (72 lines)      ^[[1s
+#      RBM block mode reset            ^[[E
+#      SLS status line set             ^[w
+#      SLR status line reset           ^[v
+#      SLL status line lock            ^[O
+#      LGS Line-graphic mode set       ^[G
+#      LGR Line-graphic mode reset     ^[F
+#      TBC tab clear (at cursor pos.)  ^[[g
+#      TBI tab initialize              ^[[N
+#      TBS tab set (at cursor pos.)    ^[p
+#      PDS  print data space           ^[[0p
+#      PHD  print host data            ^[[3p
+#      PDT  print data terminator      ^[[<p
+#      PRES print adapter reset        ^[[2p
+#      SSPR multi-part. reset          ^[[<>u
+#      SSP0 partition 0 set            ^[[00u
+#      SSP1 partition n format 1       ^[[PnPnSTRINGu
+#      SSP2 partition n format 2       ^[[PnPnSTRINGu
+#      SSP3 partition n format 3       ^[[PnPnu
+#      ATR attribute (visual)
+#          blink :                     ^[sB
+#          dim :                       ^[sL
+#          hide (blank) :              ^[sH
+#          restore :                   ^[sR
+#          inverse video :             ^[sI
+#          prot. :                     ^[sP
+#          underline :                 ^[s_
+#          reset :                     ^{
+#
+# This covers the vip7800 and BQ3155-vip7800
+vip|Bull Questar 3155-7800,
+       am, eslok, hs, km, mc5i, msgr, xenl, xon,
+       cols#80, it#8, lines#24, vt#3, wsl#80,
+       acsc=0pjdkblamcnkqitgufvhwexj, bel=^G, blink=\EsB,
+       cbt=\E[Z, clear=\E`, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\E[%i%p1%03d%p2%03df, cuu1=\EA, dch1=\E[P, dim=\EsL,
+       dl1=\E[M, dsl=\Ev, ed=\EJ, el=\EK,
+       flash=\007$<80>\007$<80>\007, fsl=\EO, home=\EH, ht=^I,
+       hts=\Ep, ich1=\E[I, ind=^J, invis=\EsH,
+       is2=\E[00u\E[<>001001024080024080u\E[01u,
+       is3=\Er\E[W\E`, kHOM=\EH, kLFT=\Eo, kRIT=\Eu, kbs=^H,
+       kcbt=\E[Z, kclr=\E`, kctab=\E[g, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, kdch1=\E[P, kdl1=\E[M, ked=\EJ,
+       kel=\EK, kf1=\E0, kf10=\ET, kf11=\E\\, kf12=\E\^, kf13@, kf14@,
+       kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\E2, kf20@, kf21=\E1,
+       kf22=\E5, kf23=\E7, kf24=\E9, kf25=\E;, kf26=\E=, kf27=\E?,
+       kf28=\EQ, kf29=\ES, kf3=\E6, kf30=\EV, kf31=\E], kf32=\E_,
+       kf4=\E8, kf5=\E\:, kf6=\E<, kf7=\E>, kf8=\EP, kf9=\ER,
+       khome=\EH, khts=\Ep, kich1=\E[I, kil1=\E[L, kind=\E[0s,
+       kll=\EH\EA, kri=\E[1s, krmir=\E[J, ktbc=\E[N, lf1=pf1,
+       lf2=pf2, lf3=pf3, lf4=pf4, ll=\EH\EA, mc0=\E[0p, mc4=\E[<p,
+       mc5=\E[3p, nel=^M, prot=\EsP, rev=\EsI,
+       ri=\EA\EJ\EH\E[L$<10>, rmacs=\EF, rmir=\E[J, rmso=\EsR,
+       rmul=\EsR, rs1=\Ec, rs2=\E[G, s0ds=\EF, s1ds=\EG,
+       sgr0=\EsR\EsU\EF, smacs=\EG, smir=\E[I, smso=\EsI,
+       smul=\Es_, tbc=\E[N, tsl=\Ew,
+# normal screen, 8 bits, 132 columns terminal.
+vip-w|vip7800-w|Q310-vip-w|Q310-vip-w-am|Questar 3155-vip7800 wide,
+       cols#132, wsl#132,
+       is2=\E[00u\E[<>001001024132024132u\E[01u, use=vip,
+vip-H|vip7800-H|Q310-vip-H|Q310-vip-H-am|Questar 3155-vip7800 72 lines,
+       lines#72,
+       is2=\E[00u\E[<>001001024080072080u\E[01u, use=vip,
+vip-Hw|vip7800-Hw|Q310-vip-Hw|Questar 3155-vip7800 wide 72 lines,
+       cols#132, lines#72, wsl#132,
+       is2=\E[00u\E[<>001001024132072132u\E[01u, use=vip,
+
+#### Chromatics
+#
+
+# I have put the long strings in <smcup>/<rmcup>. Ti sets up a window
+# that is smaller than the screen, and puts up a warning message
+# outside the window. Te erases the warning message, puts the
+# window back to be the whole screen, and puts the cursor at just
+# below the small window. I defined <cnorm> and <civis> to really turn
+# the cursor on and off, but I have taken this out since I don't
+# like the cursor being turned off when vi exits.
+cg7900|chromatics|chromatics 7900,
+       am,
+       cols#80, lines#40,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^],
+       cup=\001M%p2%d\,%p1%d\,, cuu1=^K, dch1=^A<1, dl1=^A<2,
+       ed=^Al, el=^A`, home=^\, ich1=^A>1, il1=^A>2, ind=^J, ll=^A|,
+       rmcup=\001W0\,40\,85\,48\,\014\001W0\,0\,85\,48\,\001M0\,40\,,
+       rmso=\001C1\,\001c2\,,
+       smcup=\001P0\001O1\001R1\001C4\,\001c0\,\014\001M0\,42\,WARNING DOUBLE ENTER ESCAPE and \025\001C1\,\001c2\,\001W0\,0\,79\,39\,,
+       smso=\001C4\,\001c7\,, uc=\001\001_\001\0,
+
+#### Computer Automation
+#
+
+ca22851|computer automation 22851,
+       am,
+       cols#80, lines#24,
+       bel=^G, clear=\014$<8>, cr=^M, cub1=^U, cud1=^J, cuf1=^I,
+       cup=\002%i%p1%c%p2%c, cuu1=^V, ed=^\, el=^], home=^^, ind=^J,
+       kcub1=^U, kcud1=^W, kcuu1=^V, khome=^^,
+
+#### Cybernex
+#
+
+# This entry has correct padding and the undocumented "ri" capability
+cyb83|xl83|cybernex xl-83,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\014$<62>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
+       cup=\027%p1%{32}%+%c%p2%{32}%+%c, cuu1=^N,
+       ed=\020$<62>, el=\017$<3>, home=^K, ind=^J, kcub1=^H,
+       kcud1=^J, kcuf1=^I, kcuu1=^N, ri=^N,
+# (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr)
+cyb110|mdl110|cybernex mdl-110,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=\030$<70>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+       cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
+       dch1=\016A\036$<3.5>, dl1=\016A\016\036$<40>,
+       ed=\016@\026$<6>, el=\016@\026$<145>, home=^Y,
+       ht=\011$<43>, ich1=\016A\035$<3.5>,
+       il1=\016A\016\035$<65>, ind=^J, rmso=^NG, smso=^NF,
+
+#### Datapoint
+#
+# Datapoint is gone.  They used to be headquartered in Texas.
+# They created ARCnet, an Ethernet competitor that flourished for a while
+# in the early 1980s before 3COM got wise and cut its prices.  The service
+# side of Datapoint still lives (1995) in the form of Intelogic Trace.
+#
+
+dp3360|datapoint|datapoint 3360,
+       OTbs, am,
+       cols#82, lines#25,
+       bel=^G, clear=^]^_, cr=^M, cub1=^H, cud1=^J, cuf1=^X, cuu1=^Z,
+       ed=^_, el=^^, home=^], ind=^J,
+
+# From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997
+# The Datapoint 8242 Workstation was sold at least between 1985
+# and 1989. To make the terminal work with this entry, press
+# CONTROL-INT-INT to take the terminal off-line, and type (opt).
+# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO
+# CR/LF off. Use control-shift-[] as escape key, control-I as tab,
+# shift-F1 to shift-F5 as F6 to F10 (unshifted F1 to F5 are in
+# fact unusable because the strings sent by the terminal conflict
+# with other keys).
+# The terminal is capable of displaying "box draw" characters.
+# For each graphic character you must send 2 ESC's (\E\E) followed
+# by a control character as follows:
+#         character        meaning
+#         =========        =======
+#         ctrl-E           top tee
+#         ctrl-F           right tee
+#         ctrl-G           bottom tee
+#         ctrl-H           left tee
+#         ctrl-I           cross
+#         ctrl-J           top left corner
+#         ctrl-K           top right corner
+#         ctrl-L           bottom left corner
+#         ctrl-M           bottom right corner
+#         ctrl-N           horizontal line
+#         ctrl-O           vertical line
+# Unfortunately this cannot be fitted into the termcap/terminfo
+# description scheme.
+dp8242|datapoint 8242,
+       msgr,
+       cols#80, lines#25,
+       bel=^G, civis=^Y, clear=\025\E\004\027\030, cnorm=^X,
+       cr=^M, cub1=^H, cud1=^J,
+       cup=\011%p2%'\0'%+%c%p1%'\0'%+%c, dl1=\E^Z, ed=^W, el=^V,
+       home=^U, ht=^I, il1=\E^T, ind=^C,
+       is1=\E\014\E\016\0\230\0\317\025\027\030\E\004,
+       kbs=^H, kcub1=^D, kcud1=^B, kcuf1=^F, kcuu1=^E, kf1=^G\Ee,
+       kf10=\EK\Ea, kf2=^I\Ed, kf3=^J\Ec, kf4=^J\Eb, kf5=^S\Ea,
+       kf6=\EO\Ee, kf7=\EN\Ed, kf8=\EM\Ec, kf9=\EL\Eb, nel=^M^J,
+       rep=\E\023%p1%c%p2%c, ri=^K, rmso=\E^D, rmul=\E^D,
+       rs1=\E\014\E\016\0\230\0\317\025\027\030\E\004,
+       smso=\E^E, smul=\E^F,
+       wind=\E\014\E\016%p1%'\0'%+%c%p2%'\0'%+%c%p3%'\0'%+%c%p4%'\0'%+%c\025,
+
+#### DEC terminals (Obsolete types: DECwriter and vt40/42/50)
+#
+# These entries are DEC's official terminfos for its older terminals.
+# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
+# Engineering for more information.  Updated terminfos and termcaps
+# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
+#
+
+gt40|dec gt40,
+       OTbs, os,
+       cols#72, lines#30,
+       bel=^G, cr=^M, cub1=^H, cud1=^J,
+gt42|dec gt42,
+       OTbs, os,
+       cols#72, lines#40,
+       bel=^G, cr=^M, cub1=^H, cud1=^J,
+vt50|dec vt50,
+       OTbs,
+       cols#80, lines#12,
+       bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cuu1=\EA, ed=\EJ, el=\EK, ht=^I, ind=^J,
+vt50h|dec vt50h,
+       OTbs,
+       cols#80, lines#12,
+       bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+       el=\EK, ht=^I, ind=^J, ri=\EI,
+# (vt61: there's a BSD termcap that claims <dl1=\EPd>, <il1=\EPf.> <kbs=^H>)
+vt61|vt-61|vt61.5|dec vt61,
+       cols#80, lines#24,
+       bel=^G, clear=\EH\EJ$<120>, cr=\r$<20>, cub1=^H, cud1=^J,
+       cuf1=\EC$<20>, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<20>,
+       cuu1=\EA$<20>, ed=\EJ$<120>, el=\EK$<70>, ht=^I,
+       ind=\n$<20>, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+       ri=\E$<20>I,
+
+# The gigi does standout with red!
+# (gigi: I added <rmam>/<smam> based on the init string, corrected cub1 -- esr)
+gigi|vk100|dec gigi graphics terminal,
+       OTbs, am, xenl,
+       cols#84, lines#24,
+       bel=^G, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
+       el=\E[K, ht=^I, ind=^J,
+       is2=\E>\E[?3l\E[?4l\E[?5l\E[?20l\E[?7h\E[?8h,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
+       kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
+       rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7;31m,
+       smul=\E[4m,
+
+# DEC PRO-350 console (VT220-style).  The 350 was DEC's attempt to produce
+# a PC differentiated from the IBM clones.  It was a total, ludicrous,
+# grossly-overpriced failure (among other things, DEC's OS didn't include
+# a format program, so you had to buy pre-formatted floppies from DEC at
+# a hefty premium!).
+pro350|decpro|dec pro console,
+       OTbs,
+       cols#80, it#8, lines#24,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       clear=\EH\EJ, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+       el=\EK, home=\EH, ht=^I, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kf0=\EE, kf1=\EF, kf2=\EG, kf3=\EH, kf4=\EI,
+       kf5=\EJ, kf6=\Ei, kf7=\Ej, khome=\EH, ri=\EI, rmacs=\EG,
+       rmso=\E^N, rmul=\E^C, smacs=\EF, smso=\E^H, smul=\E^D,
+
+dw1|decwriter I,
+       OTbs, hc, os,
+       cols#72,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J,
+dw2|decwriter|dw|decwriter II,
+       OTbs, hc, os,
+       cols#132,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
+# \E(B         Use U.S. character set (otherwise # => british pound !)
+# \E[20l       Disable "linefeed newline" mode (else puts \r after \n,\f,\v)
+# \E[w         10 char/in pitch
+# \E[1;132     full width horizontal margins
+# \E[2g                clear all tab stops
+# \E[z         6 lines/in
+# \E[66t       66 lines/page (for \f)
+# \E[1;66r     full vertical page can be printed
+# \E[4g                clear vertical tab stops
+# \E>          disable alternate keypad mode (so it transmits numbers!)
+# \E[%i%p1%du  set tab stop at column %d (origin == 1)
+#              (Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is
+#              a tab stop)
+#
+#       The dw3 does standout with wide characters.
+#
+dw3|la120|decwriter III,
+       OTbs, hc, os,
+       cols#132,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J,
+       is1=\E(B\E[20l\E[w\E[0;132s\E[2g\E[z\E[66t\E[1;66r\E[4g\E>,
+       is2=\E[9;17;25;33;41;49;57;65;73;81;89;97;105;113;121;129u\r,
+       kbs=^H, rmso=\E[w, sgr0=\E[w, smso=\E[6w,
+dw4|decwriter IV,
+       OTbs, am, hc, os,
+       cols#132,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, is2=\Ec, kbs=^H,
+       kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
+
+# These aren't official
+ln03|dec ln03 laser printer,
+       hc,
+       cols#80, lines#66,
+       bel=^G, cr=^M, cud1=^J, hd=\EK, ht=^I, hu=\EL, ind=^J, nel=^M^J,
+       rmso=\E[22m, rmul=\E[24m, sgr0=\E[m, smso=\E[1m,
+       smul=\E[4m,
+ln03-w|dec ln03 laser printer 132 cols,
+       cols#132,
+       bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H,
+       kcud1=^J, nel=^M^J, use=ln03,
+
+#### Delta Data (dd)
+#
+
+# Untested. The cup sequence is hairy enough that it probably needs work.
+# The idea is ctrl(O), dd(row), dd(col), where dd(x) is x - 2*(x%16) + '9'.
+# There are BSD-derived termcap entries floating around for this puppy
+# that are *certainly* wrong.
+delta|dd5000|delta data 5000,
+       OTbs, am,
+       cols#80, lines#27,
+       bel=^G, clear=^NR, cub1=^H, cud1=^J, cuf1=^Y,
+       cup=\017%p1%p1%{16}%m%{2}%*%-%{57}%+%c%p2%p2%{16}%m%{2}%*%-%{57}%+%c,
+       cuu1=^Z, dch1=^NV, el=^NU, home=^NQ, ind=^J,
+
+#### Digital Data Research (ddr)
+#
+
+# (ddr: I added <rmam>/<smam> based on the init string -- esr)
+ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator,
+       OTbs, am, xenl,
+       cols#80, it#8, lines#24, vt#3,
+       blink=\E[5m$<2/>, bold=\E[1m$<2/>,
+       clear=\E[H\E[2J$<50/>, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
+       cud1=^J, cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
+       cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
+       ht=^I, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H, kbs=^H,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
+       kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
+       rf=/usr/share/tabset/vt100, ri=\EM$<5/>, rmam=\E[7l,
+       rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m$<2/>,
+       rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+       sgr0=\E[m$<2/>, smam=\E[7l, smkx=\E[?1h\E=, smso=\E[7m,
+       smul=\E[4m$<2/>,
+
+#### Evans & Sutherland
+#
+
+# Jon Leech <leech@cs.unc.edu> tells us:
+# The ps300 was the Evans & Sutherland Picture System 300, a high
+# performance 3D vector graphics system with a bunch of specialized hardware.
+# Approximate date of release was 1982 (early 80s, anyway), and it had several
+# evolutions including (limited) color versions such as the PS330C. PS300s
+# were effectively obsolete by the late 80s, replaced by raster graphics
+# systems, although specialized applications like molecular modelling
+# hung onto them for a while longer.  AFAIK all E&S vector graphics systems
+# are out of production, though of course E&S is very much alive (in 1996).
+# (ps300: changed ":pt@:" to "it@" -- esr)
+#
+ps300|Picture System 300,
+       xt,
+       it@,
+       rmso@, rmul@, smso@, smul@, use=vt100,
+
+#### General Electric (ge)
+#
+
+terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200,
+       OTbs, hc, os,
+       cols#120,
+       bel=^G, cr=^M, cud1=^J, ind=^J,
+
+#### Heathkit/Zenith
+#
+
+# Here is a description of the H19 DIP switches:
+#
+# S401
+# 0-3 = baud rate as follows:
+#
+#         3       2       1       0
+#      ---     ---     ---     ---
+#         0       0       1       1       300 baud
+#         0       1       0       1       1200 baud
+#         1       0       0       0       2400 baud
+#         1       0       1       0       4800 baud
+#         1       1       0       0       9600 baud
+#         1       1       0       1       19.2K baud
+#
+# 4 = parity (0 = no parity)
+# 5 = even parity (0 = odd parity)
+# 6 = stick parity (0 = normal parity)
+# 7 = full duplex (0 = half duplex)
+#
+# S402
+# 0 = block cursor (0 = underscore cursor)
+# 1 = no key click (0 = keyclick)
+# 2 = wrap at end of line (0 = no wrap)
+# 3 = auto LF on CR (0 = no LF on CR)
+# 4 = auto CR on LF (0 = no CR on LF)
+# 5 = ANSI mode (0 = VT52 mode)
+# 6 = keypad shifted (0 = keypad unshifted)
+# 7 = 50Hz refresh (1 = 60Hz refresh)
+#
+# Factory Default settings are as follows:
+#          7 6 5 4 3 2 1 0
+# S401     1 0 0 0 1 1 0 0
+# S402     0 0 0 0 0 0 0 0
+# (h19: I added <rmam>/<smam> based on the init string;
+# also added empty <acsc> to suppress a tic warning -- esr)
+h19-a|h19a|heath-ansi|heathkit-a|heathkit h19 ansi mode,
+       OTbs, am, mir, msgr,
+       cols#80, it#8, lines#24,
+       acsc=, bel=^G, clear=\E[2J, cnorm=\E[>4l, cr=^M, cub1=^H,
+       cud1=\E[1B, cuf1=\E[1C, cup=\E[%i%p1%d;%p2%dH,
+       cuu1=\E[1A, cvvis=\E[>4h, dch1=\E[1P, dl1=\E[1M$<1*>,
+       ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[1L$<1*>, ind=^J,
+       is2=\E<\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m\E[?7h,
+       kbs=^H, kcub1=\E[1D, kcud1=\E[1B, kcuf1=\E[1C, kcuu1=\E[1A,
+       kf1=\EOS, kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP,
+       kf7=\EOQ, kf8=\EOR, khome=\E[H, lf6=blue, lf7=red, lf8=white,
+       ri=\EM, rmacs=\E[11m, rmam=\E[?7l, rmir=\E[4l, rmso=\E[m,
+       smacs=\E[10m, smam=\E[?7h, smir=\E[4h, smso=\E[7m,
+h19-bs|heathkit w/keypad shifted,
+       rmkx=\Eu, smkx=\Et, use=h19-b,
+h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor,
+       rmkx=\Eu, smkx=\Et, use=h19-u,
+# (h19: merged in <ip> from BSDI hp19-e entry>;
+# also added empty <acsc> to suppress a tic warning --esr)
+# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998
+# Tim tells us that:
+# I have an old Zenith-19 terminal at home that still gets a lot of use.
+# This terminal suffers from the same famous insert-mode padding lossage
+# that has been acknowledged for the Z29 terminal.  Emacs is nearly
+# unusable on this box, since even a half-scroll up or down the window
+# causes flaming terminal death.
+#
+# On the Z19, the only way I have found around this problem is to remove
+# the :al: and :dl: entries entirely.  No amount of extra padding will
+# help (I have tried up to 20000).  Removing <il1=\EL$> and <dl1=\EM$>
+# makes Emacs a little slower, but it remains in the land of the living.
+# Big win.
+h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19,
+       OTbs, am, eslok, hs, mir, msgr,
+       cols#80, it#8, lines#24,
+       acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{, bel=^G,
+       clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ex4,
+       dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I, ind=^J,
+       ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW,
+       kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue, lf7=red,
+       lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
+       smir=\E@, smso=\Ep, tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
+h19-u|heathkit with underscore cursor,
+       cnorm@, cvvis@, use=h19-b,
+h19-g|h19g|heathkit w/block cursor,
+       cnorm=\Ex4, cvvis@, use=h19-b,
+alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
+       lines#60,
+       dl1=\EM, il1=\EL, use=h19,
+
+# The major problem with the Z29 is that it requires more padding than the Z19.
+#
+# The problem with declaring an H19 to be synonymous with a Z29 is that
+# it needs more padding. It especially loses if a program attempts
+# to put the Z29 into insert mode and insert text at 9600 baud. It
+# even loses worse if the program attempts to insert tabs at 9600
+# baud. Adding padding to text that is inserted loses because in
+# order to make the Z29 not die, one must add so much padding that
+# whenever the program tries to use insert mode, the effective
+# rate is about 110 baud.
+#
+# What program would want to put the terminal into insert mode
+# and shove stuff at it at 9600 baud you ask?
+#
+# Emacs. Emacs seems to want to do the mathematically optimal
+# thing in doing a redisplay rather than the practical thing.
+# When it is about to output a line on top of a line that is
+# already on the screen, instead of just killing to the end of
+# the line and outputting the new line, it compares the old line
+# and the new line and if there are any similarities, it
+# constructs the new line by deleting the text on the old line
+# on the terminal that is already there and then inserting new
+# text into the line to transform it into the new line that is
+# to be displayed. The Z29 does not react kindly to this.
+#
+# But don't cry for too long.... There is a solution. You can make
+# a termcap entry for the Z29 that says the Z29 has no insert mode.
+# Then Emacs cannot use it. "Oh, no, but now inserting into a
+# line will be really slow", you say. Well there is a sort of a
+# solution to that too. There is an insert character option on
+# the Z29 that will insert one character. Unfortunately, it
+# involves putting the terminal into ansi mode, inserting the
+# character, and changing it back to H19 mode. All this takes 12
+# characters. Pretty expensive to insert one character, but it
+# works. Either Emacs doesn't try to use its inserting hack when
+# it's only given an insert character ability or the Z29 doesn't
+# require padding with this (the former is probably more likely,
+# but I haven't checked it out).
+# (z29: added empty <acsc> to suppress a tic warning, merged in
+# status line capabilities from BRL entry --esr)
+z29|zenith29|z29b|zenith z29b,
+       OTbs, OTpt, am, eslok, hs, mir, msgr,
+       OTkn#10, cols#80, lines#24,
+       OTbc=\ED, acsc=, bel=^G, cbt=\E-, clear=\EE$<14>, cnorm=\Ey4,
+       cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E$<1>A,
+       cvvis=\Ex4, dch1=\EN$<0.1*>, dl1=\EM$<1/>, dsl=\Ey1,
+       ed=\EJ$<14>, el=\EK$<1>, fsl=\Ek\Ey5, home=\EH, ht=^I,
+       ich1=\E<\E[1@\E[?2h$<1>, il1=\EL$<1/>, ind=\n$<2>,
+       is2=\E<\E[?2h\Ev, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
+       kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
+       lf0=home, ri=\EI$<2/>, rmacs=\EF, rmir=\EO, rmso=\Eq,
+       rmul=\Es0, smacs=\EG, smir=\E@, smso=\Ep, smul=\Es8,
+       tsl=\Ej\Ex5\Ex1\EY8%+ \Eo,
+# z29 in ansi mode. Assumes that the cursor is in the correct state, and that
+# the world is stable. <rs1> causes the terminal to be reset to the state
+# indicated by the name. kc -> key click, nkc -> no key click, uc -> underscore
+# cursor, bc -> block cursor.
+# From: Mike Meyers
+# (z29a: replaced nonexistent <if=/usr/share/tabset/zenith29> befause <hts>
+# looks vt100-compatible -- esr)
+z29a|z29a-kc-bc|h29a-kc-bc|heath/zenith 29 in ansi mode,
+       OTbs, OTpt, am, eslok, hs, mir, msgr,
+       OTkn#10, cols#80, it#8, lines#24,
+       OTbc=\ED, bel=^G, blink=\E[5m, bold=\E[2m, clear=\E[2J,
+       cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
+       dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l, home=\E[H,
+       ht=^I, hts=\EH, if=/usr/share/tabset/vt100, il=\E[%p1%dL,
+       ind=\ED, kbs=^H, kclr=\E[J, kcub1=\EOD, kcud1=\EOB,
+       kcuf1=\EOC, kcuu1=\EOA, ked=\E[J, kf0=\E[~, kf1=\EOS,
+       kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
+       kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help, mc0=\E#7,
+       nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM, rmcup=\E[?7h,
+       rmso=\E[m, rmul=\E[m,
+       rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m,
+       sc=\E[s, sgr0=\E[m, smcup=\E[?7l, smso=\E[7;2m, smul=\E[4m,
+       tbc=\E[3g, tsl=\E[s\E[>5;1h\E[25;%i%dH\E[1K,
+z29a-kc-uc|h29a-kc-uc|z29 ansi mode with keyckick and underscore cursor,
+       rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m,
+       use=z29a,
+z29a-nkc-bc|h29a-nkc-bc|z29 ansi mode with block cursor and no keyclick,
+       rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2;4h\E[>1;3;5;6;7;8;9l\E[m\E[11m,
+       use=z29a,
+z29a-nkc-uc|h29a-nkc-uc|z29 ansi mode with underscore cursor and no keyclick,
+       rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2h\E[>1;3;4;5;6;7;8;9l\E[m\E[11m,
+       use=z29a,
+# From: Jeff Bartig <jeffb@dont.doit.wisc.edu> 31 Mar 1995
+z39-a|z39a|zenith39-a|zenith39-ansi|Zenith 39 in ANSI mode,
+       am, eslok, hs, mc5i, mir, msgr, xon,
+       cols#80, lines#24,
+       acsc=0a``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+       blink=\E[5m, bold=\E[1m, cbt=\E[1Z, civis=\E[>5h,
+       clear=\E[2J\E[H, cnorm=\E[>5l, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
+       dl1=\E[1M, dsl=\E[>1l, ed=\E[0J, el=\E[0K, el1=\E[1K,
+       fsl=\E[u, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[1L,
+       ind=^J, is2=\E<\E[>1;3;5;6;7l\E[0m\E[2J, ka1=\EOw,
+       ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ked=\E[J, kf1=\EOS,
+       kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
+       kf8=\EOR, kf9=\EOX, khlp=\E[~, khome=\E[H, ll=\E[24;1H,
+       mc0=\E[?19h\E[i, mc4=\E[4i, mc5=\E[5i, rc=\E[u, rev=\E[7m,
+       rmacs=\E(B, rmir=\E[4l, rmkx=\E[>7l, rmso=\E[0m,
+       rmul=\E[0m, rs2=\E<\Ec\0, sc=\E[s, sgr0=\E[0m, smacs=\E(0,
+       smir=\E[4h, smkx=\E[>7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       tsl=\E[s\E[>1h\E[25;%i%p1%dH,
+
+# From: Brad Brahms <Brahms@USC-ECLC>
+z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor,
+       cnorm=\Ey4\Em70, cvvis=\Ex4\Em71, use=z100bw,
+# (z100bw: removed obsolete ":kn#10:", added empty <acsc> -- esr)
+z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc,
+       OTbs, OTpt, mir, msgr,
+       OTkn#10, cols#80, it#8, lines#24,
+       acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{,
+       clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>, cuu1=\EA,
+       cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>, ed=\EJ, el=\EK,
+       home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES, kf2=\ET, kf3=\EU,
+       kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EOI,
+       khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
+       smir=\E@, smso=\Ep,
+p19|h19-b with il1/dl1,
+       dl1=\EM$<2*/>, il1=\EL$<2*/>, use=h19-b,
+# From: <ucscc!B.fiatlux@ucbvax.berkeley.edu>
+# (ztx: removed duplicate :sr: -- esr)
+ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11,
+       OTbs, am, eslok, hs,
+       cols#80, it#8, lines#24,
+       clear=\EE, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
+       dsl=\Ey1, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I,
+       il1=\EL, is2=\Ej\EH\Eq\Ek\Ev\Ey1\Ey5\EG\Ey8\Ey9\Ey>,
+       kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf0=\ES,
+       kf1=\EB, kf2=\EU, kf3=\EV, kf4=\EW, kf5=\EP, kf6=\EQ, kf7=\ER,
+       ri=\EI, rmso=\Eq, rmul=\Eq, smso=\Es5, smul=\Es2,
+       tsl=\Ej\Ex5\Ex1\EY8%+ \Eo,
+
+#### IMS International (ims)
+#
+# There was a company called IMS International located in Carson City,
+# Nevada, that flourished from the mid-70s to mid-80s.  They made S-100
+# bus/Z80 hardware and a line of terminals called Ultimas.
+#
+
+# From: Erik Fair <fair@ucbarpa.berkeley.edu>  Sun Oct 27 07:21:05 1985
+ims950-b|bare ims950 no init string,
+       is2@, use=ims950,
+# (ims950: removed obsolete ":ko@:" -- esr)
+ims950|ims televideo 950 emulation,
+       xenl@,
+       flash@, kbs@, kcub1@, kcud1@, kcuf1@, kcuu1@, kf0@, kf1@, kf2@, kf3@,
+       kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, khome@, use=tvi950,
+# (ims950-rv: removed obsolete ":ko@:" -- esr)
+ims950-rv|ims tvi950 rev video,
+       xenl@,
+       flash@, kbs@, kcub1@, kcud1@, kcuf1@, kcuu1@, kf0@, kf1@, kf2@, kf3@,
+       kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, khome@, use=tvi950-rv,
+ims-ansi|ultima2|ultimaII|IMS Ultima II,
+       OTbs, am,
+       cols#80, it#8, lines#24,
+       clear=\E[H\E[2J, cub1=^H, cud1=\ED,
+       cup=\E[%i%p1%2d;%p2%2dH, cuu1=\EM, ed=\E[0J, el=\E[0K,
+       ht=^I, if=/usr/share/tabset/vt100,
+       is2=\E[m\E[>14l\E[?1;?5;20l\E>\E[1m\r, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, ri=\EM,
+       rmso=\E[m\E[1m, rmul=\E[m\E[1m, sgr0=\E[m, smso=\E[7m,
+       smul=\E[4m,
+
+#### Intertec Data Systems
+#
+# I think this company is long dead as of 1995.  They made an early CP/M
+# micro called the "Intertec Superbrain" that was moderately popular,
+# then sank out of sight.
+#
+
+superbrain|intertec superbrain,
+       OTbs, am, bw,
+       cols#80, lines#24,
+       OTbc=^U, bel=^G, clear=\014$<5*>, cr=^M, cub1=^H, cud1=^J,
+       cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=^K,
+       ed=\E~k<10*>, el=\E~K$<15>, ht=^I, ind=^J, kcub1=^U,
+       kcud1=^J, kcuf1=^F, kcuu1=^K, rmcup=^L, smcup=^L,
+# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>,
+# rmul=\E0A$<200/>; my guess is the highlight letter is bit-coded like an ADM,
+# and the reverse is actually true.  Try it. -- esr)
+intertube|intertec|Intertec InterTube,
+       OTbs, am,
+       cols#80, lines#25,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<50>, cuu1=^Z, home=^A,
+       ind=^J, rmso=\E0@, smso=\E0P,
+# The intertube 2 has the "full duplex" problem like the tek 4025: if you
+# are typing and a command comes in, the keystrokes you type get interspersed
+# with the command and it messes up
+intertube2|intertec data systems intertube 2,
+       OTbs,
+       cup=\016%p1%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
+       el=\EK, hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c,
+       ll=^K^X\r, vpa=\013%p1%c, use=intertube,
+
+#### Ithaca Intersystems
+#
+# This company made S100-bus personal computers long ago in the pre-IBM-PC
+# past.  They used to be reachable at:
+#
+#      Ithaca Intersystems
+#      1650 Hanshaw Road
+#      Ithaca, New York 14850
+#
+# However, the outfit went bankrupt years ago.
+#
+
+# The Graphos III was a color graphics terminal from Ithaca Intersystems.
+# These entries were written (originally in termcap syntax) by Brian Yandell
+# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the
+# University of Wisconsin.
+
+# (graphos: removed obsolete and syntactically incorrect :kn=4:,
+# removed <if=/usr/share/tabset/init.graphos> and
+# <rf=/usr/share/tabset/init.graphos> no such file & no <hts> -- esr)
+graphos|graphos III,
+       am, mir,
+       cols#80, it#8, lines#24,
+       clear=\E[H\E[2J, cnorm=\Ez56;2;0;0z\Ez73z\Ez4;1;1z,
+       cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A,
+       cvvis=\Ez4;2;1z\Ez56;2;80;24z, dch1=\E[P, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
+       il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+       kf4=\EOS, khome=\E[H, nel=^M\ED, rc=\E8, ri=\EM, rmdc=\E[4l,
+       rmir=\E[4l, rmso=\E[m, sc=\E7, sgr0=\E[m, smdc=\E[4h,
+       smir=\E[4h, smso=\E[7m,
+graphos-30|graphos III with 30 lines,
+       lines#30,
+       cvvis=\Ez4;2;1z\Ez56;2;80;30z, use=graphos,
+
+#### Modgraph
+#
+# These people used to be reachable at:
+#
+#      Modgraph, Inc
+#      1393 Main Street,
+#      Waltham, MA 02154
+#      Vox: (617)-890-5796.
+#
+# However, if you call that number today you'll get an insurance company.
+# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated
+# 26 Feb 1997 that says:
+#
+# Modgraph GX-1000, replaced by GX-2000.  Both are out of production, have been
+# for ~7 years.  Modgraph still in business.  Products are rugged laptop and
+# portable PC's and specialized CRT and LCD monitors (rugged, rack-mount
+# panel-mount etc).  I can be emailed at sonfour@aol.com
+#
+# Peter D. Smith <pdsmith@nbbn.com> notes that his modgraph manual was
+# dated 1984.  According to the manual, it featured Tek 4010/4014
+# graphics and DEC VT100/VT52 + ADM-3A emulation with a VT220-style keyboard.
+#
+
+modgraph|mod24|modgraph terminal emulating vt100,
+       xenl@,
+       cols#80, lines#24,
+       cvvis=\E\^9;0s\E\^7;1s,
+       is2=\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,
+       rf@, ri=\EM\E[K$<5/>, use=vt100,
+# The GX-1000 manual is dated 1984.  This looks rather like a VT-52.
+modgraph2|modgraph gx-1000 80x24 with keypad not enabled,
+       am, da, db,
+       cols#80, it#8, lines#24,
+       clear=\EH\EJ$<50/>, cub1=^H, cuf1=\EC$<2/>,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5/>, cuu1=\EA$<2/>,
+       ed=\EJ$<50/>, el=\EK$<3/>, ht=^I,
+       is2=\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,
+       ri=\EI$<5/>,
+#
+# Modgraph from Nancy L. Cider <nancyc@brl-tbd>
+# BUG NOTE from Barbara E. Ringers <barb@brl-tbd>:
+# If we set TERM=vt100, and set the Modgraph screen to 24 lines, setting a
+# mark and using delete-to-killbuffer work correctly.  However, we would
+# like normal mode of operation to be using a Modgraph with 48 line setting.
+# If we set TERM=mod (which is a valid entry in termcap with 48 lines)
+# the setting mark and delete-to-killbuffer results in the deletion of only
+# the line the mark is set on.
+# We've discovered that the delete-to-killbuffer works correctly
+# with TERM=mod and screen set to 80x48 but it's not obvious.  Only
+# the first line disappears but a ctrl-l shows that it did work
+# correctly.
+modgraph48|mod|Modgraph w/48 lines,
+       OTbs, OTpt, am, xenl,
+       cols#80, it#8, lines#48, vt#3,
+       OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
+       cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+       flash=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q,
+       home=\E[H, ht=^I, is2=\E<\E[1;48r\E[0q\E[3;4q\E=\E[?1h,
+       kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m,
+       ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       rs1=\E=\E[0q\E>, sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=,
+       smso=\E[7m, smul=\E[4m,
+
+#### Morrow Designs
+#
+# This was George Morrow's company.  They started in the late 1970s making
+# S100-bus machines.  They used to be reachable at:
+#
+#        Morrow
+#        600 McCormick St.
+#        San Leandro, CA 94577
+#
+# but they're long gone now (1995).
+#
+
+# The mt70 terminal was shipped with the Morrow MD-3 microcomputer.
+# Jeff's specimen was dated June 1984.
+# From: Jeff Wieland <wieland@acn.purdue.edu> 24 Feb 1995
+mt70|mt-70|Morrow MD-70; native Morrow mode,
+       am, mir, msgr, xon,
+       cols#80, it#8, lines#24,
+       acsc=+z\,{-x.yOi`|jGkFlEmDnHqJtLuKvNwMxI, bel=^G,
+       cbt=\EI, civis=\E"0, clear=^Z, cnorm=\E"2, cr=^M, cub1=^H,
+       cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<1>,
+       cuu1=^K, dch1=\EW, dim=\EG2, dl1=\ER, ed=\EY, el=\ET$<10>,
+       flash=\EK1$<200>\EK0, home=^^, ht=^I, ich1=\EQ, il1=\EE,
+       ind=^J, invis@, is1=\E"2\EG0\E], kbs=^H, kcbt=^A^Z\r,
+       kclr=^An\r, kcub1=^AL\r, kcud1=^AK\r, kcuf1=^AM\r,
+       kcuu1=^AJ\r, kdch1=\177, kf1=^A@\r, kf10=^AI\r, kf11=^A`\r,
+       kf12=^Aa\r, kf13=^Ab\r, kf14=^Ac\r, kf15=^Ad\r, kf16=^Ae\r,
+       kf17=^Af\r, kf18=^Ag\r, kf19=^Ah\r, kf2=^AA\r, kf20=^Ai\r,
+       kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r, khlp=^AO\r, khome=^AN\r, nel=^_,
+       rmacs=\E%%, rmcup=, smacs=\E$, smcup=\E"2\EG0\E],
+       smul=\EG1, tbc=\E0, use=adm+sgr,
+
+#### Motorola
+#
+
+# Motorola EXORterm 155        from {decvax, ihnp4}!philabs!sbcs!megad!seth via BRL
+# (Seth H Zirin)
+ex155|Motorola Exorterm 155,
+       OTbs, am, bw,
+       OTkn#5, OTug#1, cols#80, lines#24,
+       cbt=\E[, clear=\EX, cud1=\EB, cuf1=\ED,
+       cup=\EE%p1%{32}%+%c%p2%{32}%+%c, ed=\ET, el=\EU,
+       home=\E@, ht=\EZ, kbs=^H, kcbt=\E[, kclr=\EX, kcub1=^H,
+       kcud1=^J, kcuf1=^L, kcuu1=^K, ked=\ET, kel=\EU, khome=\E@,
+       rmso=\Ec\ED, rmul=\Eg\ED, smso=\Eb\ED, smul=\Ef\ED,
+
+#### Omron
+#
+# This company is still around in 1995, manufacturing point-of-sale systems.
+
+omron|Omron 8025AG,
+       OTbs, am, da, db,
+       cols#80, lines#24,
+       bel=^G, clear=\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, cuu1=\EA,
+       cvvis=\EN, dch1=\EP, dl1=\EM, ed=\ER, el=\EK, home=\EH,
+       il1=\EL, ind=\ES, ri=\ET, rmso=\E4, smso=\Ef,
+
+#### Ramtek
+#
+# Ramtek was a vendor of high-end graphics terminals around 1979-1983; they
+# were competition for things like the Tektronics 4025.
+#
+
+# Ramtek 6221 from BRL, probably by Doug Gwyn
+# The following SET-UP modes are assumed for normal operation:
+#      UNDERLINE_CURSOR        ANSI_MODE       AUTO_XON/XOFF_ON
+#      NEWLINE_OFF             80_COLUMNS
+# Other SET-UP modes may be set for operator convenience or communication
+# requirements; I recommend
+#      SMOOTH_SCROLL   AUTO_REPEAT_ON  3_#_SHIFTED     WRAP_AROUND_ON
+# Hardware tabs are assumed to be every 8 columns; they can be set up by the
+# "reset", "tset", or "tabs" utilities (use rt6221-w, 160 columns, for this).
+# Note that the Control-E key is useless on this brain-damaged terminal.  No
+# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+rt6221|Ramtek 6221 80x24,
+       OTbs, OTpt, msgr, xon,
+       OTkn#4, cols#80, it#8, lines#24, vt#3,
+       acsc=, bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[>5l,
+       clear=\E[1;1H\E[J, cnorm=\E[>5h\E[>9h, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+       cvvis=\E[>7h\E[>9l, ed=\E[J, el=\E[K, home=\E[1;1H, ht=^I,
+       hts=\EH, ind=^J, is2=\E)0, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kf0=\EOP, kf1=\EOQ, kf2=\EOR,
+       kf3=\EOS, lf0=PF1, lf1=PF2, lf2=PF3, lf3=PF4, ll=\E[24;1H,
+       nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmkx=\E>,
+       rmso=\E[m, rmul=\E[m,
+       rs1=\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>,
+       sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E=, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g,
+# [TO DO: Check out: short forms of ho/cl and ll; reset (\Ec)].
+rt6221-w|Ramtek 6221 160x48,
+       cols#160, lines#48,
+       ll=\E[48;1H, use=rt6221,
+
+#### RCA
+#
+
+# RCA VP3301 or VP3501
+rca|rca vp3301/vp3501,
+       OTbs,
+       cols#40, lines#24,
+       clear=^L, cuf1=^U, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=^K, home=^Z, rmso=\E\ES0, smso=\E\ES1,
+
+
+#### Selanar
+#
+
+# Selanar HiREZ-100 from BRL, probably by Doug Gwyn
+# The following SET-UP modes are assumed for normal operation:
+#      SET_DEFAULT_TABS        48_LINES                80_COLUMNS
+#      ONLINE                  ANSI                    CURSOR_VISIBLE
+#      VT102_AUTO_WRAP_ON      VT102_NEWLINE_OFF       VT102_MONITOR_MODE_OFF
+#      LOCAL_ECHO_OFF          US_CHAR_SET             WPS_TERMINAL_DISABLED
+#      CPU_AUTO_XON/XOFF_ENABLED                       PRINT_FULL_SCREEN
+# For use with graphics software, all graphics modes should be set to factory
+# default.  Other SET-UP modes may be set for operator convenience or
+# communication requirements.  No delays are specified; use "stty ixon -ixany"
+# to enable DC3/DC1 flow control!
+# I commented out the scrolling capabilities since they are too slow.
+hirez100|Selanar HiREZ-100,
+       OTbs, OTpt, mir, msgr, xon,
+       OTkn#4, cols#80, it#8, lines#48, vt#3,
+       acsc=, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
+       cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+       hts=\EH, il=\E[%p1%dL, il1=\E[L, is2=\E<\E)0, kbs=^H,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP,
+       kf1=\EOQ, kf2=\EOR, kf3=\EOS, lf0=PF1, lf1=PF2, lf2=PF3,
+       lf3=PF4, ll=\E[48H, mc0=\E[i, mc4=\E[4i\E[?4i,
+       mc5=\E[?5i\E[5i, nel=\EE, rc=\E8, rev=\E[7m, rmacs=^O,
+       rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       rs1=\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>,
+       sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E[?1h\E=, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g,
+hirez100-w|Selanar HiREZ-100 in 132-column mode,
+       cols#132, use=hirez100,
+
+#### Signetics
+#
+
+# From University of Wisconsin
+vsc|Signetics Vsc Video driver by RMC,
+       am, msgr,
+       cols#80, it#8, lines#26,
+       clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
+       ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rev=^_\s,
+       rmso=^_!, rmul=^_#, sgr0=^_!, smso=^_\s, smul=^_",
+
+#### Soroc
+#
+# Alan Frisbie <frisbie@flying-disk.com> writes:
+#
+# As you may recall, the Soroc logo consisted of their name,
+# with the letter "S" superimposed over an odd design.   This
+# consisted of a circle with a slightly smaller 15 degree (approx.)
+# wedge with rounded corners inside it.   The color was sort of
+# a metallic gold/yellow.
+#
+# If I had been more of a beer drinker it might have been obvious
+# to me, but it took a clue from their service department to make
+# me exclaim, "Of course!"   The circular object was the top of
+# a beer can (the old removable pop-top style) and "Soroc" was an
+# anagram for "Coors".
+#
+# I can just imagine the founders of the company sitting around
+# one evening, tossing back a few and trying to decide what to
+# call their new company and what to use for a logo.
+#
+
+# (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr)
+soroc120|iq120|soroc|soroc iq120,
+       clear=\E*$<2>, cud1=^J, ed=\EY, el=\ET, kcub1=^H, kcud1=^J,
+       kcuf1=^L, kcuu1=^K, use=adm3a,
+soroc140|iq140|soroc iq140,
+       OTbs, am, mir,
+       cols#80, lines#24,
+       bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\Ew,
+       dl1=\Er$<.7*>, ed=\Ey, el=\Et, home=^^, il1=\Ee$<1*>, ind=^J,
+       kbs=^H, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A@\r, kf2=^AA\r,
+       kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+       kf8=^AG\r, kf9=^AH\r, khome=^^, ll=^^^K, rmir=\E8,
+       rmso=\E\177, rmul=\E^A, smir=\E9, smso=\E\177, smul=\E^A,
+
+#### Southwest Technical Products
+#
+# These guys made an early personal micro called the M6800.
+# The ct82 was probably its console terminal.
+#
+
+# (swtp: removed obsolete ":bc=^D:" -- esr)
+swtp|ct82|southwest technical products ct82,
+       am,
+       cols#82, lines#20,
+       bel=^G, clear=^L, cr=^M, cub1=^D, cud1=^J, cuf1=^S,
+       cup=\013%p2%c%p1%c, cuu1=^A, dch1=^\^H, dl1=^Z, ed=^V, el=^F,
+       home=^P, ich1=^\^X, il1=^\^Y, ind=^N,
+       is2=\034\022\036\023\036\004\035\027\011\023\036\035\036\017\035\027\022\011,
+       ll=^C, ri=^O, rmso=^^^F, smso=^^^V,
+
+#### Synertek
+#
+# Bob Manson <manson@pattyr.acs.ohio-state.edu> writes (28 Apr 1995):
+#
+# Synertek used to make ICs, various 6502-based single-board process
+# control and hobbyist computers, and assorted peripherals including a
+# series of small inexpensive terminals (I think they were one of the
+# first to have a "terminal-on-a-keyboard", where the terminal itself
+# was only slightly larger than the keyboard).
+#
+# They apparently had a KTM-1 model, which I've never seen. The KTM-2/40
+# was a 40x24 terminal that could connect to a standard TV through a
+# video modulator.  The KTM-2/80 was the 80-column version (the 2/40
+# could be upgraded to the 2/80 by adding 2 2114 SRAMs and a new ROM).
+# I have a KTM-2/80 still in working order.  The KTM-2s had fully
+# socketed parts, used 2 6507s, a 6532 as keyboard scanner, a program
+# ROM and 2 ROMs as character generators. They were incredibly simple,
+# and I've never had any problems with mine (witness the fact that mine
+# was made in 1981 and is still working great... I've blown the video
+# output transistor a couple of times, but it's a 2N2222 :-)
+#
+# The KTM-3 (which is what is listed in the terminfo file) was their
+# attempt at putting a KTM-2 in a box (and some models came with a
+# CRT). It wasn't much different from the KTM-2 hardware-wise, but the
+# control and escape sequences are very different. The KTM-3 was always
+# real broken, at least according to the folks I've talked to about it.
+#
+# The padding in the entry is probably off--these terminals were very
+# slow (it takes like 100ms for the KTM-2 to clear the screen...) And
+# anyone with any sanity replaced the ROMs with something that provided
+# a reasonable subset of VT100 functionality, since the usual ROMs were
+# obviously very primitive... oh, you could get an upgraded ROM from
+# Synertek for some incredible amount of money, but what hacker with an
+# EPROM burner would do that? :)
+#
+# Sorry I don't have any contact info; I believe they were located in
+# Sunnyvale, and I'm fairly sure they are still manufacturing ICs
+# (they've gone to ASICs and FPGAs), but I doubt they're in the computer
+# business these days.
+#
+
+# Tested, seems to work fine with vi.
+synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal,
+       am,
+       cols#80, lines#24,
+       clear=^Z, cub1=^H, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EJ, el=\EK,
+
+#### Tab Office Products
+#
+#      TAB Products Co. - Palo Alto, California
+#      Electronic Office Products,
+#      1451 California Avenue 94304
+#
+# I think they're out of business.
+#
+
+# The tab 132 uses xon/xoff, so no padding needed.
+# <smkx>/<rmkx> have nothing to do with arrow keys.
+# <is2> sets 80 col mode, normal video, autowrap on (for <am>).
+# Seems to be no way to get rid of status line.
+# The manual for this puppy was dated June 1981.  It claims to be VT52-
+# compatible but looks more vt100-like.
+tab132|tab|tab132-15|tab 132/15,
+       da, db,
+       OTdN@, cols#80, lines#24, lm#96,
+       cud1=^J, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M,
+       il1=\E[L, is2=\E[?7h\E[?3l\E[?5l, kcub1=\E[D, kcud1=\E[B,
+       kcuu1=\E[A, rmir=\E[4l, rmkx@, smir=\E[4h, smkx@, use=vt100,
+tab132-w|tab132 in wide mode,
+       cols#132,
+       is2=\E[?7h\E[?3h\E[?5l, use=tab132,
+tab132-rv|tab132 in reverse-video mode,
+       is2=\E[?7h\E[?3l\E[?5h, use=tab132,
+tab132-w-rv|tab132 in reverse-video/wide mode,
+       is2=\E[?7h\E[?3h\E[?5h, use=tab132-w,
+
+
+#### Teleray
+#
+#      Research Incorporated
+#      6425 Flying Cloud Drive
+#      Eden Prairie, MN 55344
+#      Vox: (612)-941-3300
+#
+# The Teleray terminals were all discontinued in 1992-93.  RI still services
+# and repairs these beasts, but no longer manufactures them.  The Teleray
+# people believe that all the types listed below are very rare now (1995).
+# There was a newer line of Telerays (Model 7, Model 20, Model 30, and
+# Model 100) that were ANSI-compatible.
+#
+# Note two things called "teleray".  Reorder should move the common one
+# to the front if you have either.  A dumb teleray with the cursor stuck
+# on the bottom and no obvious model number is probably a 3700.
+#
+
+t3700|dumb teleray 3700,
+       OTbs,
+       cols#80, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ind=^J,
+t3800|teleray 3800 series,
+       OTbs,
+       cols#80, it#8, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EJ, el=\EK,
+       home=\EH, ht=^I, ind=^J, ll=\EY7\s,
+t1061|teleray|teleray 1061,
+       OTbs, am, km, xhp, xt,
+       cols#80, it#8, lines#24, xmc#1,
+       bel=^G, clear=\014$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
+       dl1=\EM$<2*>, ed=\EJ$<1>, el=\EK, home=\EH, ht=^I, hts=\EF,
+       ich1=\EP, il1=\EL$<2*>, ind=^J, ip=$<0.4*>,
+       is2=\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,
+       kf1=^Z1, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5, kf6=^Z6, kf7=^Z7,
+       kf8=^Z8, rmso=\ER@, rmul=\ER@, smso=\s\ERD, smul=\ERH,
+       tbc=\EG,
+t1061f|teleray 1061 with fast PROMs,
+       dl1=\EM, il1=\EL, ip@, use=t1061,
+# "Teleray Arpa Special", officially designated as
+# "Teleray Arpa network model 10" with "Special feature 720".
+# This is the new (1981) fast microcode updating the older "arpa" proms
+# (which gave meta-key and programmable-fxn keys).  720 is much much faster,
+# converts the keypad to programmable function keys, and has other goodies.
+# Standout mode is still broken (magic cookie, etc) so is suppressed as no
+# programs handle such lossage properly.
+# Note: this is NOT the old termcap's "t1061f with fast proms."
+# From: J. Lepreau <lepreau@utah-cs> Tue Feb  1 06:39:37 1983, Univ of Utah
+# (t10: removed overridden ":so@:se@:us@:ue@:" -- esr)
+t10|teleray 10 special,
+       OTbs, km, xhp, xt,
+       cols#80, it#8, lines#24, xmc#2,
+       clear=\Ej$<30/>, cub1=^H, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
+       dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
+       ind=\Eq, pad=\0, ri=\Ep, rmso=\ER@, rmul=\ER@, smso=\ERD,
+       smul=\ERH,
+# teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and
+# back/forth words. Put the function keys (f1-f10) where they can be
+# found, and turn off the other magic keys along the top row, except
+# for line/local. Do the magic appropriate to make the page shifts work.
+# Also toggle ^S/^Q for those of us who use Emacs.
+t16|teleray 16,
+       am, da, db, mir, xhp, xt,
+       cols#80, lines#24,
+       bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=%i\E[%p1%d;%p2%df, cuu1=\E[A, dch1=\E[P,
+       dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H, ht=^I, il1=\E[L,
+       ind=^J, kf1=^Z1, kf10=^Z0, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5,
+       kf6=^Z6, kf7=^Z7, kf8=^Z8, kf9=^Z9, ri=\E[T,
+       rmcup=\E[V\E[24;1f\E[?38h, rmir=\E[4l, rmso=\E[m,
+       rmul=\E[m, sgr0=\E[m, smcup=\E[U\E[?38l, smir=\E[4h,
+       smso=\E[7m, smul=\E[4m,
+
+#### Texas Instruments (ti)
+#
+
+# The Silent 700 was so called because it was built around a quiet thermal
+# printer.  It was portable, equipped with an acoustic coupler, and pretty
+# neat for its day.
+ti700|ti733|ti735|ti745|ti800|ti silent 700/733/735/745 or omni 800,
+       OTbs, hc, os,
+       cols#80,
+       bel=^G, cr=\r$<162>, cub1=^H, cud1=^J, ind=^J,
+
+#
+# Texas Instruments 916 VDT 7 bit control mode
+#
+ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL,
+       da, db, in, msgr,
+       cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[2J$<6>,
+       cnorm=\E[?25h, cub=\E[%p1%dD, cud=\E[%p1%dB,
+       cuf=\E[%p1%dC, cup=\E[%p1%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       dch=\E[%p1%dP$<250>, dch1=\E[P, dl=\E[%p1%dM,
+       ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K, el1=\E[1K,
+       enacs=\E(B\E)0, ff=^L, flash=\E[?5h\E[?5l$<6>,
+       hpa=\E[%p1%{1}%+%dG, hts=\E[0W, ich=\E[%p1%d@$<250>,
+       il=\E[%p1%dL$<36>, ip=$<10>, is2=\E[1;24r\E[24;1H,
+       kcmd=\E[29~, kdch1=\E[P, kent=^J, kf1=\E[17~, kf10=\E[28~,
+       kf11=\E[29~, kf12=\E[31~, kf2=\E[18~, kf3=\E[19~,
+       kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
+       kf9=\E[26~, khome=\E[H, kich1=\E[@, knp=\E[S, kpp=\E[T,
+       kprt=^X, prot=\E&, rmacs=\017$<2>, rs2=\E[!p, sgr@,
+       smacs=\016$<2>, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
+       use=vt220,
+#
+# Texas Instruments 916 VDT 8 bit control mode
+#
+ti916-8|ti916-220-8|Texas Instruments 916 VDT 8859/1 8 vt220 mode bit CTRL,
+       kcmd=\23329~, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
+       kcuu1=\233A, kdch1=\233P, kent=^J, kf1=\23317~,
+       kf10=\23328~, kf11=\23329~, kf12=\23331~, kf2=\23318~,
+       kf3=\23319~, kf4=\23320~, kf5=\23321~, kf6=\23323~,
+       kf7=\23324~, kf8=\23325~, kf9=\23326~, khome=\233H,
+       kich1=\233@, knp=\233S, kpp=\233T, kprt=^X, use=ti916,
+#
+# Texas Instruments 916 VDT 8859/1 7 bit control 132 column mode
+#
+ti916-132|Texas Instruments 916 VDT vt220 132 column,
+       cols#132, use=ti916,
+#
+# Texas Instruments 916 VDT 8859/1 8 bit control 132 column mode
+#
+ti916-8-132|Texas Instruments 916 VDT 8-bit vt220 132 column,
+       cols#132, use=ti916-8,
+ti924|Texas Instruments 924 VDT 8859/1 7 bit CTRL,
+       OTbs, am, xon,
+       cols#80, it#8, lines#24,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
+       csr=%i\E[%p1%d;%p2%dr, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+       cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
+       dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
+       il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kf1=\EOP, kf2=\EOQ,
+       kf3=\EOR, kf4=\EOS, kf5=\E[16~, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, kich1=\E[@, rc=\E8, rev=\E[7m,
+       ri=\EM, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g,
+ti924-8|Texas Instruments 924 VDT 8859/1 8 bit CTRL,
+       am, xon,
+       cols#80, it#8, lines#24,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
+       csr=%i\E[%p1%d;%p2%dr, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+       cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
+       dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
+       il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=P$<\233>, kf1=P$<\217>,
+       kf2=Q$<\217>, kf3=R$<\217>, kf4=S$<\217>, kf5=~$<\23316>,
+       kf6=~$<\23317>, kf7=~$<\23318>, kf8=~$<\23319>,
+       kf9=~$<\23320>, kich1=@$<\233>, rc=\E8, rev=\E[7m, ri=\EM,
+       rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
+       smul=\E[4m, tbc=\E[3g,
+ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode,
+       cols#132, use=ti924,
+ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode,
+       cols#132, use=ti924-8,
+ti931|Texas Instruments 931 VDT,
+       OTbs, am, xon,
+       cols#80, lines#24,
+       bel=^G, blink=\E4P, clear=\EL, cnorm=\E4@, cr=^M, cub1=\ED,
+       cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH,
+       ich1=\ER\EP\EM, il1=\EN, ind=\Ea, invis=\E4H,
+       is2=\EGB\E(@B@@\E), kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kdch1=\EQ, kdl1=\EO, kf1=\Ei1, kf2=\Ei2, kf3=\Ei3,
+       kf4=\Ei4, kf5=\Ei5, kf6=\Ei6, kf7=\Ei7, kf8=\Ei8, kf9=\Ei9,
+       kich1=\EP, kil1=\EN, rev=\E4B, ri=\Eb, rmso=\E4@, rmul=\E4@,
+       sgr0=\E4@, smso=\E4A, smul=\E4D,
+ti926|Texas Instruments 926 VDT 8859/1 7 bit CTRL,
+       csr@, ind=\E[1S, ri=\E[1T, use=ti924,
+# (ti926-8: I corrected this from the broken SCO entry -- esr)
+ti926-8|Texas Instruments 926 VDT 8859/1 8 bit CTRL,
+       csr@, ind=\2331S, ri=\2331T, use=ti924-8,
+ti_ansi|basic entry for ti928,
+       am, bce, eo, xenl, xon,
+       colors#8, cols#80, it#8, lines#25, pairs#64,
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[2J\E[H,
+       cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
+       dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
+       il1=\E[L, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kend=\E[F, kf0=\E[V, kf1=\E[M,
+       kf2=\E[N, kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S,
+       kf8=\E[T, kf9=\E[U, khome=\E[H, knp=\E[G, kpp=\E[I,
+       op=\E[37;40m, ri=\E[T, rmso=\E[m, rmul=\E[m,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[m,
+       smso=\E[7m, smul=\E[4m,
+#
+#       928 VDT 7 bit control mode
+#
+ti928|Texas Instruments 928 VDT 8859/1 7 bit CTRL,
+       kdch1=\E[P, kend=\E_1\E\\, kent=\E[8~, kf1=\E[17~,
+       kf10=\E[28~, kf11=\E[29~, kf12=\E[31~, kf13=\E[32~,
+       kf15=\E[34~, kf2=\E[18~, kf3=\E[19~, kf4=\E[20~,
+       kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~,
+       kich1=\E[@, knp=\E[S, kpp=\E[T, kprt=\E[35~, use=ti_ansi,
+#
+#       928 VDT 8 bit control mode
+#
+ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL,
+       kdch1=\233P, kend=\2371\234, kent=\2338~, kf1=\23317~,
+       kf10=\23328~, kf11=\23329~, kf12=\23331~, kf13=\23332~,
+       kf15=\23334~, kf2=\23318~, kf3=\23319~, kf4=\23320~,
+       kf5=\23321~, kf6=\23323~, kf7=\23324~, kf8=\23325~,
+       kf9=\23326~, khome=\233H, kich1=\233@, knp=\233S,
+       kpp=\233T, kprt=\23335~, use=ti_ansi,
+
+#### Zentec (zen)
+#
+
+# (zen30: removed obsolete :ma=^L ^R^L^K^P:.  This entry originally
+# had just <smso>=\EG6 which I think means standout was supposed to be
+# dim-reverse using ADM12-style attributes. ADM12 <smul>/<rmul> and
+# <invis> might work-- esr)
+zen30|z30|zentec 30,
+       OTbs, am, mir, ul,
+       cols#80, lines#24,
+       bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+       dim=\EG2, dl1=\ER$<1.5*>, ed=\EY, el=\ET$<1.0*>, home=^^,
+       il1=\EE$<1.5*>, ind=^J, rmir=\Er, rmul@, smir=\Eq, smso=\EG6,
+       smul@, use=adm+sgr,
+# (zen50: this had extension capabilities
+#      :BS=^U:CL=^V:CR=^B:
+# UK/DK/RK/LK/HM were someone's aliases for ku/kd/kl/kr/kh,
+# which were also in the original entry -- esr)
+# (zen50: removed obsolete ":ma=^Hh^Ll^Jj^Kk:" -- esr)
+zen50|z50|zentec zephyr,
+       OTbs, am,
+       cols#80, lines#24, xmc#1,
+       clear=\E+, cub1=^H, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=^K, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ich1=\EQ, il1=\EE,
+       invis@, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
+       rmul@, smul@, use=adm+sgr,
+
+# CCI 4574 (Office Power) from Will Martin <wmartin@BRL.ARPA> via BRL
+cci|cci1|z8001|zen8001|CCI Custom Zentec 8001,
+       OTbs, am, bw,
+       cols#80, lines#24,
+       blink=\EM", clear=\EH\EJ, cnorm=\EP,
+       csr=\ER%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^J,
+       cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
+       cvvis=\EF\EQ\EM \ER 7, dim=\EM!, ed=\EJ, el=\EK, home=\EH,
+       invis=\EM(, is2=\EM \EF\ET\EP\ER 7, kbs=^H, kcub1=\ED,
+       kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, mc4=^T, mc5=^R,
+       rev=\EM$, ri=\EI, rmso=\EM\s, rmul=\EM\s, sgr0=\EM\s,
+       smso=\EM$, smul=\EM0,
+
+######## OBSOLETE UNIX CONSOLES
+#
+
+#### Apollo consoles
+#
+# Apollo got bought by Hewlett-Packard.  The Apollo workstations are
+# labeled HP700s now.
+#
+
+# From: Gary Darland <goodmanc@garnet.berkeley.edu>
+apollo|apollo console,
+       OTbs, am, mir,
+       cols#88, lines#53,
+       clear=^L, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EM%p1%{32}%+%c%p2%d), cuu1=\EA, dch1=\EP, dl1=\EL,
+       ed=\EJ, el=\EK, hpa=\EN%p1%d, il1=\EI, ind=\EE, ri=\ED,
+       rmcup=\EX, rmir=\ER, rmso=\ET, rmul=\EV, smcup=\EW, smir=\EQ,
+       smso=\ES, smul=\EU, vpa=\EO+\s,
+
+# We don't know whether or not the apollo guys replicated DEC's firmware bug
+# in the VT132 that reversed <rmir>/<smir>.  To be on the safe side, disable
+# both these capabilities.
+apollo_15P|apollo 15 inch display,
+       rmir@, smir@, use=vt132,
+apollo_19L|apollo 19 inch display,
+       rmir@, smir@, use=vt132,
+apollo_color|apollo color display,
+       rmir@, smir@, use=vt132,
+
+#### Convergent Technology
+#
+# Burroughs bought Convergent shortly before it merged with Univac.
+# CTOS is (I believe) dead.  Probably the aws is too (this entry dates
+# from 1991 or earlier).
+#
+
+# Convergent AWS workstation from Gould/SEL UTX/32 via BRL
+# (aws: removed unknown :dn=^K: -- esr)
+aws|Convergent Technologies AWS workstation under UTX and Xenix,
+       am,
+       OTug#0, cols#80, lines#28, xmc#0,
+       OTbc=^H, OTma=\016h\013j\001k\022l\002m, OTnl=^J, acsc=,
+       clear=^L, cud1=^K, cuf1=^R, cup=\EC%p2%c%p1%c, cuu1=^A,
+       dch1=\EDC, dl1=\EDL, ed=\EEF, el=\EEL, hpa=\EH%p1%c,
+       ich1=\EIC, il1=\EIL, ind=\ESU, kbs=^H, kcub1=^N, kcud1=^K,
+       kcuf1=^R, kcuu1=^A, ri=\ESD, rmacs=\EAAF, rmso=\EARF,
+       rmul=\EAUF, smacs=\EAAN, smso=\EARN, smul=\EAUN,
+       vpa=\EV%p1%c,
+awsc|Convergent Technologies AWS workstation under CTOS,
+       am,
+       OTug#0, cols#80, lines#24, xmc#0,
+       OTbc=^N, OTma=\016h\013j\001k\022l\002m, acsc=, clear=^L,
+       cud1=^K, cuf1=^R, cup=\EC%p2%c%p1%c, cuu1=^A, ed=\EEF,
+       el=\EEL, kbs=^H, kcub1=^N, kcud1=^K, kcuf1=^R, kcuu1=^A,
+       rmacs=\EAAF, rmso=\EAA, rmul=\EAA, smacs=\EAAN, smso=\EAE,
+       smul=\EAC,
+
+#### DEC consoles
+#
+
+# The MicroVax console.  Tim Theisen <tim@cs.wisc.edu> writes:
+# The digital uVax II's had a graphic display called a qdss.  It was
+# supposed to be a high performance graphic accelerator, but it was
+# late to market and barely appeared before faster dumb frame buffers
+# appeared.  I have only used this display while running X11.  However,
+# during bootup, it was in text mode, and probably had a terminal emulator
+# within it.  And that is what your termcap entry is for.  In graphics
+# mode the screen size is 1024x864 pixels.
+qdss|qdcons|qdss glass tty,
+       OTbs, am,
+       cols#128, lines#57,
+       clear=\032$<1/>, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\E=%p1%c%p2%c, cuu1=^K,
+
+#### Fortune Systems consoles
+#
+# Fortune made a line of 68K-based UNIX boxes that were pretty nifty
+# in their day; I (esr) used one myself for a year or so around 1984.
+# They had no graphics, though, and couldn't compete against Suns and
+# the like.  R.I.P.
+#
+
+# From: Robert Nathanson <c160-3bp@Coral> via tut   Wed Oct 5, 1983
+# (This had extension capabilities
+#      :rv=\EH:re=\EI:rg=0:GG=0:\
+#      :CO=\E\\:WL=^Aa\r:WR=^Ab\r:CL=^Ac\r:CR=^Ad\r:DL=^Ae\r:RF=^Af\r:\
+#      :RC=^Ag\r:CW=^Ah\r:NU=^Aj\r:EN=^Ak\r:HM=^Al:PL=^Am\r:\
+#      :PU=^An\r:PD=^Ao\r:PR=^Ap\r:HP=^A@\r:RT=^Aq\r:TB=\r:CN=\177:MP=\E+F:
+# It had both ":bs:" and ":bs=^H:"; I removed the latter.  Also, it had
+# ":sg=0:" and ":ug=0:"; evidently the composer was trying (unnecessarily)
+# to force both magic cookie glitches off.  Once upon a time, I
+# used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are
+# function keys; thus the "Al" value for HM was certainly an error.  I renamed
+# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC.
+# I think :rv: and :re: are start/end reverse video and :rg: is a nonexistent
+# "reverse-video-glitch" capability; I have put :rv: and :re: in with standard
+# names below.  I've removed obsolete ":nl=5^J:" as there is a :do: -- esr)
+fos|fortune|Fortune system,
+       OTbs, am, bw,
+       cols#80, lines#25,
+       acsc=j*k(l m"q&v%w#x-, bel=^G, blink=\EN, civis=\E],
+       clear=\014$<20>, cnorm=\E\\, cr=^M, cub1=^H, cud1=\n$<3>,
+       cup=\034C%p1%{32}%+%c%p2%{32}%+%c, cuu1=\013$<3>,
+       cvvis=\E\:, dch1=\034W$<5>, dl1=\034R$<15>,
+       ed=\034Y$<3*>, el=^\Z, home=\036$<10>, ht=^Z,
+       ich1=\034Q$<5>, il1=\034E$<15>, ind=^J, is2=^_.., kbs=^H,
+       kcub1=^Aw\r, kcud1=^Ay\r, kcuf1=^Az\r, kcuu1=^Ax\r,
+       kend=^Ak\r, kent=^Aq, kf1=^Aa\r, kf2=^Ab\r, kf3=^Ac\r,
+       kf4=^Ad\r, kf5=^Ae\r, kf6=^Af\r, kf7=^Ag\r, kf8=^Ah\r,
+       khome=^A?\r, knp=^Ao\r, kpp=^An\r, nel=^M^J, rev=\EH,
+       rmacs=^O, rmso=^\I`, rmul=^\IP, sgr0=\EI, smacs=\Eo,
+       smso=^\H`, smul=^\HP,
+
+#### Masscomp consoles
+#
+# Masscomp has gone out of business.  Their product line was purchased by
+# comany in Georgia (US) called "XS International", parts and service may
+# still be available through them.
+#
+
+# (masscomp: ":MT:" changed to ":km:";  -- esr)
+masscomp|masscomp workstation console,
+       OTbs, km, mir,
+       cols#80, it#8, lines#24,
+       clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+       ed=\E[J, el=\E[K, ht=^I, il1=\E[L, is2=\EGc\EGb\EGw, kbs=^H,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rmir=\E[4l,
+       rmso=\E[m, rmul=\EGau, smir=\E[4h, smso=\E[7m, smul=\EGu,
+masscomp1|masscomp large screen version 1,
+       cols#104, lines#36, use=masscomp,
+masscomp2|masscomp large screen version 2,
+       cols#64, lines#21, use=masscomp,
+
+######## OTHER OBSOLETE TYPES
+#
+# These terminals are *long* dead -- these entries are retained for
+# historical interest only.
+#
+
+#### Obsolete non-ANSI software emulations
+#
+
+# CTRM terminal emulator
+# 1. underlining is not allowed with colors: first, is is simulated by
+# black on white, second, it disables background color manipulations.
+# 2. BLINKING, REVERSE and BOLD are allowed with colors,
+# so we have to save their status in the static registers A, B and H
+# respectively, to be able to restore them when color changes
+# (because any color change turns off ALL attributes)
+# 3. <bold> and <rev> sequences alternate modes,
+# rather than simply  entering them.  Thus we have to check the
+# static register B and H to determine the status, before sending the
+# escape sequence.
+# 4. <sgr0> now must set the status of all 3 register (A,B,H) to zero
+# and then reset colors
+# 5. implementation of the protect mode would badly penalize the performance.
+# we would have to use \E&bn sequence to turn off colors (as well as all
+# other attributes), and keep the status of protect mode in yet another
+# static variable.  If someone really needs this mode, they would have to
+# create another terminfo entry.
+# 6. original color-pair is white on black.
+# store the information about colors into static registers
+# 7. set foreground color.  it performs the following steps.
+#   1) turn off all attributes
+#   2) turn on the background and video attributes that have been turned
+#      on before (this information is stored in static registers X,Y,Z,A,B,H,D).
+#   3) turn on foreground attributes
+#   4) store information about foreground into U,V,W static registers
+# 8. turn on background: similar to turn on foreground above
+ctrm|C terminal emulator,
+       am, bce, xon,
+       colors#8, cols#80, lh#0, lines#24, lm#0, lw#0, ncv#2, nlab#0,
+       pairs#63, pb#19200, vt#6,
+       bel=^G, blink=\E&dA%{1}%PA,
+       bold=%?%gH%{0}%=%t\E&dH%{1}%PH%;, cbt=\Ei,
+       clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\E&a%p2%dc%p1%dY, cuu1=\EA, dch1=\EP$<2>, dl1=\EM,
+       ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=\011$<2>, hts=\E1,
+       il1=\EL, ind=^J, ip=$<2>, is2=\E&jA\r, kbs=^H, kcub1=\Eu\r,
+       kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1=\Ep\r,
+       kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r,
+       kf7=\Ev\r, kf8=\Ew\r, khome=\Ep\r,
+       op=\E&bn\E&bB\E&bG\E&bR%{0}%PX%{0}%PY%{0}%PZ%{1}%PW%{1}%PV%{1}%PU,
+       rev=%?%gB%{0}%=%t\E&dB%{1}%PB%;, rmir=\ER, rmkx=\E&jA,
+       setb=\E&bn%?%gA%t\E&dA%;%?%gB%t\E&dB%;%?%gH%t\E&dH%;%?%gU%t\E&bR%;%?%gV%t\E&bG%;%?%gW%t\E&bB%;%?%p1%{1}%&%t\E&bb%{1}%e%{0}%;%PZ%?%p1%{2}%&%t\E&bg%{1}%e%{0}%;%PY%?%p1%{4}%&%t\E&br%{1}%e%{0}%;%PX,
+       setf=\E&bn%?%gA%t\E&dA%;%?%gB%t\E&dB%;%?%gH%t\E&dH%;%?%gX%t\E&br%;%?%gY%t\E&bg%;%?%gZ%t\E&bb%;%?%p1%{1}%&%t\E&bB%{1}%e%{0}%;%PW%?%p1%{2}%&%t\E&bG%{1}%e%{0}%;%PV%?%p1%{4}%&%t\E&bR%{1}%e%{0}%;%PU,
+       sgr=\E&d@%{0}%PA%{0}%PB%{0}%PD%{0}%PH%?%p1%p3%p5%|%|%t\E&dB%{1}%PB%;%?%p4%t\E&dA%{1}%PA%;%?%p6%t\E&dH%{1}%PH%;%?%p2%t\E&dD%;,
+       sgr0=\E&d@%{0}%PA%{0}%PB%{0}%PH, smir=\EQ, smkx=\E&jB,
+       smso=\E&dD, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+
+# gs6300 - can't use blue foreground, it clashes with underline;
+# it's simulated with cyan
+# Bug: The <op> capability probably resets attributes.
+# (gs6300: commented out <rmln> (no <smln>) --esr)
+gs6300|emots|AT&T PC6300 with EMOTS terminal emulator,
+       am, bce, msgr, xon,
+       colors#8, cols#80, it#8, lines#24, pairs#63,
+       acsc=++\,\,--..``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       is2=\E[m, kbs=^H, kcbt=^R^I, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kf1=\E[0s, kf2=\E[24s, kf3=\E[1s,
+       kf4=\E[23s, kf5=\E[2s, kf6=\E[22s, kf7=\E[3s, kf8=\E[21s,
+       khome=\E[H, mc4=\E[4i, mc5=\E[5i, op=\E[?;m, rev=\E[7m,
+       ri=\E[L, rmacs=\E[10m, rs1=\Ec, setb=\E[?;%p1%dm,
+       setf=\E[?%?%p1%{0}%=%t0%e%p1%{1}%=%t2%e%p1%{1}%-%d%;m,
+       sgr0=\E[m\E[10m, smacs=\E[11m, smso=\E[1m, smul=\E[4m,
+
+# From: <earle@smeagol.UUCP> 29 Oct 85 05:40:18 GMT
+# MS-Kermit with Heath-19 emulation mode enabled
+# (h19k: changed ":pt@:" to ":it@"
+h19k|h19kermit|heathkit emulation provided by Kermit (no auto margin),
+       am@, da, db, xt,
+       it@,
+       ht@, use=h19-u,
+
+# Apple Macintosh with Versaterm, a terminal emulator distributed by Synergy
+# Software (formerly Peripherals Computers & Supplies, Inc) of
+# 2457 Perkiomen Ave., Reading, PA 19606, 1-800-876-8376.  They can
+# also be reached at support@synergy.com.
+versaterm|versaterm vt100 emulator for the macintosh,
+       am, xenl,
+       cols#80, it#8, lines#24,
+       bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
+       clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
+       cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
+       dch1=\E[1P$<7/>, dl1=\E[1M$<9/>, ed=\E[J$<50/>,
+       el=\E[K$<3/>, home=\E[H, ht=^I, ich1=\E[1@$<7/>,
+       il1=\E[1L$<9/>, is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD,
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
+       kf3=\EOR, kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>,
+       rf=/usr/share/tabset/vt100, ri=\EM$<5/>,
+       rmkx=\E>\E[?1l, rmso=\E[m$<2/>, rmul=\E[m$<2/>, rs1=\E>,
+       sc=\E7, sgr0=\E[m$<2/>, smkx=\E=\E[?1h, smso=\E[7m$<2/>,
+       smul=\E[4m$<2/>,
+
+# From: Rick Thomas <ihnp4!btlunix!rbt>
+# (xtalk: I added <rmam>/<smam> based on the init string.
+xtalk|IBM PC with xtalk communication program (versions up to 3.4),
+       am, mir, msgr, xon,
+       cols#80, it#8, lines#24, vt#3, xmc#1,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, clear=\E[H\E[J$<50>, cr=^M, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+       cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+       cuu1=\E[A$<2>, dl1=\E[M$<99>, ed=\E[J$<50>, el=\E[K$<3>,
+       el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH,
+       il1=\E[L$<99>, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB,
+       kcuf1=\EOC, kcuu1=\EOA, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
+       rmkx=\E[?1l\E>, rmso=\E[m\s,
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr0=\E[m,
+       smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m\s,
+       tbc=\E[3g, use=vt100+fnkeys,
+
+# The official PC terminal emulator program of the AT&T Product Centers.
+# Note - insert mode commented out - doesn't seem to work on AT&T PC.
+simterm|attpc running simterm,
+       am,
+       cols#80, lines#24,
+       bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\ER,
+       dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, ind=^J, rmcup=\EVE,
+       rmso=\E&d@, sgr0=\E&d@, smcup=\EVS, smso=\E&dB,
+
+#### Daisy wheel printers
+#
+# This section collects Diablo, DTC, Xerox, Qume, and other daisy
+# wheel terminals.  These are now largely obsolete.
+#
+
+# (diablo1620: removed <if=/usr/share/tabset/xerox1720>, no such file -- esr)
+diablo1620|diablo1720|diablo450|ipsi|diablo 1620,
+       hc, os,
+       cols#132, it#8,
+       cub1=^H, cud1=^J, cuu1=\E^J, hd=\ED, hpa=\E\011%i%p1%c,
+       ht=^I, hts=\E1, hu=\EU, kbs=^H, tbc=\E2,
+diablo1620-m8|diablo1640-m8|diablo 1620 w/8 column left margin,
+       cols#124,
+       is2=\r        \E9, use=diablo1620,
+# (diablo1640: removed <if=/usr/share/tabset/xerox1730>, no such file -- esr)
+diablo1640|diablo1730|diablo1740|diablo630|x1700|diablo|xerox|diablo 1640,
+       bel=^G, rmso=\E&, rmul=\ER, smso=\EW, smul=\EE,
+       use=diablo1620,
+# (diablo1640-lm: removed <if=/usr/share/tabset/xerox1730-lm>, no such
+# file -- esr)
+diablo1640-lm|diablo-lm|xerox-lm|diablo 1640 with indented left margin,
+       cols#124,
+       rmso=\E&, rmul=\ER, smso=\EW, smul=\EE, use=diablo1620,
+diablo1740-lm|630-lm|1730-lm|x1700-lm|diablo 1740 printer,
+       use=diablo1640-lm,
+# DTC 382 with VDU.  Has no <ed> so we fake it with <el>.  Standout
+# <smso=^P\s\002^PF> works but won't go away without dynamite <rmso=^P\s\0>.
+# The terminal has tabs, but I'm getting tired of fighting the braindamage.
+# If no tab is set or the terminal's in a bad mood, it glitches the screen
+# around all of memory.  Note that return puts a blank ("a return character")
+# in the space the cursor was at, so we use ^P return (and thus ^P newline for
+# newline).  Note also that if you turn off :pt: and let Unix expand tabs,
+# curses won't work (some old BSD versions) because it doesn't clear this bit,
+# and cursor addressing sends a tab for row/column 9.  What a losing terminal!
+# I have been unable to get tabs set in all 96 lines - it always leaves at
+# least one line with no tabs in it, and once you tab through that line,
+# it completely weirds out.
+# (dtc382: change <rmcup> to <smcup> -- it  just does a clear --esr)
+dtc382|DTC 382,
+       am, da, db, xhp,
+       cols#80, lines#24, lm#96,
+       bel=^G, clear=\020\035$<20>, cnorm=^Pb, cr=^P^M, cub1=^H,
+       cuf1=^PR, cup=\020\021%p2%c%p1%c, cuu1=^P^L, cvvis=^PB,
+       dch1=^X, dl1=^P^S, ed=\020\025\020\023\020\023, el=^P^U,
+       home=^P^R, il1=^P^Z, ind=^J, pad=\177, rmcup=, rmir=^Pi,
+       rmul=^P \0, smcup=\020\035$<20>, smir=^PI, smul=^P ^P,
+dtc300s|DTC 300s,
+       hc, os,
+       cols#132,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
+       hts=\E1, hu=\EH, ind=^J, kbs=^H, tbc=\E3,
+gsi|mystery gsi terminal,
+       hc, os,
+       cols#132,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, hd=\Eh, ht=^I, hu=\EH,
+       ind=^J,
+aj830|aj832|aj|anderson jacobson,
+       hc, os,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
+       ind=^J,
+# From: Chris Torek <chris@gyre.umd.edu> Thu, 7 Nov 85 18:21:58 EST
+aj510|Anderson-Jacobson model 510,
+       am, mir,
+       cols#80, lines#24,
+       clear=^L, cub1=^H, cuf1=\EX,
+       cup=\E#%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EY,
+       dch1=.1*\E'D, dl1=\E&D$<2*/>, ed=\E'P, el=\E'L, ich1=,
+       il1=\E&I$<2*/>, ip=$<.1*/>, kcub1=\EW, kcud1=\EZ,
+       kcuf1=\EX, kcuu1=\EY, pad=\177, rmcup=\E"N, rmir=\E'J,
+       rmso=\E"I, rmul=\E"U, smcup=\E"N, smir=\E'I, smso=\E"I,
+       smul=\E"U,
+# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
+# This is incomplete, but it's a start.
+nec5520|nec|spinwriter|nec 5520,
+       hc, os,
+       cols#132, it#8,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E9, ff=^L,
+       hd=\E]s\n\E]W, ht=^I, hts=\E1, hu=\E]s\E9\E]W, ind=^J,
+       kbs=^H, tbc=\E3,
+qume5|qume|Qume Sprint 5,
+       hc, os,
+       cols#80, it#8,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
+       hts=\E1, hu=\EH, ind=^J, kbs=^H, tbc=\E3,
+# I suspect the xerox 1720 is the same as the diablo 1620.
+xerox1720|x1720|x1750|xerox 1720,
+       hc, os,
+       cols#132, it#8,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, ff=^L, ht=^I, hts=\E1, ind=^J,
+       tbc=\E2,
+
+#### Miscellaneous obsolete terminals, manufacturers unknown
+#
+# If you have any information about these (like, a manufacturer's name,
+# and a date on the serial-number plate) please send it!
+
+cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars,
+       OTbs, am,
+       cols#73, lines#36,
+       clear=^Z, cub1=^H, cuf1=^L, cuu1=^K, home=^^,
+cad68-2|cgc2|cad68 basic monitor transparent mode size 2 chars,
+       OTbs, am,
+       cols#85, lines#39,
+       clear=^Z, cub1=^H, cuf1=^L, cuu1=^K, home=^^, kcub1=\E3,
+       kcud1=\E2, kcuf1=\E4, kcuu1=\E1, kf1=\E5, kf2=\E6, kf3=\E7,
+       kf4=\E8, rmso=\Em^C, smso=\Em^L,
+cops10|cops|cops-10|cops 10,
+       am, bw,
+       cols#80, lines#24,
+       bel=^G, clear=\030$<30/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+       cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^W, el=^V,
+       ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
+       khome=^Y,
+# (d132: removed duplicate :ic=\E5:,
+# merged in capabilities from a BRL entry -- esr)
+d132|datagraphix|datagraphix 132a,
+       da, db, in,
+       cols#80, lines#30,
+       bel=^G, clear=^L, cnorm=\Em\En, cr=^M, cub1=^H, cud1=^J,
+       cuf1=\EL, cup=\E8%i%p1%3d%p2%3d, cuu1=\EK, cvvis=\Ex,
+       dch1=\E6, home=\ET, ht=^I, ich1=\E5, il1=\E3, ind=^J, kbs=^H,
+       kcub1=^H, kcud1=^J, nel=^M^J, ri=\Ew,
+# The d800 was an early portable terminal from c.1984-85 that looked a lot
+# like the original Compaq `lunchbox' portable (but no handle).  It had a vt220
+# mode (which is what this entry looks like) and several other lesser-known
+# emulations.
+d800|Direct 800/A,
+       OTbs, am, da, db, msgr, xhp,
+       cols#80, it#8, lines#24,
+       acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
+       bel=^G, clear=\E[1;1H\E[2J, cnorm=\E[>12h, cr=^M, cub1=^H,
+       cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       cvvis=\E[>12l, ed=\E[J, el=\E[K, ht=^I, ind=\ED, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
+       kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
+       ri=\EM, rmacs=\E[m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+       smacs=\E[1m, smso=\E[7m, smul=\E[4m,
+digilog|digilog 333,
+       OTbs,
+       cols#80, lines#16,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, cuf1=^I, cuu1=^O, el=^X,
+       home=^N, ind=^J,
+# The DWK was a terminal manufactured in the Soviet Union c.1986
+dwk|dwk-vt|dwk terminal,
+       am,
+       cols#80, it#8, lines#24,
+       acsc=+\^\,Q-S.M0\177`+a\:f'g#h#i#jXkClJmFnNo~qUs_tEuPv\\wKxW~_,
+       bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
+       ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EQ, ind=^J, kbs=\177,
+       kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\Ee,
+       kf1=\Ef1, kf10=\Ef0, kf2=\Ef2, kf3=\Ef3, kf4=\Ef4, kf5=\Ef5,
+       kf6=\Ef6, kf7=\Ef7, kf8=\Ef8, kf9=\Ef9, kich1=\Ed, knp=\Eh,
+       kpp=\Eg, nel=^M^J, rev=\ET, ri=\ES, rmacs=\EG, rmso=\EX,
+       sgr0=\EX, smacs=\EF, smso=\ET,
+env230|envision230|envision 230 graphics terminal,
+       xenl@,
+       mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+       sgr=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
+       use=vt100,
+# These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
+# coupler attached, the whole rig fitting in a suitcase and more or less
+# portable.  Hot stuff for c.1977 :-) -- esr
+ep48|ep4080|execuport 4080,
+       OTbs, am, os,
+       cols#80,
+       bel=^G, cr=^M, cub1=^H, cud1=^J, hd=^\, hu=^^, ind=^J,
+ep40|ep4000|execuport 4000,
+       cols#136, use=ep4080,
+# Adam Thompson <athompso@pangea.ca> tells us:
+# Informer series - these are all portable units, resembling older
+# automatic bread-baking machines.  The terminal looks like a `clamshell'
+# design, but isn't.  The structure is similar to the Direct terminals,
+# but only half the width.  The entire unit is only about 10" wide.
+# It features an 8" screen (6" or 7" if you have color!), and an 9"x6"
+# keyboard.  All the keys are crammed together, much like some laptop
+# PCs today, but perhaps less well organized...all these units have a
+# bewildering array of plugs on the back, including a built-in modem.
+# The 305 was a color version of the 304; the 306 and 307 were mono and
+# color terminals built for IBM bisync protocols.
+# From: Paul Leondis <unllab@amber.berkeley.edu>
+ifmr|Informer D304,
+       OTbs, am,
+       cols#80, lines#24,
+       clear=\EZ, cub1=^H, cud1=^J, cuf1=\EC,
+       cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dch1=\E\\,
+       ed=\E/, el=\EQ, home=\EH, ich1=\E[, ri=\En, rmso=\EK, sgr0=\EK,
+       smso=\EJ,
+# Entry largely based on wy60 and has the features of wy60ak.
+opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys,
+       am, bw, hs, km, mir, msgr, ul, xon,
+       cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#80,
+       acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
+       cbt=\EI, civis=\E`0, clear=\E*$<100>, cnorm=\E`1, cr=^M,
+       cub1=^H, cud1=^J, cuf1=^L, cup=\Ea%i%p1%dR%p2%dC, cuu1=^K,
+       dch1=\EW$<11>, dim=\EGp, dl1=\ER$<5>, dsl=\Ez(\r,
+       ed=\EY$<100>, el=\ET, fsl=^M, home=\036$<2>, ht=\011$<5>,
+       hts=\E1, if=/usr/share/tabset/std, il1=\EE$<4>, ind=^J,
+       ip=$<3>,
+       is2=\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,
+       kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\EW, kdl1=\ER, ked=\EY,
+       kel=\ET, kend=\E[F, kent=\E7, kf1=^A@\r, kf10=^AI\r,
+       kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
+       kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+       kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+       kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
+       mc0=\EP, mc4=^T, mc5=^R, nel=\r\n$<3>,
+       pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
+       pfx=\EZ1%p1%{63}%+%c%p2%s\177,
+       pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
+       rmacs=\EH^C, rmam=\Ed., rmcup=, rmir=\Er, rmln=\EA11,
+       rmxon=\Ec20, rs1=\E~!\E~4$<150>, rs2=\EeF$<150>,
+       rs3=\EwG\Ee($<150>,
+       sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+       sgr0=\E(\EH\003\EG0\EcD, smacs=\EH^B, smam=\Ed/,
+       smcup=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177,
+       smir=\Eq, smln=\EA10, smxon=\Ec21, tbc=\E0, tsl=\Ez(,
+       uc=\EG8\EG0, use=adm+sgr,
+teletec|Teletec Datascreen,
+       OTbs, am,
+       cols#80, lines#24,
+       bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^K,
+       home=^^, ind=^J,
+# From: Mark Dornfeld <romwa@ucbvax.berkeley.edu>
+# This description is for the LANPAR Technologies VISION 3220
+# terminal from 1984/85.  The function key definitions k0-k5 represent the
+# edit keypad: FIND, INSERT HERE, REMOVE, SELECT, PREV SCREEN,
+# NEXT SCREEN. The key definitions k6-k9 represent the PF1 to PF4 keys.
+#
+# Kenneth Randell <kenr@datametrics.com> writes on 31 Dec 1998:
+# I had a couple of scopes (3221) like this once where I used to work, around
+# the 1987 time frame if memory serves me correctly.  These scopes were made
+# by an outfit called LANPAR Technologies, and were meant to me DEC VT 220
+# compatible.  The 3220 was a plain text terminal like the VT-220, the 3221
+# was a like the VT-240 (monochrome with Regis + Sixel graphics), and the 3222
+# was like the VT-241 (color with Regis + Sixel Graphics).  These terminals
+# (3221) cost about $1500 each, and one was always broken -- had to be sent
+# back to the shop for repairs.
+# The only real advantage these scopes had over the VT-240's were:
+# 1) They were faster in the Regis display, or at least the ones I did
+# 2) They had a handy debugging feature where you could split-screen the
+# scope, the graphics would appear on the top, and the REGIS commands would
+# appear on the bottom.  I don't remember the VT-240s being able to do that.
+# I would swear that LANPAR Technologies was in MA someplace, but since I
+# don't work at the same place anymore, and those terminals and manuals were
+# long since junked, I cannot be any more sure than that.
+#
+# (v3220: removed obsolete ":kn#10:",
+# I added <rmam>/<smam> based on the init string -- esr)
+v3220|LANPAR Vision II model 3220/3221/3222,
+       OTbs, am, mir, xenl,
+       cols#80, it#8, lines#24,
+       clear=\E[H\E[J, cub1=^H, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+       ed=\E[J, el=\E[K, ht=^I, il1=\E[L,
+       is2=\E>\E[?3l\E[?7h\E[?8h\E[p, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kf0=\E[1~, kf1=\E[2~, kf2=\E[3~,
+       kf3=\E[4~, kf4=\E[5~, kf5=\E[6~, kf6=\E[OP, kf7=\E[OQ,
+       kf8=\E[OR, kf9=\E[OS, khome=\E[H, ri=\EM, rmam=\E[?7l,
+       rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+       smam=\E[?7h, smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
+######## ICH/ICH1 VERSUS RMIR/SMIR
+#
+# Some non-curses applications get confused if both ich/ich1 and rmir/smir
+# are present; the symptom is doubled characters in an update using insert.
+# These applications are technically correct; in both 4.3BSD termcap and
+# terminfo, you're not actually supposed to specify both ich/ich1 and rmir/smir
+# unless the terminal needs both.  To my knowledge, no terminal still in this
+# file requires both other than the very obsolete dm2500.
+#
+# For ncurses-based applications this is not a problem, as ncurses uses
+# one or the other as appropriate but never mixes the two.  Therefore we
+# have not corrected entries like `linux' and `xterm' that specify both.
+# If you see doubled characters from these, use the linux-nic and xterm-nic
+# entries that suppress ich/ich1.  And upgrade to ncurses!
+#
+
+######## VT100/ANSI/ISO 6429/ECMA-48/PC-TERM TERMINAL STANDARDS
+#
+# ANSI X3.64 has been withdrawn and replaced by ECMA-48.  The ISO 6429 and
+# ECMA-48 standards are said to be almost identical, but are not the same
+# as X3.64 (though for practical purposes they are close supersets of it).
+#
+# You can obtain ECMA-48 for free by sending email to helpdesk@ecma.ch
+# requesting the standard(s) you want (i.e. ECMA-48, "Control Functions for
+# Coded Character Sets"), include your snail-mail address, and you should
+# receive the document in due course.  Don't expect an email acknowledgement.
+#
+# Related standards include "X3.4-1977: American National Standard Code for
+# Information Interchange" (the ASCII standard) and "X3.41.1974:
+# Code-Extension Techniques for Use with the 7-Bit Coded Character Set of
+# American National Standard for Information Interchange."  I believe (but
+# am not certain) that these are effectively identical to ECMA-6 and ECMA-35
+# respectively.
+#
+
+#### VT100/ANSI/ECMA-48
+#
+# ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals
+# and ECMA-48 Control Functions for Coded Character Sets.
+#
+# Much of the content of this comment is adapted from a table prepared by
+# Richard Shuford, based on a 1984 Byte article.  Terminfo correspondences,
+# discussion of some terminfo-related issues, and updates to capture ECMA-48
+# have been added.  Control functions described in ECMA-48 only are tagged
+# with * after their names.
+#
+# The table is a complete list of the defined ANSI X3.64/ECMA-48 control
+# sequences.  In the main table, \E stands for an escape (\033) character,
+# SPC for space.  Pn stands for a single numeric parameter to be inserted
+# in decimal ASCII.  Ps stands for a list of such parameters separated by
+# semicolons.  Parameter meanings for most parametrized sequences are
+# decribed in the notes.
+#
+# Sequence     Sequence                             Parameter   or
+# Mnemonic     Name              Sequence           Value      Mode   terminfo
+# -----------------------------------------------------------------------------
+# APC  Applicatn Program Command \E _                -         Delim  -
+# BEL  Bell *                    ^G                  -         -      bel
+# BPH  Break Permitted Here *    \E B                -         *      -
+# BS   Backpace *                ^H                  -         EF     -
+# CAN  Cancel *                  ^X                  -         -      -   (A)
+# CBT  Cursor Backward Tab       \E [ Pn Z           1         eF     cbt
+# CCH  Cancel Previous Character \E T                -         -      -
+# CHA  Cursor Horizntal Absolute \E [ Pn G           1         eF     hpa (B)
+# CHT  Cursor Horizontal Tab     \E [ Pn I           1         eF     tab (C)
+# CMD  Coding Method Delimiter * \E
+# CNL  Cursor Next Line          \E [ Pn E           1         eF     nel (D)
+# CPL  Cursor Preceding Line     \E [ Pn F           1         eF     -
+# CPR  Cursor Position Report    \E [ Pn ; Pn R      1, 1      -      -   (E)
+# CSI  Control Sequence Intro    \E [                -         Intro  -
+# CTC  Cursor Tabulation Control \E [ Ps W           0         eF     -   (F)
+# CUB  Cursor Backward           \E [ Pn D           1         eF     cub
+# CUD  Cursor Down               \E [ Pn B           1         eF     cud
+# CUF  Cursor Forward            \E [ Pn C           1         eF     cuf
+# CUP  Cursor Position           \E [ Pn ; Pn H      1, 1      eF     cup (G)
+# CUU  Cursor Up                 \E [ Pn A           1         eF     cuu
+# CVT  Cursor Vertical Tab       \E [ Pn Y           -         eF     -   (H)
+# DA   Device Attributes         \E [ Pn c           0         -      -
+# DAQ  Define Area Qualification \E [ Ps o           0         -      -
+# DCH  Delete Character          \E [ Pn P           1         eF     dch
+# DCS  Device Control String     \E P                -         Delim  -
+# DL   Delete Line               \E [ Pn M           1         eF     dl
+# DLE  Data Link Escape *        ^P                  -         -      -
+# DMI  Disable Manual Input      \E \                -         Fs     -
+# DSR  Device Status Report      \E [ Ps n           0         -      -   (I)
+# DTA  Dimension Text Area *     \E [ Pn ; Pn SPC T  -         PC     -
+# EA   Erase in Area             \E [ Ps O           0         eF     -   (J)
+# ECH  Erase Character           \E [ Pn X           1         eF     ech
+# ED   Erase in Display          \E [ Ps J           0         eF     ed  (J)
+# EF   Erase in Field            \E [ Ps N           0         eF     -
+# EL   Erase in Line             \E [ Ps K           0         eF     el  (J)
+# EM   End of Medium *           ^Y                  -         -      -
+# EMI  Enable Manual Input       \E b                          Fs     -
+# ENQ  Enquire                   ^E                  -         -      -
+# EOT  End Of Transmission       ^D                  -         *      -
+# EPA  End of Protected Area     \E W                -         -      -   (K)
+# ESA  End of Selected Area      \E G                -         -      -
+# ESC  Escape                    ^[                  -         -      -
+# ETB  End Transmission Block    ^W                  -         -      -
+# ETX  End of Text               ^C                  -         -      -
+# FF   Form Feed                 ^L                  -         -      -
+# FNK  Function Key *            \E [ Pn SPC W       -         -      -
+# GCC  Graphic Char Combination* \E [ Pn ; Pn SPC B  -         -      -
+# FNT  Font Selection            \E [ Pn ; Pn SPC D  0, 0      FE     -
+# GSM  Graphic Size Modify       \E [ Pn ; Pn SPC B  100, 100  FE     -   (L)
+# GSS  Graphic Size Selection    \E [ Pn SPC C       none      FE     -
+# HPA  Horz Position Absolute    \E [ Pn `           1         FE     -   (B)
+# HPB  Char Position Backward    \E [ j              1         FE     -
+# HPR  Horz Position Relative    \E [ Pn a           1         FE     -   (M)
+# HT   Horizontal Tab *          ^I                  -         FE     -   (N)
+# HTJ  Horz Tab w/Justification  \E I                -         FE     -
+# HTS  Horizontal Tab Set        \E H                -         FE     hts
+# HVP  Horz & Vertical Position  \E [ Pn ; Pn f      1, 1      FE     -   (G)
+# ICH  Insert Character          \E [ Pn @           1         eF     ich
+# IDCS ID Device Control String  \E [ SPC O          -         *      -
+# IGS  ID Graphic Subrepertoire  \E [ SPC M          -         *      -
+# IL   Insert Line               \E [ Pn L           1         eF     il
+# IND  Index                     \E D                -         FE     -
+# INT  Interrupt                 \E a                -         Fs     -
+# JFY  Justify                   \E [ Ps SPC F       0         FE     -
+# IS1  Info Separator #1 *       ^_                  -         *      -
+# IS2  Info Separator #1 *       ^^                  -         *      -
+# IS3  Info Separator #1 *       ^]                  -         *      -
+# IS4  Info Separator #1 *       ^\                  -         *      -
+# LF   Line Feed                 ^J                  -         -      -
+# LS1R Locking Shift Right 1 *   \E ~                -         -      -
+# LS2  Locking Shift 2 *         \E n                -         -      -
+# LS2R Locking Shift Right 2 *   \E }                -         -      -
+# LS3  Locking Shift 3 *         \E o                -         -      -
+# LS3R Locking Shift Right 3 *   \E |                -         -      -
+# MC   Media Copy                \E [ Ps i           0         -      -   (S)
+# MW   Message Waiting           \E U                -         -      -
+# NAK  Negative Acknowledge *    ^U                  -         *      -
+# NBH  No Break Here *           \E C                -         -      -
+# NEL  Next Line                 \E E                -         FE     nel (D)
+# NP   Next Page                 \E [ Pn U           1         eF     -
+# NUL  Null *                    ^@                  -         -      -
+# OSC  Operating System Command  \E ]                -         Delim  -
+# PEC  Pres. Expand/Contract *   \E Pn SPC Z         0         -      -
+# PFS  Page Format Selection *   \E Pn SPC J         0         -      -
+# PLD  Partial Line Down         \E K                -         FE     -   (T)
+# PLU  Partial Line Up           \E L                -         FE     -   (U)
+# PM   Privacy Message           \E ^                -         Delim  -
+# PP   Preceding Page            \E [ Pn V           1         eF     -
+# PPA  Page Position Absolute *  \E [ Pn SPC P       1         FE     -
+# PPB  Page Position Backward *  \E [ Pn SPC R       1         FE     -
+# PPR  Page Position Forward *   \E [ Pn SPC Q       1         FE     -
+# PTX  Parallel Texts *          \E [ \              -         -      -
+# PU1  Private Use 1             \E Q                -         -      -
+# PU2  Private Use 2             \E R                -         -      -
+# QUAD Typographic Quadding      \E [ Ps SPC H       0         FE     -
+# REP  Repeat Char or Control    \E [ Pn b           1         -      rep
+# RI   Reverse Index             \E M                -         FE     -   (V)
+# RIS  Reset to Initial State    \E c                -         Fs     -
+# RM   Reset Mode *              \E [ Ps l           -         -      -   (W)
+# SACS Set Add. Char. Sep. *     \E [ Pn SPC /       0         -      -
+# SAPV Sel. Alt. Present. Var. * \E [ Ps SPC ]       0         -      -   (X)
+# SCI  Single-Char Introducer    \E Z                -         -      -
+# SCO  Sel. Char. Orientation *  \E [ Pn ; Pn SPC k  -         -      -
+# SCS  Set Char. Spacing *       \E [ Pn SPC g       -         -      -
+# SD   Scroll Down               \E [ Pn T           1         eF     rin
+# SDS  Start Directed String *   \E [ Pn ]           1         -      -
+# SEE  Select Editing Extent     \E [ Ps Q           0         -      -   (Y)
+# SEF  Sheet Eject & Feed *      \E [ Ps ; Ps SPC Y  0,0       -      -
+# SGR  Select Graphic Rendition  \E [ Ps m           0         FE     sgr (O)
+# SHS  Select Char. Spacing *    \E [ Ps SPC K       0         -      -
+# SI   Shift In                  ^O                  -         -      -   (P)
+# SIMD Sel. Imp. Move Direct. *  \E [ Ps ^           -         -      -
+# SL   Scroll Left               \E [ Pn SPC @       1         eF     -
+# SLH  Set Line Home *           \E [ Pn SPC U       -         -      -
+# SLL  Set Line Limit *          \E [ Pn SPC V       -         -      -
+# SLS  Set Line Spacing *        \E [ Pn SPC h       -         -      -
+# SM   Select Mode               \E [ Ps h           none      -      -   (W)
+# SO   Shift Out                 ^N                  -         -      -   (Q)
+# SOH  Start Of Heading *        ^A                  -         -      -
+# SOS  Start of String *         \E X                -         -      -
+# SPA  Start of Protected Area   \E V                -         -      -   (Z)
+# SPD  Select Pres. Direction *  \E [ Ps ; Ps SPC S  0,0       -      -
+# SPH  Set Page Home *           \E [ Ps SPC G       -         -      -
+# SPI  Spacing Increment         \E [ Pn ; Pn SPC G  none      FE     -
+# SPL  Set Page Limit *          \E [ Ps SPC j       -         -      -
+# SPQR Set Pr. Qual. & Rapid. *  \E [ Ps SPC X       0         -      -
+# SR   Scroll Right              \E [ Pn SPC A       1         eF     -
+# SRCS Set Reduced Char. Sep. *  \E [ Pn SPC f       0         -      -
+# SRS  Start Reversed String *   \E [ Ps [           0         -      -
+# SSA  Start of Selected Area    \E F                -         -      -
+# SSU  Select Size Unit *        \E [ Pn SPC I       0         -      -
+# SSW  Set Space Width *         \E [ Pn SPC [       none      -      -
+# SS2  Single Shift 2 (G2 set)   \E N                -         Intro  -
+# SS3  Single Shift 3 (G3 set)   \E O                -         Intro  -
+# ST   String Terminator         \E \                -         Delim  -
+# STAB Selective Tabulation *    \E [ Pn SPC ^       -         -      -
+# STS  Set Transmit State        \E S                -         -      -
+# STX  Start pf Text *           ^B                  -         -      -
+# SU   Scroll Up                 \E [ Pn S           1         eF     indn
+# SUB  Substitute *              ^Z                  -         -      -
+# SVS  Select Line Spacing *     \E [ Pn SPC \       1         -      -
+# SYN  Synchronous Idle *        ^F                  -         -      -
+# TAC  Tabul. Aligned Centered * \E [ Pn SPC b       -         -      -
+# TALE Tabul. Al. Leading Edge * \E [ Pn SPC a       -         -      -
+# TATE Tabul. Al. Trailing Edge* \E [ Pn SPC `       -         -      -
+# TBC  Tab Clear                 \E [ Ps g           0         FE     tbc
+# TCC  Tabul. Centered on Char * \E [ Pn SPC c       -         -      -
+# TSR  Tabulation Stop Remove  * \E [ Pn SPC d       -         FE     -
+# TSS  Thin Space Specification  \E [ Pn SC E        none      FE     -
+# VPA  Vert. Position Absolute   \E [ Pn d           1         FE     vpa
+# VPB  Line Position Backward *  \E [ Pn k           1         FE     -
+# VPR  Vert. Position Relative   \E [ Pn e           1         FE     -   (R)
+# VT   Vertical Tabulation *     ^K                  -         FE     -
+# VTS  Vertical Tabulation Set   \E J                -         FE     -
+#
+# ---------------------------------------------------------------------------
+#
+# Notes:
+#
+# Some control characters are listed in the ECMA-48 standard without
+# being assigned functions relevant to terminal control there (they
+# referred to other standards such as ISO 1745 or ECMA-35).  They are listed
+# here anyway for completeness.
+#
+# (A) ECMA-48 calls this "CancelCharacter" but retains the CCH abbreviation.
+#
+# (B) There seems to be some confusion abroad between CHA and HPA.  Most
+# `ANSI' terminals accept the CHA sequence, not the HPA. but terminfo calls
+# the capability (hpa).  ECMA-48 calls this "Cursor Character Absolute" but
+# preserved the CHA abbreviation.
+#
+# (C) CHT corresponds to terminfo (tab).  Usually it has the value ^I.
+# Occasionally (as on, for example, certain HP terminals) this has the HTJ
+# value.  ECMA-48 calls this "Cursor Forward Tabulation" but preserved the
+# CHT abbreviation.
+#
+# (D) terminfo (nel) is usually \r\n rather than ANSI \EE.
+#
+# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR
+# abbreviation.
+#
+# (F) CTC parameter values: 0 = set char tab, 1 = set line tab, 2 = clear
+# char tab, 3 = clear line tab, 4 = clear all char tabs on current line,
+# 5 = clear all char tabs, 6 = clear all line tabs.
+#
+# (G) CUP and HVP are identical in effect.  Some ANSI.SYS versions accept
+# HVP, but always allow CUP as an alternate.  ECMA-48 calls HVP "Character
+# Position Absolute" but retains the HVP abbreviation.
+#
+# (H) ECMA calls this "Cursor Line Tabulation" but preserves the CVT
+# abbreviation.
+#
+# (I) DSR parameter values: 0 = ready, 1 = busy, 2 = busy, will send DSR
+# later, 3 = malfunction, 4 = malfunction, will send DSR later, 5 = request
+# DSR, 6 = request CPR response.
+#
+# (J) ECMA calls ED "Erase In Page". EA/ED/EL parameters: 0 = clear to end,
+# 1 = clear from beginning, 2 = clear.
+#
+# (K) ECMA calls this "End of Guarded Area" but preserves the EPA abbreviation.
+#
+# (L) The GSM parameters are vertical and horizontal parameters to scale by.
+#
+# (M) Some ANSI.SYS versions accept HPR, but more commonly `ANSI' terminals
+# use CUF for this function and ignore HPR.  ECMA-48 calls this "Character
+# Position Relative" but retains the HPR abbreviation.
+#
+# (N) ECMA-48 calls this "Character Tabulation" but retains the HT
+# abbreviation.
+#
+# (O) SGR parameter values: 0 = default mode (attributes off), 1 = bold,
+# 2 = dim, 3 = italicized, 4 = underlined, 5 = slow blink, 6 = fast blink,
+# 7 = reverse video, 8 = invisible, 9 = crossed-out (marked for deletion),
+# 10 = primary font, 10 + n (n in 1..9) = nth alternative font, 20 = Fraktur,
+# 21 = double underline, 22 = turn off 2, 23 = turn off 3, 24 = turn off 4,
+# 25 = turn off 5, 26 = proportional spacing, 27 = turn off 7, 28 = turn off
+# 8, 29 = turn off 9, 30 = black fg, 31 = red fg, 32 = green fg, 33 = yellow
+# fg, 34 = blue fg, 35 = magenta fg, 36 = cyan fg, 37 = white fg, 38 = set
+# fg color as in CCIT T.416, 39 = set default fg color, 40 = black bg
+# 41 = red bg, 42 = green bg, 43 = yellow bg, 44 = blue bg, 45 = magenta bg,
+# 46 = cyan bg, 47 = white bg, 48 = set bg color as in CCIT T.416, 39 = set
+# default bg color, 50 = turn off 26, 51 = framed, 52 = encircled, 53 =
+# overlined, 54 = turn off 51 & 52, 55 = not overlined, 56-59 = reserved,
+# 61-65 = variable highlights for ideograms.
+#
+# (P) SI is also called LSO, Locking Shift Zero.
+#
+# (Q) SI is also called LS1, Locking Shift One.
+#
+# (R) Some ANSI.SYS versions accept VPR, but more commonly `ANSI' terminals
+# use CUD for this function and ignore VPR.  ECMA calls it `Line Position
+# Absolute' but retains the VPA abbreviation.
+#
+# (S) MC parameters: 0 = start xfer to primary aux device, 1 = start xfer from
+# primary aux device, 2 = start xfer to secondary aux device, 3 = start xfer
+# from secondary aux device, 4 = stop relay to primary aux device, 5 =
+# start relay to primary aux device, 6 = stop relay to secondary aux device,
+# 7 = start relay to secondary aux device.
+#
+# (T) ECMA-48 calls this "Partial Line Forward" but retains the PLD
+# abbreviation.
+#
+# (U) ECMA-48 calls this "Partial Line Backward" but retains the PLU
+# abbreviation.
+#
+# (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation.
+#
+# (W) RM/SM modes are as follows: 1 = Guarded Area Transfer Mode (GATM),
+# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM),
+# 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM),
+# 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional
+# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM),
+# 10 = Character Editing Mode (HEM), 11 = Positioning Unit Mode (PUM),
+# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM),
+# 14 = Format Effector Transfer Mode (FETM), 15 = Multiple Area Transfer
+# Mode (MATM), 16 = Transfer Termination Mode, 17 = Selected Area Transfer
+# Mode, 18 = Tabulation Stop Mode, 19 = Editing Boundary Mode, 20 = Line Feed
+# New Line Mode (LF/NL), Graphic Rendition Combination Mode (GRCM), 22 =
+# Zero Default Mode (ZDM).  The EBM and LF/NL modes have actually been removed
+# from ECMA-48's 5th edition but are listed here for reference.
+#
+# (X) Select Alternate Presentation Variants is used only for non-Latin
+# alphabets.
+#
+# (Y) "Select Editing Extent" (SEE) was ANSI "Select Edit Extent Mode" (SEM).
+#
+# (Z) ECMA-48 calls this "Start of Guarded Area" but retains the SPA
+# abbreviation.
+#
+# ---------------------------------------------------------------------------
+#
+# Abbreviations:
+#
+# Intro  an Introducer of some kind of defined sequence; the normal 7-bit
+#        X3.64 Control Sequence Introducer is the two characters "Escape ["
+#
+# Delim  a Delimiter
+#
+# x/y    identifies a character by position in the ASCII table (column/row)
+#
+# eF     editor function (see explanation)
+#
+# FE     format effector (see explanation)
+#
+# F      is a Final character in
+#             an Escape sequence (F from 3/0 to 7/14 in the ASCII table)
+#             a control sequence (F from 4/0 to 7/14)
+#
+# Gs     is a graphic character appearing in strings (Gs ranges from
+#        2/0 to 7/14) in the ASCII table
+#
+# Ce     is a control represented as a single bit combination in the C1 set
+#        of controls in an 8-bit character set
+#
+# C0     the familiar set of 7-bit ASCII control characters
+#
+# C1     roughly, the set of control chars available only in 8-bit systems.
+#        This is too complicated to explain fully here, so read Jim Fleming's
+#        article in the February 1983 BYTE, especially pages 214 through 224.
+#
+# Fe     is a Final character of a 2-character Escape sequence that has an
+#        equivalent representation in an 8-bit environment as a Ce-type
+#        (Fe ranges from 4/0 to 5/15)
+#
+# Fs     is a Final character of a 2-character Escape sequence that is
+#        standardized internationally with identical representation in 7-bit
+#        and 8-bit environments and is independent of the currently
+#        designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14)
+#
+# I      is an Intermediate character from 2/0 to 2/15 (inclusive) in the
+#        ASCII table
+#
+# P      is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII
+#        table
+#
+# Pn     is a numeric parameter in a control sequence, a string of zero or
+#        more characters ranging from 3/0 to 3/9 in the ASCII table
+#
+# Ps     is a variable number of selective parameters in a control sequence
+#        with each selective parameter separated from the other by the code
+#        3/11 (which usually represents a semicolon); Ps ranges from
+#        3/0 to 3/9 and includes 3/11
+#
+# *      Not relevant to terminal control, listed for completeness only.
+#
+# Format Effectors versus Editor Functions
+#
+# A format effector specifies how following output is to be displayed.
+# An editor function allows you to modify the display.  Informally
+# format effectors may be destructive; format effectors should not be.
+#
+# For instance, a format effector that moves the "active position" (the
+# cursor or equivalent) one space to the left would be useful when you want to
+# create an overstrike, a compound character made of two standard characters
+# overlaid. Control-H, the Backspace character, is actually supposed to be a
+# format effector, so you can do this. But many systems use it in a
+# nonstandard fashion, as an editor function, deleting the character to the
+# left of the cursor and moving the cursor left. When Control-H is assumed to
+# be an editor function, you cannot predict whether its use will create an
+# overstrike unless you also know whether the output device is in an "insert
+# mode" or an "overwrite mode". When Control-H is used as a format effector,
+# its effect can always be predicted. The familiar characters carriage
+# return, linefeed, formfeed, etc., are defined as format effectors.
+#
+# NOTES ON THE DEC VT100 IMPLEMENTATION
+#
+# Control sequences implemented in the VT100 are as follows:
+#
+#      CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND,
+#      LNM, NEL, RI, RIS, RM, SGR, SM, TBC
+#
+# plus several private DEC commands.
+#
+# Erasing parts of the display (EL and ED) in the VT100 is performed thus:
+#
+#      Erase from cursor to end of line           Esc [ 0 K    or Esc [ K
+#      Erase from beginning of line to cursor     Esc [ 1 K
+#      Erase line containing cursor               Esc [ 2 K
+#      Erase from cursor to end of screen         Esc [ 0 J    or Esc [ J
+#      Erase from beginning of screen to cursor   Esc [ 1 J
+#      Erase entire screen                        Esc [ 2 J
+#
+# Some brain-damaged terminal/emulators respond to Esc [ J as if it were
+# Esc [ 2 J, but this is wrong; the default is 0.
+#
+# The VT100 responds to receiving the DA (Device Attributes) control
+#
+#      Esc [ c    (or Esc [ 0 c)
+#
+# by transmitting the sequence
+#
+#      Esc [ ? l ; Ps c
+#
+# where Ps is a character that describes installed options.
+#
+# The VT100's cursor location can be read with the DSR (Device Status
+# Report) control
+#
+#      Esc [ 6 n
+#
+# The VT100 reports by transmitting the CPR sequence
+#
+#      Esc [ Pl ; Pc R
+#
+# where Pl is the line number and Pc is the column number (in decimal).
+#
+# The specification for the DEC VT100 is document EK-VT100-UG-003.
+
+#### ANSI.SYS
+#
+# Here is a description of the color and attribute controls supported in the
+# the ANSI.SYS driver under MS-DOS.  Most console drivers and ANSI
+# terminal emulators for Intel boxes obey these.  They are a proper subset
+# of the ECMA-48 escapes.
+#
+# 0    all attributes off
+# 1    foreground bright
+# 4    underscore on
+# 5    blink on/background bright (not reliable with brown)
+# 7    reverse-video
+# 8    set blank (non-display)
+# 10   set primary font
+# 11   set first alternate font (on PCs, display ROM characters 1-31)
+# 12   set second alternate font (on PCs, display IBM high-half chars)
+#
+#                      Color attribute sets
+# 3n   set foreground color       / 0=black, 1=red,     2=green, 3=brown,
+# 4n   set background color       \ 4=blue,  5=magenta, 6=cyan,  7=white
+# Bright black becomes gray.  Bright brown becomes yellow,
+# These coincide with the prescriptions of the ISO 6429/ECMA-48 standard.
+#
+# * If the 5 attribute is on and you set a background color (40-47) it is
+#   supposed to enable bright background.
+#
+# * Many VGA cards (such as the Paradise and compatibles) do the wrong thing
+#   when you try to set a "bright brown" (yellow) background with attribute
+#   5 (you get a blinking yellow foreground instead).  A few displays
+#   (including the System V console) support an attribute 6 that undoes this
+#   braindamage (this is required by iBCS2).
+#
+# * Some older versions of ANSI.SYS have a bug that causes thems to require
+#   ESC [ Pn k as EL rather than the ANSI ESC [ Pn K.  (This is not ECMA-48
+#   compatible.)
+
+#### Intel Binary Compatibility Standard
+#
+# For comparison, here are the capabilities implied by the Intel Binary
+# Compatibility Standard for UNIX systems (Intel order number 468366-001).
+# These recommendations are optional.  IBCS2 allows the leading escape to
+# be either the 7-bit \E[ or 8-bit \0233 introducer, in accordance with
+# the ANSI X.364/ISO 6429/ECMA-48 standard.  Here are the iBCS2 capabilities
+# (as described in figure 9-3 of the standard).  Those expressed in the ibcs2
+# terminfo entry are followed with the corresponding capability in parens:
+#
+#      CSI <n>k                disable (n=0) or enable (n=1) keyclick
+#      CSI 2h                  lock keyboard
+#      CSI 2i                  send screen as input
+#      CSI 2l                  unlock keyboard
+#      CSI 6m                  enable background color intensity
+#      CSI <0-2>c              reserved
+#      CSI <0-59>m             select graphic rendition
+#      CSI <n>;<m>H    (cup)   cursor to line n and column m
+#      CSI <n>;<m>f            cursor to line n and column m
+#      CSI <n>@        (ich)   insert characters
+#      CSI <n>A        (cuu)   cursor up n lines
+#      CSI <n>B        (cud)   cursor down n lines
+#      CSI <n>C        (cuu)   cursor right n characters
+#      CSI <n>D        (cud)   cursor left n characters
+#      CSI <n>E                cursor down n lines and in first column
+#      CSI <n>F                cursor up n lines and in first column
+#      CSI <n>G        (hpa)   position cursor at column n-1
+#      CSI <n>J        (ed)    erase in display
+#      CSI <n>K        (el)    erase in line
+#      CSI <n>L        (il)    insert line(s)
+#      CSI <n>P        (dch)   delete characters
+#      CSI <n>S        (indn)  scroll up n lines
+#      CSI <n>T        (rin)   scroll down n lines
+#      CSI <n>X        (ech)   erase characters
+#      CSI <n>Z        (cbt)   back up n tab stops
+#      CSI <n>`                cursor to column n on line
+#      CSI <n>a        (cuu)   cursor right n characters
+#      CSI <n>d        (vpa)   cursor to line n
+#      CSI <n>e                cursor down n lines and in first column
+#      CSI <n>g        (cbt)   clear all tabs
+#      CSI <n>z                make virtual terminal n active
+#      CSI ?7h         (smam)  turn automargin on
+#      CSI ?7l         (rmam)  turn automargin off
+#      CSI s                   save cursor position
+#      CSI u                   restore cursor position to saved value
+#      CSI =<c>A               set overscan color
+#      CSI =<c>F               set normal foreground color
+#      CSI =<c>G               set normal background color
+#      CSI =<c>H               set reverse foreground color
+#      CSI =<c>I               set reverse foreground color
+#      CSI =<c>J               set graphic foreground color
+#      CSI =<c>K               set graphic foreground color
+#      CSI =<n>g       (dispc) display n from alternate graphics character set
+#      CSI =<p>;<d>B           set bell parameters
+#      CSI =<s>;<e>C           set cursor parameters
+#      CSI =<x>D               enable/disable intensity of background color
+#      CSI =<x>E               set/clear blink vs. bold background
+#      CSI 7           (sc)    (sc) save cursor position
+#      CSI 8           (rc)    (rc) restore cursor position to saved value
+#      CSI H           (hts)   (hts) set tab stop
+#      CSI Q<n><string>        define function key string
+#                              (string must begin and end with delimiter char)
+#      CSI c           (clear) clear screen
+#
+# The lack of any specification for attributes in SGR (among other things)
+# makes this a wretchedly weak standard. The table above is literally
+# everything iBSC2 has to say about terminal escape sequences; there is
+# no further discussion of their meaning or how to set the parameters
+# in these sequences at all.
+#
+
+######## NONSTANDARD CAPABILITY TRANSLATIONS USED IN THIS FILE
+#
+# The historical termcap file entries were written primarily in 4.4BSD termcap.
+# The 4.4BSD termcap set was substantially larger than the original 4.1BSD set,
+# with the extension names chosen for compatibility with the termcap names
+# assigned in System V terminfo.  There are some variant extension sets out
+# there.  We try to describe them here.
+#
+# XENIX extensions:
+#
+# The XENIX extensions include a set of function-key capabilities as follows:
+#
+#       code   XENIX variable name     terminfo name   name clashes?
+#      ----    -------------------     -------------   -----------------------
+#      CL      key_char_left
+#      CR      key_char_right
+#      CW      key_change_window                       create_window
+#      EN      key_end                 kend
+#      HM      key_home                khome
+#      HP      ??
+#      LD      key_delete_line         kdl1
+#      LF      key_linefeed                            label_off
+#      NU      key_next_unlocked_cell
+#      PD      key_page_down           knp
+#      PL      ??
+#      PN      start_print             mc5
+#      PR      ??
+#      PS      stop_print              mc4
+#      PU      key_page_up             kpp             pulse
+#      RC      key_recalc                              remove_clock
+#      RF      key_toggle_ref                          req_for_input
+#      RT      key_return              kent
+#      UP      key_up_arrow            kcuu1           parm_up_cursor
+#      WL      key_word_left
+#      WR      key_word_right
+#
+# The XENIX extensions also include the following character-set and highlight
+# capabilities:
+#
+#      XENIX   terminfo        function
+#      -----   --------        ------------------------------
+#      GS      smacs           start alternate character set
+#      GE      rmacs           end alternate character set
+#      GG                      :as:/:ae: glitch (analogous to :sg:/:ug:)
+#      bo      blink           begin blink (not used in /etc/termcap)
+#      be                      end blink (not used in /etc/termcap)
+#      bb                      blink glitch  (not used in /etc/termcap)
+#      it      dim             begin dim (not used in /etc/termcap)
+#      ie                      end dim (not used in /etc/termcap)
+#      ig                      dim glitch  (not used in /etc/termcap)
+#
+# Finally, XENIX also used the following forms-drawing capabilities:
+#
+#      single  double  type             ASCII approximation
+#      ------  ------  -------------    -------------------
+#      GV      Gv      vertical line             |
+#      GH      Gv      horizontal line       -   _
+#      G1      G5      top right corner       _   |
+#      G2      G6      top left corner       |
+#      G3      G7      bottom left corner         |_
+#      G4      G8      bottom right corner   _|
+#      GD      Gd      down-tick character        T
+#      GL      Gl      left-tick character   -|
+#      GR      Gr      right-tick character       |-
+#      GC      Gc      middle intersection   -|-
+#      GU      Gu      up-tick character          _|_
+#
+# These were invented to take advantage of the IBM PC ROM character set.  One
+# can compose an acsc string from the single-width characters as follows
+#      "j{G4}k{G1}l{G2}m{G3}q{GH}x{GV}t{GR}u{GL}v{GU}w{GD}n{GC}"
+# When translating a termcap file, ncurses tic will do this automatically.
+# The double forms characters don't fit the SVr4 terminfo model.
+#
+# AT&T Extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities.  Its signature is the KM capability, used to name
+# some sort of keymap file.  EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set.  Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish that BO=:mr: (start reverse video), DS=:mh:
+# (start dim), XS=:mk: (secure/invisible mode), EE=:me: (end highlights),
+# FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make
+# cursor invisible), and CV=:ve: (make cursor normal).
+#
+# HP Extensions
+#
+# The HP library (as of mid-1995, their term.h file version 70.1) appears to
+# have the System V capabilities up to SVr1 level.  After that, it supports
+# two nonstandard caps meml and memu corresponding to the old termcap :ml:,
+# :mu: capabilities.  After that, it supports caps plab_norm, label_on,
+# label_off, and key_f11..key_f63 capabilities like SVr4's.  This makes the
+# HP binary format incompatible with SVr4's.
+#
+# IBM Extensions
+#
+# There is a set of nonstandard terminfos used by IBM's AIX operating system.
+# The AIX terminfo library diverged from SVr1 terminfo, and replaces all
+# capabilities following prtr_non with the following special capabilties:
+# box[12], batt[12], colb[0123456789], colf[0123456789], f[01234567], kbtab,
+# kdo, kcmd, kcpn, kend, khlp, knl, knpn, kppn, kppn, kquit, ksel, kscl, kscr,
+# ktab, kmpf[123456789], apstr, ksf1..ksf10, kf11...kf63, kact, topl, btml,
+# rvert, lvert.   Some of these are identical to XPG4/SVr4 equivalents:
+# kcmd, kend, khlp, and kf11...kf63.  Two others (kbtab and ksel) can be
+# renamed (to kcbt and kslt).  The places in the box[12] capabilities
+# correspond to acsc chars, here is the mapping:
+#
+#      box1[0]  = ACS_ULCORNER
+#      box1[1]  = ACS_HLINE
+#      box1[2]  = ACS_URCORNER
+#      box1[3]  = ACS_VLINE
+#      box1[4]  = ACS_LRCORNER
+#      box1[5]  = ACS_LLCORNER
+#      box1[6]  = ACS_TTEE
+#      box1[7]  = ACS_RTEE
+#      box1[8]  = ACS_BTEE
+#      box1[9]  = ACS_LTEE
+#      box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+# The AIX binary terminfo format is incompatible with SVr4's.
+#
+# Iris console extensions:
+#
+# HS is half-intensity start; HE is half-intensity end
+# CT is color terminal type (for Curses & rogue)
+# CP is color change escape sequence
+# CZ are color names (for Curses & rogue)
+#
+# The ncurses tic utility recognizes HS as an alias for mh <dim>.
+#
+# TC Extensions:
+#
+# There is a set of extended termcaps associated with something
+# called the "Terminal Control" or TC package created by MainStream Systems,
+# Winfield Kansas.  This one also uses GS/GE for as/ae, and also uses
+# CF for civis and CO for cvvis.  Finally, they define a boolean :ct:
+# that flags color terminals.
+#
+######## CHANGE HISTORY
+#
+# The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94.
+# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses
+# project.
+#
+# This file contains all the capability information present in John Kunze's
+# last version of the termcap master file, except as noted in the change
+# comments at end of file.  Some information about very ancient obsolete
+# capabilities has been moved to comments.  Some all-numeric names of older
+# terminals have been retired.
+#
+# I changed :MT: to :km: (the 4.4BSD name) everywhere.  I commented out some
+# capabilities (EP, dF, dT, dV, kn, ma, ml, mu, xr, xx) that are no longer
+# used by BSD curses.
+#
+# The 9.1.0 version of this file was translated from my lightly-edited copy of
+# 8.3, then mechanically checked against 8.3 using Emacs Lisp code written for
+# the purpose.  Unless the ncurses tic implementation and the Lisp code were
+# making perfectly synchronized mistakes which I then failed to catch by
+# eyeball, the translation was correct and perfectly information-preserving.
+#
+# Major version number bumps correspond to major version changes in ncurses.
+#
+# Here is a log of the changes since then:
+#
+# 9.1.0 (Wed Feb  1 04:50:32 EST 1995):
+#      * First terminfo master translated from 8.3.
+# 9.2.0 (Wed Feb  1 12:21:45 EST 1995):
+#      * Replaced Wyse entries with updated entries supplied by vendor.
+#
+# 9.3.0 (Mon Feb  6 19:14:40 EST 1995):
+#      * Added contact & status info from G. Clark Brown <clark@sssi.com>.
+# 9.3.1 (Tue Feb  7 12:00:24 EST 1995):
+#      * Better XENIX keycap translation.  Describe TC termcaps.
+#      * Contact and history info supplied by Qume.
+# 9.3.2 (Sat Feb 11 23:40:02 EST 1995):
+#      * Raided the Shuford FTP site for recent termcaps/terminfos.
+#      * Added information on X3.64 and VT100 standard escape sequences.
+# 9.3.3 (Mon Feb 13 12:26:15 EST 1995):
+#      * Added a correct X11R6 xterm entry.
+#      * Fixed terminfo translations of padding.
+# 9.3.4 (Wed Feb 22 19:27:34 EST 1995):
+#      * Added correct acsc/smacs/rmacs strings for vt100 and xterm.
+#      * Added u6/u7/u8/u9 capabilities.
+#      * Added PCVT entry.
+# 9.3.5 (Thu Feb 23 09:37:12 EST 1995):
+#      * Emacs uses :so:, not :mr:, for its mode line.  Fix linux entry
+#        to use reverse-video standout so Emacs will look right.
+#      * Added el1 capability to ansi.
+#      * Added smacs/rmacs to ansi.sys.
+#
+# 9.4.0 (Sat Feb 25 16:43:25 EST 1995):
+#      * New mt70 entry.
+#      * Added COPYRIGHTS AND OTHER DELUSIONS.
+#      * Added AT&T 23xx & 500/513, vt220 and vt420, opus3n1+, netronics
+#        smartvid & smarterm, ampex 175 & 219 & 232,
+#        env230, falco ts100, fluke, intertube, superbrain, ncr7901, vic20,
+#        ozzie, trs200, tr600, Tandy & Texas Instruments VDTs, intext2,
+#        screwpoint, fviewpoint, Contel Business Systems, Datamedia Colorscan,
+#        adm36, mime314, ergo4000, ca22851.  Replaced att7300, esprit, dd5500.
+#      * Replaced the Perkin-Elmer entries with vendor's official ones.
+#      * Restored the old minimal-ansi entry, luna needs it.
+#      * Fixed some incorrect ip and proportional-padding translations.
+# 9.4.1 (Mon Feb 27 14:18:33 EST 1995):
+#      * Fix linux & AT386 sgr strings to do A_ALTCHARSET turnoff correctly.
+#      * Make the xterm entry 65 lines again; create xterm25 and xterm24
+#        to force a particular height.
+#      * Added beehive4 and reorganized other Harris entries.
+# 9.4.2 (Thu Mar  9 01:45:44 EST 1995):
+#      * Merged in DEC's official entries for its terminals.  The only old
+#        entry I kept was Doug Gwyn's alternate vt100 (as vt100-avo).
+#      * Replaced the translated BBN Bitgraph entries with purpose-built
+#        ones from AT&T's SVr3.
+#      * Replaced the AT&T entries with AT&T's official terminfos.
+#      * Added teleray 16, vc415, cops10.
+#      * Merged in many individual capabilities from SCO terminfo files.
+# 9.4.3 (Mon Mar 13 02:37:53 EST 1995):
+#      * Typo fixes.
+#      * Change linux entry so A_PROTECT enables IBM-PC ROM characters.
+# 9.4.4 (Mon Mar 27 12:32:35 EST 1995):
+#      * Added tty35, Ann Arbor Guru series. vi300 and 550, cg7900, tvi803,
+#        pt210, ibm3164, IBM System 1, ctrm, Tymshare scanset, dt200, adm21,
+#        simterm, citoh and variants.
+#      * Replaced sol entry with sol1 and sol2.
+#      * Replaced Qume QVT and Freedom-series entries with purpose-built
+#        terminfo entries.
+#      * Enhanced vt220, tvi910, tvi924, hpterm, hp2645, adm42, tek
+#        and dg200 entries using caps from from SCO.
+#      * Added the usual set of function-key mappings to ANSI entry.
+#      * Corrected xterm's function-key capabilities.
+# 9.4.5 (Tue Mar 28 14:27:49 EST 1995):
+#      * Fix in xterm entry, cub and cud are not reliable under X11R6.
+# 9.4.6 (Thu Mar 30 14:52:15 EST 1995):
+#      * Fix in xterm entry, get the arrow keys right.
+#      * Change some \0 escapes to \200.
+# 9.4.7 (Tue Apr  4 11:27:11 EDT 1995)
+#      * Added apple (Videx card), adm1a, oadm31.
+#      * Fixed malformed ampex csr.
+#      * Fixed act4, cyb110; they had old-style prefix padding left in.
+#      * Changed mandatory to advisory padding in many entries.
+#      * Replaced HP entries up to hpsub with purpose-built ones.
+#      * Blank rmir/smir/rmdc/smdc capabilities removed.
+#      * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924.
+# 9.4.8 (Fri Apr  7 09:36:34 EDT 199):
+#      * Replaced the Ann Arbor entries with SCO's, the init strings are
+#        more efficient (but the entries otherwise identical).
+#      * Added dg211 from Shuford archive.
+#      * Added synertek, apple-soroc, ibmpc, pc-venix, pc-coherent, xtalk,
+#        adm42-nl, pc52, gs6300, xerox820, uts30.
+#      * Pull SCO's padding into vi200 entry.
+#      * Improved capabilities for tvi4107 and other Televideo and Viewpoint
+#        entries merged in from SCO's descriptions.
+#      * Fixed old-style prefix padding on zen50, h1500.
+#      * Moved old superbee entry to superbee-xsb, pulled in new superbee
+#        entry from SCO's description.
+#      * Reorganized the special entries.
+#      * Added lm#0 to cbunix and virtual entries.
+#
+# 9.5.0 (Mon Apr 10 11:30:00 EDT 1995):
+#      * Restored cdc456tst.
+#      * Fixed sb1 entry, SCO erroneously left out the xsb glitch.
+#      * Added megatek, beacon, microkit.
+#      * Freeze for ncurses-1.9 release.
+# 9.5.1 (Fri Apr 21 12:46:42 EDT 1995):
+#      * Added historical data for TAB.
+#      * Comment fixes from David MacKenzie.
+#      * Added the new BSDI pc3 entry.
+# 9.5.2 (Tue Apr 25 17:27:52 EDT 1995)
+#      * A change in the tic -C logic now ensures that all entries in
+#        the termcap translation will fit in < 1024 bytes.
+#      * Added `bobcat' and `gator' HP consoles and the Nu machine entries
+#        from GNU termcap file.  This merges in all their local information.
+# 9.5.3 (Tue Apr 25 22:28:13 EDT 1995)
+#      * Changed tic -C logic to dump all capabilities used by GNU termcap.
+#      * Added warnings about entries with long translations (restoring
+#        all the GNU termcaps pushes a few over the edge).
+# 9.5.4 (Wed Apr 26 15:35:09 EDT 1995)
+#      * Yet another tic change, and a couple of entry tweaks, to reduce the
+#        number of long (> 1024) termcap translations back to 0.
+#
+# 9.6.0 (Mon May  1 10:35:54 EDT 1995)
+#      * Added kf13-kf20 to Linux entry.
+#      * Regularize Prime terminal names.
+#      * Historical data on Synertek.
+#      * Freeze for ncurses-1.9.1.
+# 9.6.1 (Sat May  6 02:00:52 EDT 1995):
+#      * Added true xterm-color entry, renamed djm's pseudo-color entry.
+#      * Eliminate whitespace in short name fields, this tanks some scripts.
+#      * Name field changes to shorten some long entries.
+#      * Termcap translation now automatically generates empty rmir/smir
+#        when ich1/ich is present (copes with an ancient vi bug).
+#      * Added `screen' entries from FSF's screen-3.6.2.
+#      * Added linux-nic and xterm-nic entries.
+# 9.6.2 (Sat May  6 17:00:55 EDT 1995):
+#      * Change linux entry to use smacs=\E[11m and have an explicit acsc,
+#        eliminating some special-case code in ncurses.
+#
+# 9.7.0 (Tue May  9 18:03:12 EDT 1995):
+#      * Added vt320-k3, rsvidtx from the Emacs termcap.dat file.  I think
+#        that captures everything unique from it.
+#      * Added reorder script generator.
+#      * Freeze for ncurses 1.9.2 release.
+# 9.7.1 (Thu Jun 29 09:35:22 EDT 1995):
+#      * Added Sean Farley's kspd, flash, rs1 capabilities for linux.
+#      * Added Olaf Siebert's corrections for adm12.
+#      * ansi-pc-color now includes the colors and pairs caps, so that
+#        entries which use it will inherit them automatically.
+#      * The linux entry can now recognize the center (keypad 5) key.
+#      * Removed some junk that found its way into Linux acsc.
+#
+# 9.8.0 (Fri Jul  7 04:46:57 EDT 1995):
+#      * Add 50% cut mark as a desperate hack to reduce tic's core usage.
+#      * xterm doesn't try to use application keypad mode any more.
+#      * Freeze for ncurses-1.9.3 release.
+# 9.8.1 (Thu Jul 19 17:02:12 EDT 1995):
+#      * Added corrected sun entry from vendor.
+#      * Added csr capability to linux entry.
+#      * Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG.
+#      * Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators.
+#      * Some commented-out caps in long entries come back in, my code
+#        for computing string-table lengths had a bug in it.
+#      * pcansi series modified to fit comm-program reality better.
+# 9.8.2 (Sat Sep  9 23:35:00 EDT 1995):
+#      * BSD/OS actually ships the ibmpc3 bold entry as its console.
+#      * Correct some bad aliases in the pcansi series
+#      * Added entry for QNX console.
+#      * Clean up duplicate long names for use with 4.4 library.
+#      * Change vt100 standout to be normal reverse vide, not bright reverse;
+#        this makes the Emacs status line look better.
+# 9.8.3 (Sun Sep 10 13:07:34 EDT 1995):
+#      * Added Adam Thompson's VT320 entries, also his dtx-sas and z340.
+#      * Minor surgery, mostly on name strings, to shorten termcap version.
+#
+# 9.9.0 (Sat Sep 16 23:03:48 EDT 1995):
+#      * Added dec-vt100 for use with the EWAN emulator.
+#      * Added kmous to xterm for use with xterm's mouse-tracking facility.
+#      * Freeze for 1.9.5 alpha release.
+# 9.9.1 (Wed Sep 20 13:46:09 EDT 1995):
+#      * Changed xterm lines to 24, the X11R6 default.
+# 9.9.2 (Sat Sep 23 21:29:21 EDT 1995):
+#      * Added 7 newly discovered, undocumented acsc characters to linux
+#        entry (the pryz{|} characters).
+#      * ncurses no longer steals A_PROTECT.  Simplify linux sgr accordingly.
+#      * Correct two typos in the xterm entries introduced in 9.9.1.
+#      * I finally figured out how to translate ko capabilities.  Done.
+#      * Added tvi921 entries from Tim Theisen.
+#      * Cleanup: dgd211 -> dg211, adm42-nl -> adm42-nsl.
+#      * Removed mystery tec entry, it was neither interesting nor useful.
+#      * shortened altos3, qvt203, tvi910+, tvi92D, tvi921-g, tvi955, vi200-f,
+#        vi300-ss, att505-24, contel301, dm3045, f200vi, pe7000c, vc303a,
+#        trs200, wind26, wind40, wind50, cdc456tst, dku7003, f110, dg211,
+#        by making them relative to use capabilities
+#      * Added cuf1=^L to tvi925 from deleted variant tvi925a.
+#      * fixed cup in adm22 entry and parametrized strings in vt320-k3.
+#      * added it#8 to entries that used to have :pt: -- tvi912, vi200,
+#        ampex80,
+#      * Translate all home=\E[;H capabilities to home=\E[H, they're
+#        equivalent.
+#      * Translate \E[0m -> \E[m in [rs]mso, [rs]mul, and init strings of
+#        vt100 and ANSI-like terminals.
+# 9.9.3 (Tue Sep 26 20:11:15 EDT 1995):
+#      * Added it#8 and ht=\t to *all* entries with :pt:; the ncurses tic
+#        does this now, too.
+#      * fviewpoint is gone, it duplicated screwpoint.
+#      * Added hp2627, graphos, graphos-30, hpex, ibmega, ibm8514, ibm8514-c,
+#        ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3,
+#        versaterm, vi500, vsc, vt131, vt340, vt400 entries from UW.
+#        The UW vi50 replaces the old one, which becomes vi50adm,
+#      * No more embedded commas in name fields.
+#
+# 9.10.0 (Wed Oct  4 15:39:37 EDT 1995):
+#      * XENIX forms characters in fos, trs16, scoansi become acsc strings,
+#      * Introduced klone+* entries for describing Intel-console behavior.
+#      * Linux kbs is default-mapped to delete for some brain-dead reason.
+#      * -nsl -> -ns.  The -pp syntax is obsolete.
+#      * Eliminate [A-Z]* primaries in accordance with SVr4 terminfo docs.
+#      * Make xterm entry do application-keypad mode again.  I got complaints
+#        that it was messing up someone's 3270 emulator.
+#      * Added some longname fields in order to avoid warning messages from
+#        older tic implementations.
+#      * According to ctlseqs.ms, xterm has a full vt100 graphics set.  Use
+#        it! (This gives us pi, greater than, less than, and a few more.)
+#      * Freeze for ncurses-1.9.6 release.
+# 9.10.1 (Sat Oct 21 22:18:09 EDT 1995):
+#      * Add xon to a number of console entries, they're memory-mapped and
+#        don't need padding.
+#      * Correct the use dependencies in the ansi series.
+#      * Hand-translate more XENIX capabilities.
+#      * Added hpterm entry for HP's X terminal emulator.
+#      * Added aixterm entries.
+#      * Shortened four names so everything fits in 14 chars.
+#
+# 9.11.0 (Thu Nov  2 17:29:35 EST 1995):
+#      * Added ibcs2 entry and info on iBCS2 standard.
+#      * Corrected hpa/vpa in linux entry.  They still fail the worm test.
+#      * We can handle the HP meml/memu capability now.
+#      * Added smacs to klone entries, just as documentation.
+#      * Carrected ansi.sys and cit-500 entries.
+#      * Added z39, vt320-k311, v220c, and avatar entries.
+#      * Make pcansi use the ansi.sys invis capability.
+#      * Added DIP switch descriptions for vt100, adm31, tvi910, tvi920c,
+#        tvi925, tvi950, dt80, ncr7900i, h19.
+#      * X3.64 has been withdrawn, change some references.
+#      * Removed function keys from ansi-m entry.
+#      * Corrected ansi.sys entry.
+#      * Freeze for ncurses-1.9.7 release.
+# 9.11.1 (Tue Nov  6 18:18:38 EST 1995):
+#      * Added rmam/smam capabilities to many entries based on init strings.
+#      * Added correct hpa/vpa to linux.
+#      * Reduced several entries relative to vt52.
+# 9.11.2 (Tue Nov  7 00:21:06 EST 1995):
+#      * Exiled some utterly unidentifiable custom and homebrew types to the
+#        UFO file; also, obsolete small-screen hardware; also, entries which
+#        look flat-out incorrect, garbled, or redundant.  These include the
+#        following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec,
+#        tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile,
+#        apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu,
+#        fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55,
+#        yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2,
+#        vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200,
+#        trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40,
+#        att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w,
+#        tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na,
+#        c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na,
+#        regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb,
+#        vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam,
+#        vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms.
+#      * Corrected pcvt25h as suggested by Brian C. Grayson
+#        <bgrayson@pine.ece.utexas.edu>.
+# 9.11.3 (Thu Nov  9 12:14:40 EST 1995):
+#      * Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H.
+#      * Added kent=\EOM to xterm entry.
+#
+# 9.11.4 (Fri Nov 10 08:31:35 EST 1995):
+#      * Corrected gigi entry.
+#      * Restored cuf/cud1 to xterm, their apparent bugginess was due to
+#        bad hpa/vpa capabilities.
+#      * Corrected flash strings to have a uniform delay of .2 sec.  No
+#        more speed-dependent NUL-padding!
+#      * terminfo capabilities in comments bracketed with <>.
+# 9.11.5 (Fri Nov 10 15:35:02 EST 1995):
+#      * Replaced pcvt with the 3.31 pcvt entries.
+#      * Freeze for 1.9.7a.
+# 9.11.6 (Mon Nov 13 10:20:24 EST 1995):
+#      * Added emu entry from the X11R6 contrib tape sources.
+#
+# 9.12.0 (Wed Nov 29 04:22:25 EST 1995):
+#      * Improved iris-ansi and sun entries.
+#      * More flash string improvements.
+#      * Corrected wy160 & wy160 as suggested by Robert Dunn
+#      * Added dim to at386.
+#      * Reconciled pc3 and ibmpc3 with the BSDI termcap file.  Keith says
+#        he's ready to start using the termcap generated from this one.
+#      * Added vt102-w, vt220-w, xterm-bold, wyse-vp, wy75ap, att4424m,
+#        ln03, lno3-w, h19-g, z29a*, qdss.  Made vt200 an alias of vt220.
+#      * Improved hpterm, apollo consoles, fos, qvt101, tvi924. tvi925,
+#        att610, att620, att630,
+#      * Changed hazeltine name prefix from h to hz.
+#      * Sent t500 to the UFI file.
+#      * I think we've sucked all the juice out of BSDI's termcap file now.
+#      * Freeze for ncurses 1.9.8 release
+# 9.12.1 (Thu Nov 30 03:14:06 EST 1995)
+#      * Unfreeze, linux kbs needed to be fixed.
+#      * Tim Theisen pinned down a bug in the DMD firmware.
+# 9.12.2 (Thu Nov 30 19:08:55 EST 1995):
+#      * Fixes to ansi and klone capabilities (thank you, Aaron Ucko).
+#        (The broken ones had been shadowed by sgr.)
+# 9.12.3 (Thu Dec  7 17:47:22 EST 1995):
+#      * Added documentation on ECMA-48 standard.
+#      * New Amiga entry.
+# 9.12.4 (Thu Dec 14 04:16:39 EST 1995):
+#      * More ECMA-48 stuff
+#      * Corrected typo in minix entry, added pc-minix.
+#      * Corrected khome/kend in xterm (thank you again, Aaron Ucko).
+#      * Added rxvt entry.
+#      * Added 1.3.x color-change capabilities to linux entry.
+# 9.12.5 (Tue Dec 19 00:22:10 EST 1995):
+#      * Corrected rxvt entry khome/kend.
+#      * Corrected linux color change capabilities.
+#      * NeXT entries from Dave Wetzel.
+#      * Cleaned up if and rf file names (all in /usr/share now).
+#      * Changed linux op capability to avoid screwing up a background color
+#        pair set by setterm.
+# 9.12.6 (Wed Feb  7 16:14:35 EST 1996):
+#      * Added xterm-sun.
+# 9.12.7 (Fri Feb  9 13:27:35 EST 1996):
+#      * Added visa50.
+#
+# 9.13.0 (Sun Mar 10 00:13:08 EST 1996):
+#      * Another sweep through the Shuford archive looking for new info.
+#      * Added dg100 alias to dg6053 based on a comp.terminals posting.
+#      * Added st52 from Per Persson.
+#      * Added eterm from the GNU Emacs 19.30 distribution.
+#      * Freeze for 1.9.9.
+# 9.13.1 (Fri Mar 29 14:06:46 EST 1996):
+#      * FreeBSD console entries from Andrew Chernov.
+#      * Removed duplicate Atari st52 name.
+# 9.13.2 (Tue May  7 16:10:06 EDT 1996)
+#      * xterm doesn't actually have ACS_BLOCK.
+#      * Change klone+color setf/setb to simpler forms that can be
+#        translated into termcap.
+#      * Added xterm1.
+#      * Removed mechanically-generated junk capabilities from cons* entries.
+#      * Added color support to bsdos.
+# 9.13.3 (Thu May  9 10:35:51 EDT 1996):
+#      * Added Wyse 520 entries from Wm. Randolph Franklin <wrf@ecse.rpi.edu>.
+#      * Created ecma+color, linux can use it.  Also added ech to linux.
+#      * Teach xterm about more keys. Add Thomas Dickey's 3.1.2E updates.
+#      * Add descriptions to FreeBSD console entries.  Also shorten
+#        some aliases to <= 14 chars for portability.
+#      * Added x68k console
+#      * Added OTbs to several VT-series entries.
+# 9.13.4 (Wed May 22 10:54:09 EDT 1996):
+#      * screen entry update for 3.7.1 from Michael Alan Dorman.
+# 9.13.5 (Wed Jun  5 11:22:41 EDT 1996):
+#      * kterm correction due to Kenji Rikitake.
+#      * ACS correction in vt320-kll due to Phillippe De Muyter.
+# 9.13.6 (Sun Jun 16 15:01:07 EDT 1996):
+#      * Sun console entry correction from J.T. Conklin.
+#      * Changed all DEC VT300 and up terminals to use VT300 tab set
+# 9.13.7 (Mon Jul  8 20:14:32 EDT 1996):
+#      * Added smul to linux entry (we never noticed it was missing
+#        because of sgr!).
+#      * Added rmln to hp+labels (deduced from other HP entries).
+#      * Added vt100 acsc capability to vt220, vt340, vt400, d800, dt80-sas,
+#        pro350, att7300, 5420_2, att4418, att4424, att4426, att505, vt320-k3.
+#      * Corrected vt220 acsc.
+#      * The klone+sgr and klone+sgr-dumb entries now use klone+acs;
+#        this corresponds to reality and helps prevent some tic warnings.
+#      * Added sgr0 to c101, pcix, vt100-nav, screen2, oldsun, next, altos2,
+#        hpgeneric, hpansi, hpsub, hp236, hp700-wy, bobcat, dku7003, adm11,
+#        adm12, adm20, adm21, adm22, adm31, adm36, adm42, pt100, pt200,
+#        qvt101, tvi910, tvi921, tvi92B, tvi925, tvi950, tvi970, wy30-mc,
+#        wy50-mc, wy100, wyse-vp, ampex232, regent100, viewpoint, vp90,
+#        adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p,
+#        f1720a, go140, sb1, superbeeic, microb, ibm8512, kt7, ergo4000,
+#        owl, uts30, dmterm, dt100, dt100, dt110, appleII, apple-videx,
+#        lisa, trsII, atari, st52, pc-coherent, basis, m2-man, bg2.0, bg1.25,
+#        dw3, ln03, ims-ansi, graphos, t16, zen30, xtalk, simterm, d800,
+#        ifmr, v3220, wy100q, tandem653, ibmaed.
+#      * Added DWK terminal description.
+# 9.13.8 (Wed Jul 10 11:45:21 EDT 1996):
+#      * Many entries now have highlights inherited from adm+sgr.
+#      * xterm entry now corresponds to XFree86 3.1.2E, with color.
+#      * xtitle and xtitle-twm enable access to the X status line.
+#      * Added linux-1.3.6 color palette caps in conventional format.
+#      * Added adm1178 terminal.
+#      * Move fos and apollo terminals to obsolete category.
+#      * Aha! The BRL terminals file told us what the Iris extensions mean.
+#      * Added, from the BRL termcap file: rt6221, rt6221-w, northstar,
+#        commodore, cdc721-esc, excel62, osexec.  Replaced from the BRL file:
+#        cit500, adm11.
+# 9.13.9 (Mon Jul 15 00:32:51 EDT 1996):
+#      * Added, from the BRL termcap file: cdc721, cdc721l, cdc752, cdc756,
+#        aws, awsc, zentec8001, modgraph48, rca vp3301/vp3501, ex155.
+#      * Corrected, from BRL termcap file: vi50.
+#      * Better rxvt entry & corrected xterm entries from Thomas Dickey.
+# 9.13.10 (Mon Jul 15 12:20:13 EDT 1996):
+#      * Added from BRL: cit101e & variants, hmod1, vi200, ansi77, att5620-1,
+#        att5620-s, att5620-s, dg210, aas1901, hz1520, hp9845, osborne
+#        (old osborne moved to osborne-w), tvi970-vb, tvi970-2p, tvi925-hi,
+#        tek4105brl, tek4106brl, tek4107brl,tek4109brl, hazel, aepro,
+#        apple40p, apple80p, appleIIgs, apple2e, apple2e-p, apple-ae.
+#      * Paired-attribute fixes to various terminals.
+#      * Sun entry corrections from A. Lukyanov & Gert-Jan Vons.
+#      * xterm entry corrections from Thomas Dickey.
+# 9.13.11 (Tue Jul 30 16:42:58 EDT 1996):
+#      * Added t916 entry, translated from a termcap in SCO's support area.
+#      * New qnx entry from Michael Hunter.
+# 9.13.12 (Mon Aug  5 14:31:11 EDT 1996):
+#      * Added hpex2 from Ville Sulko.
+#      * Fixed a bug that ran the qnx and pcvtXX together.
+# 9.13.13 (Fri Aug  9 01:16:17 EDT 1996):
+#      * Added dtterm entry from Solaris CDE.
+# 9.13.14 (Tue Sep 10 15:31:56 EDT 1996):
+#      * corrected pairs#8 typo in dtterm entry.
+#      * added tvi9065.
+# 9.13.15 (Sun Sep 15 02:47:05 EDT 1996):
+#      * updated xterm entry to cover 3.1.2E's new features.
+# 9.13.16 (Tue Sep 24 12:47:43 EDT 1996):
+#      * Added new minix entry
+#      * Removed aliases of the form ^[0-9]* for obsolete terminals.
+#      * Commented out linux-old, nobody's using pre-1.2 kernels now.
+# 9.13.17 (Fri Sep 27 13:25:38 EDT 1996):
+#      * Added Prism entries and kt7ix.
+#      * Caution notes about EWAN and tabset files.
+#      * Changed /usr/lib/tabset -> /usr/share/tabset.
+#      * Added acsc/rmacs/smacs to vt52.
+# 9.13.18 (Mon Oct 28 13:24:59 EST 1996):
+#      * Merged in Thomas Dickey's reorganization of the xterm entries;
+#        added technical corrections to avoid warning messages.
+# 9.13.19 (Sat Nov 16 16:05:49 EST 1996):
+#      * Added rmso=\E[27m in Linux entry.
+#      * Added koi8-r support for Linux console.
+#      * Replace xterm entries with canonical ones from XFree86 3.2.
+# 9.13.20 (Sun Nov 17 23:02:51 EST 1996):
+#      * Added color_xterm from Jacob Mandelson
+# 9.13.21 (Mon Nov 18 12:43:42 EST 1996):
+#      * Back off the xterm entry to use r6 as a base.
+# 9.13.22 (Sat Nov 30 11:51:31 EST 1996):
+#      * Added dec-vt220 at Adrian Garside's request.
+#
+#-(original-changelog-1996/12/29-to-1998/02/28-by-TD)---------------------------
+#
+# 10.1.0 (Sun Dec 29 02:36:31 EST 1996): withdrawn
+#      * Minor corrections to xterm entries.
+#      * Replaced EWAN telnet entry.
+#      * Dropped the reorder script generator.  It was a fossil.
+# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
+#      * Replaced minitel-2 entry.
+#      * Added MGR, ansi-nt.
+# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
+#      * Thorsten Lockert added termcap `bs' to a lot of types, working from
+#        the 4.4BSD Lite2 file.
+#
+# 10.1.1 (Sat May  3 21:41:27 EDT 1997):
+#      * Use setaf/setab consistently with SVr4.
+#      * Remove ech, el1 from cons25w, they do not work in FreeBSD 2.1.5
+# 10.1.2 (Sat May 24 21:10:57 EDT 1997)
+#      * update xterm-xf86-v32 to match XFree86 3.2A (changes F1-F4)
+#      * add xterm-16color, for XFree86 3.3
+# 10.1.3 (Sat May 31 12:21:05 EDT 1997)
+#      * correct typo in emu
+#      * correct typo in vt102-w (Robert Wuest)
+#      * make new entry xterm-xf86-v33, restored xterm-xf86-v32.
+# 10.1.4 (Sun Jun 15 08:29:05 EDT 1997)
+#      * remove ech capability from rxvt (it does the wrong thing)
+# 10.1.5 (Sat Jun 28 21:34:36 EDT 1997)
+#      * remove spurious newlines from several entries (hp+color, wy50,
+#        wy350, wy370-nk, wy99gt-tek, wy370-tek, ibm3161, tek4205, ctrm,
+#        gs6300)
+# 10.1.6 (Sat Jul  5 15:08:16 EDT 1997)
+#      * correct rmso capability of wy50-mc
+# 10.1.7 (Sat Jul 12 20:05:55 EDT 1997)
+#      * add cbt to xterm-xf86-v32
+#      * disentangle some entries from 'xterm', preferring xterm-r6 in case
+#        'xterm' is derived from xterm-xf86-v32, which implements ech and
+#        other capabilities not in xterm-r6.
+#      * remove alternate character set from kterm entry.
+# 10.1.8 (Sat Aug  2 18:43:18 EDT 1997)
+#      * correct acsc entries for ACS_LANTERN, which is 'i', not 'I'.
+# 10.1.9 (Sat Aug 23 17:54:38 EDT 1997)
+#      * add xterm-8bit entry.
+# 10.1.10 (Sat Oct  4 18:17:13 EDT 1997)
+#      * repair several places where early version of tic replaced \, with \\\,
+#      * make acsc entries canonical form (sorted, uniq).
+#      * modify acsc entries for linux, linux-koi8
+#      * new rxvt entry, from corrected copy of distribution in rxvt 2.21b
+#      * add color, mouse support to kterm.
+# 10.1.11 (Sat Oct 11 14:57:10 EDT 1997)
+#      * correct wy120 smxon/tbc capabilities which were stuck together.
+# 10.1.12 (Sat Oct 18 17:38:41 EDT 1997)
+#      * add entry for xterm-xf86-v39t
+# 10.1.13 (Sat Nov  8 13:43:33 EST 1997)
+#      * add u8,u9 to sun-il description
+# 10.1.14 (Sat Nov 22 19:59:03 EST 1997)
+#      * add vt220-js, pilot, rbcomm, datapoint entries from esr's 27-jun-97
+#        version.
+#      * add hds200 description (Walter Skorski)
+#      * add EMX 0.9b descriptions
+#      * correct rmso/smso capabilities in wy30-mc and wy50-mc (Daniel Weaver)
+#      * rename xhpterm back to hpterm.
+# 10.1.15 (Sat Nov 29 19:21:59 EST 1997)
+#      * change initc in linux-c-nc to use 0..1000 range.
+# 10.1.16 (Sat Dec 13 19:41:59 EST 1997)
+#      * remove hpa/vpa from rxvt, which implements them incorrectly.
+#      * add sgr0 for rxvt.
+#      * remove bogus smacs/rmacs from EMX descriptions.
+# 10.1.17 (Sat Dec 20 17:54:10 EST 1997)
+#      * revised entry for att7300
+# 10.1.18 (Sat Jan  3 17:58:49 EST 1998)
+#      * use \0 rather than \200.
+#      * rename rxvt-color to rxvt to match rxvt 2.4.5 distribution.
+# 10.1.19 (Sat Jan 17 14:24:57 EST 1998)
+#      * change xterm (xterm-xf86-v40), xterm-8bit rs1 to use hard reset.
+#      * rename xterm-xf86-v39t to xterm-xf86-v40
+#      * remove bold/underline from sun console entries since they're not
+#        implemented.
+# 10.1.20 (Sat Jan 24 11:02:51 EST 1998)
+#      * add beterm entry (Fred Fish)
+#      * add irix-color/xwsh entry.
+#      * turn ncv off for linux.
+# 10.1.21 (Sat Jan 31 17:39:16 EST 1998)
+#      * set ncv for FreeBSD console (treat colors with reverse specially).
+#      * remove sgr string from qnx based on report by Xiaodan Tang
+# 10.1.22 (Wed Feb 11 18:40:12 EST 1998)
+#      * remove spurious commas from descriptions
+#      * correct xterm-8bit to match XFree86 3.9Ad F1-F4.
+# 10.1.23 (Sat Feb 28 17:48:38 EST 1998)
+#      * add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
+#        apparently based on cp-866).
+#
+#-(replaced-changelog-1998/02/28-by-ESR)----------------------------------------
+#
+# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
+#      * Replaced minitel-2 entry.
+#      * Added MGR, ansi-nt.
+#      * Minor corrections to xterm entries.
+#      * Replaced EWAN telnet entry.
+#      * Dropped the reorder script generator.  It was a fossil.
+# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
+#      * Thorsten Lockert added termcap `bs' to a lot of types, working from
+#        the 4.4BSD Lite2 file.
+# 9.13.25 (Fri Jun 20 12:33:36 EDT 1997):
+#      * Added Datapoint 8242, pilot, ansi_psx, rbcomm, vt220js.
+#      * Updated iris-ansi; corrected vt102-w.
+#      * Switch base xterm entry to 3.3 level.
+# 9.13.26 (Mon Jun 30 22:45:45 EDT 1997)
+#      * Added basic4.
+#      * Removed rmir/smir from tv92B.
+#
+# 10.2.0 (Sat Feb 28 12:47:36 EST 1998):
+#      * add hds200 description (Walter Skorski)
+#      * add beterm entry (Fred Fish)
+#      * add Thomas Dickey's xterm-xf86-v40, xterm-8bit, xterm-16color,
+#        iris-color entries.
+#      * add emx entries.
+#      * Replaced unixpc entry with Benjamin Sittler's corrected version.
+#      * Replaced xterm/rxvt/emu/syscons entries with Thomas Dickey's
+#        versions.
+#      * remove sgr string from qnx based on report by Xiaodan Tang
+#      * Added u8/u9, removed rmul/smul from sun-il.
+#      * 4.2 tic displays \0 rather than \200.
+#      * add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
+#        apparently based on cp-866).
+#      * Merged in Pavel Roskin's acsc for linux-koi8
+#      * Corrected some erroneous \\'s to \.
+#      * 4.2 ncurses has been changed to use setaf/setab, consistent w/SysV.
+#      * II -> ii in pcvtXX, screen, xterm.
+#      * Removed \n chars following ANSI escapes in sgr & friends.
+#      * Updated Wyse entries.
+#      * h19 corrections from Tim Pierce.
+#      * Noted that the dm2500 has both ich and smir.
+#      * added pccons for the Alpha under OSF/1.
+#      * Added Sony NEWS workstation entries and cit101e-rv.
+#      * Reverted `amiga'; to Kent Polk's version, as I'm told
+#        the Verkuil entry messes up with Amiga Telnet.
+# 10.2.1 (Sun Mar  8 18:32:04 EST 1998):
+#      * Corrected attributions in 10.2.0 release notes.
+#      * Scanned the Shuford archive for new terminfos and information.
+#      * Removed sgr from qnx entry (Thomas Dickey).
+#      * Added entries for ICL and Kokusai Data Systems terminals.
+#      * Incorporated NCR terminfos from the Boundless Technology FTP site.
+#      * Incorporated att700 from the Boundless Technology FTP site.
+#      * Miscellaneous contact-address and Web-page updates.
+#
+#-(changelog-beginning-ncurses-4.2)---------------------------------------------
+#
+# 1998/5/9
+#      * add nxterm and xterm-color terminfo description (request by Cristian
+#        Gafton <gafton@redhat.com>).
+#      * modify rxvt terminfo description to clear alternate screen before
+#        switching back to normal screen, for compatibility with applications
+#        which use xterm (reported by Manoj Kasichainula <manojk@io.com>).
+#      * modify linux terminfo description to reset color palette (reported
+#        by Telford Tendys <telford@eng.uts.edu.au>).
+#
+# 1998/7/4
+#      * merge changes from current XFree86 xterm terminfo descriptions.
+#
+# 1998/7/25
+#      * Added minitel1 entries from Alexander Montaron.
+#      * Added qnxt2 from Federico Bianchi.
+#      * Added arm100 terminfo entries from Dave Millen.
+#
+# 1998/8/6
+#      * Added ncsa telnet entries from Francesco Potorti
+#
+# 1998/8/15
+#      * modify ncsa telnet entry to reflect color, other capabilities based on
+#        examination of the source code - T.Dickey.
+#
+# 1998/8/22
+#      * Corrected some erroneous \\'s to \ (eterm, osborne) - TD.
+#
+# 1998/8/29
+#      * Added Francesco Potorti's tuned Wyse 99 entries.
+#      * dtterm enacs correction from Alexander V. Lukyanov.
+#      * Add ncsa-ns, ncsa-m-ns and ncsa-m entries from esr version.
+#      * correct a typo in icl6404 entry.
+#      * add xtermm and xtermc
+#
+# 1998/9/26
+#      * format most %'char' sequences to %{number}
+#      * adapt IBM AIX 3.2.5 terminfo - T.Dickey
+#      * merge Data General terminfo from Hasufin <hasufin@vidnet.net> - TD
+#
+# 1998/10/10
+#      * update xterm-xfree86 to current (patch 84), for is2/rs2 changes - TD
+#      * correct initialization string in xterm-r5, add misc other features
+#        to correspond with xterm patch 84 - TD
+#
+# 1998/12/19
+#      * update xterm-xfree86 to current (patch 90), smcur/rmcur changes - TD
+#      * add Mathew Vernon's mach console entries
+#      * corrections for ncsa function-keys (report by Larry Virden)
+#
+# 1998/12/19
+#      * change linux to use ncv#2, since underline does not work with color - TD
+#
+# 1999/1/9
+#      * add kbt to iris-ansi, document other shift/control functionkeys - TD
+#      * correct iris-ansi and iris-ansi-ap with respect to normal vs keypad
+#        application modes, change kent to use the correct keypad code - TD
+#
+# 1999/1/10
+#      * add entry for Tera Term - TD
+#
+# 1999/1/23
+#      * minor improvements for teraterm entry - TD
+#      * rename several entries used by BSDI: bsdos to bsdos-pc-nobold,
+#        and bsdos-bold to bsdos-pc (Jeffrey C Honig)
+#
+# 1999/2/20
+#      * resolve ambiguity of kend/kll/kslt and khome/kfnd/kich1 strings in
+#        xterm and ncsa entries by removing the unneeded ones.  Note that
+#        some entries will return kend & khome versus kslt and kfnd, for
+#        PC-style keyboards versus strict vt220 compatiblity - TD
+#
+# 1999/3/13
+#      * adjust xterm-xfree86 khome/kend to match default PC-style keyboard
+#        tables - TD
+#      * add 'crt' entry - TD
+#      * correct typos in 'linux-c' entry - TD
+#
+# 1999/3/14
+#      * update entries for BSD/OS console to use klone+sgr and klone+color
+#        (Jeffrey C Honig)
+#
+# 1999/3/27
+#      * adjust xterm-xfree86 miscellaneous keypad keys, as per patch #94 - TD.
+#
+# 1999/4/10
+#      * add linux-lat, from RedHat patches to ncurses 4.2
+#
+# 1999/4/17
+#      * add complete set of default function-key definitions for scoansi - TD.
+#
+# 1999/7/3
+#      * add cnorm, cvvis for Linux 2.2 kernels
+#
+# 1999/7/24
+#      * add kmous to xterm-r5 -TD
+#      * correct entries xterm+sl and xterm+sl-twm, which were missing the
+#        parent "use" clause -TD
+#
+# 1999/7/31
+#      * corrected cnorm, added el1 in 'screen' description -TD
+#
+# 1999/8/14
+#      * add ms-vt100 -TD
+#
+# 1999/8/21
+#      * corrections to beterm entry -TD
+#
+# 1999/8/28
+#      * add cygwin entry -TD
+#
+# 1999/9/4
+#      * minor corrections for beterm entry -TD
+#
+# 1999/9/18
+#      * add acsc string to HP 70092 terminfo entry -Joerg Wunsch
+#
+# 1999/9/25
+#      * add amiga-8bit entry
+#      * add console entries from NetBSD: ofcons, wsvt25, wsvt25m, rcons,
+#        rcons-color, based on
+#        ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/share/termcap/termcap.src
+#      * add alias for iris-ansi-net
+#
+# 1999/10/2
+#      * corrected scoansi entry's acsc, some function keys, add color -TD
+#
+# 1999/10/23
+#      * add cnorm, cvvis to cons25w, and modify ncv to add 'dim' -TD
+#      * reorder ncsa entries to make ncsa-vt220 use the alternate function
+#        key mapping, leaving Potorti's entries more like he named them -TD
+#      * remove enter/exit am-mode from cygwin -TD
+#
+# 1999/10/30
+#      * correct typos in several entries (missing '[' from CSI):
+#        mgr-sun, ncsa-m, vt320-k3, att505, avt-ns, as well as smir/rmir
+#        strings for avt-ns -TD
+#      * add 'dim' to ncv mask for linux (report by Klaus Weide).
+#
+# 1999/11/27
+#      * correct kf1-kf4 in xterm-r6 which were vt100-style PF1-PF4 -TD
+#      * add hts to xterm-r6, and u6-u9 to xterm-r5 -TD
+#      * add xterm-88color and xterm-256color -TD
+#
+# 1999/12/4
+#      * add "obsolete" termcap strings -TD
+#      * add kvt and gnome entries -TD
+#
+# 1999/12/11
+#      * correct cup string for regent100 -TD
+#
+# 2000/1/1
+#      * update mach, add mach-color based on Debian diffs for ncurses 5.0 -TD
+#      * add entries for xterm-hp, xterm-vt220, xterm-vt52 and xterm-noapp -TD
+#      * change OTrs capabilities to rs2 -TD
+#      * add obsolete and extended capabilities to 'screen' -TD
+#
+# 2000/1/5
+#      * remove kf0 from rxvt, vt520, vt525 and ibm5151 since it conflicts
+#        with kf10 -TD
+#      * updated xterm-xf86-v40, making kdch1 correspond to vt220 'Remove',
+#        and adding kcbt -TD
+#
+# 2000/1/12
+#      * remove incorrect khome/kend from xterm-xf86-v333, which was based on
+#        nonstandard resource settings -TD
+#
+# 2000/2/26
+#      * minor fixes for xterm-*, based on Debian #58530 -TD
+#
+# 2000/3/4
+#      * add several terminal types from esr's "11.0", as well as comments.
+#        bq300*, dku7102-old, dku7202, hft, lft, pcmw, pmcons, tws*, vip*,
+#        vt220-8bit, vt220-old, wy85-8bit
+#
+# 2000/3/18
+#      * add several terminal types from esr's "11.0.1" (ansi-*).
+#      * update OTxx capabilities for changes on 2000/3/4.
+#      * revert part of vt220 change (request by Todd C Miller for OpenBSD)
+#
+# 2000/3/26
+#      * move screen's AX extension to ecma+color, modify several entries to
+#        use that, adjusting ncv as needed -TD
+#
+# 2000/4/8
+#      * add bsdos-pc-m, bsdos-pc-mono (Jeffrey C Honig)
+#      * correct spelling error in entry name: bq300-rv was given as bg300-rv
+#        in esr's version.
+#
+# 2000/4/15
+#      * add cud, ech, etc., to beterm based on feedback from Rico Tudor -TD
+#      * correct color definition for ibm3164, make minor changes to other
+#        IBM terminal definitions based on recent terminfo descriptions -TD
+#
+# 2000/4/22
+#      * add mgterm, from NetBSD -TD
+#      * add alias sun-cgsix for sun-ss5 as per NetBSD
+#      * change cons25w to use rs2 for reset rather than rs1 -TD
+#      * add rc/sc to aixterm based on manpage -TD
+#
+# 2000/5/13
+#      * remove ncv from xterm-16color, xterm-256color
+#
+# 2000/6/10
+#      * add kmous capability to linux to use Joerg Schoen's gpm patch.
+#
+# 2000/7/1
+#      * add Eterm (Michael Jennings)
+#
+# 2000-07-18
+#       * add amiga-vnc entry.
+#
+# 2000-08-12
+#      * correct description of Top Gun Telnet.
+#      * add kterm-color
+#
+# 2000-08-26
+#      * add qansi* entries from QNX ftp site.
+#
+# 2000-09-16
+#      * add Matrix Orbital entries by Eric Z. Ayers).
+#      * add xterm-basic, xterm-sco entries, update related entries to XFree86
+#        4.0.1c -TD
+#
+# 2000-09-17
+#      * add S0, E0 extensions to screen's entry -TD
+#
+# 2000-09-23
+#      * several corrections based on tic's new parameter-checking code -TD
+#      * modify xterm-r6 and similar rs2 sequences which had \E7...\E8
+#        bracketing sequences that reset video attributes (\E8 would restore
+#        them) -TD
+#
+# 2000-11-11
+#      * rename cygwin to cygwinB19, adapt newer entry from Earnie Boyd -TD
+#
+# 2000-12-16
+#      * improved scoansi, based on SCO man-page, and testing console,
+#        scoterm with tack -TD
+#
+# 2001-01-27
+#      * modify kterm to use acsc via SCS controls.
+#
+# 2001-02-10
+#      * screen 3.9.8 allows xterm mouse controls to pass-through
+#
+# 2001-03-11
+#      * remove spurious "%|" from some xterm entries.
+#
+# 2001-03-31
+#      * modify 'screen' khome/kend to match screen 3.09.08
+#      * add examples of 'screen' customization (screen.xterm-xfree86,
+#        screen.xterm-r6, screen.teraterm) -TD
+#
+# 2001-04-14
+#      * correct definitions of shifted editing keys for xterm-xfree86 -TD
+#      * add "Apple_Terminal" entries -Benjamin Sittler
+#      * remove time-delays from "Apple_Terminal" entries -TD
+#      * make sgr entries time-delays consistent with individual caps -TD
+#
+# 2001-05-05
+#      * corrected/updated screen.xterm-xfree86
+#
+# 2001-05-19
+#      * ELKS descriptions, from Federico Bianchi
+#      * add u6 (CSR) to Eterm (Michael Jennings).
+#
+# 2001-07-21
+#      * renamed "Apple_Terminal" entries to "nsterm" to work with Solaris's
+#        tic which handles names no longer than 14 characters.  Add
+#        corresponding descriptions for the Darwin PowerPC console named
+#        "xnuppc" -Benjamin Sittler
+#
+# 2001-09-01
+#      * change kbs in mach entries to ^? (Marcus Brinkmann).
+#
+# 2001-11-17
+#      * add "putty" entry -TD
+#      * updated "Apple_Terminal" entries -Benjamin Sittler
+#
+# 2001-11-24
+#      * add ms-vt100-color entry -TD
+#      * add "konsole" entries -TD
+#
+# 2001-12-08
+#      * update gnome entry to Redhat 7.2 -TD
+#
+# 2002-05-25
+#      * add kf13-kf48 strings to cons25w -TD
+#      * add pcvt25-color entry -TD
+#      * changed a few /usr/lib/tabset -> /usr/share/tabset.
+#      * improve some features of scoansi entry based on SCO's version -TD
+#      * add scoansi-new entry corresponding to OpenServer 5.0.6
+#
+# 2002-06-15
+#      * add kcbt to screen entry -TD
+#
+# 2002-06-22
+#      * add rxvt-16color, ibm+16color, mvterm entries -TD
+#
+# 2002-09-28
+#      * split out linux-basic entry, making linux-c inherit from that, and
+#        in turn linux (with cnorm, etc) inherit from linux-c-nc to reflect
+#        the history of this console type -TD
+#      * scaled the linux-c terminfo entry to match linux-c-nc, i.e., the
+#        r/g/b parameters of initc are in the range 0 to 1000 -TD
+#
+# 2002-10-05
+#      * minor fix for scale-factor of linux-c and linux-c-nc -TD
+#
+# 2002-11-09
+#      * split-out vt100+keypad and vt220+keypad, fix interchanged ka3/kb2
+#        in the latter -TD
+#
+# 2002-11-16
+#      * add entries for mterm (mterm, mterm-ansi, decansi) -TD
+#      * ncr260wy350pp has only 16 color pairs -TD
+#      * add sun-type4 from NetBSD -TD
+#      * update xterm-xfree86 to current (patch 170) -TD
+#      * add screen-bce, screen-s entries -TD
+#      * add xterm-1002, xterm-1003 entries -TD
+#
+# 2003-01-11
+#      * update homepage for Top Gun Telnet/SSH
+#
+# 2003-01-25
+#      * reduce duplication in emx entries, added emx-base -TD
+#
+# 2003-05-24
+#      * corrected acs for screen.teraterm -TD
+#      * add tkterm entry -TD
+#
+# 2003-07-15
+#      * cygwin changes from Charles Wilson:
+#        misc/terminfo.src (nxterm|xterm-color): make xterm-color
+#        primary instead of nxterm, to match XFree86's xterm.terminfo
+#        usage and to prevent circular links.
+#        (rxvt): add additional codes from rxvt.org.
+#        (rxvt-color): new alias
+#        (rxvt-xpm): new alias
+#        (rxvt-cygwin): like rxvt, but with special acsc codes.
+#        (rxvt-cygwin-native): ditto.  rxvt may be run under XWindows, or
+#        with a "native" MSWin GUI.  Each takes different acsc codes,
+#        which are both different from the "normal" rxvt's acsc.
+#        (cygwin): cygwin-in-cmd.exe window.  Lots of fixes.
+#        (cygwinDBG): ditto.
+#
+# 2003-09-27
+#      * update gnome terminal entries -TD
+#
+# 2003-10-04
+#      * add entries for djgpp 2.03 and 2.04 -TD
+#
+# 2003-10-25
+#      * add alias for vtnt -TD
+#      * update xterm-xfree86 for XFree86 4.4 -TD
+#
+# 2003-11-22
+#      * add linux-vt (Andrey V Lukyanov)
+#
+# 2003-12-20
+#      * add screen.linux -TD
+#
+# 2004-01-10
+#      * revised/improved entries for tvi912b, tvi920b (Benjamin Sittler)
+#
+# 2004-01-17
+#      * add OpenNT/Interix/SFU entries (Federico Bianchi)
+#      * add vt100+ and vt-utf8 entries -TD
+#      * add uwin entry -TD
+#
+# 2004-03-27
+#      * add sgr strings to several common entries lacking them, e.g.,
+#        screen, to make the entries more portable -TD
+#      * remove cvvis from rxvt entry, since it is the same as cnorm -TD
+#      * similar fixups for cvvis/cnorm various entries -TD
+#
+# 2004-05-22
+#      * remove 'ncv' from xterm-256color (patch 188) -TD
+#
+# 2004-06-26
+#      * add mlterm -TD
+#      * add xterm-xf86-v44 -TD
+#      * modify xterm-new aka xterm-xfree86 to accommodate luit, which relies
+#        on G1 being used via an ISO-2022 escape sequence (report by
+#        Juliusz Chroboczek) -TD
+#      * add 'hurd' entry -TD
+#
+# 2004-07-03
+#      * make xterm-xf86-v43 derived from xterm-xf86-v40 rather than
+#        xterm-basic -TD
+#      * align with xterm #192's use of xterm-new -TD
+#      * update xterm-new and xterm-8bit for cvvis/cnorm strings -TD
+#      * make xterm-new the default "xterm" -TD
+#
+# 2004-07-10
+#      * minor fixes for emu -TD
+#      * add emu-220
+#      * add rmam/smam to linux (Trevor Van Bremen)
+#      * change wyse acsc strings to use 'i' map rather than 'I' -TD
+#      * fixes for avatar0 -TD
+#      * fixes for vp3a+ -TD
+#
+# 2004-07-17
+#      * add xterm-pc-fkeys -TD
+#      * review/update gnome and gnome-rh90 entries (prompted by
+#        Redhat Bugzilla #122815) -TD
+#      * review/update konsole entries -TD
+#      * add sgr, correct sgr0 for kterm and mlterm -TD
+#      * correct tsl string in kterm -TD
+#
+# 2004-07-24
+#      * make ncsa-m rmacs/smacs consistent with sgr -TD
+#      * add sgr, rc/sc and ech to syscons entries -TD
+#      * add function-keys to decansi -TD
+#      * add sgr to mterm-ansi -TD
+#      * add sgr, civis, cnorm to emu -TD
+#      * correct/simplify cup in addrinfo -TD
+#      * corrections for gnome and konsole entries
+#        (Redhat Bugzilla #122815) -Hans de Goede
+#      * modify DEC entries (vt220, etc), to add sgr string, and to use
+#        ISO-2022 strings for rmacs/smacs -TD
+#
+# 2004-07-31
+#      * rename xterm-pc-fkeys to xterm+pcfkeys -TD
+#
+# 2004-08-07
+#      * improved putty entry -Robert de Bath
+#
+# 2004-08-14
+#      * remove dch/dch1 from rxvt because they are implemented inconsistently
+#        with the common usage of bce/ech -TD
+#      * remove khome from vt220 (vt220's have no home key) -TD
+#      * add rxvt+pcfkeys -TD
+#
+# 2004-08-21
+#      * modify several entries to ensure xterm mouse and cursor visibility
+#        are reset in rs2 string:  hurd, putty, gnome, konsole-base, mlterm,
+#        Eterm, screen.  (The xterm entries are left alone - old ones for
+#        compatibility, and the new ones do not require this change) -TD
+#
+# 2004-08-28
+#      * add morphos entry -Pavel Fedin
+#      * modify amiga-8bit to add khome/kend/knp/kpp -Pavel Fedin
+#      * corrected \E[5?l to \E[?5l in vt320 entries -TD
+#
+# 2004-11-20
+#      * update wsvt25 entry -TD
+#
+# 2005-01-29
+#      * update pairs for xterm-88color and xterm-256color to reflect the
+#        ncurses extended-color support -TD
+#
+# 2005-02-26
+#      * modify sgr/sgr0 in xterm-new to improve tgetent's derived "me" -TD
+#      * add aixterm-16color to demonstrate 16-color capability -TD
+#
+# 2005-04-23
+#      * add media-copy to vt100 -TD
+#      * corrected acsc string for vt52 -TD
+#
+# 2005-04-30
+#      * add kUP, kDN (user-defined shifted up/down arrow) definitions for
+#        xterm-new -TD
+#      * add kUP5, kUP6, etc., for xterm-new and rxvt -TD
+#
+# 2005-05-07
+#      * re-corrected acsc string for vt52 -TD
+#
+# 2005-05-28
+#      * corrected sun-il sgr string which referred to bold and underline -TD
+#      * add sun-color entry -TD
+#
+# 2005-07-23
+#      * modify sgr0 in several entries to reset alternate-charset as in the
+#        sgr string -TD
+#      * modify sgr string of prism9 to better match the individual
+#        attributes -TD
+#
+# 2005-10-15
+#      * correct order of use= in rxvt-basic -TD
+#
+# 2005-10-26
+#      * use kind/kri as shifted up/down cursor keys for xterm-new -TD
+#
+# 2005-11-12
+#      * other minor fixes to cygwin based on tack -TD
+#      * correct smacs in cygwin (report by Baurzhan Ismagulov).
+#
+# 2006-02-18
+#      * add nsterm-16color entry -TD
+#      * remove ncv flag from xterm-16color -TD
+#      * remove setf/setb from xterm-256color to match xterm #209 -TD
+#      * update mlterm entry to 2.9.2 -TD
+#
+# 2006-02-25
+#      * fixes to make nsterm-16color match report
+#        by Christian Ebert -Alain Bench
+#
+# 2006-04-22
+#      * add xterm+256color building block -TD
+#      * add gnome-256color, putty-256color, rxvt-256color -TD
+#
+# 2006-05-06
+#      * add hpterm-color -TD
+#
+# 2006-06-24
+#      * add xterm+pcc0, xterm+pcc1, xterm+pcc2, xterm+pcc3 -TD
+#      * add gnome-fc5 (prompted by GenToo #122566) -TD
+#      * remove obsolete/misleading comments about kcbt on Linux -Alain Bench
+#      * improve xterm-256color by combining the ibm+16color setaf/setab
+#        strings with SGR 48.  The setf/setb strings also are cancelled here
+#        rather than omitted so derived entries will cancel those also -Alain
+#        Bench
+#
+# 2006-07-01
+#      * add some notes regarding copyright to terminfo.src -TD
+#      * use rxvt+pcfkeys in Eterm -TD
+#      * remove km and flash from gnome, Eterm and rxvt since they do not work
+#        as one would expect (km sends ESC rather than setting the 8th bit
+#        of the key) -TD
+#      * add/use ansi+enq, vt100+enq and vt102+enq -TD
+#      * add konsole-solaris -TD
+#
+# 2006-07-22
+#      * update xterm-sun and xterm-sco entries to match xterm #216 -TD
+#      * modify is2/rs2 strings for xterm-r6 as per fix in xterm #148 -TD
+#      * modify xterm-24 to inherit from "xterm" -TD
+#      * add xiterm entry -TD
+#      * add putty-vt100 entry -TD
+#      * corrected spelling of Michael A Dorman's name, prompted by
+#        http://www.advogato.org/person/mdorman/diary.html -TD
+#
+# 2006-08-05
+#      * add xterm+pcf0, xterm+pcf2 from xterm #216 -TD
+#      * update xterm+pcfkeys to match xterm #216 -TD
+#
+# 2006-08-17
+#      * make descriptions of xterm entries consistent with its terminfo -TD
+#
+# 2006-08-26
+#      * add xfce, mgt -TD
+#
+# 2006-09-02
+#      * correct acsc string in kterm -TD
+#
+# 2006-09-09
+#      * add kon entry -TD
+#      * remove invis from linux and related entries, add klone+sgr8 for those
+#        that implement the feature (or have not been shown to lack it) -TD
+#
+# 2006-09-23
+#      * add ka2, kb1, kb3, kc2 to vt220-keypad as an extension -TD
+#      * minor improvements to rxvt+pcfkeys -TD
+#
+# 2006-09-30
+#      * fix a few typos in if/then/else expressions -TD
+#
+# 2006-10-07
+#      * add several GNU Screen variations with 16- and 256-colors, and
+#        status line (Alain Bench).
+#
+# 2007-03-03
+#      * add Newbury Data entries (Jean-Charles Billaud).
+#
+# 2007-06-10
+#      * corrected xterm+pcf2 modifiers for F1-F4, match xterm #226 -TD
+#
+# 2007-07-14
+#      * restore section of pre-ncurses-4.2 changelog to fix attribution -TD
+#      * add konsole-256color entry -TD
+#
+# 2007-08-18
+#      * add 9term entry (request by Juhapekka Tolvanen) -TD
+#
+# 2007-10-13
+#      * correct kIC in rxvt+pcfkeys (prompted by Debian #446444) -TD
+#      * add shift-control- and control-modified keys for rxvt editing
+#        keypad -TD
+#      * update mlterm entry to 2.9.3 -TD
+#      * add mlterm+pcfkeys -TD
+#
+# 2007-10-20
+#      * move kLFT, kRIT, kind and kri capabilities from xterm-new to
+#        xterm+pcc0, etc., to make the corresponding building blocks reflect
+#        xterm's capabilities -TD
+#      * add mrxvt entry -TD
+#      * add xterm+r6f2, use in mlterm and mrxvt entries -TD
+#
+# 2007-11-03
+#      * correct acsc strings for h19 and z100 (Benjamin Sittler)
+#
+# 2007-11-11
+#      * use xterm-xf86-v44 for "xterm-xfree86", reflecting changes to
+#        xterm starting with patch #216 -TD
+#      * make legacy xterm entries such as xterm-24 inherit from xterm-old,
+#        to match xterm #230 -TD
+#      * extend xterm+pccX entries to match xterm #230 -TD
+#      * add xterm+app, xterm+noapp, from xterm #230 -TD
+#      * add/use xterm+pce2 from xterm #230, in xterm+pcfkeys -TD
+#
+# 2008-04-19
+#      * add screen.rxvt -TD
+#
+# 2008-04-28
+#      * add screen+fkeys (prompted by Debian # 478094) -TD
+#
+# 2008-06-28
+#      * add screen.mlterm -TD
+#      * improve mlterm and mlterm+pcfkeys -TD
+#
+# 2008-08-23
+#      * add Eterm-256color, Eterm-88color -TD
+#      * add rxvt-88color -TD
+#
+# The following sets edit modes for GNU EMACS.
+# Local Variables:
+# fill-prefix:"\t"
+# fill-column:75
+# comment-column:0
+# comment-start-skip:"^#+"
+# comment-start:"# "
+# compile-command:"tic -c terminfo.master"
+# End:
+######## SHANTIH!  SHANTIH!  SHANTIH!
index 564e990cbbef1f5cea51ddebe7623f6bd63e4e93..52418722fed98f984edbb622416c4c0909879e07 100644 (file)
@@ -2,7 +2,9 @@ common/lib/libc         src/common/lib/libc
 lib/nbsd_libc          src/lib/libc
 lib/nbsd_libm          src/lib/libm
 lib/libcrypt           src/lib/libcrypt
+lib/libterminfo                src/lib/libterminfo
 nbsd_include           src/include
 usr.bin/m4             src/usr.bin/m4
 usr.bin/indent         src/usr.bin/indent
 usr.bin/stat           src/usr.bin/stat
+usr.bin/tic            src/usr.bin/tic
index 94eb6410ca68edda1b842b89e32b8ba2a4a1b5dd..c036f9b31f4b5bc5dc4fb52057740694dc9693cb 100644 (file)
@@ -3,7 +3,7 @@
 .include <bsd.own.mk>
 
 # NetBSD imports
-SUBDIR= indent m4 mkimage stat
+SUBDIR= indent m4 mkimage stat tic
 
 # Non-NetBSD imports
 SUBDIR+= ministat
diff --git a/usr.bin/tic/Makefile b/usr.bin/tic/Makefile
new file mode 100644 (file)
index 0000000..0609620
--- /dev/null
@@ -0,0 +1,13 @@
+#      $NetBSD: Makefile,v 1.1 2010/02/03 15:16:32 roy Exp $
+
+PROG=          tic
+WARNS=         4
+
+CPPFLAGS+=     -I${.CURDIR}/../../lib/libterminfo
+
+.ifndef HOSTPROG
+LDADD+=                -lterminfo
+DPADD+=                ${LIBTERMINFO}
+.endif
+
+.include <bsd.prog.mk>
diff --git a/usr.bin/tic/minix-port.patch b/usr.bin/tic/minix-port.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/usr.bin/tic/tic.1 b/usr.bin/tic/tic.1
new file mode 100644 (file)
index 0000000..0137f29
--- /dev/null
@@ -0,0 +1,105 @@
+.\"    $NetBSD: tic.1,v 1.8 2010/02/11 13:44:14 wiz Exp $
+.\"
+.\" Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Roy Marples.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd February 11, 2010
+.Dt TIC 1
+.Os
+.Sh NAME
+.Nm tic
+.Nd terminfo compiler
+.Sh SYNOPSIS
+.Nm tic
+.Op Fl acSsx
+.Op Fl o Ar file
+.Ar source
+.Op Ar term1 term2 ...
+.Sh DESCRIPTION
+The
+.Nm
+utility compiles
+.Xr terminfo 5
+source into a database for use by other programs.
+The created database path name is the same as the source but with .db appended.
+.Pp
+The following options are available:
+.Bl -tag -width Fl
+.It Fl a
+Do not discard commented out capabilities.
+.It Fl c
+Only check for errors, don't write the final database.
+.It Fl o Ar file
+Write the database to
+.Ar file Ns .db
+instead of
+.Ar source Ns .db .
+.It Fl S
+For
+.Ar term1 , term2 , ...
+output a C structure containing name, compiled description, and compiled size.
+This can be used to embed terminal descriptons into a program.
+.It Fl s
+Display the number of terminal descritions written to the database.
+.It Fl x
+Include non standard capabilities defined in the
+.Ar source .
+.El
+.Ss Extensions To Terminfo
+When
+.Nm
+discovers a
+.Sy use Ns = Ns Va term
+capability, the terminal description for
+.Va term
+is merged in.
+Capabilities do not overwrite previously disovered ones and capabilities
+ending with @ are marked as absent so the terminal does not inherit the
+capability from
+.Sy use Ns d
+terminals.
+.Sh EXIT STATUS
+.Ex -std tic
+.Sh EXAMPLES
+To maintain your private terminfo definitions, if the system supplied
+ones do not support your terminal:
+.Bd -literal -offset indent
+.Ic tic ~/.terminfo
+.Ed
+.Sh SEE ALSO
+.Xr infocmp 1 ,
+.Xr tput 1 ,
+.Xr curses 3 ,
+.Xr terminfo 5
+.Sh STANDARDS
+The
+.Nm
+utility works with terminfo files that conform to the
+.St -xcurses4.2
+standard.
+.Sh AUTHORS
+.An Roy Marples Aq roy@NetBSD.org
diff --git a/usr.bin/tic/tic.c b/usr.bin/tic/tic.c
new file mode 100644 (file)
index 0000000..5ddd91c
--- /dev/null
@@ -0,0 +1,577 @@
+/* $NetBSD: tic.c,v 1.10 2010/02/22 23:05:39 roy Exp $ */
+
+/*
+ * Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if HAVE_NBTOOL_CONFIG_H
+#include "nbtool_config.h"
+#endif
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: tic.c,v 1.10 2010/02/22 23:05:39 roy Exp $");
+
+#include <sys/types.h>
+
+#if !HAVE_NBTOOL_CONFIG_H || HAVE_SYS_ENDIAN_H
+#include <sys/endian.h>
+#endif
+
+#include <ctype.h>
+#include <err.h>
+#include <errno.h>
+#include <getopt.h>
+#include <limits.h>
+#include <fcntl.h>
+#include <ndbm.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <term_private.h>
+#include <term.h>
+
+/* We store the full list of terminals we have instead of iterating
+   through the database as the sequential iterator doesn't work
+   the the data size stored changes N amount which ours will. */
+typedef struct term {
+       struct term *next;
+       char *name;
+       char type;
+       TIC *tic;
+} TERM;
+static TERM *terms;
+
+static int error_exit;
+static int Sflag;
+static char *dbname;
+
+static void
+do_unlink(void)
+{
+
+       if (dbname != NULL)
+               unlink(dbname);
+}
+
+static void __attribute__((__format__(__printf__, 1, 2)))
+dowarn(const char *fmt, ...)
+{
+       va_list va;
+
+       error_exit = 1;
+       va_start(va, fmt);
+       vwarnx(fmt, va);
+       va_end(va);
+}
+
+static char *
+grow_tbuf(TBUF *tbuf, size_t len)
+{
+       char *buf;
+
+       buf = _ti_grow_tbuf(tbuf, len);
+       if (buf == NULL)
+               err(1, "_ti_grow_tbuf");
+       return buf;
+}
+
+static int
+save_term(DBM *db, TERM *term)
+{
+       uint8_t *buf;
+       ssize_t len;
+       datum key, value;
+
+       len = _ti_flatten(&buf, term->tic);
+       if (len == -1)
+               return -1;
+
+       key.dptr = term->name;
+       key.dsize = strlen(term->name);
+       value.dptr = buf;
+       value.dsize = len;
+       if (dbm_store(db, key, value, DBM_REPLACE) == -1)
+               err(1, "dbm_store");
+       free(buf);
+       return 0;
+}
+
+static TERM *
+find_term(const char *name)
+{
+       TERM *term;
+       
+       for (term = terms; term != NULL; term = term->next)
+               if (strcmp(term->name, name) == 0)
+                       return term;
+       return NULL;
+}
+
+static TERM *
+store_term(const char *name, char type)
+{
+       TERM *term;
+
+       term = calloc(1, sizeof(*term));
+       if (term == NULL)
+               errx(1, "malloc");
+       term->name = strdup(name);
+       term->type = type;
+       if (term->name == NULL)
+               errx(1, "malloc");
+       term->next = terms;
+       terms = term;
+       return term;
+}
+
+static int
+process_entry(TBUF *buf, int flags)
+{
+       char *p, *e, *alias;
+       TERM *term;
+       TIC *tic;
+       
+       if (buf->bufpos == 0)
+               return 0;
+       /* Terminate the string */
+       buf->buf[buf->bufpos - 1] = '\0';
+       /* First rewind the buffer for new entries */
+       buf->bufpos = 0;
+
+       if (isspace((unsigned char)*buf->buf))
+               return 0;
+
+       tic = _ti_compile(buf->buf, flags);
+       if (tic == NULL)
+               return 0;
+
+       if (find_term(tic->name) != NULL) {
+               dowarn("%s: duplicate entry", tic->name);
+               _ti_freetic(tic);
+               return 0;
+       }
+       term = store_term(tic->name, 't');
+       term->tic = tic;
+
+       /* Create aliased terms */
+       if (tic->alias != NULL) {
+               alias = p = strdup(tic->alias);
+               while (p != NULL && *p != '\0') {
+                       e = strchr(p, '|');
+                       if (e != NULL)
+                               *e++ = '\0';
+                       if (find_term(p) != NULL) {
+                               dowarn("%s: has alias for already assigned"
+                                   " term %s", tic->name, p);
+                       } else {
+                               term = store_term(p, 'a');
+                               term->tic = calloc(sizeof(*term->tic), 1);
+                               if (term->tic == NULL)
+                                       err(1, "malloc");
+                               term->tic->name = strdup(tic->name);
+                               if (term->tic->name == NULL)
+                                       err(1, "malloc");
+                       }
+                       p = e;
+               }
+       }
+       
+       return 0;
+}
+
+static void
+merge(TIC *rtic, TIC *utic, int flags)
+{
+       char *cap, flag, *code, type, *str;
+       short ind, num;
+       size_t n;
+
+       cap = utic->flags.buf;
+       for (n = utic->flags.entries; n > 0; n--) {
+               ind = le16dec(cap);
+               cap += sizeof(uint16_t);
+               flag = *cap++;
+               if (VALID_BOOLEAN(flag) &&
+                   _ti_find_cap(&rtic->flags, 'f', ind) == NULL)
+               {
+                       _ti_grow_tbuf(&rtic->flags, sizeof(uint16_t) + 1);
+                       le16enc(rtic->flags.buf + rtic->flags.bufpos, ind);
+                       rtic->flags.bufpos += sizeof(uint16_t);
+                       rtic->flags.buf[rtic->flags.bufpos++] = flag;
+                       rtic->flags.entries++;
+               }
+       }
+
+       cap = utic->nums.buf;
+       for (n = utic->nums.entries; n > 0; n--) {
+               ind = le16dec(cap);
+               cap += sizeof(uint16_t);
+               num = le16dec(cap);
+               cap += sizeof(uint16_t);
+               if (VALID_NUMERIC(num) &&
+                   _ti_find_cap(&rtic->nums, 'n', ind) == NULL)
+               {
+                       grow_tbuf(&rtic->nums, sizeof(uint16_t) * 2);
+                       le16enc(rtic->nums.buf + rtic->nums.bufpos, ind);
+                       rtic->nums.bufpos += sizeof(uint16_t);
+                       le16enc(rtic->nums.buf + rtic->nums.bufpos, num);
+                       rtic->nums.bufpos += sizeof(uint16_t);
+                       rtic->nums.entries++;
+               }
+       }
+
+       cap = utic->strs.buf;
+       for (n = utic->strs.entries; n > 0; n--) {
+               ind = le16dec(cap);
+               cap += sizeof(uint16_t);
+               num = le16dec(cap);
+               cap += sizeof(uint16_t);
+               if (num > 0 &&
+                   _ti_find_cap(&rtic->strs, 's', ind) == NULL)
+               {
+                       grow_tbuf(&rtic->strs, (sizeof(uint16_t) * 2) + num);
+                       le16enc(rtic->strs.buf + rtic->strs.bufpos, ind);
+                       rtic->strs.bufpos += sizeof(uint16_t);
+                       le16enc(rtic->strs.buf + rtic->strs.bufpos, num);
+                       rtic->strs.bufpos += sizeof(uint16_t);
+                       memcpy(rtic->strs.buf + rtic->strs.bufpos,
+                           cap, num);
+                       rtic->strs.bufpos += num;
+                       rtic->strs.entries++;
+               }
+               cap += num;
+       }
+
+       cap = utic->extras.buf;
+       for (n = utic->extras.entries; n > 0; n--) {
+               num = le16dec(cap);
+               cap += sizeof(uint16_t);
+               code = cap;
+               cap += num;
+               type = *cap++;
+               flag = 0;
+               str = NULL;
+               switch (type) {
+               case 'f':
+                       flag = *cap++;
+                       if (!VALID_BOOLEAN(flag))
+                               continue;
+                       break;
+               case 'n':
+                       num = le16dec(cap);
+                       cap += sizeof(uint16_t);
+                       if (!VALID_NUMERIC(num))
+                               continue;
+                       break;
+               case 's':
+                       num = le16dec(cap);
+                       cap += sizeof(uint16_t);
+                       str = cap;
+                       cap += num;
+                       if (num == 0)
+                               continue;
+                       break;
+               }
+               _ti_store_extra(rtic, 0, code, type, flag, num, str, num,
+                   flags);
+       }
+}
+
+static size_t
+merge_use(int flags)
+{
+       size_t skipped, merged, memn;
+       char *cap, *scap;
+       uint16_t num;
+       TIC *rtic, *utic;
+       TERM *term, *uterm;;
+
+       skipped = merged = 0;
+       for (term = terms; term != NULL; term = term->next) {
+               if (term->type == 'a')
+                       continue;
+               rtic = term->tic;
+               while ((cap = _ti_find_extra(&rtic->extras, "use")) != NULL) {
+                       if (*cap++ != 's') {
+                               dowarn("%s: use is not string", rtic->name);
+                               break;
+                       }
+                       cap += sizeof(uint16_t);
+                       if (strcmp(rtic->name, cap) == 0) {
+                               dowarn("%s: uses itself", rtic->name);
+                               goto remove;
+                       }
+                       uterm = find_term(cap);
+                       if (uterm != NULL && uterm->type == 'a')
+                               uterm = find_term(uterm->tic->name);
+                       if (uterm == NULL) {
+                               dowarn("%s: no use record for %s",
+                                   rtic->name, cap);
+                               goto remove;
+                       }
+                       utic = uterm->tic;
+                       if (strcmp(utic->name, rtic->name) == 0) {
+                               dowarn("%s: uses itself", rtic->name);
+                               goto remove;
+                       }
+                       if (_ti_find_extra(&utic->extras, "use") != NULL) {
+                               skipped++;
+                               break;
+                       }
+                       cap = _ti_find_extra(&rtic->extras, "use");
+                       merge(rtic, utic, flags);
+       remove:
+                       /* The pointers may have changed, find the use again */
+                       cap = _ti_find_extra(&rtic->extras, "use");
+                       if (cap == NULL)
+                               dowarn("%s: use no longer exists - impossible",
+                                       rtic->name);
+                       else {
+                               scap = cap - (4 + sizeof(uint16_t));
+                               cap++;
+                               num = le16dec(cap);
+                               cap += sizeof(uint16_t) + num;
+                               memn = rtic->extras.bufpos -
+                                   (cap - rtic->extras.buf);
+                               memcpy(scap, cap, memn);
+                               rtic->extras.bufpos -= cap - scap;
+                               cap = scap;
+                               rtic->extras.entries--;
+                               merged++;
+                       }
+               }
+       }
+
+       if (merged == 0 && skipped != 0)
+               dowarn("circular use detected");
+       return merged;
+}
+
+static int
+print_dump(int argc, char **argv)
+{
+       TERM *term;
+       uint8_t *buf;
+       int i, n;
+       size_t j, col;
+       ssize_t len;
+
+       printf("struct compiled_term {\n");
+       printf("\tconst char *name;\n");
+       printf("\tconst char *cap;\n");
+       printf("\tsize_t caplen;\n");
+       printf("};\n\n");
+
+       printf("const struct compiled_term compiled_terms[] = {\n");
+
+       n = 0;
+       for (i = 0; i < argc; i++) {
+               term = find_term(argv[i]);
+               if (term == NULL) {
+                       warnx("%s: no description for terminal", argv[i]);
+                       continue;
+               }
+               if (term->type == 'a') {
+                       warnx("%s: cannot dump alias", argv[i]);
+                       continue;
+               }
+               /* Don't compile the aliases in, save space */
+               free(term->tic->alias);
+               term->tic->alias = NULL;
+               len = _ti_flatten(&buf, term->tic);
+               if (len == 0 || len == -1)
+                       continue;
+
+               printf("\t{\n");
+               printf("\t\t\"%s\",\n", argv[i]);
+               n++;
+               for (j = 0, col = 0; j < (size_t)len; j++) {
+                       if (col == 0) {
+                               printf("\t\t\"");
+                               col = 16;
+                       }
+                       
+                       col += printf("\\%03o", (uint8_t)buf[j]);
+                       if (col > 75) {
+                               printf("\"%s\n",
+                                   j + 1 == (size_t)len ? "," : "");
+                               col = 0;
+                       }
+               }
+               if (col != 0)
+                       printf("\",\n");
+               printf("\t\t%zu\n", len);
+               printf("\t}");
+               if (i + 1 < argc)
+                       printf(",");
+               printf("\n");
+               free(buf);
+       }
+       printf("};\n");
+
+       return n;
+}
+
+int
+main(int argc, char **argv)
+{
+       int ch, cflag, sflag, flags;
+       char *source, *p, *buf, *ofile;
+       FILE *f;
+       DBM *db;
+       size_t len, buflen, nterm, nalias;
+       TBUF tbuf;
+       TERM *term;
+
+       cflag = sflag = 0;
+       ofile = NULL;
+       flags = TIC_ALIAS | TIC_DESCRIPTION | TIC_WARNING;
+       while ((ch = getopt(argc, argv, "Saco:sx")) != -1)
+           switch (ch) {
+           case 'S':
+                   Sflag = 1;
+                   /* We still compile aliases so that use= works.
+                    * However, it's removed before we flatten to save space. */
+                   flags &= ~TIC_DESCRIPTION;
+                   break;
+           case 'a':
+                   flags |= TIC_COMMENT;
+                   break;
+           case 'c':
+                   cflag = 1;
+                   break;
+           case 'o':
+                   ofile = optarg;
+                   break;
+           case 's':
+                   sflag = 1;
+                   break;
+           case 'x':
+                   flags |= TIC_EXTRA;
+                   break;
+           case '?': /* FALLTHROUGH */
+           default:
+                   fprintf(stderr, "usage: %s [-acSsx] [-o file] source\n",
+                       getprogname());
+                   return EXIT_FAILURE;
+           }
+
+       if (optind == argc)
+               errx(1, "No source file given");
+       source = argv[optind++];
+       f = fopen(source, "r");
+       if (f == NULL)
+               err(1, "fopen: %s", source);
+       if (!cflag && !Sflag) {
+               if (ofile == NULL)
+                       ofile = source;
+               len = strlen(ofile) + 9;
+               dbname = malloc(len + 4); /* For adding .db after open */
+               if (dbname == NULL)
+                       err(1, "malloc");
+               snprintf(dbname, len, "%s.tmp", ofile);
+               db = dbm_open(dbname, O_CREAT | O_RDWR | O_TRUNC, DEFFILEMODE);
+               if (db == NULL)
+                       err(1, "dbopen: %s", source);
+               p = dbname + strlen(dbname);
+               *p++ = '.';
+               *p++ = 'd';
+               *p++ = 'b';
+               *p++ = '\0';
+               atexit(do_unlink);
+       } else
+               db = NULL; /* satisfy gcc warning */
+
+       tbuf.buflen = tbuf.bufpos = 0;  
+       while ((buf = fgetln(f, &buflen)) != NULL) {
+               /* Skip comments */
+               if (*buf == '#')
+                       continue;
+               if (buf[buflen - 1] != '\n') {
+                       process_entry(&tbuf, flags);
+                       dowarn("last line is not a comment"
+                           " and does not end with a newline");
+                       continue;
+               }
+               /*
+                 If the first char is space not a space then we have a
+                 new entry, so process it.
+               */
+               if (!isspace((unsigned char)*buf) && tbuf.bufpos != 0)
+                       process_entry(&tbuf, flags);
+               
+               /* Grow the buffer if needed */
+               grow_tbuf(&tbuf, buflen);
+               /* Append the string */
+               memcpy(tbuf.buf + tbuf.bufpos, buf, buflen);
+               tbuf.bufpos += buflen;
+       }
+       /* Process the last entry if not done already */
+       process_entry(&tbuf, flags);
+
+       /* Merge use entries until we have merged all we can */
+       while (merge_use(flags) != 0)
+               ;
+
+       if (Sflag) {
+               print_dump(argc - optind, argv + optind);
+               return error_exit;
+       }
+
+       if (cflag)
+               return error_exit;
+       
+       /* Save the terms */
+       nterm = nalias = 0;
+       for (term = terms; term != NULL; term = term->next) {
+               save_term(db, term);
+               if (term->type == 'a')
+                       nalias++;
+               else
+                       nterm++;
+       }
+       
+       /* done! */
+       dbm_close(db);
+
+       /* Rename the tmp db to the real one now */
+       len = strlen(ofile) + 4;
+       p = malloc(len);
+       if (p == NULL)
+               err(1, "malloc");
+       snprintf(p, len, "%s.db", ofile);
+       if (rename(dbname, p) == -1)
+               err(1, "rename");
+       free(dbname);
+       dbname = NULL;
+
+       if (sflag != 0)
+               fprintf(stderr, "%zu entries and %zu aliases written to %s\n",
+                   nterm, nalias, p);
+
+       return EXIT_SUCCESS;
+}