diff --git a/misc/Makefile b/misc/Makefile
deleted file mode 100644
index 960575c..0000000
--- a/misc/Makefile
+++ /dev/null
@@ -1,169 +0,0 @@
-# $Id: Makefile.in,v 1.63 2015/08/05 23:15:41 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2014,2015 Free Software Foundation, Inc.                #
-#                                                                            #
-# Permission is hereby granted, free of charge, to any person obtaining a    #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation  #
-# the rights to use, copy, modify, merge, publish, distribute, distribute    #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the  #
-# following conditions:                                                      #
-#                                                                            #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software.                        #
-#                                                                            #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
-# DEALINGS IN THE SOFTWARE.                                                  #
-#                                                                            #
-# Except as contained in this notice, the name(s) of the above copyright     #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written               #
-# authorization.                                                             #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1996-on
-#
-# Makefile for ncurses miscellany directory
-#
-# This makes/installs the terminfo database
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES :
-
-SHELL		= /bin/sh
-
-THIS		= Makefile
-
-CF_MFLAGS 	= 
-
-
-DESTDIR		= 
-top_srcdir	= ..
-srcdir		= .
-prefix		= /system
-exec_prefix	= ${prefix}
-bindir		= ${exec_prefix}/bin
-libdir		= ${exec_prefix}/lib
-datarootdir	= ${prefix}/share
-datadir		= ${datarootdir}
-includesubdir	= /ncurses
-
-INCLUDEDIR	= $(DESTDIR)$(includedir)$(includesubdir)
-
-tabsetdir	= $(datadir)/tabset
-ticdir		= /system/etc/terminfo
-ticfile		= $(ticdir).db
-source		= ${top_srcdir}/misc/terminfo.src
-
-INSTALL		= /usr/bin/install -c
-INSTALL_PROGRAM	= ${INSTALL}
-INSTALL_SCRIPT	= ${INSTALL}
-INSTALL_DATA	= ${INSTALL} -m 644
-
-PKG_CONFIG_LIBDIR = /usr/lib/x86_64-linux-gnu/pkgconfig
-
-################################################################################
-all :	terminfo.tmp
-
-depend :
-
-sources :: terminfo.tmp 
-
-install : install.data install.libs
-
-install.data :	terminfo.tmp \
-		$(DESTDIR)$(libdir) \
-		$(DESTDIR)$(datadir) \
-		$(DESTDIR)$(tabsetdir)
-	DESTDIR=${DESTDIR} \
-	prefix=${prefix} \
-	exec_prefix=${exec_prefix} \
-	bindir=${bindir} \
-	top_srcdir=${top_srcdir} \
-	srcdir=${srcdir} \
-	datadir=${datadir} \
-	ticdir=${ticdir} \
-	source=terminfo.tmp \
-	cross_compiling=yes \
-	$(SHELL) ./run_tic.sh
-	@cd $(srcdir)/tabset && \
-		$(SHELL) -c 'for i in * ; do \
-			if test -f $$i ; then \
-			echo installing $$i; \
-			$(INSTALL_DATA) $$i $(DESTDIR)$(tabsetdir)/$$i; \
-			fi; done'
-
-NCURSES_CONFIG	= ncurses6-config
-
-install.libs :: $(DESTDIR)$(bindir) ncurses-config
-	$(INSTALL_SCRIPT) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
-
-#install.libs :: pc-files $(DESTDIR)$(PKG_CONFIG_LIBDIR)
-#	$(SHELL) -c 'for name in *.pc; do $(INSTALL_DATA) $$name $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
-
-#sources :: pc-files
-#pc-files :
-#	$(SHELL) ./gen-pkgconfig
-#	touch $@
-
-terminfo.tmp : run_tic.sed $(source)
-	echo '** adjusting tabset paths'
-	sed -f run_tic.sed $(source) >terminfo.tmp
-
-run_tic.sed :
-	WHICH_XTERM=xterm-new \
-	XTERM_KBS=BS \
-	datadir=${datadir} \
-	$(SHELL) $(srcdir)/gen_edit.sh >$@
-
-$(DESTDIR)$(bindir) \
-$(DESTDIR)$(libdir) \
-$(DESTDIR)$(datadir) \
-$(DESTDIR)$(tabsetdir) \
-$(DESTDIR)$(PKG_CONFIG_LIBDIR) :
-	mkdir -p $@
-
-uninstall : uninstall.data uninstall.libs
-
-uninstall.data :
-	-test -d $(DESTDIR)$(tabsetdir) && rm -rf $(DESTDIR)$(tabsetdir)
-	-test -d $(DESTDIR)$(ticdir) && rm -rf $(DESTDIR)$(ticdir)
-	-test -f $(DESTDIR)$(ticfile) && rm -f $(DESTDIR)$(ticfile)
-
-uninstall.libs :
-	-rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
-#	$(SHELL) -c 'for name in *.pc; do rm -f $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
-
-tags :
-
-#TAGS :
-
-mostlyclean :
-	-rm -f terminfo.tmp
-	-rm -f run_tic.sed
-#	-rm -f *.pc pc-files
-	-rm -f core tags TAGS *~ *.bak *.ln *.atac trace
-
-clean :: mostlyclean
-
-distclean : clean
-#	-rm -f gen-pkgconfig
-	-rm -f Makefile run_tic.sh ncurses-config
-
-realclean : distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/misc/Makefile.in b/misc/Makefile.in
index a62eb33..1539973 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -1,6 +1,7 @@
-# $Id: Makefile.in,v 1.63 2015/08/05 23:15:41 tom Exp $
+# $Id: Makefile.in,v 1.79 2021/11/06 23:36:12 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2014,2015 Free Software Foundation, Inc.                #
+# Copyright 2018-2020,2021 Thomas E. Dickey                                  #
+# Copyright 1998-2016,2017 Free Software Foundation, Inc.                    #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -75,48 +76,96 @@
 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 
 ################################################################################
-all :	terminfo.tmp
 
-depend :
+@MAKE_PHONY@.PHONY :	all
+@MAKE_PHONY@.PHONY :	check
+@MAKE_PHONY@.PHONY :	clean
+@MAKE_PHONY@.PHONY :	depend
+@MAKE_PHONY@.PHONY :	distclean
+@MAKE_PHONY@.PHONY :	install
+@MAKE_PHONY@.PHONY :	install.data
+@MAKE_PHONY@.PHONY :	install.libs
+@MAKE_PHONY@.PHONY :	libs
+@MAKE_PHONY@.PHONY :	mostlyclean
+@MAKE_PHONY@.PHONY :	realclean
+@MAKE_PHONY@.PHONY :	sources
+@MAKE_PHONY@.PHONY :	uninstall
+@MAKE_PHONY@.PHONY :	uninstall.data
+@MAKE_PHONY@.PHONY :	uninstall.libs
 
-sources :: terminfo.tmp 
+all \
+depend \
+sources ::
 
-install : @MISC_INSTALL_DATA@ install.libs
+@MAKE_DATABASE@all \
+@MAKE_DATABASE@sources :: terminfo.tmp
 
-install.data :	terminfo.tmp \
-		$(DESTDIR)$(libdir) \
-		$(DESTDIR)$(datadir) \
-		$(DESTDIR)$(tabsetdir)
-	DESTDIR=${DESTDIR} \
-	prefix=${prefix} \
-	exec_prefix=${exec_prefix} \
-	bindir=${bindir} \
-	top_srcdir=${top_srcdir} \
-	srcdir=${srcdir} \
-	datadir=${datadir} \
-	ticdir=${ticdir} \
-	source=terminfo.tmp \
-	cross_compiling=@cross_compiling@ \
-	$(SHELL) ./run_tic.sh
-	@cd $(srcdir)/tabset && \
-		$(SHELL) -c 'for i in * ; do \
-			if test -f $$i ; then \
-			echo installing $$i; \
-			$(INSTALL_DATA) $$i $(DESTDIR)$(tabsetdir)/$$i; \
-			fi; done'
+@MAKE_DATABASE@install :: @MISC_INSTALL_DATA@
 
-NCURSES_CONFIG	= ncurses@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config
+@MAKE_DATABASE@install.data ::	terminfo.tmp \
+@MAKE_DATABASE@		$(DESTDIR)$(libdir) \
+@MAKE_DATABASE@		$(DESTDIR)$(datadir) \
+@MAKE_DATABASE@		$(DESTDIR)$(tabsetdir)
+@MAKE_DATABASE@	DESTDIR=${DESTDIR} \
+@MAKE_DATABASE@	prefix=${prefix} \
+@MAKE_DATABASE@	exec_prefix=${exec_prefix} \
+@MAKE_DATABASE@	bindir=${bindir} \
+@MAKE_DATABASE@	top_srcdir=${top_srcdir} \
+@MAKE_DATABASE@	srcdir=${srcdir} \
+@MAKE_DATABASE@	datadir=${datadir} \
+@MAKE_DATABASE@	ticdir=${ticdir} \
+@MAKE_DATABASE@	source=terminfo.tmp \
+@MAKE_DATABASE@	cross_compiling=@cross_compiling@ \
+@MAKE_DATABASE@	$(SHELL) ./run_tic.sh
+@MAKE_DATABASE@	@( cd $(srcdir)/tabset && \
+@MAKE_DATABASE@		$(SHELL) -c 'for i in * ; do \
+@MAKE_DATABASE@			if test -f $$i ; then \
+@MAKE_DATABASE@			echo installing $$i; \
+@MAKE_DATABASE@			$(INSTALL_DATA) $$i $(DESTDIR)$(tabsetdir)/$$i; \
+@MAKE_DATABASE@			fi; done' )
+install.data ::
+	@echo "finished $@"
 
+NCURSES_CONFIG	= ncurses@DFT_ARG_SUFFIX@@cf_cv_abi_version@@cf_config_suffix@-config
+
+install \
 install.libs :: $(DESTDIR)$(bindir) ncurses-config
 	$(INSTALL_SCRIPT) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
 
-@MAKE_PC_FILES@install.libs :: pc-files $(DESTDIR)$(PKG_CONFIG_LIBDIR)
-@MAKE_PC_FILES@	$(SHELL) -c 'for name in *.pc; do $(INSTALL_DATA) $$name $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
+# Make a list of the files that gen-pkgconfig might create:
+@MAKE_PC_FILES@PC_FILES = \
+@MAKE_PC_FILES@	@LIB_NAME@@USE_ARG_SUFFIX@@PC_MODULE_SUFFIX@.pc \
+@MAKE_PC_FILES@	@TINFO_ARG_SUFFIX@@PC_MODULE_SUFFIX@.pc \
+@MAKE_PC_FILES@	@TICS_NAME@@USE_ARG_SUFFIX@@PC_MODULE_SUFFIX@.pc \
+@MAKE_PC_FILES@	@PANEL_NAME@@USE_ARG_SUFFIX@@PC_MODULE_SUFFIX@.pc \
+@MAKE_PC_FILES@	@MENU_NAME@@USE_ARG_SUFFIX@@PC_MODULE_SUFFIX@.pc \
+@MAKE_PC_FILES@	@FORM_NAME@@USE_ARG_SUFFIX@@PC_MODULE_SUFFIX@.pc \
+@MAKE_PC_FILES@	@CXX_NAME@@USE_ARG_SUFFIX@@PC_MODULE_SUFFIX@.pc
 
+# some packagers prefer to be able to construct pc-files on servers where
+# pkg-config is not installed.  Work around that by creating the library
+# directory during this rule:
+@MAKE_PC_FILES@install \
+@MAKE_PC_FILES@install.libs :: pc-files
+@MAKE_PC_FILES@	@$(SHELL) -c 'case "x$(PKG_CONFIG_LIBDIR)" in \
+@MAKE_PC_FILES@		x/*) \
+@MAKE_PC_FILES@			mkdir -p $(DESTDIR)$(PKG_CONFIG_LIBDIR); \
+@MAKE_PC_FILES@			for name in $(PC_FILES); do \
+@MAKE_PC_FILES@				test -f $$name || continue; \
+@MAKE_PC_FILES@				echo installing $$name; \
+@MAKE_PC_FILES@				$(INSTALL_DATA) $$name $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; \
+@MAKE_PC_FILES@			done \
+@MAKE_PC_FILES@			;; \
+@MAKE_PC_FILES@		*) \
+@MAKE_PC_FILES@			echo "...skip actual install: no destination was given" ; \
+@MAKE_PC_FILES@			;; \
+@MAKE_PC_FILES@		esac'
+
+@MAKE_PC_FILES@all \
 @MAKE_PC_FILES@sources :: pc-files
 @MAKE_PC_FILES@pc-files :
 @MAKE_PC_FILES@	$(SHELL) ./gen-pkgconfig
-@MAKE_PC_FILES@	touch $@
+@MAKE_PC_FILES@	-touch $@
 
 terminfo.tmp : run_tic.sed $(source)
 	echo '** adjusting tabset paths'
@@ -131,8 +180,7 @@
 $(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) \
 $(DESTDIR)$(datadir) \
-$(DESTDIR)$(tabsetdir) \
-$(DESTDIR)$(PKG_CONFIG_LIBDIR) :
+$(DESTDIR)$(tabsetdir) :
 	mkdir -p $@
 
 uninstall : @MISC_UNINSTALL_DATA@ uninstall.libs
@@ -144,16 +192,24 @@
 
 uninstall.libs :
 	-rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
-@MAKE_PC_FILES@	$(SHELL) -c 'for name in *.pc; do rm -f $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
+@MAKE_PC_FILES@	@$(SHELL) -c 'case x$(DESTDIR)$(PKG_CONFIG_LIBDIR) in \
+@MAKE_PC_FILES@	x/*) \
+@MAKE_PC_FILES@		for name in $(PC_FILES); do \
+@MAKE_PC_FILES@			test -f $$name || continue; \
+@MAKE_PC_FILES@			echo uninstalling $$name; \
+@MAKE_PC_FILES@			rm -f $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; \
+@MAKE_PC_FILES@		done \
+@MAKE_PC_FILES@		;; \
+@MAKE_PC_FILES@	esac'
 
 tags :
 
 @MAKE_UPPER_TAGS@TAGS :
 
 mostlyclean :
-	-rm -f terminfo.tmp
-	-rm -f run_tic.sed
-@MAKE_PC_FILES@	-rm -f *.pc pc-files
+@MAKE_DATABASE@	-rm -f terminfo.tmp
+@MAKE_DATABASE@	-rm -f run_tic.sed
+@MAKE_PC_FILES@	-rm -f pc-files $(PC_FILES)
 	-rm -f core tags TAGS *~ *.bak *.ln *.atac trace
 
 clean :: mostlyclean
diff --git a/misc/chkdef.cmd b/misc/chkdef.cmd
index fa91dce..a80230d 100644
--- a/misc/chkdef.cmd
+++ b/misc/chkdef.cmd
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+ * Copyright 2020 Thomas E. Dickey                                          *
+ * Copyright 1998,2006 Free Software Foundation, Inc.                       *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +28,7 @@
  ****************************************************************************/
 
 /*
- * $Id: chkdef.cmd,v 1.3 2006/04/22 23:14:50 tom Exp $
+ * $Id: chkdef.cmd,v 1.4 2020/02/02 23:34:34 tom Exp $
  *
  * Author:  Juan Jose Garcia Ripoll <worm@arrakis.es>.
  * Webpage: http://www.arrakis.es/~worm/
diff --git a/misc/cleantic.cmd b/misc/cleantic.cmd
index 6859de3..b09ba57 100644
--- a/misc/cleantic.cmd
+++ b/misc/cleantic.cmd
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+ * Copyright 2020 Thomas E. Dickey                                          *
+ * Copyright 1998,2006 Free Software Foundation, Inc.                       *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +28,7 @@
  ****************************************************************************/
 
 /*
- * $Id: cleantic.cmd,v 1.4 2006/04/22 23:14:50 tom Exp $
+ * $Id: cleantic.cmd,v 1.5 2020/02/02 23:34:34 tom Exp $
  *
  * Author:  Juan Jose Garcia Ripoll <worm@arrakis.es>.
  * Webpage: http://www.arrakis.es/~worm/
diff --git a/misc/cmpdef.cmd b/misc/cmpdef.cmd
index 5bb8f6c..cd22f2d 100644
--- a/misc/cmpdef.cmd
+++ b/misc/cmpdef.cmd
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+ * Copyright 2020 Thomas E. Dickey                                          *
+ * Copyright 1998,2006 Free Software Foundation, Inc.                       *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +28,7 @@
  ****************************************************************************/
 
 /*
- * $Id: cmpdef.cmd,v 1.3 2006/04/22 23:14:50 tom Exp $
+ * $Id: cmpdef.cmd,v 1.4 2020/02/02 23:34:34 tom Exp $
  *
  * Author:  Juan Jose Garcia Ripoll <worm@arrakis.es>.
  * Webpage: http://www.arrakis.es/~worm/
diff --git a/misc/csort b/misc/csort
index 42faaf3..c39c295 100755
--- a/misc/csort
+++ b/misc/csort
@@ -1,7 +1,8 @@
 #!/bin/sh
-# $Id: csort,v 1.2 2002/10/19 21:42:09 tom Exp $
+# $Id: csort,v 1.4 2021/09/04 15:55:29 tom Exp $
 ##############################################################################
-# Copyright (c) 2002 Free Software Foundation, Inc.                          #
+# Copyright 2020,2021 Thomas E. Dickey                                       #
+# Copyright 2002 Free Software Foundation, Inc.                              #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -33,4 +34,4 @@
 LANGUAGE=C;	export LANGUAGE
 LC_ALL=C;	export LC_ALL
 LC_CTYPE=C;	export LC_CTYPE
-sort $*
+sort "$@"
diff --git a/misc/emx.src b/misc/emx.src
index 4720066..901c7b5 100644
--- a/misc/emx.src
+++ b/misc/emx.src
@@ -1,5 +1,6 @@
 ##############################################################################
-# Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.                #
+# Copyright 2020 Thomas E. Dickey                                            #
+# Copyright 1998-2003,2006 Free Software Foundation, Inc.                    #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -25,7 +26,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: emx.src,v 1.9 2006/04/22 21:46:17 tom Exp $
+# $Id: emx.src,v 1.12 2020/02/02 23:34:34 tom Exp $
 # This is a reformatted copy of the terminfo source for OS/2 EMX from
 # Juan Jose Garcia Ripoll <worm@arrakis.es>.
 # http://www.arrakis.es/~worm/
@@ -183,7 +184,7 @@
 #
 # This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
 # documentation (except for the keyboard key reassignment feature, which
-# doen't fit the <pfkey> model well).  The klone+acs sequences were valid
+# 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
@@ -330,7 +331,7 @@
 #	mb	<->	blink	turn on blinking
 #	md	<->	bold	turn on extra bright (bold) mode
 #	mr	<->	rev	turn on reverse video mode
-#	me	<->	sgr0	turn off all atributes
+#	me	<->	sgr0	turn off all attributes
 #
 # On my terminal, \E[4m looks dim.
 ansi-emx|ANSI.SYS color,
diff --git a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in
index 62d09ff..89a5cd4 100644
--- a/misc/gen-pkgconfig.in
+++ b/misc/gen-pkgconfig.in
@@ -1,7 +1,8 @@
 #!@SHELL@
-# $Id: gen-pkgconfig.in,v 1.29 2015/07/04 20:37:01 tom Exp $
+# $Id: gen-pkgconfig.in,v 1.56 2022/10/08 16:45:20 tom Exp $
 ##############################################################################
-# Copyright (c) 2009-2014,2015 Free Software Foundation, Inc.                #
+# Copyright 2018-2021,2022 Thomas E. Dickey                                  #
+# Copyright 2009-2015,2018 Free Software Foundation, Inc.                    #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -43,6 +44,7 @@
 MENU_NAME=@MENU_NAME@
 FORM_NAME=@FORM_NAME@
 CXX_NAME=@CXX_NAME@
+
 DFT_DEP_SUFFIX=@DFT_DEP_SUFFIX@
 TINFO_ARG_SUFFIX=@TINFO_ARG_SUFFIX@
 CXX_LIB_SUFFIX=@CXX_LIB_SUFFIX@
@@ -53,6 +55,9 @@
 includedir="@includedir@@includesubdir@"
 libdir="@libdir@"
 
+RPATH_LIST=@RPATH_LIST@
+PRIVATE_LIBS="@PRIVATE_LIBS@"
+
 show_prefix='@prefix@'
 show_exec_prefix='@exec_prefix@'
 show_includedir='@includedir@@includesubdir@'
@@ -60,62 +65,141 @@
 
 MAIN_LIBRARY="${LIB_NAME}@USE_ARG_SUFFIX@"
 SUB_LIBRARY="${TINFO_ARG_SUFFIX}"
-PANEL_LIBRARY="${PANEL_NAME}@USE_ARG_SUFFIX@"
-MENU_LIBRARY="${MENU_NAME}@USE_ARG_SUFFIX@"
+
+CXX_LIBRARY="${CXX_NAME}@USE_ARG_SUFFIX@"
 FORM_LIBRARY="${FORM_NAME}@USE_ARG_SUFFIX@"
+MENU_LIBRARY="${MENU_NAME}@USE_ARG_SUFFIX@"
+PANEL_LIBRARY="${PANEL_NAME}@USE_ARG_SUFFIX@"
 
 CFLAGS="@PKG_CFLAGS@"
-if test "$includedir" != "/usr/include" ; then
+if [ "$includedir" != "/usr/include" ]; then
 	includetop=`echo "$includedir" | sed -e 's,/include/[^/]*$,/include,'`
-	test "$includetop" = "/usr/include" && includetop="$includedir"
-	if test "x$includetop" != "x$includedir"
+	[ "$includetop" = "/usr/include" ] && includetop="$includedir"
+	CFLAGS="$CFLAGS -I\${includedir}"
+	if [ "x$includetop" != "x$includedir" ]
 	then
 		CFLAGS="$CFLAGS -I${includetop}"
 	fi
-	CFLAGS="$CFLAGS -I\${includedir}"
 fi
 
-LDFLAGS=
-if test "$libdir" != "/usr/lib" ; then
-	LDFLAGS="$LDFLAGS -L\${libdir}"
-fi
-if test "x@EXTRA_LDFLAGS@" != "x" ; then
-	LDFLAGS="$LDFLAGS @EXTRA_LDFLAGS@"
-fi
+lib_flags=
+for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ @LIBS@
+do
+	case $opt in
+	-l*) # LIBS is handled specially below
+		continue
+		;;
+	-specs*) # ignore linker specs-files which were used to build library
+		continue
+		;;
+	-Wl,-z,*) # ignore flags used to manipulate shared image
+		continue
+		;;
+	-Wl,--dynamic-linker*) # ignore ELF interpreter
+		continue
+		;;
+	-Wl,--as-needed|-Wl,--build-id=*|-Wl,-dT,*|-Wl,-T,*)
+		continue
+		;;
+	-L*)
+		lib_check=`echo "x$opt" | sed -e 's/^.-L//'`
+		# on a new/nonstandard install, $libdir may not yet exist at this point
+		if [ "$libdir" != "$lib_check" ]
+		then
+			[ -d "$lib_check" ] || continue
+		fi
+		case "$lib_check" in
+		@LD_SEARCHPATH@) # skip standard libdir
+			if [ "$lib_check" = "$libdir" ]
+			then
+				lib_first=yes
+				IFS_save="$IFS"
+				IFS='|'
+				LIBDIRS="@LD_SEARCHPATH@"
+				for lib_check in $LIBDIRS
+				do
+					if [ -d "$lib_check" ]
+					then
+						if [ "$lib_check" != "$libdir" ]
+						then
+							lib_first=no
+						fi
+						break
+					fi
+				done
+				IFS="$IFS_save"
+				[ $lib_first = yes ] && continue
+				found=no
+				for check in $lib_flags
+				do
+					if [ "x$check" = "x$opt" ]
+					then
+						found=yes
+						break
+					fi
+				done
+				[ $found = yes ] && continue
+				:
+			else
+				continue
+			fi
+			;;
+		*)
+			found=no
+			for check in $lib_flags
+			do
+				if [ "x$check" = "x$opt" ]
+				then
+					found=yes
+					break
+				fi
+			done
+			[ $found = yes ] && continue
+			;;
+		esac
+		;;
+	esac
+	lib_flags="$lib_flags $opt"
+done
 
 # Check if we should specify the tinfo library explicitly so that terminfo
 # functions or curses variables (which also reside in tinfo) can be linked
 # using the -lncurses option.
 NEED_TINFO=no
-if test "x@TINFO_LIBS@" != "x" && \
-   test "x$TINFO_ARG_SUFFIX" != "x$MAIN_LIBRARY"
+if [ "x@TINFO_LIBS@" != "x" ] && \
+   [ "x$TINFO_ARG_SUFFIX" != "x$MAIN_LIBRARY" ]
 then
-	case "x$LDFLAGS" in
-	(*--as-needed*)
-		NEED_TINFO=yes
-		;;
-	esac
-	case "x$LDFLAGS" in
-	(*,-rpath,*)
-		;;
-	(*)
-		NEED_TINFO=yes
-		;;
-	esac
+	NEED_TINFO=yes
 fi
 
+# The "URL" feature came in pkg-config 0.17
+USEURL=""
+CFGVER=`${PKG_CONFIG:-pkg-config} --version 2>/dev/null |head -n 1 | awk -F. '/0.[0-9][0-9]/{print $2;}'`
+# A missing version should simply fail, but some packagers insist on building
+# packages on machines which do not actually have the tools they depend on at
+# runtime.
+[ -z "$CFGVER" ] && CFGVER=30
+[ $CFGVER -ge 17 ] || USEURL="#"
+
 for name in @PC_MODULES_TO_MAKE@
 do
 	name="${name}"
+	case $name in
+	form*)		name="$FORM_LIBRARY" 	;;
+	menu*)		name="$MENU_LIBRARY" 	;;
+	panel*)		name="$PANEL_LIBRARY"	;;
+	ncurses++*)	name="$CXX_LIBRARY"		;;
+	esac
 	LIBS="-l$name"
 
 	desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@"
 	reqs=
 
-	if test $name = $MAIN_LIBRARY ; then
+	if [ $name = $MAIN_LIBRARY ]; then
 		desc="$desc library"
-		test $NEED_TINFO = yes && LIBS="$LIBS -l$TINFO_ARG_SUFFIX"
-	elif test $name = $SUB_LIBRARY ; then
+		[ $NEED_TINFO = yes ] && LIBS="$LIBS -l$TINFO_ARG_SUFFIX"
+		[ -n "@LIBS@" ] && LIBS="$LIBS @LIBS@"
+	elif [ $name = $SUB_LIBRARY ]; then
 		desc="$desc terminal interface library"
 	elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then
 		reqs="$PANEL_LIBRARY${suffix}, $MENU_LIBRARY${suffix}, $FORM_LIBRARY${suffix}, $MAIN_LIBRARY${suffix}"
@@ -125,17 +209,24 @@
 		desc="$desc add-on library"
 	fi
 
-	if test $name != $SUB_LIBRARY && \
-	   test $SUB_LIBRARY != $MAIN_LIBRARY && \
-	   test $name != $TINFO_NAME && \
-	   test $NEED_TINFO != yes ; then
-		test -n "$reqs" && reqs="$reqs, "
+	if [ $name != $SUB_LIBRARY ] && \
+	   [ $SUB_LIBRARY != $MAIN_LIBRARY ] && \
+	   [ $name != $TINFO_NAME ] && \
+	   [ $NEED_TINFO != yes ] ; then
+		[ -n "$reqs" ] && reqs="$reqs, "
 		reqs="${reqs}${SUB_LIBRARY}${suffix}"
 	fi
 
+	if [ $name = $MAIN_LIBRARY ]
+	then
+		main_libs="$PRIVATE_LIBS"
+	else
+		main_libs=
+	fi
+
 	echo "** creating ${name}${suffix}.pc"
 	cat >${name}${suffix}.pc <<EOF
-# pkg-config file generated by `basename $0`
+# pkg-config file generated by `basename "$0"`
 # vile:makemode
 
 prefix=$show_prefix
@@ -149,12 +240,12 @@
 Name: ${name}${suffix}
 Description: $desc
 Version: \${version}
-URL: http://invisible-island.net/ncurses
+${USEURL}URL: https://invisible-island.net/ncurses
 Requires.private: $reqs
-Libs: $LDFLAGS $LIBS
-Libs.private: @LIBS@
+Libs: $lib_flags $LIBS
+Libs.private: @LIBS@ $main_libs
 Cflags: $CFLAGS
 EOF
 
 done
-# vile:shmode
+# vile:shmode ts=4 sw=4
diff --git a/misc/gen_edit.sh b/misc/gen_edit.sh
index 3460afc..0c41611 100755
--- a/misc/gen_edit.sh
+++ b/misc/gen_edit.sh
@@ -1,6 +1,7 @@
 #!/bin/sh
 ##############################################################################
-# Copyright (c) 2004-2011,2012 Free Software Foundation, Inc.                #
+# Copyright 2020,2021 Thomas E. Dickey                                       #
+# Copyright 2004-2011,2012 Free Software Foundation, Inc.                    #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -29,7 +30,7 @@
 #
 # Author: Thomas E. Dickey
 #
-# $Id: gen_edit.sh,v 1.5 2012/04/01 15:04:37 tom Exp $
+# $Id: gen_edit.sh,v 1.7 2021/09/04 15:55:29 tom Exp $
 # Generate a sed-script for converting the terminfo.src to the form which will
 # be installed.
 #
@@ -39,10 +40,10 @@
 
 linux_dft=linux2.2
 
-: ${datadir=/usr/share}
-: ${WHICH_LINUX=$linux_dft}
-: ${WHICH_XTERM=xterm-new}
-: ${XTERM_KBS=BS}
+: "${datadir=/usr/share}"
+: "${WHICH_LINUX=$linux_dft}"
+: "${WHICH_XTERM=xterm-new}"
+: "${XTERM_KBS=BS}"
 
 # If we're not installing into /usr/share/, we'll have to adjust the location
 # of the tabset files in terminfo.src (which are in a parallel directory).
diff --git a/misc/magic b/misc/magic
index 7e20f43..ee1a1c4 100644
--- a/misc/magic
+++ b/misc/magic
@@ -1,6 +1,7 @@
-# $Id: magic,v 1.1 2015/05/02 18:49:38 tom Exp $
+# $Id: magic,v 1.5 2023/09/23 23:37:26 tom Exp $
 ##############################################################################
-# Copyright (c) 2015 Free Software Foundation, Inc.                          #
+# Copyright 2020,2023 Thomas E. Dickey                                       #
+# Copyright 2015,2018 Free Software Foundation, Inc.                         #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -26,7 +27,65 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# for reference, from file 5.22:
-0	string		\032\001	Compiled terminfo entry
-# ncurses-specific
-0       string          \210\210        Screen-dump (ncurses)
+# for reference, from file 5.30:
+#------------------------------------------------------------------------------
+# @File: terminfo,v 1.7 2016/03/17 21:02:29 christos Exp @
+# terminfo:  file(1) magic for terminfo
+#
+# URL: https://invisible-island.net/ncurses/man/term.5.html
+# URL: https://invisible-island.net/ncurses/man/scr_dump.5.html
+#
+# Workaround for Targa image type by Joerg Jenderek
+# GRR: line below too general as it catches also
+# Targa image type 1 with 26 long identification field
+# and HELP.DSK
+0	string		\032\001
+# 5th character of terminal name list, but not Targa image pixel size (15 16 24 32)
+>16	ubyte		>32
+# namelist, if more than 1 separated by "|" like "st|stterm| simpleterm 0.4.1"
+>>12	regex		\^[a-zA-Z0-9][a-zA-Z0-9.][^|]*	Compiled terminfo entry "%-s"
+!:mime	application/x-terminfo
+# no extension
+#!:ext
+#
+#------------------------------------------------------------------------------
+# The following was added for ncurses6 development:
+#------------------------------------------------------------------------------
+#
+0	string		\036\002
+# imitate the legacy compiled-format, to get the entry-name printed
+>16	ubyte		>32
+# namelist, if more than 1 separated by "|" like "st|stterm| simpleterm 0.4.1"
+>>12	regex		\^[a-zA-Z0-9][a-zA-Z0-9.][^|]*	Compiled 32-bit terminfo entry "%-s"
+!:mime	application/x-terminfo2
+#
+# While the compiled terminfo uses little-endian format irregardless of
+# platform, System V screen dumps do not.  They came later, and that detail was
+# overlooked.
+#
+# AIX and HPUX use the SVr4 big-endian format
+# Solaris uses the SVr3 formats (sparc and x86 differ endian-ness)
+0	beshort		0433 		SVr2 curses screen image, big-endian
+0	beshort		0434		SVr3 curses screen image, big-endian
+0	beshort		0435		SVr4 curses screen image, big-endian
+#
+0	leshort		0433		SVr2 curses screen image, little-endian
+0	leshort		0434		SVr3 curses screen image, little-endian
+0	leshort		0435		SVr4 curses screen image, little-endian
+#
+# Rather than SVr4, Solaris "xcurses" writes this header:
+0	regex		\^MAX=[0-9]+,[0-9]+$
+>1	regex		\^BEG=[0-9]+,[0-9]+$
+>2	regex		\^SCROLL=[0-9]+,[0-9]+$
+>3	regex		\^VMIN=[0-9]+$
+>4	regex		\^VTIME=[0-9]+$
+>5	regex		\^FLAGS=0x[[:xdigit:]]+$
+>6	regex		\^FG=[0-9],[0-9]+$
+>7	regex		\^BG=[0-9]+,[0-9]+,	Solaris xcurses screen image
+#
+# ncurses5 (and before) did not use a magic number, making screen dumps "data".
+# ncurses6 (2015) uses this format, ignoring byte-order
+0	string	\210\210\210\210ncurses	ncurses6 screen image
+#
+# PDCurses added this in 2005
+0	string		PDC\001		PDCurses screen image
diff --git a/misc/makedef.cmd b/misc/makedef.cmd
index 68a3569..129ca83 100644
--- a/misc/makedef.cmd
+++ b/misc/makedef.cmd
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+ * Copyright 2020,2021 Thomas E. Dickey                                     *
+ * Copyright 1998,2006 Free Software Foundation, Inc.                       *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +28,7 @@
  ****************************************************************************/
 
 /*
- * $Id: makedef.cmd,v 1.5 2006/04/22 23:14:50 tom Exp $
+ * $Id: makedef.cmd,v 1.7 2021/09/04 10:52:55 tom Exp $
  *
  * Author:  Juan Jose Garcia Ripoll <worm@arrakis.es>.
  * Webpage: http://www.arrakis.es/~worm/
@@ -118,12 +119,12 @@
     *		it has a valid code that we store
     *		we mark that code as used
     *   ELIF (it has no number) THEN
-    *		(it's a new symbol)
+    *		(it is a new symbol)
     *		we increase the counter of defined symbols
     *		we assign it the special number 0
     *		(later on it'll be assigned an unused export code)
     *   ELSE
-    *		this symbol was in the old DLL and it's no longer
+    *		this symbol was in the old DLL and it is no longer
     *		here, so we skip it.
     */
    select
diff --git a/misc/makellib b/misc/makellib
index 0460407..fb3d3b7 100755
--- a/misc/makellib
+++ b/misc/makellib
@@ -1,6 +1,7 @@
 #!/bin/sh
 ##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc.                     #
+# Copyright 2020,2021 Thomas E. Dickey                                       #
+# Copyright 1998,2000 Free Software Foundation, Inc.                         #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -29,7 +30,7 @@
 #
 # Author: Thomas E. Dickey 1996,1997,2000
 #
-# $Id: makellib,v 1.8 2000/10/28 21:37:10 tom Exp $
+# $Id: makellib,v 1.11 2021/09/04 15:49:38 tom Exp $
 # System-dependent wrapper for 'lint' that creates a lint-library via the
 # following method (XXX is the name of the library):
 #	a.  If the file llib-lXXX doesn't exist, create it using the make-rule
@@ -44,7 +45,7 @@
 #	a.  On a few systems, you'll have to manually-edit the llib-lXXX file
 #	    to get a usable lint-library (not all C-preprocessors work well).
 #	b.  The system's lint utility won't recognize -lXXX as a lint-library
-#	    (Use tdlint as a wrapper; it's designed for this).
+#	    (Use tdlint as a wrapper; it is designed for this).
 #
 # Parameters:
 #	$1 = library name
@@ -67,7 +68,7 @@
 do
 	case $1 in
 	-L*)
-		DST="$DST `echo $1|sed -e 's/^-L//'`"
+		DST="$DST `echo "$1"|sed -e 's/^-L//'`"
 		;;
 	-*)
 		OPT="$OPT $1"
@@ -93,8 +94,8 @@
 	llib="llib-l$LLIB"
 fi
 
-if test ! -f $llib ; then
-	if ( make $llib )
+if test ! -f "$llib" ; then
+	if ( make "$llib" )
 	then
 		:
 	else
@@ -102,39 +103,39 @@
 	fi
 fi
 
-rm -f $llib.ln $llib.c
+rm -f "$llib.ln" "$llib.c"
 TARGET=$LLIB
 
 case "$ARCH" in
 AIX)
 	CREATE="-uvxo$LLIB -Nn4000"
 	TARGET=$llib.c
-	ln $llib $TARGET
+	ln "$llib" "$TARGET"
 	;;
 Solaris)
 	CREATE="-C$llib"
 	TARGET=$llib.c
-	ln $llib $TARGET
+	ln "$llib" "$TARGET"
 	;;
 FreeBSD)
 	CREATE="-g -z -C$LLIB"
 	TARGET=$llib.c
-	ln $llib $TARGET
+	ln "$llib" "$TARGET"
 	;;
 CLIX)
 	CREATE="-DLINTLIBRARY -vxo$LLIB"
 	TARGET=$llib.c
-	ln $llib $TARGET
+	ln "$llib" "$TARGET"
 	;;
 IRIX*)
 	CREATE="-DLINTLIBRARY -vxyo$LLIB"
 	TARGET=$llib.c
-	ln $llib $TARGET
+	ln "$llib" "$TARGET"
 	;;
 UNIX_SV)
 	CREATE="-DLINTLIBRARY -vxyo$LLIB"
 	TARGET=$llib.c
-	ln $llib $TARGET
+	ln "$llib" "$TARGET"
 	;;
 *)
 	echo "Sorry.  I do not know how to build a lint-library for $ARCH"
@@ -144,24 +145,24 @@
 echo OPT    "$OPT"
 echo TARGET "$TARGET"
 echo LIBNAME "$llib"
-if ( lint $CREATE $OPT $TARGET )
+if ( lint "$CREATE" "$OPT" "$TARGET" )
 then
-	if test -f $llib.ln
+	if test -f "$llib.ln"
 	then
 		for p in $HOME/lib $HOME/lib/$ARCH $HOME/lib/$ARCH/lint
 		do
-			if test ! -d $p
+			if test ! -d "$p"
 			then
-				mkdir $p
+				mkdir "$p"
 			fi
 		done
 		for p in $DST
 		do
-			cp $llib.ln $p/
+			cp "$llib.ln" "$p/"
 		done
-		rm -f $llib.ln
+		rm -f "$llib.ln"
 	fi
 fi
 if test "x$TARGET" = "x$llib.c" ; then
-	rm -f $TARGET
+	rm -f "$TARGET"
 fi
diff --git a/misc/ncu2openbsd b/misc/ncu2openbsd
new file mode 100755
index 0000000..0c3365d
--- /dev/null
+++ b/misc/ncu2openbsd
@@ -0,0 +1,1288 @@
+#!/usr/bin/env perl
+# $Id: ncu2openbsd,v 1.67 2023/09/09 15:59:17 tom Exp $
+# -----------------------------------------------------------------------------
+# Copyright 2021,2023 by Thomas E. Dickey
+#
+#                         All Rights Reserved
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name(s) of the above copyright
+# holders shall not be used in advertising or otherwise to promote the
+# sale, use or other dealings in this Software without prior written
+# authorization.
+# -----------------------------------------------------------------------------
+# https://invisible-island.net/ncurses/ncurses-openbsd.html
+#
+# Update the OpenBSD source-tree given an ncurses tarball or build-tree.
+
+use strict;
+use warnings;
+
+use Getopt::Std;
+use Cwd;
+use Cwd 'abs_path';
+use File::Path qw/ remove_tree /;
+use File::Temp qw/ tempdir /;
+
+$| = 1;
+
+our ( $opt_d, $opt_n, $opt_r, $opt_t, $opt_v, $opt_x, $opt_6 );
+our $source_dir;
+our $target_dir;
+our $update_dir;
+our $backup_dir;
+
+our $tempdir = tempdir( CLEANUP => 1 );
+my $current = getcwd;
+my $working = $current;
+
+our $generated_by = "generated by: ncu2openbsd";
+
+our %setup_dir = qw(
+  lib/libcurses         ncurses
+  lib/libform           form
+  lib/libmenu           menu
+  lib/libpanel          panel
+  usr.bin/infocmp       progs
+  usr.bin/tabs          progs
+  usr.bin/tic           progs
+  usr.bin/toe           progs
+  usr.bin/tput          progs
+  usr.bin/tset          progs
+  share/termtypes       misc
+);
+
+our %generated = qw(
+  codes.c 1
+  comp_captab.c         1
+  comp_userdefs.c       1
+  expanded.c            1
+  fallback.c            1
+  init_keytry.h         1
+  keys.list             1
+  lib_gen.c             1
+  lib_keyname.c         1
+  make_hash             1
+  make_keys             1
+  names.c               1
+  termsort.c            1
+  unctrl.c              1
+);
+
+our %definitions = qw(
+  CAPTOINFO             captoinfo
+  DATADIR               /usr/share
+  INFOCMP               infocmp
+  INFOTOCAP             infotocap
+  NCURSES_MAJOR         5
+  NCURSES_MINOR         7
+  NCURSES_OSPEED        int
+  NCURSES_PATCH         20081102
+  TERMINFO              /usr/share/terminfo
+  TIC                   tic
+  TOE                   toe
+  TPUT                  tput
+  TSET                  tset
+);
+
+sub patchdate() {
+    return $definitions{"NCURSES_PATCH"};
+}
+
+sub failed($) {
+    chdir $current;
+    printf STDERR "? %s\n", $_[0];
+    exit;
+}
+
+sub verbose($) {
+    my $text = shift;
+    printf "%s\n", $text if ($opt_v);
+}
+
+sub read_file($) {
+    my $name = shift;
+    open( my $fp, $name ) || &failed("cannot open $name");
+    my (@input) = <$fp>;
+    chomp @input;
+    close($fp);
+    return @input;
+}
+
+sub read_dir($) {
+    my $path = shift;
+    my @result;
+    if ( opendir( my $dh, $path ) ) {
+        my @data = sort readdir($dh);
+        closedir $dh;
+        for my $d ( 0 .. $#data ) {
+            next if ( $data[$d] =~ /^\.(\.)?$/ );
+            next if ( -l $path . "/" . $data[$d] );
+            $result[ $#result + 1 ] = $data[$d];
+        }
+    }
+    return @result;
+}
+
+sub rename_dir($$) {
+    my $src = shift;
+    my $dst = shift;
+    printf "%% mv %s -> %s\n", $src, $dst if ($opt_v);
+    rename $src, $dst unless ($opt_n);
+}
+
+sub check_sourcedir($) {
+    my $path = shift;
+    &failed("not a directory: $path") unless ( -d $path );
+    my $full = abs_path($path);
+    chdir $full;
+    &failed("not an ncurses source-tree: $path")
+      unless ( -f "NEWS" and -f "dist.mk" );
+    $source_dir = $full;
+}
+
+sub unpack($) {
+    my $path    = shift;
+    my $full    = abs_path($path);
+    my $command = "";
+    if ( $path =~ /\.tgz$/ or $path =~ /\.tar\.gz$/ ) {
+        $command = "tar xzf %s";
+    }
+    elsif ( $path =~ /\.zip$/ ) {
+        $command = "unzip -q %s";
+    }
+    else {
+        &failed("not a gzip'd tarball or zip-file: $path");
+    }
+    chdir $tempdir;
+    system( sprintf( $command, $full ) );
+
+    # there should be exactly one subdirectory -- the source-tree
+    my @data = &read_dir(".");
+    &failed("found no subdirectories of $path") if ( $#data < 0 );
+    &failed( "too many subdirectories: " . $data[0] . " vs " . $data[1] )
+      if ( $#data > 0 );
+    &check_sourcedir( $data[0] );
+}
+
+sub remove_dir($) {
+    my $tree = shift;
+    if ( -d $tree ) {
+        printf "%% rm -rf %s\n", $tree if ($opt_v);
+        remove_tree( $tree, $opt_v ? 1 : 0, 1 ) unless ($opt_n);
+    }
+}
+
+sub copy_CVS($) {
+    my $leaf    = shift;
+    my $src     = $target_dir . $leaf . "/CVS";
+    my $dst     = $update_dir . $leaf . "/CVS";
+    my $verbose = $opt_v ? "v" : "";
+    if ( -d $src and !-d $dst ) {
+        my $mid = $update_dir . $leaf;
+        mkdir $mid unless ( -d $mid );
+        mkdir $dst unless ( -d $dst );
+        system("cp -a$verbose $src/* $dst/");
+    }
+}
+
+sub is_tic_code($) {
+    my $item   = shift;
+    my $result = 0;
+    $result = 1
+      if (
+        $item =~ /^(capconvert
+                   |tic
+                   |dump
+                   |progs
+                   |termsort
+                   |transform
+                   |MKtermsort)/x
+      );
+    return $result;
+}
+
+sub is_ident($$) {
+    my $name = shift;
+    my $text = shift;
+    my $code = 0;
+    $code = 1 if ( $text =~ /\$$name:.*\$/ );
+    return $code;
+}
+
+# We "could", filter out differences with ident's using the diff -I option,
+# but in practice, that is cumbersome.
+sub munge_ident($) {
+    my $target = shift;
+    my $source = $target;
+    $source =~ s/\.update\b//;
+    &failed("bug at $source") if ( $source eq $target );
+    return unless ( -f $source );
+    my @source = &read_file($source);
+    my @target = &read_file($target);
+    my $old_id = "";
+    my $gap_id = 0;
+    my $new_id = "";
+    my $skipit = -1;
+
+    for my $n ( 0 .. $#source ) {
+        if ( &is_ident( "OpenBSD", $source[$n] ) ) {
+            $old_id = $source[$n];
+            $skipit = $n + 1;
+        }
+        elsif ( &is_ident( "Id", $source[$n] ) ) {
+            $new_id = $source[$n];
+            last;
+        }
+        elsif ( $n == $skipit ) {
+            $source[$n] =~ s/\s+$//;
+            if ( $source[$n] eq "" ) {
+                $gap_id = $source[$n];
+            }
+            elsif ( $source[$n] eq '.\"' ) {
+                $gap_id = $source[$n];
+            }
+        }
+    }
+    if ( $old_id ne "" ) {
+        my @update;
+        my $tables = &uses_tables($target);
+        $update[ $#update + 1 ] = $target[0] if ($tables);
+        $update[ $#update + 1 ] = $old_id;
+        $update[ $#update + 1 ] = $gap_id unless ( $gap_id eq 0 );
+        for my $n ( $tables .. $#target ) {
+            if ( &is_ident( "Id", $target[$n] ) ) {
+                $update[ $#update + 1 ] = $new_id;
+            }
+            else {
+                $update[ $#update + 1 ] = $target[$n];
+            }
+        }
+        system("chmod u+w $target");
+        if ( open my $fp, ">", $target ) {
+            for my $n ( 0 .. $#update ) {
+                printf $fp "%s\n", $update[$n];
+            }
+            close $fp;
+            system("chmod u-w $target");
+        }
+    }
+}
+
+# ncurses manual pages provide for renaming the utilities, normally as part of
+# the scripts provided in its sources.  OpenBSD developers do not use those.
+sub munge_docs($) {
+    my $path = shift;
+    my @data = &read_file($path);
+    my $done = 0;
+    for my $n ( 0 .. $#data ) {
+        my $text = $data[$n];
+        $text =~ s/\b1M\b/1/g;
+        $text =~ s/\b3X\b/3/g;
+        $text =~ s/\bcurs_(term(info|cap)\s*3\b)/$1/g;
+        $text =~ s/(\\fB)curs_(term(info|cap)\\f[RP]\(3\))/$1$2/g;
+        my $left = "";
+        while ( $text =~ /@[[:alnum:]_]+@/ ) {
+            my $next = index( $text, "@" );
+            last if ( $next < 0 );
+            $left .= substr( $text, 0, $next++ );
+            $text = substr( $text, $next );
+            $next = index( $text, "@" );
+            last if ( $next < 0 );
+            my $word = substr( $text, 0, $next );
+            if ( $word =~ /^[[:alnum:]_]+/ ) {
+
+                if ( $definitions{$word} ) {
+                    $word = $definitions{$word};
+                }
+                else {
+                    $word = "?";
+                }
+                $left .= $word;
+                $text = substr( $text, $next + 1 );
+            }
+            else {
+                &failed("unexpected definition @$word@");
+            }
+        }
+        $text = $left . $text;
+        if ( $text ne $data[$n] ) {
+            $done++;
+            $data[$n] = $text;
+        }
+    }
+    if ($done) {
+        system("chmod u+w $path");
+        if ( open my $fp, ">", $path ) {
+            for my $n ( 0 .. $#data ) {
+                printf $fp "%s\n", $data[$n];
+            }
+            close $fp;
+            system("chmod u-w $path");
+        }
+    }
+}
+
+sub copy_file($$) {
+    my $src     = shift;
+    my $dst     = shift;
+    my $verbose = $opt_v ? "v" : "";
+    if ( -d $dst ) {
+        my $leaf = $src;
+        $leaf =~ s,^.*/,,;
+        $dst .= "/" . $leaf;
+    }
+    system("chmod u+w $dst") if ( -f $dst );
+    system("cp -a$verbose $src $dst");
+    &munge_ident($dst);
+}
+
+sub copy_code($) {
+    my $src = shift;
+    my $dst = shift;
+    &copy_CVS( substr( $dst, length($update_dir) ) );
+    printf ".. copying files for $dst\n";
+    my @data = &read_dir($src);
+    printf ".. %d entries\n", $#data + 1;
+    my $verbose = $opt_v ? "v" : "";
+    for my $d ( 0 .. $#data ) {
+        my $item     = $data[$d];
+        my $src_item = $src . "/" . $item;
+        next if ( -d $src_item );
+        next if ( -l $src_item );
+        next if ( $item =~ /^\.(\.)?$/ );
+        next if ( $item =~ /\.(bak|in|log|status)$/ );
+        next if ( $item =~ /^llib-/ );
+        next if ( $item =~ /^modules/ );
+        next if ( $item =~ /^[fm]_trace\.c/ and not $opt_t );
+        next
+          if ( $item =~ /^Makefile/ and index( $update_dir, "/share/" ) < 0 );
+        next if ( $item =~ /^README/ );
+        next if ( $item eq "headers" );
+        next if ( $generated{$item} );
+        next if ( $item eq "link_test.c" );
+
+        if ( index( $dst, "/usr.bin/" ) >= 0 ) {
+            next if ( $item =~ /^(clear)/ );    # OpenBSD uses "tput clear"
+            my $prog = $dst;
+            $prog =~ s%^.*/%%;
+            $prog =~ s/(update|backup)//;
+            $prog .= "c";
+            if ( $dst =~ /infocmp/ ) {
+                next if ( $item ne $prog );
+            }
+            elsif ( $dst =~ /tabs/ ) {
+                next if ( $item ne $prog );
+            }
+            elsif ( $dst =~ /tic/ ) {
+                next if ( &is_tic_code($item) == 0 );
+            }
+            elsif ( $dst =~ /toe/ ) {
+                next if ( $item ne $prog );
+            }
+            elsif ( $dst =~ /tput/ ) {
+                next if ( $item ne $prog );
+            }
+            elsif ( $dst =~ /tset/ ) {
+                next if ( $item ne $prog );
+            }
+            else {
+                next;
+            }
+        }
+        system( sprintf( "cp -a$verbose %s %s/%s", $src_item, $dst, $item ) );
+        &munge_ident("$dst/$item");
+    }
+}
+
+# Checking if nroff supports tables is a long-obsolete issue, and is not really
+# necessary, except to match OpenBSD's source-tree.
+sub uses_tables($) {
+    my $docs = shift;
+    my @docs = &read_file($docs);
+    my $code = 0;
+    for my $n ( 0 .. $#docs ) {
+        if ( $docs[$n] =~ /^[.']\\"\s+t\b.*/ ) {
+            $code = 1;
+            last;
+        }
+        elsif ( $docs[$n] =~ /^\./ ) {
+            last;
+        }
+    }
+    return $code;
+}
+
+sub copy_1doc($$) {
+    my $docs = shift;
+    my $src  = "$source_dir/man/$docs";
+    my $dst  = "$update_dir/$docs";
+    $src .= "m" if ( -f "${src}m" );
+    $dst =~ s/x$//;
+    if ( $dst =~ /\.3/ ) {
+        $dst =~ s/\bncurses/curses/ if ( $dst =~ /ncurses\./ );
+        $dst =~ s/\bcurs_//         if ( $dst =~ /_term(cap|info)\./ );
+    }
+    &copy_file( $src, $dst );
+    &munge_docs($dst);
+}
+
+sub copy_docs($) {
+    my $docs = shift;
+    if ( index( $update_dir, "/usr.bin/" ) >= 0 ) {
+        &copy_1doc( $docs . ".1" );
+        if ( $docs eq "tic" ) {
+            &copy_1doc("captoinfo.1");
+            &copy_1doc("infotocap.1");
+        }
+    }
+    else {
+        my @docs = &read_dir("$source_dir/man");
+        if ( $docs eq "curses" ) {
+            for my $n ( 0 .. $#docs ) {
+                next if ( $docs[$n] eq "Makefile" );
+                next if ( $docs[$n] eq "make_sed.sh" );
+                next if ( $docs[$n] eq "man_db.renames" );
+                next if ( $docs[$n] eq "manlinks.sed" );
+                next if ( $docs[$n] =~ /\.(1|head|tail|in)/ );
+                next if ( $docs[$n] =~ /^(form|menu|mitem|panel)/ );
+                &copy_1doc( $docs[$n] );
+            }
+        }
+        elsif ( $docs eq "form" ) {
+            for my $n ( 0 .. $#docs ) {
+                next unless ( $docs[$n] =~ /^form/ );
+                &copy_1doc( $docs[$n] );
+            }
+        }
+        elsif ( $docs eq "menu" ) {
+            for my $n ( 0 .. $#docs ) {
+                next unless ( $docs[$n] =~ /^(menu|mitem)/ );
+                &copy_1doc( $docs[$n] );
+            }
+        }
+        elsif ( $docs eq "panel" ) {
+            for my $n ( 0 .. $#docs ) {
+                next unless ( $docs[$n] =~ /^panel/ );
+                &copy_1doc( $docs[$n] );
+            }
+        }
+    }
+}
+
+sub setup_dir($) {
+    my $dst = shift;
+    &failed("no definition for $dst")
+      unless ( defined $setup_dir{$dst} or $opt_r );
+    $target_dir = sprintf( "%s/%s", $opt_d, $dst );
+    $update_dir = $target_dir . ".update";
+    $backup_dir = $target_dir . ".backup";
+    my $result = 0;
+    if ($opt_r) {
+        &remove_dir($update_dir);
+        if ( $target_dir =~ /\/(tabs|toe)$/ ) {
+            &remove_dir($target_dir);
+        }
+        elsif ( -d $backup_dir ) {
+            &remove_dir($target_dir);
+            &rename_dir( $backup_dir, $target_dir );
+        }
+    }
+    else {
+        &remove_dir($update_dir);
+        mkdir $update_dir;
+
+        # reuse the shared-library version, assuming ABI=5 would involve at
+        # most a minor-version bump.
+        &copy_file( "$target_dir/shlib_version", $update_dir )
+          if ( $dst =~ /^lib\// );
+        &copy_code( $source_dir . "/" . $setup_dir{$dst}, $update_dir )
+          unless ( $setup_dir{$dst} eq "misc" );
+        $result = 1;
+    }
+    return $result;
+}
+
+sub do_build($) {
+    my $command = shift;
+    printf "%% %s\n", $command if ($opt_v);
+    system($command);
+}
+
+sub finish_dir() {
+    printf "** $target_dir\n";
+    system("diff -Naurb $target_dir $update_dir | diffstat -n 30")
+      if ( -d $target_dir );
+    if ($opt_n) {
+        &do_build("cd $update_dir && make -n") if ($opt_x);
+    }
+    else {
+        if ( -d $backup_dir ) {
+            printf STDERR "? backup directory exists: %s\n", $backup_dir;
+        }
+        else {
+            &rename_dir( $target_dir, $backup_dir );
+            &rename_dir( $update_dir, $target_dir );
+        }
+        &do_build("cd $target_dir && make") if ($opt_x);
+    }
+}
+
+################################################################################
+
+sub only_c_files($) {
+    my @data = @{ $_[0] };
+    my %data;
+    for my $n ( 0 .. $#data ) {
+        my $text = $data[$n];
+        $data{$text}++ if ( $text =~ /\.c$/ );
+    }
+    return sort keys %data;
+}
+
+sub makefile_list($$$) {
+    my @data = @{ $_[0] };
+    my $name = $_[1];
+    my $skip = $_[2];
+    my %data;
+    my $state = 0;
+    for my $n ( 0 .. $#data ) {
+        my $text = $data[$n];
+        $text =~ s/^\s+//;
+        next if ( index( $text, $skip ) == 0 );
+        $text =~ s/\s+=/=/;
+        $text =~ s/=\s+/=/;
+        $text =~ s/\s*\\//;
+        $state = 1 if ( $text =~ /^${name}=/ );
+        next unless ( $state == 1 );
+
+        if ( index( $text, "(trace)" ) >= 0 and not $opt_t ) {
+            next unless ( $text =~ /\b(lib_trace|visbuf)\.c$/ );
+        }
+        if ( not $opt_t ) {
+            next if ( $text =~ /\b[fm]_trace\.c$/ );
+        }
+        $text =~ s/^.*=//;
+        $text =~ s/\$o/.o/g;
+        $text =~ s/^.*\///;
+        next           if ( $text eq "link_test.c" );
+        next           if ( $text eq "mf_common.h" );
+        next           if ( $text eq "transform.h" );
+        $data{$text}++ if ( $text ne "" );
+        last           if ( $data[$n] !~ /\\$/ );
+    }
+    return sort keys %data;
+}
+
+sub manpage_list($) {
+    my $path = shift;
+    my @data = &read_dir($path);
+    my %data;
+    for my $n ( 0 .. $#data ) {
+        my $text = $data[$n];
+        $data{$text}++ if ( $text =~ /\.\d$/ );
+    }
+    return sort keys %data;
+}
+
+sub columns_of($) {
+    my $string = shift;
+    my $result = 0;
+    for my $n ( 0 .. length($string) - 1 ) {
+        my $c = substr( $string, $n, 1 );
+        if ( $c eq "\t" ) {
+            $result |= 7;
+            $result++;
+        }
+        elsif ( $c eq "\n" ) {
+            $result = 0;
+        }
+        else {
+            ++$result;
+        }
+    }
+    return $result;
+}
+
+sub format_list($$) {
+    my $name = $_[0];
+    my @data = @{ $_[1] };
+    my $keep = ( defined $_[2] ) ? 1 : 0;
+    my $base;
+    my $fill;
+    if ( length($name) >= 9 ) {
+        $fill = " ";
+        $base = length($name) + 1;
+    }
+    else {
+        $base = 9;
+        $fill = "\t";
+    }
+    my $result = sprintf( "%s%s", $name, $fill );
+    if ( $keep == 0 ) {
+        my %data;
+        for my $n ( 0 .. $#data ) {
+            $data{ $data[$n] } = 1 if ( defined $data[$n] );
+        }
+        @data = sort keys %data;
+    }
+    for my $n ( 0 .. $#data ) {
+        my $data = $data[$n];
+        my $col  = &columns_of($result);
+        my $add  = 1 + length($data);
+        if ( ( $col + $add ) > 76 ) {
+            $result .= " " if ( $col > $base );
+            $base = 9;
+            $fill = "\t";
+            $result .= "\\\n" . $fill . $data;
+        }
+        else {
+            $result .= " " if ( $col > $base );
+            $result .= $data;
+        }
+    }
+    return $result;
+}
+
+################################################################################
+
+sub compare_makefiles($) {
+    if ($opt_v) {
+        my $newfile = shift;
+        my $bakfile =
+          ( -d $backup_dir ? $backup_dir : $target_dir ) . "/Makefile";
+        system("diff -u $bakfile $newfile") if ( -f $bakfile );
+    }
+}
+
+# The curses makefile has to build build-time utilities and generate source.
+sub gen_1st_makefile() {
+    my $libname = "curses";
+    my $oldfile = "$source_dir/n$libname/Makefile";
+    my @oldfile = &read_file($oldfile);
+
+    my $newfile = "$update_dir/Makefile";
+    open( my $fp, ">", $newfile ) || &failed("cannot open $newfile");
+    my @subdirs = (
+        '${.CURDIR}/base', '${.CURDIR}/tinfo',
+        '${.CURDIR}/tty',  '${.CURDIR}/widechar'
+    );
+    $subdirs[ $#subdirs + 1 ] = '${.CURDIR}/trace' if ($opt_t);
+    printf $fp <<EOF;
+# $generated_by
+
+LIB=	$libname
+
+# Uncomment this to enable tracing in libcurses
+#CURSESTRACE=-DTRACE
+
+# This is used to compile terminal info directly into the library
+FALLBACK_LIST=
+
+# XXX - should be defined elsewhere
+AWK?=	/usr/bin/awk
+
+# Search in subdirs
+EOF
+    printf $fp "%s\n", &format_list( ".PATH:", \@subdirs );
+
+    my @autosrc = &makefile_list( \@oldfile, "AUTO_SRC", "?" );
+    my @auto_cc = &only_c_files( \@autosrc );
+    printf $fp "%s\n", &format_list( "SRCS=", \@auto_cc );
+
+    my @sources = &makefile_list( \@oldfile, "C_SRC", "./" );
+    printf $fp "%s\n", &format_list( "SRCS+=", \@sources );
+
+    printf $fp <<EOF;
+
+HOSTCFLAGS?=	\${CFLAGS}
+HOSTLDFLAGS?=	\${LDFLAGS}
+HOSTCFLAGS+=	-I. -I\${.CURDIR} \${CURSESTRACE}
+CFLAGS+=	-I. -I\${.CURDIR} \${CURSESTRACE} -D_XOPEN_SOURCE_EXTENDED -DNDEBUG
+
+EOF
+    my @manpages = &manpage_list($update_dir);
+    printf $fp "%s\n", &format_list( "MAN=", \@manpages );
+
+    $autosrc[ $#autosrc++ ] = "make_hash";
+    $autosrc[ $#autosrc++ ] = "make_keys";
+    printf $fp "%s\n", &format_list( "GENERATED=", \@autosrc );
+    printf $fp <<EOF;
+
+CAPLIST	= \${.CURDIR}/Caps
+USE_BIG_STRINGS	= 1
+
+CLEANFILES+= \${GENERATED}
+
+BUILDFIRST = \${GENERATED}
+
+includes:
+	\@cmp -s \${DESTDIR}/usr/include/ncurses.h \${.CURDIR}/curses.h || \\
+	  \${INSTALL} \${INSTALL_COPY} -m 444 -o \$(BINOWN) -g \$(BINGRP) \\
+	  \${.CURDIR}/curses.h \${DESTDIR}/usr/include/ncurses.h
+	\@cd \${.CURDIR}; for i in ncurses_dll.h unctrl.h term.h termcap.h; do \\
+	  cmp -s \$\$i \${DESTDIR}/usr/include/\$\$i || \\
+	  \${INSTALL} \${INSTALL_COPY} -m 444 -o \$(BINOWN) -g \$(BINGRP) \$\$i \\
+	  \${DESTDIR}/usr/include; done
+
+keys.list: \${.CURDIR}/tinfo/MKkeys_list.sh
+	sh \${.CURDIR}/tinfo/MKkeys_list.sh \${.CURDIR}/Caps | sort > \${.TARGET}
+
+fallback.c: \${.CURDIR}/tinfo/MKfallback.sh
+	sh \${.CURDIR}/tinfo/MKfallback.sh /usr/share/terminfo \${.CURDIR}/../../share/termtypes/termtypes.master \$(FALLBACK_LIST) > \${.TARGET}
+
+lib_gen.c: \${.CURDIR}/base/MKlib_gen.sh
+	sh \${.CURDIR}/base/MKlib_gen.sh "\${CC} -E -P -I\${.CURDIR}" \\
+		"\${AWK}" generated < \${.CURDIR}/curses.h > lib_gen.c
+
+init_keytry.h: make_keys keys.list
+	./make_keys keys.list > \${.TARGET}
+
+make_keys: \${.CURDIR}/tinfo/make_keys.c \${.CURDIR}/curses.priv.h names.c
+	\${HOSTCC} \${LDSTATIC} \${HOSTCFLAGS} \${HOSTLDFLAGS} \\
+		-o \${.TARGET} \${.CURDIR}/tinfo/make_keys.c \${LDADD}
+EOF
+
+    if ( &patchdate >= 20090808 ) {
+        printf $fp <<EOF;
+make_hash:	\${.CURDIR}/tinfo/make_hash.c \\
+		\${.CURDIR}/curses.priv.h \\
+		\${.CURDIR}/hashsize.h
+	\${HOSTCC} \${LDSTATIC} \${HOSTCFLAGS} -DMAIN_PROGRAM \${HOSTLDFLAGS} \\
+		-o \${.TARGET} \${.CURDIR}/tinfo/make_hash.c \${LDADD}
+EOF
+    }
+    else {
+        printf $fp <<EOF;
+make_hash: \${.CURDIR}/tinfo/comp_hash.c \\
+		\${.CURDIR}/curses.priv.h \\
+		\${.CURDIR}/hashsize.h
+	\${HOSTCC} \${LDSTATIC} \${HOSTCFLAGS} -DMAIN_PROGRAM \${HOSTLDFLAGS} \\
+		-o \${.TARGET} \${.CURDIR}/tinfo/comp_hash.c \${LDADD}
+EOF
+    }
+
+    if ( &patchdate >= 20190309 ) {
+        printf $fp <<EOF;
+CAPLIST += \${.CURDIR}/Caps-ncurses
+
+comp_userdefs.c: make_hash \\
+		\${.CURDIR}/hashsize.h \\
+		\${.CURDIR}/tinfo/MKuserdefs.sh
+	sh \${.CURDIR}/tinfo/MKuserdefs.sh \${AWK} \${USE_BIG_STRINGS} \${CAPLIST} > \${.TARGET}
+EOF
+    }
+    printf $fp <<EOF;
+
+expanded.c: \${.CURDIR}/term.h \${.CURDIR}/curses.priv.h \\
+		\${.CURDIR}/ncurses_cfg.h \${.CURDIR}/tty/MKexpanded.sh
+	sh \${.CURDIR}/tty/MKexpanded.sh "\${CC} -E -P" \${CPPFLAGS} > \${.TARGET}
+
+comp_captab.c: make_hash
+	sh \${.CURDIR}/tinfo/MKcaptab.sh \${AWK} \${USE_BIG_STRINGS} \\
+		\${.CURDIR}/tinfo/MKcaptab.awk \${CAPLIST} > \${.TARGET}
+
+lib_keyname.c: keys.list \${.CURDIR}/base/MKkeyname.awk
+	\${AWK} -f \${.CURDIR}/base/MKkeyname.awk \\
+		bigstrings=\${USE_BIG_STRINGS} \\
+		keys.list > \${.TARGET}
+
+names.c: \${.CURDIR}/tinfo/MKnames.awk
+	\${AWK} -f \${.CURDIR}/tinfo/MKnames.awk \\
+		bigstrings=\${USE_BIG_STRINGS} \\
+		\${CAPLIST} > \${.TARGET}
+codes.c: \${.CURDIR}/tinfo/MKcodes.awk
+	\${AWK} -f \${.CURDIR}/tinfo/MKcodes.awk \\
+		bigstrings=\${USE_BIG_STRINGS} \\
+		\${CAPLIST} > \${.TARGET}
+
+unctrl.c: \${.CURDIR}/base/MKunctrl.awk
+	echo | \${AWK} -f \${.CURDIR}/base/MKunctrl.awk bigstrings=1 > \${.TARGET}
+
+.include <bsd.own.mk>
+
+# Link libtermlib, libtermcap to libcurses so we don't break people's Makefiles
+afterinstall:
+	-cd \${DESTDIR}\${LIBDIR}; \\
+	for i in \${_LIBS}; do \\
+	    ln -f \$\$i `echo \$\$i | sed 's/curses/termlib/'`; \\
+	    ln -f \$\$i `echo \$\$i | sed 's/curses/termcap/'`; \\
+	    ln -f \$\$i `echo \$\$i | sed 's/curses/ncurses/'`; \\
+	    ln -f \$\$i `echo \$\$i | sed 's/curses/ncursesw/'`; \\
+	done
+
+.include <bsd.lib.mk>
+EOF
+    close $fp;
+    &compare_makefiles($newfile);
+}
+
+sub gen_lib_makefile($) {
+    my $libname = shift;
+    my $oldfile = "$source_dir/$libname/Makefile";
+    my @oldfile = &read_file($oldfile);
+
+    # in ncurses, header-files are quasi-generated, because the original
+    # header file for form/menu/panel lives in the source-directory, but is
+    # copied to the include-directory with "make sources".
+    my @headers = &makefile_list( \@oldfile, "AUTO_SRC", "?" );
+
+    # The C source is more straightforward.
+    my @sources = &makefile_list( \@oldfile, "C_SRC", "?" );
+    my $newfile = "$update_dir/Makefile";
+    open( my $fp, ">", $newfile ) || &failed("cannot open $newfile");
+    printf $fp <<EOF;
+# $generated_by
+
+LIB=	$libname
+EOF
+
+    printf $fp "%s\n", &format_list( "SRCS=", \@sources );
+    printf $fp "%s\n", &format_list( "HDRS=", \@headers );
+    my $includes = '-I${.CURDIR}/../libcurses';
+    $includes .= ' -I${.CURDIR}/../libmenu' if ( $libname eq "form" );
+    printf $fp <<EOF;
+CFLAGS+=$includes -D_XOPEN_SOURCE_EXTENDED -DNDEBUG
+EOF
+    my @manpages = &manpage_list($update_dir);
+    printf $fp "%s\n", &format_list( "MAN=", \@manpages );
+    printf $fp <<EOF;
+
+includes:
+	\@cd \$\{.CURDIR}; for i in \$\{HDRS}; do \\
+	  cmp -s \$\$i \${DESTDIR}/usr/include/\$\$i || \\
+	  \${INSTALL} \${INSTALL_COPY} -m 444 -o \$(BINOWN) -g \$(BINGRP) \$\$i \\
+	  \${DESTDIR}/usr/include; done
+
+.include <bsd.own.mk>
+
+afterinstall:
+	-cd \${DESTDIR}\${LIBDIR}; \\
+	for i in \${_LIBS}; do \\
+	    ln -f \$\$i `echo \$\$i | sed 's/${libname}/${libname}w/'`; \\
+	done
+
+.include <bsd.lib.mk>
+EOF
+    close $fp;
+    &compare_makefiles($newfile);
+}
+
+sub gen_bin_makefile($) {
+    my $binname = shift;
+    my $oldfile = "$source_dir/progs/Makefile";
+    my @oldfile = &read_file($oldfile);
+    my $newfile = "$update_dir/Makefile";
+
+    open( my $fp, ">", $newfile ) || &failed("cannot open $newfile");
+    my @sources = ("$binname.c");
+    my @links   = ();
+    my @autosrc = &makefile_list( \@oldfile, "AUTO_SRC", "?" );
+
+    my $tput_ver       = 0;
+    my $use_dump_entry = 0;
+    my $use_termsort   = 0;
+    my $use_tparm_type = 0;
+    my $use_transform  = 0;
+
+    $use_dump_entry = 1 if ( $binname eq "infocmp" or $binname eq "tic" );
+    $use_termsort   = 1 if ( $use_dump_entry       or $binname eq "tput" );
+
+    if ( &patchdate >= 20090314 ) {
+        $use_transform = 1 if ( $binname =~ /^(tic|tput|tset)/ );
+    }
+    if ( &patchdate >= 20140521 ) {
+        $use_tparm_type = 1 if ( $binname =~ /^(tic|tput)$/ );
+    }
+    if ( &patchdate >= 20160806 ) {
+        $tput_ver = &patchdate;
+    }
+
+    $sources[ ++$#sources ] = "dump_entry.c" if ($use_dump_entry);
+    $sources[ ++$#sources ] = "tparm_type.c" if ($use_tparm_type);
+    $sources[ ++$#sources ] = "transform.c"  if ($use_transform);
+
+    $autosrc[ ++$#autosrc ] = "termsort.c" if ($use_termsort);
+
+    # transform.h also is generated, but OpenBSD checked-in a copy
+
+    if ( $binname eq "tic" ) {
+        $links[ ++$#links ] = "captoinfo";
+        $links[ ++$#links ] = "infotocap";
+    }
+    elsif ( $binname eq "tabs" ) {
+        $sources[ ++$#sources ] = "tty_settings.c" if ( $tput_ver >= 20161224 );
+    }
+    elsif ( $binname eq "tput" ) {
+        $sources[ ++$#sources ] = "clear_cmd.c"    if ( $tput_ver >= 20161022 );
+        $sources[ ++$#sources ] = "reset_cmd.c"    if ( $tput_ver >= 20160806 );
+        $sources[ ++$#sources ] = "tty_settings.c" if ( $tput_ver >= 20161224 );
+        $links[ ++$#links ]     = "clear";
+    }
+    elsif ( $binname eq "tset" ) {
+        $sources[ ++$#sources ] = "reset_cmd.c"    if ( $tput_ver >= 20160806 );
+        $sources[ ++$#sources ] = "tty_settings.c" if ( $tput_ver >= 20161224 );
+        $links[ ++$#links ]     = "reset";
+    }
+
+    printf $fp <<EOF;
+# $generated_by
+
+PROG=	$binname
+EOF
+    printf $fp "%s\n", &format_list( "SRCS=", \@sources );
+    printf $fp <<EOF;
+CURSES=	\${.CURDIR}/../../lib/libcurses
+DPADD=	\${LIBCURSES}
+LDADD=	-L\${CURSES} -lcurses\t# in-tree link to add _nc_strict_bsd, etc
+EOF
+    if ( $#links >= 0 ) {
+        my @bin_links;
+        for my $n ( 0 .. $#links ) {
+            $bin_links[ ++$#bin_links ] = '${BINDIR}/' . $binname;
+            $bin_links[ ++$#bin_links ] = '${BINDIR}/' . $links[$n];
+        }
+        printf $fp "%s\n", &format_list( "LINKS=", \@bin_links, 1 );
+    }
+    my $ticfix = '${.CURDIR}/';
+    if ( $binname eq "tic" ) {
+        printf $fp <<EOF;
+CFLAGS+= -I\${CURSES} -I\${.CURDIR} -I.
+EOF
+    }
+    else {
+        $ticfix = '${TIC}/';
+        printf $fp <<EOF;
+TIC= \${.CURDIR}/../tic
+CFLAGS+= -I\${CURSES} -I\${TIC} -I\${.CURDIR} -I.
+.PATH:  \${TIC}
+EOF
+    }
+    printf $fp "%s\n", &format_list( "CLEANFILES+=", \@autosrc );
+    if ($use_dump_entry) {
+        printf $fp <<EOF;
+
+dump_entry.o: termsort.c
+EOF
+    }
+    if ($use_termsort) {
+        printf $fp <<EOF;
+
+termsort.c: ${ticfix}MKtermsort.sh
+	sh ${ticfix}MKtermsort.sh awk \${CURSES}/Caps > \${.TARGET}
+EOF
+    }
+    printf $fp <<EOF;
+
+.include <bsd.prog.mk>
+EOF
+    close $fp;
+
+    &compare_makefiles($newfile);
+}
+
+################################################################################
+
+sub setup_lib_libcurses() {
+    if ( &setup_dir("lib/libcurses") ) {
+        &copy_code( "$source_dir/ncurses/base",     "$update_dir/base" );
+        &copy_code( "$source_dir/ncurses/tinfo",    "$update_dir/tinfo" );
+        &copy_code( "$source_dir/ncurses/tty",      "$update_dir/tty" );
+        &copy_code( "$source_dir/ncurses/widechar", "$update_dir/widechar" );
+        &copy_file( "$source_dir/include/Caps",           $update_dir );
+        &copy_file( "$source_dir/include/capdefaults.c",  $update_dir );
+        &copy_file( "$source_dir/include/curses.h",       $update_dir );
+        &copy_file( "$source_dir/include/hashed_db.h",    $update_dir );
+        &copy_file( "$source_dir/include/hashsize.h",     $update_dir );
+        &copy_file( "$source_dir/include/nc_alloc.h",     $update_dir );
+        &copy_file( "$source_dir/include/nc_panel.h",     $update_dir );
+        &copy_file( "$source_dir/include/nc_tparm.h",     $update_dir );
+        &copy_file( "$source_dir/include/ncurses_cfg.h",  $update_dir );
+        &copy_file( "$source_dir/include/ncurses_def.h",  $update_dir );
+        &copy_file( "$source_dir/include/ncurses_dll.h",  $update_dir );
+        &copy_file( "$source_dir/include/parametrized.h", $update_dir );
+        &copy_file( "$source_dir/include/term.h",         $update_dir );
+        &copy_file( "$source_dir/include/termcap.h",      $update_dir );
+        &copy_file( "$source_dir/include/term_entry.h",   $update_dir );
+        &copy_file( "$source_dir/include/tic.h",          $update_dir );
+        &copy_file( "$source_dir/include/unctrl.h",       $update_dir );
+        &copy_file( "$source_dir/man/terminfo.5",         $update_dir );
+        &copy_docs("curses");
+
+        &verbose(".. work around a bug in /bin/sh in OpenBSD");
+        system( "sed -i"
+              . " -e 's,^shift,test \$# != 0 \\&\\& shift,'"
+              . " $update_dir/tinfo/MKfallback.sh" );
+
+        # OpenBSD dropped support for sys/ttydev.h, without mentioning the
+        # system version.  Just trim it.
+        &verbose(".. work around mishandled sys/ttydef.h");
+        system( "sed -i"
+              . " -e '/__FreeBSD_version/s,|| defined(__OpenBSD__),,'"
+              . " $update_dir/tinfo/lib_baudrate.c" );
+
+        if ($opt_t) {
+            &copy_code( "$source_dir/ncurses/trace", "$update_dir/trace" );
+        }
+        else {
+            &copy_file( "$source_dir/ncurses/trace/lib_trace.c", $update_dir );
+            &copy_file( "$source_dir/ncurses/trace/visbuf.c",    $update_dir );
+        }
+        &copy_file( "$source_dir/include/nc_termios.h", $update_dir )
+          if ( &patchdate >= 20110625 );
+        &copy_file( "$source_dir/include/nc_string.h", $update_dir )
+          if ( &patchdate >= 20120222 );
+        &copy_file( "$source_dir/include/nc_access.h", $update_dir )
+          if ( &patchdate >= 20210626 );
+        &copy_file( "$source_dir/include/Caps-ncurses", $update_dir )
+          if ( &patchdate >= 20190302 );
+        &gen_1st_makefile;
+        &finish_dir;
+    }
+}
+
+sub setup_lib_libform() {
+    if ( &setup_dir("lib/libform") ) {
+        &copy_docs("form");
+        &gen_lib_makefile("form");
+        &finish_dir;
+    }
+}
+
+sub setup_lib_libmenu() {
+    if ( &setup_dir("lib/libmenu") ) {
+        &copy_docs("menu");
+        &gen_lib_makefile("menu");
+        &finish_dir;
+    }
+}
+
+sub setup_lib_libpanel() {
+    if ( &setup_dir("lib/libpanel") ) {
+        &copy_docs("panel");
+        &gen_lib_makefile("panel");
+        &finish_dir;
+    }
+}
+
+sub setup_bin_infocmp() {
+    if ( &setup_dir("usr.bin/infocmp") ) {
+        &copy_docs("infocmp");
+        &gen_bin_makefile("infocmp");
+        &finish_dir;
+    }
+}
+
+sub setup_bin_tabs() {
+    if ( &setup_dir("usr.bin/tabs") ) {
+        &copy_docs("tabs");
+        &gen_bin_makefile("tabs");
+        &finish_dir;
+    }
+}
+
+sub setup_bin_tic() {
+    if ( &setup_dir("usr.bin/tic") ) {
+        if ( &patchdate >= 20140521 ) {
+            &copy_file( "$source_dir/progs/tparm_type.c", $update_dir );
+            &copy_file( "$source_dir/progs/tparm_type.h", $update_dir );
+        }
+
+        # shared files for tput/tset
+        if ( &patchdate >= 20160806 ) {
+            &copy_file( "$source_dir/progs/reset_cmd.c", $update_dir );
+            &copy_file( "$source_dir/progs/reset_cmd.h", $update_dir );
+        }
+        if ( &patchdate >= 20161022 ) {
+            &copy_file( "$source_dir/progs/clear_cmd.c", $update_dir );
+            &copy_file( "$source_dir/progs/clear_cmd.h", $update_dir );
+        }
+        if ( &patchdate >= 20161224 ) {
+            &copy_file( "$source_dir/progs/tty_settings.c", $update_dir );
+            &copy_file( "$source_dir/progs/tty_settings.h", $update_dir );
+        }
+        &copy_docs("tic");
+        &gen_bin_makefile("tic");
+        &finish_dir;
+    }
+}
+
+sub setup_bin_toe() {
+    if ( &setup_dir("usr.bin/toe") ) {
+        &copy_docs("toe");
+        &gen_bin_makefile("toe");
+        &finish_dir;
+    }
+}
+
+sub setup_bin_tput() {
+    if ( &setup_dir("usr.bin/tput") ) {
+        &copy_docs("tput");
+        &gen_bin_makefile("tput");
+        &finish_dir;
+    }
+}
+
+sub setup_bin_tset() {
+    if ( &setup_dir("usr.bin/tset") ) {
+        &copy_docs("tset");
+        &gen_bin_makefile("tset");
+        &finish_dir;
+    }
+}
+
+sub setup_terminfo() {
+    if ( &setup_dir("share/termtypes") ) {
+        &copy_code( $target_dir, $update_dir );
+        &copy_file( "$source_dir/misc/terminfo.src",
+            "$update_dir/termtypes.master" );
+
+        # build the terminfo database using the in-tree tic.
+        # This is always best practice, but for ncurses 6.2 in particular is
+        # required.
+        my $prog = abs_path("$target_dir/../../usr.bin/tic");
+        my $libs = abs_path("$target_dir/../../lib/libcurses");
+        if ( defined $prog and defined $libs ) {
+            $prog .= "/tic";
+            &verbose(".. changing makefile to use in-tree tic");
+            system( "sed -i -E "
+                  . "-e 's,(TIC=).*,\\1\t$prog,' "
+                  . "-e 's,(\\\${TIC}),LD_LIBRARY_PATH=$libs \\1,' "
+                  . "$update_dir/Makefile" );
+        }
+        &finish_dir;
+    }
+}
+
+sub configure_tree() {
+    return if ( -f "ncurses/Makefile" );
+    my @search = ( "/usr/share/terminfo", "/usr/local/share/terminfo" );
+    my @prefix = ("./configure");
+    $prefix[ ++$#prefix ] = "--with-abi-version=5"
+      if ( &patchdate >= 20150502 && !$opt_6 );
+    my @options = (
+        "--with-ospeed=int",                               #
+        "--with-shared",                                   #
+        "--without-normal",                                #
+        "--without-debug",                                 #
+        "--with-terminfo-dirs=" . join( ':', @search ),    #
+        "--without-ada",                                   #
+        "--disable-hard-tabs",                             #
+        "--enable-const",                                  #
+        "--enable-getcap",                                 #
+        "--enable-bsdpad",                                 #
+        "--enable-signed-char",                            #
+        "--enable-termcap",                                #
+        "--enable-widec",                                  #
+        "--disable-setuid-environ"
+    );
+    $options[ ++$#options ] = "--with-trace" if ($opt_t);
+    $options[ ++$#options ] = "--enable-string-hacks"
+      if ( &patchdate >= 20120225 );
+    system( join( ' ', @prefix ) . ' ' . join( ' ', @options ) );
+    &failed("problem with configuring") unless ( -f "ncurses/Makefile" );
+
+    system("make sources");
+
+    # OpenBSD developers edit the generated file and do not regen it when
+    # doing upgrades.  This script reflects those edits.
+    system( "sed -i" . " -E"
+          . " -e '/TYPEOF_CHTYPE/s,int,long,'"
+          . " -e '/USE_TERMCAP/d'"
+          . " -e '/HAVE_LIB(FORM|MENU|PANEL)/s,^(.*)\$,/* \\1 */,'"
+          . " -e 's/TERMPATH.*/PURE_TERMINFO 0/'"
+          . " -e '/SYSTEM_NAME/s,\[0-9.\]+,,'"
+          . " include/ncurses_cfg.h" );
+}
+
+sub get_definitions() {
+    my @data = &read_file("dist.mk");
+    for my $n ( 0 .. $#data ) {
+        my $text = $data[$n];
+        $text =~ s/^\s*//;
+        next unless ( $text =~ /^NCURSES.*=/ );
+        $text =~ s/\s*=\s+/=/;
+        my $name = $text;
+        $name =~ s/=.*//;
+        my $value = $text;
+        $value =~ s/^[^=]*=//;
+        $value =~ s/\s.*//;
+        $definitions{$name} = $value;
+    }
+}
+
+sub setup_all_dirs() {
+    printf "** %s all build-directories\n", $opt_r ? "removing" : "setting up";
+    &get_definitions;
+    &configure_tree unless ($opt_r);
+    &setup_lib_libcurses;
+    &setup_lib_libmenu;
+    &setup_lib_libform;    # build after libmenu, for mf_common.h
+    &setup_lib_libpanel;
+    &setup_bin_tic;        # do this first, for shared headers
+    &setup_bin_infocmp;
+    &setup_bin_tabs if ( -f "$source_dir/progs/tabs.c" );
+    &setup_bin_toe;
+    &setup_bin_tput;
+    &setup_bin_tset;
+    &setup_terminfo;
+}
+
+sub usage() {
+    print <<EOF;
+Usage: ncu2openbsd [options] [sourcetree]
+
+Options:
+  -6       use ABI 6 rather than 5 if available
+  -d DST   specify destination (default: /usr/src)
+  -n       no-op, do not update destination
+  -r       remove update, restore sources from ".orig"
+  -t       enable ncurses trace
+  -v       verbose
+  -x       build each directory after setting up
+EOF
+    exit;
+}
+
+$Getopt::Std::STANDARD_HELP_VERSION = 1;
+&getopts('6d:nrtvx') || &usage();
+$opt_d = "/usr/src" unless ($opt_d);
+&usage() unless ( $#ARGV <= 0 );
+
+if ( $#ARGV == 0 ) {
+    if ( -f $ARGV[0] ) {
+        printf "** unpacking sources: %s\n", $ARGV[0];
+        &unpack( $ARGV[0] );
+    }
+    else {
+        &check_sourcedir( $ARGV[0] );
+    }
+}
+else {
+    &check_sourcedir(".");
+}
+
+&setup_all_dirs;
+
+# move out of temp-directory to allow cleanup.
+chdir $current;
+
+1;
diff --git a/misc/ncurses-config b/misc/ncurses-config
deleted file mode 100644
index 657ea53..0000000
--- a/misc/ncurses-config
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/bin/sh
-# $Id: ncurses-config.in,v 1.35 2015/04/22 00:54:19 tom Exp $
-##############################################################################
-# Copyright (c) 2006-2012,2015 Free Software Foundation, Inc.                #
-#                                                                            #
-# Permission is hereby granted, free of charge, to any person obtaining a    #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation  #
-# the rights to use, copy, modify, merge, publish, distribute, distribute    #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the  #
-# following conditions:                                                      #
-#                                                                            #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software.                        #
-#                                                                            #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
-# DEALINGS IN THE SOFTWARE.                                                  #
-#                                                                            #
-# Except as contained in this notice, the name(s) of the above copyright     #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written               #
-# authorization.                                                             #
-##############################################################################
-#
-# Author: Thomas E. Dickey, 2006-on
-
-LANG=C;		export LANG
-LANGUAGE=C;	export LANGUAGE
-LC_ALL=C;	export LC_ALL
-LC_CTYPE=C;	export LC_CTYPE
-
-prefix="/system"
-exec_prefix="${prefix}"
-
-bindir="${exec_prefix}/bin"
-includedir="${prefix}/include"
-libdir="${exec_prefix}/lib"
-datarootdir="${prefix}/share"
-datadir="${datarootdir}"
-mandir="${datarootdir}/man"
-
-THIS="ncurses"
-TINFO_LIB="ncurses"
-RPATH_LIST="${libdir}"
-
-includesubdir="${prefix}/include/${THIS}"
-
-# Ensure that RPATH_LIST contains only absolute pathnames, if it is nonempty.
-# We cannot filter it out within the build-process since the variable is used
-# in some special cases of installation using a relative path.
-if test -n "$RPATH_LIST"
-then
-	save_IFS="$IFS"
-	IFS=':'
-	filtered=
-	for item in $RPATH_LIST
-	do
-		case "$item" in
-		./*|../*|*/..|*/../*)
-			;;
-		*)
-			test -n "$filtered" && filtered="${filtered}:"
-			filtered="${filtered}${item}"
-			;;
-		esac
-	done
-	IFS="$save_IFS"
-	# if the result is empty, there is little we can do to fix it
-	RPATH_LIST="$filtered"
-fi
-
-# with --disable-overwrite, we installed into a subdirectory, but transformed
-# the headers to include like this:
-#	<ncurses/curses.h>
-if test xno = xno ; then
-	case $includedir in
-	$prefix/include/ncurses)
-		includedir=`echo "$includedir" | sed -e 's,/[^/]*$,,'`
-		;;
-	esac
-fi
-
-test $# = 0 && exec /bin/sh $0 --error
-
-while test $# -gt 0; do
-	case "$1" in
-	# basic configuration
-	--prefix)
-		echo "$prefix"
-		;;
-	--exec-prefix)
-		echo "$exec_prefix"
-		;;
-	# compile/link
-	--cflags)
-		INCS=" -D_XOPEN_SOURCE=500"
-		if test "xno" = xno ; then
-			INCS="$INCS -I${includesubdir}"
-		fi
-		if test "${includedir}" != /usr/include ; then
-			INCS="$INCS -I${includedir}"
-		fi
-		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-			$INCS
-ENDECHO
-		;;
-	--libs)
-		if test "$libdir" = /usr/lib
-		then
-			LIBDIR=
-		else
-			LIBDIR=-L$libdir
-		fi
-		if test ncurses = ncurses ; then
-		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-			$LIBDIR  -l${THIS} 
-ENDECHO
-		else
-		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-			$LIBDIR  -l${THIS} -l${TINFO_LIB} 
-ENDECHO
-		fi
-		;;
-	# identification
-	--version)
-		echo "6.0.20150808"
-		;;
-	--abi-version)
-		echo "6"
-		;;
-	--mouse-version)
-		echo "2"
-		;;
-	# locations
-	--bindir)
-		echo "${bindir}"
-		;;
-	--datadir)
-		echo "${datadir}"
-		;;
-	--includedir)
-		echo "${includedir}"
-		;;
-	--libdir)
-		echo "${libdir}"
-		;;
-	--mandir)
-		echo "${mandir}"
-		;;
-	--terminfo)
-		echo "/system/etc/terminfo"
-		;;
-	--terminfo-dirs)
-		echo "/system/etc/terminfo"
-		;;
-	--termpath)
-		echo ""
-		;;
-	# general info
-	--help)
-		cat <<ENDHELP
-Usage: `basename $0` [options]
-
-Options:
-  --prefix           echos the package-prefix of ${THIS}
-  --exec-prefix      echos the executable-prefix of ${THIS}
-
-  --cflags           echos the C compiler flags needed to compile with ${THIS}
-  --libs             echos the libraries needed to link with ${THIS}
-
-  --version          echos the release+patchdate version of ${THIS}
-  --abi-version      echos the ABI version of ${THIS}
-  --mouse-version    echos the mouse-interface version of ${THIS}
-
-  --bindir           echos the directory containing ${THIS} programs
-  --datadir          echos the directory containing ${THIS} data
-  --includedir       echos the directory containing ${THIS} header files
-  --libdir           echos the directory containing ${THIS} libraries
-  --mandir           echos the directory containing ${THIS} manpages
-  --terminfo         echos the \$TERMINFO terminfo database path
-  --terminfo-dirs    echos the \$TERMINFO_DIRS directory list
-  --termpath         echos the \$TERMPATH termcap list
-
-  --help             prints this message
-ENDHELP
-		;;
-	--error|*)
-		/bin/sh $0 --help 1>&2
-		exit 1
-		;;
-	esac
-	shift
-done
-# vi:ts=4 sw=4
-# vile:shmode
diff --git a/misc/ncurses-config.in b/misc/ncurses-config.in
index 73cbfff..c9f1cf8 100644
--- a/misc/ncurses-config.in
+++ b/misc/ncurses-config.in
@@ -1,7 +1,8 @@
 #!@SHELL@
-# $Id: ncurses-config.in,v 1.35 2015/04/22 00:54:19 tom Exp $
+# $Id: ncurses-config.in,v 1.52 2022/07/26 21:36:28 tom Exp $
 ##############################################################################
-# Copyright (c) 2006-2012,2015 Free Software Foundation, Inc.                #
+# Copyright 2018-2021,2022 Thomas E. Dickey                                  #
+# Copyright 2006-2015,2017 Free Software Foundation, Inc.                    #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -54,7 +55,7 @@
 # Ensure that RPATH_LIST contains only absolute pathnames, if it is nonempty.
 # We cannot filter it out within the build-process since the variable is used
 # in some special cases of installation using a relative path.
-if test -n "$RPATH_LIST"
+if [ -n "$RPATH_LIST" ]
 then
 	save_IFS="$IFS"
 	IFS='@PATH_SEPARATOR@'
@@ -65,7 +66,7 @@
 		./*|../*|*/..|*/../*)
 			;;
 		*)
-			test -n "$filtered" && filtered="${filtered}@PATH_SEPARATOR@"
+			[ -n "$filtered" ] && filtered="${filtered}@PATH_SEPARATOR@"
 			filtered="${filtered}${item}"
 			;;
 		esac
@@ -78,7 +79,7 @@
 # with --disable-overwrite, we installed into a subdirectory, but transformed
 # the headers to include like this:
 #	<ncurses@LIB_SUFFIX@/curses.h>
-if test x@WITH_OVERWRITE@ = xno ; then
+if [ x@WITH_OVERWRITE@ = xno ]; then
 	case $includedir in
 	$prefix/include/ncurses@LIB_SUFFIX@@EXTRA_SUFFIX@)
 		includedir=`echo "$includedir" | sed -e 's,/[^/]*$,,'`
@@ -86,9 +87,95 @@
 	esac
 fi
 
-test $# = 0 && exec @SHELL@ $0 --error
+LIBS="@LIBS@"
+if [ "@TINFO_NAME@" = "@LIB_NAME@" ]; then
+	LIBS="-l${THIS} $LIBS"
+else
+	LIBS="-l${THIS} -l${TINFO_LIB} $LIBS"
+fi
 
-while test $# -gt 0; do
+# Ignore -L options which do not correspond to an actual directory, or which
+# are standard library directories (i.e., the linker is supposed to search
+# those directories).
+#
+# There is no portable way to find the list of standard library directories.
+# Require a POSIX shell anyway, to keep this simple.
+lib_flags=
+for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ $LIBS
+do
+	case $opt in
+	-specs*) # ignore linker specs-files which were used to build library
+		continue
+		;;
+	-Wl,-z,*) # ignore flags used to manipulate shared image
+		continue
+		;;
+	-Wl,--dynamic-linker*) # ignore ELF interpreter
+		continue
+		;;
+	-Wl,--as-needed|-Wl,--build-id=*|-Wl,-dT,*|-Wl,-T,*)
+		continue
+		;;
+	-L*)
+		lib_check=`echo "x$opt" | sed -e 's/^.-L//'`
+		[ -d "$lib_check" ] || continue
+		case "$lib_check" in
+		@LD_SEARCHPATH@) # skip standard libdir
+			if [ "$lib_check" = "$libdir" ]
+			then
+				lib_first=yes
+				IFS_save="$IFS"
+				IFS='|'
+				LIBDIRS="@LD_SEARCHPATH@"
+				for lib_check in $LIBDIRS
+				do
+					if [ -d "$lib_check" ]
+					then
+						if [ "$lib_check" != "$libdir" ]
+						then
+							lib_first=no
+						fi
+						break
+					fi
+				done
+				IFS="$IFS_save"
+				[ $lib_first = yes ] && continue
+				found=no
+				for check in $lib_flags
+				do
+					if [ "x$check" = "x$opt" ]
+					then
+						found=yes
+						break
+					fi
+				done
+				[ $found = yes ] && continue
+				:
+			else
+				continue
+			fi
+			;;
+		*)
+			found=no
+			for check in $lib_flags
+			do
+				if [ "x$check" = "x$opt" ]
+				then
+					found=yes
+					break
+				fi
+			done
+			[ $found = yes ] && continue
+			;;
+		esac
+		;;
+	esac
+	lib_flags="$lib_flags $opt"
+done
+
+[ $# = 0 ] && exec @SHELL@ "$0" --error
+
+while [ $# -gt 0 ]; do
 	case "$1" in
 	# basic configuration
 	--prefix)
@@ -100,10 +187,10 @@
 	# compile/link
 	--cflags)
 		INCS="@PKG_CFLAGS@"
-		if test "x@WITH_OVERWRITE@" = xno ; then
+		if [ "x@WITH_OVERWRITE@" = xno ]; then
 			INCS="$INCS -I${includesubdir}"
 		fi
-		if test "${includedir}" != /usr/include ; then
+		if [ "${includedir}" != /usr/include ]; then
 			INCS="$INCS -I${includedir}"
 		fi
 		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
@@ -111,21 +198,54 @@
 ENDECHO
 		;;
 	--libs)
-		if test "$libdir" = /usr/lib
-		then
-			LIBDIR=
-		else
-			LIBDIR=-L$libdir
-		fi
-		if test @TINFO_NAME@ = @LIB_NAME@ ; then
-		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-			$LIBDIR @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
-ENDECHO
-		else
-		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-			$LIBDIR @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@
-ENDECHO
-		fi
+		OPTS=
+		for opt in $lib_flags
+		do
+			[ -n "$OPTS" ] && OPTS="$OPTS "
+			OPTS="${OPTS}${opt}"
+		done
+		printf '%s\n' "$OPTS"
+		;;
+	--libs-only-L)
+		OPTS=
+		for opt in $lib_flags
+		do
+			case "x$opt" in
+			x-L*)
+				[ -n "$OPTS" ] && OPTS="$OPTS "
+				OPTS="${OPTS}${opt}"
+				;;
+			esac
+		done
+		printf '%s\n' "$OPTS"
+		;;
+	--libs-only-l)
+		OPTS=
+		for opt in $lib_flags
+		do
+			case "x$opt" in
+			x-l*)
+				[ -n "$OPTS" ] && OPTS="$OPTS "
+				OPTS="${OPTS}${opt}"
+				;;
+			esac
+		done
+		printf '%s\n' "$OPTS"
+		;;
+	--libs-only-other)
+		OPTS=
+		for opt in $lib_flags
+		do
+			case "x$opt" in
+			x-[lL]*)
+				;;
+			*)
+				[ -n "$OPTS" ] && OPTS="$OPTS "
+				OPTS="${OPTS}${opt}"
+				;;
+			esac
+		done
+		printf '%s\n' "$OPTS"
 		;;
 	# identification
 	--version)
@@ -145,7 +265,13 @@
 		echo "${datadir}"
 		;;
 	--includedir)
-		echo "${includedir}"
+		INCS=
+		if [ "x@WITH_OVERWRITE@" = xno ]; then
+			INCS="${includesubdir}"
+		elif [ "${includedir}" != /usr/include ]; then
+			INCS="${includedir}"
+		fi
+		echo "$INCS"
 		;;
 	--libdir)
 		echo "${libdir}"
@@ -165,7 +291,7 @@
 	# general info
 	--help)
 		cat <<ENDHELP
-Usage: `basename $0` [options]
+Usage: `basename "$0"` [options]
 
 Options:
   --prefix           echos the package-prefix of ${THIS}
@@ -174,6 +300,10 @@
   --cflags           echos the C compiler flags needed to compile with ${THIS}
   --libs             echos the libraries needed to link with ${THIS}
 
+  --libs-only-L      echos -L linker options (search path) for ${THIS}
+  --libs-only-l      echos -l linker options (libraries) for ${THIS}
+  --libs-only-other  echos linker options other than -L/-l
+
   --version          echos the release+patchdate version of ${THIS}
   --abi-version      echos the ABI version of ${THIS}
   --mouse-version    echos the mouse-interface version of ${THIS}
@@ -191,7 +321,7 @@
 ENDHELP
 		;;
 	--error|*)
-		@SHELL@ $0 --help 1>&2
+		@SHELL@ "$0" --help 1>&2
 		exit 1
 		;;
 	esac
diff --git a/misc/ncurses.supp b/misc/ncurses.supp
index bca582c..29511ea 100644
--- a/misc/ncurses.supp
+++ b/misc/ncurses.supp
@@ -1,6 +1,7 @@
-# $Id: ncurses.supp,v 1.7 2008/09/20 18:43:42 tom Exp $
+# $Id: ncurses.supp,v 1.8 2020/02/02 23:34:34 tom Exp $
 ##############################################################################
-# Copyright (c) 2008 Free Software Foundation, Inc.                          #
+# Copyright 2020 Thomas E. Dickey                                            #
+# Copyright 2008 Free Software Foundation, Inc.                              #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
diff --git a/misc/run_tic.in b/misc/run_tic.in
index 784f9f4..bd11c4c 100644
--- a/misc/run_tic.in
+++ b/misc/run_tic.in
@@ -1,7 +1,8 @@
 #!@SHELL@
-# $Id: run_tic.in,v 1.34 2012/10/06 19:00:51 tom Exp $
+# $Id: run_tic.in,v 1.40 2022/07/16 19:37:03 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc.                #
+# Copyright 2019-2020,2022 Thomas E. Dickey                                  #
+# Copyright 2000-2012,2017 Free Software Foundation, Inc.                    #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -36,26 +37,25 @@
 # Assumes:
 #	The leaf directory names (lib, tabset, terminfo)
 #
-echo '** Building terminfo database, please wait...'
+echo "** Building terminfo database, please wait..."
 #
 # The script is designed to be run from the misc/Makefile as
 #	make install.data
 
-: ${suffix:=@EXEEXT@}
-: ${DESTDIR:=@DESTDIR@}
-: ${prefix:=@prefix@}
-: ${exec_prefix:=@exec_prefix@}
-: ${bindir:=@bindir@}
-: ${top_srcdir:=@top_srcdir@}
-: ${srcdir:=@srcdir@}
-: ${datarootdir:=@datarootdir@}
-: ${datadir:=@datadir@}
-: ${TIC_PATH:=@TIC_PATH@}
-: ${ticdir:=@TERMINFO@}
-: ${source:=@TERMINFO_SRC@}
-: ${LN_S:="@LN_S@"}
-: ${cross_compiling:=no}
-: ${ext_funcs:=@NCURSES_EXT_FUNCS@}
+: "${suffix:=@EXEEXT@}"
+: "${DESTDIR:=@DESTDIR@}"
+: "${prefix:=@prefix@}"
+: "${exec_prefix:=@exec_prefix@}"
+: "${bindir:=@bindir@}"
+: "${top_srcdir:=@top_srcdir@}"
+: "${srcdir:=@srcdir@}"
+: "${datarootdir:=@datarootdir@}"
+: "${datadir:=@datadir@}"
+: "${TIC_PATH:=@TIC@}"
+: "${ticdir:=@TERMINFO@}"
+: "${source:=@TERMINFO_SRC@}"
+: "${cross_compiling:=no}"
+: "${ext_funcs:=@NCURSES_EXT_FUNCS@}"
 
 test -z "${DESTDIR}" && DESTDIR=
 
@@ -84,7 +84,7 @@
 		fi
 	elif test "$TIC_PATH" = unknown
 	then
-		echo '? no tic program found'
+		echo "? no tic program found"
 		exit 1
 	fi
 else
@@ -105,25 +105,32 @@
 export SHLIB_HOST
 
 # don't use user's TERMINFO variable
-TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
+unset TERMINFO_DIRS
+TERMINFO="${DESTDIR}$ticdir" ; export TERMINFO
 umask 022
 
 # Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
+TICDIR=`echo "$TERMINFO" | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
 
 # Parent directory may not exist, which would confuse the install for hashed
 # database.  Fix.
 PARENT=`echo "$TERMINFO" | sed -e 's%/[^/]*$%%'`
 if test -n "$PARENT"
 then
-	test -d $PARENT || mkdir -p $PARENT
+	mkdir -p "$PARENT"
 fi
 
 # Remove the old terminfo stuff; we don't care if it existed before, and it
 # would generate a lot of confusing error messages if we tried to overwrite it.
 # We explicitly remove its contents rather than the directory itself, in case
 # the directory is actually a symbolic link.
-( test -d "$TERMINFO" && cd $TERMINFO && rm -fr ? 2>/dev/null )
+if test -d "$TERMINFO"
+then
+	( cd "$TERMINFO" && rm -fr ./? 2>/dev/null )
+elif test -f "$TERMINFO.db"
+then
+	( rm -f "$TERMINFO.db" 2>/dev/null )
+fi
 
 if test "$ext_funcs" = 1 ; then
 cat <<EOF
@@ -137,11 +144,12 @@
 	document, and install the terminfo without the -x option.
 
 EOF
-if ( $TIC_PATH -x -s -o $TERMINFO $source )
+$TIC_PATH -V
+if ( $TIC_PATH -x -s -o "$TERMINFO" $source )
 then
-	echo '** built new '$TERMINFO
+	echo "** built new $TERMINFO"
 else
-	echo '? tic could not build '$TERMINFO
+	echo "? tic could not build $TERMINFO"
 	exit 1
 fi
 else
@@ -156,11 +164,12 @@
 	document, and install the terminfo without the -x option.
 
 EOF
-if ( $TIC_PATH -s -o $TERMINFO $source )
+$TIC_PATH -V
+if ( $TIC_PATH -s -o "$TERMINFO" $source )
 then
-	echo '** built new '$TERMINFO
+	echo "** built new $TERMINFO"
 else
-	echo '? tic could not build '$TERMINFO
+	echo "? tic could not build $TERMINFO"
 	exit 1
 fi
 fi
@@ -170,12 +179,12 @@
 # all systems support symbolic links, and those that do provide a variety
 # of options for 'test'.
 if test "$TICDIR" != "$TERMINFO" ; then
-	( rm -f $TICDIR 2>/dev/null )
-	if ( cd $TICDIR 2>/dev/null )
+	( rm -f "$TICDIR" 2>/dev/null )
+	if ( cd "$TICDIR" 2>/dev/null )
 	then
-		cd $TICDIR
+		cd "$TICDIR" || exit
 		TICDIR=`pwd`
-		if test $TICDIR != $TERMINFO ; then
+		if test "$TICDIR " != "$TERMINFO "; then
 			# Well, we tried.  Some systems lie to us, so the
 			# installer will have to double-check.
 			echo "Verify if $TICDIR and $TERMINFO are the same."
@@ -183,18 +192,18 @@
 			echo "Otherwise, remove $TICDIR and link it to $TERMINFO."
 		fi
 	else
-		cd ${DESTDIR}$prefix
+		cd ${DESTDIR}$prefix || exit
 		# Construct a symbolic link that only assumes $ticdir has the
 		# same $prefix as the other installed directories.
 		RELATIVE=`echo $ticdir|sed -e 's%^'$prefix'/%%'`
 		if test "$RELATIVE" != "$ticdir" ; then
 			RELATIVE=../`echo $ticdir|sed -e 's%^'$prefix'/%%' -e 's%^/%%'`
 		fi
-		if ( @LN_S@ $RELATIVE $TICDIR )
+		if ( @LN_S@ "$RELATIVE" "$TICDIR" )
 		then
-			echo '** sym-linked '$TICDIR' for compatibility'
+			echo "** sym-linked $TICDIR for compatibility"
 		else
-			echo '** could not sym-link '$TICDIR' for compatibility'
+			echo "** could not sym-link $TICDIR for compatibility"
 		fi
 	fi
 fi
diff --git a/misc/run_tic.sed b/misc/run_tic.sed
deleted file mode 100644
index f1bb900..0000000
--- a/misc/run_tic.sed
+++ /dev/null
@@ -1 +0,0 @@
-s%/usr/share/tabset%/system/share/tabset%g
diff --git a/misc/run_tic.sh b/misc/run_tic.sh
deleted file mode 100644
index 20251c3..0000000
--- a/misc/run_tic.sh
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/bin/sh
-# $Id: run_tic.in,v 1.34 2012/10/06 19:00:51 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc.                #
-#                                                                            #
-# Permission is hereby granted, free of charge, to any person obtaining a    #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation  #
-# the rights to use, copy, modify, merge, publish, distribute, distribute    #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the  #
-# following conditions:                                                      #
-#                                                                            #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software.                        #
-#                                                                            #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
-# DEALINGS IN THE SOFTWARE.                                                  #
-#                                                                            #
-# Except as contained in this notice, the name(s) of the above copyright     #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written               #
-# authorization.                                                             #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1996-on
-#
-# This script is used to install terminfo.src using tic.  We use a script
-# because the path checking is too awkward to do in a makefile.
-#
-# Assumes:
-#	The leaf directory names (lib, tabset, terminfo)
-#
-echo '** Building terminfo database, please wait...'
-#
-# The script is designed to be run from the misc/Makefile as
-#	make install.data
-
-: ${suffix:=}
-: ${DESTDIR:=}
-: ${prefix:=/system}
-: ${exec_prefix:=${prefix}}
-: ${bindir:=${exec_prefix}/bin}
-: ${top_srcdir:=..}
-: ${srcdir:=.}
-: ${datarootdir:=${prefix}/share}
-: ${datadir:=${datarootdir}}
-: ${TIC_PATH:=/usr/bin/tic}
-: ${ticdir:=/system/etc/terminfo}
-: ${source:=${top_srcdir}/misc/terminfo.src}
-: ${LN_S:="ln -s -f"}
-: ${cross_compiling:=no}
-: ${ext_funcs:=1}
-
-test -z "${DESTDIR}" && DESTDIR=
-
-# Allow tic to run either from the install-path, or from the build-directory.
-# Do not do this if we appear to be cross-compiling.  In that case, we rely
-# on the host's copy of tic to compile the terminfo database.
-if test "x$cross_compiling" = "xno"
-then
-	if test -f ../progs/tic$suffix
-	then
-		case "$PATH" in
-		\:*)
-			PATH="../progs:../lib:${DESTDIR}$bindir$PATH"
-			;;
-		*)
-			PATH="../progs:../lib:${DESTDIR}$bindir:$PATH"
-			;;
-		esac
-		export PATH
-		if test normal = shared
-		then
-			SHLIB="sh $srcdir/shlib"
-			TIC_PATH="$SHLIB tic"
-		else
-			TIC_PATH="tic"
-		fi
-	elif test "$TIC_PATH" = unknown
-	then
-		echo '? no tic program found'
-		exit 1
-	fi
-else
-	# Cross-compiling, so don't set PATH or run shlib.
-	SHLIB=
-	# reset $suffix, since it applies to the target, not the build platform.
-	suffix=
-fi
-
-
-# set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
-# the PATH we just set.
-SHLIB_PATH=$PATH
-export SHLIB_PATH
-
-# set a variable to simplify environment update in shlib
-SHLIB_HOST=linux-androideabi
-export SHLIB_HOST
-
-# don't use user's TERMINFO variable
-TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
-umask 022
-
-# Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
-
-# Parent directory may not exist, which would confuse the install for hashed
-# database.  Fix.
-PARENT=`echo "$TERMINFO" | sed -e 's%/[^/]*$%%'`
-if test -n "$PARENT"
-then
-	test -d $PARENT || mkdir -p $PARENT
-fi
-
-# Remove the old terminfo stuff; we don't care if it existed before, and it
-# would generate a lot of confusing error messages if we tried to overwrite it.
-# We explicitly remove its contents rather than the directory itself, in case
-# the directory is actually a symbolic link.
-( test -d "$TERMINFO" && cd $TERMINFO && rm -fr ? 2>/dev/null )
-
-if test "$ext_funcs" = 1 ; then
-cat <<EOF
-Running $TIC_PATH to install $TERMINFO ...
-
-	You may see messages regarding extended capabilities, e.g., AX.
-	These are extended terminal capabilities which are compiled
-	using
-		tic -x
-	If you have ncurses 4.2 applications, you should read the INSTALL
-	document, and install the terminfo without the -x option.
-
-EOF
-if ( $TIC_PATH -x -s -o $TERMINFO $source )
-then
-	echo '** built new '$TERMINFO
-else
-	echo '? tic could not build '$TERMINFO
-	exit 1
-fi
-else
-cat <<EOF
-Running $TIC_PATH to install $TERMINFO ...
-
-	You may see messages regarding unknown capabilities, e.g., AX.
-	These are extended terminal capabilities which may be compiled
-	using
-		tic -x
-	If you have ncurses 4.2 applications, you should read the INSTALL
-	document, and install the terminfo without the -x option.
-
-EOF
-if ( $TIC_PATH -s -o $TERMINFO $source )
-then
-	echo '** built new '$TERMINFO
-else
-	echo '? tic could not build '$TERMINFO
-	exit 1
-fi
-fi
-
-# Make a symbolic link to provide compatibility with applications that expect
-# to find terminfo under /usr/lib.  That is, we'll _try_ to do that.  Not
-# all systems support symbolic links, and those that do provide a variety
-# of options for 'test'.
-if test "$TICDIR" != "$TERMINFO" ; then
-	( rm -f $TICDIR 2>/dev/null )
-	if ( cd $TICDIR 2>/dev/null )
-	then
-		cd $TICDIR
-		TICDIR=`pwd`
-		if test $TICDIR != $TERMINFO ; then
-			# Well, we tried.  Some systems lie to us, so the
-			# installer will have to double-check.
-			echo "Verify if $TICDIR and $TERMINFO are the same."
-			echo "The new terminfo is in $TERMINFO; the other should be a link to it."
-			echo "Otherwise, remove $TICDIR and link it to $TERMINFO."
-		fi
-	else
-		cd ${DESTDIR}$prefix
-		# Construct a symbolic link that only assumes $ticdir has the
-		# same $prefix as the other installed directories.
-		RELATIVE=`echo $ticdir|sed -e 's%^'$prefix'/%%'`
-		if test "$RELATIVE" != "$ticdir" ; then
-			RELATIVE=../`echo $ticdir|sed -e 's%^'$prefix'/%%' -e 's%^/%%'`
-		fi
-		if ( ln -s -f $RELATIVE $TICDIR )
-		then
-			echo '** sym-linked '$TICDIR' for compatibility'
-		else
-			echo '** could not sym-link '$TICDIR' for compatibility'
-		fi
-	fi
-fi
-# vile:shmode
diff --git a/misc/shlib b/misc/shlib
index a3ed810..7b93d17 100755
--- a/misc/shlib
+++ b/misc/shlib
@@ -1,6 +1,7 @@
 #!/bin/sh
 ##############################################################################
-# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.                #
+# Copyright 2020,2021 Thomas E. Dickey                                       #
+# Copyright 1998-2005,2007 Free Software Foundation, Inc.                    #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -29,7 +30,7 @@
 #
 # Author: Thomas E. Dickey <dickey@clark.net> 1996
 #
-# $Id: shlib,v 1.11 2007/01/13 17:09:52 tom Exp $
+# $Id: shlib,v 1.14 2021/09/04 15:55:29 tom Exp $
 # Use this script as a wrapper when running executables linked to shared
 # libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
 # the soname's path within the linked executable (such as IRIX), e.g,
@@ -80,7 +81,7 @@
 for p in lib ../lib ../../lib ../../../lib
 do
 	if test -d $p; then
-		q=`cd $p; pwd`
+		q=`cd $p || exit; pwd`
 		break
 	elif test -f configure && test ! -d ../$p ; then
 		break
@@ -101,7 +102,7 @@
 	elif test -n "$LD_LIBRARY_PATH"; then
 		system=unix
 	else
-		for r in $q/*.*
+		for r in "$q"/*.*
 		do
 			if test -f "$r"
 			then
diff --git a/misc/tdlint b/misc/tdlint
index c0e652b..8ff5a40 100755
--- a/misc/tdlint
+++ b/misc/tdlint
@@ -1,6 +1,7 @@
 #!/bin/sh
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright 2020,2021 Thomas E. Dickey                                       #
+# Copyright 1998,2000 Free Software Foundation, Inc.                         #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -29,7 +30,7 @@
 #
 # Author: Thomas E. Dickey <dickey@clark.net> 1996
 #
-# $Id: tdlint,v 1.5 2000/10/28 20:53:36 tom Exp $
+# $Id: tdlint,v 1.8 2021/09/04 15:55:29 tom Exp $
 #
 # Lint-script that allows user's own lint libraries, in addition to the ones
 # installed in the system.
@@ -44,16 +45,16 @@
 	exit 1
 else
 	case $ARCH in
-	AIX)	set - $* -Nn4000
+	AIX)	set - "$@" -Nn4000
 		;;
-	IRIX)	set - $* -n -lc
+	IRIX)	set - "$@" -n -lc
 		;;
-	FreeBSD) set - $* -g -p -u -v -z
+	FreeBSD) set - "$@" -g -p -u -v -z
 		;;
 	SunOS)
 		case `uname -r` in
 		5.*)	ARCH=Solaris
-			set - $* -n -lc
+			set - "$@" -n -lc
 			;;
 		esac
 		;;
@@ -62,7 +63,7 @@
 # LIBDIR=$HOME/lib/$ARCH/lint ;export LIBDIR
 for p in $HOME/lib/$ARCH/lint /usr/lib/lint /usr/lib
 do
-	if [ -d $p ]
+	if [ -d "$p" ]
 	then
 		DIRS="$DIRS $p"
 	fi
@@ -73,15 +74,15 @@
 	case $1 in
 	-D*\"*)	;;
 	-L*)
-		DIRS="`echo $1|sed -e 's/^-L//'` $DIRS"
+		DIRS="`echo "$1"|sed -e 's/^-L//'` $DIRS"
 		;;
 	-l*)
-		lib="llib-l`echo $1 | sed -e 's/^-l//'`.ln"
+		lib="llib-l`echo "$1" | sed -e 's/^-l//'`.ln"
 		found=no
 		for p in $DIRS
 		do
-			echo -n testing $p/$lib
-			if [ -f $p/$lib ]
+			printf "testing %s" "$p/$lib"
+			if [ -f "$p/$lib" ]
 			then
 				LIBS="$LIBS $p/$lib"
 				echo " (ok)"
@@ -110,4 +111,4 @@
 	shift
 done
 #
-eval lint $OPT $FILES $LIBS
+exec lint $OPT $FILES $LIBS
diff --git a/misc/terminfo.src b/misc/terminfo.src
index e5d1687..5d575b8 100644
--- a/misc/terminfo.src
+++ b/misc/terminfo.src
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #	bug-ncurses@gnu.org
 #
-#	$Revision: 1.549 $
-#	$Date: 2015/07/25 19:27:20 $
+#	$Revision: 1.1143 $
+#	$Date: 2024/03/09 20:01:40 $
 #
 # 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
@@ -34,6 +34,10 @@
 # license from xterm.
 #
 #------------------------------------------------------------------------------
+# https://invisible-island.net/ncurses/ncurses.faq.html#terminfo_copying
+# https://invisible-island.net/personal/copyrights.html#removing_notes
+#------------------------------------------------------------------------------
+#
 #	Version 10.2.1
 #	terminfo syntax
 #
@@ -300,22 +304,22 @@
 dumb|80-column dumb tty,
 	am,
 	cols#80,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
+	bel=^G, cr=\r, cud1=\n, ind=\n,
 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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, ff=^L, ind=\n,
 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,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, ht=^I, kcub1=^H,
+	kcud1=\n, nel=\r\n, .kbs=^H,
 
 vanilla|dumb tty,
 	OTbs,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
+	bel=^G, cr=\r, cud1=\n, ind=\n,
 
 # This is almost the same as "dumb", but with no prespecified width.
 # DEL and ^C are hardcoded to act as kill characters.
@@ -325,7 +329,7 @@
 # for compatibility with xterm -TD
 9term|Plan9 terminal emulator for X,
 	am,
-	OTnl=^J, bel=^G, cud1=^J,
+	OTnl=\n, bel=^G, cud1=\n,
 
 #### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
 #
@@ -334,56 +338,68 @@
 
 # ANSI capabilities are broken up into pieces, so that a terminal
 # implementing some ANSI subset can use many of them.
-ansi+local1,
+ansi+local1|ANSI normal-mode cursor-keys,
 	cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
-ansi+local,
+ansi+local|ANSI normal-mode parameterized cursor-keys,
 	cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
 	cuu=\E[%p1%dA, use=ansi+local1,
-ansi+tabs,
+ansi+tabs|ANSI tab-stops,
 	cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[3g,
-ansi+inittabs,
+ansi+inittabs|ANSI initial tab-stops,
 	it#8, use=ansi+tabs,
-ansi+erase,
+ansi+erase|ANSI clear screen/line,
 	clear=\E[H\E[J, ed=\E[J, el=\E[K,
-ansi+rca,
+ansi+rca|ANSI relative cursor-addressing (1-based),
 	hpa=\E[%p1%{1}%+%dG, vpa=\E[%p1%{1}%+%dd,
-ansi+cup,
+ansi+rca2|ANSI relative cursor-addressing,
+	hpa=\E[%i%p1%dG, vpa=\E[%i%p1%dd,
+ansi+cup|ANSI absolute cursor-addressing,
 	cup=\E[%i%p1%d;%p2%dH, home=\E[H,
-ansi+rep,
+ansi+rep|ANSI repeat-character,
 	rep=%p1%c\E[%p2%{1}%-%db,
-ansi+idl1,
+ansi+idl1|ANSI insert/delete one line,
 	dl1=\E[M, il1=\E[L,
-ansi+idl,
+ansi+idl|ANSI insert/delete lines,
 	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,
+ansi+idc1|ANSI insert/delete one character,
+	dch1=\E[P, ich1=\E[@, rmir=\E[4l, smir=\E[4h,
+ansi+idc|ANSI insert/delete characters,
+	dch=\E[%p1%dP, ich=\E[%p1%d@, use=ansi+idc1,
+ansi+arrows|ANSI normal-mode home and cursor-keys,
 	kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
 	khome=\E[H,
-ansi+sgr|ansi graphic renditions,
+ansi+apparrows|ANSI application-mode home and cursor-keys,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\EOH,
+	use=ansi+arrows,
+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,
+ansi+sgrso|ANSI standout only,
 	rmso=\E[m, smso=\E[7m,
-ansi+sgrul|ansi underline only,
+ansi+sgrul|ANSI underline only,
 	rmul=\E[m, smul=\E[4m,
-ansi+sgrbold|ansi graphic renditions; assuming terminal has bold; not dim,
+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,
+	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,
+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,
+	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+csr|ansi scroll-region plus cursor save & restore,
+
+# ECMA-48 does not specify scroll-regions, but most people consider it to be
+# "ANSI" because it is widely-supported.  See ecma+index for the standard form.
+ansi+csr|ANSI scroll-region plus cursor save & restore,
 	csr=\E[%i%p1%d;%p2%dr, rc=\E8, sc=\E7,
 
 # The normal (ANSI) flavor of "media copy" building block asserts that
 # characters sent to the printer do not echo on the screen. DEC terminals
 # can also be put into autoprinter mode, where each line is sent to the
 # printer as you move off that line, e.g., by a carriage return.
-ansi+pp|ansi printer port,
+ansi+pp|ANSI printer port,
 	mc5i,
 	mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
 dec+pp|DEC autoprinter mode,
@@ -396,7 +412,9 @@
 # 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,
+	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
@@ -406,14 +424,16 @@
 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,
+	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,
+klone+sgr8|attribute control for ansi.sys displays with invis,
 	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,
+	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*
@@ -421,16 +441,18 @@
 # 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,
+	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, use=ansi+sgrbold,
 	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,
+	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
@@ -448,26 +470,34 @@
 # 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,
+	op=\E[39;49m, use=klone+color,
+
+ecma+italics|ECMA-48 italics,
+	ritm=\E[23m, sitm=\E[3m,
 
 # 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,
 
+ecma+strikeout|ECMA-48 strikeout/crossed-out,
+	rmxx=\E[29m, smxx=\E[9m,
+
+# ECMA-48 does not include the VT100 indexing and scroll-margins.  It has its
+# own variation.
+ecma+index|ECMA-48 scroll up/down,
+	indn=\E[%p1%dS, rin=\E[%p1%dT,
+
 # 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, 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, dispc=\E=%p1%dg, ech=\E[%p1%dX,
-	hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-	il=\E[%p1%dL, indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT,
+	cbt=\E[Z, clear=\Ec, cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C,
+	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch=\E[%p1%dP,
+	dispc=\E=%p1%dg, ech=\E[%p1%dX, hpa=\E[%i%p1%dG, hts=\EH,
+	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, rc=\E7,
 	rmam=\E[?7l, sc=\E7, smam=\E[?7h, tbc=\E[g,
-	vpa=\E[%i%p1%dd,
+	vpa=\E[%i%p1%dd, use=ansi+local, use=ecma+index,
 
 #### ANSI/ECMA-48 terminals and terminal emulators
 #
@@ -482,20 +512,20 @@
 # 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,
+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,
+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,
+ansi-mtabs|any ANSI terminal with pessimistic assumptions (relative addressing),
 	it#8,
 	ht=^I, use=ansi-mini, use=ansi+local1,
 
@@ -526,17 +556,15 @@
 # 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,
+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,
+	bel=^G, clear=\E[;H\E[2J, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M$<5*/>,
+	ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[L$<5*/>, ind=\ED,
+	kf1=\EOP, kf2=\EOR, kf4=\EOS, nel=\r\ED, ri=\EM, rmir=\E[4l,
+	rmso=\E[m, rmul=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+	use=ansi+arrows, use=ansi+csr, use=ansi+local1,
 
 # Procomm and some other ANSI emulations don't recognize all of the ANSI-
 # standard capabilities.  This entry deletes <cuu>, <cuf>, <cud>, <cub>, and
@@ -548,15 +576,14 @@
 # <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),
+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[3g,
+	cols#80, lines#24,
+	bel=^G, cr=\r, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M,
+	home=\E[H, ht=^I, il1=\E[L, ind=\n, use=ansi+arrows,
+	use=ansi+erase, use=ansi+inittabs, use=ansi+local1,
 	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),
@@ -564,7 +591,7 @@
 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,
+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,
@@ -579,19 +606,52 @@
 # 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[3g,
-	vpa=\E[%i%p1%dd, use=pcansi-m,
+	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,
+	kcbt=\E[Z, kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
+	rep=%p1%c\E[%p2%{1}%-%db, s0ds=\E(B, s1ds=\E)B,
+	s2ds=\E*B, s3ds=\E+B, vpa=\E[%i%p1%dd, use=ansi+local,
+	use=ecma+index, use=pcansi-m,
 
+# ECMA-48 addresses three of the four capabilities here:
+#
+# u6 -
+#	8.3.14 CPR - ACTIVE POSITION REPORT
+#	Notation: (Pn1;Pn2) Representation: CSI Pn1;Pn2 05/02
+#	Parameter default values: Pn1 = 1; Pn2 = 1
+#
+# u7
+#	8.3.35 DSR - DEVICE ST A TUS REPORT
+#	Notation: (Ps) Representation: CSI Ps 06/14
+#	Parameter default value: Ps = 0
+#	DSR is used either to report the status of the sending device or to
+#	request a status report from the receiving device, depending on the
+#	parameter values:
+#	6 a report of the active presentation position or of the active data
+#	  position in the form of ACTIVE POSITION REPORT (CPR) is requested
+#
+# u9 -
+#	8.3.24 DA - DEVICE ATTRIBUTES
+#	Notation: (Ps) Representation: CSI Ps 06/03
+#	Parameter default value: Ps = 0
+#	With a parameter value not equal to 0, DA is used to identify the
+#	device which sends the DA.  The parameter value is a device type
+#	identification code according to a register which is to be established. 
+#	If the parameter value is 0, DA is used to request an identifying DA
+#	from a device.
+#
+# DEC (and most "ANSI") terminals reply with a private-mode ("?") sequence,
+# but that register "which is to be" in ECMA-48 was never established.
+# For terminals that support DA1, a more specific u8 capability is preferred,
+# except for those (such as xterm) which can be configured to return different
+# responses.
+ansi+cpr|ncurses extension for ANSI CPR,
+	u6=\E[%i%d;%dR, u7=\E[6n,
 ansi+enq|ncurses extension for ANSI ENQ,
-	u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c,
-	u9=\E[c,
+	u8=\E[?%[;0123456789]c, u9=\E[c, use=ansi+cpr,
+# DEC terminals provided DECID, subsumed into DA1:
+decid+cpr|ncurses extension for DECID,
+	u8=\E[?%[;0123456789]c, u9=\EZ, use=ansi+cpr,
 
 # ansi -- this terminfo expresses the largest subset of X3.64 that will fit in
 # standard terminfo.  Assumes ANSI.SYS-compatible attributes and color.
@@ -602,11 +662,11 @@
 # 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,
+# 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,
+ansi-generic|ansiterm|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,
@@ -621,15 +681,17 @@
 # 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,
+#
+# DOS 2.0 (January 1983) documented these features in
+# Chapter 13, "Using Extended Screen and Keyboard Control" -TD
+ansi.sys-old|ANSI.SYS under PC-DOS 2.0,
 	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"p, 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,
+	clear=\E[2J, cub1=^H, cup=\E[%i%p1%d;%p2%dH, el=\E[k,
+	home=\E[H, is2=\E[m\E[?7h, kcub1=^H, kcud1=\n, kcuf1=^L,
+	kcuu1=^K, khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s"p,
+	rc=\E[u, rmam=\E[?7l, sc=\E[s, smam=\E[?7h, use=ansi+cpr,
+	use=ansi+local1, use=klone+color, use=klone+sgr8,
 
 # Keypad:	Home=\0G	Up=\0H	PrPag=\0I
 #		ka1,kh		kcuu1		kpp,ka3
@@ -652,7 +714,7 @@
 #
 # <pfkey> capability for F1-F48 -TD
 ansi.sys|ANSI.SYS 3.1 and later versions,
-	el=\E[K, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
+	el=\E[K, ka1=\0G, ka3=\0I, kb2=\0L, 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,
@@ -664,8 +726,10 @@
 	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,
-	pfkey=\E[0;%?%p1%{11}%<%t%'\:'%e%p1%{13}%<%t%'z'%e%p1%{23}%<%t%'G'%e%p1%{25}%<%t%'p'%e%p1%'#'%<%t%'E'%e%p1%'%'%<%t%'f'%e%p1%'/'%<%t%'C'%e%{92}%;%p1%+%d;%p2"%s"p,
-	use=ansi.sys-old,
+	pfkey=\E[0;%?%p1%{11}%<%t%':'%e%p1%{13}%<%t%'z'%e%p1%{23}%<
+	      %t%'G'%e%p1%{25}%<%t%'p'%e%p1%'#'%<%t%'E'%e%p1%'%'%<%t
+	      %'f'%e%p1%'/'%<%t%'C'%e%{92}%;%p1%+%d;%p2"%s"p,
+	use=ansi+arrows, use=ansi.sys-old,
 
 #
 # Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
@@ -681,9 +745,12 @@
 # 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,
+	is2=U2\sPC-DOS\s3.1\sANSI.SYS\swith\skeypad\sredefined\sfor
+	    \svi\s9-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.
@@ -695,7 +762,8 @@
 # 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,
+	is2=U4\sPC-DOS\sPublic\sDomain\sNANSI.SYS\swith\skeypad
+	    \sredefined\sfor\svi\s9-29-86\n\E[;75;8p,
 	use=ansi.sysk,
 
 #### Atari ST terminals
@@ -704,12 +772,16 @@
 #
 tw52|tw52-color|Toswin window manager with color,
 	bce,
-	colors#16, pairs#256,
+	colors#16, pairs#0x100,
 	oc=\Eb?\Ec0, op=\Eb?\Ec0,
-	setab=\Ec%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
-	setaf=\Eb%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
-	setb=\Ec%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
-	setf=\Eb%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
+	setab=\Ec%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1
+	      %{48}%+%c,
+	setaf=\Eb%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1
+	      %{48}%+%c,
+	setb=\Ec%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1
+	     %{48}%+%c,
+	setf=\Eb%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1
+	     %{48}%+%c,
 	use=tw52-m,
 tw52-m|Toswin window manager monochrome,
 	ul,
@@ -722,102 +794,112 @@
 	lines#30, use=at-color,
 st52-color|at-color|atari-color|atari_st-color|Atari ST with color,
 	bce,
-	colors#16, pairs#256,
+	colors#16, pairs#0x100,
 	is2=\Ev\Eq\Ee\Eb1\Ec0, rs2=\Ev\Eq\Ee\Eb1\Ec0,
-	setab=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
-	setaf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
-	setb=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
-	setf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
+	setab=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}
+	      %=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1
+	      %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t:%e
+	      %p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}
+	      %=%t6%e?,
+	setaf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}
+	      %=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1
+	      %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t:%e
+	      %p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}
+	      %=%t6%e?,
+	setb=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}
+	     %=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1
+	     %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t:%e
+	     %p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=
+	     %t6%e?,
+	setf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}
+	     %=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1
+	     %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t:%e
+	     %p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=
+	     %t6%e?,
 	use=st52,
 st52|st52-m|at|at-m|atari|atari-m|atari_st|atarist-m|Atari ST,
 	am, eo, mir, npc,
-	cols#80, it#8, lines#24,
-	bel=^G, civis=\Ef, clear=\EE, 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, el1=\Eo, home=\EH, ht=^I,
-	il1=\EL, ind=^J, is2=\Ev\Eq\Ee, kLFT=\Ed, kRIT=\Ec, kbs=^H,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\177,
-	kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es,
-	kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EQ,
-	kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV, kf8=\EW,
-	kf9=\EX, khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb, kpp=\Ea,
-	kund=\EK, nel=^M^J, rc=\Ek, rev=\Ep, ri=\EI, rmso=\Eq,
-	rs2=\Ev\Eq\Ee, sc=\Ej, sgr0=\Eq, smso=\Ep,
-tw100|toswin vt100 window mgr,
+	civis=\Ef, clear=\EE, cnorm=\Ee, dl1=\EM, el1=\Eo, il1=\EL,
+	is2=\Ev\Eq\Ee, kLFT=\Ed, kRIT=\Ec, kdch1=^?, kf1=\EP,
+	kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es, kf15=\Et,
+	kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EQ, kf20=\Ey,
+	kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX,
+	khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK,
+	rc=\Ek, rev=\Ep, rmso=\Eq, rs2=\Ev\Eq\Ee, sc=\Ej, sgr0=\Eq,
+	smso=\Ep, use=vt52-basic,
+tw100|Toswin VT100 window manager,
 	eo, mir, msgr, xon,
 	colors#8, cols#80, it#8, lines#24, pairs#64, vt#3,
-	acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, civis=\Ef,
-	clear=\E[2J\E[H, cnorm=\Ee, 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, dch1=\Ea, dim=\E[2m, 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@, il1=\EL, ind=^J, is2=\E<\E)0, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\177,
-	kf1=\EOP, kf10=\EOY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es,
-	kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EOQ,
-	kf20=\Ey, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
-	kf8=\EOW, kf9=\EOX, khlp=\EH, khome=\E\EE, kich1=\EI,
-	knp=\Eb, kpp=\E\Ea, kund=\EK, ll=\E[24H, nel=\EE,
-	oc=\E[30;47m, op=\E[30;47m, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=^O, rmcup=\E[?7h, rmir=\Ei, rmkx=\E[?1l\E>,
+	clear=\E[2J\E[H, cnorm=\Ee, cr=\r, cub1=^H, cud1=\EB,
+	cuf1=\EC, cup=\E[%i%p1%d;%p2%dH, cuu1=\EA, dch1=\Ea,
+	dim=\E[2m, 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@, il1=\EL,
+	ind=\n, is2=\E<\E)0, kdch1=^?, kf1=\EOP, kf10=\EOY, kf11=\Ep,
+	kf12=\Eq, kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev,
+	kf18=\Ew, kf19=\Ex, kf2=\EOQ, kf20=\Ey, kf3=\EOR, kf4=\EOS,
+	kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, khlp=\EH,
+	khome=\E\EE, kich1=\EI, knp=\Eb, kpp=\E\Ea, kund=\EK,
+	ll=\E[24H, nel=\EE, oc=\E[30;47m, op=\E[30;47m, rev=\E[7m,
+	ri=\EM, rmacs=^O, rmcup=\E[?7h, rmir=\Ei, rmkx=\E[?1l\E>,
 	rmso=\E[m, rmul=\E[m,
 	rs1=\E<\E[20l\E[?3;6;9l\E[r\Eq\E(B\017\E)0\E>,
-	sc=\E7,
-	setb=\E[4%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=%t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'%=%t3%e7%;m,
-	setf=\E[3%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=%t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'%=%t3%e7%;m,
+	setb=\E[4%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=
+	     %t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'
+	     %=%t3%e7%;m,
+	setf=\E[3%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=
+	     %t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'
+	     %=%t3%e7%;m,
 	sgr0=\E[m, smacs=^N, smcup=\E[?7l, smir=\Eh,
 	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+	use=ansi+apparrows, use=ansi+csr, use=ansi+local,
+
 # The entries for stv52 and stv52pc probably need a revision.
 stv52|MiNT virtual console,
 	am, msgr,
-	cols#80, it#8, lines#30,
-	bel=^G, blink=\Er, bold=\EyA, civis=\Ef, clear=\EE,
-	cnorm=\E. \Ee, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E.",
-	dim=\Em, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
-	ind=\n$<2*/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\177, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq,
-	kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew,
-	kf19=\Ex, kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET,
-	kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE,
-	kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK, nel=\r\n$<2*/>,
-	op=\Eb@\EcO, rev=\Ep, ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_,
-	rmso=\Eq, rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_,
-	smcup=\Ev\Ee\Ez_, smso=\Ep, smul=\EyH,
+	lines#30,
+	blink=\Er, bold=\EyA, civis=\Ef, clear=\EE, cnorm=\E. \Ee,
+	cub1=^H, cvvis=\E.", dim=\Em, dl1=\EM, il1=\EL, ind=\n$<2*/>,
+	kdch1=^?, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er,
+	kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex,
+	kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV,
+	kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb,
+	kpp=\Ea, kund=\EK, nel=\r\n$<2*/>, op=\Eb@\EcO, rev=\Ep,
+	ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_, rmso=\Eq, rmul=\EzH,
+	rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_, smso=\Ep,
+	smul=\EyH, use=vt52-basic,
 stv52pc|MiNT virtual console with PC charset,
 	am, msgr,
-	cols#80, it#8, lines#30,
-	acsc=+\257\,\256-\^.v0\333I\374`\177a\260f\370g\361h\261j\331k\277l\332m\300n\305o\377p-q\304r-s_t+u+v+w+x\263y\363z\362{\343|\366}\234~\371,
-	bel=^G, blink=\Er, bold=\EyA, civis=\Ef, clear=\EE,
-	cnorm=\E. \Ee, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E.",
-	dim=\Em, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
-	ind=\n$<2*/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\177, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq,
-	kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew,
-	kf19=\Ex, kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET,
-	kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE,
-	kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK, nel=\r\n$<2*/>,
-	rev=\Ep, ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_, rmso=\Eq,
-	rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_,
-	smso=\Ep, smul=\EyH,
+	lines#30,
+	acsc=+\257\,\256-\^.v0\333I\374`\177a\260f\370g\361h\261j
+	     \331k\277l\332m\300n\305o\377p-q\304r-s_t+u+v+w+x\263y
+	     \363z\362{\343|\366}\234~\371,
+	blink=\Er, bold=\EyA, civis=\Ef, clear=\EE, cnorm=\E. \Ee,
+	cub1=^H, cvvis=\E.", dim=\Em, dl1=\EM, il1=\EL, ind=\n$<2*/>,
+	kdch1=^?, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er,
+	kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex,
+	kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV,
+	kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb,
+	kpp=\Ea, kund=\EK, nel=\r\n$<2*/>, rev=\Ep, ri=\EI$<2*/>,
+	rmcup=\Ev\E. \Ee\Ez_, rmso=\Eq, rmul=\EzH,
+	rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_, smso=\Ep,
+	smul=\EyH, use=vt52-basic,
 
 # From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
-atari-old|atari st,
+atari-old|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,
+	ed=\EJ, el=\EK, ht=^I, il1=\EL, ri=\EI, rmso=\Eq, sgr0=\Eq,
+	smso=\Ep, use=vt52+arrows,
 # 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,
+	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H, use=vt220-base,
 # 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
@@ -826,744 +908,42 @@
 st52-old|Atari ST with VT52 emulation,
 	am, km,
 	cols#80, lines#25,
-	bel=^G, civis=\Ef, clear=\EH\EJ, cnorm=\Ee, cr=^M, cub1=\ED,
+	bel=^G, civis=\Ef, clear=\EH\EJ, cnorm=\Ee, cr=\r, 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,
+	ind=\n, 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,
+	kil1=\E#R, kind=\E#2, kri=\E#8, lf0=f10, nel=\r\n, rc=\Ek,
 	ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq,
 	smcup=\Ee, smso=\Ep,
 
-#### Apple Terminal.app
-
-# nsterm*|Apple_Terminal - AppKit Terminal.app
-#
-# Terminal.app is a Terminal emulator bundled with NeXT's NeXTStep and
-# OPENSTEP/Mach operating systems, and with Apple's Rhapsody, Mac OS X
-# Server and Mac OS X operating systems. There is also a
-# "terminal.app" in GNUStep, but I believe it to be an unrelated
-# codebase and I have not attempted to describe it here.
-#
-# For NeXTStep, OPENSTEP/Mach, Rhapsody and Mac OS X Server 1.0, you
-# are pretty much on your own. Use "nsterm-7-m" and hope for the best.
-# You might also try "nsterm-7" and "nsterm-old" if you suspect your
-# version supports color.
-#
-# To determine the version of Terminal.app you're using by running:
-#
-#     echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION"
-#
-# For Apple_Terminal v309+, use "nsterm-256color" (or "nsterm-bce")
-#
-# For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm")
-#
-# For Apple_Terminal v71+/v100+, use "nsterm-bce".
-#
-# For Apple_Terminal v51+, use "nsterm-7-c" or "nsterm-7-c-s".
-#
-# For Apple_Terminal v41+, use "nsterm-old", or "nsterm-s".
-#
-# For all earlier versions (Apple_Terminal), try "nsterm-7-m"
-# (monochrome) or "nsterm-7" (color); "nsterm-7-m-s" and "nsterm-7-s"
-# might work too, but really you're on your own here since these
-# systems are very obsolete and I can't test them. I do welcome
-# patches, though :).
-
-# Other Terminals:
-#
-# For GNUstep_Terminal, you're probably best off using "linux" or
-# writing your own terminfo.
-
-# For MacTelnet, you're on your own. It's a different codebase, and
-# seems to be somewhere between "vt102", "ncsa" and "xterm-color".
-
-# For iTerm.app, see "iterm".
-
-#
-# 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 (in earlier Mac OS X
-# versions) or only accepts status lines consisting entirely of
-# characters from the first 256 Unicode positions (including C1 but
-# not C0 or DEL.)
-#
-# The Mythology* of AppKit Terminal.app:
-#
-# In the days of NeXTSTep 0.x and 1.x there were two incompatible
-# bundled terminal emulators, Shell and Terminal. Scott Hess wrote a
-# shareware replacement for Terminal called "Stuart" which NeXT bought
-# and used as the basis for the Terminal.app in NeXTstep 2+,
-# OPENSTEP/Mach, Apple Rhapsody, Mac OS X Server 1.0, and Mac OS X. I
-# don't know the TERM_PROGRAM and TERM_PROGRAM_VERSION settings or
-# capabilities for the early versions, but I believe that the
-# TERM_PROGRAM_VERSION may have been reset at some point.
-#
-# The early versions were tailored to the NeXT character set. Sometime
-# after the Apple aquisition the encoding was swiched to MacRoman
-# (initally with serious altcharset bugs due to incomplete conversion
-# of the old NeXT code,) and then later to UTF-8. Alos sometime during
-# or just prior to the early days of Mac OS X, the Terminal grew ANSI
-# 8-color support (initially buggy when combined with attributes, but
-# that was later fixed.) More recently, around Mac OS X version 10.3
-# or so (Terminal.app v100+) xterm-like 16-color support was added. In
-# some versions (for instance 133-1 which shipped with Mac OS X
-# version 10.4) this suffered from the <bce> bug, but that seems to
-# have been fixed in Mac OS X version 10.5 (Terminal.app v240.2+).
-#
-# In the early days of Mac OS X the terminal was fairly buggy and
-# would routinely crash under load. Many of these bugs seem to have
-# been fixed around Mac OS X version 10.3 (Terminal.app v100+) but
-# some may still remain. This change seems to correspond to
-# Terminal.app reporting "xterm-color" as $TERM rather than "vt100" as
-# it did previously.
-#
-# * This may correspond with what actually happened, but I don't
-#   know. It is based on guesswork, hearsay, private correspondence,
-#   my faulty memory, and the following online sources and references:
-#
-# [1] "Three Scotts and a Duane" by Simson L. Garfinkel
-# http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/93.8/93.8.Dec.Community1.html
-#
-# [2] NeXTSTEP entry from Wikipedia, the free encyclopedia
-# https://secure.wikimedia.org/wikipedia/en/wiki/Nextstep
-#
-# * 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-old"
-#     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-old"
-#          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,
-	dim=\E[2m, 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, invis=\E[8m, 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%;%?%p5%t;2%;%?%p7%t;8%;m,
-	sgr0=\E[m, 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%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, use=nsterm+7,
-
-nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
-	acsc=+\335\,\334-\366.\3770#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245,
-	enacs=\E(B\E)0, rmacs=^O,
-	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\017, smacs=^N, use=nsterm+7,
-
-# compare with xterm+sl-twm
-nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
-	wsl#50, use=xterm+sl-twm,
-
-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-old|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,
-
-# In Mac OS X version 10.5 the format of the preferences has changed
-# and a new, more complex technique is needed, e.g.,
-#
-#       python -c 'import sys,objc;NSUserDefaults=objc.lookUpClass(
-#       "NSUserDefaults");ud=NSUserDefaults.alloc();
-#       ud.init();prefs=ud.persistentDomainForName_(
-#       "com.apple.Terminal");prefs["Window Settings"][
-#       prefs["Default Window Settings"]]["TerminalType"
-#       ]=sys.argv[1];ud.setPersistentDomain_forName_(prefs,
-#       "com.apple.Terminal")' nsterm-16color
-#
-# and it is still not settable from the preferences dialog. This is
-# tracked under rdar://problem/7365108 and rdar://problem/7365134
-# in Apple's bug reporter.
-#
-# In OS X 10.7 (Leopard) the TERM which can be set in the preferences dialog
-# defaults to xterm-color.  Alternative selections are ansi, dtterm, rxvt,
-# vt52, vt100, vt102 and xterm.
-nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
-	bw@, mir, npc,
-	civis=\E[?25l, cnorm=\E[?25h, dch=\E[%p1%dP, dch1=\E[P,
-	flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
-	ich=\E[%p1%d@, ich1=\E[@, kdch1=\E[3~, kend=\E[F,
-	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[22~, kf19=\E[33~, kf20=\E[34~, kf5=\E[15~,
-	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
-	knp=\E[6~, kpp=\E[5~, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
-	smcup=\E7\E[?47h, smir=\E[4h, vpa=\E[%i%p1%dd,
-	kLFT5=\E[5D, kRIT5=\E[5C, use=nsterm-c-s-acs,
-
-# The versions of Terminal.app in Mac OS X version 10.3.x seem to have
-# the background color erase feature. The newer version 240.2 in Mac OS X
-# version 10.5 does not.
-#
-# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
-# and D P Schreber comparing to nsterm-c-s-acs.
-#
-# In Mac OS X version 10.4 and earlier, D P Schreber notes that $TERM
-# can be set in Terminal.app, e.g.,
-#
-#	defaults write com.apple.Terminal TermCapString nsterm-bce
-#
-# and that it is not set in Terminal's preferences dialog.
-#
-# Modified for OS X 10.8, omitting bw based on testing with tack -TD
-#
-# Notes:
-# * The terminal description matches the default settings.
-# * The keyboard is configurable via a dialog.
-# * By default khome, kend, knext and kprev are honored only with a
-#   shift-modifier.
-# * There are bindings for control left/right arrow (but not up/down).
-#   Added those to nsterm-16color, which is the version used for OS X 10.6
-# * "Allow VT100 application keypage mode" is by default disabled.
-#   There is no way to press keypad-comma unless application mode is enabled
-#   and used.
-# * 132-column mode stopped working during vttest's tests.  Consider it broken.
-# * CHT, REP, SU, SD are buggy.
-# * ECH works (also in Leopard), but is not used here for compatibility.
-# * The terminal preferences dialog replaces xterm-color by xterm-16color and
-#   xterm-256color.  However, it adds "nsterm", so it is possible to use the
-#   nsterm entry from this file to override the MacPorts (20110404) or
-#   system (20081102) copy of this file.
-# + In OS X 10.8 (Mountain Lion) the TERM which can be set in the preferences
-#   dialog defaults to xterm-256color.  Alternative selections are ansi,
-#   dtterm, rxvt, vt52, vt100, vt102, xterm and xterm-16color.  However,
-#   the menu says "Declare terminal as" without promising to actually emulate
-#   the corresponding terminals.  Indeed, changing TERM does not affect the
-#   emulation itself.  This means that
-#   + the function-keys do not match for dtterm for kf1-kf4 as well as
-#     khome/kend
-#   + the color model is the same for each setting of TERM (does not match
-#     ansi or dtterm).
-#   + the shift/control/meta key modifiers from rxvt and xterm variants are not
-#     recognised except for a few special cases, i.e., kRIT5 and kLFT5.
-#   + the vt52 emulation does not give a usable shell because screen-clearing
-#     does not work as expected.
-#   + selecting "xterm" or "xterm-16color" sets TERM to "xterm-256color".
-# + OSX 10.9 (Yosemite) added more extended keys in the default configuration
-#   as well as unmasking F10 (which had been used in the window manager). Those
-#   keys are listed in this entry.
-nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce),
-	bce, use=nsterm-16color,
-
-# This is tested with OS X 10.8 (Mountain Lion), 2012/08/11
-#	TERM_PROGRAM_VERSION=309
-# Earlier reports state that these differences also apply to OS X 10.7 (Lion),
-#	TERM_PROGRAM_VERSION=303
-nsterm-256color|Terminal.app in OS X 10.8,
-	use=xterm+256setaf, use=nsterm-bce,
-
-nsterm-build326|Terminal.app in OS X 10.9,
-	kDC=\E[3;2~, kLFT=\E[1;2D, kRIT=\E[1;2C, kcbt=\E[Z,
-	kf18=\E[32~, kDC5=\E[3;5~, kDC7=\E[3;5~, kLFT3=\Eb,
-	kLFT5=\E[1;5D, kRIT3=\Ef, kRIT5=\E[1;5C,
-	use=nsterm-256color,
-
-# actually "343.7"
-nsterm-build343|Terminal.app in OS X 10.10,
-	kend=\EOF, khome=\EOH, use=nsterm-build326,
-
-# This is an alias which should always point to the "current" version
-nsterm|Apple_Terminal|AppKit Terminal.app,
-	use=nsterm-build343,
-
-# iTerm.app from http://iterm.sourceforge.net/ is an alternative (and
-# more featureful) terminal emulator for Mac OS X. It is similar
-# enough in capabilities to nsterm-16color that I have derived this
-# description from that one, but as far as I know they share no code.
-# Many of the features are user-configurable, but I attempt only to
-# describe the default configuration.
-#
-# NOTE: When tack tests (csr) + (nel) iTerm.app crashes, so (csr) is
-# disabled.
-iTerm.app|iterm|iTerm.app terminal emulator for Mac OS X,
-	bce, bw@,
-	csr@, dim@, kend=\EOF, khome=\EOH,
-	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+256setaf, use=nsterm-16color,
-
-# 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, 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,
-
-
 #### 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,
+	cols#80, it#8, lines#25, ncv#5,
+	bel=^G, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, ech=\E[%p1%dX, el1=\E[1K,
+	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ind=\n,
+	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~, kspd=^Z,
+	nel=\r\n, op=\E[m, rev=\E[7m, ri=\EM, rmkx=\E[?4l, rmso=\E[m,
+	rmul=\E[24m, rs1=\Ec, setb=\E[%p1%{40}%+%cm,
+	setf=\E[%p1%{30}%+%cm, sgr0=\E[0;10m, smkx=\E[?4h,
+	smso=\E[7m, smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n,
+	vpa=\E[%i%p1%dd, use=ansi+arrows, use=ansi+csr,
+	use=ansi+erase, use=ansi+idc, use=ansi+idl,
+	use=ansi+local, use=klone+color, use=vt220+pcedit,
 
 #### Linux consoles
 #
 
+# release 1.2.13: 1995/03
+#
 # This entry is good for the 1.2.13 or later version of the Linux console.
 #
 # ***************************************************************************
@@ -1587,77 +967,130 @@
 # All linux kernels since 1.2.13 (at least) set the screen size
 # themselves; this entry assumes that capability.
 #
-linux-basic|linux console,
+linux-basic|Linux console (basic),
 	am, bce, eo, mir, msgr, xenl, xon,
 	it#8, ncv#18, U8#1,
-	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,
-	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, 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%;%?%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,
+	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, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+	dim=\E[2m, ech=\E[%p1%dX, el1=\E[1K,
+	flash=\E[?5h$<200/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+	ht=^I, hts=\EH, ind=\n, kb2=\E[G, kbs=^?, kcbt=\E[Z, 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~, kmous=\E[M, kspd=^Z,
+	nel=\r\n, ri=\EM, rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m,
+	rs1=\Ec\E]R,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
+	    %t;2%;%?%p6%t;1%;%?%p9%t;11%;m,
+	smam=\E[?7h, tbc=\E[3g, vpa=\E[%i%p1%dd, use=ansi+arrows,
+	use=ansi+csr, use=ansi+erase, use=ansi+idc, use=ansi+idl,
+	use=ansi+local, use=vt220+pcedit, use=vt102+enq,
+	use=klone+sgr, use=ecma+color, use=linux+sfkeys,
+
+linux+decid|ncurses extension for Linux console DECID,
+	u8=\E[?6c, use=decid+cpr,
+
+linux+sfkeys|shifted function-keys for Linux console,
+	kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+	kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
 
 linux-m|Linux console no color,
 	colors@, pairs@,
 	setab@, setaf@, setb@, setf@, use=linux,
 
+# release 1.3: 1995/06
+#
 # 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,
+linux-c-nc|Linux console with color-change,
 	ccc,
-	initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
+	initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/
+	      %02x%p4%{255}%*%{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,
+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%{255}%*%{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%{255}%*%{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%{255}%*%{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%;,
+	initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}
+	      %*%{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%{255}%*%{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%{255}%*%{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,
 
+# release 2.2: 1999/01
+#
 # 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>.
-linux2.2|linux 2.2.x console,
+linux2.2|Linux 2.2.x console,
 	civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
 	cvvis=\E[?25h\E[?8c, use=linux-c-nc,
 
+# release 2.6: 2003/12 - 2004/12
+#
 # Linux 2.6.x has a fix for SI/SO to work with UTF-8 encoding added here:
-#	http://lkml.indiana.edu/hypermail/linux/kernel/0602.2/0868.html
-# Using SI/SO has the drawback that it confuses screen.  SCS would work.
-# However, SCS is buggy (see comment in Debian #515609) -TD
-# Further, this breaks longstanding workarounds for Linux console's line
-# drawing (see Debian 665959) -TD
-linux2.6|linux 2.6.x console,
-	rmacs=^O,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;,
+#	http://lkml.iu.edu/hypermail/linux/kernel/0602.2/0738.html
+# Although the kernel has mappings for these, they were not in the default
+# font (tested with Debian and Fedora):
+#	'`' diamond
+#	'~' scan line 1
+#	'p' scan line 3
+#	'r' scan line 7
+#	'_' scan line 9
+#
+# The fix for SI/SO is part of a configurable (i.e., "optional") kernel feature
+# misleadingly called CONFIG_CONSOLE_TRANSLATIONS.  Disabling that not only
+# omits the line-drawing using SI/SO, but also part/all of the Unicode feature:
+#
+#    https://cateee.net/lkddb/web-lkddb/CONSOLE_TRANSLATIONS.html
+#	"This enables support for font mapping and Unicode translation on virtual consoles."
+#
+# This mailing list thread in July 2008 illustrates:
+#
+#    https://marc.info/?t=121734656700005&r=1&w=4
+#	"commit a29ccf6f823a84d89e1c7aaaf221cf7282022024 break console on slackware 12.1"
+#
+# The change which made it configurable was to reduce the size for use in
+# embedded systems.  Some background is found in
+#
+#    https://lwn.net/Articles/284767/
+#	"An interview with the new embedded maintainers"
+linux2.6|Linux 2.6.x console,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz{{||}}~~,
+	enacs=\E)0, rmacs=^O,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
+	    %t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smacs=^N, use=linux2.2,
 
 # The 3.0 kernel adds support for clearing scrollback buffer (capability E3).
 # It is the same as xterm's erase-saved-lines feature.
-linux3.0|linux 3.0 kernels,
-	E3=\E[3J, use=linux2.6,
+#
+# Linux 3.0 was released in July 2011.  The keyboard utilities (kbd) are
+# used for configuring its keyboard mappings.
+#
+# kbd 1.14 was released before that (January 2008), but due to its placement
+# late in the Linux 2.6.x series had no immediate effect for most users.  That
+# provided a default mapping for shift-tab to the (misnamed) Meta_Tab, i.e.,
+# the same as Alt-Tab.
+#
+# The suggested mapping for the conventional \E[Z is provided in this entry as
+# an extended key to lessen user surprise -TD
+linux3.0|Linux 3.0 kernels,
+	kcbt=\E^I, E3=\E[3J, kcbt2=\E[Z, use=linux2.6,
 
 # This is Linux console for ncurses.
-linux|linux console,
-	use=linux2.2,
+linux|Linux console,
+	use=linux3.0,
 
 # Subject: linux 2.6.26 vt back_color_erase
 # Changes to the Linux console driver broke bce model as reported in
@@ -1665,37 +1098,44 @@
 # apparently from
 #	http://lkml.org/lkml/2008/4/26/305
 #	http://lkml.org/lkml/2008/10/3/66
-linux2.6.26|linux console w/o bce,
+linux2.6.26|Linux console w/o bce,
 	bce@, use=linux2.6,
 
 # 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,
+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,
+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,
+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,
+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~~,
+linux-vt|Linux console using VT codes for graphics,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz~~,
 	rmacs=\E(K, rmpch@, sgr@, sgr0=\E[0m\E(K\017, smacs=\E(0,
 	smpch@, use=linux,
 
+# release: 0.3.9b 1997/01 to 2000/05
+#
 # 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
@@ -1706,20 +1146,84 @@
 #	\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,
+kon|kon2|Kanji ON Linux console,
+	am, bce, ccc, eo, eslok, hs, mir, msgr, xenl, xon,
+	it#8, ncv#18,
+	bel=^G, civis=\E[?25l, cnorm=\E[?25h, cr=\r, cub1=^H,
+	cud1=\n, cup=\E[%i%p1%d;%p2%dH, dim=\E[2m,
+	dsl=\E[?H\E[?E, el1=\E[1K, fsl=\E[?F, home=\E[H,
+	hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ind=\n,
+	initc=\E]P%p1%x%p2%02x%p3%02x%p4%02x, kb2=\E[G, kbs=^?,
+	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~, kspd=^Z,
+	nel=\r\n, op=\E[37;40m, ri=\EM, rmso=\E[27m, rmul=\E[24m,
+	rs1=\Ec,
+	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,
+	sgr0=\E[0;10m, tbc=\E[3g, tsl=\E[?T, u8=\E[?6c,
+	vpa=\E[%i%p1%dd, use=ansi+arrows, use=ansi+csr,
+	use=ansi+enq, use=ansi+erase, use=ansi+idc, use=ansi+idl,
+	use=ansi+local, use=ansi+sgrbold, use=ecma+sgr,
+	use=klone+color, use=vt220+pcedit,
+
+# release: 0.4.7 2005/05
+#
+jfbterm|japanese framebuffer terminal,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz{{||}}~~,
+	sgr0=\E[0m, use=kon,
+
+# FbTerm
+# Another variant.  There are two parts (src, src/lib) with the latter
+# comprising the escape-sequence parsing.  The copyright notice on that
+# says it is based on GTerm by Timothy Miller.
+#
+# The original developer "dragchan" has left, but as of March 2017 there is
+# (still dead) code from May 2015 here:
+#	https://github.com/izmntuk/fbterm
+#
+# The acsc string may be incorrect.
+#
+# Not used here, the program recognizes escapes for italic, underline and
+# dim, rendering those as green, cyan and gray respectively.
+fbterm|FbTerm for Linux with framebuffer,
+	colors#0x100, pairs#0x10000,
+	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,
+	initc=\E[3;%p1%d;%p2%d;%p3%d;%p4%d}, rmacs=\E[10m,
+	setab=\E[2;%p1%d}, setaf=\E[1;%p1%d},
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
+	    %t;2%;%?%p6%t;1%;%?%p9%t;11%;m,
+	sgr0=\E[0;10m, smacs=\E[11m, use=linux,
 
 # 16-color linux console entry; this works with a 256-character
 # console font but bright background colors turn into dim ones when
 # you use a 512-character console font. This uses bold for bright
 # foreground colors and blink for bright background colors.
-linux-16color|linux console with 16 colors,
-	colors#16, ncv#63, pairs#256,
+#
+# Interestingly, the original version of this entry in 2009 used a documented
+# (but nonstandard) SGR 21, which was supported in the Linux console since 1992
+# as an equivalent for SGR 22.  Long after (early 2018), someone modified the
+# console driver to make it ignore SGR 21 because the ECMA-48 standard
+# suggested a different use for that particular code:
+#
+# https://github.com/torvalds/linux/commit/65d9982d7e523a1a8e7c9af012da0d166f72fc56#diff-7da3c215d12c9f6b88e1a37d38b116f0
+#
+# Two years later, someone (unfamiliar with ECMA-48 this time) documented it:
+#
+# https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/commit/man4/console_codes.4?id=a133a6bc03d751a424fe0a4adea2198757599615
+#
+# For background, refer to the report on bug-ncurses:
+#
+# https://lists.gnu.org/archive/html/bug-ncurses/2019-10/msg00059.html
+linux-16color|Linux console with 16 colors,
+	colors#16, ncv#42, pairs#0x100,
 	setab=\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m,
-	setaf=\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m,
+	setaf=\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;22%;m,
 	use=linux,
 
 # bterm (bogl 0.1.18)
@@ -1732,42 +1236,39 @@
 bterm|bogl virtual terminal,
 	am, bce,
 	colors#8, cols#80, lines#24, pairs#64,
-	acsc=aajjkkllmmqqttuuxx, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
-	cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, 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,
-	op=\E[49m\E[39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m,
-	rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr0=\E[0m, smacs=^N, smso=\E[7m, smul=\E[4m,
+	acsc=aajjkkllmmqqttuuxx, bold=\E[1m, clear=\E[H\E[2J,
+	cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, ed=\E[J,
+	el=\E[K, home=\E[H, ind=\n, kb2=\E[G, kbs=^?, kcbt=\E[Z,
+	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~,
+	kmous=\E[M, kspd=^Z, nel=\r\n, op=\E[49m\E[39m, rev=\E[7m,
+	ri=\EM, rmacs=^O, rmso=\E[27m, rmul=\E[24m,
+	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m, smacs=^N,
+	smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+	use=vt220+pcedit, use=vt220+cvis,
 
 #### Mach
 #
 
 # From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk>
-mach|Mach Console,
-	am, km,
+mach|Mach console,
+	am, km, NQ,
 	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,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=\r, cub1=^H,
+	cud1=\n, cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K,
+	home=\E[H, ht=^I, ind=\n, kbs=^?, 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, 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, use=ansi+arrows,
+	use=ansi+idl, use=ansi+local,
+
+mach-bold|Mach console with bold instead of underline,
 	rmul=\E[0m, smul=\E[1m, use=mach,
-mach-color|Mach Console with ANSI color,
+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,
@@ -1778,20 +1279,23 @@
 #
 # Added nel, hpa, sgr and removed rmacs, smacs based on source -TD
 mach-gnu|GNU Mach,
-	acsc=+>\,<-\^.v0\333`+a\261f\370g\361h\260i#j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+	acsc=+>\,<-\^.v0\333`+a\261f\370g\361h\260i#j\331k\277l
+	     \332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x
+	     \263y\363z\362{\343|\330}\234~\376,
 	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
 	el1=\E[1K, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[@,
-	indn=\E[%p1%dS, invis=\E[8m, nel=\EE, rin=\E[%p1%dT,
-	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,
-	use=mach,
+	invis=\E[8m, nel=\EE,
+	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,
+	use=ecma+index, use=mach,
 
-mach-gnu-color|Mach Console with ANSI color,
+mach-gnu-color|GNU Mach console with ANSI color,
 	colors#8, pairs#64,
 	op=\E[37;40m, rmso=\E[27m, setab=\E[4%p1%dm,
 	setaf=\E[3%p1%dm, use=mach-gnu,
 
 # From: Marcus Brinkmann
-# http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/
+# http://git.savannah.gnu.org/cgit/hurd/hurd.git/log/console/
 #
 # Comments in the original are summarized here:
 #
@@ -1818,34 +1322,29 @@
 #
 # Reading the source, RIS resets cnorm, but not xmous.
 hurd|The GNU Hurd console server,
-	am, bce, bw, eo, km, mir, msgr, xenl, xon,
-	colors#8, it#8, ncv#18, pairs#64,
-	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	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,
+	am, bce, bw, eo, km, mir, msgr, xenl, xon, NQ,
+	it#8, ncv#18,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz{{||}}~~,
+	bel=^G, cbt=\E[Z, clear=\Ec, cr=\r, cub1=^H, cvvis=\E[34l,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
+	el1=\E[1K, flash=\Eg, ht=^I, ich=\E[%p1%d@, ind=\E[S,
+	kb2=\E[G, kbs=^?, kcbt=\E[Z, 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~, kmous=\E[M, kspd=^Z, nel=\r\n, op=\E[39;49m,
+	ri=\E[T, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+	rs1=\EM\E[?1000l,
+	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,
+	smir=\E[4h, grbom=\E[>1l, gsbom=\E[>1h,
+	use=ansi+apparrows, use=ansi+csr, use=ansi+cup,
+	use=ansi+erase, use=ansi+idl, use=ansi+local,
+	use=ansi+rca2, use=ansi+sgrbold, use=vt220+pcedit,
+	use=ecma+index, use=ecma+italics, use=klone+acs,
+	use=klone+color, use=vt220+cvis,
 
 #### QNX
 #
@@ -1858,15 +1357,16 @@
 # 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,
+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,
+	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,
+	cnorm=\Ey1, cr=\r, cub1=^H, cud1=\n, 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,
+	il1=\EE, ind=\n, 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,
@@ -1939,7 +1439,7 @@
 # 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,
+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,
@@ -1947,26 +1447,21 @@
 # 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,
+	colors#8, cols#80, lines#25, ncv#19, pairs#64, wsl#80,
 	acsc=Oa``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	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,
+	bel=^G, clear=\E[2J\E[H, cr=\r, csr=\E[%i%p1%d;%p2%dr,
+	cup=\E[%i%p1%d;%p2%dH$<5>, 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, ich=\E[%p1%d@, ich1=\E[1@,
+	il=\E[%p1%dL, il1=\E[1L, ind=\E[S, 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,
+	kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa, kcmd=\E[G,
+	kcpy=\E[g, kctab=\E[z, 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,
@@ -1978,36 +1473,40 @@
 	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,
+	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, ri=\E[T,
+	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[3g,
-	tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH,
+	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,
+	tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH, use=ansi+arrows,
+	use=ansi+local, use=ansi+rep, use=ansi+inittabs,
+	use=ansi+sgrbold, use=att610+cvis0, use=decid+cpr,
+	use=ecma+index,
 #
-qansi|QNX ansi with console writes,
+qansi|QNX ANSI with console writes,
 	daisy, xhpa, use=qansi-g,
 #
-qansi-t|QNX ansi without console writes,
+qansi-t|QNX ANSI without console writes,
 	crxm, use=qansi,
 #
-qansi-m|QNX ansi with mouse,
+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,
+qansi-w|QNX ANSI for windows,
 	xvpa, use=qansi-m,
 
 #### SCO consoles
@@ -2041,40 +1540,41 @@
 #
 # 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,
+	OTbs, am, bce, eo, xon, NQ,
 	colors#8, cols#80, it#8, lines#25, pairs#64,
-	acsc=+/\,.-\230.\2310[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207,
+	acsc=+/\,.-\230.\2310[5566778899::;;<<==>>FFGGHHIIJJKKLLMMNN
+	     OOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3
+	     yszr{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,
+	cub1=^H, cup=\E[%i%p1%d;%p2%dH, cvvis=\E[=0;12C,
+	dch=\E[%p1%dP, dch1=\E[P, dispc=\E[=%p1%dg, 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[@, ind=\E[S, invis=\E[8m, kbeg=\E[E,
+	kcbt=\E[Z, kdch1=^?, 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, kich1=\E[L,
+	knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8, rev=\E[7m,
+	ri=\E[T, 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, use=ansi+arrows, use=ansi+idl,
+	use=ansi+local, use=ecma+index,
+
 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%e;10%;m,
+	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?
+	    %p7%t;8%;%?%p9%t;12%e;10%;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,
@@ -2100,7 +1600,7 @@
 #
 # F1-F12 generate different codes when shift or control modifiers are used.
 # For example:
-#	F1      	\E[001q
+#	F1		\E[001q
 #	shift F1	\E[013q
 #	control-F1	\E[025q
 #
@@ -2124,38 +1624,34 @@
 	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,
+	cnorm=\E[9/y\E[12/y\E[=6l, cr=\r, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH,
+	cvvis=\E[10/y\E[=1h\E[=2l\E[=6h, ed=\E[J, el=\E[K,
+	el1=\E[1K, home=\E[H, ht=^I, hts=\EH, 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,
+	kRIT=\E[167q, kSPD=\E[218q, kcbt=\E[Z, kdch1=^?,
+	kend=\E[146q, kent=\r, 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,
+	kf8=\E[008q, kf9=\E[009q, 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, use=ansi+arrows, use=ansi+idl, use=ansi+local,
+
 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,
+	is2=\E[?1l\E=\E[?7h, kent=\EOM, 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,
+	ech=\E[%p1%dX, ich=\E[%p1%d@, rmul=\E[24m, rs1=\Ec,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+	use=ecma+italics, use=vt100+enq, use=klone+color,
 	use=iris-ansi-ap,
 
 #### OpenBSD consoles
@@ -2170,41 +1666,62 @@
 # Added several capabilities to pccon+base, reading wsemul_vt100_subr.c -TD
 # Changed kbs to DEL and removed keys that duplicate stty settings -TD
 #
+# Notes from testing with vttest:
+#	fails wrapping test
+#	no 8-bit controls
+#	identifies as vt200 with selective erase, but does not implement DECSCA
+#	no vt52 mode
+#	also lacks these:
+#		ESC # 8	  DEC Screen Alignment Test (DECALN).
+#		CSI ? 5 h Reverse Video (DECSCNM).
+#
 pccon+keys|OpenBSD PC keyboard keys,
-	kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kend=\E[8~, kent=^M, kf1=\E[11~, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
+	kbs=^?, kend=\E[8~, kent=\r, 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[35~,
+	kf22=\E[36~, kf23=\E[37~, kf24=\E[38~, 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~, knp=\E[6~, kpp=\E[5~,
-	krfr=^R,
+	kf9=\E[20~, khome=\E[7~, krfr=^R, use=ansi+arrows,
+	use=vt220+pcedit,
 pccon+sgr+acs0|sgr and simple ASCII pseudographics for OpenBSD PC console,
-	acsc=+>\,<-\^.v0#`+a\:f\\h#i#j+k+l+m+n+o~p-q-r-s_t+u+v+w+x|y#z#{*|!}#~o,
-	sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m,
+	acsc=+>\,<-\^.v0#`+a:f\\h#i#j+k+l+m+n+o~p-q-r-s_t+u+v+w+x|y#
+	     z#{*|!}#~o,
+	bold=\E[1m, rev=\E[7m, rmso=\E[27m,
+	sgr=\E[0%?%p1%p3%|%t;7%;%?%p6%t;1%;%?%p2%t;4%;m,
+	sgr0=\E[m, smso=\E[7m,
 pccon+sgr+acs|sgr and default ASCII pseudographics for OpenBSD PC console,
-	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	enacs=\E)0$<5>, rmacs=\E(B$<5>,
-	sgr=\E[0%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<5>,
-	sgr0=\E[m\E(B$<5>, smacs=\E(0$<5>,
+	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	bold=\E[1m, enacs=\E)0, rev=\E[7m, rmacs=\E(B, rmso=\E[27m,
+	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, smso=\E[7m,
+# underline renders as color
 pccon+colors|ANSI colors for OpenBSD PC console,
 	bce,
-	colors#8, pairs#64,
-	op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+	ncv#2,
+	op=\E[49;39m, use=klone+color,
+# OpenBSD uses wscons,
+# + which does not implement DECSCNM or anything comparable, so it does not
+#   support flash.
+# + it renders underline using color.
 pccon+base|base capabilities for OpenBSD PC console,
 	am, km, mc5i, msgr, npc, nxon, xenl, xon,
 	cols#80, it#8, lines#24,
-	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, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	il1=\E[L, ind=\ED, nel=\EE, rev=\E[7m, ri=\EM, rmam=\E[?7l,
-	rmso=\E[m, rs2=\Ec$<50>, smam=\E[?7h, smso=\E[7m,
-	tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+	dch=\E[%p1%dP, dch1=\E[P, ech=\E[%p1%dX, el1=\E[1K,
+	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ind=\ED, nel=\EE,
+	ri=\EM, rmam=\E[?7l, rmul=\E[24m, rs2=\Ec, smam=\E[?7h,
+	smul=\E[4m, tbc=\E[3g, use=ansi+cpr, use=ansi+csr,
+	use=ansi+erase, use=ansi+idl, use=ansi+local,
+
 pccon0-m|OpenBSD PC console without colors & with simple ASCII pseudographics,
-	use=pccon+base, use=pccon+sgr+acs0, use=pccon+keys,
+	use=pccon+sgr+acs0, use=pccon+base, use=pccon+keys,
 pccon0|OpenBSD PC console with simple ASCII pseudographics,
 	use=pccon0-m, use=pccon+colors,
 pccon-m|OpenBSD PC console without colors,
 	use=pccon+base, use=pccon+sgr+acs, use=pccon+keys,
+	use=ansi+enq, use=vt220+cvis,
 pccon|OpenBSD PC console,
 	use=pccon-m, use=pccon+colors,
 
@@ -2221,76 +1738,74 @@
 # 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),
+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,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz~~,
+	bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ind=\ED,
+	is1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^?,
 	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,
+	nel=\EE, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
+	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, 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, use=ansi+apparrows,
+	use=ansi+csr, use=ansi+erase, use=ansi+idl,
+	use=ansi+local, use=decid+cpr, use=ecma+index,
+	use=vt220+cvis,
 
-#	NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
+#	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,
+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,
+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,
+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,
+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,
+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,
+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)
+#	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,
+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,
+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,
+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,
+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,
+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,
+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,
+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~,
@@ -2305,38 +1820,32 @@
 # 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,
+	bce, xenl, xon,
+	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>,
+	blink=\E[5m$<2>, bold=\E[1m$<2>, cub1=^H, cud1=\n,
+	cuf1=\E[C$<2>, cuu1=\E[A$<2>, invis=\E[8m$<2>, ka1=\E[q,
+	ka3=\E[s, kb2=\E[r, kc1=\E[p, kc3=\E[n, 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, rev=\E[7m$<2>,
 	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>,
+	rmul=\E[m$<2>,
+	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,
+	smso=\E[7m$<2>, smul=\E[4m$<2>, use=ansi+csr,
+	use=ansi+local, use=ecma+sgr, use=vt100+4bsd,
 	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.
+# NetBSD/x68k console VT200 emulator. This port runs on a 68K machine
+# manufactured by Sharp for the Japanese 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,
+	kbs=^?, kclr=\E[9~, khlp=\E[28~, use=vt220-base,
 
 # <tv@pobox.com>:
 # Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
@@ -2345,42 +1854,42 @@
 ofcons|DNARD OpenFirmware console,
 	bw,
 	cols#80, lines#30,
-	bel=^G, blink=\2335m, bold=\2331m, clear=^L, cr=^M,
+	bel=^G, blink=\2335m, bold=\2331m, clear=^L, cr=\r,
 	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,
+	il1=\233L, ind=\n, 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,
+	kf9=\2330p, knp=\233/, kpp=\233?, nel=\r\n, rev=\2337m,
 	rmso=\2330m, rmul=\2330m,
-	sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t2%;%?%p7%t8%;%?%p1%p3%|%t;7%;m,
+	sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t2%;%?%p7%t8
+	    %;%?%p1%p3%|%t;7%;m,
 	sgr0=\2330m, smso=\2337m, smul=\2334m,
 
-# 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.
+# NetBSD "wscons" emulator in VT220 mode.
+# This entry is based on the NetBSD termcap entry.  The emulator renders
+# underlined text in red.  Colors are otherwise usable.  NetBSD developers
+# prefer to not specify the corresponding ncv value.
 #
 # 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
+# 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
+# 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,
-	civis=\E[?25l, cnorm=\E[?25h, is2=\E[r\E[25;1H,
-	kdch1=\E[3~, 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, rs1=\Ec,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=vt220,
+	bce,
+	colors#8, lines#25, pairs#64,
+	is2=\E[r\E[25;1H, kdch1=\E[3~, kend=\E[8~, kf1=\E[11~,
+	kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
+	khome=\E[7~, op=\E[m, rs1=\Ec, 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,
@@ -2399,15 +1908,15 @@
 # Attributes do not work with color
 # Failed: vpa/hpa
 # Failed: kf1-kf4, kf13-kf48, khome, kend
-# 	(effectively xterm-r6 for function-keys)
+#	(effectively xterm-r6 for function-keys)
 # None of the function or cursor key-modifiers are encoded.
 # Console hangs in the smm/rmm test if TERM=xterm, does not show test
 #
 # Testing with vttest:
 # -------------------
-# Identifies as vt220 with selective erase
-# 	(however, selective erase refers to DECSCA, SPA)
-# Does not implement vt52
+# Identifies as VT220 with selective erase
+#	(however, selective erase refers to DECSCA, SPA)
+# Does not implement VT52
 # Uses spaces to simulate double-size characters
 # Does not support 8-bit controls
 # Does not support VT220 reports
@@ -2416,11 +1925,11 @@
 # Does not support DECSCA
 # Does not support any of the ISO-6429 cursor-movement
 # Does not support any of the ISO-6429 miscellaneous tests
-# 	(SL/SR also leave unexpected char on screen too)
+#	(SL/SR also leave unexpected char on screen too)
 # Background does not change in menu 11.6.9 (SGR 22-27)
 # None of the xterm special features tests work
 netbsd6|NetBSD wscons in 25 line DEC VT100 mode,
-	kbs=\177, use=wsvt25,
+	kbs=^?, use=wsvt25,
 
 # `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
 # DECstation/pmax.
@@ -2436,27 +1945,25 @@
 # for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k}
 # -- the setf/setb are probably incorrect, more likely setaf/setab -TD
 # -- compare with cons25w
-mgterm,
+mgterm|MGL/MGL2 MobileGear Graphic Library,
 	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,
+	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	dim=\E[30;1m, ech=\E[%p1%dX, el1=\E[1K, home=\E[H,
+	hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@, ich1=\E[@, ind=\E[S,
+	kb2=\E[E, kcbt=\E[Z, kdch1=^?, 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,
+	kich1=\E[L, knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rev=\E[7m,
+	ri=\E[T, rmso=\E[m, rs2=\E[x\E[m\Ec, setb=\E[4%p1%dm,
 	setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
+	use=ansi+arrows, use=ansi+csr, use=ansi+erase,
+	use=ansi+idl, use=ansi+local, use=ecma+index,
 
 #### FreeBSD console entries
+
+# Originally from termcap:
 #
 # From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
 # Andrey Chernov maintains the FreeBSD termcap distributions.
@@ -2468,8 +1975,9 @@
 # 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.
-#
 
+# syscons, sc - the console driver
+#
 # for syscons
 # common entry without semigraphics
 # Bug: The <op> capability resets attributes.
@@ -2480,104 +1988,164 @@
 # 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,
+# The emulator sends different 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),
+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,
+	cols#80, it#8, lines#25, ncv#21,
+	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, cnorm=\E[=0C,
+	cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH, cvvis=\E[=1C,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, ech=\E[%p1%dX,
 	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,
+	ich1=\E[@, ind=\E[S, kb2=\E[E, kcbt=\E[Z, kdch1=^?,
+	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, kich1=\E[L, knp=\E[G,
+	kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T,
+	rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7,
+	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, use=ansi+arrows,
+	use=ansi+erase, use=ansi+idl, use=ansi+local,
+	use=ecma+index, use=klone+color,
+
+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-debian|freebsd console with debian backspace (25-line ansi mode),
-	kbs=\177, kdch1=\E[3~, use=cons25,
-cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
+cons25-debian|FreeBSD console with debian backspace (25-line ANSI mode),
+	kbs=^?, kdch1=\E[3~, use=cons25,
+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),
+cons30|ansi80x30|FreeBSD console (30-line ANSI mode),
 	lines#30, use=cons25,
-cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode),
+cons30-m|ansi80x30-mono|FreeBSD console (30-line mono ANSI mode),
 	lines#30, use=cons25-m,
-cons43|ansi80x43|freebsd console (43-line ansi mode),
+cons43|ansi80x43|FreeBSD console (43-line ANSI mode),
 	lines#43, use=cons25,
-cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode),
+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),
+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),
+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),
+cons60|ansi80x60|FreeBSD console (60-line ANSI mode),
 	lines#60, use=cons25,
-cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode),
+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,
+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),
+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,
+	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),
+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),
+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),
+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),
+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,
+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),
+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),
+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),
+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),
+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),
+cons60l1-m|cons60-iso-m|FreeBSD console w/iso 8859-1 chars (60-line mono),
 	lines#60, use=cons25l1-m,
 
+# vt - virtual terminal console driver
+#
 # Starting with FreeBSD 8, an alternative configuration for syscons is provided,
 # which is intended to be xterm-compatible.  See for example
 #	http://svnweb.freebsd.org/base/stable/8/sys/dev/syscons/
 # in particular scterm-teken.c
 #
+# Some of the documentation refers to this as "vt"; its proper name is "teken".
+#
+# The sc(4) manual page states that it is possible to switch between the two
+# by editing /boot/loader.conf, adding
+#	kern.vty=sc
+# Doing that does not change the default TERM variable.  That is hard-coded in
+# /etc/ttys, rather than deriving it from the kernel state.
+#
+# For FreeBSD 12 and 13:
+# ---------------------
+# In newer releases, it is no longer possible to boot into a configuration that
+# works with syscons.  According to efi(4),
+# "The vt(4) system console is automatically selected when booting via UEFI."
+# See FreeBSD #264226.
+#
+# FreeBSD 13 supports 64-bit machines which boot with UEFI:
+#	https://www.freebsd.org/platforms/
+# The i386 platform does not use UEFI (and modifying the loader configuration
+# does load sysconf); however because no updates (fixes) are available, most
+# developers will regard that as unsupported.
+#
+# With FreeBSD 13, even when syscons is loaded (e.g., with the i386 platform),
+# its function-keys are not configured.  Using
+#	vidcontrol -T cons25
+# repairs this.
+#
+# When teken is loaded, vidcontrol can switch at runtime between the
+# teken/cons25 function keys:
+#	vidcontrol -T cons25
+#	vidcontrol -T xterm
+# However due to a limitation in the implementation, only the first 12 function
+# keys are available.  The real syscons supports 48 function keys (using the
+# shift and control modifiers), while xterm supports more than twice as many.
+#
+# vidcontrol does not change the emulation. As a result, the quarter (17/73) of
+# non-function key capabilities which differ between syscons and teken are
+# unsupported in the UEFI-based configurations.
+#
+# tack:
+#	VT100 line-drawing does not work (UTF-8 equivalents do).
+#	Shift/control modifiers have no effect on special keys.
+#	Meta does not work.
+# vttest:
+#	supports REP (repeat).
+#	still does not support left/right margins
+#	SU/SD work, but not SL/SR
+#	alternate screen does not work
+#	ENQ/DA1 is unimplemented (the terminal does not identify itself)
+#	CPR, XCPR are unimplemented (i.e., vttest and resize are broken)
+#	implements X11 (original) xterm-mouse.
+# ncurses:
+#	UTF-8 line-drawing works, including some double/thick lines
+#
 # For FreeBSD 9 and 10:
 # --------------------
 # The /etc/ttys entries for console and other ttys are all configured to set
@@ -2607,17 +2175,51 @@
 #
 # Those are removed from this entry's acsc string to avoid confusion.
 # The resulting description provides correct line-drawing and function-keys -TD
-teken|syscons with teken,
-	bw@, mir, xenl,
-	acsc=0\333a\260f\370g\361h\261j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
-	civis=\E[?25l, cnorm=\E[?25h, cvvis@, hpa=\E[%i%p1%dG,
-	hts=\EH, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kend=\E[F, kent=^M, 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[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmir=\E[4l,
-	smir=\E[4h, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
-	u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd, use=cons25,
+teken-2018|teken as of 2018,
+	bw@, mir, xenl, NQ,
+	acsc=0\333a\260f\370g\361h\261j\331k\277l\332m\300n\305q
+	     \304t\303u\264v\301w\302x\263y\363z\362~\371,
+	cvvis@, hpa=\E[%i%p1%dG, hts=\EH, kdch1=\E[3~, kent=\r,
+	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~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+	rmir=\E[4l, smir=\E[4h, tbc=\E[3g, use=vt220+cvis,
+	use=cons25,
+
+teken-2022|teken as of 2022,
+	am, bce, eo, mir, msgr, npc, NQ,
+	cols#80, it#8, lines#25, ncv#21, U8#1,
+	bold=\E[1m, cr=\r, cub1=^H, dim=\E[30;1m, ech=\E[%p1%dX,
+	ind=\E[S, kent=\r, nel=\E[E, op=\E[x, rev=\E[7m, ri=\E[T,
+	rmso=\E[27m, rs2=\E[x\E[m\Ec,
+	sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p5%t;30;1%;%?%p6%t;1%;m,
+	sgr0=\E[m, use=vt220+cvis, use=ecma+index,
+	use=ansi+arrows, use=ansi+csr, use=ansi+cup,
+	use=ansi+erase, use=ansi+idc, use=ansi+idl,
+	use=ansi+local, use=ansi+rca2, use=ansi+sgrso,
+	use=ansi+tabs, use=klone+color,
+
+teken-vt+fkeys|teken's xterm special keys,
+	kend=\E[F, 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[H,
+	use=vt220+pcedit,
+
+teken-sc+fkeys|teken's syscons special keys,
+	kdch1=^?, 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,
+
+teken-sc|teken imitating syscons,
+	use=teken-sc+fkeys, use=teken-2022,
+
+teken|teken-vt|teken imitating xterm,
+	xenl, use=teken-vt+fkeys, use=xterm+x11mouse,
+	use=teken-2022,
+
+teken-16color|teken using 16 colors,
+	use=ibm+16color, use=teken,
 
 #### 386BSD and BSD/OS Consoles
 #
@@ -2625,25 +2227,25 @@
 # 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,
+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,
+	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
+	     \263,
+	bold=\E[7m, clear=\Ec, cub1=^H, cup=\E[%i%p1%2d;%p2%2dH,
+	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, use=ansi+local1,
 
 # description of BSD/386 console emulator in version 1.0 (supplied by BSDI)
-oldpc3|oldibmpc3|old IBM PC BSD/386 Console,
+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,
+	bel=^G, bold=\E[=15F, cr=\r, cud1=\n, dim=\E[=8F, dl1=\E[M,
+	ht=^I, il1=\E[L, ind=\n, kich1=\E[L, kll=\E[F, knp=\E[G,
+	kpp=\E[I, nel=\r\n, sgr0=\E[=R, use=ansi+arrows,
 
 # Description of BSD/OS console emulator in version 1.1, 2.0, 2.1
 # Note, the emulator supports many of the additional console features
@@ -2653,8 +2255,9 @@
 # "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,
+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,
@@ -2663,28 +2266,27 @@
 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%;,
+	bel=^G, clear=\Ec, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+	ind=\n, kich1=\E[L, kll=\E[F, knp=\E[G, kpp=\E[I, nel=\r\n,
+	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=ansi+arrows, use=ansi+idl, use=ansi+local,
 	use=klone+sgr8,
 
 # Old names for BSD/OS PC console used in releases before 4.1.
-pc3|BSD/OS on the PC Console,
+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,
+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,
+bsdos-sparc|Sun SPARC BSD/OS console,
 	use=sun,
 
 # BSD/OS on the PowerPC
-bsdos-ppc|PowerPC BSD/OS Console,
+bsdos-ppc|PowerPC BSD/OS console,
 	use=bsdos-pc,
 
 
@@ -2692,8 +2294,8 @@
 # (<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:
+# 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
@@ -2703,21 +2305,29 @@
 #	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
+# 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,
+vt52|DEC VT52,
+	lines#24,
+	acsc=+h.k0affggolpnqprrss, rmacs=\EG, rmkx=\E>,
+	smacs=\EF, smkx=\E=, u8=\E/[KL], use=vt50h, use=vt52-basic,
+
+# This is more likely the "vt52" that you would see in emulation, i.e., no
+# keypad, no graphics.
+vt52-basic|VT52 for emulators,
 	cols#80, it#8, lines#24,
-	acsc=+h.k0affggolpnqprrss, 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,
+	bel=^G, clear=\EH\EJ, cr=\r, cub1=\ED, cud1=\EB, cuf1=\EC,
+	cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
+	home=\EH, ht=^I, ind=\n, kbs=^H, nel=\r\n, ri=\EI,
+	use=vt52+arrows,
+
+vt52+arrows|cursor keys for VT52,
+	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
 
 #### DEC VT100 and compatibles
 #
-# DEC terminals from the vt100 forward are collected here. Older DEC terminals
+# 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.
@@ -2826,12 +2436,12 @@
 # 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,
+vt100+keypad|DEC VT100 numeric keypad no fkeys,
 	ka1=\EOq, ka3=\EOs, kb2=\EOr, kc1=\EOp, kc3=\EOn,
-vt100+pfkeys|dec vt100 numeric keypad,
+vt100+pfkeys|DEC VT100 numeric keypad (kf1-kf4),
 	kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
 	use=vt100+keypad,
-vt100+fnkeys|dec vt100 numeric keypad,
+vt100+fnkeys|DEC VT100 numeric keypad (kf0-kf10),
 	kf0=\EOy, kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl,
 	kf9=\EOw, use=vt100+pfkeys,
 #
@@ -2856,14 +2466,13 @@
 #  |        $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,
+vt220+keypad|DEC VT220 numeric keypad,
+	ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, ka2=\EOx,
+	kb1=\EOt, kb3=\EOv, kc2=\EOr, use=vt100+pfkeys,
 #
-vt100+enq|ncurses extension for vt100-style ENQ,
+vt100+enq|ncurses extension for VT100-style ENQ,
 	u8=\E[?1;2c, use=ansi+enq,
-vt102+enq|ncurses extension for vt102-style 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
@@ -2882,7 +2491,7 @@
 #                | | | |                     | | | |
 #                | | | Auto XON/XOFF 0-Off   | | | Power 0-60 Hz
 #                | | |               1-On    | | |       1-50 Hz
-#                | | Ansi/VT52 0-VT52        | | Bits Per Char. 0-7 Bits
+#                | | 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
@@ -2900,50 +2509,60 @@
 #	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,
+vt100|vt100-am|DEC VT100 (w/advanced video),
+	OTbs, xenl, xon,
+	vt#3,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, lf1=pf1,
+	lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, rmam=\E[?7l,
+	rmkx=\E[?1l\E>, rs2=\E<\E>\E[?3;4;5l\E[?7;8h\E[r,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
+	    %;m%?%p9%t\016%e\017%;$<2>,
+	smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m$<2>,
+	use=ansi+csr, use=ansi+pp, use=decid+cpr, use=vt100+4bsd,
+	use=vt100+fnkeys,
+
+vt100+4bsd|DEC VT100 from 4.0BSD,
+	am, msgr,
+	cols#80, it#8, lines#24,
 	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,
+	clear=\E[H\E[J$<50>, cr=\r, cub1=^H, cud1=\n,
+	cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
 	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,
+	enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=\n, kbs=^H,
+	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmso=\E[m$<2>,
+	rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+	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, smso=\E[1;7m$<2>,
+	smul=\E[4m$<2>, tbc=\E[3g, use=ansi+local,
 
-# Ordinary vt100 in 132 column ("wide") mode.
-vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video),
+vt100nam|vt100-nam|VT100 no automargins,
+	am@, xenl@,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt100-am,
+vt100-vb|DEC VT100 (w/advanced video) & no beep,
+	bel@, flash=\E[?5h$<100/>\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),
+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,
+# 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),
+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.
+# 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,
+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,
@@ -2953,19 +2572,19 @@
 
 # Status line at bottom.
 # Clearing the screen will clobber status line.
-vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline,
+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
+# 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,
+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,
+vt102-w|DEC VT102 in wide mode,
 	cols#132,
 	rs3=\E[?3h, use=vt102,
 
@@ -2977,33 +2596,32 @@
 # 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),
+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,
+# 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,
+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/>,
+	clear=\E[;H\E[2J$<50/>, cr=\r, cub1=^H, cud1=\n,
+	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=\r\n, 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,
+	rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
 	sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=,
-	smso=\E[7m$<2/>, smul=\E[4m$<2/>,
+	smso=\E[7m$<2/>, smul=\E[4m$<2/>, use=ansi+csr,
 
 # 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
@@ -3011,7 +2629,7 @@
 # terminal. I've never actually used a vt132 myself, so this
 # is untested.
 #
-vt132|DEC vt132,
+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,
@@ -3022,29 +2640,53 @@
 # PF1--PF4 are used as F1--F4.
 #
 # added msgr -TD
-vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
+vt220-old|vt200-old|DEC VT220 in VT100 emulation mode,
 	OTbs, OTpt, am, mir, msgr, xenl, xon,
 	cols#80, lines#24, vt#3,
-	OTnl=^J,
+	OTnl=\n,
 	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,
+	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+	clear=\E[H\E[2J$<50>, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH$<10>, dch1=\E[P, ed=\E[J$<50>,
+	el=\E[K$<3>, home=\E[H, ht=^I,
+	if=/usr/share/tabset/vt100, ind=\ED$<20/>,
+	is2=\E[1;24r\E[24;1H, 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~,
 	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>,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+	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,
+	smso=\E[7m, smul=\E[4m, use=ansi+arrows, use=ansi+csr,
+	use=ansi+idl1, use=ansi+local1, use=vt220+pcedit,
+	use=vt220+cvis,
+
+# Here's a picture of the Sun/PC editing keypad:
+#	+--------+--------+--------+
+#	| Insert | Home   | PageUp |
+#	+--------+--------+--------+
+#	| Delete | End    | PageDn |
+#	+--------+--------+--------+
+#
+# VT220 emulators such as xterm, using PC-keyboards use a different layout than
+# the VT220 keyboard:
+#	VT220		PC
+#	-----		--
+#	Prev		PageUp
+#	Next		PageDn
+#	Insert		Insert
+#	Remove		Delete
+#	Find		Home
+#	Select		End
+vt220+pcedit|editing-keypad for VT220 using PC keyboard,
+	kdch1=\E[3~, kend=\E[4~, khome=\E[1~, kich1=\E[2~,
+	knp=\E[6~, kpp=\E[5~,
+vt220+vtedit|editing-keypad for VT220 using DEC keyboard,
+	kdch1=\E[3~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+	kslt=\E[4~,
 
 # 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
@@ -3056,44 +2698,45 @@
 #	+--------+--------+--------+
 #	| Select | Prev   | Next   |
 #	+--------+--------+--------+
-vt220|vt200|dec vt220,
+#
+# Still, this is a "base" entry.  Software emulators commonly leave out the
+# DECTCEM feature -TD
+vt220-base|DEC VT220 as emulated,
 	OTbs, am, 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,
+	bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+	dch=\E[%p1%dP, dch1=\E[P, ech=\E[%p1%dX, el1=\E[1K,
+	enacs=\E)0, flash=\E[?5h$<200/>\E[?5l, ht=^I, hts=\EH,
+	ich=\E[%p1%d@, if=/usr/share/tabset/vt100, ind=\ED,
 	is2=\E[?7h\E[>\E[?1l\E F\E[?4l, kbs=^H, 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~, 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,
-	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>,
+	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~, khlp=\E[28~, krdo=\E[29~, lf1=pf1,
+	lf2=pf2, lf3=pf3, lf4=pf4, nel=\EE, rev=\E[7m, ri=\EM,
+	rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
+	rmul=\E[24m, rs1=\E[?3l,
+	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, use=ansi+pp,
-	use=ansi+enq,
-vt220-w|vt200-w|DEC vt220 in wide mode,
+	smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=ansi+csr,
+	use=ansi+cup, use=ansi+pp, use=ansi+enq, use=ansi+erase,
+	use=ansi+idl, use=ansi+local, use=vt220+vtedit,
+
+vt220|vt200|DEC VT220,
+	use=vt220+cvis, use=vt220-base,
+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,
+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,
+	bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=\r,
 	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,
+	cud=\233%p1%dB, cud1=\n, 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,
@@ -3112,67 +2755,70 @@
 	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>,
+	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,
+	smso=\2337m, smul=\2334m, tbc=\2333g, use=vt220+cvis8,
 
 # vt220d:
-# This vt220 description regards F6--F10 as the second block of function keys
+# 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.
+# 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,
+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,
+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.
+# 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
+# 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
+# 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)
 # added msgr -TD
-vt200-js|vt220-js|dec vt200 series with jump scroll,
+vt200-js|vt220-js|DEC VT200 series with jump scroll,
 	am, msgr,
 	cols#80,
-	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, 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[?1h\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+	home=\E[H, ht=^I, il1=\E[L, ind=\ED,
+	is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1h\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,
+	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED,
 	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=,
+	rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, smdc=,
 	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m,
+	use=ansi+csr, use=ansi+erase, use=vt220+cvis,
 
-# This was DEC's vt320.  Use the purpose-built one below instead
-#vt320|DEC VT320 in vt100 emulation mode,
+# 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,
+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,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h,
+	use=vt220-base,
 
 # These entries are not DEC's official ones, they were purpose-built for the
 # VT320.  Here are the designer's notes:
@@ -3187,59 +2833,54 @@
 # 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, hs, mir, msgr, xenl,
+vt320|vt300|DEC VT320 7 bit terminal,
+	am, 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, home=\E[H, ht=^I,
-	hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+	dch1=\E[P, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, 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~,
+	kbs=^?, 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~, nel=\EE, rc=\E8, rev=\E[7m,
+	kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, nel=\EE, 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>,
+	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,
-	use=dec+pp, use=vt220+keypad, use=dec+sl, use=ansi+enq,
-vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
+	use=ansi+apparrows, use=ansi+csr, use=ansi+enq,
+	use=ansi+idl, use=ansi+local, use=dec+pp, use=vt220+cvis,
+	use=vt220+keypad, use=dec+sl,
+
+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,
+	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,
+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,
+	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,
+	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
+#   the VT330 and VT340 is that the former has only 2 planes and a monochrome
+#   monitor, the latter 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.
 #
@@ -3253,44 +2894,49 @@
 # 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,
+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,
+	blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	dsl=\E[2$~\r\E[1$}\E[K\E[$},
+	flash=\E[?5h$<200/>\E[?5l, fsl=\E[$}, home=\E[H, ht=^I,
+	hts=\EH, ich=\E[%p1%d@, ind=\ED,
+	is2=\E<\E\sF\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,
+	lf3=pf3, lf4=pf4, nel=\r\ED, 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>,
+	rmul=\E[24m, rs1=\E[?3l,
+	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,
+	tsl=\E[2$~\E[1$}\E[1;%dH, use=ansi+csr, use=ansi+erase,
+	use=ansi+idl, use=ansi+local, use=vt220+cvis,
 
-# 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).
+# Left/right margins are supported in xterm since patch #279 (2012/05/10)
+vt420+lrmm|VT420 left/right margins,
+	mgc=\E[?69l, smglp=\E[?69h\E[%i%p1%ds,
+	smglr=\E[?69h\E[%i%p1%d;%p2%ds,
+	smgrp=\E[?69h\E[%i;%p1%ds,
+
+# 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
+# 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
+# Note that this entry is 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
@@ -3300,32 +2946,30 @@
 # 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,
+vt400|vt400-24|dec-vt400|DEC VT400 24x80 column autowrap,
+	am, eslok, 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,
+	blink=\E[5m, bold=\E[1m, clear=\E[H\E[J$<10/>, cr=\r,
+	cub1=^H, cud1=\n, dsl=\E[2$~\r\E[1$}\E[K\E[$},
+	ed=\E[J$<10/>, el=\E[K$<4/>, flash=\E[?5h$<200/>\E[?5l,
+	fsl=\E[$}, ht=^I, hts=\EH, ind=\ED,
+	is2=\E<\E\sF\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,
+	lf3=pf3, lf4=pf4, nel=\r\ED, 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, use=dec+sl,
+	rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+	rs1=\E<\E[?3l\E[!p\E[?7h,
+	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, smkx=\E[?1h\E=,
+	smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+	tsl=\E[2$~\E[1$}\E[1;%dH, use=ansi+csr, use=ansi+cup,
+	use=ansi+idc, use=ansi+idl, use=ansi+local, use=dec+sl,
+	use=vt220+cvis,
 
 # (vt420: I removed <kf0>, it collided with <kf10>.  I also restored
 # a missing <sc> -- esr)
@@ -3334,29 +2978,27 @@
 	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>, civis=\E[?25l,
-	clear=\E[H\E[2J$<50>, 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$<10>, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+	clear=\E[H\E[2J$<50>, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH$<10>, dch=\E[%p1%dP, dch1=\E[P,
 	ech=\E[%p1%dX, ed=\E[J$<50>, el=\E[K$<3>, 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/vt300,
-	il=\E[%p1%dL, 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~, nel=\EE,
-	rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
+	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,
+	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~,
+	nel=\EE, 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[27m, rmul=\E[24m, 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>,
+	rmso=\E[27m, rmul=\E[24m, rs3=\E[?67h\E[64;1"p,
+	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$<2>, smacs=\E(0$<2>, smam=\E[?7h,
 	smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	use=ansi+pp, use=dec+sl, use=ansi+enq,
+	use=ansi+csr, use=ansi+enq, use=ansi+idl, use=ansi+pp,
+	use=ansi+local, use=dec+sl, use=vt220+cvis,
+	use=vt420+lrmm, use=vt220+vtedit,
 
 # 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
@@ -3375,33 +3017,35 @@
 # 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\\,
+	kdch1=^?, 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%;,
+	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~,
+	kdch1=^?, 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~,
@@ -3447,7 +3091,6 @@
 	use=ansi+tabs,
 
 #### 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'
@@ -3463,36 +3106,1029 @@
 # 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...
+# 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,
+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),
+	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,
+	rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H, use=z340,
 
+# expect-5.44.1.15/example/tkterm
+# a minimal subset of a VT100 (compare with "news-unk).
+#
+# The missing "=" in smkx is not a typo (here), but an error in tkterm.
+tt|tkterm|Don Libes' tk text widget terminal emulator,
+	clear=\E[H\E[J, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
+	cup=\E[%p1%d;%p2%dH, cuu1=\E[A, ind=\n, kf1=\EOP, kf2=\EOQ,
+	kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
+	kf9=\EOX, rmkx=\E[?1l\E>, rmso=\E[m, smkx=\E[?1h\E,
+	smso=\E[7m,
+
+######## APPLE
+
+#### Terminal.app
+
+# nsterm*|Apple_Terminal - AppKit Terminal.app
+#
+# Terminal.app is a Terminal emulator bundled with NeXT's NeXTSTEP and
+# OPENSTEP/Mach operating systems, and with Apple's Rhapsody, Mac OS X
+# Server and Mac OS X operating systems. There is also a
+# "terminal.app" in GNUstep, but I believe it to be an unrelated
+# codebase and I have not attempted to describe it here.
+#
+# For NeXTSTEP, OPENSTEP/Mach, Rhapsody and Mac OS X Server 1.0, you
+# are pretty much on your own. Use "nsterm-7-m" and hope for the best.
+# You might also try "nsterm-7" and "nsterm-old" if you suspect your
+# version supports color.
+#
+# To determine the version of Terminal.app you're using by running:
+#
+#     echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION"
+#
+# For Apple_Terminal v309+, use "nsterm-256color" (or "nsterm-bce")
+#
+# For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm")
+#
+# For Apple_Terminal v71+/v100+, use "nsterm-bce".
+#
+# For Apple_Terminal v51+, use "nsterm-7-c" or "nsterm-7-c-s".
+#
+# For Apple_Terminal v41+, use "nsterm-old", or "nsterm-s".
+#
+# For all earlier versions (Apple_Terminal), try "nsterm-7-m"
+# (monochrome) or "nsterm-7" (color); "nsterm-7-m-s" and "nsterm-7-s"
+# might work too, but really you're on your own here since these
+# systems are very obsolete and I can't test them. I do welcome
+# patches, though :).
+
+# Other Terminals:
+#
+# For GNUstep_Terminal, you're probably best off using "linux" or
+# writing your own terminfo.
+
+# For MacTelnet, you're on your own. It's a different codebase, and
+# seems to be somewhere between "vt102", "ncsa" and "xterm-color".
+
+# For iTerm.app, see "iterm".
+
+#
+# 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 (in earlier Mac OS X
+# versions) or only accepts status lines consisting entirely of
+# characters from the first 256 Unicode positions (including C1 but
+# not C0 or DEL.)
+#
+# The Mythology* of AppKit Terminal.app:
+#
+# In the days of NeXTSTEP 0.x and 1.x there were two incompatible
+# bundled terminal emulators, Shell and Terminal. Scott Hess wrote a
+# shareware replacement for Terminal called "Stuart" which NeXT bought
+# and used as the basis for the Terminal.app in NeXTSTEP 2+,
+# OPENSTEP/Mach, Apple Rhapsody, Mac OS X Server 1.0, and Mac OS X. I
+# don't know the TERM_PROGRAM and TERM_PROGRAM_VERSION settings or
+# capabilities for the early versions, but I believe that the
+# TERM_PROGRAM_VERSION may have been reset at some point.
+#
+# The early versions were tailored to the NeXT character set. Sometime
+# after the Apple acquisition the encoding was switched to MacRoman
+# (initially with serious altcharset bugs due to incomplete conversion
+# of the old NeXT code,) and then later to UTF-8. Also sometime during
+# or just prior to the early days of Mac OS X, the Terminal grew ANSI
+# 8-color support (initially buggy when combined with attributes, but
+# that was later fixed.) More recently, around Mac OS X version 10.3
+# or so (Terminal.app v100+) xterm-like 16-color support was added. In
+# some versions (for instance 133-1 which shipped with Mac OS X
+# version 10.4) this suffered from the <bce> bug, but that seems to
+# have been fixed in Mac OS X version 10.5 (Terminal.app v240.2+).
+#
+# In the early days of Mac OS X the terminal was fairly buggy and
+# would routinely crash under load. Many of these bugs seem to have
+# been fixed around Mac OS X version 10.3 (Terminal.app v100+) but
+# some may still remain. This change seems to correspond to
+# Terminal.app reporting "xterm-color" as $TERM rather than "vt100" as
+# it did previously.
+#
+# * This may correspond with what actually happened, but I don't
+#   know. It is based on guesswork, hearsay, private correspondence,
+#   my faulty memory, and the following online sources and references:
+#
+# [1] "Three Scotts and a Duane" by Simson L. Garfinkel
+# http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/93.8/93.8.Dec.Community1.html
+#
+# [2] NeXTSTEP entry from Wikipedia, the free encyclopedia
+# https://secure.wikimedia.org/wikipedia/en/wiki/Nextstep
+#
+# * 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-compatibility.
+#
+# * 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-old"
+#     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-old"
+#          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, cr=\r, cub1=^H, cud1=\n, dim=\E[2m, el1=\E[1K, ht=^I,
+	hts=\EH, ind=\n, kbs=^?, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+	kcuu1=\EOA, kent=\EOM, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
+	    %p5%t;2%;%?%p7%t;8%;m,
+	sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, tbc=\E[3g,
+	use=ansi+csr, use=ansi+cup, use=ansi+erase, use=ansi+idl,
+	use=ansi+local, use=ansi+sgrbold, use=vt100+enq,
+	use=vt100+pfkeys,
+
+nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
+	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\017, use=nsterm+7, use=vt100+4bsd,
+
+nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
+	acsc=+\335\,\334-\366.\3770#`\327a:f\241g\261h#i
+	     \360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{
+	     \271|\255}\243~\245,
+	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\017, use=nsterm+7, use=vt100+4bsd,
+
+# compare with xterm+sl-twm
+nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
+	wsl#50, use=xterm+sl-twm,
+
+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,
+	ncv#37,
+	op=\E[0m, use=klone+color,
+
+# 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-old|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,
+
+# In Mac OS X version 10.5 the format of the preferences has changed
+# and a new, more complex technique is needed, e.g.,
+#
+#       python -c 'import sys,objc;NSUserDefaults=objc.lookUpClass(
+#       "NSUserDefaults");ud=NSUserDefaults.alloc();
+#       ud.init();prefs=ud.persistentDomainForName_(
+#       "com.apple.Terminal");prefs["Window Settings"][
+#       prefs["Default Window Settings"]]["TerminalType"
+#       ]=sys.argv[1];ud.setPersistentDomain_forName_(prefs,
+#       "com.apple.Terminal")' nsterm-16color
+#
+# and it is still not settable from the preferences dialog. This is
+# tracked under rdar://problem/7365108 and rdar://problem/7365134
+# in Apple's bug reporter.
+#
+# In OS X 10.5 (Leopard) the TERM which can be set in the preferences dialog
+# defaults to xterm-color.  Alternative selections are ansi, dtterm, rxvt,
+# vt52, vt100, vt102 and xterm.
+nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
+	bw@, mir, npc,
+	flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
+	kdch1=\E[3~, kend=\E[F, 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[22~, kf19=\E[33~,
+	kf20=\E[34~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+	kf8=\E[19~, kf9=\E[20~, khome=\E[H, knp=\E[6~, kpp=\E[5~,
+	vpa=\E[%i%p1%dd, kLFT5=\E[5D, kRIT5=\E[5C, use=ansi+idc,
+	use=xterm+alt47, use=nsterm-c-s-acs, use=vt220+cvis,
+
+# The versions of Terminal.app in Mac OS X version 10.3.x seem to have
+# the background color erase feature. The newer version 240.2 in Mac OS X
+# version 10.5 does not.
+#
+# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
+# and D P Schreber comparing to nsterm-c-s-acs.
+#
+# In Mac OS X version 10.4 and earlier, D P Schreber notes that $TERM
+# can be set in Terminal.app, e.g.,
+#
+#	defaults write com.apple.Terminal TermCapString nsterm-bce
+#
+# and that it is not set in Terminal's preferences dialog.
+#
+# Modified for OS X 10.8, omitting bw based on testing with tack -TD
+#
+# Notes:
+# * The terminal description matches the default settings.
+# * The keyboard is configurable via a dialog.
+# * By default khome, kend, knext and kprev are honored only with a
+#   shift-modifier.
+# * There are bindings for control left/right arrow (but not up/down).
+#   Added those to nsterm-16color, which is the version used for OS X 10.6
+# * "Allow VT100 application keypage mode" is by default disabled.
+#   There is no way to press keypad-comma unless application mode is enabled
+#   and used.
+# * 132-column mode stopped working during vttest's tests.  Consider it broken.
+# * CHT, REP, SU, SD are buggy.
+# * ECH works (also in Leopard), but is not used here for compatibility.
+# * The terminal preferences dialog replaces xterm-color by xterm-16color and
+#   xterm-256color.  However, it adds "nsterm", so it is possible to use the
+#   nsterm entry from this file to override the MacPorts (20110404) or
+#   system (20081102) copy of this file.
+# + In OS X 10.8 (Mountain Lion) the TERM which can be set in the preferences
+#   dialog defaults to xterm-256color.  Alternative selections are ansi,
+#   dtterm, rxvt, vt52, vt100, vt102, xterm and xterm-16color.  However,
+#   the menu says "Declare terminal as" without promising to actually emulate
+#   the corresponding terminals.  Indeed, changing TERM does not affect the
+#   emulation itself.  This means that
+#   + the function-keys do not match for dtterm for kf1-kf4 as well as
+#     khome/kend
+#   + the color model is the same for each setting of TERM (does not match
+#     ansi or dtterm).
+#   + the shift/control/meta key modifiers from rxvt and xterm variants are not
+#     recognised except for a few special cases, i.e., kRIT5 and kLFT5.
+#   + the VT52 emulation does not give a usable shell because screen-clearing
+#     does not work as expected.
+#   + selecting "xterm" or "xterm-16color" sets TERM to "xterm-256color".
+# + OSX 10.9 (Yosemite) added more extended keys in the default configuration
+#   as well as unmasking F10 (which had been used in the window manager). Those
+#   keys are listed in this entry.
+nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce),
+	bce, use=nsterm-16color,
+
+# This is tested with OS X 10.8 (Mountain Lion), 2012/08/11
+#	TERM_PROGRAM_VERSION=309
+# Earlier reports state that these differences also apply to OS X 10.7 (Lion),
+#	TERM_PROGRAM_VERSION=303
+nsterm-build309|Terminal.app in OS X 10.8,
+	use=xterm+256setaf, use=nsterm-bce,
+
+# removed bogus kDC7 -TD
+nsterm-build326|Terminal.app in OS X 10.9,
+	kDC=\E[3;2~, kLFT=\E[1;2D, kRIT=\E[1;2C, kcbt=\E[Z,
+	kf18=\E[32~, kDC5=\E[3;5~, kLFT3=\Eb, kLFT5=\E[1;5D,
+	kRIT3=\Ef, kRIT5=\E[1;5C, use=nsterm-build309,
+
+# actually "343.7"
+nsterm-build343|Terminal.app in OS X 10.10,
+	kend=\EOF, khome=\EOH, use=nsterm-build326,
+
+# reviewed Terminal.app in El Capitan (version 2.6 build 361) -TD
+# Using vttest:
+# + no VT52 mode for cursor keys, though VT52 screen works in vttest
+# + f1-f4 map to pf1-pf4
+# + no VT220 support aside from DECTCEM and ECH
+# + there are no protected areas.  Forget about anything above VT220.
+# + in ECMA-48 cursor movement, VPR and HPR fail.  Others work.
+# + vttest color 11.6.4 and 11.6.5 (bce for ED/EL and ECH/indexing) are bce
+# + but bce fails for 11.6.7.2 (test repeat).
+# + SD (11.6.7.3) also fails, but SL/SR/SU work.
+# + 11.6.6 (test insert/delete char/line with bce) has several failures.
+# + normal (not X10 or Highlight tracking) mouse now works.
+# + mouse any-event works
+# + mouse button-event works
+# + in alternate screen:
+#   mode 47/48 work
+#   mode 1047 fails to restore cursor position (do not use)
+#   mode 1049 fails to restore screen contents (do not use)
+# + dtterm window-modify operations work (some messages are not printed)
+# + dtterm window-report gives size of window in characters/pixels as
+#   well as state of window.
+# Using tack:
+# + there is no difference between cnorm/cvvis
+# + has dim/invis/blink (no protect of course)
+# + most function keys with shift/control modifiers give beep
+#   (user can configure, but out-of-the-box is what I record)
+# + shift-F5 is \E[25~ through shift-F12 is \E[34~ (skips \E[30~ between
+#   F8 and F9).
+# + kLFT5/kRIT5 work, but not up/down with control-modifier
+# + kLFT/kRIT work, but not up/down with shift-modifier
+# + there are a few predefined bindings with Alt, but no clear pattern.
+# + uses alt-key as UTF-8 "meta" something like xterm altSendsEscape
+# Using ncurses test-program with xterm-new:
+# + no italics
+# Using xterm's scripts:
+# + palette for 256-colors is hardcoded.
+# + no support for "dynamic colors"
+# + no support for tcap-query.
+nsterm-build361|Terminal.app in OS X 10.11,
+	XT,
+	kmous=\E[M, use=nsterm-build343,
+
+# reviewed Terminal.app in High Sierra (version 2.8 build 400) -TD
+# Comparing with build361, little has changed, except that italics work.
+# Direct-color is not supported, by the way.
+#
+# Improved rmso/rmul -TD
+nsterm-build400|Terminal.app in OS X 10.13,
+	rmso=\E[27m, rmul=\E[24m, use=xterm+sm+1006,
+	use=ecma+italics, use=nsterm-build361,
+
+nsterm-build440|Terminal.app in MacOS 11.6.8,
+	use=xterm+alt1049, use=nsterm-build400,
+
+# This is an alias which should always point to the "current" version
+nsterm|nsterm-256color|Apple_Terminal|AppKit Terminal.app,
+	use=nsterm-build440,
+
+#### iTerm, iTerm2
+
+# iTerm 0.10
+#
+# iTerm.app from http://iterm.sourceforge.net/ is an alternative (and more
+# featureful) terminal emulator for Mac OS X.  It is similar enough in
+# capabilities to nsterm-16color that I have derived this description from that
+# one, but as far as I know they share no code.  Many of the features are
+# user-configurable, but I attempt only to describe the default configuration
+# (B. Sittler).
+#
+# According to its documentation, iTerm uses terminfo to obtain function key
+# definitions.  For example, if it is started with TERM=xterm, it uses key
+# definitions from that terminal description from the local OSX machine.  Those
+# $TERM settings may be augmented using the bookmark and profile dialogs.
+# However, the behavior seen with tack does not agree with either the terminfo
+# description or the function keys in its "xterm" profile.
+#
+# NOTES:
+# with vttest:
+#	reports primary DA as VT100 with AVO: \E[?1;2c
+#	reports secondary DA as "\E[>0;95;c"
+#	supports blink and underline
+#	displays bold text as red
+#	recognizes all dtterm controls for modifying/querying window
+#	resizing via escape sequence is very slow
+#	supports X11R5 mouse (no X10) and XFree86 mouse (button- and event-tracking)
+#	supports X11R5 alternate screen and XFree86 1049 (no 1047/1048)
+#	supports CHA, VPA, VPR, but no other ECMA-48 cursor movement such as HPA
+# with tack:
+#	.
+# with ncurses test-program:
+#	ncurses 'k' has problem in second screen; light background does not fill
+# with xterm scripts
+#	can display/alter xterm-256color cube
+#	can display/alter xterm-88color cube
+iTerm.app|iterm|iTerm.app terminal emulator for Mac OS X,
+	bce, mir, npc, xenl, xon,
+	wsl#50,
+	blink=\E[5m, bold=\E[1m, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, el1=\E[1K,
+	flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
+	kLFT=\E[1;2D, kRIT=\E[1;2C, kbs=^?, kcbt=\E[Z, kdch1=\E[3~,
+	kend=\EOF, 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~, op=\E[0m, rev=\E[7m, ri=\EM,
+	rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?
+	    %p9%t\016%e\017%;,
+	sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+	smul=\E[4m, vpa=\E[%i%p1%dd, kEND5=\E[1;5F,
+	kHOM5=\E[1;5H, use=ansi+apparrows, use=ansi+csr,
+	use=ansi+enq, use=ansi+erase, use=ansi+idc, use=ansi+idl,
+	use=ansi+local, use=vt100+4bsd, use=vt100+keypad,
+	use=vt100+pfkeys, use=xterm+alt47, use=xterm+sl-twm,
+	use=xterm+x11mouse, use=xterm+256setaf, use=vt220+cvis,
+
+# iTerm2 3.0.15
+#
+# https://iterm2.com/
+# https://github.com/gnachman/iTerm2
+# ~/Library/Preferences/com.googlecode.iterm2.plist
+# "iTerm" stalled in 2009.  A different set of developers began "iTerm2".
+#
+# NOTES:
+# with vttest:
+#	reports primary DA as VT100 with AVO: \E[?1;2c
+#	reports secondary DA as "\E[>0;95;0c"
+#	numeric keypad application mode does not work
+#	by default, dtterm window-modifications are ignored
+#	by default, dtterm window-reports return, but icon as "L", window as "l"
+#	supports SD/SU, no REP, SL, SR
+#	supports CBT, CHA, VPA, CNL, CPL, VPR (no HPA, CHT, HPR)
+#	no improvement to XFree86 1047/1048 modes
+# with tack:
+#	in meta-mode, imitates xterm, sending UTF-8
+#	special-key modifiers based on xterm use incompatible default for alt/meta
+# with ncurses test-program:
+#	no italics
+#	no improvement to ncurses 'k'
+# with xterm scripts:
+#	acolors.sh works
+#
+# Italic text did not work initially, apparently because upgrading did not
+# add/change that preference (set in Preferences, Profiles, Text).  A new
+# install of iTerm 3.0.15 provides italics by default (blinking text is an
+# option in the preferences dialog).
+#
+# 2018/01/21: found xterm+sm+1006 did not work with version 3.1.5
+# 2018/05/19: xterm+sm+1006 seems to work with 3.1.6beta -TD
+iTerm2.app|iterm2|terminal emulator for Mac OS X,
+	cbt=\E[Z, dim=\E[2m, kEND=\E[1;2F, kHOM=\E[1;2H, ka1@, ka3@,
+	kb2@, kc1@, kc3@, kent@, 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~, kf20=\E[19;2~, kf21=\E[20;2~,
+	kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
+	kind=\E[1;2B, kri=\E[1;2A, nel=\EE, op=\E[39;49m,
+	rmso=\E[27m, rmul=\E[24m,
+	rs2=\E[!p\E[?3;4l\E[4l\E>\E[?1000l,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
+	    %p5%t;2%;m%?%p9%t\016%e\017%;,
+	kDN3=\E\E[B, kDN4=\E[1;10B, kDN5=\E[1;5B, kDN6=\E[1;6B,
+	kEND3=\E[1;9F, kEND4=\E[1;10F, kEND6=\E[1;6F,
+	kEND7=\E[1;13F, kEND8=\E[1;14F, kHOM3=\E[1;9H,
+	kHOM4=\E[1;10H, kHOM6=\E[1;6H, kHOM7=\E[1;13H,
+	kHOM8=\E[1;14H, kLFT3=\E\E[D, kLFT4=\E[1;10D,
+	kLFT5=\E[1;5D, kLFT6=\E[1;6D, kNXT3=\E\E[6~,
+	kPRV3=\E\E[5~, kRIT3=\E\E[C, kRIT4=\E[1;10C,
+	kRIT5=\E[1;5C, kRIT6=\E[1;6C, kUP3=\E\E[A, kUP4=\E[1;10A,
+	kUP5=\E[1;5A, kUP6=\E[1;6A, use=ecma+index,
+	use=xterm+alt+title, use=ecma+italics, use=iterm,
+	use=bracketed+paste,
+
+# 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, NQ,
+	it#8,
+	bold=\E[1m, cr=\r, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+	dsl=\E]2;\007, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=\n,
+	kbs=^?, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+	rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
+	sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, tbc=\E[3g,
+	use=ansi+csr, use=ansi+erase, use=ansi+local,
+	use=ansi+sgrso, use=ansi+sgrul, use=vt100+keypad,
+
+xnuppc+c|Darwin PowerPC console ANSI color support,
+	ncv#32, use=klone+color,
+
+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#0x100, 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,
+
+######## DOS/WINDOWS
 # 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,
+	bce,
+	ncv@, use=vt100+enq, use=vt220-base, use=ecma+color,
 
-# PuTTY 0.55 (released 3 August 2004)
+# SecureCRT 8.7.3.2279
+# 8.7.3 was released 2020/08/11
+# (eval 2021/02/05)
+# VanDyke Software, Inc.
+#
+# Advertised features:
+#	Xterm 24-bit color
+#	Xterm 256-color
+#	Double-size characters
+#	Xterm extensions for mouse support and changing title bar
+#	Emulates VT100, VT102, VT220, VT320, Linux console, SCO ANSI,
+#	TN3270, TVI910, TVI925, Wyse 50/60, and ANSI.
+# Changes:
+#	Added ANSI sc/rc and REP in 2019/12/17
+#	Added TVI910/ TVI925 in 2019/11/20	
+#
+# Default:
+#	Emulate "Xterm", using "ANSI with 256color"
+#	TERM=xterm-256color
+#
+# vttest:
+#	DA1 \E[?62;1;2;6;7;8;9c (vt220 with DRCS and NRCS)
+#	DA2 \E[>1;136;0c
+#	double-sized characters do not work
+#	Menu-1 fails (window resizes to 132-columns, but does not repaint)
+#	NRCS fails (tried French, but none of the replacements worked)
+#	VT100 line-drawing works, except the C/R, etc., are an hline.
+#	VT52 works except for S8C1T bug.
+#	RIS hangs the terminal.
+#	Local SRM does not echo.
+#	Some of the VT320/VT220 status reports work, not locator or DECXCPR
+#	DECUDK works if I press shift.
+#	Fails CHT, CNL, CPL
+#	Does not honor bce with ECH
+#	ERM/SPA does not work
+#	REP has 11 +'s except for final 2 +'s, like PuTTY.
+#	Fails SL/SR
+#	DECRPM does not respond.
+#	dtterm modify/report operations do not work
+#	Alternate screen works.
+#	Mouse:
+#		highlight tracking does not work.
+#		any event tracking does not work, but
+#		button event tracking does work.
+#		DEC locator does not work.
+#		SGR coordinates does not work.
+# ncurses:
+#	reset6 does reset to 80-columns
+#	ncurses RGB edit does not work.
+#	direct colors don't work, probably needs semicolons.
+# tack:
+#	blink works, but not dim or invis
+#	no italics or crossed-out
+# scripts:
+#	256color handles "-r" option (but test/ncurses menu d does not alter)
+#	dynamic colors queries do not work, though it seems some can be set.
+#	resize.pl gets no reply, resize.sh needs fix for no reply.
+scrt|securecrt|SecureCRT emulating xterm-256color,
+	bce@, km@, npc,
+	bel@, cvvis@, kcbt=\E[Z, use=vt220+pcedit,
+	use=xterm+256setaf, use=ecma+index, use=ansi+rep,
+	use=xterm+keypad, use=xterm+pcfkeys, use=xterm-basic,
+
+# Absolute Telnet
+# (eval 2021/02/20)
+# 11.24 was released 2020/08/13
+# Celestial Software
+#
+# Advertised features:
+#	Emacs compatibility mode (Meta Keys can be enabled for left/right ALT)
+#	Double-size characters
+#	Xterm extensions for mouse support
+#	Emulates VT52, VT100, VT220, VT320, ansi, xterm, qnx, scoansi,
+#	ANSIBBS, WYSE60, TeleVideo 950.
+#
+# Default:
+#	TERM=xterm
+#
+# vttest:
+#	DA1: \E[?62;1;2;6;7;8;9;15;22c (VT200 with DRCS, UDK, NRCS) 
+#	DA2: \E[>1;10;0c 
+#	However:
+#	+ NRCS tests do not work
+#	+ DECUDK test fails
+#	+ VT100 double-sized characters work
+#	menu-1 autowrap does not work
+#	supports blinking text
+#	VT220 DECSCA last screen (ignoring ECH, etc), leaves fill on top/left
+#	VT220 device status reports fail, except operating status
+#	8-bit controls work
+#	xterm alternate screen recognized, but cursor restored incorrectly
+#	xterm mouse (normal, any event, button event) works
+#	xterm highlight-mouse does not work properly, confused with any-event
+#	does not recognize SGR-mouse mode
+#	supports xterm window-modifiny/reporting controls
+#	supports ECMA-48 cursor movement except HPR
+#	supports REP and SD, but not ECMA-48 SL, SR, SU
+# tack:
+#	italics and crossed-out do not work
+#	supports xterm-style modified function-keys, using X11R6 F1-F4.
+#	does not support modified cursor-keys or editing-keys
+#	uses VT220-style Home/End
+#	if alt-keys are enabled,
+#		meta-mode sends escape rather than shifting, in 7-bit mode
+#		meta-mode does the expected shifting in 8-bit mode
+# scripts:
+#	supports 256-colors, including changing palette (ncurses menu d works)
+#	supports UTF-8, but honors VT100 line-drawing
+absolute|Absolute Telnet emulating xterm,
+	kcbt=\E[Z, use=ecma+index, use=linux+kbs, use=ansi+rep,
+	use=vt220+pcedit, use=xterm+keypad, use=xterm+app,
+	use=xterm+pcf0, use=xterm+256color, use=xterm+x11mouse,
+	use=xterm-basic,
+
+#### PuTTY
 # http://www.chiark.greenend.org.uk/~sgtatham/putty/
 #
+# PuTTY 0.78 (September 2020, tested 12 August 2023)
+# Testing with tack:
+#	implements cross-out text (shortly after 0.74)
+#	restore kLFT as kLFT5, etc. (mentioned in October 2021)
+#	does not support direct-colors (mentioned in July 2021)
+#
+# PuTTY 0.74 (27 June 2020)
+#	(unchanged)
+#
+# PuTTY 0.73 (September 2019)
+# Testing with tack:
+#	does not implement italics
+#	does not implement cross-out text
+#	its settings dialog allows some of the VT100 line-drawing tests to pass
+#	(not the padding test, though)
+# Testing with vttest:
+#	xterm mouse modes are incomplete: X10, highlight, any-event, and focus in/out modes are not implemented.
+#	does not implement protected areas
+#	does not implement SL/SR
+#
+# PuTTY 0.71 (March 2019) provided a workable "rep" capability.  It also
+# changed longstanding keypad assignments, so that these no longer apply:
+#	kLFT=\E[D, kRIT=\E[C, kb2=\E[G,
+#
+# PuTTY recognized xterm's 1006 mouse mode in late 2015; subsequent release was
+# in 2017 (0.70) -TD
+#
 # 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)
+# PuTTY 0.51 (14 December 2000)
 #
-# This emulates vt100 + vt52 (plus a few vt220 features:  ech, SRM, DECTCEM, as
+# 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:
@@ -3502,50 +4138,71 @@
 #	Control responses, wrapping and tabs are buggy, failing a couple of
 #	screens in vttest.
 #
-#	xterm mouse support is not implemented (unrelease version may).
+#	xterm mouse support is not implemented (unreleased version may).
 #
 # Several features such as backspace/delete are optional; this entry documents
-# the default behavior -TD
-
+# the default behavior.  None of the combinations of keyboard settings match
+# those used for xterm -TD
+#
+# PuTTY recognizes xterm's 1049 mode for switching to/from alternate screen,
+# but implements it incorrectly as mentioned here:
+#	http://stackoverflow.com/questions/24613237/terminal-retains-bg-color-after-closing-vim-using-color-scheme-and-putty-256co/37869114#37869114
 putty|PuTTY terminal emulator,
 	am, bce, bw, ccc, mir, msgr, xenl, xon, XT,
-	colors#8, it#8, ncv#22, pairs#64, U8#1,
+	it#8, ncv#22, U8#1,
 	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, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h\E[?5l, 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,
+	bel=^G, cr=\r, cub1=^H, cud1=\ED, cup=\E[%i%p1%d;%p2%dH,
+	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%;,
+	ech=\E[%p1%dX, el1=\E[1K, enacs=\E(B\E)0,
+	flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+	ind=\n,
+	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,
-	kLFT=\EOD, kRIT=\EOC, 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~, khome=\E[1~, kich1=\E[2~,
-	kind=\EOB, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kri=\EOA,
-	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,
+	kbs=^?, kcbt=\E[Z, khome=\E[1~, kind=\E[B, kri=\E[A, kspd=^Z,
+	nel=\r\n, oc=\E]R, op=\E[39;49m, ri=\EM, rmacs=^O,
+	rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, 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, vpa=\E[%i%p1%dd, E3=\E[3J, use=putty+fnkeys,
-	use=vt102+enq, use=xterm+sl,
-vt100-putty|Reset PuTTY to pure vt100,
+	s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
+	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, smir=\E[4h,
+	smkx=\E[?1h\E=, vpa=\E[%i%p1%dd, E3=\E[3J,
+	use=ansi+apparrows, use=ansi+csr, use=ansi+erase,
+	use=ansi+idl, use=ansi+local, use=ansi+tabs,
+	use=ansi+rep, use=bracketed+paste, use=ecma+index,
+	use=ecma+strikeout, use=klone+color, use=klone+sgr,
+	use=putty+cursor, use=putty+fnkeys, use=vt220+pcedit,
+	use=xterm+alt1049, use=vt102+enq, use=xterm+sm+1006,
+	use=xterm+sl, use=vt100+fnkeys, use=putty+keypad,
+	use=vt220+cvis,
+
+# older versions (e.g., before 0.71) of PuTTY used a shift-modifier to toggle
+# between normal- and application-mode for the cursor-keys.  That was dropped,
+# and a few years later (after 0.74) restored as the control-modifier.
+putty+cursor|PuTTY modified cursor-keys,
+	kDN5=\E[B, kLFT5=\E[D, kRIT5=\E[C, kUP5=\E[A,
+putty+keypad|PuTTY numeric keypad,
+	kp1=\EOq, kp2=\EOr, kp3=\EOs, kp4=\EOt, kp5=\EOu, kp6=\EOv,
+	kp7=\EOw, kp8=\EOx, kp9=\EOy, kpADD=\EOl, kpDIV=\EOQ,
+	kpDOT=\EOn, kpMUL=\EOR, kpNUM=\EOP, kpSUB=\EOS, kpZRO=\EOp,
+
+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,
 	use=xterm+256setaf, use=putty,
+putty-noapp|putty with cursor keys in normal mode,
+	kLFT=\EOD, kRIT=\EOC, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+	kcuu1=\E[A, kind=\EOB, kri=\EOA, rmkx=\E>, smkx=\E=,
+	use=putty,
 
 # One of the keyboard selections is "VT100+".
 # pterm (the X11 port) uses shifted F1-F10 as F11-F20
@@ -3603,7 +4260,7 @@
 #
 putty+fnkeys+sco|SCO fn-keys for PuTTY,
 	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,
+	kdch1=^?, 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,
@@ -3615,6 +4272,71 @@
 	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,
 
+#### mintty
+# https://github.com/mintty/mintty
+#
+# Originally a fork (and reduction) of PuTTY, this has grown from 15ksloc in
+# 2013 to 41ksloc in 2020.  That is still smaller than PuTTY (160ksloc), but
+# larger than rxvt (31ksloc) and slightly smaller than rxvt-unicode (42ksloc).
+#
+# Version 3.0 responds to DA as a VT400, however it does not implement the
+# application keypad.  The assignment of cursor-keys versus modifiers differs
+# from xterm (alt-left and alt-right send modifier 7, i.e., alt+control).
+#
+# Thomas Wolff suggested these extensions:
+#	blink2   turn on rapid blinking
+#	blink0   turn off blinking
+#	norm     turn off bold and half-bright mode
+#	opaq     turn off blank mode
+#	smul2    begin double underline mode
+#	smol     begin overline mode
+#	rmol     exit overline mode
+#	Font0    use default font
+#	Font1    use alternative font 1
+#	...
+#	Font10   use alternative font 10
+#	setal    set (under)line color
+#	ol       set default (under)line color
+#	overs    overstrike (print characters over each other)
+#
+# but see vte-2018 (use Smol/Rmol rather than smol/rmol).
+mintty|Cygwin Terminal,
+	setal=\E[5%p1%dm, use=xterm+256color,
+	use=mintty+common,
+mintty-direct|Cygwin Terminal direct-color,
+	use=kitty+setal, use=xterm+direct, use=mintty+common,
+mintty+common|shared capabilities for mintty,
+	km@, npc,
+	kcbt=\E[Z, kent=\EOM, rmm@, rmpch=\E[10m,
+	rs1=\Ec\E]104\007, rshm=\E[22m, rsubm=\E[75m,
+	rsupm=\E[75m, smm@, smpch=\E[11m, sshm=\E[1:2m,
+	ssubm=\E[74m, ssupm=\E[73m, Rmol=\E[55m, Smol=\E[53m,
+	Smulx=\E[4:%p1%dm, blink2=\E[6m, norm=\E[22m,
+	opaq=\E[28m, smul2=\E[21m, use=linux+kbs, use=ansi+rep,
+	use=ecma+strikeout, use=ecma+index, use=vt420+lrmm,
+	use=xterm+focus, use=xterm+sm+1006, use=xterm+pcfkeys,
+	use=xterm+tmux, use=ecma+italics, use=xterm-basic,
+	use=bracketed+paste, use=report+version,
+# 2019-06-09: These capabilities are commented-out for compatibility with
+# existing releases 5.9-6.1, and may be considered for inclusion after the
+# release of ncurses 6.2:
+#	Font0=\E[10m,
+#	Font1=\E[11m,
+#	Font2=\E[12m,
+#	Font3=\E[13m,
+#	Font4=\E[14m,
+#	Font5=\E[15m,
+#	Font6=\E[16m,
+#	Font7=\E[17m,
+#	Font8=\E[18m,
+#	Font9=\E[19m,
+#	Font10=\E[20m,
+#	blink0=\E[25m,
+#	ol=\E[59m,
+#	overs=\E[8\:7m,
+
+#### TeraTerm
+
 # 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:
@@ -3629,14 +4351,14 @@
 #	- 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
+# 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
+# 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,
+# is laid out like VT220, rather than the face codes on the PC keyboard, i.e,
 #	kfnd	Insert
 #	kslt	Delete
 #	kich1	Home
@@ -3654,47 +4376,78 @@
 # 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.
-teraterm2.3|Tera Term Pro,
-	km, xon@,
+teraterm2.3|Tera Term Pro 2.3,
+	km,
 	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~,
+	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, clear=\E[H\E[J, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+	dch1=\E[P, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+	flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG, 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,
+	kf8=\E[19~, kf9=\E[20~, 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,
+	smul=\E[4m, vpa=\E[%i%p1%dd, use=ansi+idl,
+	use=vt220+vtedit, use=vt100+enq, use=klone+color,
+	use=vt100, use=vt220+cvis,
 
-# Version 4.59 has regular vt100 line-drawing (so it is no longer necessary
+# Version 4.59 has regular VT100 line-drawing (so it is no longer necessary
 # to choose a Windows OEM font).
 #
 # Testing with tack:
 #	- it does not have xenl (suppress that)
 #	- underline seems to work with color (modify ncv).
 # Testing with vttest:
-#	- wrapping differs from vt100 (menu 1).
+#	- wrapping differs from VT100 (menu 1).
 #	- it recognizes xterm's X10 and normal mouse tracking, but none of the
 #	  other flavors.
 #	- it recognizes the dtterm window controls for reporting size in
 #	  characters and pixels.
 #	- it passes SIGWINCH.
-teraterm4.59|Tera Term Pro,
+teraterm4.59|Tera Term Pro 4.59,
 	bce, xenl@,
 	ncv#41,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	kmous=\E[M, use=teraterm2.3,
 
+# Version 4.97
+#
+# Testing with tack:
+#	- no bell (flash works)
+#	- bold is yellow, blink is red.
+#	- default keyboard sends ^? for Delete, can be configured for kdch1
+#	- no meta mode
+# Testing with vttest:
+#	+ autowrap has problems...
+#	+ color-tests for bce feature match xterm's behavior
+#	+ handles most of xterm's mouse-controls other than highlight-tracking.
+#	  xterm's SGR 1006 works.
+#	+ partial support for DEC locator-events
+#	+ implements ECMA-48 SD/SU, but not REP, SL/SR.
+#	+ has a "Tek" window, but does not work with vttest's examples
+#	+ supports the dtterm window modify/report controls
+#	+ responds to DECRQM and DECRQSS controls, but not consistent with DSR
+#	  e.g., for VT220
+#	+ VT220 screen-display tests are ok
+#	+ no VT52 support
+# Other tests:
+#	+ recognizes xterm's original direct-colors sequences, but result is
+#	  poor.
+#	+ no UTF-8 apparent when UTF-8 is set, with font Lucida Control
+teraterm4.97|Tera Term Pro 4.97,
+	XT, use=ecma+color, use=xterm+sm+1006, use=teraterm4.59,
+teraterm-256color|TeraTerm with xterm 256-colors,
+	use=xterm+256setaf, use=teraterm,
+
 teraterm|Tera Term,
-	use=teraterm4.59,
+	use=teraterm4.97,
+
+#### Command prompt
 
 # Tested with WinNT 4.0, the telnet application assumes the screensize is
 # 25x80.  This entry uses the 'Terminal' font, to get line-drawing characters.
@@ -3702,12 +4455,14 @@
 # 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,
+#    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,
+	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,
 
@@ -3718,7 +4473,7 @@
 # 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),
+ms-vt100-color|vtnt|windows 2000 ANSI (sic),
 	bce,
 	dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color,
 	use=ms-vt100,
@@ -3738,7 +4493,7 @@
 #	Shift	\E^S
 #	Alt	\E^A,
 #	Ctrl	\E^C,
-ms-vt100+|vt100+|windows XP vt100+ (sic),
+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,
@@ -3755,19 +4510,239 @@
 	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+,
+ms-vt-utf8|vt-utf8|UTF-8 flavor of VT100+,
 	use=ms-vt100+,
 
-# expect-5.44.1.15/example/tkterm
-# a minimal subset of a vt100 (compare with "news-unk).
+# VT-UTF-8 and VT100+ Protocols
+# https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-vuvp/969416c0-ccd6-4a75-a9b3-597d7713845b
 #
-# The missing "=" in smkx is not a typo (here), but an error in tkterm.
-tt|tkterm|Don Libes' tk text widget terminal emulator,
-	clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, 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, rmkx=\E[?1l\E>, rmso=\E[m, smkx=\E[?1h\E,
-	smso=\E[7m,
+# This Microsoft "protocol" adapted the aixterm 16-color feature from xterm's
+# documentation in 2015, as seen in successive revisions:
+#
+# 2013/07/22 has 8 colors
+# 2015/10/16 has 16 colors using SGR 90-97, 100-107 as well as SGR 24 and 27,
+#            adds "informative" reference to xterm's ctlseqs
+#
+# The cnorm/civis definitions added in 2015 are unrelated to any standard.
+ms-vt100-16color|VT-UTF-8 and VT100+,
+	civis=\E[?h, cnorm=\E[?l, rmso=\E[27m, rmul=\E[24m,
+	use=ibm+16color, use=ms-vt100+,
+
+# Based on
+# https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences
+# We use this scheme to map function keys
+#       terminfo        modifier        code    keys
+#       kf13-kf24       shift           2       F1 to F12
+#       kf25-kf36       alt             3       F1 to F12
+#       kf37-kf48       control         4       F1 to F12
+#       kf49-kf60       ctrl-alt        7       F1 to F12
+#
+# Unclear: smam and rmam implemented?
+# Unclear: rmkx, smkx, rmir, smir - irrelevant?
+#
+# TD:
+# +	According to tack, tbc and cbt fail.
+# +	The line-drawing (acsc) does not work in telnet or ssh.  I added the
+#	U8 extension to tell ncurses to use UTF-8 for line-drawing (when the
+#	locale uses UTF-8).  That won't work for telnet (which uses ASCII),
+#	but seems to work for OpenSSH's ssh.  I set the codepage to 65001,
+#	of course.
+# +	Function keys... do not work consistently in telnet and ssh.  With
+#	telnet, kf1-kf4 are \EOP to \EOS, and kf5-kf12 match the terminfo.
+#	But with ssh, it's entirely different (reminds me of rxvt).
+winconsole|Windows 10 new console,
+	am, km, mir, msgr, xenl,
+	ncv@, U8#1,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz~~,
+	bel=^G, blink@, cr=\r, ech=\E[%p1%dX, el1=\E[0K, ich1@, ind=\n,
+	invis@, is1=\E[!p, 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~, kf20=\E[19;2~,
+	kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[24;2~,
+	kf24=\E[25;2~, kf25=\E[11;3~, kf26=\E[12;3~,
+	kf27=\E[13;3~, kf28=\E[14;3~, kf29=\E[15;3~,
+	kf30=\E[17;3~, kf31=\E[18;3~, kf32=\E[19;3~,
+	kf33=\E[20;3~, kf34=\E[21;3~, kf35=\E[24;3~,
+	kf36=\E[25;3~, kf37=\E[11;4~, kf38=\E[12;4~,
+	kf39=\E[13;4~, kf40=\E[14;4~, kf41=\E[15;4~,
+	kf42=\E[17;4~, kf43=\E[18;4~, kf44=\E[19;4~,
+	kf45=\E[20;4~, kf46=\E[21;4~, kf47=\E[24;4~,
+	kf48=\E[25;4~, kf49=\E[11;7~, kf50=\E[12;7~,
+	kf51=\E[13;7~, kf52=\E[14;7~, kf53=\E[15;7~,
+	kf54=\E[17;7~, kf55=\E[18;7~, kf56=\E[19;7~,
+	kf57=\E[20;7~, kf58=\E[21;7~, kf59=\E[24;7~,
+	kf60=\E[25;7~, khome=\E[1~, nel=\r\n, ri=\E[T, rmacs=\E(B,
+	rmir@, rmpch@, rs1=\E[!p,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t
+	    \E(0%e\E(B%;,
+	sgr0=\E[0m\E(B, smacs=\E(0, smir@, smpch@, use=ansi+arrows,
+	use=ansi+csr, use=ansi+cup, use=ansi+erase, use=ansi+idc,
+	use=ansi+idl, use=ecma+index, use=ansi+inittabs,
+	use=ansi+local, use=ecma+sgr, use=ecma+color,
+	use=vt220+cvis, use=vt220+pcedit, use=xterm+nopcfkeys,
+
+# Windows Terminal (Preview)
+# https://github.com/microsoft/terminal
+#
+# Windows 10 22H2 (also Windows 11)
+# Version 1.16.10261.0
+#
+# - Windows Terminal #1553: "Feature Request:  Mouse/Touch/Pointer Bindings
+#   (like middle-click paste, right-click context menu, etc.)", compare to
+#   https://learn.microsoft.com/en-us/windows/console/mouse-event-record-str
+#   This appears to be related to a problem with its implementation of the
+#   Console API; the mouse does not work in a "Command Window" (e.g., as used
+#   in the ncurses MinGW driver), although escape sequences work.
+#
+# Windows 10 21H1
+# Version 1.9.1942.0
+#
+# This has longstanding issues with CR/LF mapping, e.g.,
+# - first reported by Juergen Pfeifer August 13, 2020, with workaround
+# - Windows Terminal #8303 "Updates to ms-terminal terminal type in terminfo to
+#   1.4 from 0.2"
+# - Windows Terminal #6733 "Midnight Commander (mc) output is screwed when
+#   using the 'ms-terminal' as $TERM"
+#
+# still seen in testing during May-July 2021.  As a workaround, this terminal
+# description sets cud1 to an escape sequence rather than just \r.
+#
+# Using TERM=xterm-256color shows a number of problems.
+# A few are seen only in the WSL2 environment.
+#
+# tack:
+# - flash does not work.
+# - video attribute blink does not work.
+# - video attribute invis does not work in WSL2.
+# - italics sitm/ritm do not work in WSL2.
+# - crossed-out smxx/rmxx do not work in WSL2.
+# - reloading colors via initp interchanges red/blue.
+# - does not implement OSC 104, which is used for resetting colors in xterm.
+# - does not support numeric keypad application mode.
+# - control-modifier (without alt/shift) does not work for special keys.
+# - meta-key sends escape character rather than acting as a meta key.
+#
+# vttest:
+# - identifies itself as a VT100.
+# - cursor movement (menu 1) does not work properly, e.g., for wrapping.
+# - does not support 8-bit controls.
+# - does not support VT420 rectangles.
+# - does not support VT420 left/right margins.
+# - ECMA-48 cursor-movement works.
+# - does not support X10 mouse, or mouse highlight tracking.
+# - SGR mouse mode 1006 works.
+# - any-event mouse mode shows no focus-in/focus-out events.
+# - alternate screen 47/48 modes do not work, nor do 1047/1048.
+# - alternate screen 1049 mode works.
+# - none of the window report/modify operations work.
+# - none of the DECRPM/DECRQM reporting operations work.
+#
+# xterm:
+# - 256colors2.pl -r, -i and -q options work.
+# - dynamic colors do not work.
+# - paste64.pl does not work, i.e., bracketed-paste.
+# - tcapquery.pl does not work.
+#
+# Windows 10 1903
+# Version 0.2.1831.0
+#
+# The task manager shows this as "OpenConsole.exe", which differs
+# from the "Windows Command Processor" used for the command-prompt.
+#
+# The settings dialog does not work (unless the end user expects to open
+# profiles.json in Visual Studio).  There is no documentation, of course.
+#
+# Testing via an ssh connection, using openssh:
+# - the program sets TERM to cygwin if the tab is set to PowerShell,
+#   and to xterm-256color if "Legacy".  However, in the latter, more tests
+#   fail in vttest, which does not pay attention to TERM.
+# vttest:
+# - menu 1 (tests for cursor movement) misbehaves like command-prompt
+# - primary DA says this is a vanilla VT100
+# - does not flush response to primary DA, leaving a ^M on the end when
+#   the PowerShell tab is used.  Both the "Legacy" tab and the command-prompt
+#   work properly in this test.
+# - in the generic VT100 tests, there are problems with character sets
+#   (diamond shows as a double-width character, DEL as two replacement-chars).
+# - outside of the generic VT100 tests, the program does poorly because most
+#   of the features are missing.
+# - ECH does not work properly
+# - a few generic xterm features are supported (set window title), but
+#   others are missing (such as the mouse).
+# - the cursor visible/invisible works in the PowerShell tab, not in "Legacy"
+# tack:
+# - blink, dim, bold, invis, protect do not work
+# - bce works (but per vttest, with ED, EL, not ECH)
+# - does not support keypad application mode
+# - implements most of the xterm modified keys; sometimes modifiers are ignored
+#   or simply incorrect
+# - sends escape+key rather than implementing meta mode
+# other:
+# - color palette can be altered, but OSC 104 for resetting does not work
+# - crashed with a script used for testing NRCS.
+# - does not recognize either xterm+direct or xterm+indirect escapes.
+ms-terminal|Windows10 terminal,
+	npc,
+	cud1=\E[B, kcbt=\E[Z, rmkx=\E[?1l, rmm@, smkx=\E[?1h, smm@,
+	Cr@, Ms@, use=linux+kbs, use=xterm+256color,
+	use=xterm+pcfkeys, use=ansi+rep, use=xterm+sm+1006,
+	use=ecma+index, use=ecma+italics, use=ecma+strikeout,
+	use=xterm-basic, use=xterm+tmux,
+
+#### Visual Studio
+# Visual Studio Code 1.45.0 uses xterm.js 12.8.1 (see https://xtermjs.org/).
+#
+# vttest:
+# - fixes menu 1 problem with wrapping
+# - supports DECALN
+# - fixes menu 8 problem with delete-character
+# - REP, SL/SL work
+# - keypad application mode still does not work; PF1-PF4 are not assigned.
+# - DECRQM/DECRPM do not work
+# - xterm mouse features:
+#   - SGR coordinates work; the other modes do not (see vscode #96058)
+#   - focus-events are not sent
+#   - mouse highlight tracking does not send button event
+# tack/other:
+# - little or no change since previous review
+#
+# Visual Studio Code 1.35.1 uses xterm.js (see https://xtermjs.org/).
+# https://code.visualstudio.com/docs/editor/integrated-terminal
+#
+# This sets TERM to xterm-256color, which is a little more successful than
+# Windows Terminal.
+#
+# vttest:
+# - menu 1 (cursor movement) has problems with wrapping
+# - claims to be a VT100 with AVO, but copies xterm #276's secondary response
+# - menu 8 (insert/delete char/line) has problem with delete-character
+# - like Windows Terminal, fails the ECH test: neither supports DECALN
+#   However, the bce test with ECH works.
+# - does not support keypad application mode
+# - supports most xterm mode controls (except DEC Locator Events)
+# - REP, SL/SL do not work, but SD/SU work.
+# - the alternate-screen tests fail because it does not support DECALN
+# - window modify/report is not supported
+# - supports some VT320 presentation reports
+# tack:
+# - does not support blinking text
+# - implements most of the xterm modified keys, with some exceptions:
+#   - pageup/pagedown do not send escapes
+#   - alt cursor left/right send escape-b and escape-f
+# - sends UTF-8 like xterm for meta mode
+# other:
+# - mouse mode is not reset by reset-sequence
+# - supports italics and dim, but not cross-out or double-underline
+# - color-palette cannot be changed
+vscode|xterm.js|Visual Studio Code terminal using xterm.js,
+	npc,
+	kcbt=\E[Z, rmkx=\E[?1l, smkx=\E[?1h, use=linux+kbs,
+	use=xterm+256setaf, use=ecma+index, use=xterm+focus,
+	use=xterm+sm+1006, use=xterm+pcfkeys, use=ecma+italics,
+	use=xterm-basic, use=bracketed+paste,
+vscode-direct|Visual Studio Code with direct-colors,
+	use=xterm+indirect, use=vscode,
 
 ######## X TERMINAL EMULATORS
 #### XTERM
@@ -3791,15 +4766,20 @@
 	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,
+	cub1=^H, cud1=\n, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, ed=\E[J, el=\E[K,
+	home=\E[H, ht=^I, ind=\n, 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,
+	smso=\E[7m, smul=\E[4m, use=ansi+idl,
+
+# csl is extension which clears the status line
+x10term+sl|status-line for X10 xterm,
+	eslok, hs,
+	dsl=\E[?H, fsl=\E[?F, tsl=\E[?E\E[?%i%p1%dT, csl=\E[?E,
+
 # 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
@@ -3808,26 +4788,22 @@
 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,
+	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+	hts=\EH, ind=\n, kdl1=\E[31~, kel=\E[8~, 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~,
+	kil1=\E[30~, kmous=\E[M, rev=\E[7m, ri=\EM, 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,
+	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
+	    %;m,
+	sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+	tbc=\E[3g, use=xterm+kbs, use=ansi+apparrows,
+	use=ansi+csr, use=ansi+idc, use=ansi+idl, use=ansi+local,
+	use=vt220+pcedit, 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
@@ -3837,66 +4813,68 @@
 	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,
+	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+	dch1=\E[P, ed=\E[J, el=\E[K, enacs=\E)0, home=\E[H, ht=^I,
+	hts=\EH, ind=\n,
+	is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 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~, kmous=\E[M, meml=\El, memu=\Em,
+	rev=\E[7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmkx=\E[?1l\E>,
+	rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8,
+	sgr0=\E[m, smacs=^N, smir=\E[4h, smkx=\E[?1h\E=, tbc=\E[3g,
+	use=xterm+alt47, use=ansi+csr, use=ansi+idl,
+	use=ansi+local, use=ansi+sgrso, use=ansi+sgrul,
+	use=vt220+vtedit, use=xterm+kbs, use=vt100+enq,
+
 xterm-old|antique xterm version,
 	use=xterm-r6,
+# The monochrome version began as a copy of "xtermm" (from Solaris), and was
+# initially part of the xterm sources (in XFree86).  But "xterm" continued to
+# grow, while "xterm-mono" had none of the newer features.  Additionally,
+# inheriting from "xtermm" runs into several problems, including different
+# function keys as well as the fact that the mouse support is not compatible.
+# This entry restores the original intent, intentionally not an alias to
+# simplify maintenance -TD
+xterm-mono|monochrome xterm,
+	use=xterm-r6,
 # 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, XT,
-	cols#80, it#8, lines#24, ncv@,
+	cols#80, 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,
+	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, 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, ind=\n,
 	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,
+	kbeg=\EOE, kbs=^?, kdch1=^?, 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~, kmous=\E[M, kslt=\E[4~,
+	meml=\El, memu=\Em, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
+	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>,
+	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, smkx=\E[?1h\E=,
+	smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+	use=ansi+apparrows, use=ansi+csr, use=ansi+idc,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+	use=xterm+alt47, use=xterm+kbs, use=vt100+enq,
+	use=ecma+color, use=vt220+cvis, use=vt220+keypad,
+	use=vt220+pcedit,
 
 # This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
 # codes for F1-F4 except while in VT220 mode.
@@ -3912,7 +4890,8 @@
 	is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
 	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%;,
+	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=ansi+pp,
 	use=xterm-xf86-v33,
 
@@ -3921,48 +4900,82 @@
 	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,
+	ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, 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~,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?
+	    %p9%t\016%e\017%;,
+	use=xterm+alt1049, 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%;,
+	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,
 
+# Controlling the cursor-visibility is not a "new" feature, but was generally
+# neglected in terminal emulators until the mid-1990s.  These would work for
+# the hardware terminals, or for more recent emulators, e.g., xterm.
+vt220+cvis|DECTCEM VT220 cursor-visibility,
+	civis=\E[?25l, cnorm=\E[?25h,
+vt220+cvis8|8-bit DECTCEM VT220 cursor-visibility,
+	civis=\233?25l, cnorm=\233?25h,
+# The first block is for terminals which did not support blinking cursor.
+att610+cvis0|AT&T 610 cursor-visibility,
+	civis=\E[?25l, cnorm=\E[?12l\E[?25h,
+att610+cvis|AT&T 610 cursor-visibility with blink,
+	civis=\E[?25l, cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h,
+
 # 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,
+	use=att610+cvis, use=ecma+index, use=xterm-xf86-v43,
 
 xterm-xfree86|xterm terminal emulator (XFree86),
 	use=xterm-xf86-v44,
 
+xterm+nofkeys|building block for xterm fkey-variants,
+	npc,
+	kcbt=\E[Z, nel=\EE, use=ecma+index, use=ansi+rep,
+	use=ecma+strikeout, use=vt420+lrmm, use=xterm+focus,
+	use=xterm+sm+1006, use=xterm+tmux, use=ecma+italics,
+	use=xterm+keypad, use=xterm-basic,
+
+xterm-p370|xterm patch #370,
+	rv=\E\\[41;[1-6][0-9][0-9];0c,
+	xr=\EP>\\|XTerm\\([1-9][0-9]+\\)\E\\\\,
+	use=ecma+index, use=ansi+rep, use=ecma+strikeout,
+	use=xterm+pcfkeys, use=xterm+nofkeys,
+	use=bracketed+paste, use=report+version,
+	use=xterm+focus,
+
+xterm-p371|xterm patch #371,
+	use=dec+sl, use=xterm-p370,
+
 # This version reflects the current xterm features.
 xterm-new|modern xterm terminal emulator,
-	npc,
-	indn=\E[%p1%dS, kb2=\EOE, kcbt=\E[Z, kent=\EOM,
-	rin=\E[%p1%dT, use=xterm+pcfkeys, use=xterm+tmux,
-	use=xterm-basic,
+	use=xterm-p370,
 
 # This fragment is for people who cannot agree on what the backspace key
-# should send.
+# should send.  The ncurses configure script option "--with-xterm-kbs" can
+# set it to BS (standard) or DEL (Linux's notion of "vt220").  xterm provides
+# either, depending on how the pseudoterminals are configured.
 xterm+kbs|fragment for backspace key,
 	kbs=^H,
+
+# Use this fragment for terminals that always use DEL for "backspace".
+linux+kbs|fragment for "backspace" key,
+	kbs=^?,
 #
 # This fragment describes as much of XFree86 xterm's "pc-style" function
 # keys as will fit into terminfo's 60 function keys.
@@ -3979,21 +4992,52 @@
 #  ---------------------------------
 # 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,
+xterm+pcfkeys|xterm fragment for PC-style fkeys,
 	use=xterm+app, use=xterm+pcf2, use=xterm+pcc2,
 	use=xterm+pce2,
-#
+
+# The xterm ctrlFKeys resource defaults to 10, so without the "pc-style"
+# feature, e.g., setting the modifyCursorKeys and modifyFunctionKeys resources
+# to -1 to disable them, one gets 42 function-keys on a 12-function-key
+# keyboard, e.g.,
+# kf1                   = \E[11~
+# kf11 shift f1         = \E[23~
+# kf21 control f1       = \E[42~
+# kf31 shift control f1 = \E[52~
+xterm+nopcfkeys|fragment without PC-style fkeys,
+	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[42~, kf22=\E[43~, kf23=\E[44~,
+	kf24=\E[45~, kf25=\E[46~, kf26=\E[47~, kf27=\E[48~,
+	kf28=\E[49~, kf29=\E[50~, kf3=\E[13~, kf30=\E[51~,
+	kf31=\E[52~, kf32=\E[53~, kf33=\E[54~, kf34=\E[55~,
+	kf35=\E[56~, kf36=\E[57~, kf37=\E[58~, kf38=\E[59~,
+	kf39=\E[60~, kf4=\E[14~, kf40=\E[61~, kf41=\E[62~,
+	kf42=\E[63~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+	kf8=\E[19~, kf9=\E[20~,
+
+vt100+noapp|fragment with cursor keys in normal mode,
+	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	use=vt100+noapp+pc,
+
 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,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+	use=xterm+app+pc,
+
+vt100+noapp+pc|fragment for noapp pc-style home/end,
+	kend=\E[F, khome=\E[H,
+
+xterm+app+pc|fragment for app pc-style home/end,
+	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.
+# and revised in xterm 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:
@@ -4010,6 +5054,18 @@
 # 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.
+#
+# These entries will have warnings when checking with tic because the kri/kind
+# capabilities duplicate the kUP/kDN extensions.  This is intentional, though
+# not part of the original plan.  The changes for xterm patch #206 (2005/11/3)
+# show that kri/kind were seen much later as part of a set including kLFT/kRIT:
+#
+#   * modify  xterm-new  terminfo  entry to use capabilities for shifted
+#     scroll forward/reverse as shifted cursor up/down.
+#
+# In the 1980s when terminfo was defined, the developers made more of
+# a distinction between shifted up/down versus shifted left/right since most
+# terminals can index (scroll up/down), while few can scroll left/right.
 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,
@@ -4050,8 +5106,7 @@
 # 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,
+	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~, kf25=\EO5P, kf26=\EO5Q,
@@ -4062,57 +5117,118 @@
 	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~,
+	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~,
+	kf60=\E[24;3~, kf61=\EO4P, kf62=\EO4Q, kf63=\EO4R,
+	use=xterm+nopcfkeys,
 #
 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,
+	kf1=\EOP, 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, 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~,
+	kf58=\E[21;3~, kf59=\E[23;3~, kf60=\E[24;3~,
+	kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R,
+	use=xterm+nopcfkeys,
 #
 # Chunks from xterm #230:
-xterm+pce2|fragment with modifyCursorKeys:2,
+xterm+pce2|fragment with modifyCursorKeys:2 editing-keys,
 	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,
+	kNXT=\E[6;2~, kPRV=\E[5;2~, 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,
+	use=xterm+pc+edit, use=vt220+pcedit,
+
+xterm+decedit|fragment for vt220 6-key editing-keypad,
 	kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	use=xterm+pc+edit,
+	use=xterm+vt+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,
+xterm+vt+edit|fragment for VT220-style editing keypad,
 	kfnd=\E[1~, kslt=\E[4~,
 
+# These variations for alternate-screen and title-stacking were introduced by
+# xterm patch #331:
+xterm+noalt|xterm without altscreen,
+	rmcup@, smcup@,
+
+xterm+alt47|X11R4 alternate-screen,
+	rmcup=\E[2J\E[?47l\E8, smcup=\E7\E[?47h,
+
+xterm+alt1049|xterm 90 feature,
+	rmcup=\E[?1049l, smcup=\E[?1049h,
+
+xterm+titlestack|xterm 251 feature,
+	rmcup=\E[23;0;0t, smcup=\E[22;0;0t,
+
+xterm+alt+title|xterm 90 and 251 features combined,
+	rmcup=\E[?1049l\E[23;0;0t, smcup=\E[?1049h\E[22;0;0t,
+
+# https://invisible-island.net/xterm/xterm.faq.html#xterm_keypad
+#
+# Xterm's emulation of the VT100 numeric keypad on a PC-keyboard runs into the
+# problem that the keypad layout is different, and that the natural choice for
+# PF1 is NumLock (which happens to be reserved for other use).  To work around
+# that, PF1-PF4 are emulated via F1-F4, which leaves the "/", "*" and "+" not
+# directly related to VT100.
+#
+# With the VT220 keypad block that uses the 1-9 keys as suggested in
+# terminfo(5), the other keys can be handled with user-defined capabilities:
+#
+#   _______________________________________
+#  | NumLock |    /    |    *    |    -    |
+#  |         |   $Oo   |   $Oj   |   $OS   |
+#  |_________|__kpDIV__|__kpMUL__|__kpSUB__|
+#  |    7         8         9    |    +    |
+#  |   $Ow   |   $Ox   |   $Oy   |   $Ok   |
+#  |_ka1__K1_|_________|_ka3__K3_|  kpADD  |
+#  |    4    |    5    |    6    |         |
+#  |   $Ot   |   $Ou   |   $Ov   |         |
+#  |_________|_kb2__K2_|_________|_________|
+#  |    1    |    2    |    3    |         |
+#  |   $Oq   |   $Or   |   $Os   |         |
+#  |_kc1__K4_|_________|_kc3__K5_|  enter  |
+#  |         0         |    .    |   $OM   |
+#  |        $Op        |   $On   |         |
+#  |_______kpZRO_______|__kpDOT__|_kent_@8_|
+#
+# ka2, kb1, kb3 and kc2 are extensions, as are the mixed-case names.
+# There are no termcap equivalents for these extensions.
+#
+# kpCMA (comma) is used here for the VT100 keypad, which xterm emulates with
+# shifted-keypad-plus, though normally that invokes a font-size change.
+#
+# Old versions of xterm, e.g., xterm-xfree86, documented \EOE as kb2, which
+# does not fit into this layout.  The extension kp5 fits, but is not visible
+# to termcap applications.  As an alternative, kbeg (which does have a termcap
+# equivalent) is provided.
+#
+xterm+keypad|xterm emulating VT100/VT220 numeric keypad,
+	kbeg=\EOE, kp5=\EOE, kpADD=\EOk, kpCMA=\EOl, kpDIV=\EOo,
+	kpDOT=\EOn, kpMUL=\EOj, kpSUB=\EOm, kpZRO=\EOp,
+	use=vt220+keypad,
 #
 # 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
@@ -4126,69 +5242,104 @@
 	kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~,
 	kf63=\E[13;4~, use=xterm+pcf2,
 #
+xterm+acs|ISO-2022 alternate character-switching for xterm,
+	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	enacs@, rmacs=\E(B, smacs=\E(0,
+
 # This chunk is used for building the VT220/Sun/PC keyboard variants.
 xterm-basic|modern xterm terminal emulator - common,
-	OTbs, am, bce, km, mir, msgr, xenl, AX, XT,
-	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, 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$<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>, kmous=\E[M, meml=\El,
-	memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
-	ritm=\E[23m, 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,
+	OTbs, am, bce, mir, msgr, xenl, AX, XT,
+	colors#8, cols#80, lines#24, pairs#64,
+	bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	dim=\E[2m, 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,
+	ich=\E[%p1%d@, ind=\n, is2=\E[!p\E[?3;4l\E[4l\E>,
+	kmous=\E[M, meml=\El, memu=\Em, op=\E[39;49m, ri=\EM,
+	rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+	rmul=\E[24m, rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
 	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%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
-	sgr0=\E(B\E[m, sitm=\E[3m, 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, E3=\E[3J, use=ansi+pp, use=xterm+kbs,
-	use=vt100+enq,
+	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%;%?%p5%t;2%;%?%p2%t;4%;
+	    %?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+	sgr0=\E(B\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
+	vpa=\E[%i%p1%dd, E3=\E[3J, use=ansi+csr, use=ansi+enq,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+	use=ansi+pp, use=ansi+sgrbold, use=xterm+kbs,
+	use=xterm+alt+title, use=att610+cvis, use=xterm+acs,
+	use=xterm+meta,
+
+xterm+meta|meta mode for xterm,
+	km,
+	rmm=\E[?1034l, smm=\E[?1034h,
 
 # 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,
 
-# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
+#### XTERM Colors
+
+# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0
+# (T.Dickey)
+#
 # If configured to support 88- or 256-colors (which is fairly common in 2009),
 # xterm also recognizes the control sequences for initc -TD
 xterm-16color|xterm with 16 colors like aixterm,
 	ccc,
-	initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
-	use=ibm+16color, use=xterm-new,
+	initc=\E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*
+	      %{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
+	use=xterm+osc104, use=ibm+16color, use=xterm-new,
 
 # 256-colors is a compile-time feature of XFree86 xterm beginning with
-# patch #111 (1999/7/10) -TD
-xterm+256color|xterm 256-color feature,
+# xterm patch #111 (1999/7/10) -TD
+xterm+256color|original 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,
+	colors#0x100, pairs#0x10000,
+	initc=\E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*
+	      %{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
+	oc=\E]104\007,
+	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@,
 
+# The semicolon separator used in xterm+256color does not follow the ECMA-48
+# standard.  Since patch #282 (in 2012), xterm has supported both the legacy
+# subparameter separator (semicolon) and the standard (colon).
+#
+# The xterm FAQ gives some of the history:
+#	https://invisible-island.net/xterm/xterm.faq.html#color_by_number
+xterm+256color2|xterm 256-color feature,
+	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,
+	use=xterm+256color,
+
+# xterm OSC 104 resets the color palette.  Using it as part of xterm+256color
+# has the drawback that some of the xterm-alikes which use that building block
+# require a different approach to rs1 -TD
+xterm+osc104|reset color palette,
+	oc=\E]104\007, rs1=\Ec\E]104\007,
+
+# palette is hardcoded...
 xterm+256setaf|xterm 256-color (set-only),
 	ccc@,
-	colors#256, pairs#32767,
-	initc@,
-	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,
+	colors#0x100, pairs#0x10000,
+	initc@, op=\E[39;49m,
+	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@,
 
 # 88-colors is a compile-time feature of XFree86 xterm beginning with
-# patch #115 (1999/9/18) -TD
+# xterm 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
@@ -4203,14 +5354,135 @@
 # 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,
+xterm+88color|original xterm 88-color feature,
 	colors#88, pairs#7744, use=xterm+256color,
 
+xterm+88color2|xterm 88-color feature,
+	colors#88, pairs#7744, use=xterm+256color2,
+
 # 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,
+	use=xterm+osc104, use=xterm+256color, use=xterm-new,
 xterm-88color|xterm with 88 colors,
-	use=xterm+88color, use=xterm-256color,
+	use=xterm+osc104, use=xterm+88color,
+	use=xterm-256color,
+
+# Emacs 26.1 and later support direct color mode in terminals, using a
+# combination of user-defined capabilities and ncurses-dependent function
+# calls.  We will not include that here.
+#
+# Here is a first revision, which (disregarding the reuse of colors 1-7 which
+# is of interest only to the numerically illiterate), is compatible with other
+# terminal descriptions written for curses.  It relies upon the extended range
+# for numeric capabilities provided in ncurses 6.1:
+xterm+direct2|xterm with direct-color indexing (old building-block),
+	RGB,
+	colors#0x1000000, pairs#0x10000, CO#8,
+	initc@, op=\E[39;49m,
+	setab=\E[%?%p1%{8}%<%t4%p1%d%e48:2:%p1%{65536}%/%d:%p1%{256}
+	      %/%{255}%&%d:%p1%{255}%&%d%;m,
+	setaf=\E[%?%p1%{8}%<%t3%p1%d%e38:2:%p1%{65536}%/%d:%p1%{256}
+	      %/%{255}%&%d:%p1%{255}%&%d%;m,
+	setb@, setf@,
+xterm-direct2|xterm with direct-color indexing (old),
+	use=xterm+direct2, use=xterm+titlestack, use=xterm,
+
+# That in turn had a problem: in the original patch submitted for KDE konsole
+# in 2006, the submitter and the developer alike overlooked a "color space
+# identifier" parameter.  This version provides for that parameter:
+xterm+direct|xterm with direct-color indexing (building-block),
+	RGB,
+	colors#0x1000000, pairs#0x10000, CO#8,
+	initc@, op=\E[39;49m,
+	setab=\E[%?%p1%{8}%<%t4%p1%d%e48:2::%p1%{65536}%/%d:%p1
+	      %{256}%/%{255}%&%d:%p1%{255}%&%d%;m,
+	setaf=\E[%?%p1%{8}%<%t3%p1%d%e38:2::%p1%{65536}%/%d:%p1
+	      %{256}%/%{255}%&%d:%p1%{255}%&%d%;m,
+	setb@, setf@,
+xterm-direct|xterm with direct-color indexing,
+	use=xterm+direct, use=xterm,
+
+# Here are corresponding flavors for terminals which could use the feature:
+iterm2-direct|iTerm2 with direct-color indexing,
+	use=xterm+direct, use=iterm2,
+mlterm-direct|mlterm with direct-color indexing,
+	use=xterm+direct, use=mlterm,
+
+# Meanwhile, in KDE #107487, the patch submitter and the developer both saw
+# that xterm's original implementation should have used colons for the
+# subparameter separators, but chose not to correct this in konsole.  As of
+# late 2017, konsole still accepts only the nonstandard semicolon delimiters.
+xterm+indirect|xterm with direct-color indexing (old legacy building-block),
+	RGB,
+	colors#0x1000000, pairs#0x10000,
+	initc@, op=\E[39;49m,
+	setab=\E[%?%p1%{8}%<%t4%p1%d%e48;2;%p1%{65536}%/%d;%p1%{256}
+	      %/%{255}%&%d;%p1%{255}%&%d%;m,
+	setaf=\E[%?%p1%{8}%<%t3%p1%d%e38;2;%p1%{65536}%/%d;%p1%{256}
+	      %/%{255}%&%d;%p1%{255}%&%d%;m,
+	setb@, setf@,
+konsole-direct|konsole with direct-color indexing,
+	use=xterm+indirect, use=konsole,
+st-direct|simpleterm with direct-color indexing,
+	use=xterm+indirect, use=st,
+vte-direct|VTE with direct-color indexing,
+	use=xterm+indirect, use=vte,
+# reportedly in Apple's Mohave (fall 2018), but untested -TD
+nsterm-direct|nsterm with direct-color indexing,
+	use=xterm+indirect, use=nsterm,
+
+# As for others (commenting at the time of release for ncurses 6.1):
+# + Apple's Terminal.app does not recognize either form of the direct-color
+#   sequences.
+# + Cygwin's mintty recognizes xterm's original implementation, does okay with
+#   the colors.  Like vte, it is a subset of xterm, although different
+#   omissions/reservations of modified-keys are seen in testing.
+# + PuTTY 0.70 seems to recognize xterm's original implementation but does
+#   nothing useful with the colors.
+# + Teraterm 4.97, like PuTTY (no good).
+# + terminology 0.91 recognizes xterm's original implementation, but does
+#   nothing useful with it.
+
+# Reviewing after ncurses 6.2:
+# + Apple's Terminal.app is unchanged, has no support for direct color:
+#	Catalina 10.15.5 Terminal.app 2.10 (433)
+#	Mohave 10.14.6 - Terminal.app 2.9.5 (421.2)
+# + Cygwin's mintty 3.1.7 works with colon/semicolon
+# + PuTTY 0.73 works with semicolon
+# + Teraterm 4.105 works with semicolon
+# + terminology 1.7.0 works with colon/semicolon.
+
+# Other variants are possible, e.g., by using more of xterm's indexed color
+# palette, though the intrusion of indexed colors on the direct-color space
+# would be more noticeable.
+
+xterm+direct16|xterm with direct-color indexing (16-color building-block),
+	CO#16,
+	setab=\E[%?%p1%{8}%<%t4%p1%d%e%?%p1%{16}%<%t%p1%{92}%+%d%e48
+	      :2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&
+	      %d%;%;m,
+	setaf=\E[%?%p1%{8}%<%t3%p1%d%e%?%p1%{16}%<%t%p1%'R'%+%d%e38:
+	      2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d
+	      %;%;m,
+	setb@, setf@, use=xterm+direct,
+
+xterm-direct16|xterm with direct-colors and 16 indexed colors,
+	use=xterm+direct16, use=xterm,
+
+xterm+direct256|xterm with direct-color indexing (256-color building-block),
+	CO#0x100,
+	setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e%?
+	      %p1%{256}%<%t48;5;%p1%d%e48:2::%p1%{65536}%/%d:%p1
+	      %{256}%/%{255}%&%d:%p1%{255}%&%d%;%;m,
+	setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e%?
+	      %p1%{256}%<%t38;5;%p1%d%e38:2::%p1%{65536}%/%d:%p1
+	      %{256}%/%{255}%&%d:%p1%{255}%&%d%;%;m,
+	setb@, setf@, use=xterm+direct,
+
+xterm-direct256|xterm with direct-colors and 256 indexed colors,
+	use=xterm+direct256, use=xterm,
+
+#### XTERM Features
 
 # This chunk is based on suggestions by Ailin Nemui and Nicholas Marriott, who
 # asked for some of xterm's advanced features to be added to its terminfo
@@ -4230,12 +5502,15 @@
 # Se resets the cursor style to the terminal power-on default.
 #
 # Cs and Cr set and reset the cursor colour.
-xterm+tmux|advanced xterm features used in tmux,
+xterm+tmux|advanced xterm features used in tmux (cursor style 2),
 	Cr=\E]112\007, Cs=\E]12;%p1%s\007,
 	Ms=\E]52;%p1%s;%p2%s\007, Se=\E[2 q, Ss=\E[%p1%d q,
+xterm+tmux2|advanced xterm features used in tmux,
+	Cr=\E]112\E\\, Cs=\E]12;%p1%s\E\\,
+	Ms=\E]52;%p1%s;%p2%s\E\\, Se=\E[ q, Ss=\E[%p1%d q,
 
 # 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.
+# 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
@@ -4246,19 +5521,19 @@
 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,
+	cnorm=\233?25l\233?25h, cr=\r, csr=\233%i%p1%d;%p2%dr,
+	cub=\233%p1%dD, cub1=^H, cud=\233%p1%dB, cud1=\n,
 	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,
+	il=\233%p1%dL, il1=\233L, ind=\n, invis=\2338m,
+	is2=\E[62"p\E\sG\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r
+	    \E8,
 	ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kc1=\217q,
 	kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
 	kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
@@ -4270,74 +5545,90 @@
 	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,
+	ri=\215, rmam=\233?7l, rmcup=\233?1049l, rmir=\2334l,
+	rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m, rs1=\Ec,
+	rs2=\E[62"p\E\sG\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,
+	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, smam=\233?7h, smcup=\233?1049h,
+	smir=\2334h, smkx=\233?1h\E=, smso=\2337m, smul=\2334m,
+	tbc=\2333g, u6=\233[%i%d;%dR, u8=\233[?%[;0123456789]c,
+	vpa=\233%i%p1%dd, use=ansi+enq, use=xterm+acs,
 	use=xterm+kbs,
 
+# Note: normally xterm supports modified function-keys as described in
+#	XTerm - "Other" modified keys
+#	https://invisible-island.net/xterm/modified-keys.html
+#
+# However, xterm-hp, xterm-sco and xterm-sun assume no modifiers.  Here is
+# a simple script which demonstrates these descriptions:
+#	#!/bin/sh
+#	export TERM=xterm-$1
+#	xterm \
+#		-kt $1 \
+#		-fs 16 -fa mono \
+#		-title $TERM \
+#		-tn $TERM \
+#		-xrm '*modifyCursorKeys:-1' \
+#		-xrm '*modifyFunctionKeys:-1' \
+#		-e tack
+# e.g., "foo sun" if the script is named "foo" -TD
 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,
+	kclr=\EJ, kdch1=\EP, kend=\EF, khome=\Eh, kich1=\EQ, knp=\ES,
+	kpp=\ET, use=hp+pfk-cr, use=vt52+arrows,
+	use=xterm+nofkeys, use=xterm+nopcfkeys,
 
 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,
+	kbeg=\E[E, kbs=^?, kdch1=^?, 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,
 	kich1=\E[L, kmous=\E[>M, knp=\E[G, kpp=\E[I,
-	use=xterm-basic,
+	use=ansi+arrows, use=xterm+nofkeys,
 
 # 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
+# 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.
+#	  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-vt220|xterm emulating VT220,
+	npc,
+	kcbt=\E[Z, 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~, kmous=\E[M, nel=\EE,
+	use=xterm+app, use=xterm+edit, use=vt220+keypad,
+	use=ecma+italics, use=ecma+index, use=ansi+rep,
+	use=ecma+strikeout, use=xterm+focus, use=xterm+sm+1006,
+	use=xterm+tmux, use=xterm+keypad, use=xterm-basic,
 
-xterm-vt52|xterm emulating dec vt52,
-	cols#80, it#8, lines#24,
+xterm-vt52|xterm emulating DEC VT52,
 	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, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-	use=xterm+kbs,
+	clear=\EH\EJ, rmacs=\EG, smacs=\EF, use=xterm+kbs,
+	use=vt52+keypad, use=vt52-basic,
 
 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),
+xterm-24|vs100|xterms|xterm terminal emulator 24-line (X Window System),
 	lines#24, use=xterm-old,
 
 # This is xterm for ncurses.
@@ -4358,6 +5649,24 @@
 #    window managers such as 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 icon-name when using those window managers.
+# c) fsl ends the escape sequence begun by tsl.  Printable characters between
+#    those (probably) will appear in the window title.  Nonprintable characters
+#    may cause the escape sequence to end with an error.
+# d) the BEL (^G or \007) used in the original title-as-statusline came from 
+#    David J. MacKenzie's "pseudo-color" entry in 20 Apr 1995.  At that time
+#    xterm used BEL as the string-terminator rather than ST (\E\\).  Either
+#    BEL or ST has worked since xterm patch #28 in 1996, but most uses of
+#    this feature have been embedded in shell scripts.
+#
+# But that issue regarding the parameter for tsl means that applications may
+# not rely on it.  The SVr4 documentation says tsl will "move to status line,
+# column #1".  At the point in time when ESR added DJM's "pseudo-color" entry
+# with the split-up escape sequence for tsl/fsl, there were 65 entries using
+# tsl:
+#    32 used a parameter, matching the documentation (including x10term).
+#    21 used a parameterless control, exiting from the status line on ^M.
+#     6 used parameterless controls for tsl and fsl
+#     6 used a split-up escape sequence, e.g., the same approach.
 #
 # The extension "TS" is preferable, because it does not accept a parameter.
 # However, if you are using a non-extended terminfo, "TS" is not visible.
@@ -4367,8 +5676,11 @@
 xterm+sl-twm|access X title line (pacify twm-descended window managers),
 	hs,
 	dsl=\E]2;\007, fsl=^G, tsl=\E]2;, TS=\E]2;,
+xterm+sl-alt|alternate access X title line,
+	hs,
+	dsl=\E]2;\E\\, fsl=\E\\, tsl=\E]2;, TS=\E]2;,
 
-# In contrast, this block can be used for a DEC vt320 and up.  There are two
+# In contrast, this block can be used for a DEC VT320 and up.  There are two
 # controls used.
 #
 # DECSASD (select active status display)
@@ -4396,14 +5708,15 @@
 #
 dec+sl|DEC VTxx status line,
 	eslok, hs,
-	dsl=\E[1$~, fsl=\E[0$}, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
+	dsl=\E[0$~, fsl=\E[0$}, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
 
 #
 # 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,
-	sgr=%?%p9%t\016%e\017%;B\E[0%?%p6%t;1%;%?%p2%t;1%;%?%p1%p3%|%t;7%;m,
+	sgr=%?%p9%t\016%e\017%;B\E[0%?%p6%t;1%;%?%p2%t;1%;%?%p1%p3%|
+	    %t;7%;m,
 	smso=\E[7m, smul=\E[1m, use=xterm-old,
 
 # See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
@@ -4413,6 +5726,33 @@
 xterm1|xterm terminal emulator ignoring the alternate screen buffer,
 	rmcup@, smcup@, use=xterm,
 
+# https://invisible-island.net/xterm/xterm-paste64.html
+#
+# Bracketed paste was introduced by xterm patch #203 in May 2005, as part of a
+# larger feature for manipulating the clipboard selection.  Few terminals aside
+# from xterm fully implement the clipboard feature, but several copy this
+# detail.  The names for the extended capabilities here were introduced by vim
+# in January 2017, but used internally.  In 2023, vim patch 9.0.1117 is needed
+# to work with this change.
+bracketed+paste|xterm bracketed paste,
+	BD=\E[?2004l, BE=\E[?2004h, PE=\E[201~, PS=\E[200~,
+
+# https://invisible-island.net/xterm/xterm.log.html#xterm_354
+#
+# The response is a DSR sequence identifying the version: DCS > | text ST
+# For example:
+#	^[P>|XTerm(354)^[\
+report+version|Report xterm name and version (XTVERSION),
+	XR=\E[>0q, xr=\EP>\\|[ -~]+\E\\\\, use=report+da2,
+
+# Vim uses RV to denote the secondary device attributes.  Xterm documents the
+# - first parameter as the terminal type (extending it to VT100),
+# - the second as the patch number for xterm, and
+# - the third parameter as zero.
+# Other terminals may provide useful responses, though few are documented.
+report+da2|report secondary device attributes (DA2),
+	RV=\E[>c, rv=\E\\[[0-9]+;[0-9]+;[0-9]+c,
+
 #### XTERM Mouse
 # The xterm mouse protocol is used by other terminal emulators.
 # In this section, two extended capabilities are used to illustrate the mouse
@@ -4461,7 +5801,7 @@
 # X11R4 (December 1989) added the control sequences document, listing the
 # control sequences for the X10/X11 protocols without descriptions.  It also
 # mentioned the "emacs" ("T") response.  Comments in button.c referred to the
-# X11 protocol as "DEC vt200 compatible", although DEC offered no such terminal.
+# X11 protocol as "DEC VT200 compatible", although DEC offered no such terminal.
 #
 # X11R5 (November 1993) gave a description of the mouse protocol.
 #
@@ -4470,7 +5810,7 @@
 # no new information.
 xterm+x11mouse|X11 xterm mouse protocol,
 	kmous=\E[M, XM=\E[?1000%?%p1%{1}%=%th%el%;,
-	xm=\E[M%?%p4%t3%e%p3%' '%+%c%;%p2%'!'%+%c%p1%'!'%+%c,
+	xm=\E[M%?%p4%t%p3%e%{3}%;%'\s'%+%c%p2%'!'%+%c%p1%'!'%+%c,
 xterm-x11mouse|X11 mouse,
 	use=xterm+x11mouse, use=xterm,
 
@@ -4479,7 +5819,8 @@
 # response.
 xterm+x11hilite|X11 xterm mouse protocol with highlight,
 	kmous=\E[M, XM=\E[?1001%?%p1%{1}%=%th%el%;,
-	xm=\E[%p7%'!'%+%p6%'!'%+%c%p9%'!'%+%c%p8%'!'%+%c%p2%'!'%+%c%p1%'!'%+%cT,
+	xm=\E[%p6%'!'%+%p5%'!'%+%c%p8%'!'%+%c%p7%'!'%+%c%p2%'!'%+%c
+	   %p1%'!'%+%cT,
 xterm-x11hilite|X11 mouse with highlight,
 	use=xterm+x11mouse, use=xterm,
 
@@ -4493,17 +5834,32 @@
 
 # xterm patch #83 (1998/10/7), added Jason Bacon's changes to provide an
 # "any-event" mouse mode.
-xterm+sm+1002|xterm any-event mouse,
-	kmous=\E[M, XM=\E[?1002%?%p1%{1}%=%th%el%;,
-xterm-1002|xterm any-event mouse,
+#
+# These building blocks incorporate later features as well:
+# xterm patch #224 (2007/2/11) added private mode 1004, for enabling/disabling
+# focus in/out event reporting.
+# xterm patch #277 (2012/01/07) added private mode 1006
+
+xterm+sm+1002|xterm any-button mouse,
+	kmous=\E[<, XM=\E[?1006;1004;1002%?%p1%{1}%=%th%el%;,
+	xm=\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;,
+	use=xterm+focus,
+xterm-1002|example of xterm any-button mouse,
 	use=xterm+sm+1002, use=xterm,
 
-xterm+sm+1003|testing xterm-mouse,
-	kmous=\E[M, XM=\E[?1003%?%p1%{1}%=%th%el%;,
-
-xterm-1003|testing xterm-mouse,
+xterm+sm+1003|xterm any-event mouse,
+	XM=\E[?1006;1004;1003%?%p1%{1}%=%th%el%;,
+	use=xterm+sm+1002,
+xterm-1003|example of xterm any-event mouse,
 	use=xterm+sm+1003, use=xterm,
 
+# Some terminal emulators implement xterm focus in/out, but do it incorrectly,
+# interfering with user applications.
+# https://lists.gnu.org/archive/html/bug-ncurses/2023-10/msg00087.html
+xterm+focus|xterm focus-in/out event "keys",
+	XF,
+	fd=\E[?1004l, fe=\E[?1004h, kxIN=\E[I, kxOUT=\E[O,
+
 # xterm patch #116 (1999/9/25) added Stephen P Wall's changes to support DEC
 # locator mode.
 
@@ -4517,9 +5873,9 @@
 # where the coordinates in the mouse response would be encoded in UTF-8,
 # thereby extending the range of coordinates past 222=(255-33).  This is the
 # "1005" mouse mode.
-xterm+sm+1005|xterm UTF-8 mouse,
+xterm+sm+1005|xterm UTF-8 mouse (building block),
 	kmous=\E[M, XM=\E[?1005;1000%?%p1%{1}%=%th%el%;,
-	xm=\E[M%?%p4%t3%e%p3%' '%+%c%;%p2%'!'%+%u%p1%'!'%+%u,
+	xm=\E[M%?%p4%t3%e%p3%'\s'%+%c%;%p2%'!'%+%u%p1%'!'%+%u,
 xterm-1005|xterm UTF-8 mouse,
 	use=xterm+sm+1005, use=xterm,
 
@@ -4532,13 +5888,21 @@
 # from the non-1005 responses.
 #
 # As an alternative (and fixing the longstanding limitation of X11 mouse
-# protocol regarding button-releases), I provided this:
-xterm+sm+1006|xterm SGR-mouse,
+# protocol regarding button-releases), I provided the 1006 mode, referring
+# to it as "SGR 1006" since the replies resemble the SGR control string:
+xterm+sm+1006|xterm SGR-mouse (building block),
 	kmous=\E[<, XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,
-	xm=\E[<%p1%d;%p2%d;%p3%d;%?%p4%tM%em%;,
+	xm=\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;,
 xterm-1006|xterm SGR-mouse,
 	use=xterm+sm+1006, use=xterm,
 
+# Some terminal emulators implement xterm focus in/out, but do it incorrectly,
+# interfering with user applications.
+# https://lists.gnu.org/archive/html/bug-ncurses/2023-10/msg00087.html
+oldxterm+sm+1006|xterm SGR-mouse (building block),
+	kmous=\E[<, XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,
+	xm=\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;,
+
 #### KTERM
 # (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
 # (kterm should not invoke DEC Graphics as the alternate character set
@@ -4547,50 +5911,51 @@
 #  -- MATSUMOTO Shoji)
 # kterm implements acsc via built-in table of X Drawable's
 kterm|kterm kanji terminal emulator (X window system),
-	eslok, hs, XT,
+	XT,
 	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,
+	acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~, enacs=,
+	rmacs=\E(B, rmam=\E[?7l,
+	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, use=x10term+sl,
+	use=xterm-r6, use=ecma+color,
 kterm-color|kterm-co|kterm with ANSI colors,
 	ncv@, use=kterm, use=ecma+color,
 
 #### Other XTERM
+
 # 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),
+xtermm|xterm terminal emulator (monochrome),
 	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[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,
-	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,
+	bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cud1=\n,
+	dch=\E[%p1%dP, dch1=\E[P, el1=\E[1K$<3>, enacs=\E(B\E)0,
+	getm=\E[%p1%dY, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+	ind=\n, 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, reqmp=\E[492Z, rev=\E[7m,
+	ri=\EM, rmacs=^O, rmcup=\E@0\E[?4r,
 	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%;,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+	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,
+	tbc=\E[3g, use=ansi+apparrows, use=ansi+csr,
+	use=ansi+cup, use=ansi+erase, use=ansi+idl,
+	use=ansi+local, use=ansi+sgrso, use=decid+cpr,
+	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,
+	ncv#7,
+	op=\E[100m,
+	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, use=klone+color,
 
 # 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
@@ -4600,11 +5965,29 @@
 xterm-pcolor|xterm with color used for highlights and status line,
 	wsl#40,
 	bold=\E[1;43m, rev=\E[7;34m,
-	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1;43%;%?%p2%t;4;42%;%?%p1%t;7;31%;%?%p3%t;7;34%;%?%p4%t;5%;%?%p7%t;8%;m,
+	sgr=%?%p9%t\016%e\017%;\E[0%?%p6%t;1;43%;%?%p2%t;4;42%;%?%p1
+	    %t;7;31%;%?%p3%t;7;34%;m,
 	smso=\E[7;31m, smul=\E[4;42m, use=xterm+sl, use=xterm-r6,
 
+# This was mentioned
+#	http://unix.stackexchange.com/questions/119/colors-in-man-pages
+# pointing to
+#	http://nion.modprobe.de/blog/archives/569-colored-manpages.html
+#	(blog posting by Nico Golde, June 24 2007)
+# archive:
+#	https://web-beta.archive.org/web/20070921042430/http://nion.modprobe.de/mostlike.txt
+# The comment hints where it started, but there are differences:
+#	Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-pcolor
+mostlike|manpages with color looking like most,
+	OTbs@,
+	bold=\E[1m\E[31m,
+	is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^H,
+	meml@, memu@, rev=\E[7m\E[34m,
+	rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sgr@,
+	smso=\E[1;30m\E[47m, smul=\E[32m, TS@, use=xterm-pcolor,
+
 # This describes the capabilities of color_xterm, an xterm variant from
-# before ECMA-64 color support was folded into the main-line xterm release.
+# before ECMA-48 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
@@ -4613,27 +5996,52 @@
 	OTbs, am, km, mir, msgr, xenl, XT,
 	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,
+	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P, 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,
+	ich=\E[%p1%d@, ind=\n, is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l,
+	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~,
+	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%;,
+	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,
+	smul=\E[4m, use=ansi+apparrows, use=ansi+csr,
+	use=ansi+idl, use=ansi+local, use=decid+cpr,
+	use=ecma+color, use=vt220+keypad,
+
+# The IRAF source has a terminfo using "xterm-r5", but line-drawing does not
+# work in that case.  This entry uses xterm+acs, to work around that problem.
+#
+# Home/end keys do not work, due to a bug in the X Consortium xterm on which
+# this is based:
+#
+#	https://invisible-island.net/xterm/xterm.faq.html#bug_xterm_r6
+#
+# Comparing to the X11R5 source, xgterm has dynamic and ANSI colors (probably
+# not bce).  It interchanges mouse buttons 2/3 for menus.
+#
+# It also has a few features found in later versions of xterm:
+# - vi-button and dired-button,
+# - i18n stuff like X11R6.
+# - colorBD, colorUL
+# - scrollBarRight
+#
+# Debian provides a package for xgterm (and iraf).  Although the source for
+# xgterm implements the control-sequences for ANSI color, the packaged xgterm
+# does nothing with those, even after installing the app-defaults file which
+# was overlooked by the Debian packager.
+xgterm|graphic terminal for IRAF,
+	enacs=\E(B\E)0, rmacs=^O,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t
+	    \016%e\017%;,
+	sgr0=\E[m\017, smacs=^N, use=xterm+acs, use=xterm-r5,
+	use=xterm+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
@@ -4658,8 +6066,7 @@
 # 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,
+	kb2=\E[218z, kcpy=\E[197z, 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,
@@ -4670,25 +6077,27 @@
 	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,
+	use=xterm+kbs, use=ansi+apparrows, use=xterm+nofkeys,
+	use=xterm+nopcfkeys,
+
 xterms-sun|small (80x24) xterm with sunFunctionKeys true,
-	cols#80, lines#24, use=xterm-sun,
+	use=xterm-sun,
 
 #### GNOME (VTE)
-# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
-gnome-rh62|Gnome terminal,
+# 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,
+	kdch1=^?, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+	use=linux+kbs, 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
+# 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
+# NumLock changes the application keypad to approximate VT100 keypad, except
 # that there is no escape sequence matching comma (,).
 #
 # Other defects observed:
@@ -4699,18 +6108,19 @@
 #	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,
+gnome-rh72|GNOME Terminal in RedHat 7,
 	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,
+	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=vt220+cvis,
+	use=linux+kbs, 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
+# 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
@@ -4719,26 +6129,26 @@
 # 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,
+gnome-rh80|GNOME Terminal in RedHat 8,
 	bce@, msgr@,
-	ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, kbs=\177,
-	kcbt=\E^I, op=\E[39;49m, use=gnome-rh72,
+	ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, 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,
+gnome-rh90|GNOME Terminal in RedHat 9,
 	bce, msgr, XT,
-	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,
+	hpa=\E[%i%p1%dG, kLFT=\EO2D, kRIT=\EO2C, kb2=\E[E,
+	kcbt=\E[Z, 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,
+gnome-fc5|GNOME Terminal in Fedora Core 5,
 	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,
+	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)
@@ -4750,15 +6160,15 @@
 # interpret those according to the $TERM value, but others not in the
 # terminfo according to some constantly changing set of hacker guidelines -TD
 vte-2007|VTE in GNOME Terminal snapshot 2.18.1,
-	use=xterm+pcc2, use=gnome-fc5,
+	use=xterm+pcc2, use=vt220+cvis, use=gnome-fc5,
 gnome-2007|GNOME Terminal snapshot 2.18.1,
 	use=vte-2007,
 
 # GNOME Terminal 2.22.3 (2008 snapshot)
 #
-# In vttest, it claims to be a vt220 with national replacement character-sets,
+# In vttest, it claims to be a VT220 with national replacement character-sets,
 # but aside from the identifier string, implements only a small fraction of
-# vt220's behavior, which will make it less usable on a VMS system (unclear
+# VT220's behavior, which will make it less usable on a VMS system (unclear
 # what the intent of the developer is, since the NRC feature exposed in vttest
 # by this change does not work).
 vte-2008|VTE in GNOME Terminal snapshot 2.22.3,
@@ -4774,20 +6184,21 @@
 # Testing with tack shows that flash does not/has not worked -TD
 vte-2012|VTE 0.34.1,
 	ncv#16,
-	dim=\E[2m, flash@, invis=\E[8m, ritm=\E[23m,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
-	sitm=\E[3m, use=vte-2008,
+	dim=\E[2m, flash@, invis=\E[8m, rmso=\E[27m, rmul=\E[24m,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3
+	    %|%t;7%;m%?%p9%t\016%e\017%;,
+	use=ecma+italics, use=vte-2008,
 # Version 3.6.1 sets TERM to xterm-256color (still hardcoded), which has
 # 61 differences from a correct entry for gnome terminal.
 gnome-2012|GNOME Terminal 3.6.0,
 	use=vte-2012,
 
-# GNOME terminal may automatically use the contents of the "xterm" terminfo to
-# supply key information which is not built into the program.  With 2.22.3,
-# this list is built into the program (which addresses the inadvertant use of
-# random terminfo data, though using a set of values which does not correspond
-# to any that xterm produces - still not solving the problem that GNOME
-# terminal hardcodes the $TERM variable as "xterm").
+# Before 2008, GNOME terminal could automatically use the contents of the
+# "xterm" terminfo to supply key information which is not built into the
+# program.  With 2.22.3, this list was built into the program (which addressed
+# the inadvertent use of random terminfo data, though using a set of values
+# which did not correspond to any that xterm produced - still not solving the
+# problem that GNOME terminal hardcoded the $TERM variable as "xterm").
 #
 #	terminfo	modifier	code	keys
 #	kf13-kf24	shift		2	F1 to F12
@@ -4798,33 +6209,80 @@
 #
 # The parameters with \EO (SS3) are technically an error, since SS3 should have
 # no parameters.  This appears to be rote copying based on xterm+pcc0.
-vte+pcfkeys|VTE's variation on xterm+pcfkeys,
-	kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R,
-	kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q,
-	kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P,
-	kf38=\EO1;6Q, kf39=\EO1;6R, kf4=\EOS, kf40=\EO1;6S,
+vte+pcfkeys|VTE's variation on xterm+pcfkeys (building block),
+	kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R, kf16=\EO1;2S,
+	kf25=\EO1;5P, kf26=\EO1;5Q, kf27=\EO1;5R, kf28=\EO1;5S,
+	kf37=\EO1;6P, kf38=\EO1;6Q, kf39=\EO1;6R, kf40=\EO1;6S,
 	kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S,
 	kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R,
 	use=xterm+pcfkeys,
-gnome+pcfkeys|VTE's variation on xterm+pcfkeys,
+gnome+pcfkeys|GHOME Terminal's variation on xterm+pcfkeys (building block),
 	use=vte+pcfkeys,
 
 # deprecated - use "vte" for newer versions
 gnome|GNOME Terminal,
 	use=vte-2012,
+gnome-256color|GNOME Terminal with xterm 256-colors,
+	use=xterm+256color, use=gnome,
 
-# relevant changes were made in January 2014
+# relevant changes were made in January 2014, and later.
+#
+# Originally VTE was promoted as a library able to emulate any terminal by
+# reading its terminal description.  In practice, that never got beyond the
+# ability to read definitions of special keys (function-, editing-, cursor).
+#
+# Before 2014, VTE had a termcap reader (originally pointing to a private copy
+# of a termcap file derived from xterm).  That was incomplete because it did
+# not have any of the modifier-key information used for xterm's function-,
+# editing-, and cursor-keys.  Having its own reader was unnecessary since
+# ncurses provides that information; used since xterm patch #225 in 2007.
+#
+# During April/May 2014, a few bug reports (e.g., gnome #169295, gnome #728900,
+# gnome #730137) dealt with attempts to recast that termcap reader as library
+# calls, then attempting to adapt a chunk of code from ncurses (src/vteti.c),
+# abandoning that and finally constructing a table to match xterm's default
+# behavior, e.g., for "xterm+pcfkeys".
 vte-2014|VTE 0.35.1,
-	use=xterm+pcfkeys, use=vte-2012,
+	ncv@,
+	cbt=\E[Z, el1=\E[1K, flash=\E[?5h$<100/>\E[?5l,
+	ich=\E[%p1%d@, kent=\EOM, use=ecma+index,
+	use=oldxterm+sm+1006, use=xterm+pcfkeys, use=vte-2012,
+	use=bracketed+paste,
 
+# As of January 2018, this was the  most recent release,
+# e.g., with gnome-terminal 3.26.2
+vte-2017|VTE 0.50.2,
+	E3=\E[3J, use=ecma+strikeout, use=vte-2014,
+
+# VTE 0.51.2 and gnome-terminal 3.28.2 copied a feature from KovId's TTY
+# late in 2017 for changing the appearance of underlines, which was
+# incorporated into Debian and Fedora testing-packages in February and March
+# 2018, respectively. Overline (Smol/Rmol) has been supported since December
+# 2017.
+vte-2018|VTE 0.51.2,
+	AX,
+	blink=\E[5m, enacs=\E(B\E)0, nel=\EE,
+	rep=%p1%c\E[%p2%{1}%-%db,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;
+	    8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
+	Rmol=\E[55m, Se=\E[1 q, Smol=\E[53m, Smulx=\E[4:%p1%dm,
+	use=xterm+alt+title, use=xterm+tmux, use=kitty+setal,
+	use=vte-2017,
+
+# Summarizing as of March 2022, these terminfo-capabilities of xterm are
+# absent from VTE:
+# - DEC application keypad mode
+# - DEC-compatible status-line
+# - DEC left/right margin support
+# - DEC printer controls
+# - AT&T cursor-blinking
+# - meta mode, as documented in terminfo(5)
+# - xterm's extension to clear scrollback
 vte|VTE aka GNOME Terminal,
-	use=vte-2014,
+	use=vte-2018,
 
-# palette is hardcoded...
 vte-256color|VTE with xterm 256-colors,
 	use=xterm+256color, use=vte,
-gnome-256color|GNOME Terminal with xterm 256-colors,
-	use=vte-256color,
 
 # XFCE Terminal 0.2.5.4beta2
 #
@@ -4835,22 +6293,89 @@
 xfce|Xfce Terminal,
 	use=vte-2008,
 
+# HTERM
+#
+# https://hterm.org
+#
+# A terminal written in JavaScript, which can provide xterm-like terminal
+# emulation in a browser such as Google Chrome, or in Chome OS.
+#
+# https://chromium.googlesource.com/apps/libapps/+/master/nassh/doc/FAQ.md
+#
+# Tested with Secure Shell App version 0.39 in Chrome 89.0.4389.90, found that
+# the numeric keypad escapes are missing -TD
+hterm|Chromium hterm,
+	npc,
+	U8#1,
+	kcbt=\E[Z, kent=\EOM, nel=\EE, use=linux+kbs,
+	use=xterm+osc104, use=ecma+index, use=ansi+rep,
+	use=ecma+strikeout, use=vt420+lrmm, use=xterm+focus,
+	use=xterm+sm+1006, use=xterm+tmux, use=ecma+italics,
+	use=xterm+pcfkeys, use=xterm-basic,
+	use=bracketed+paste,
+hterm-256color|Chromium hterm with xterm 256-colors,
+	use=xterm+256color2, use=hterm,
+
+# TERMITE
+#
+# https://github.com/thestinger/termite
+#
+# A review requires install of Arch Linux since Fedora and Debian don't have
+# this program.  It uses "vte3-ng" (a conflicting package), which is here:
+#	https://github.com/thestinger/vte-ng
+# which (based on the default branch setting) seems to be a fork of vte
+# 0.48.2, and is noted as such in Arch:
+#	https://aur.archlinux.org/packages/vte3-ng/
+# It won't be merged:
+#	https://bugzilla.gnome.org/show_bug.cgi?id=679658#c10
+#	https://bugzilla.gnome.org/show_bug.cgi?id=78291
+# but perhaps made obsolete.
+#
+# The entry as given was mislabeled "xterm-termite" (it is not xterm), and
+# was mostly cut/paste from xterm-256color, but since VTE does not actually
+# implement several of the features in that terminal description, this one is
+# trimmed to eliminate those.  Also, since it is a slightly older version of
+# VTE, it lacks a few more features (again, trimmed).
+termite|VTE-based terminal,
+	am, km, mir, msgr, npc, xenl,
+	cols#80, lines#24, ncv@,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz{{||}}~~,
+	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, 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, ind=\n, invis=\E[8m,
+	is2=\E[!p\E[?3;4l\E[4l\E>, kb2=\EOE, kbs=^?, kcbt=\E[Z,
+	kent=\EOM, kmous=\E[M, rev=\E[7m, ri=\EM, rmacs=\E(B,
+	rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+	rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
+	    %t;7%;%?%p7%t;8%;m,
+	sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smkx=\E[?1h\E=,
+	smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, use=ansi+csr,
+	use=ansi+enq, use=ansi+idc, use=ansi+idl,
+	use=ansi+inittabs, use=ecma+index, use=ecma+italics,
+	use=ansi+local, use=xterm+alt1049, use=xterm+256color,
+	use=ecma+color, use=vt220+cvis, use=xterm+pcfkeys,
+	use=xterm+sl-twm,
+
 #### Other GNOME
-# Multi-Gnome-Terminal 1.6.2
+# 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,
+	use=ecma+index, use=xterm-xf86-v333,
 
 #### KDE
 # 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,
+	kdch1=^?, kend=\E[F, khome=\E[H, use=linux+kbs,
+	use=xterm-color,
 
-# Konsole 1.0.1
+# Konsole 1.0.1 (2001/11/25)
 # (formerly known as kvt)
 #
 # This program hardcodes $TERM to 'xterm', which is not accurate.  However, to
@@ -4865,18 +6390,18 @@
 #    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.
+#    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
+#    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.
+#    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".
+#    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
@@ -4884,83 +6409,206 @@
 # Updated for konsole 1.6.6:
 #    add control-key modifiers for function-keys, etc.
 #
-# Updated for konsole 2.12.4:
+# Updated for konsole 2.3 (October 2008):
+#    vttest menu 1 shows that both konsole and gnome terminal do wrapping
+#    different from xterm (and VT100's).  They have the same behavior in
+#    this detail, but it is unclear which copies the other.
+#
+# Deferred update for konsole 2.10 (late 2012):
+#    add SGR 1006 mouse
+#
+# Updated for konsole 2.12.4 (late 2013):
 #    add sitm/ritm
 #
-# vttest menu 1 shows that both konsole and gnome terminal do wrapping
-# different from xterm (and vt100's).  They have the same behavior in this
-# detail, but it is unclear which copies the other.
-konsole-base|KDE console window,
+# Updated for konsole 16.07 (mid 2016):
+#    add dim, invis, strikeout
+#    (also overline, which is too rarely used to provide as an extension)
+#
+# Updated for konsole 17.12.0 (late 2017):
+#
+# Re-enable "bel", since it is latent in the source-code even though KDE config
+# often hides the feature (2020/5/30)
+konsole-base|KDE console window (common),
 	bce, km@, npc, XT,
 	ncv@,
-	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=\E[3~,
-	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, ritm=\E[23m,
-	rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m,
+	hpa=\E[%i%p1%dG, 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@,
+	rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
 	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, sitm=\E[3m, smam=\E[?7h, vpa=\E[%i%p1%dd,
-	use=ecma+color, use=xterm-r6,
-konsole-linux|KDE console window with linux keyboard,
+	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[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
+	use=ansi+sgrdim, use=ecma+index, use=xterm+focus,
+	use=xterm+sm+1006, use=ecma+strikeout,
+	use=ecma+italics, use=ecma+color, use=xterm-r6,
+	use=vt220+cvis, use=bracketed+paste,
+	use=report+version,
+
+# The keytab feature was introduced in 0.9.12 (February 2000) with "linux" and
+# "vt100" key-table files along with a compiled-in default key-table.
+#
+# The main difference between the two keytabs was that the developer equated
+# "vt100" with xterm, and noticed that the Linux console's F1-F5 differed from
+# that.  For the same reason, the home/end keys differ.  A VT100 had none of
+# that.  The otherwise identical keytabs have definitions to model the VT52
+# cursor-keys and the VT100 cursor-keys with application versus normal modes.
+#
+# An "x11r5" keytab (displayed in the menu as "X11 R5") was added in January
+# 2001, and shortly after retitled to "XFree 3.x.x".  Both it and "vt100" were
+# dropped from the install in June 2008.
+#
+# The default keytab added in January 2000 was originally titled "X11 R6",
+# and likewise retitled to "XFree 4".
+#
+# A "solaris" keytab was added in Febrary 2005, copying the "vt100" keytab
+# and changing backspace to ^H, removing that keytab's attempt to model the
+# VT100 keypad and VT52 (KDE #20459).
+#
+# The developers made changes to the default and linux keytabs.  Comparing
+# the original and 2018 versions using diffstat:
+#	default: 119 added, 147 deleted, 28 unchanged
+#	linux:   47 added, 28 deleted, 104 unchanged
+#
+# Most of the change for the default keytab was to make konsole act more like
+# xterm.  That was a feature named AnyMod which came in May 2005 for KDE #92749
+# (see also Redhat #122815).  Later, in June 2007 the compiled-in keytab was
+# made an external file (like "linux" and "solaris"), and some further
+# refinement made.  But there are still flaws in the scheme.
+#
+# Essentially AnyMod maps the xterm "PC-style" modifier codes such as 2 for
+# Shift into a placeholder in the table entries.  That works well if all of the
+# modified keys are modified in the same way.  But xterm does not do that.  The
+# first 4 function keys are used in xterm to support the VT100 PF1-PF4 keypad
+# keys.  For example, F2 sends \EOQ in both terminals because of this feature.
+# But a shifted F2 (F14=F2+12) differs like this, in infocmp's listing:
+#	kf14: '\E[1;2Q', '\EO2Q'.
+#
+# In effect, a quarter of konsole's function-keys are different from xterm.
+#
+# It is not a simple blunder:
+# a) xterm patch #121 (November 1999), providing the first version of the
+#    PC-style modifiers would send \EO2Q
+# b) xterm patch #216 (July 2006) amended this and other details, provided
+#    better documentation for the modifiers and made the behavior configurable,
+#    e.g., using the modifyFunctionKeys resource.  The reason why it sends
+#    \E[1;2Q is that \E[O2Q is not a legal ECMA-48 control sequence.  The
+#    changelog points this out as "avoid sending SS3 with parameters".
+# c) That came after AnyMod was introduced, but still early enough that one
+#    might expect konsole's developers to followup.  Twelve years later that
+#    has yet to happen.
+#
+# As of 2018, konsole still provides 3 keyboard profiles ("XFree 4", "linux",
+# "solaris").
+konsole-linux|KDE console window with Linux keyboard,
 	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.
+
+# Obsolete: x11r5.keymap
+# KDE's "XFree86 3.x.x" keyboard was obviously based on reading the xterm
+# terminfo at the time 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.
+
+# The value for kbs (see konsole-vt100) 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, khome=\EOH, use=konsole+pcfkeys,
 	use=konsole-vt100,
-# Konsole does not implement shifted cursor-keys.
+
 konsole+pcfkeys|konsole subset of xterm+pcfkeys,
-	kLFT@, kRIT@, kcbt=\E[Z, kind@, kri@, kDN@, kUP@, use=xterm+pcc2,
-	use=xterm+pcf0,
+	kcbt=\E[Z, use=xterm+pcc2, use=xterm+pcf0,
+	use=xterm+pce2,
+
+# Obsolete: vt100.keymap
 # 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,
+# it is still useful for deriving the other entries, since the developer
+# provided function-keys based on xterm.
+konsole-vt100|KDE console window with VT100 (sic) keyboard,
+	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,
+
+# Obsolete: vt420pc.keytab was added in June 2000, dropped from the install in
+# September 2008 and removed in June 2016.  The developer who removed it stated
+# that it was never installed.
+konsole-vt420pc|KDE console window with VT420 PC keyboard,
+	kbs=^H, kdch1=^?, use=konsole-vt100,
+
 # make a default entry for konsole
 konsole|KDE console window,
 	use=konsole-xf4x,
 
-# palette is hardcoded...
+# These were written for ncurses:
+konsole-16color|klone of xterm-16color,
+	ncv#32, use=ibm+16color, use=konsole,
 konsole-256color|KDE console window with xterm 256-colors,
 	use=xterm+256setaf, use=konsole,
 
 #### MLTERM
-# http://mlterm.sourceforge.net/
+# https://github.com/arakiken/mlterm
 
 mlterm|multi lingual terminal emulator,
 	use=mlterm3,
 
-# Tested mlterm 3.2.2:
-# mlterm 3.x has made changes, but they are not reflected in the included
-# mlterm.ti; this entry is based on testing with tack and vttest -TD
-mlterm3|multi lingual terminal emulator,
-	kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
-	ritm=\E[23m, sitm=\E[3m, use=xterm+app, use=xterm+pcf0,
-	use=xterm+pcc2, use=xterm+pce2, use=mlterm2,
+# Tested mlterm 3.9.0 (2020/09/19):
+# ncurses:
+# - has blinking text
+# - has italics
+# - has invisible-text
+# tack:
+# - has crossed-out text
+# - does not support palette reset with OSC 104
+# - testing the function-keys is difficult because the terminal is
+#   preconfigured to set many of the modified keys to special functions, e.g.,
+#   - shift-F1 and shift-F2 are bound to a split-screen feature
+#   - control-F1 and control-F2 is bound to a new-terminal feature
+# vttest:
+# - primary response says it is a VT340 (ReGIS and Sixel).
+# - has partial support for double-size characters.
+# - character-set tests do not work.
+# - DEC locator works.
+# - 1006-mouse works.
+# - focus-events do not work reliably.
+# - numeric keypad escapes do not work.
+# - back-color erase works
+# other:
+# - title-stack works.
+# - doesn't respond to 8-bit controls.
+# - 256-color palette initializing works.
+# - DECSTR soft-reset is documented.
+#
+# Tested mlterm 3.3.8 (2018/01/21):
+# found xterm+sm+1006 did not work with version 3.3.8
+# soft-reset DECSTR is in sources since 2017/09/19.
+#
+# Tested mlterm 3.2.2 (2014/03/22):
+# mlterm 3.x made further changes, but they were not reflected in the included
+# mlterm.ti (which was dropped in 2015).  This entry has been based on testing
+# with ncurses, tack and vttest -TD
+mlterm3|multi lingual terminal emulator 3.x,
+	bce, AX,
+	blink=\E[5m, flash=\E[?5h$<100/>\E[?5l, invis=\E[8m,
+	is2=\E[!p\E[?3;4l\E>, rs2=\E[!p\E[?3;4l\E>,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;%?
+	    %p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
+	use=ansi+enq, use=ansi+rep, use=ecma+italics,
+	use=ecma+strikeout, use=xterm+app, use=xterm+pcf2,
+	use=xterm+pcc2, use=xterm+pce2, use=xterm+meta,
+	use=xterm+alt+title, use=xterm+sm+1006,
+	use=vt100+pfkeys, use=bracketed+paste, use=mlterm2,
+	use=report+version,
 
 # 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
+# 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
@@ -4977,39 +6625,35 @@
 #	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~
 #
-mlterm2|multi lingual terminal emulator,
+mlterm2|multi lingual terminal emulator 2.x,
 	am, eslok, km, mc5i, mir, msgr, npc, xenl, XT,
-	colors#8, cols#80, it#8, lines#24, pairs#64,
+	colors#8, cols#80, 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,
+	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
 	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,
+	home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ind=\n,
+	is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^?,
+	kcbt=\E[Z, kend=\EOF, kent=\EOM, kind=\EO1;2B, kmous=\E[M,
+	kri=\EO1;2A, mc0=\E[i, nel=\EE, op=\E[39;49m, rev=\E[7m,
+	ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
+	rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
 	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,
+	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, smir=\E[4h,
+	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u8=\E[?1;2c,
+	vpa=\E[%i%p1%dd, use=ansi+apparrows, use=ansi+csr,
+	use=ansi+enq, use=ansi+idl, use=ansi+inittabs,
+	use=ansi+local, use=vt220+vtedit, use=xterm+alt1049,
+	use=ecma+index, use=mlterm+pcfkeys, use=vt220+cvis,
+	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,
+mlterm+pcfkeys|mlterm 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~,
@@ -5046,29 +6690,25 @@
 # 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, XT,
-	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,
+	OTbs, bce, eo, mir, xenl, xon, XT,
+	blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, el1=\E[1K,
+	flash=\E[?5h$<100/>\E[?5l, ich=\E[%p1%d@,
+	is1=\E[?47l\E=\E[?1l,
+	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
+	kcbt=\E[Z, kmous=\E[M, rev=\E[7m, ri=\EM, 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,
+	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,
+	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, smir=\E[4h, smkx=\E=, smso=\E[7m,
+	smul=\E[4m, use=ansi+csr, use=ansi+idl, use=ansi+local,
+	use=xterm+alt47, use=vt100+enq, use=vt100+4bsd,
+	use=rxvt+pcfkeys, use=vt220+cvis, use=vt220+keypad,
+
 # Key Codes from rxvt reference:
 #
 # Note: Shift + F1-F10 generates F11-F20
@@ -5149,30 +6789,55 @@
 #
 # 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,
+rxvt+pcfkeys|rxvt 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\^,
+	kcuf1=\E[C, kcuu1=\E[A, kel=\E[8\^, kend=\E[8~,
+	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\^, 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\^, 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~, kind=\E[a, knp=\E[6~,
-	kpp=\E[5~, kri=\E[b, kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@,
+	khome=\E[7~, kind=\E[a, kri=\E[b, 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,
+	use=vt220+vtedit, use=xterm+nopcfkeys,
 
 # rxvt was originally "xvt", first announced in April 1993:
-#	http://www.informatica.co.cr/linux-desktops/research/1993/0416.html
+#	http://www.krsaborio.net/linux-desktops/research/1993/0416.html
+#------------------------------------------------------------------------------
+# Article: 567 of comp.os.linux.announce
+# Path: pavo.csi.cam.ac.uk!warwick!uknet!pipex!uunet!zaphod.mps.ohio-state.edu!
+# caen!batcomputer!theory.TC.Cornell.EDU!mdw
+# From: nation@rocket.sanders.com (Robert Nation)
+# Newsgroups: comp.os.linux.announce
+# Subject: xvt upload
+# Date: 16 Apr 1993 18:13:07 GMT
+# Organization: Cornell Theory Center
+# Lines: 13
+# Approved: linux-announce@tc.cornell.edu (Matt Welsh)
+# Message-ID: <1qmsvj$pvj@fitz.TC.Cornell.EDU>
+# NNTP-Posting-Host: theory.tc.cornell.edu
+# Keywords: xvt, xterm, Xwindows
+# Originator: mdw@theory.TC.Cornell.EDU
+#
+# Rxvt has been uploaded to /pub/Linux/Incoming/rxvt.tar.z and
+# rxvt.README on sunsite.unc.edu.
+#
+# Xvt is an xterm replacement which uses a little less memory, and is
+# suitable for use on machines with small memories. Tek4010 support
+# is removed.
+#
+# Modifications were made by Rob Nation (nation@rocket.sanders.lockheed.com)
+# to make it a little more compact, and to add and remove certain features.
+#
+#
+# --
+# Send submissions for comp.os.linux.announce to: linux-announce@tc.cornell.edu
+#------------------------------------------------------------------------------
 #
 # Though its change-log does not mention this, John Davis has stated that he
 # was the author of the changes to use the bce ("new color model") which was
@@ -5180,33 +6845,35 @@
 # dates, nor give developer's names.  Initial color support was added for rxvt
 # "2.0", which was sometime in 1994.
 #
-# rxvt had usable color support with 2.16 (April 2, 1996), with some help by my work on
-# vttest, as well as bug reports to Mark Olesen.  For instance, the fix
+# rxvt had usable color support with 2.16 (April 2, 1996), with some help by my
+# work on vttest, as well as bug reports to Mark Olesen.  For instance, the fix
 # mentioned here
-#	http://web.archiveorange.com/archive/v/6ETvLb5wHtbbzCaS4S9J
+#	https://web.archive.org/web/20141016124430/http://web.archiveorange.com/archive/v/6ETvLb5wHtbbzCaS4S9J
 # was from one of my bug-reports -TD
 #
 # While the color model both for xterm and rxvt was based on Linux console,
 # Olesen (or possibly Davis) diverged in one respect from Linux's bce color
 # behavior: inserting/deleting characters does not fill the newly empty cell
 # with the default background color.
-rxvt|rxvt terminal emulator (X Window System),
+rxvt|rxvt-color|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),
+rxvt-xpm|rxvt terminal emulator (X Window System with xpm),
 	use=rxvt,
 rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
-	acsc=+\257\,\256-\^0\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,
+	acsc=+\257\,\256-\^0\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,
 	use=rxvt,
 rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin,
-	acsc=+\257\,\256-\^0\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~\376,
+	acsc=+\257\,\256-\^0\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~\376,
 	use=rxvt-cygwin,
 
 # This variant is supposed to work with rxvt 2.7.7 when compiled with
@@ -5228,7 +6895,7 @@
 #	window collapses to a single line when running several of the screens
 #	in vttest, e.g., the tests for cursor movement, screen features,
 #	double-sized characters.
-# +	The vt52 test works properly, but this is an exception.  Due to the
+# +	The VT52 test works properly, but this is an exception.  Due to the
 #	other bug(s) most of vttest is untestable.
 # +	the color test using ECH shows a gap in the bce model, like rxvt.
 #
@@ -5237,7 +6904,6 @@
 #	(not in rxvt, but not documented by mrxvt) but not CSI 19 t.
 # +	none of the "dynamic colors" (OSC colors) scripts work.
 mrxvt|multitabbed rxvt,
-	XT,
 	kEND=\E[8;2~, kHOM=\E[7;2~, kcub1=\E[D, kcud1=\E[B,
 	kcuf1=\E[C, kcuu1=\E[A, kend=\E[8~, khome=\E[7~,
 	kEND3=\E[8;3~, kEND4=\E[8;4~, kEND5=\E[8;5~,
@@ -5261,33 +6927,27 @@
 # 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, XT,
-	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,
+	bce, bw, eo, mc5i, mir, xenl, xon, XT,
+	btns#5, lm#0, ncv@,
+	blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
 	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,
+	hpa=\E[%i%p1%dG, ich=\E[%p1%d@, 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=,
+	kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kc1=\E[8~,
+	kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M, mc4=\E[4i,
+	mc5=\E[5i, rev=\E[7m, ri=\EM, rmam=\E[?7l, 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,
+	rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?
+	    25h,
+	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, smam=\E[?7h, smir=\E[4h, smkx=, smso=\E[7m,
+	smul=\E[4m, vpa=\E[%i%p1%dd, use=ansi+csr, use=ansi+idl,
+	use=ansi+local, use=xterm+alt47, use=vt100+enq,
+	use=rxvt+pcfkeys, use=ecma+color, use=vt100+4bsd,
+	use=vt220+cvis,
 
 Eterm-256color|Eterm with xterm 256-colors,
 	use=xterm+256color, use=Eterm,
@@ -5299,43 +6959,42 @@
 # Based on rxvt 2.4.8, it has a few differences in key bindings
 aterm|AfterStep terminal,
 	XT,
-	kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt,
+	kbs=^?, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt,
 
 #### XITERM
 # 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
+# see also https://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,
+	km@, use=klone+color, use=xterm-r6,
 
 
 #### HPTERM
 # 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,
+hpterm|X-hpterm|HP X11 terminal emulator (old),
+	am, da, db, mir, xhp, xon,
 	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,
+	acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=\r,
 	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,
+	hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=\n, kbs=^H,
+	kclr=\EJ, kctab=\E2, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK,
+	khts=\E1, kich1=\EQ, kil1=\EL, knp=\EU, kpp=\EV, 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,
+	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@\017, smacs=^N, smir=\EQ, smkx=\E&s1A,
+	smln=\E&jB, smso=\E&dJ, smul=\E&dD, tbc=\E3,
+	vpa=\E&a%p1%dY, use=hp+pfk-cr, use=hp+arrows,
 # HPUX 11 provides a color version.
 hpterm-color|HP X11 terminal emulator with color,
 	ccc,
@@ -5344,6 +7003,54 @@
 	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,
 
+# http://bitsavers.trailing-edge.com/pdf/hp/9000_hpux/1986/97089-90081_198611_Facilities_for_Series_200_300_and_500.pdf
+# http://bitsavers.trailing-edge.com/pdf/hp/9000_hpux/1987/97089-90081_198709_Facilities_for_Series_200_300_and_500_HP-UX_Concepts_and_Tutorials.pdf
+#
+# This article does not cover the HP 46020A keyboard that is used by the Model
+# 217 and 237 computers.  For information on this keyboard read the article,
+# "The Series 300 ITE as System Console" found in the manual, HP-UX Concepts
+# and Tutorials, Vol.  7. 
+#
+# Possibly:
+# http://bitsavers.trailing-edge.com/pdf/hp/9000_hpux/1986/97089-90042_198608_HP-UX_Concepts_and_Tutorials.pdf
+#
+# HP300_Series_ITE.pdf
+#
+# This version, which came from Martin Trusler, was tested with lynx using
+# ncurses 5.4
+hpterm-color2|X-hpterm-color2|HP X11 terminal emulator with color (new),
+	OTbs, am, ccc, da, db, km, mir, xhp,
+	colors#8, cols#80, it#8, lh#2, lines#24, lm#0, lw#8, nlab#8,
+	pairs#8, xmc#0,
+	acsc=+>\,<-\^.v0\374``a\374f\372g\376h\374j+k+l+m+n+o-q-s-t+
+	     u+v+w+x|y<z>{*|!}\273~\362,
+	bel=^G, bold=\E&dD, cbt=\Ei, clear=\EH\EJ, cr=\r, 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,
+	home=\E&a0y0C, hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL,
+	ind=\ES,
+	initp=\E&v0m%?%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,
+	is1=\EH\EJ, kbs=^H, kctab=\E2, kdch1=\EP, kdl1=\EM, ked=\EJ,
+	kel=\EK, khts=\E1, kich1=\EQ, kil1=\EL, knp=\EU, kpp=\EV,
+	krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
+	oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5
+	   I\E&v1b1c6I\E&v1x1y7I,
+	op=\E&v0S, 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, rmam=\E&s1C, rmcup=\E&s0A, rmir=\ER, rmkx=\E&s0A,
+	rmln=\E&j@, rmm=\E&k0I, rmso=\E&d@, rmul=\E&d@, rs1=\EE,
+	scp=\E&v%p1%dS,
+	sgr=\E&d%p1%p3%|%{2}%*%p2%p6%|%{4}%*%+%p5%{8}%*%+%{64}%+%c%?
+	    %p9%t%'\016'%c%e%'\017'%c%;,
+	sgr0=\E&d@\017, smacs=^N, smam=\E&s0C, smcup=\E&s1A,
+	smir=\EQ, smkx=\E&s1A, smln=\E&jB, smm=\E&k1I, smso=\E&dB,
+	smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, use=hp+pfk-cr,
+	use=hp+arrows,
 #### EMU
 # This is for the extensible terminal emulator on the X11R6 contrib tape.
 # It corresponds to emu's internal emulation:
@@ -5354,16 +7061,17 @@
 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,
+	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;,
+	cnorm=\Ea, cr=\r, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;,
 	cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\EC,
 	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,
+	kcuu1=\EA, kdch1=^?, kent=\r, 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,
@@ -5372,10 +7080,11 @@
 	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%;,
+	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
+# 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
@@ -5383,29 +7092,28 @@
 	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,
+	blink=\E[0;5m, bold=\E[0;1m, clear=\E[2J\E[H, cr=\r,
+	cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C,
+	cup=\E[%i%p1%d;%p2%dH, 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, 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, khlp=\E[28~, 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,
+	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\017, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
+	smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g, use=ansi+csr,
+	use=ansi+local, use=vt220+vtedit, use=vt220+cvis,
 
 #### MVTERM
 # A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
@@ -5419,28 +7127,21 @@
 #	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,
+	km, mir, xenl, xon,
+	colors#8, pairs#64,
+	blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P, ed=\E[J,
+	el=\E[K, ich=\E[%p1%d@, ich1=\E[@, kcub1=\EOD, kcud1=\EOB,
+	kcuf1=\EOC, kcuu1=\EOA, op=\E[100m, rev=\E[7m, ri=\EM,
+	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,
+	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, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+	use=ansi+csr, use=ansi+idl, use=ansi+local,
+	use=xterm+alt47, use=vt100+fnkeys, use=vt100+4bsd,
+	use=x10term+sl,
 
 #### MTERM
 #
@@ -5451,26 +7152,23 @@
 	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,
+	bel=^G, cr=\r, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+	dim=\E[2m, ech=\E[%p1%dX, home=\E[H, hpa=\E[%i%p1%d`,
+	ht=^I, ich1=, ind=\E[S, is2=\E)0\017, kbs=^H, nel=\EE, ri=\E[T,
+	rmacs=^O, 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\017, smacs=^N, vpa=\E[%i%p1%dd, use=ansi+erase,
+	use=ansi+idc1, use=ansi+idl, use=ansi+local,
+	use=ansi+sgrbold, use=ecma+index,
+
 # 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,
+	bel=^G, clear=^L, cr=\r, 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,
+	home=^P, ht=^I, il1=^A, ind=^U, kbs=^H, ll=^R, nel=\r^U, ri=^W,
 	rmir=^O, rmso=^T, smir=^Q, smso=^V,
 # "mterm -type decansi" sets $TERM to "decansi"
 #
@@ -5479,30 +7177,25 @@
 	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,
+	bel=^G, cr=\r, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+	dim=\E[2m, ech=\E[%p1%dX, enacs=\E(B\E)0, home=\E[H,
+	hpa=\E[%i%p1%d`, ht=^I, ich1=, ind=\E[S, is2=\E)0\E[r\017,
+	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+	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~, nel=\EE,
+	op=\E[0m, ri=\E[T, rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>,
+	rmso=\E[27m, rmul=\E[24m, 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\017, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+	vpa=\E[%i%p1%dd, use=ansi+cpr, use=ansi+csr,
+	use=ansi+erase, use=ansi+idc1, use=ansi+idl,
+	use=ansi+local, use=ansi+sgrbold, use=vt220+vtedit,
+	use=ecma+index, use=vt220+cvis,
 
 #### VWM
 # http://vwm.sourceforge.net/
@@ -5510,26 +7203,24 @@
 # VWM 2.0.2 (2009-05-01)
 # vwmterm is a terminal emulator written for the VWM console window manager.
 # This version is obsolete, replaced by libvterm in 2.1.0 (2009-10-23).
-vwmterm|(vwm term),
+vwmterm|VWM terminal,
 	am, bce, ccc, mir, msgr, npc, xenl, xon,
 	colors#8, pairs#64,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h, 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[?25h, dim=\E[2m, ed=\E[J, el=\E[K,
-	home=\E[H, il1=\E[L, ind=^J, invis=\E[8m, 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[22~,
-	kf12=\E[23~, 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~, rev=\E[7m, rmacs=\E[10m,
-	rmam=\E[?7l, rmcup=\E[?1049l, rs1=\E[H\E[J\E[m\Ec,
-	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, smam=\E[?7h,
-	smcup=\E[?1049h, smso=\E[3m, smul=\E[4m,
+	bel=^G, bold=\E[1m, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
+	cvvis=\E[?25h, dim=\E[2m, home=\E[H, il1=\E[L, ind=\n,
+	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[22~, kf12=\E[23~, 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~, rmacs=\E[10m,
+	rmam=\E[?7l, rs1=\E[H\E[J\E[m\Ec, setab=\E[4%p1%dm,
+	setaf=\E[3%p1%dm,
+	sgr=\E[0;10%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
+	    %t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+	sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h, smso=\E[3m,
+	smul=\E[4m, use=ansi+erase, use=ansi+local, use=ansi+sgr,
+	use=vt220+cvis, use=xterm+alt1049,
 
 #### MGR
 #
@@ -5539,15 +7230,15 @@
 #
 
 mgr|Bellcore MGR (non X) window system terminal emulation,
-	am, km,
-	bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=^M,
+	am, km, xon,
+	bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=\r,
 	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,
+	il1=\Ea$<3>, ind=\n, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+	kcuf1=\E[C, kcuu1=\E[A, nel=\r\n, rev=\E1n, rmam=\E5S,
 	rmso=\E0n, rmul=\E0n, sgr0=\E0n, smam=\E5s, smso=\E1n,
 	smul=\E4n,
 mgr-sun|Mgr window with Sun keyboard,
@@ -5567,6 +7258,47 @@
 
 #### SIMPLETERM
 # st.suckless.org
+
+st|stterm|aka simpleterm,
+	use=st-0.8,
+
+# Reviewed 0.8.2:
+# In tack,
+#	there is some problem turning off line-drawing
+#	shift+control function-keys do nothing; shift+control cursor keys work
+#	the padding tests make the terminal non-functional.
+# In vttest,
+#	SD/SU work
+#	SL/SR/REP do not work
+#	ECMA-48 cursor movement works, e.g., CHA, CBT, etc.
+#
+# This entry discards the ccc/initc capabilities from st-0.7 because they
+# belong in st-256color.
+st-0.8|simpleterm 0.8,
+	kcbt@, kent@, oc=\E]104\007, Ms=\E]52;%p1%s;%p2%s\007,
+	kDN3=\E[1;3B, kDN5=\E[1;5B, kLFT3=\E[1;3D, kLFT5=\E[1;5D,
+	kNXT3=\E[6;3~, kNXT5=\E[6;5~, kPRV3=\E[5;3~,
+	kPRV5=\E[5;5~, kRIT3=\E[1;3C, kRIT5=\E[1;5C,
+	kUP3=\E[1;3A, kUP5=\E[1;5A, use=ecma+strikeout,
+	use=st-0.6,
+
+# Reviewed 0.7:
+#	dim is intermittent, sometimes works, sometimes does not
+#	italics may show up with yellow color
+#	has control cursor-keys, alt cursor-keys, still no combinations
+#	has control pageup/down
+# tmux extensions, see TERMINFO EXTENSIONS in tmux(1)
+#	Se and Ss are implemented in the source-code, but the terminfo
+#	provided with the source is incorrect, since Se/Ss are mis-coded
+#	as booleans rather than strings.
+st-0.7|simpleterm 0.7,
+	kcbt@, kent@, Ms=\E]52;%p1%s;%p2%s\007, kDN3=\E[1;3B,
+	kDN5=\E[1;5B, kLFT3=\E[1;3D, kLFT5=\E[1;5D,
+	kNXT3=\E[6;3~, kNXT5=\E[6;5~, kPRV3=\E[5;3~,
+	kPRV5=\E[5;5~, kRIT3=\E[1;3C, kRIT5=\E[1;5C,
+	kUP3=\E[1;3A, kUP5=\E[1;5A, use=ecma+strikeout,
+	use=st-0.6, use=xterm+256color,
+
 # st-0.4.1
 #
 # This version uses a table which supports a single modifier (a subset of
@@ -5589,57 +7321,47 @@
 # Reviewed st 0.5:
 # implements control-modifier, but not control-shift for special keys
 # implements alt-modifier, but not alt-shift for special keys
-st|stterm| simpleterm 0.4.1,
-	am, bce, eo, hs, mir, msgr, xenl,
-	colors#8, cols#80, it#8, lines#24, ncv#3, 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[?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,
-	enacs=\E)0, flash=\E[?5h\E[?5l, fsl=^G, 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, indn=\E[%p1%dS,
-	is2=\E[4l\E>\E[?1034l, 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, ka1=\E[1~, ka3=\E[5~, kb2=\EOu,
-	kbs=\177, kc1=\E[4~, kc3=\E[6~, kcbt=\E[Z, kclr=\E[3;5~,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kdl1=\E[3;2~, ked=\E[1;5F, kel=\E[1;2F,
-	kend=\E[4~, kent=\EOM, 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~, khome=\E[1~, kich1=\E[2~,
-	kil1=\E[2;5~, kind=\E[1;2B, kmous=\E[M, knp=\E[6~,
-	kpp=\E[5~, kri=\E[1;2A, krmir=\E[2;2~, op=\E[39;49m,
-	rc=\E8, rev=\E[7m, ri=\EM, ritm=\E[23m, rmacs=\E(B,
-	rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
-	rmul=\E[m, rs1=\Ec, rs2=\E[4l\E>\E[?1034l, 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%;m,
-	sgr0=\E[0m, sitm=\E[3m, smacs=\E(0, smcup=\E[?1049h,
-	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n,
-	u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd,
+#
+# Reviewed st 0.6:
+#	http://git.suckless.org/st/log/st.info
+# Tmux unofficial extensions, see TERMINFO EXTENSIONS in tmux(1)
+# still has no function keys past kf36 (no combinations of modifiers)
+# no application keypad mode, e.g, kent.
+st-0.6|simpleterm 0.6,
+	bce, mir, npc, xenl, XT,
+	colors#8, pairs#64,
+	acsc=+C\,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyy
+	     zz{{||}}~~,
+	clear=\E[H\E[2J, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
+	ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
+	flash=\E[?5h$<100/>\E[?5l, hpa=\E[%i%p1%dG,
+	ich=\E[%p1%d@, is2=\E[4l\E>\E[?1034l, 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, ka1=\E[1~,
+	ka3=\E[5~, kb2=\EOu, kbs=^?, kc1=\E[4~, kc3=\E[6~, kcbt=\E[Z,
+	kclr=\E[3;5~, kdl1=\E[3;2~, ked=\E[1;5F, kel=\E[1;2F,
+	khome=\E[1~, kil1=\E[2;5~, kind=\E[1;2B, kmous=\E[M,
+	kri=\E[1;2A, krmir=\E[2;2~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
+	op=\E[39;49m, ri=\EM, rmacs=\E(B, rmir=\E[4l,
+	rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+	rs2=\E[4l\E>\E[?1034l, 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%;%?%p5%t;2%;%?%p7%t;8%;m,
+	smacs=\E(0, smir=\E[4h, smkx=\E[?1h\E=, u8=\E[?1;2c,
+	vpa=\E[%i%p1%dd, Se=\E[2 q, Ss=\E[%p1%d q,
+	use=ansi+apparrows, use=ansi+csr, use=ansi+enq,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+	use=ansi+sgrbold, use=vt100+4bsd, use=vt100+pfkeys,
+	use=vt220+pcedit, use=ecma+index, use=xterm+alt1049,
+	use=vt220+cvis, use=xterm+sl, use=ecma+italics,
+	use=ecma+strikeout, use=bracketed+paste,
+	use=xterm+pcf2,
 #
 # st-0.1.1
 #
@@ -5659,30 +7381,31 @@
 # - shifted cursor-keys send sequences like rxvt
 # - sgr referred to unimplemented "invis" mode.
 # Fixes: add eo and xenl per tack, remove nonworking cbt, hts and tbc, invis
-simpleterm|old-st| simpleterm 0.1.1,
+simpleterm|old-st|simpleterm 0.1.1,
 	am, eo, mir, msgr, ul, xenl,
-	colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
-	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
-	cnorm=\E[?12l\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+	cols#80, it#8, lines#24,
+	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H,
+	cud=\E[%p1%dB, cud1=\n, 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[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=\177,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	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~, knp=\E[6~, kpp=\E[5~, op=\E[37;40m, rc=\E8,
-	rev=\E[7m, rmacs=\E(B, rmso=\E[m, rmul=\E[m, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-	sgr0=\E[0m, smacs=\E(0, smso=\E[7m, smul=\E[4m,
+	dch1=\E[P, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%dG,
+	ht=^I, ich=\E[%p1%d@, ind=\n, kbs=^?, 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~, knp=\E[6~, kpp=\E[5~, rev=\E[7m, rmso=\E[m,
+	rmul=\E[m,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
+	    %t;7%;m,
+	sgr0=\E[0m, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+	use=ansi+csr, use=ansi+idl, use=vt220+cvis,
+	use=ecma+index, use=klone+color, use=xterm+acs,
+
 st-16color|stterm-16color|simpleterm with 16-colors,
 	use=ibm+16color, use=st,
-# 256 colors "works", but when running xterm's test-scripts, some garbage is
-# shown in the titlebar.
+# Tested with st 0.8.2
+# The issue with the titlebar is fixed, though st is very slow.
+# In st 0.7, 256 colors "works", but when running xterm's test-scripts, some
+# garbage is shown in the titlebar.
 #
 # terminal wants to use TERM=stterm-256color, but that is longer than 14
 # characters, making the choice nonportable.
@@ -5690,11 +7413,12 @@
 	use=xterm+256color, use=st,
 
 #### TERMINATOR
-# https://code.google.com/p/jessies/
-# Tested using their Debian package org.jessies.terminator 6.104.3256 on 64-bit
+# https://github.com/software-jessies-org/jessies/wiki/Terminator
+#
+# Tested using the Debian package org.jessies.terminator 6.104.3256 on 64-bit
 # Debian/current -TD (2011/8/20)
 #
-# There are some packaging problems:
+# There were some packaging problems:
 # a) using Java, the program starts off using 50Mb, and climbs from there,
 #    up to 114Mb after testing (no scrollback).
 # b) it insists on reinstalling its terminal description in $HOME/.terminfo
@@ -5707,7 +7431,8 @@
 #    a line.
 # b) has xterm-style shifted function-key strings
 #    meta also is used, but control is ignored.
-# c) has xterm-style modifiers for cursor keys (shift, control, shift+control, meta)
+# c) has xterm-style modifiers for cursor keys (shift, control, shift+control,
+#    meta)
 # d) some combinations of shift/control send xterm-style sequences for
 #    insert/delete/home/end.
 # e) numeric keypad sends only numbers (compare with vttest).
@@ -5727,41 +7452,70 @@
 # c) modified smacs/rmacs to use SCS rather than SI/SO
 # d) removed bce
 # e) removed km
+#
+# Revisiting in May 2019, the Debian package was no longer available, and a
+# developer-provided ".deb" does not work.  However, a usable Windows ".msi"
+# (which relies upon Cygwin) can be tested.  The developers provide a terminfo,
+# but some of the features it lists do not work reliably (bce, italics, invis).
+#
+# tack:
+#	tbc fails
+#	invis attribute fails
+#	key-definitions could be expanded, with some work:
+#	+ supports xterm-style cursor key-modifiers for shift
+#	+ supports xterm-style function key-modifiers for shift,control,alt
+#	+ supports xterm-style editing key-modifiers for shift,control,alt
+#	(kbs=^?)
+# ncurses test-program:
+#	"C" menu shows that bce implementation is incomplete
+#	italics did not work
+#	dim worked once in tack, but not in ncurses test-program
+#	"F" thick-line characters do not display
+# vttest:
+#	terminal does not respond to 80/132-column switching
+#	wrapping at the right margin is erratic
+#	there are several problems in the cursor-movements and screen-features
+#	no VT52, no double-sized characters
+#	Device attributes response says it is a vanilla VT100
+#	does not respond to xterm mouse controls
+#	alternate screen tests do not fill the screen, return wrong position
+#	window modify/report operations do not work
+#	miscellaneous ISO-6429 tests, e.g., REP, do not work
+#	CBT, CHT, HPR, CNL,CPL, VPR do not work
+#
+# removed the cancel for "hs", removed cbt, invis, corrected sgr -TD
+# use xterm+256setaf, etc -TD
 terminator|Terminator no line wrap,
-	eo, mir, msgr, xenl, xon,
-	colors#256, cols#80, it#8, lines#24, lm#0, pairs#32767,
+	bce, eo, mir, msgr, xenl, xon,
+	cols#80, it#8, lines#24, lm#0,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	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, ed=\E[J, el=\E[K, el1=\E[1K,
-	enacs=\E(B\E)0, flash=^G, home=\E[H, hpa=\E[%i%p1%dG,
-	ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
+	bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	dim=\E[2m, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+	flash=^G, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ind=\n,
 	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,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	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~, 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~, knp=\E[6~, kpp=\E[5~,
-	op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B,
-	rmcup=\E[?47l\E8, rmir=\E[4l, 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>,
-	s0ds=\E(B, s1ds=\E(0, sc=\E7, setab=\E[48;5;%p1%dm,
-	setaf=\E[38;5;%p1%dm,
-	sgr=\E[0%?%p1%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, smcup=\E7\E[?47h, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
-	use=xterm+sl-twm,
+	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^?,
+	kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+	kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+	kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~,
+	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, rev=\E[7m,
+	ri=\EM, rmacs=\E(B, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+	rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, s0ds=\E(B, s1ds=\E(0,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p1%p3%|%t;7
+	    %;m%?%p9%t\E(0%e\E(B%;,
+	sgr0=\E[m\E(B, smacs=\E(0, smir=\E[4h, smso=\E[7m,
+	smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=ansi+arrows,
+	use=ansi+csr, use=ansi+enq, use=ansi+idl, use=ansi+local,
+	use=vt220+pcedit, use=ecma+italics, use=ecma+index,
+	use=xterm+256setaf, use=xterm+sl-twm,
+	use=xterm+alt1049, use=vt220+cvis, use=bracketed+paste,
 
 #### TERMINOLOGY
-# http://enlightenment.org
+# https://www.enlightenment.org/about-terminology
+# https://github.com/borisfaure/terminology
 #
-# Tested terminology-0.3.0, 0.6.1, using tack and vttest.  This is not a vt100
+# 2014/10/14:
+# Tested terminology-0.3.0, 0.6.1, using tack and vttest.  This is not a VT100
 # emulator, nor is it compatible with xterm, but it uses a few features from
 # both -TD
 #
@@ -5770,7 +7524,7 @@
 #	there are pervasive problems with clearing/erasing parts of the screen
 #	resizing the window causes it to stop listening to the keyboard
 # tack -
-#	doesn't understand vt100 CPR needed for resize
+#	doesn't understand VT100 CPR needed for resize
 #	no CBT
 #	no cvvis
 #	has invis
@@ -5790,9 +7544,9 @@
 # vttest -
 #	spits lots of messages from termptyesc.c especially in vttest.
 #	no 132-column mode
-#	fails menu 1, 2 (definitely not vt100-compatible)
-#	primary (claims vt420 with several options, apparently none work) and
-#	secondary report says (perhaps... vt420): \E[>41;285;0c
+#	fails menu 1, 2 (definitely not VT100-compatible)
+#	primary (claims VT420 with several options, apparently none work) and
+#	secondary report says (perhaps... VT420): \E[>41;285;0c
 #	CHA, HPR, VPA, CNL, CPL work
 #	BCE with ED/EL - fail
 #	BCE with ECH/indexing - fail
@@ -5806,13 +7560,12 @@
 # This description uses xterm+pcf0, which is misleading because the program
 # does not handle combinations of modifiers - but listing them all would
 # involve more effort than its developers spent -TD
-terminology|EFL-based terminal emulator,
-	mc5i@, xon@,
+terminology-0.6.1|EFL-based terminal emulator (0.6.1),
+	mc5i@,
 	blink@, ed@, el@, el1@, invis=\E[8m, kLFT=\E[1;2D,
-	kRIT=\E[1;2C, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	kind=\E[1;2B, kri=\E[1;2A,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>,
+	kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p7%t;8
+	    %;m%?%p9%t\016%e\017%;$<2>,
 	vpa=\E[%i%p1%dd, kDC3=\E[3;3~, kDC4=\E[3;4~,
 	kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~, kDN=\E[1;2B,
 	kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B, kDN6=\E[1;6B,
@@ -5820,8 +7573,533 @@
 	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, use=xterm+pcf0, use=vt100,
-	use=xterm+256setaf,
+	kRIT7=\E[1;7C, kUP=\E[1;2A, use=ansi+enq, use=xterm+pcf0,
+	use=vt100, use=xterm+256setaf,
+
+# 2017-11-11:
+# Tested terminology 1.0.0
+#
+# tack -
+#	Shifted cursor-keys send nothing, but xterm modifiers for control+shift
+#	and control+alt were added like xterm+pcc2
+#	Editing keys have some features from xterm+pce2
+#	Changed from xterm+pcf0 to xterm+pcf2
+#
+# vttest -
+#	REP, SL, SR fail
+#
+# Aside from the partial fixes for function/cursor/editing keys, no improvement
+# in other tests versus 0.6.1
+terminology-1.0.0|EFL-based terminal emulator (1.0.0),
+	dim=\E[2m, flash=\E[?5h$<100/>\E[?5l, kend=\E[OF,
+	khome=\E[OH, rmacs=\E(B,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
+	    %?%p1%p3%|%t;7%;%?%p7%t;8%;m$<2>,
+	sgr0=\E(B\E[m, smacs=\E(0, use=ecma+italics,
+	use=vt220+cvis, use=xterm+x11mouse, use=xterm+pce2,
+	use=xterm+pcf2, use=xterm+pcc2, use=bracketed+paste,
+	use=terminology-0.6.1,
+
+# 2020/12/26:
+# Tested terminology 1.8.1 using tack and vttest.
+# tack -
+#	flash does not work
+#	italics and crossed-out text work
+#	no meta mode
+# vttest -
+#	DA1 says this is a VT420 with with 132 columns, NRCS, horizontal scrolling
+#	DA2 says this is a VT510, version 33.7
+#	NRCS does not work, program hangs in the locking shift test.
+#	some of the VT420 rectangle operations work
+#	left/right margins do not work
+#	most of DECSCUSR works
+#	most problems with bce are fixed.
+terminology-1.8.1|EFL-based terminal emulator (1.8.1),
+	km@,
+	cvvis@, flash@, initc@, kcbt=\E[Z, rmm@, smm@, Ms@,
+	use=linux+kbs, use=ecma+index, use=xterm+256setaf,
+	use=ansi+rep, use=ecma+strikeout, use=xterm+focus,
+	use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm+tmux,
+	use=vt220+cvis, use=ecma+italics, use=xterm-basic,
+	use=report+version,
+
+terminology|EFL-based terminal emulator,
+	use=terminology-1.8.1,
+
+######## OPENGL CLIENTS
+
+#### Alacritty
+# https://github.com/jwilm/alacritty
+# Version 0.6.0 (2020/11/25)
+# Version 0.4.0 (2019/11/25)
+# Version 0.3.3 (2019/08/03)
+# Version 0.2.1 (2018/10/03)
+# Project started in 2016/02, uses Rust and OpenGL, and in contrast to (most X
+# terminal programs) is not designed to run with a remote server.
+#
+# Packaged in Arch Linux -
+# vttest:
+#	initial screensize 24x80
+#	no DECCOLM (does not switch between 80/132 columns)
+#	otherwise, passes wrapping test
+#	no DECSCNM
+#	identifies as a VT102
+#	numeric keypad does not send expected codes (seen in 0.4.0)
+#	passes bce test
+#	vt220:
+#		ECH works in 0.3.3 (0.2.1 left text on right margin)
+#		no SRM, DECSCA
+#	vt320:
+#		fails DECXCPR
+#		does not implement any of the DECRQM/DECRPM controls
+#		does not implement any of the DECRQSS controls
+#	vt420:
+#		no DECLRMM
+#		no DECBI, DECFI
+#	other:
+#		fails CHT, otherwise ECMA-48 cursor movement ok
+#		fails ERM/SPA, SL, SR, passes REP, SD, SU
+#	xterm:
+#		no X10 mouse
+#		has normal and highlight mouse
+#		has any-event and button-event mouse
+#		+ does support SGR-mouse
+#		+ does not correctly support focus in/out events (seen in 0.4.0)
+#		cursor-position wrong after alternate-screen (fixed in 0.4.0)
+#		none of the dtterm controls work
+# tack:
+#	bell and flash do not work
+#	blink does not work
+#	italics and crossed-out work (latter did not work in 0.2.1)
+#	function-keys work up (tested combinations which window manager allows)
+#	treats meta as escape-prefix
+#
+# The program sources include "alacritty" and "alacritty-direct", which are
+# copied from "xterm-256color" and "xterm-direct" (but using semicolon for
+# subparameter delimiter).  Refactored here to use ncurses building blocks -TD
+alacritty|alacritty terminal emulator,
+	rs1=\Ec\E]104\007, use=xterm+256color,
+	use=alacritty+common,
+
+alacritty-direct|alacritty with direct color indexing,
+	use=xterm+indirect, use=alacritty+common,
+
+# cancel km, since it is not actually meta mode -TD
+# added ecma+strikeout in 0.3.3 -TD
+# added xterm+sl-twm in 0.3.3 -TD
+alacritty+common|base fragment for alacritty,
+	km@, npc,
+	kb2=\EOE, kcbt=\E[Z, kent=\EOM, Se=\E[0 q,
+	Smulx=\E[4:%p1%dm, use=ecma+index, use=xterm+focus,
+	use=xterm+sm+1006, use=xterm-basic, use=xterm+app,
+	use=ansi+rep, use=xterm+tmux, use=ecma+strikeout,
+	use=xterm+sl-twm, use=ecma+italics, use=xterm+pce2,
+	use=xterm+pcc2, use=xterm+pcf2, use=bracketed+paste,
+
+# https://github.com/raphamorim/rio
+# derived from alacritty
+rio|fork of alacritty,
+	use=alacritty,
+rio-direct|fork of alacritty,
+	use=alacritty-direct,
+
+#### Kitty
+# https://github.com/kovidgoyal/kitty
+# Project started in 2016/10 (see alacritty), but is a Python script rather
+# than Rust, using OpenGL.  The same caveats regarding remote connections
+# apply.  This is not an X terminal, though (like alacritty), it copies
+# features from xterm.
+#
+# Regarding the name "kitty", that is a pun, reflected in the description.
+# But see
+#	http://www.9bis.net/kitty/
+#	https://github.com/kovidgoyal/kitty/issues/9
+#	https://github.com/kovidgoyal/kitty/issues/1025
+# and
+#	http://lists.gnu.org/archive/html/bug-ncurses/2018-09/msg00005.html
+#	https://github.com/kovidgoyal/kitty/issues/879
+#
+# Version 0.21.2 (June 28, 2021)
+# changes since 0.19.1
+# Notes:
+#	Repeatable tests with tack and vttest assume a standard screensize --
+#	measured in characters.  However, kitty uses pixel-measurements and
+#	does not readily use characters.
+#	Resizing with twm shows only pixel-based hint rather than characters
+#	manual page states that it is possible to override initial window size,
+#	but configuration file has no effect on initial window size.
+#	The same problem with XFCE4, but editing the cached json file works
+#	for setting the window size (the "c" suffix for cells does not):
+#		{"window-size": [720, 440]}
+#	though the values depend upon the font in use.
+# vttest
+# tack
+#	flash works
+#	invisible text still does not work
+#	function/special key modifiers finally work
+#
+# Version 0.19.1 (October 6, 2020)
+# changes since 0.13.3:
+# vttest
+#	ISO-6429
+#		REP works, though using unspecified behavior
+#	xterm
+#		xterm's SGR-mouse mode is recognized.
+#		does recognize original alternate-screen
+#		bug: mouse focus in/out does not work.
+#		bug: X10 mouse mode responds like any-event
+#		bug: highlight-tracking does not work; terminal hangs.
+#
+# tack
+#	rs1 adds an empty string for resetting title- and other OSC-strings.
+#	italics work
+#
+# Version 0.13.3 (January 19, 2019)
+# Notes:
+#	initial screensize 71x22
+#	does not respond to "resize -s"
+#	resizing with window manager gives no clues
+# vttest
+#	does not switch between 80/132 columns
+#	fails wrapping test, copying vte/rxvt
+#	no reverse-background, no blink
+#	claims to be VT200:
+#		primary \E[?62;c
+#		secondary \E[>1;4000;12c
+#	however -
+#		no GR in the locking-shifts screen
+#		no NRCS or ISO-2022, anyway
+#	no VT52
+#	VT220:
+#		has DECTCEM, ECH, but no SRM and DECSCA
+#		has operating condition report, none of the others
+#	VT320:
+#		has SU/SD
+#		DECRQSS ok for DECSTBM, SGR, none of the others
+#		no status-line
+#	VT420:
+#		DECXCPR device status works, none of the others
+#		no left/right margins
+#		has DECCARA, but not DECERA, DECFRA, DECRARA, DECSERA
+#		inside of DECCARA is uncolored
+#		line-drawing with DECCARA does not work
+#		aside from left/right margins, editing sequences look ok
+#		no DECFI, DECBI
+#	color:
+#		fails ECH test for bce
+#	ISO-6429
+#		fails REP, SL, SL, but other cursor-movement ok
+#	xterm:
+#		does not recognize original alternate-screen
+#		cursor-position wrong after alternate-screen
+#		has normal mouse, any-event, any-button, but
+#			no X10 mouse
+#			no mouse-highlight tracking
+#			no DEC locator
+#		dtterm - only supports report-size chars/pixels
+#		recognizes tcap-query
+# tack:
+#	flash doesn't work
+#	italics do not work
+#	bce should be set (but see vttest)
+#*	developer's terminfo stopped at kf25, but the program continues,
+#	copying xterm for the rest of the control+fkey sequence
+#	(but only one modifier is supported, like iTerm2).
+#*	it omitted shifted pageup/down
+#*	control+editing keys work
+#	In contrast to function-keys, some additional modifier combinations
+#	act like xterm for the editing/cursor-keys, e.g., alt+shift.  While
+#	the implementation is incomplete, the building-blocks are consistent
+#	with what has been implemented -TD
+#	DECKPAM does not work -TD
+#*	ka1, ka3, kc1, kc3 were bogus (removed)
+#*	meta sends escape (removed kmm) -TD
+#*	cvvis does not make cursor "more visible" -TD
+kitty|KovId's TTY,
+	use=xterm+256color, use=kitty+common,
+kitty-direct|KovId's TTY using direct colors,
+	oc=\E]104\007, use=xterm+direct2, use=kitty+common,
+kitty+common|KovId's TTY common properties,
+	am, mc5i, mir, msgr, npc, xenl,
+	cols#80, lines#24,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz{{||}}~~,
+	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	dim=\E[2m, 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,
+	ich=\E[%p1%d@, ind=\n, kBEG=\E[1;2E, kbeg=\EOE, kbs=^?,
+	kcbt=\E[Z, op=\E[39;49m, rev=\E[7m, ri=\EM, rmacs=\E(B,
+	rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l, rmso=\E[27m,
+	rmul=\E[24m, rs1=\E]\E\\\Ec,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
+	    %?%p1%p3%|%t;7%;m,
+	sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+	smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+	Smulx=\E[4:%p1%dm, use=ansi+csr, use=ansi+enq,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+	use=ansi+rep, use=xterm+focus, use=xterm+sm+1006,
+	use=ecma+index, use=xterm+pcfkeys, use=xterm+sl-twm,
+	use=ecma+strikeout, use=ecma+italics,
+	use=xterm+alt1049, use=att610+cvis, use=xterm+tmux,
+	use=bracketed+paste, use=report+version,
+
+kitty+setal|set underline colors (nonstandard),
+	setal=\E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1
+	      %{255}%&%dm,
+
+######## WAYLAND CLIENTS
+
+#### Foot
+# https://codeberg.org/dnkl/foot/
+# Version 1.8.2
+#
+# This identifies as a VT220 with 4=sixel and 22=color, however:
+# tack:
+#	bell does not work
+#	status-line does not work because foot does not set the window title
+#	sends escape when meta key is used, whether or not smm/rmm enabled
+# vttest:
+#	wrap-test fails
+#	no application-mode for numeric keypad (unless private mode 1035 is set)
+#	no NRCS
+#	no VT52
+#	no SRM
+#	protected areas do not work
+#	SU/SD work, SL/SR do not
+#	DECRPM responds, but not the corresponding ANSI reports.
+#	otherwise few reports, except cursor-position and mouse and some dtterm
+#	VT520 cursor-movement works, except for left/right margins
+#	supports xterm/DECSCUSR, though default case in vttest does not blink
+#		Send: <27> [ 0 <32> q 
+#		Text: The cursor should be a blinking rectangle
+#	partial support for xterm mouse any-event mode and button-event mode:
+#	+ does not report focus-in/focus-out
+#	+ does not report buttons 6/7
+#	alternate-screen works
+foot|foot terminal emulator,
+	oc=\E]104\E\\, use=xterm+256color2, use=foot+base,
+
+foot-direct|foot with direct color indexing,
+	use=xterm+direct, use=foot+base,
+
+foot+base|foot base fragment,
+	am, bce, bw, mir, msgr, npc, xenl, AX, XT,
+	cols#80, it#8, lines#24,
+	bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n, dim=\E[2m,
+	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+	flash=\E]555\E\\, ind=\n, is2=\E[!p\E[4l\E>, kbs=^?,
+	kcbt=\E[Z, oc=\E]104\E\\, op=\E[39;49m, ri=\EM,
+	rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+	rs1=\Ec, rs2=\E[!p\E[4l\E>,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
+	    %?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+	sgr0=\E(B\E[m, smam=\E[?7h, smkx=\E[?1h\E=, E3=\E[3J,
+	use=att610+cvis, use=ansi+csr, use=ansi+cup,
+	use=ansi+enq, use=ansi+local, use=ansi+idc, use=ansi+idl,
+	use=ansi+rca2, use=ansi+rep, use=ansi+tabs,
+	use=ansi+sgrbold, use=ecma+index, use=ecma+italics,
+	use=ecma+strikeout, use=xterm+acs, use=xterm+alt+title,
+	use=xterm+pcfkeys, use=xterm+sm+1006, use=xterm+tmux2,
+	use=xterm+sl-alt, use=bracketed+paste,
+	use=report+version, use=xterm+focus,
+
+######## WEB CLIENTS
+
+#### DomTerm
+# https://domterm.org
+#
+# Quoting its webpage:
+#	The domterm command runs a server that manages sessions (usually shell
+#	processes).  The user interface and terminal emulation is handled by a
+#	JavaScript library that can run in a regular web browser or an embedded
+#	browser such as Electron, using Web Sockets to talk to the server.
+#
+# it can connect to, and display in, a web browser, or as a standalone Qt
+# application.  Either way, it displays in the current desktop session.
+#
+# Testing current code (2019/07/06) with Fedora 30:
+# tack
+#	no flash
+#	no beep
+#	no dim
+#	no blink
+#	no invis
+#	no italics
+#	ok smxx/rmxx
+#	bce screen shows diagonal lines...
+#	kf6 sends nothing
+#	kf11 toggles maximize
+#	cursor-key application mode works
+#	numeric keypad application does not work; keys always send face-codes
+#	sends utf-8 for meta, like xterm
+# vttest
+#	has problems with menu #1 (wrapping)
+#	DA = VT200 with 132 columns, color
+#	DA2 = 990, 100300 ("\E[>990;100300;0c")
+#	no VT52, no double-size characters
+#	vt220 ECH test works, SRM, DECSCA do not
+#	S7C1T/S8C1t does not work
+#	DECUDK does not work
+#	CNL does not work; the other ECMA-48 cursor-movement tests work
+#	REP sort-of works (does not match xterm)
+#	SD/SU work, but not SL/SR
+#	window reporting: works for size in chars/pixels, but not other tests
+#	X10 mouse clicks work -- but return 4 rather than 1 for codes
+#	any-event mouse mode acts like any-button mode
+#	implements SGR mouse-mode
+# other:
+#	does not implement initc
+#	does accept either colons or semicolon in 38/48 SGR.
+domterm|DomTerm web client,
+	npc,
+	bel@, blink@, dim@, invis@, kcbt=\E[Z, ritm@, rmkx=\E[?1l,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
+	    %t;7%;m,
+	sitm@, smkx=\E[?1h, use=linux+kbs, use=xterm+256setaf,
+	use=ecma+index, use=xterm+focus, use=xterm+sm+1006,
+	use=xterm+pcfkeys, use=xterm-basic,
+	use=bracketed+paste,
+
+######## Miscellaneous
+
+#### WezTerm
+# https://wezfurlong.org/wezterm/
+# https://github.com/wez/wezterm
+#
+# which says:
+# "wezterm is a terminal emulator with support for modern features
+#  such as fonts with ligatures, hyperlinks, tabs and multiple windows."
+#
+# wezterm-20230712_072601_f4abf8fd-1.fedora38.x86_64
+# tested with MacOS and Fedora 38/39.
+#
+# General:
+# + written in Rust.
+# + initial screensize is odd, i.e., 81x24
+#   provides no visual feedback on resize
+#   ignores "resize -s"
+#   manual resize and then running resize got off-by-one adjustment
+# + leaves debris (unerased cells) when switching between normal/alternate
+#   screens.
+# + sets TERM=xterm-256color
+# tack:
+# + misplaced message in "am" screen
+# + fails xenl (should be false)
+# + cvvis is same as cnorm, block
+# + has blink and dim
+# + in bce test, blue isn't really blue but some pale purple
+# + modified keys mostly work, but its tab control interferes with some
+# + rmm/smm don't work (always uses escape-prefix)
+# wraptest:
+# + poor (doesn't copy anyone, most of the results are wrong)
+# vttest:
+# + DA is VT5xx with sixel, selective erase, user windows, color
+# + DA2 is VT220 version 277
+# + only the VT100 character set works, contrary to DA/DA2.
+# + no NRCS, either
+# + double-sized character work, with some debris
+# + doesn't switch between 80/132 columns.
+# + numeric keypad ANSI application mode escapes don't work.
+# + numeric keypad ANSI mode misses "0", ".", ","
+# + uses PC-style editing keypad \E[H and \E[F for Find and Select
+# + no VT52
+# + DECSED selective erase doesn't work
+# + SRM doesn't work
+# + 8-bit controls don't work
+# + DECNCSM doesn't work
+# + most DECRQSS do not work (DECSCL, DECSTBM, DECSLRM respond)
+# + DECRQM/DECRPM don't work (most reply permanently reset)
+# + DECLRMM responds to DECRPM, but VT420 rectangle tests do not work.
+#   Some of the left/right margin tests work with the cursor-movement screen,
+#   but DECFI/DECBI do not work.  The other cursor-movement tests are buggy.
+# + implements ECMA-48 cursor movement, but not SL/SR or protected area
+# + implements xterm normal, any-event and button-event mouse, none of the rest
+# + reports window size, none of the other window reports
+wezterm|Wez's Terminal Emulator,
+	km@, xenl@,
+	cvvis@, rmkx=\E[?1l, rmm@, smkx=\E[?1h, smm@,
+	use=xterm-256color,
+
+#### Contour
+# https://github.com/contour-terminal/contour
+#
+# "Modern C++ Terminal Emulator"
+# Contour is a modern and actually fast, modal, virtual terminal emulator,
+# for everyday use. It is aiming for power users with a modern feature mindset.
+#
+# That is three occurrences of "modern" too many -TD
+#
+# MacOS
+# - cannot run, because the package is not signed.
+#
+# Fedora rawhide
+# contour-terminal-0.3.12.262-6.fc39.x86_64
+# - dumps core, cannot test
+#
+# Fedora 39
+# contour-terminal-0.4.0.6245-1.fc38.x86_64
+# - starts but doesn't display
+#
+# Fedora 38
+# contour-terminal-0.4.0.6245-1.fc38.x86_64
+# - starts but doesn't display
+# contour-terminal-0.3.12.262-1.fc38.x86_64
+# + testable (see below)
+# + initial screensize 62x23, no visual feedback on resize, no "resize -s"
+#
+# Sets TERM=contour (which is preferable to xterm).
+#
+# tack:
+# + cvvis is same as cnorm, "|"
+# + sitm/ritm don't work
+# + rmm/smm don't work (always uses escape, but terminfo defines km)
+# + initp interchanges red/blue (bug in tack?)
+# + modified F1-F4 are wrong, sending SS3 with modifier numbers
+# + shifted editing-keypad doesn't send anything
+# + meta key doesn't work
+# + status-line works (based on xterm, including window-resizing)
+# + dots don't line up for home test
+#
+# wraptest:
+# + poor 7/25 differences from xterm (perhaps copying iTerm2)
+#
+# vttest:
+# + hangs in menu 1, etc., when it tries to resize
+#
+# infocmp vs xterm-256color
+# + missing XM/xm
+# + rmcup/smcup doesn't use title-stack (but is implemented)
+# + doesn't use SGR mouse (but is implemented)
+# + sgr doesn't define dim, but dim capability is in terminfo (implemented)
+#
+# Developer's terminfo (compiled-in) uses some extensions.
+contour|contour-latest|Contour Terminal Emulator,
+	am, bce, eslok, hs, km, mc5i, mir, msgr, npc, xenl, xvpa,
+	cols#80, lines#24, pairs#0x7fff,
+	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	dim=\E[2m, dsl=\E[$~, ech=\E[%p1%dX, el1=\E[1K,
+	flash=\E[?5h$<100/>\E[?5l, fsl=\E[$}, hpa=\E[%i%p1%dG,
+	ind=\n, indn=\E[%p1%dS, invis=\E[8m, ka1=, ka3=, kbs=^?, kc1=,
+	kc3=, kcbt=\E[Z, kend=\EOF, khlp=, kmous=\E[M, kund=,
+	oc=\E]104\E\\, op=\E[39;49m, rev=\E[7m, ri=\EM,
+	rin=\E[%p1%dT, rmam=\E[?7l, rmkx=\E[?1l, rmso=\E[27m,
+	rmul=\E[24m, rs1=\E]\E\\\Ec,
+	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, smam=\E[?7h, smkx=\E[?1h, smso=\E[7m,
+	smul=\E[4m, tsl=\E[2$~\E[1$}\E[H\E[2J, vpa=\E[%i%p1%dd,
+	Cs=\E]12;%p1%s\E\\, E3=\E[3J, Rmol=\E[55m, Se=\E[ q,
+	Smol=\E[53m, Smulx=\E[4:%p1%dm, Ss=\E[%p1%d q,
+	use=ansi+apparrows, use=ansi+cup, use=ansi+csr,
+	use=ansi+erase, use=ansi+idc, use=ansi+idl,
+	use=ansi+inittabs, use=ansi+local, use=ansi+rep,
+	use=att610+cvis, use=ecma+italics, use=ecma+strikeout,
+	use=xterm+256color, use=xterm+acs, use=xterm+alt1049,
+	use=xterm+pcc2, use=xterm+pce2, use=xterm+pcf2,
+
+contour-direct|Contour terminal with direct colors,
+	use=xterm+direct, use=contour,
 
 ######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
 #
@@ -5832,11 +8110,10 @@
 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,
+	bel=^G, clear=\EL, cr=\r, cub1=^H, cud1=\n, 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,
+	el=\EK, ich1=\EO, il1=\EP, ind=\n, khome=\EE, rmso=\Eb^D,
+	rmul=\Eb^A, smso=\Ea^D, smul=\Ea^A, use=vt52+arrows,
 # (vremote: removed obsolete ":nl@:" -- esr)
 vremote|virtual remote terminal,
 	am@,
@@ -5848,40 +8125,52 @@
 
 #### Emacs
 
+# https://www.emacswiki.org/emacs/AnsiTerm
+# https://github.com/emacs-mirror/emacs/blob/master/lisp/term.el
+#
 # The codes supported by the term.el terminal emulation in GNU Emacs 19.30
-eterm|gnu emacs term.el terminal emulation,
+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,
+	bel=^G, bold=\E[1m, cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
+	cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@, ind=\n,
+	rev=\E[7m, rmir=\E[4l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+	smir=\E[4h, smso=\E[7m, smul=\E[4m, use=ansi+cpr,
+	use=ansi+erase, use=ansi+idl, use=ansi+local,
+	use=xterm+alt47,
 
 # The codes supported by the term.el terminal emulation in GNU Emacs 22.2
 eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
-	am, mir, msgr, xenl,
-	colors#8, cols#80, lines#24, pairs#64,
-	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, 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, invis=\E[8m, kbs=\177,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kend=\E[4~, khome=\E[1~, kich1=\E[2~,
-	knp=\E[6~, kpp=\E[5~, op=\E[39;49m, rc=\E8, rev=\E[7m,
-	ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
-	sc=\E7, setab=\E[%p1%'('%+%dm, setaf=\E[%p1%{30}%+%dm,
-	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
-	sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	u6=\E[%i%d;%dR, u7=\E[6n,
+	msgr,
+	colors#8, pairs#64,
+	kbs=^?, khome=\E[1~, op=\E[39;49m, ri=\EM, rmso=\E[27m,
+	rmul=\E[24m, rs1=\Ec, setab=\E[%p1%'('%+%dm,
+	setaf=\E[%p1%{30}%+%dm,
+	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?
+	    %p7%t;8%;m,
+	sgr0=\E[m, use=ansi+apparrows, use=ansi+csr,
+	use=ansi+sgr, use=vt220+pcedit, use=eterm,
+
+# shell.el can "do" color, though not nearly as well.
+#
+# seen here:
+# http://unix.stackexchange.com/questions/237943/changing-colors-used-by-ls-does-not-work-in-emacs-shell-mode
+#
+# and
+# https://lists.gnu.org/archive/html/bug-gnu-emacs/2012-08/msg00481.html
+# https://github.com/emacs-mirror/emacs/blob/master/lisp/shell.el
+# https://github.com/emacs-mirror/emacs/blob/master/lisp/ansi-color.el
+#
+# however, as tested with Emacs 24.5.1, the result is buggy, losing overlays
+# frequently.  The contemporaneous term.el aka ansi-term does not "support"
+# italics but does not lose the color information -TD 2017/01/28.
+dumb-emacs-ansi|Emacs dumb terminal with ANSI color codes,
+	am, hc,
+	it#8, ncv#13,
+	bold=\E[1m, cud1=\n, ht=^I, ind=\n, op=\E[39;49m,
+	rmul=\E[24m, sgr0=\E[m, smul=\E[4m, use=ecma+italics,
+	use=klone+color,
 
 #### Screen
 
@@ -5949,31 +8238,43 @@
 # the other capabilities will confuse screen.  Curses applications which use
 # sgr are not impacted (because that usually resets all capabilities before
 # setting any), but termcap applications do not use sgr -TD
+#
+# The "screen" entry should use ecma+index rather than just indn, but tmux
+# defaults to using "screen".  For background, screen supported ecma+index
+# since 1994 (i.e., screen 3.0.5), stating that it was an obscure code used by
+# the (Siemens Nixdorf) 97801 terminal.  It was not shown in the termcap or
+# terminfo entries (which list about 60% of the control sequences).
+screen-base|VT 100/ANSI X3.64 virtual terminal (base),
+	OTbs, OTpt, km, mir, xenl, G0,
+	ncv@, U8#1,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz{{||}}~~,
+	blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+	cnorm=\E[34h\E[?25h, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, cvvis=\E[34l,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, el1=\E[1K, flash=\Eg,
+	hpa=\E[%i%p1%dG, ich=\E[%p1%d@, indn=\E[%p1%dS, is2=\E)0,
+	kbs=^?, kcbt=\E[Z, 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~, kmous=\E[M, nel=\EE, rev=\E[7m, ri=\EM,
+	rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m,
+	rs2=\Ec\E[?1000l\E[?25h,
+	sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;
+	    5%;%?%p5%t;2%;m%?%p9%t\016%e\017%;,
+	sgr0=\E[m\017, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[3m,
+	smul=\E[4m, vpa=\E[%i%p1%dd, E0=\E(B, S0=\E(%p1%c,
+	use=ansi+apparrows, use=ansi+csr, use=ansi+erase,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+	use=xterm+kbs, use=vt220+pcedit, use=xterm+alt1049,
+	use=ecma+color, use=vt100+enq, use=vt100+4bsd,
+
 screen|VT 100/ANSI X3.64 virtual terminal,
-	OTbs, OTpt, am, km, mir, msgr, xenl, G0,
-	colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1,
-	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, 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=\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%;%?%p5%t;2%;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,
+	use=screen4,
+
+no+brackets|cancel bracketed paste,
+	BD@, BE@, PE@, PS@,
+
 # 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,
@@ -6012,7 +8313,7 @@
 	use=xterm+256setaf, use=screen-s,
 
 screen-256color-bce|GNU Screen with 256 colors and BCE,
-	bce, use=xterm+256setaf, use=screen-bce,
+	use=xterm+256setaf, use=screen-bce,
 
 screen-256color-bce-s|GNU Screen with 256 colors using BCE and status line,
 	bce, use=xterm+256setaf, use=screen-s,
@@ -6021,7 +8322,7 @@
 	use=xterm+256setaf, use=screen.xterm-new,
 
 screen.konsole-256color|GNU Screen with konsole using 256 colors,
-	use=xterm+256setaf, use=screen.konsole,
+	XR@, use=xterm+256setaf, use=screen.konsole,
 
 screen.vte-256color|GNU Screen with vte using 256 colors,
 	use=xterm+256setaf, use=screen.vte,
@@ -6030,7 +8331,7 @@
 	use=xterm+256setaf, use=screen.putty,
 
 screen.mlterm-256color|GNU Screen with mlterm using 256 colors,
-	use=xterm+256setaf, use=screen.mlterm,
+	XR@, use=xterm+256setaf, use=screen.mlterm,
 
 # ======================================================================
 
@@ -6067,51 +8368,69 @@
 # (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.
+# (f)   screen does not support rep.
+# (g)	the xterm-new compatibility does not include bracketed paste.
 #
 #	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%;%?%p5%t;2%;m,
-	E3@, use=screen+italics, use=screen+fkeys, use=xterm-new,
+	invis@, kIC@, kNXT@, kPRV@, meml@, memu@, rep@,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
+	    %t;7%;%?%p4%t;5%;%?%p5%t;2%;m,
+	E3@, use=screen+italics, use=screen+fkeys,
+	use=xterm+x11mouse, use=ecma+index, use=ansi+rep,
+	use=ecma+strikeout, use=xterm+pcfkeys,
+	use=xterm+nofkeys,
+
+# Don't use this, because not everyone has "screen.xterm-new":
 #:screen.xterm|screen for modern xterm,
 #:	use=screen.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,
+	bw, use=xterm+x11mouse, 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,
+	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=xterm+x11mouse, use=screen,
 # Other terminals
 screen.rxvt|screen in rxvt,
 	bw, XT,
 	cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
 	kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
-	use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
+	use=rxvt+pcfkeys, use=xterm+x11mouse, use=vt220+keypad,
+	use=screen,
 screen.Eterm|screen in Eterm,
-	use=screen+fkeys, use=Eterm,
+	use=xterm+x11mouse, use=screen+fkeys, use=Eterm,
 screen.mrxvt|screen in mrxvt,
-	use=screen+fkeys, use=mrxvt,
+	use=xterm+x11mouse, use=screen+fkeys, use=mrxvt,
 screen.vte|screen in any VTE-based terminal,
-	use=screen+italics, use=screen+fkeys, use=vte,
+	use=xterm+x11mouse, use=screen+italics,
+	use=screen+fkeys, use=no+brackets, use=vte,
 screen.gnome|screen in GNOME Terminal,
-	use=screen+italics, use=screen+fkeys, use=gnome,
+	use=xterm+x11mouse, use=screen+italics,
+	use=screen+fkeys, use=no+brackets, use=gnome,
 screen.konsole|screen in KDE console window,
-	use=screen+italics, use=screen+fkeys, use=konsole,
+	XR@, use=xterm+x11mouse, use=screen+italics,
+	use=screen+fkeys, use=no+brackets, use=konsole,
 # fix the backspace key
-screen.linux|screen in linux console,
+screen.linux|screen.linux-s|screen in Linux console,
 	bw,
-	kbs=\177, kcbt@, use=screen+fkeys, use=screen,
+	kcbt@, use=linux+sfkeys, use=xterm+x11mouse,
+	use=screen+fkeys, use=screen,
 screen.mlterm|screen in mlterm,
-	use=screen+fkeys, use=mlterm,
+	XR@, use=xterm+x11mouse, use=screen+fkeys,
+	use=no+brackets, use=mlterm,
 screen.putty|screen in putty,
-	use=screen+fkeys, use=putty,
+	use=xterm+x11mouse, use=screen+fkeys, use=no+brackets,
+	use=putty,
 
 # The default "screen" entry is reasonably portable, but not optimal for the
 # most widely-used terminal emulators.  The "bce" capability is supported in
@@ -6139,57 +8458,198 @@
 	bce,
 	ech@, use=screen.mrxvt,
 screen-bce.gnome|screen optimized for GNOME-Terminal,
-	bce,
 	ech@, use=screen+italics, use=screen.gnome,
 screen-bce.konsole|screen optimized for KDE console window,
-	bce,
 	ech@, use=screen+italics, use=screen.konsole,
-screen-bce.linux|screen optimized for linux console,
+screen-bce.linux|screen optimized for Linux console,
 	bce,
 	ech@, use=screen.linux,
 
 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,
+screen2|VT 100/ANSI X3.64 virtual terminal (old 2.x),
+	cols#80, lines#24,
+	clear=\E[2J\E[H, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
+	ed=\E[J, el=\E[K, ich1=, ind=\n, kbs=^H, kf0=\E~, kf1=\ES,
+	kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
+	kf9=\E0I, khome=\EH, nel=\r\n, rc=\E8, ri=\EM, rmso=\E[23m,
+	rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smso=\E[3m,
+	smul=\E[4m, use=ansi+idc, use=ansi+idl,
+	use=ansi+inittabs, use=ansi+local, use=vt52+arrows,
 
-# tmux is compatible with screen, but has support for italics, and some of the
-# xterm cursor bits.
+# (screen3: removed unknown ":xv:LP:G0:" -- esr)
+screen3|VT 100/ANSI X3.64 virtual terminal (old 3.x),
+	km, mir, msgr,
+	cols#80, lines#24,
+	bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch=\E[%p1%dP,
+	dch1=\E[P, home=\E[H, ich=\E[%p1%d@, ind=\n, is2=\E)0,
+	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rev=\E[7m,
+	ri=\EM, rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m,
+	rs1=\Ec, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
+	smul=\E[4m, use=ansi+csr, use=ansi+erase, use=ansi+idl,
+	use=ansi+inittabs, use=ansi+local,
+
+# screen 4.0 was released 2003-07-21, and as of March 2019, its terminfo file
+# was last updated in 2009 to include 256-color support.  The most recent
+# release is 4.6.2 (October 2017).
+screen4|VT 100/ANSI X3.64 virtual terminal (4.x),
+	use=ecma+index, use=screen-base,
+
+# As of December 2022, screen 5.0 has not been released.
+#
+# However,
+#
+#	https://savannah.gnu.org/bugs/?36676
+#
+# mentions a change to implement italics which should be in a version 5,
+# (implemented 2016-11-05, but merged 2017-07-09).  That does away with the
+# longstanding use of SGR 3 for standout, and interprets it as italics.
+#
+# The same development branch has some support for direct-colors, but none
+# of this has been documented.
+screen5|VT 100/ANSI X3.64 virtual terminal (someday),
+	rmso=\E[27m,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
+	    %p5%t;2%;m%?%p9%t\016%e\017%;,
+	smso=\E[7m, use=ecma+italics, use=ecma+index,
+	use=screen-base,
+
+#### Tmux
+
+# tmux is mostly compatible with screen, but has support for italics, and some
+# of the xterm cursor bits.
+#
+# However, unlike screen, tmux has no provision for using derived terminal
+# descriptions.  When screen starts, it looks for a suitable "inner" terminal
+# such as "screen.$TERM" to correspond to the outer terminal's quirks.  The
+# various entries such as screen.xterm-new provide a way to more closely
+# match the terminal.
 tmux|tmux terminal multiplexer,
-	ritm=\E[23m, rmso=\E[27m, sitm=\E[3m, smso=\E[7m, Ms@,
-	use=xterm+sl, use=xterm+tmux, use=screen,
+	invis=\E[8m, rmso=\E[27m,
+	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%;,
+	smso=\E[7m, E3=\E[3J, Smulx=\E[4:%p1%dm,
+	use=ecma+italics, use=ecma+strikeout, use=xterm+edit,
+	use=xterm+pcfkeys, use=xterm+sl, use=xterm+tmux,
+	use=screen, use=bracketed+paste, use=report+version,
+	use=xterm+focus,
 
 tmux-256color|tmux with 256 colors,
 	use=xterm+256setaf, use=tmux,
 
+tmux-direct|tmux with direct-color indexing,
+	use=kitty+setal, use=xterm+direct, use=tmux,
+
+#### Mosh
+# https://mosh.org/
+# mosh 1.3.2
+#
+# mosh's DA1 identifies it as a VT220, but sets $TERM to "xterm" or
+# "xterm-256color" (hard-coded), which in its pretense that it is xterm, is
+# several years out of date.
+#
+# There is little documentation; the existing manpages amount to a quarter of
+# the length of mosh.org's heavily promotional website.  This entry is based
+# on testing, and reading the source-code.  For the latter, analysis is aided
+# by the developer's extensive use of hard-coded strings.
+#
+# The website has an example "Tricky unicode", which shows a shell command
+# with a typo (i.e., assuming that a byte in octal uses 4 digits) and suggests
+# that mosh and OS X Terminal "gets it right".
+#
+# The example as shown would not work.  Correcting the typo, xterm gives the
+# result expected by the mosh developer.
+#
+# The other examples follow in a similar vein.
+#
+# It does not support these xterm features:
+#	use=ansi+rep (xterm patch #36, 1997)
+#	use=ecma+strikeout (xterm patch #305, 2014)
+#	use=vt420+lrmm (xterm patch #279, 2012)
+#	titlestack in smcup/rmcup has no effect (xterm patch #251, 2009)
+#	does not support "dim" (xterm patch #305, 2014)
+# In tack
+#	rmkx/smkx has no effect on numeric keypad
+#	acs stuff has no effect, is included here for ease of comparison
+#
+# Unlike screen and tmux, mosh has only limited awareness of a terminal
+# description.  It assumes that the underlying terminal is xterm, and would
+# not work well with terminals using other key-definitions, such as urxvt.
+mosh|mobile shell,
+	U8#1,
+	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, use=ansi+enq, use=xterm+meta,
+	use=ecma+italics, use=ecma+index, use=xterm+acs,
+	use=xterm+focus, use=xterm+sm+1006, use=xterm+pcfkeys,
+	use=xterm-xfree86, use=bracketed+paste,
+
+mosh-256color|mosh using 256-colors,
+	use=xterm+256color, use=mosh,
+
+#### Dvtm
+
+# dvtwm 0.15
+# http://www.brain-dump.org/projects/dvtm/
+#
+# + This uses ncurses to manage the display, including support for italics and
+#   default-colors.
+# + However, default-colors are incomplete: do not set bce.
+# + It does not implement flash (since no \e[?5h)
+# + Do not set XT: dvtm knows about OSC 0 and 2, but not 1.
+#   Oddly enough, if $TERM contains "linux", it attempts to set the title.
+# + Some of the program is cut/paste from rxvt-unicode, e.g., the ACS table.
+# + The built-in table of function-keys (based on rxvt) is incomplete (ends
+#   with kf22).
+# + It also omits the shifted cursor- and editing-keypad keys.
+#   However, it is confused by xterm's shifted cursor- and editing-keypad keys
+#   (and passes those through without interpretation)
+#   and may simply pass-through rxvt's, making it appear to work.
+#   In other cases such as kf23 and up, no pass-through is done.
+# + Most of the mode-settings in the initialization/reset strings are not
+#   implemented; dvtm copies its description from rxvt.
+dvtm|dynamic virtual terminal manager,
+	eo, mir, xenl,
+	ncv@,
+	blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, el1=\E[1K,
+	hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[@,
+	is1=\E[?47l\E=\E[?1l,
+	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
+	kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
+	kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy,
+	kb2=\EOu, kbs=^?, kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kel=\E[8\^,
+	kend=\E[8~, kent=\EOM, kf0=\E[21~, 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$, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
+	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+	khome=\E[7~, kind=\E[a, kmous=\E[M, kri=\E[b, rev=\E[7m,
+	ri=\EM, rmir=\E[4l, 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,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?
+	    %p9%t\016%e\017%;,
+	sgr0=\E[m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+	vpa=\E[%i%p1%dd, use=ansi+arrows, use=ansi+csr,
+	use=ansi+idl, use=ansi+local, use=xterm+alt47,
+	use=vt220+vtedit, use=vt220+cvis, use=ecma+color,
+	use=ecma+italics, use=vt100+4bsd,
+
+dvtm-256color|dynamic virtual terminal manager with 256 colors,
+	colors#0x100, pairs#0x10000,
+	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,
+	use=dvtm,
+
 #### NCSA Telnet
 
 # Francesco Potorti <F.Potorti@cnuce.cnr.it>:
@@ -6199,7 +8659,7 @@
 # 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
+# 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
@@ -6213,7 +8673,7 @@
 #
 # Other special mappings:
 #	Apple		VT220
-#	HELP 		Find
+#	HELP		Find
 #	HOME		Insert here
 #	PAGEUP		Remove
 #	DEL		Select
@@ -6226,40 +8686,38 @@
 # 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,
+ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in VT220-8 mode,
 	am, 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, ed=\E[J,
-	el=\E[K, el1=\E[1K, enacs=\E)0, flash=\E[?5h\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,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+	dch1=\E[P, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
+	flash=\E[?5h$<100/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
+	ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
 	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,
+	is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>,
 	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,
-	u8=\E[?62;1;6c, use=xterm+sl, use=ansi+enq,
-ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
+	rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
+	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>,
+	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, smam=\E[?7h, smcup=\E7, smir=\E[4h,
+	smso=\E[7m, smul=\E[4m, tbc=\E[3g, u8=\E[?62;1;6c,
+	use=ansi+arrows, use=ansi+csr, use=ansi+idl,
+	use=ansi+local, use=vt220+cvis, use=xterm+acs,
+	use=xterm+sl, use=ansi+enq,
+
+ncsa|NCSA Telnet 2.7 for Macintosh in VT220-8 mode (color),
 	use=ncsa-m, use=klone+color,
-ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
+ncsa-ns|NCSA Telnet 2.7 for Macintosh in VT220-8 mode (color w/o status line),
 	hs@,
 	dsl@, fsl@, tsl@, use=ncsa,
-ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
+ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in VT220-8 mode (no status line),
 	hs@,
 	dsl@, fsl@, tsl@, use=ncsa-m,
 # alternate -TD:
@@ -6268,7 +8726,7 @@
 # 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,
+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,
@@ -6278,13 +8736,13 @@
 #### Pilot Pro Palm-Top
 #
 # Termcap for Top Gun Telnet and SSH on the Palm Pilot.
-# http://www.ai/~iang/TGssh/
+# https://web.archive.org/web/20051103015726/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,
+	bel=^G, clear=\Ec, cr=\r, cub1=^H, cud1=\n,
 	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,
+	ind=\n, kbs=^H, kcub1=^H, kcud1=\n, knp=^L, kpp=^K, nel=\Em~\s,
 	rmso=\EB, smso=\Eb,
 
 # From: Federico Bianchi <bianchi@www.arte.unipi.it>
@@ -6301,18 +8759,18 @@
 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,
+	bel=^G, cr=\r, ht=^I, ind=\n, kbs=^H, kcub1=^H, kcud1=\n,
+	nel=\r\n,
 
-elks-vt52|ELKS vt52 console,
+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,
+	clear=\E[H\E[2J, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+	el=\E[K, home=\E[H, use=ansi+local1, use=ansi+sgrso,
+	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.
@@ -6336,50 +8794,70 @@
 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,
+	bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n, 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,
+	el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, nel=\r\n,
+	rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m,
+	use=ansi+arrows,
 
 #### Sun consoles
 #
 
-# :is1: resets scrolling region in case a previous user had used "tset vt100"
+# :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,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
+	dch=\E[%p1%dP, dch1=\E[P, ed=\E[J, el=\E[K, ht=^I,
+	ich=\E[%p1%d@, ich1=\E[@, ind=\n, 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, use=ansi+idl, use=ansi+local1,
+
 # 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,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, 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,
+	dch1=\E[P, ed=\E[J, el=\E[K, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
+	ind=\n, kb2=\E[218z, kdch1=^?, 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,
 	kich1=\E[247z, 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,
+	smso=\E[7m, u8=\E[1t, u9=\E[11t, use=ansi+arrows,
+	use=ansi+idl,
+
 # 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,
+
+# The Sun console was documented in the wscons manual page (apparently
+# unrelated to the "wscons" used by some of the BSDs).
+#
+#    https://illumos.org/man/4D/wscons
+#    https://www.bitsavers.org/pdf/sun/sun1/800-0345_Sun-1_System_Reference_Manual_Jul82.pdf
+#
+# The early cmdtool and shelltool programs in Sun's NeWS were based on this.
+# After NeWS was discontinued, XView provided a similar shelltool, with an
+# incomplete manual page.  Presumably the intent was to document features of
+# shelltool not in wscons:
+#
+#    https://manpages.ubuntu.com/manpages/bionic/en/man1/shelltool.1.html
+#    https://manpages.ubuntu.com/manpages/bionic/en/man1/cmdtool.1.html
+#
+# The wscons manual page and the XView source show that it had no feature that
+# could be used in ncurses u6/u7/u8/u9 extensions.  Interesting, the XView
+# source shows that its shelltool could tell the host what a particular mode
+# was set to.  But neither that nor its CSI..t controls support u6/u7/u8/u9.
+#
 # 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,
@@ -6390,15 +8868,13 @@
 
 # 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,
+	use=sun+sl, 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,
+	use=sun+sl, 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,
+	use=sun,
 sun-24|Sun 24-line window,
 	cols#80, lines#24, use=sun,
 sun-17|Sun 17-line window,
@@ -6408,7 +8884,7 @@
 sun-1|Sun 1-line window for sysline,
 	eslok, hs,
 	cols#80, lines#1,
-	dsl=^L, fsl=\E[K, tsl=^M, use=sun,
+	dsl=^L, fsl=\E[K, tsl=\r, 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,
@@ -6429,7 +8905,7 @@
 # underline and standout.
 #
 # Since the documentation and terminfo do not agree, see also current code at
-# http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/tem_safe.c
+# https://web.archive.org/web/20091231042744/http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/tem_safe.c
 #
 # That (actually a different driver which "supports" sun-color) also supports
 # these features:
@@ -6440,14 +8916,13 @@
 #	blink=\E[5m
 # It supports bold, but not underline -TD (2009-09-19)
 sun-color|Sun Microsystems Workstation console with color support (IA systems),
-	colors#8, ncv#3, pairs#64,
-	bold=\E[1m, cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-	cuu=\E[%p1%dA, home=\E[H, op=\E[0m, rs2=\E[s,
-	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=\E[0%?%p6%t;1%;%?%p1%p3%|%t;7%;m, sgr0=\E[m,
-	smso=\E[7m, use=sun,
+	bold=\E[1m, cub1=^H, cud1=\n, home=\E[H, op=\E[0m,
+	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%;%?%p1%p3%|%t;7%;m, use=ansi+local,
+	use=sun, use=klone+color,
 
 #### Iris consoles
 #
@@ -6458,18 +8933,17 @@
 # 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),
+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,
+	ind=\n, is2=\E7B0\E7F7\E7C2\E7R3, 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, use=vt52+arrows,
 
 #### NeWS consoles
 #
@@ -6520,166 +8994,155 @@
 next|NeXT console,
 	am, xt,
 	cols#80, it#8, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, 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,
+	ht=^I, ind=\n, kbs=^H, kcub1=^H, kcud1=\n, nel=\r\n,
 	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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, ht=^I, kbs=^H, kcub1=^H,
+	kcud1=\n, nel=\r\n,
 
 #### Sony NEWS workstations
 #
 
 # (news-unk: this had :KB=news: -- esr)
-news-unk|SONY NEWS vt100 emulator common entry,
+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,
+	OTnl=\n, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
+	cr=\r, cub1=^H, cud1=\n, 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,
 	is2=\E[?7h\E[?1h\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,
+	kf8=\EOW, kf9=\EOX, 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, sgr0=\E[m,
+	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, use=ansi+csr,
+	use=ansi+idl,
 #
 # (news-29: this had :TY=ascii: --esr)
-news-29,
+news-29|Sony NEWS VT100 emulator with 29 lines,
 	lines#29, use=news-unk,
 # (news-29-euc: this had :TY=euc: --esr)
-news-29-euc,
+news-29-euc|Sony NEWS VT100 emulator with 29 lines and EUC,
 	use=news-29,
 # (news-29-sjis: this had :TY=sjis: --esr)
-news-29-sjis,
+news-29-sjis|Sony NEWS VT100 emulator with 29 lines and SJIS,
 	use=news-29,
 #
 # (news-33: this had :TY=ascii: --esr)
-news-33,
+news-33|Sony NEWS VT100 with 33 lines,
 	lines#33, use=news-unk,
 # (news-33-euc: this had :TY=euc: --esr)
-news-33-euc,
+news-33-euc|Sony NEWS VT100 with 33 lines and EUC,
 	use=news-33,
 # (news-33-sjis: this had :TY=sjis: --esr)
-news-33-sjis,
+news-33-sjis|Sony NEWS VT100 with 33 lines and SJIS,
 	use=news-33,
 #
 # (news-42: this had :TY=ascii: --esr)
-news-42,
+news-42|Sony NEWS VT100 with 42 lines,
 	lines#42, use=news-unk,
 # (news-42-euc: this had :TY=euc: --esr)
-news-42-euc,
+news-42-euc|Sony NEWS VT100 with 42 lines and EUC,
 	use=news-42,
 # (news-42-sjis: this had :TY=sjis: --esr)
-news-42-sjis,
+news-42-sjis|Sony NEWS VT100 with 42 lines and 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,
+news-old-unk|old 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=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 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,
+	OTnl=\n, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
+	cr=\r, cub1=^H, cud1=\n, 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=\E[D,
+	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
+	kf3=\EOR, kf4=\EOS, 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, sgr0=\E[m,
+	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, use=ansi+csr,
 #
 # (nwp512: this had :DE=^H:, which I think means <OTbs> --esr)
-nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines,
+nwp512|news|nwp514|news40|vt100-bm|nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|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,
+	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40
+	    r\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,
+nwp512-a|nwp514-a|news-a|news42|news40-a|old 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,
+nwp513|nwp518|nwe501|newscbm|news31|nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old Sony VT100 emulator 31 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,
+	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31
+	    r\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,
+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,
+	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33
+	    r\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,
+news28|old 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,
+	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28
+	    r\E8,
 	use=news-old-unk,
 #
 # (news29: this had :TY=ascii:KB=nws1200:\ --esr)
-news29|news28-a|sony vt100 emulator 29 lines,
+news29|news28-a|old 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,
+	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29
+	    r\E8,
 	use=news-old-unk,
 #
 # (news511: this had :TY=sjis: --esr)
-nwp511|nwp-511|nwp-511 vt100,
+nwp511|nwp-511|nwp-511 VT100,
 	OTbs, OTpt, am, xenl,
 	cols#80, lines#24,
-	clear=\E[;H\E[2J$<20/>, cub1=\E[D, cud1=\E[B, 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/>,
+	clear=\E[;H\E[2J$<20/>, 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/>,
+	smso=\E[7m$<2/>, smul=\E[4m$<2/>, use=ansi+local1,
 # (news517: this had :TY=sjis:. --esr)
-nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows,
-	eslok, hs,
+nwp517|nwp-517|nwp-517 VT200 80 cols 30 rows,
 	cols#80, lines#30,
-	OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
+	OTi2=\E[2$~\n, dsl=\E[1$~,
 	is2=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	tsl=\E[1$}\E[;%df, use=vt200,
+	tsl=\E[1$}\E[;%df, use=dec+sl, use=vt220-base,
 # (news517-w: this had :TY=sjis:. --esr)
-nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows,
+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,
+	tsl=\E[1$}\E[;%df, use=vt220-base,
 
 #### Common Desktop Environment
 #
@@ -6690,29 +9153,26 @@
 	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,
+	bel=^G, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	dim=\E[2m, ech=\E[%p1%dX, 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@, ind=\ED, 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%;,
+	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~,
+	khlp=\E[28~, nel=\EE, ri=\EM, rmacs=^O, rmam=\E[?7l,
+	rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m,
+	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,
+	smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ansi+csr,
+	use=ansi+erase, use=ansi+idl, use=ansi+local,
+	use=ansi+sgr, use=decid+cpr, use=vt220+vtedit,
+	use=vt220+cvis, use=ecma+color,
 
 ######## Non-Unix Consoles
 #
@@ -6733,56 +9193,47 @@
 #
 # 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,
+	eo,
+	clear=\E[1;33;44m\E[H\E[J, cr=\r, cud1=\n, dch=\E[%p1%dp,
+	ed=\E[J, flash=\E[?5h$<100/>\E[?5l, ht=^I, hts=\EH,
+	ich=\E[%p1%d@, ich1=\E[@, ind=\n, kb2=\E[G, kf0=\0D, kll=\0O,
+	kspd=^Z, nel=\r\n, rev=\E[5;37;41m, rmir=\E[4l,
 	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,
+	sgr0=\E[0m\E[1;33;44m, smir=\E[4h, smso=\E[0;31;47m,
+	smul=\E[1;31;44m, tbc=\E[3g, u8=\E[?6c, u9=\E[c,
+	use=vt220+cvis, 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,
+	rmso=\E[0;37;44m, rmul=\E[0;37;44m, 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,
+	rmso=\E[0;37;40m, rmul=\E[0;37;40m, 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,
+	clear=\E[H\E[2J$<50>, cup=\E[%i%p1%d;%p2%dH, 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=\r\n,
+	rev=\E[7m, sgr0=\E[0m, use=ansi+local1,
 
 #### Cygwin
 
 # 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@,
+cygwinB19|ANSI emulation for cygwin32,
+	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 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~, rmam@, smam@, use=vt220+pcedit,
 	use=ansi.sys,
 
 # Use this for cygwin (tested with version 1.1.0).
@@ -6822,7 +9273,7 @@
 #   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
+#   xenl  [newline ignored 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?
@@ -6836,32 +9287,26 @@
 # 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,
+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~,
+	bel=^G, bold=\E[1m, cr=\r, cub=\E[%p1%dD, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, el1=\E[1K, fsl=^G, home=\E[H, ht=^I,
+	ind=\n, invis=\E[8m, kb2=\E[G, 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%;%?%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,
+	khome=\E[1~, kspd=^Z, nel=\r\n, op=\E[39;49m, rc=\E8,
+	rev=\E[7m, ri=\EM, 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%;%?%p6%t;1%;%?%p7
+	    %t;8%;%?%p9%t;11%;m,
+	sgr0=\E[0;10m, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
+	tsl=\E];, use=ansi+arrows, use=ansi+erase, use=ansi+idc,
+	use=ansi+idl, use=ansi+local, use=ansi+rca2,
+	use=vt220+pcedit, use=vt102+enq, use=klone+acs,
+	use=xterm+alt47,
 
 # I've supplied this so that you can help test new values and add other
 # features.  Cheers, earnie_boyd@yahoo.com.
@@ -6871,31 +9316,23 @@
 # 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%;%?%p5%t;2%;%?%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[3g, vpa=\E[%i%p1%dd, use=vt102+enq,
+	cols#80, lines#24, ncv#3,
+	bel=^G, cr=\r, cup=\E[%i%p1%d;%p2%dH, dim=\E[2m, el1=\E[1K,
+	flash=\E[?5h$<200/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+	ind=\n, kNXT=\E[6$, kPRV=\E[5$, kb2=\E[G, kcbt=\E[Z,
+	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~, kspd=^Z,
+	nel=\r\n, op=\E[39;49m, rc=\E8, ri=\EM, 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;12%;m,
+	sgr0=\E[0;10m, vpa=\E[%i%p1%dd, use=ansi+arrows,
+	use=ansi+erase, use=ansi+idc, use=ansi+idl,
+	use=ansi+inittabs, use=ansi+local, use=ansi+sgrbold,
+	use=klone+acs, use=klone+color, use=vt220+pcedit,
+	use=vt220+cvis, use=vt102+enq,
 
 #### DJGPP
 
@@ -7017,53 +9454,49 @@
 #	Alt-X			\E[104~
 #	Alt-Y			\E[105~
 #	Alt-Z			\E[106~
-djgpp|ansi emulation for DJGPP alpha,
+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,
+	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, cbt=\E[Z, civis=\E[1v, cnorm=\E[v, cr=\r,
+	cub1=^H, cup=\E[%i%p1%d;%p2%dH, cvvis=\E[2v,
+	dch=\E[%p1%dP, dch1=\E[P, ech=\E[%p1%dX, 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~,
+	ich1=\E[@, ind=\E[S, 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,
+	khome=\E[1~, nel=\r\n, op=\E[37;40m, ri=\E[T, 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,
+	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,
+	use=ansi+arrows, use=ansi+erase, use=ansi+idl,
+	use=ansi+local, use=ansi+sgr, use=vt220+pcedit,
+	use=ecma+index,
 
-djgpp203|Entry for DJGPP 2.03,
+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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, ht=^I, ind=\n, kbs=^H, kcub1=^H,
+	kcud1=\n, nel=\r\n,
 
-djgpp204|Entry for DJGPP 2.04,
+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,
+	clear=\E[H\E[2J, cnorm=\E[v, cr=\r,
+	cup=\E[%i%p1%d;%p2%dH, cvvis=\E[2v, dch=\E[%p1%dP,
+	dch1=\E[P, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+	ich=\E[%p1%d@, ich1=\E[@, ind=\E[S, invis=\E[8m,
+	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~, kll=\E[4~, nel=\r\n, rev=\E[7m,
+	ri=\E[T, rmso=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+	sgr0=\E[m, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+	use=ansi+idl, use=ansi+local, use=vt220+pcedit,
+	use=ecma+index,
 
 #### U/Win
 
@@ -7072,23 +9505,22 @@
 # 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,
+	it#8, ncv#58,
+	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, cr=\r, cub1=^H, cud1=\n,
+	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dim=\E[2m,
+	ech=\E[%p1%dX, el1=\E[1K, home=\E[H, ht=^I, hts=\EH,
+	kdch1=^?, 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, kich1=\E[@, nel=\r\n,
+	op=\E[39;49m, rc=\E8, rev=\E[7m, rmacs=\E[10m,
+	rmpch=\E[10m, rmso=\E[27m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
+	sgr0=\E[0;10m, smacs=\E[11m, smpch=\E[11m, smso=\E[7m,
+	smul=\E[4m, tbc=\E[3g, use=ansi+arrows, use=ansi+cpr,
+	use=ansi+erase, use=ansi+idc, use=klone+color,
+	use=vt220+cvis,
 
 #### Microsoft (miscellaneous)
 
@@ -7119,13 +9551,13 @@
 # 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>.
+# <https://jeffpar.github.io/kbarchive/kb/108/Q108581/>
 #
 # 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,
+	bel=^G, clear=\E[2J, cr=\r, cub1=^H, cud1=\n, 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,
@@ -7139,7 +9571,7 @@
 	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,
+	clear=\E[;H\E[2J$<50/>, cr=\r, cub1=^H, cud1=\n,
 	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,
@@ -7153,44 +9585,54 @@
 
 # From: Federico Bianchi
 # This is the entry for the OpenNT terminal.
-# The ntconsole name is for backward compatability.
+# The ntconsole name is for backward compatibility.
 # 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
+# The 3.5 beta contained ncurses 4.2 (that is header files and executables,
+# the documentation dated from 1.9.9e) -TD
+#
+# For a US keyboard, with 12 function-kecbt=\E[Z, ys,
+#	kf1-kf12 are unmodifiedcbt=\E[Z, cbt=\E[Z,
+#	kf13-kf24 use the shift-key
+#	kf25-kf36 use the left alt-key
+#	kf37-kf38 use the control-key
+#	kf49-kf60 use the shift- and control-keys
+# The shifted cursor keys send the sequences originally used for kf61-kf64:
+#	down=\EF+	(kf61)
+#	up=\EF-		(kf62)
+#	left=\EF^	(unassigned)
+#	right=\EF$	(kf64)
 
 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=+\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, 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[7m, smul=\E[4m,
+	am, bce, msgr,
+	cols#80, it#8, lines#25,
+	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[2J, cr=\r, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+	ind=\E[S, kLFT=\EF\^, kRIT=\EF$, kcbt=\E[Z, kdch1=^?,
+	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, kf7=\EF7,
+	kf8=\EF8, kf9=\EF9, kich1=\E[L, kind=\EF+, kll=\E[U,
+	knp=\E[T, kpp=\E[S, kri=\EF-, ll=\E[U, nel=\r\n, op=\E[m,
+	rc=\E[u, rev=\E[7m, ri=\E[T, rmcup=\E[2b\E[u\r\E[K,
+	rmso=\E[m, rmul=\E[m, rs1=\Ec, sc=\E[s, sgr0=\E[0m,
+	smcup=\E[s\E[1b, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+	use=ansi+idl, use=ansi+local, use=ecma+index,
+	use=klone+color,
 
 opennt-35|ntconsole-35|OpenNT-term35 compatible with color,
 	lines#35, use=opennt,
@@ -7265,22 +9707,22 @@
 # 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,
+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,
+	clear=\E[H\E[2J, cr=\r, 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,
+	if=/usr/share/tabset/vt100, il1=\E[L, ind=\n,
 	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,
+	kEOL=^An\r, kcbt=^AK\r, kclr=^AL\r, 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,
+	nel=\r\n, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+	smam=\E[?7h, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+
 # (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:\
@@ -7289,9 +9731,9 @@
 #	: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,
+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,
+altos4|alt4|altos-4|Altos IV,
 	use=wy50,
 # (altos7: had extension capabilities:
 #	:GG#0:GI=\EH8:GF=\EH7:\
@@ -7303,25 +9745,25 @@
 # 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,
+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,
+	acsc=j5k3l2m1n8q:t4u9v=w0x6, blink=\EG2, bold=\EGt,
+	clear=\E+^^, cr=\r, cub1=^H, cud1=\n, 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,
+	ind=\n, 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,
+	kcud1=\n, 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,
+	knp=\EK, kpp=\EJ, mc4=\EJ, mc5=\Ed#, nel=\r\n, ri=\Ej,
 	rmir=\Er, smir=\Eq, use=adm+sgr,
-altos7pc|alt7pc|altos PC VII,
+altos7pc|alt7pc|Altos PC VII,
 	kend=\ET, use=altos7,
 
 #### Hewlett-Packard (hp)
@@ -7340,24 +9782,24 @@
 #
 
 # Generic HP terminal - this should (hopefully) work on any HP terminal.
-hpgeneric|hp|hewlett-packard generic 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,
+	bel=^G, clear=\EH\EJ, cr=\r, cub1=^H, cud1=\n, 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@,
+	ind=\n, 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,
+hp110|Hewlett-Packard model 110 portable,
 	lines#16, use=hpgeneric,
 
-hp+pfk+cr|hp function keys with CR,
+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,
+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,
 
@@ -7365,26 +9807,27 @@
 # 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,
+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,
+hp+arrows|HP arrow definitions,
+	khome=\Eh, kind=\ES, kll=\EF, kri=\ET, use=vt52+arrows,
 
 # 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,
+	invis=\E&dS, ip=$<2>, 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,
+	use=vt52+arrows,
 
 # 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
@@ -7402,49 +9845,48 @@
 # 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,
+hp2621-ba|HP 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,
+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,
+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,
+	ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, smkx=\E&jB, smso=\E&dD,
 	use=hp+pfk+cr, use=hpgeneric,
 
 # To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p
-hp2621p|hp 2621 with printer,
+hp2621p|HP 2621 with printer,
 	mc4=\E&p13C, mc5=\E&p11C, use=hp2621,
 
-hp2621p-a|hp2621p with fn as arrows,
+hp2621p-a|HP 2621p 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,
+hp2621-k45|hp2621k45|k45|HP 2621 with 45 keyboard,
+	kbs=^H, khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621,
+	use=vt52+arrows,
 
 # 2621 using all 48 lines of memory, only 24 visible at any time.
-hp2621-48|48 line 2621,
+hp2621-48|HP 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,
+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,
+hp2621-nt|HP 2621 w/no tabs,
 	ht@, use=hp2621,
 
 # Hp 2624 B with 4 or 10 pages of memory.
@@ -7453,15 +9895,15 @@
 # NOT set up by the initialization strings.
 #
 # Port Configuration
-# 	RecvPace=Xon/Xoff
-# 	XmitPace=Xon/Xoff
-# 	StripNulDel=Yes
+#	RecvPace=Xon/Xoff
+#	XmitPace=Xon/Xoff
+#	StripNulDel=Yes
 #
 # Terminal Configuration
-# 	InhHndShk=Yes
-# 	InhDC2=Yes
-# 	XmitFnctn(A)=No
-# 	InhEolWrp=No
+#	InhHndShk=Yes
+#	InhDC2=Yes
+#	XmitFnctn(A)=No
+#	InhEolWrp=No
 #
 # Note: the 2624 DOES have a true <home>, believe it or not!
 #
@@ -7479,8 +9921,7 @@
 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,
+	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.
@@ -7499,7 +9940,7 @@
 #
 # The padding probably should be changed.
 #
-hp2626|hp2626a|hp2626p|hp 2626,
+hp2626|hp2626a|hp2626p|HP 2626,
 	da, db,
 	lm#0, pb#19200,
 	ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>,
@@ -7517,63 +9958,65 @@
 # 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,
+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,
+	is1=\E&q3t0{0H\s\E&w0f115n1I\s\E&w0f1n2I\s\E&w2f1i0d0u22l0S
+	    \s\E&w2f2i0d23u23l0S\s\E&w7f2p1I\s\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,
+hp2626-ns|HP 2626 using all 24 lines,
+	is1=\E&q3t0{0H\s\E&w0f118n1I\s\E&w0f1n2I\s\E&w2f1i0d0u23l0S
+	    \s\E&w3f2I\s\E&w7f2p1I\s\r,
 	use=hp2626,
 # Various entries useful for small windows on 2626.
-hp2626-12|hewlett-packard 2626 12 lines,
+hp2626-12|Hewlett-Packard 2626 12 lines,
 	lines#12, use=hp2626,
-hp2626-12x40|hewlett-packard 2626 12 lines 40 columns,
+hp2626-12x40|Hewlett-Packard 2626 12 lines 40 columns,
 	cols#40, lines#12, use=hp2626,
-hp2626-x40|hewlett-packard 2626 40 columns,
+hp2626-x40|Hewlett-Packard 2626 40 columns,
 	cols#40, use=hp2626,
-hp2626-12-s|hewlett-packard 2626 11 lines plus status,
+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@,
+hp2627a-rev|HP 2627 with reverse video colors,
+	ht=^I,
+	is2=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3
+	    \r,
+	kcub1=^H, kcud1=\n, nel=\r\n, 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,
+hp2627a|HP 2627 color terminal with no labels,
+	ht=^I,
 	is2=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r,
-	kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmso=\E&v0S,
+	kcub1=^H, kcud1=\n, nel=\r\n, 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,
+hp2627c|HP 2627 color (cyan) terminal with no labels,
 	is2=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r,
-	kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, use=hp2627a,
+	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,
+hp2640a|HP 2640a,
 	cup@, rmkx@, smkx@, use=hp2645,
 
-hp2640b|hp2644a|hp 264x series,
+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,
+	bel=^G, clear=\EH\EJ, cr=\r, cub1=^H, cud1=\n, 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,
+	if=/usr/share/tabset/std, il1=\EL, ind=\n,
+	is2=\EE$<500/>, kbs=^H, kcub1=^H, kcud1=\n, nel=\r\n,
 	rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
 	vpa=\E&a%p1%2dY,
 
@@ -7583,13 +10026,13 @@
 # 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,
+	blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, 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, use=hpgeneric, use=vt52+arrows,
 # 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>,
@@ -7598,19 +10041,23 @@
 # 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,
+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,
+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,
+	pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t\s%;%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,
+	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,
@@ -7619,25 +10066,28 @@
 # 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,
+	kbs=^H, kcbt=\Ei, kclr=\EJ, 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, use=vt52+arrows,
 
-newhp|generic entry for new hewlett packard terminals,
+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,
+	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=\r, cub1=^H,
+	cud1=\n, cuf1=\EC, cuu1=\EA, dch1=\EP$<2>, dim=\E&dH,
+	dl1=\EM, ed=\EJ, el=\EK, ht=\011$<2>, hts=\E1, il1=\EL, ind=\n,
+	invis=\E&dS, ip=$<2>, is1=\E&jB$<8>, nel=\r\n,
 	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%;,
+	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,
 
@@ -7659,7 +10109,8 @@
 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,
+	pln=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t\s%;%p2
+	    %s,
 	rmln=\E&j@, smln=\E&jB,
 
 hp+printer|"standard" printer info for HP ttys,
@@ -7670,22 +10121,22 @@
 # 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,
+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,
+	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, use=vt52+arrows,
 
-hp2621b-p|hp 2621b with printer,
+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,
+hp2621b-kx|HP 2621b with extended keyboard,
 	use=newhpkeyboard, use=hp2621b,
 
-hp2621b-kx-p|hp 2621b with new keyboard & printer,
+hp2621b-kx-p|HP 2621b with new keyboard & printer,
 	use=hp+printer, use=hp2621b-kx,
 
 # Some assumptions are made in the following entries.
@@ -7701,35 +10152,39 @@
 #
 # Hp 2622a & hp2623a display and graphics terminals
 #
-hp2622|hp2622a|hp 2622,
+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,
+hp2623|hp2623a|HP 2623,
 	use=hp2622,
 
-hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer,
+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,
+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,
+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,
+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,
+	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&v1a1c5
+	   I\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,
+hp2397a|hp2397|Hewlett Packard 2397A color terminal,
 	is2=\E&w6f80X, use=memhp, use=hp+labels, use=hp+color,
 
 #  HP 700/44 Setup parameters:
@@ -7739,87 +10194,82 @@
 # PC Character Set	YES
 # Twenty-Five Line Mode	YES
 # XON/XOFF		@128 or 64 (sc)
-# Keycode Mode 		NO   or YES (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;
+# <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,
+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,
+	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
+	     \263,
+	bel=^G, cbt=\E[Z, clear=\E[2J\E[H, cr=\r,
+	cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M, ed=\E[J,
+	el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, ind=\n,
 	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,
+	kcbt=\E[Z, 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,
+	smul=\E[4m, xoffc=g, xonc=e, use=ansi+arrows,
+	use=ansi+local1, use=vt220+cvis,
 #
 # (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,
+	cbt=\Ei, cup=\E&a%p1%dy%p2%dC, 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, use=hp+pfk+cr,
 
-hpsub|hp terminals -- capability subset,
+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,
+	bel=^G, clear=\EH\EJ, cr=\r, 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,
+	ht=^I, if=/usr/share/tabset/stdcrt, il1=\EL, ind=\n,
+	is2=\E&s1A\E<\E&k0\\, kbs=^H, khome=\Eh, rmkx=\E&s0A,
+	rmso=\E&d@, sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB,
+	use=vt52+arrows,
 
 # 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,
+#	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,
+hpex|HP extended capabilities,
+	cud1=\n, cup=\E&a%p1%dy%p2%dC, kcub1=^H, kcud1=\n,
+	nel=\r\n, 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,
+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,
+	bel=^G, clear=\E&a0y0C\EJ, cr=\r, 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,
+	il1=\EL, ind=\n, kbs=^H, kclr=\EJ, kctab=\E2, kdch1=\EP,
+	kdl1=\EM, ked=\EJ, kel=\EK, khts=\E1, kich1=\EQ, kil1=\EL,
+	knp=\EU, kpp=\EV, 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,
+	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@\017, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
+	smso=\E&dB, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+	use=hp+pfk-cr, use=hp+arrows,
 
 # HP 236 console
 # From: <ddavis@ic.berkeley.edu>
@@ -7836,14 +10286,13 @@
 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,
+	bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cr=\r, 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,
+	if=/usr/share/tabset/stdcrt, il1=\EL, ind=\n, kbs=^H,
+	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, use=vt52+arrows,
 # From: Greg Couch <gregc@ernie.berkeley.edu>
 hp9837|hp98720|hp98721|HP 9000/300 workstations,
 	OTbs, am, da, db, mir, xhp,
@@ -7851,12 +10300,11 @@
 	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,
+	il1=\EL, ind=\n, is2=\E&v0m1b0i&j@, kbs=^H, 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, use=vt52+arrows,
 # HP 9845 desktop computer from BRL
 # (hp9845: removed unknown capability :gu: -- esr)
 hp9845|HP 9845,
@@ -7871,31 +10319,66 @@
 # 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,
+	cols#128, 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,
+	clear=\EH\EJ, cnorm=\E*dQ, cr=\r, cub1=^H, cud1=\n, 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,
+	dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, hts=\E1,
+	if=/usr/share/tabset/std, il1=\EL, ind=\n, invis=\E&ds,
+	kbs=^H, kclr=\EJ, kctab=\E2, kdch1=\EP, kdl1=\EM, ked=\EJ,
+	kel=\EK, khts=\E1, kich1=\EQ, kil1=\EL, kll=\EF, knp=\EU,
+	kpp=\EV, 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, use=hp+pfk-cr, use=ansi+inittabs,
+	use=hp+arrows,
+
+# From: Martin Trusler
+hp98550-color|hp98550a-color|HP 9000 Series 300 color console (Trusler),
+	OTbs, am, ccc, da, db, km, mir, xhp,
+	colors#8, cols#128, lh#2, lines#49, lm#0, lw#8, nlab#8, pairs#8,
+	xmc#0,
+	acsc=+>\,<-\^.v0\374``a\374f\372g\376h\374j+k+l+m+n+o-q-s-t+
+	     u+v+w+x|y<z>{*|!}\273~\362,
+	bel=^G, bold=\E&dD, cbt=\Ei, clear=\EH\EJ, cr=\r, cub1=^H,
+	cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA,
+	dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, home=\E&a0y0C,
+	hpa=\E&a%p1%dC, hts=\E1, il1=\EL, ind=\ES,
+	initp=\E&v0m%?%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,
+	is1=\EH\EJ, kbs=^H, kctab=\E2, kdch1=\EP, kdl1=\EM, ked=\EJ,
+	kel=\EK, khts=\E1, kich1=\EQ, kil1=\EL, kll=\EF, knp=\EU,
+	kpp=\EV, krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
+	oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5
+	   I\E&v1b1c6I\E&v1x1y7I,
+	op=\E&v0S, 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, rmam=\E&s1C, rmcup=\E&s0A, rmir=\ER, rmkx=\E&s0A,
+	rmln=\E&j@, rmm=\E&k0I, rmso=\E&d@, rmul=\E&d@, rs1=\EE,
+	scp=\E&v%p1%dS,
+	sgr=\E&d%p1%p3%|%{2}%*%p2%p6%|%{4}%*%+%{64}%+%c%?%p9%t%'
+	    \016'%c%e%'\017'%c%;,
+	sgr0=\E&d@\017, smacs=^N, smam=\E&s0C, smcup=\E&s1A,
+	smir=\EQ, smkx=\E&s1A, smln=\E&jB, smm=\E&k1I, smso=\E&dB,
+	smul=\E&dD, tbc=\E3, u6=\Ea%dc%dR\r, u7=\Ea,
+	u8=\E%[0123456789/], u9=\E*s1\^, vpa=\E&a%p1%dY,
+	use=hp+pfk-cr, use=ansi+inittabs, use=hp+arrows,
+
 # 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,
+hp700-wy|HP 700/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,
+	cbt=\EI, clear=^Z, cr=\r, 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,
+	is1=\E~"\EC\Er\E(\EG0\003\E`9\E`1, kbs=^?, 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/>,
@@ -7905,44 +10388,43 @@
 	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,
+	bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=\r, 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,
+	hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kdch1=\EP,
+	kdl1=\EM, ked=\EJ, kel=\EK, khts=\E1, kich1=\EQ, kil1=\EL,
+	kll=\EF, knp=\EU, kpp=\EV, 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, use=hp+pfk-cr, use=hp+arrows,
 
 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,
+	cbt=\Ei, clear=\EH\EJ, cr=\r, 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/>,
+	il1=\EL$<10*/>, ind=\n, kbs=^H, khome=\Eh, nel=\r\n,
+	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/>, use=vt52+arrows,
 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,
+	bel=^G, cbt=\E[Z, cr=\r, cub1=^H, cud1=\n, 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, 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=\n,
+	nel=\r\n, 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,
+	use=ansi+erase,
+
 gator-52|HP 9000 model 237 emulating VT52,
-	cols#128, lines#47, use=vt52,
+	cols#128, lines#47, use=vt52-basic,
 gator-52t|HP 9000 model 237 emulating extra-tall VT52,
 	lines#94, use=gator-52,
 
@@ -7957,10 +10439,10 @@
 # "keyboard locked" LED.
 dku7003-dumb|Honeywell Bull DKU 7003 dumb mode,
 	cols#80, lines#25,
-	clear=^]^_, cr=^M, cub1=^Y, cud1=^K, cuf1=^X,
+	clear=^]^_, cr=\r, 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,
+	flash=\E[2h\E[2l, home=^], ht=^I, ind=\n, kbs=^H, kcub1=^Y,
+	kcud1=^K, kcuf1=^X, kcuu1=^Z, khome=^], nel=\r\n,
 dku7003|Honeywell Bull DKU 7003 all features described,
 	msgr,
 	xmc#1,
@@ -7968,7 +10450,7 @@
 	rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
 	use=dku7003-dumb,
 
-#### Lear-Siegler (adm)
+#### Lear-Siegler (LSI 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
@@ -7982,24 +10464,24 @@
 # hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>,
 # for clearing up this point.)
 
-adm1a|adm1|lsi adm1a,
+adm1a|adm1|LSI adm1a,
 	am,
 	cols#80, lines#24,
-	bel=^G, clear=\E;$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, clear=\E;$<1>, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
 	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, home=^^,
-	ind=^J,
-adm2|lsi adm2,
+	ind=\n,
+adm2|LSI adm2,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, clear=\E;, cr=\r, cub1=^H, cud1=\n, 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=^^,
+	dl1=\ER, ed=\EY, el=\ET, home=^^, ich1=\EQ, il1=\EE, ind=\n,
+	kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, khome=^^,
 # (adm3: removed obsolete ":ma=^K^P:" -- esr)
-adm3|lsi adm3,
+adm3|LSI adm3,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, ind=^J,
+	bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, ind=\n,
 # 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
@@ -8012,20 +10494,19 @@
 # socket, you may be out of luck.
 #
 # (adm3a: some capabilities merged in from BRl entry -- esr)
-adm3a|lsi adm3a,
+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,
+	OTma=^K^P, OTnl=\n, bel=^G, clear=\032$<1/>, cr=\r, cub1=^H,
+	cud1=\n, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+	cuu1=^K, home=^^, ind=\n, kcub1=^H, kcud1=\n, 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,
+adm5|LSI adm5,
 	xmc#1,
-	bel=^G, cr=^M, cud1=^J, ed=\EY, el=\ET, kbs=^H, khome=^^,
-	rmso=\EG, smso=\EG, use=adm3a+,
+	ed=\EY, el=\ET, 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
@@ -8043,12 +10524,12 @@
 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,
+	OTnl=\n, bel=^G, blink=\EG2, clear=\E*, cr=\r, cub1=^H,
+	cud1=\n, 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,
+	kbs=^H, kcub1=^H, kcud1=\n, 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),
+	kf7=^AF\r, kf8=^AG\r, khome=^^, nel=\r\n, 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
@@ -8095,43 +10576,45 @@
 #         7 - 7
 #        20 - 6,8
 #
-adm12|lsi adm12,
+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,
+	bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, 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,
+	is2=\E0\s\s\s\s\s\s\s\s\E1\s\s\s\s\s\s\s\s\E1\s\s\s\s\s\s\s
+	    \s\E1\s\s\s\s\s\s\s\s\E1\s\s\s\s\s\s\s\s\E1\s\s\s\s\s\s
+	    \s\s\E1\s\s\s\s\s\s\s\s\E1\s\s\s\s\s\s\s\s\E1,
+	kcub1=^H, kcud1=\n, 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,
+adm20|Lear Siegler adm20,
 	OTbs, am,
 	cols#80, it#8, lines#24,
-	bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cuf1=^L,
+	bel=^G, cbt=\EI, clear=^Z, cr=\r, 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,
+adm21|Lear Siegler adm21,
 	xmc#1,
-	bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=\ER$<30*>, ed=\EY,
-	el=\ET, ich1=\EQ, il1=\EE$<30*>, ind=^J, invis@, kbs=^H,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
-	use=adm+sgr, use=adm3a,
+	dch1=\EW, dl1=\ER$<30*>, ed=\EY, el=\ET, ich1=\EQ,
+	il1=\EE$<30*>, invis@, kbs=^H, 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,
+adm22|LSI adm22,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, cbt=\EI, clear=\E+, cr=\r, cub1=^H, cud1=\n, 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,
+	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=\n, 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),
@@ -8193,7 +10676,7 @@
 # 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
+# sw4   Used in conjunction with S4 for comm interface control - Fact 0
 #
 # sw5   Secondary Channel Control (Hardware implementation only) - Fact 0
 #
@@ -8278,13 +10761,13 @@
 # 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,
+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,
+	bel=^G, clear=\E*, cr=\r, cub1=^H, cud1=\n, 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,
+	dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, ind=\n, is2=\Eu\E0,
+	kcub1=^H, kcud1=\n, 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,
@@ -8295,22 +10778,21 @@
 	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,
+	is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l, use=vt100+4bsd,
 # (adm42: removed obsolete ":ma=^K^P:" -- esr)
-adm42|lsi adm42,
+adm42|LSI adm42,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, cbt=\EI, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, cbt=\EI, clear=\E;, cr=\r, cub1=^H, cud1=\n, 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@,
+	il1=\EE$<270>, ind=\n, invis@, ip=$<6*>, kcub1=^H, kcud1=\n,
+	kcuf1=^L, kcuu1=^K, khome=^^, pad=^?, 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,
+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,
@@ -8321,14 +10803,14 @@
 # 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,
+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,
+	bel=^G, bold=\E(, cbt=\EI, clear=\E+, cr=\r, cub1=^H, cud1=\n,
 	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,
+	home=^^, ht=^I, il1=\EE, ind=\n, ip=$<6*/>, kbs=^H, kcub1=^H,
+	kcud1=\n, nel=\r\n, pad=^?, rev=\EG4, rmso=\EG0, rmul=\EG0,
 	sgr0=\E), smso=\EG4, smul=\EG1,
 
 #### Prime
@@ -8343,21 +10825,21 @@
 #
 
 # Standout mode is dim reverse-video.
-pt100|pt200|wren|fenix|prime pt100/pt200,
+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,
+	cbt=\E[Z, clear=\E?, cr=\r, cub1=^H, cud1=\ED,
+	cup=\E0%p1%{33}%+%c%p2%{33}%+%c, 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=\n, khome=\E$A, nel=\r\n, 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[>12
+	      l\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,
+	use=ansi+arrows, use=ansi+local,
+
+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,
@@ -8381,7 +10863,7 @@
 #
 # 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
+# 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.
 #
@@ -8392,14 +10874,14 @@
 # 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.
+# 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,
+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
@@ -8411,51 +10893,52 @@
 #
 # Added kdch1, kil1, kdl1 based on screenshot -TD:
 #	http://www.vintagecomputer.net/qume/qvt-108/qume_qvt-108_keyboard.jpg
-qvt101+|qvt101p|qume qvt 101 PLUS product,
+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,
+	bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=\r, cub1=^H, cud1=\n,
 	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, kdch1=\EW, kdl1=\ER, ked=\EY,
+	flash=\Eb$<200>\Ed, fsl=\r, home=^^, ht=^I, hts=\E1,
+	ich1=\EQ, il1=\EE, ind=\n, invis@, kbs=^H, kcbt=\EI, kcub1=^H,
+	kcud1=\n, kcuf1=^L, kcuu1=^K, kdch1=\EW, 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,
+qvt102|Qume qvt 102,
 	cnorm=\E., use=qvt101,
 # (qvt103: added <rmam>/<smam> based on init string -- esr)
-qvt103|qume qvt 103,
+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,
+	clear=\E[H\E[2J$<50>, cr=\r, cub1=^H, cud1=\n,
+	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, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
-	kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8,
+	hts=\EH, ind=\n, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+	kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
 	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>,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+	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,
+	smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ansi+csr,
+	use=ansi+local,
+
+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,
+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,
+	bel=^G, cbt=\EI, clear=\E*1, cnorm=\E.4, cr=\r, cub1=^H,
+	cud1=\n, 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,
+	el=\Et, flash=\En0$<200>\En1, fsl=\r, home=^^, ht=^I,
+	hts=\E1, il1=\EE, ind=\n, is2=\EDF\EC\EG0\Er\E(\E%EX,
+	kbs=^H, kcub1=^H, kcud1=\n, 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,
@@ -8467,12 +10950,12 @@
 	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,
+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),
+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,
 #
@@ -8488,7 +10971,7 @@
 	cols#132, lines#25,
 	rs2=\E[?3h\E[=40h, use=qvt203,
 
-#### Televideo (tvi)
+#### TeleVideo (tvi)
 #
 #	TeleVideo
 #	550 East Brokaw Road
@@ -8501,9 +10984,9 @@
 # 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.
+# TeleVideo terminals are ANSI and PC-ANSI compatible.
 
-tvi803|televideo 803,
+tvi803|TeleVideo 803,
 	clear=\E*$<10>, use=tvi950,
 
 # Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
@@ -8588,14 +11071,14 @@
 #     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,
+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,
+	bel=^G, cbt=\EI, clear=^Z, cr=\r, cub1=^H, cud1=\n, 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,
+	home=\E=^A^A, hpa=\E]%p1%{32}%+%c, ht=^I,
+	if=/usr/share/tabset/stdcrt, ind=\n, invis@, kbs=^H,
+	kcub1=^H, kcud1=\n, 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,
@@ -8629,7 +11112,7 @@
 # S2  9  DCD status (pin 8)  (U = disconnected, D = connected)
 # S2 10  DTR status (pin 20) (U = disconnected, D = connected)
 #
-tvi910+|televideo 910+,
+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,
@@ -8637,14 +11120,14 @@
 
 # (tvi912: removed obsolete ":ma=^K^P^L :", added  <flash> and
 # <khome> from BRL entry -- esr)
-tvi912|tvi914|tvi920|old televideo 912/914/920,
+tvi912|tvi914|tvi920|TeleVideo 912/914/920 (old),
 	OTbs, OTpt, am, msgr,
 	cols#80, it#8, lines#24, xmc#1,
-	bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, 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,
+	il1=\EE$<33*>, ind=\n, kbs=^H, kcub1=^H, kcud1=\n, 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,
@@ -8652,7 +11135,7 @@
 # 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,
+tvi912cc|tvi912 at Cowell College,
 	cup@, use=tvi912c,
 
 # tvi{912,920}[bc] - TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C
@@ -8660,6 +11143,7 @@
 #
 # Someone has put a scanned copy of the manual online at:
 #     http://vt100.net/televideo/912b-om/
+#     (https://vt100.net/manx/details/6,5484)
 #
 # These terminals were produced ca. 1979, and had a 12" monochrome
 # screen, supported 75-9600 baud (no handshaking), monochrome, 7-bit
@@ -8667,7 +11151,7 @@
 # (including some with magic cookies), fancy half-duplex mode, and
 # different bugs.
 #
-# Some operations reqire truly incredible amounts of padding. The
+# Some operations require truly incredible amounts of padding. The
 # insert_line (<il1>) and delete_line (<dl1>) operations in particular
 # are so slow as to be nearly unusable.
 #
@@ -8782,7 +11266,7 @@
 # 10: 110
 #
 # S2 UART/Terminal options:
-# 		Up			Down
+#		Up			Down
 # 1:		Not used		Not allowed
 # 2:	Alternate character set	  Standard character set
 # 3:	    Full duplex		    Half duplex
@@ -8793,10 +11277,10 @@
 # 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.)
+#	(On Rev E or lower, use W25 instead of switch 10.)
 #
 # S5 UART/Terminal options:
-# 		Open			Closed
+#		Open			Closed
 # 1:	P3-6 Not connected	DSR received on P3-6
 # 2:	P3-8 Not connected	DCD received on P3-8
 #
@@ -8806,8 +11290,8 @@
 # 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).
+#		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
@@ -8819,12 +11303,12 @@
 # is switched on).
 #
 # S4/W31:	Enables automatic LF upon receipt of CR from
-# 		remote or keyboard.
+#		remote or keyboard.
 # S4/W32:	Enables transmission of EOT at the end of Send.  If not
-# 		installed, a carriage return is sent.
+#		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.
+#		installed, Extension Mode is selected.
 #
 # NON-STANDARD CAPABILITIES
 #
@@ -8903,13 +11387,13 @@
 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,
+	bel=^G, clear=\032$<50>, cr=\r, cub1=^H, cud1=\n, 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,
+	ind=\n$<10>, is2=\Ew\EA\E'\E"\E(, kcub1=^H, kcud1=\n,
+	kcuf1=^L, kcuu1=^K, kdch1=^?, kent=\r, 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?,
 
@@ -8941,7 +11425,8 @@
 	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%;%;,
+	sgr=\E%?%p1%p5%|%t)%e(%;\s\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
@@ -9044,37 +11529,37 @@
 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
+# 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,
+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,
+	acsc=, clear=^Z, cnorm=\E.3, cr=\r, 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@,
+	if=/usr/share/tabset/stdcrt, il1=\EE, ind=\n, 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%%,
+	ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, nel=\r\n, 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,
+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,
+	acsc=, clear=^Z, cnorm=\E.3, cr=\r, 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,
+	ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=\n,
 	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,
+	nel=\r\n, 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*/>,
@@ -9084,16 +11569,16 @@
 # (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,
+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,
+	cnorm=\E.3, cr=\r, 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,
+	ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=\n,
 	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,
@@ -9147,10 +11632,10 @@
 # Position	Up	Dn	Description
 # --------------------------------------------
 # 1		X		Local edit
-# 			X	Duplex edit (transmit editing keys)
+#			X	Duplex edit (transmit editing keys)
 # --------------------------------------------
 # 2		X		912/920 emulation
-# 			X	925
+#			X	925
 # --------------------------------------------
 # 3			X
 # 4			X	No parity
@@ -9173,7 +11658,7 @@
 # 5		X
 # --------------------------------------------
 # 6		X		White on black display
-# 			X	Black on white display
+#			X	Black on white display
 # --------------------------------------------
 # 7			X	Half Duplex
 # 8			X
@@ -9185,17 +11670,17 @@
 # 8		X
 # --------------------------------------------
 # 9			X	50 Hz
-# 		X		60 Hz
+#		X		60 Hz
 # --------------------------------------------
 # 10		X		CR/LF (Auto LF)
-# 			X	CR only
+#			X	CR only
 #
 # S3 (internal switch) settings:
 #
 # Position	Up	Dn	Description
 # --------------------------------------------
 # 1		X		Keyclick off
-# 			X	Keyclick on
+#			X	Keyclick on
 # --------------------------------------------
 # 2			X	English
 # 3			X
@@ -9222,30 +11707,30 @@
 # 5		X
 # --------------------------------------------
 # 6		X		Screen blanking timer (ON)
-# 			X	Screen blanking timer (OFF)
+#			X	Screen blanking timer (OFF)
 # --------------------------------------------
 # 7		X		Page attributes
-# 			X	Line attributes
+#			X	Line attributes
 # --------------------------------------------
 # 8		X		DCD disconnected
-# 			X	DCD connected
+#			X	DCD connected
 # --------------------------------------------
 # 9		X		DSR disconnected
-# 			X	DSR connected
+#			X	DSR connected
 # --------------------------------------------
 # 10		X		DTR Disconnected
-# 			X	DTR connected
+#			X	DTR connected
 # --------------------------------------------
 #
 # (tvi925: BSD has <clear=\E*>.  I got <is2> and <ri> from there -- esr)
-tvi925|televideo 925,
+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,
+	bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=\r, 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,
+	flash=\Eb$<200>\Ed, fsl=\r\Eg, home=^^, ht=^I, hts=\E1,
+	ich1=\EQ, il1=\EE, ind=\n, 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,
@@ -9255,7 +11740,7 @@
 # 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,
+	kcud1=\n, 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
@@ -9354,23 +11839,29 @@
 # 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,
+#
+# TVI 950 has 11 function-keys -TD
+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,
+	acsc=jHkGlFmEnIqKtMuLvOwNxJ, bel=^G, cbt=\EI, clear=\E*,
+	cr=\r, cub1=^H, cud1=\n, 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,
+	fsl=\r, home=^^, ht=^I, hts=\E1, ich1=\EQ, il1=\EE, ind=\n,
 	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,
+	is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee\s\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,
+	kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf1=^A@\r,
+	kf10=^AI\r, kf11=^AJ\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=\E%%, rmir=\Er, smacs=\E$, smir=\Eq, tbc=\E3,
+	tsl=\Eg\Ef, kF1=^A`\r, kF10=^Ai\r, kF11=^Aj\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, use=adm+sgr,
 #
 # is for 950 with two pages adds the following:
 #	set 48 line page (\E\\2)
@@ -9384,8 +11875,10 @@
 #	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,
+tvi950-2p|TeleVideo 950 w/2 pages,
+	is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee\s\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\011,
 	rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
 	smkx=\El, use=tvi950,
 #
@@ -9398,8 +11891,10 @@
 #	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,
+tvi950-4p|TeleVideo 950 w/4 pages,
+	is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee\s\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\011,
 	rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
 	smkx=\El, use=tvi950,
 #
@@ -9408,22 +11903,28 @@
 #
 # set vb accordingly (\Ed ...delay... \Eb)
 #
-tvi950-rv|televideo950 rev video,
+tvi950-rv|TeleVideo 950 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,
+	is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee\s\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,
+tvi950-rv-2p|TeleVideo 950 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,
+	is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee\s\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,
+tvi950-rv-4p|TeleVideo 950 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,
+	is2=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee\s\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>
@@ -9436,23 +11937,23 @@
 # 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@,
+tvi955|TeleVideo 955,
+	mc5i, msgr@,
+	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%%,
+	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,
+	rs1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee\s\017\E0P\E6\0\E0p\E4\0
+	    \Ef\r,
+	sgr0=\EG0\E[=5l, smam=\E[=7h, smxon=^O, use=tvi950,
+tvi955-w|955-w|TeleVideo 955 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,
+tvi955-hb|955-hb|TeleVideo 955 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
@@ -9461,7 +11962,7 @@
 # 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,
+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,
@@ -9470,17 +11971,17 @@
 	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,
+	kf7=\E?g, kf8=\E?h, kf9=\E?i, 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,
+	smul=\E[4m, vpa=\E[%i%p1%dd, use=ansi+arrows,
+
+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,
+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
@@ -9492,53 +11993,58 @@
 # 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,
+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,
+	il1=\EE$<5*>, is2=\Ev\Eu\EK, kbs=^H, kcub1=^H, kcud1=\n,
 	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,
+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,
+	cnorm=\E.3, cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^V,
+	cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, 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,
+	el=\ET, flash=\Eb$<15>\Ed, fsl=\r, 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>,
+	il=\E[%p1%dL, il1=\EE, ind=\n, 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,
+	mc0=\E[0;0i, mc4=\Ea, mc5=\E`, nel=\r\n,
 	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%;%?%p8%t\E&%;%?%p9%t\E$%e\E%%%;,
+	rf=/usr/share/tabset/stdcrt, ri=\Ej, 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[=1
+	    3.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\s\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%;%?%p8%t\E&%;%?
+	    %p9%t\E$%e\E%%%;,
 	sgr0=\EG0\E%, 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,
+	tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0, use=ansi+local,
+	use=ecma+index,
 
 #### Visual (vi)
 #
@@ -9552,46 +12058,40 @@
 # 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
+# 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)
+# <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,
+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,
+	OTnl=\n, cbt=\Ez$<4/>, cub1=^H, dl1=\EM$<3*/>,
+	el=\EK$<16/>, il1=\EL, 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,
+	rmso=\ET, rmul=\EW, smso=\EU, smul=\ES, use=vt52-basic,
 # this one was BSD & SCO's vi50
-vi50adm|visual 50 in adm3a mode,
+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,
+	bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, 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,
+	ed=\Ek, el=\EK, home=\EH, ht=^I, il1=\EL, ind=\n, kbs=^H,
+	khome=\EH, rmso=\ET, smso=\EU, use=vt52+arrows,
 # 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,
+	cud1=\n, 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,
+	il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, ri=\EI,
+	rmir=\Eb, rmso=\ET, smir=\Ea, smso=\EU, use=vt52+arrows,
 
 # Visual 200 from BRL
 # The following switch settings are assumed for normal operation:
@@ -9603,57 +12103,53 @@
 # (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,
+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,
+	acsc=+h.kffggjmkllsmenbq`tnuovcwdxa}r, bel=^G, cbt=\Ez,
+	clear=\Ev, cnorm=\Ec, cr=\r, cub1=^H, cud1=\n, 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=\n, invis=\Ea, kbs=^H, kclr=\Ev,
+	kctab=\E2, 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,
+	smkx=\E=, smso=\E4, tbc=\Eg, use=vt52+arrows,
 # 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,
+vi200-f|Visual 200 no function keys,
+	is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, rmso@, smso@, use=vi200,
+vi200-rv|Visual 200 reverse video,
+	cnorm@, cvvis@, ri@, 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,
+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,
+	bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, dch1=\E[P$<40>, dl1=\E[M, ed=\E[J,
+	el=\E[K, home=\E[H, ht=^I, il1=\E[L, ind=\n,
 	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,
+	smso=\E[1m, smul=\E[4m, use=ansi+local1,
+
 # 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,
+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
@@ -9664,37 +12160,37 @@
 # 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,
+vi500|Visual 500,
 	am, mir, msgr,
 	cols#80, it#8, lines#33,
-	acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=^M,
+	acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=\r,
 	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,
+	ind=\n,
 	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,
+	kbs=^H, khome=\EH, nel=\r\n, rmacs=^O, rmir=\Ej, rmso=\E^G,
 	rmul=\E^C, smacs=^N, smir=\Ei, smso=\E^H, smul=\E^D,
+	use=vt52+arrows,
 
-# The visual 550 is a visual 300 with tektronix graphics,
+# 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,
+vi550|Visual 550 ANSI x3.64,
 	lines#33,
 	clear=\030\E[H\E[2J, use=vi300,
 
-vi603|visual603|visual 603,
+vi603|visual603|Visual 603,
 	hs, mir,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
+	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,
+	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
+	dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, 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\017$<2>, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+	tsl=\EP2~, use=ansi+idl1, use=decid+cpr, use=vt100+4bsd,
 
 #### Wyse (wy)
 #
@@ -9708,7 +12204,8 @@
 # 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>.
+# https://web.archive.org/web/19970712022641/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
@@ -9730,44 +12227,46 @@
 #	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,
+	am, bw, mc5i, mir, msgr, xon,
+	cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8,
 	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,
+	civis=\E`0, clear=\E+$<80>, cnorm=\E`1, cr=\r, cub1=^H,
+	cud1=\n, 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,
+	ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9, 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=\n, 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=\r\n,
+	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,
+	smso=\E`7\E), tbc=\E0, use=wyse+sl,
 #
 #	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,
+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%;,
+	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,
+wy30-vb|wyse30-vb|Wyse 30 visible bell,
 	bel@, use=wy30,
 #
 #	   The Wyse 50 can support one attribute (e.g. Dim, Inverse,
@@ -9780,28 +12279,36 @@
 #	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,
+	am, bw, mc5i, mir, msgr, xon,
+	cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8,
+	acsc=a;j5k3l2m1n8q:t4u9v=w0x6, bel=^G, cbt=\EI,
+	civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=\r, cub1=^H,
+	cud1=\n, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+	cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, ed=\EY$<20>,
+	el=\ET, flash=\E`8$<100/>\E`9, 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=\n, 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=\r\n,
 	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%;,
+	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,
+	smso=\E`6\E), tbc=\E0, 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, use=wyse+sl,
+wyse+sl|status line for Wyse terminals,
+	hs,
+	wsl#45,
+	dsl=\EF\r, fsl=\r, tsl=\EF,
 #
 #	This terminal description uses the non-hidden attribute mode
 #	(with magic cookie).
@@ -9811,21 +12318,23 @@
 #	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,
+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%;,
+	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,
+wy50-vb|wyse50-vb|Wyse 50 visible bell,
 	bel@, use=wy50,
-wy50-w|wyse50-w|wyse 50 132-column,
+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,
+wy50-wvb|wyse50-wvb|Wyse 50 132-column visible bell,
 	bel@, use=wy50-w,
 
 #
@@ -9852,50 +12361,56 @@
 #
 # Bug: The <op> capability resets attributes.
 wy350|wyse350|Wyse 350,
-	am, bw, hs, mc5i, mir, xon,
+	am, bw, mc5i, mir, xon,
 	colors#8, cols#80, lh#1, lines#24, lw#8, ncv#55, nlab#8, pairs#8,
-	wsl#45, xmc#1,
+	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,
+	cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=\r,
+	cub1=^H, cud1=\n, 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>,
+	dim=\EGp, dl1=\ER, ed=\EY$<20>, el=\ET,
+	flash=\E`8$<100/>\E`9, 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,
+	kcub1=^H, kcud1=\n, 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,
+	ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=\r\n, 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%;,
+	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,
+	smir=\Eq, smln=\EA10, tbc=\E0, use=adm+sgr, use=wyse+sl,
+wy350-vb|wyse350-vb|Wyse 350 visible bell,
 	bel@, use=wy350,
-wy350-w|wyse350-w|wyse 350 132-column,
+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,
+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,
+wy100|Wyse 100,
 	hs, mir,
 	cols#80, lines#24, xmc#1,
-	bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, clear=\E;, cr=\r, cub1=^H, cud1=\n, 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,
+	dl1=\ER, dsl=\EA31, ed=\EY, el=\ET, fsl=\r, il1=\EE, ind=\n,
+	invis@, is2=\Eu\E0, kbs=^H, kcub1=^H, kcud1=\n, 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,
@@ -9907,18 +12422,19 @@
 #	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,
+	am, bw, km, mc5i, mir, msgr, xon,
+	cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601,
 	acsc=+/\,.0[a2fxgqh1ihjYk?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,
+	cnorm=\E`1, cr=\r, cub1=^H, cud1=\n, 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,
+	dim=\EGp, dl1=\ER$<3>, ed=\EY$<50>, el=\ET$<4>,
+	flash=\E`8$<100/>\E`9, 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,
+	kcud1=\n, 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,
@@ -9929,23 +12445,25 @@
 	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>,
+	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,
+	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,
+	tbc=\E0, use=adm+sgr, use=wyse+sl,
 #
-wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column,
+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,
+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,
+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,
 #
@@ -9967,7 +12485,7 @@
 #		<is2> -> do the initialization
 #		<is3> -> set up display memory (2 pages)
 #
-#	The Wyse 60's that have vt100 emulation are slower than the
+#	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>
 #
@@ -9986,19 +12504,20 @@
 # (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,
+	am, bw, km, mc5i, mir, msgr,
+	cols#80, lh#1, lines#24, lw#8, nlab#8,
 	acsc=+/\,.0[a2fxgqh1ihjYk?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,
+	cnorm=\E`1, cr=\r, cub1=^H, cud1=\n, 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,
+	dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>,
+	ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, 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,
+	kcud1=\n, 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,
@@ -10011,39 +12530,44 @@
 	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,
+	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,
+	tbc=\E0, 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, use=adm+sgr, use=wyse+sl,
 #
-wy60-w|wyse60-w|wyse 60 132-column,
+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,
+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,
+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,
+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,
+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,
+	cup=\Ea%i%p1%dR%p2%dC$<2>, dch1=\EW$<19>,
+	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,
+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,
+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,
 #
@@ -10070,22 +12594,21 @@
 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,
+	el=\Et$<5>, 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,
+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,
+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,
+	pln@, rs3=\EwG\Ee)$<200>, use=wy99gt,
 #
-wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines,
+wy99gt-25-w|wyse99gt-25-w|Wyse 99gt 132-column 25-lines,
 	lh@, lines#25, lw@, nlab@,
 	pln@, rs2=\E`;$<150>, use=wy99gt-w,
 #
@@ -10099,7 +12622,7 @@
 # - 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
+# 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
@@ -10109,40 +12632,41 @@
 # 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,
+wy99-ansi|Wyse WY-99GT in ANSI mode (int'l PC keyboard),
+	am, km, 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>,
+	bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[J$<200>,
+	cnorm=\E[34h\E[?25h, cr=\r, 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,
+	cvvis=\E[34l\E[?25h, dim=\E[2m, 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@, ind=\n$<1>,
+	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%;,
+	nel=\EE, prot=\E[1"q, 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,
+	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,
+	smkx=\E[?1h, vpa=\E[%i%p1%dd, use=ansi+csr, use=ansi+idl,
+	use=ansi+pp, use=ansi+sgrbold,
 
 #   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),
+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:
@@ -10155,19 +12679,21 @@
 # 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,
+	am, bw, km, mc5i, mir, msgr, xon,
+	cols#80, it#8, lines#25,
 	acsc='x+y.w_vi~j(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,
+	cnorm=\E`4\E`1, cr=\r, 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,
+	cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, ed=\EY$<8*>,
+	el=\ET$<8>, enacs=\Ec@1J$<2000>,
+	flash=\E\^1$<30/>\E\^0, home=^^, ht=^I, il1=\EE, ind=\n,
+	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,
+	kcud1=\n, 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,
@@ -10175,10 +12701,14 @@
 	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%;,
+	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,
+	smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, use=wyse+sl,
 
 # This is the american terminal. Here tabs work.
 # From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
@@ -10207,18 +12737,19 @@
 # (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,
+	am, bw, km, mc5i, mir, msgr,
 	cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
 	acsc=+/\,.0[a2fxgqh1ihjYk?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,
+	cnorm=\E`1, cr=\r, cub1=^H, cud1=\n, 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,
+	dclk=\E`b, dim=\EGp, dl1=\ER$<1>, ed=\EY$<30>, el=\ET$<5>,
+	flash=\E`8$<100/>\E`9, 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,
+	kcud1=\n, 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,
@@ -10230,38 +12761,40 @@
 	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,
+	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,
+	tbc=\E0, use=adm+sgr, use=wyse+sl,
 #
-wy160-w|wyse160-w|wyse 160 132-column,
+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,
+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,
+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,
+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,
+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,
+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,
+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,
 #
@@ -10270,7 +12803,7 @@
 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 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
@@ -10281,66 +12814,67 @@
 #	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,
+wy75|wyse75|Wyse 75,
+	am, hs, 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*>,
+	bel=^G, clear=\E[H\E[J$<30>, cr=\r,
+	csr=\E[%i%p1%d;%p2%dr$<2>, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, 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>,
+	enacs=\E)0, flash=\E[30h\E\,$<250/>\E[30l, fsl=^A,
+	home=\E[H, hpa=\E[%i%p1%dG, 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,
+	is2=\E>\E(B\E)0\017, is3=\E[m, 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%;,
+	khlp=\E[28~, kich1=\E[@, kil1=\E[L, knp=\E[6~, kpp=\E[5~,
+	kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, 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,
+	tsl=\E[>\,\001, use=ansi+arrows, use=ansi+local,
+	use=ansi+pp, use=ansi+tabs, use=decid+cpr,
+	use=vt220+cvis, use=vt220+keypad,
 #
 #	This terminal description uses the non-hidden attribute mode
 #	(with magic cookie).
 #
-wy75-mc|wyse75-mc|wyse 75 with magic cookies,
+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%;,
+	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,
+wy75-vb|wyse75-vb|Wyse 75 with visible bell,
 	pb@,
 	bel@, use=wy75,
-wy75-w|wyse75-w|wyse 75 in 132 column mode,
+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,
+wy75-wvb|wyse75-wvb|Wyse 75 with visible bell 132 columns,
 	pb@,
 	bel@, use=wy75-w,
 #
-#	Wyse 85 emulating a vt220 7 bit mode.
+#	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 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
@@ -10349,51 +12883,46 @@
 #	<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,
+wy85|wyse85|Wyse 85,
+	hs, mir, xenl, xon,
+	wsl#80,
+	clear=\E[H\E[J$<110>, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH$<1>, 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\,$<300/>\E[30l, fsl=\E[1;24r\E8,
+	ht=\011$<1>, ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>,
+	il1=\E[L$<5>, ind=\n$<3>, 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,
+	is3=\E>\E(B\E)0\017\E[m, 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~, khlp=\E[28~, khome=\E[26~, lf1=PF1, lf2=PF2,
+	lf3=PF3, lf4=PF4, mc0=\E[0i, ri=\EM$<3>, rmam=\E[?7l,
+	rmir=\E[4l, rmkx=\E>, rs1=\E[13l\E[3l\E!p,
+	rs2=\E[35h\E[?3l$<70>, rs3=\E[?5l,
+	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, smam=\E[?7h, smir=\E[4h, smkx=\E[?1l\E=,
+	tsl=\E[40h\E7\E[25;%i%p1%dH, use=ansi+arrows,
+	use=ansi+csr, use=ansi+inittabs, use=ansi+local,
+	use=ansi+pp, use=ansi+sgrbold, use=decid+cpr,
+	use=vt100+4bsd, use=vt220+vtedit, use=vt220+cvis,
+	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,
+wy85-vb|wyse85-vb|Wyse 85 with visible bell,
+	bel@, flash=\E[30h\E\,$<300/>\E[30l, use=wy85,
 #
 #	Wyse 85 in 132-column mode.
-wy85-w|wyse85-w|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,
+	rs2=\E[35h$<70/>\E[?3h, use=wy85,
 #
 #	Wyse 85 in 132-column mode with visual bell.
-wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns,
+wy85-wvb|wyse85-wvb|Wyse 85 with visible bell 132-columns,
 	bel@, use=wy85-w,
 
 # From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998
@@ -10403,46 +12932,41 @@
 # 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
+# Technical" isn't responding.  So there's the question of whether the wy85
+# terminfo should reflect the manufacturer'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,
+wy85-8bit|wyse85-8bit|Wyse 85 in 8-bit mode,
+	hs, mir, xenl, xon,
+	wsl#80,
+	clear=\E[H\E[J$<110>, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH$<1>, 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\,$<300/>\E[30l, fsl=\E[1;24r\E8,
+	ht=\011$<1>, ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>,
+	il1=\E[L$<5>, ind=\n$<3>, 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,
+	kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
+	kcuu1=\233A, kdch1=\2333~, kf10=\23321~, kf11=\23323~,
+	kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
+	kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
+	kf20=\23334~, 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, ri=\EM$<3>,
+	rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rs1=\E[13l\E[3l\E!p,
+	rs2=\E[35h\E[?3l$<70>, rs3=\E[?5l,
+	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, smam=\E[?7h, smir=\E[4h, smkx=\E[?1l\E=,
+	tsl=\E[40h\E7\E[25;%i%p1%dH, use=ansi+csr,
+	use=ansi+inittabs, use=ansi+local, use=ansi+pp,
+	use=ansi+sgrbold, use=decid+cpr, use=vt100+4bsd,
+	use=vt100+pfkeys, use=vt220+cvis,
 #
-#	Wyse 185 emulating a vt320 7 bit mode.
+#	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
@@ -10452,61 +12976,56 @@
 #	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,
+wy185|wyse185|Wyse 185,
+	hs, km, mir, xenl, xon,
+	wsl#80,
+	civis=\E[?25l, clear=\E[H\E[J$<40>,
+	cnorm=\E[34h\E[?25h, csr=\E[%i%p1%d;%p2%dr$<20>,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
 	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,
+	flash=\E[30h\E\,$<100/>\E[30l, fsl=\E[1;24r\E8,
+	hpa=\E[%i%p1%d`, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>,
+	il1=\E[L$<3>, ind=\n$<2>, 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,
+	is3=\E>\E(B\E)0\017\E[m, kcbt=\E[Z, 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~, khlp=\E[28~, khome=\E[26~, lf1=PF1,
+	lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, rc=\E8, ri=\EM$<2>,
+	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,
+	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, smam=\E[?7h, smcup=\E[ Q, smir=\E[4h,
+	smkx=\E[?1l\E=, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd,
+	use=ansi+arrows, use=ansi+inittabs, use=ansi+local,
+	use=ansi+pp, use=ansi+sgrbold, use=decid+cpr,
+	use=vt100+4bsd, use=vt220+vtedit, use=vt220+keypad,
 #
 #	Wyse 185 with 24 data lines and top status (terminal status)
-wy185-24|wyse185-24|wyse 185 with 24 data lines,
+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,
+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,
+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,
+wy185-wvb|wyse185-wvb|Wyse 185+flash+132 cols,
 	bel@, use=wy185-w,
 
 # wy325 terminfo entries
@@ -10515,18 +13034,19 @@
 # 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,
+	am, bw, mc5i, mir,
+	cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601,
 	acsc=+/\,.0[a2fxgqh1ihjYk?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,
+	cnorm=\E`1, cr=\r, cub1=^H, cud1=\n, 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,
+	dim=\EGp, dl1=\ER$<3>, ed=\EY$<50>, el=\ET$<4>,
+	flash=\E`8$<100/>\E`9, 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,
+	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,
+	kcud1=\n, 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,
@@ -10537,77 +13057,79 @@
 	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>,
+	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,
+	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,
+	use=adm+sgr, use=wyse+sl,
 
 #
 # lines 24  columns 80  vb
 #
-wy325-vb|wyse325-vb|wyse-325 with visual bell,
+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,
+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,
+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,
+wy325-25w|wyse325-25w|Wyse-325 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,
+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,
+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,
+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,
+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,
+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,
+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,
+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.
@@ -10628,73 +13150,76 @@
 #	<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,
+wy370-nk|Wyse 370 without function keys,
+	am, ccc, hs, mir, msgr, xenl, xon,
+	colors#64, cols#80, 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,
+	bel=^G, civis=\E[?25l, clear=\E[H\E[J$<40>,
+	cnorm=\E[34h\E[?25h, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH$<1>, 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\,$<300/>\E[30l, fsl=\E[1;24r\E8,
+	home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>,
 	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>,
+	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,
+	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%;,
+	is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i,
+	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, 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, 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,
+	smir=\E[4h, smkx=\E[?1l\E=,
+	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, use=ansi+csr,
+	use=ansi+inittabs, use=ansi+local, use=ansi+pp,
+	use=ansi+sgrbold, use=decid+cpr,
 #
 #	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,
+	kcbt=\E[Z, 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,
+	kf8=\E[19~, kf9=\E[20~, kich1=\EOP, kil1=\EOP, knp=\E[U,
+	kpp=\E[V, use=ansi+arrows, 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,
+	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~, lf1=PF1, lf2=PF2, lf3=PF3,
+	lf4=PF4, use=ansi+arrows, use=vt220+vtedit, 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~,
+	kcbt=\E[Z, 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,
+	kich1=\E[2~, knp=\E[U, kpp=\E[V, use=ansi+arrows,
+	use=wy370-nk,
 #
 #	Wyse 370 with visual bell.
 wy370-vb|Wyse 370 with visible bell,
@@ -10707,7 +13232,7 @@
 #
 #	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,
+	flash=\E[30h\E\,$<300/>\E[30l, use=wy370-w,
 wy370-rv|Wyse 370 reverse video,
 	rs3=\E[32h\E[?5h, use=wy370,
 #
@@ -10716,18 +13241,26 @@
 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,
+	bel=^G, clear=\E^L, cr=\r, cub1=^H, cud1=\n, 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,
+	hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+	   \037,
 	home=^]7`x @\037,
-	hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
-	is2=\E8, nel=^M^J, u0=\E~>\E8, u1=\E[42h,
+	hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+	   \037,
+	is2=\E8, nel=\r\n, 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,
+	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,
@@ -10735,14 +13268,18 @@
 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,
+	bel=^G, clear=\E^L, cr=\r, cub1=^H, cud1=\n, 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,
+	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,
+	hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+	   \037,
+	is2=\E8, kbs=^H, kcub1=^H, kcud1=\n, kcuf1=^I, kcuu1=^K,
+	nel=\r\n, u0=\E[?38h\E8, u1=\E[?38l\E)0,
 
 # Vendor-supplied Wyse entries end here.
 
@@ -10759,7 +13296,7 @@
 #               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
+#       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
@@ -10773,63 +13310,60 @@
 #         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,
+wy520|wyse520|Wyse 520,
+	am, hs, km, 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,
+	bel=^G, civis=\E[?25l, clear=\E[H\E[J$<40>,
+	cnorm=\E[34h\E[?25h, cr=\r, csr=\E[%i%p1%d;%p2%dr$<20>,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
 	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,
+	enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`,
+	ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>,
+	ind=\n$<2>, 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%;,
+	is3=\E>\E(B\E)0\017\E[m, kcbt=\E[Z, ked=\E[1~, 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~, khlp=\E[28~,
+	khome=\E[26~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
+	ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l,
+	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,
+	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,
+	smcup=\E[ Q\E[?67;8h, smir=\E[4h,
+	tsl=\E[2$~\E[1$}\E[%i%p1%d`, vpa=\E[%i%p1%dd,
+	use=ansi+arrows, use=ansi+csr, use=ansi+local,
+	use=ansi+pp, use=ansi+sgrbold, use=ansi+tabs,
+	use=decid+cpr, use=vt220+vtedit, use=vt220+keypad,
 #
 #       Wyse 520 with 24 data lines and status (terminal status)
-wy520-24|wyse520-24|wyse 520 with 24 data lines,
+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,
+wy520-vb|wyse520-vb|Wyse 520 with visible bell,
+	flash=\E[30h\E\,$<100/>\E[30l, use=wy520,
 #
 #       Wyse 520 in 132-column mode.
-wy520-w|wyse520-w|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,
+wy520-wvb|wyse520-wvb|Wyse 520 with visible bell 132-columns,
+	flash=\E[30h\E\,$<100/>\E[30l, use=wy520-w,
 #
 #
-#       Wyse 520 emulating a vt420 7 bit mode.
+#       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
@@ -10838,55 +13372,55 @@
 #       - 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~,
+wy520-epc|wyse520-epc|Wyse 520 with EPC keyboard,
+	kdch1=^?, 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,
+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,
+wy520-epc-vb|wyse520-pc-vb|Wyse 520 with visible bell and EPC keyboard,
+	flash=\E[30h\E\,$<100/>\E[30l, use=wy520-epc,
 #
 #       Wyse 520 in 132-column mode.
-wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard,
+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,
+wy520-epc-wvb|wyse520-p-wvb|Wyse 520 with visible bell 132-columns and EPC keyboard,
+	flash=\E[30h\E\,$<100/>\E[30l, use=wy520-epc-w,
 #
 #       Wyse 520 in 80-column, 36 lines
-wy520-36|wyse520-36|wyse 520 with 36 data 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,
+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,
+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,
+wy520-48w|wyse520-48w|Wyse 520 with 48 data lines (132 column),
 	cols#132, wsl#132,
 	rs2=\E[?3h,
 	rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
@@ -10894,28 +13428,28 @@
 #
 #
 #       Wyse 520 in 80-column, 36 lines with EPC keyboard
-wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and 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,
+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,
+wy520-36wpc|wyse520-36wpc|Wyse 520 with 36 data lines and EPC keyboard (132 column),
 	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,
+wy520-48wpc|wyse520-48wpc|Wyse 520 with 48 data lines and EPC keyboard (132 column),
 	cols#132, wsl#132,
 	rs2=\E[?3h,
 	rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
@@ -10927,12 +13461,12 @@
 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,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, 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,
+	dl1=\El, ed=\Ek, el=\EK, home=^A, ht=^I, il1=\EM, ind=\n,
+	is2=\E`:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=\n, kcuf1=^F,
+	kcuu1=^Z, khome=^A, ll=^A^Z, nel=\r\n, 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,
@@ -10945,10 +13479,10 @@
 wy100q|Wyse 100 for Quotron,
 	OTbs,
 	cols#80, lines#24, xmc#1,
-	cbt=\EI, clear=^Z, cub1=^H, cud1=^J, cuf1=^L,
+	cbt=\EI, clear=^Z, cub1=^H, cud1=\n, 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,
+	is2=\E`:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=\n,
 	kcuf1=^L, kcuu1=^K, ri=\Ej, rmir=\Er, smir=\Eq, use=adm+sgr,
 
 #### Kermit terminal emulations
@@ -10967,7 +13501,7 @@
 	clear=\EE, cub1=^H, cud1=\EB, 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=^^,
+	kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, khome=^^,
 kermit-am|standard kermit plus auto-margin,
 	am,
 	is2=K1 Standard Kermit plus Automatic Margins\n,
@@ -10983,20 +13517,20 @@
 	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.
+# 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,
+	it#8,
+	cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I, il1=\EL,
+	is2=\EO\Eq\EJ\EY7\sK3\sUCB\sIBMPC\sKermit\s1.20\s\s12-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.
+# 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.
@@ -11009,15 +13543,17 @@
 	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,
+	is2=\EO\Eq\EG\Ew\EJ\EY7\sK4\sMS\sKermit\s2.27\sfor\sthe
+	    \sIBMPC\s3-17-85\n,
+	kcub1=^H, kcud1=\n, 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,
+	is2=\EO\Eq\EG\Ev\EJ\EY7\sK5\sMS\sKermit\s2.27\s+automatic
+	    \smargins\s3-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.
@@ -11027,7 +13563,8 @@
 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,
+	is2=\EO\Eq\EG\Ev\EJ\EY7\sK6\sMS\sKermit\s2.27\sUCB\s227.14
+	    \sIBM\sPC\s3-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,
@@ -11035,57 +13572,55 @@
 # 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,
+vt320-k3|MS-Kermit 3.00's VT320 emulation,
+	am, 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[?1h\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,
+	bel=^G, blink=\E[5m, bold=\E[1m, cmdch=\E, cr=\r, cub1=^H,
+	cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	ech=\E[%p1%dX,
+	flash=\E[?5h$<100/>\E[?5l\E[?5h$<100/>\E[?5l\E[?5h$<100/>\E[
+	      ?5l,
+	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+	ind=\n, is2=\E>\E F\E[?1h\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=\r\n, 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\sF\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h
+	    \E[4i\E[?4i\E[m\E[r\E[2$~,
+	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,
+	tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd, use=ansi+csr,
+	use=ansi+erase, use=ansi+idl, use=ansi+local, use=dec+sl,
+	use=vt220+cvis,
+
 # 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,
+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,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J, cr=\r,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+	dch1=\E[P, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
+	flash=\E[?5h$<100/>\E[?5l, fsl=\E[$}, home=\E[H, ht=^I,
+	hts=\EH, ich=\E[%p1%d@, 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,
+	lf3=pf3, lf4=pf4, nel=\r\ED, 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,
+	rmul=\E[24m, rs1=\E[?3l, 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, use=ansi+csr,
+	use=ansi+idl, use=ansi+local, use=vt220+cvis,
 
 ######## NON-ANSI TERMINAL EMULATIONS
 #
@@ -11095,7 +13630,7 @@
 # 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
+# excessively dependent on PC idiosyncrasies, but apparently rather popular
 # in the BBS world.
 #
 # No color support.  Avatar doesn't fit either of the Tektronix or HP color
@@ -11127,7 +13662,7 @@
 # (^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.
+#			   should be repeated. If either value is 0, no-op.
 #			   The pattern can contain Avatar console codes,
 #			   including other ^V ^Y patterns.
 #				level 1:
@@ -11137,7 +13672,7 @@
 # ^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^T			-- change highlight at current cursor position 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
@@ -11153,11 +13688,13 @@
 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,
+	blink=^V^B, bold=^V^A^P, cr=\r, 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,
+	ind=\n, 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%;,
+	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
@@ -11177,28 +13714,29 @@
 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,
+	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=^L, cr=\r,
 	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,
+	kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=\r\ED,
+	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, sgr0=\E[m, smcup=,
+	smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T, use=ansi+csr,
+	use=vt220+cvis,
+
 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,
+	cud1=\n, ind=\n,
+	is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kcub1=^H,
+	kcud1=\n, nel=\r\n, 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,
+	cud1=\n, ind=\n,
+	is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kcub1=^H,
+	kcud1=\n, nel=\r\n, use=rbcomm,
 
 ######## LCD DISPLAYS
 #
@@ -11227,8 +13765,8 @@
 # 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,
+MtxOrb|generic Matrix Orbital LCD display,
+	bel=\376B\001, 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,
@@ -11257,29 +13795,27 @@
 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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+	dch=\E[%p1%dP, dch1=\E[P, el1=\E[1K, home=\E[H, ht=^I,
+	ich=\E[%p1%d@, ind=\n, kcbt=\E[Z, kclr=\E[J, 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,
+	kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, 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,
+	use=ansi+arrows, use=ansi+cpr, use=ansi+erase,
+	use=ansi+idl, use=ansi+local,
+
 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.
+# 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.
+#	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:
@@ -11288,24 +13824,31 @@
 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%|%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, smso=\E[7m, smul=\E[4m,
-	tsl=\E7\E[25;%p1%{1}%+%dH,
+	acsc=++\,\,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyz
+	     z{{||}}~~,
+	bel=^G, bold=\E[2;7m, cr=\r, cub1=^H, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dim=\E[2m, dl1=\E[M,
+	fsl=\E8, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, ind=\n,
+	is1=\E[?3l\E)0,
+	is3=\E[1;03q\s\s\sf1\s\s\s\s\s\s\s\s\s\s\s\EOP\E[2;03q\s\s
+	    \sf2\s\s\s\s\s\s\s\s\s\s\s\EOQ\E[3;03q\s\s\sf3\s\s\s\s
+	    \s\s\s\s\s\s\s\EOR\E[4;03q\s\s\sf4\s\s\s\s\s\s\s\s\s\s
+	    \s\EOS\E[5;03q\s\s\sf5\s\s\s\s\s\s\s\s\s\s\s\EOT\E[6;03q
+	    \s\s\sf6\s\s\s\s\s\s\s\s\s\s\s\EOU\E[7;03q\s\s\sf7\s\s
+	    \s\s\s\s\s\s\s\s\s\EOV\E[8;03q\s\s\sf8\s\s\s\s\s\s\s\s
+	    \s\s\s\EOW,
+	kclr=\E[2J, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
+	kf6=\EOU, kf7=\EOV, kf8=\EOW, kll=\E[24;1H, ll=\E[24H,
+	nel=\r\n,
+	pfx=\E[%p1%1d;%p2%l%2.2dq\s\s\sf%p1%1d\s\s\s\s\s\s\s\s\s\s
+	    \s%p2%s,
+	pln=\E[%p1%d;00q%p2%:-16s, ri=\EM, rmacs=^O,
+	rs2=\Ec\E[?3l\E[2;0y,
+	sgr=\E[0%?%p1%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, tsl=\E7\E[25;%p1%{1}%+%dH,
+	use=ansi+arrows, use=ansi+csr, use=ansi+erase,
+	use=ansi+local1, use=ansi+sgrbold,
 
 att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1,
 	cols#132, wsl#132,
@@ -11320,27 +13863,27 @@
 	cols#132, wsl#132,
 	is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att4410,
 
-# 5410 in terms of a vt100
+# 5410 in terms of a VT100
 # (v5410: added <rmam>/<smam> based on init string -- esr)
-v5410|att5410 in terms of a vt100,
+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>,
+	clear=\E[H\E[J$<50>, cr=\r, cub1=^H, cud1=\n,
+	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=\n, kbs=^H,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+	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,
+	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,
+	use=ansi+csr, use=decid+cpr, use=vt100+fnkeys,
 
 #
 # Teletype Model 5420 -- A souped up 5410, with multiple windows,
@@ -11380,16 +13923,14 @@
 # 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,
+	db,
+	lm#78, wsl#55,
+	clear=\E[x\E[J, cnorm=\E[11;0j, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dx, cvvis=\E[11;1j,
+	ech=\E[%p1%ds\E[%p1%dD, flash=\E[?5h$<200>\E[?5l,
+	home=\E[x, ich1@, 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,
@@ -11399,13 +13940,14 @@
 	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%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%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,
+	rin=\E[%p1%dF, rmam=\E[?7l, rmkx=\E[19;0j\E[21;1j\212,
+	rmln=\E|,
+	sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1
+	    %|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;,
+	sgr0=\E[m\017, smam=\E[?7h, smkx=\E[19;1j\E[21;4j\Eent,
+	smln=\E~, tsl=\E7\E[25;%p1%{8}%+%dH, use=ansi+idc,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+	use=ansi+rca, use=att4410,
 
 att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols,
 	cols#132, lm#54, wsl#97,
@@ -11424,7 +13966,8 @@
 # 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,
+	pfx=\E[%p1%d;%p2%l%02d;0;1q\s\s\sF%p1%d\s\s\s\s\s\s\s\s\s\s
+	    \s%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,
@@ -11445,110 +13988,111 @@
 
 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,
+	cols#80, 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,
-	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,
-	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,
+	cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j, cr=\EG, cub1=^H,
+	cud1=\E[1B, cuf1=\E[1C, cup=\E[%i%p1%d;%p2%dH,
+	cuu1=\E[1A, cvvis=\E[11;1j, dch=\E[%p1%dP, dch1=\E[P,
+	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, ich=\E[%p1%d@, ich1=\E[@, ind=\n,
+	indn=\E[%p1%dE,
+	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, kcbt=\E[Z, kclr=\E[2J, kdch1=\E[P, kdl1=\E[M,
+	kel=\E[2K, kend=\Ez, kent=\n, 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[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%;,
+	mc5=\E[5i, mrcup=\E[%i%p1%d;%p2%dt, nel=\r\n,
+	pfx=\E[%p1%d;%p2%l%02dq\s\s\sF%p1%d\s\s\s\s\s\s\s\s\s\s\s%p2
+	    %s\E~,
+	pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, ri=\EM,
+	rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j, rmln=\E|,
+	rs2=\Ec\E[?3l\E[2;0y,
+	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%;%?%p8%t\EV%;,
 	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,
+	use=ansi+arrows, use=ansi+csr, use=ansi+idl,
+	use=ansi+inittabs, use=ansi+local, use=ansi+sgrdim,
+	use=decid+cpr,
+
 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,
+	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,
+	bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=\r,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[1P,
+	dim=\E[2m, ed=\E[0J, el=\E[0K, home=\E[H, ich=\E[%p1%d@,
+	ich1=\E[1@, il1=\E[1L, ind=\n, 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, use=ansi+idl,
+	use=ansi+local,
+
 att4418-w|att5418-w|AT&T 5418 132 cols,
 	cols#132,
 	is1=\E[?3h, use=att5418,
 
-att4420|tty4420|teletype 4420,
+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,
+	kcbt=\EO, kclr=\EJ, kcub1=^H, 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\\,
+	rmul=\EZ, smdc@, smso=\E}, smul=\E\\, use=vt52+arrows,
 
 #  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
+#	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
+#	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,
+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,
+	bel=^G, blink=\E3, bold=\E3, cbt=\EO, clear=\E[H\E[2J, cr=\r,
+	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\EB, cuf1=\EC,
+	cup=\E[%i%p1%d;%p2%dH, 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=\n, is2=\E[20l\E[?7h, kclr=\EJ, kf1=\EOP,
+	kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rev=\E}, ri=\ET,
+	rmacs=\E(B, rmso=\E~, rmul=\EZ,
+	sgr=\EX\E~\EZ\E4\E(B%?%p1%p3%|%t\E}%;%?%p2%t\E\\%;%?%p4%p6%|
+	    %t\E3%;%?%p5%t\EW%;%?%p9%t\E(0%;,
 	sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\,
-	tbc=\EF,
+	tbc=\EF, use=ansi+arrows, use=ansi+local,
 
-att4424-1|tty4424-1|teletype 4424 in display function group I,
+att4424-1|tty4424-1|Teletype 4424 in display function group I,
 	kclr@, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome@,
 	use=att4424,
 
@@ -11558,16 +14102,15 @@
 # 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,
+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,
+	bel=^G, clear=\E[2;H\E[J, cr=\r, cub1=^H, cud1=\n, 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,
+	dl1=\EM, el=\E[K, ht=^I, ich1=\E\^, il1=\EL, ind=\n, ip=$<2/>,
+	is2=\E[m\E[2;24r, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+	nel=\r\n, ri=\ET, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+	smso=\E[7m, smul=\E[4m, use=ansi+arrows,
 
 # The Teletype 5425 is really version 2 of the Teletype 5420. It
 # is quite similar, except for some minor differences. No page
@@ -11579,69 +14122,59 @@
 #
 # (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,
+	da, db, hs, mir, xenl, xon,
+	lh#2, lm#78, lw#8, nlab#8, wsl#55,
+	bold=\E[2;7m, cnorm=\E[12;0j, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, cvvis=\E[12;1j, dch=\E[%p1%dP,
+	dch1=\E[P, dim=\E[2m, ech=\E[%p1%ds\E[%p1%dD, el1=\E[1K,
+	flash=\E[?5h$<200>\E[?5l, fsl=\E8, hpa=\E[%p1%{1}%+%dG,
+	ich=\E[%p1%d@, indn=\E[%p1%dE, 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, kcbt=\E[Z, kclr=\E[J, 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,
+	kf8=\EOj, 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=\r\n,
 	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%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%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,
+	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, ri=\EM,
+	rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
+	rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
+	rs2=\Ec\E[?3l\E[2;0y,
+	sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6
+	    %|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;,
+	sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
+	smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~,
+	tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
+	use=ansi+arrows, use=ansi+csr, use=ansi+erase,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+	use=ansi+sgrbold, use=decid+cpr, use=vt100+4bsd,
 
 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,
+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,
+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=\E[A, 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,
+	cr=\r, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\EP,
+	ed=\E[J, el=\E[0K, home=\E[H, hpa=\E[%p1%dG, ht=^I, hts=\E1,
+	ich=\E[%p1%d@, ich1=\E\^, il1=\EL, ind=\n, is1=\Ec\E[?7h,
+	is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO, kclr=\E[2J, 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=\r\n,
+	rc=\E8, rev=\E[7m, ri=\ET, 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, use=ansi+idl,
+	use=ansi+local, use=ecma+index, use=vt52+arrows,
 
 # Terminfo entry for the AT&T 510 A Personal Terminal
 # Function keys 9 - 16 are available only after the
@@ -11655,25 +14188,25 @@
 	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[B,
-	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%;,
+	bel=^G, blink=\E[5m, bold=\E[2;7m, civis=\E[11;0|,
+	clear=\E[H\E[J, cnorm=\E[11;3|, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, cvvis=\E[11;2|, dch=\E[%p1%dP,
+	dch1=\E[P, dim=\E[2m, ed=\E[0J, el=\E[0K, el1=\E[1K,
+	enacs=\E(B\E)1, ff=^L, home=\E[H, ind=\n,
+	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,
+	smul=\E[4m, use=ansi+cpr, use=ansi+idl, use=ansi+local,
+	use=ansi+tabs,
 
 # Terminfo entry for the AT&T 510 D Personal Terminal
 # Function keys 9 through 16 are accessed by bringing up the
@@ -11688,82 +14221,78 @@
 	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[B, 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,
+	bel=^G, bold=\E[2;7m, clear=\E[H\E[J, cnorm=\E[11;3|,
+	cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH, cvvis=\E[11;2|,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, 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|,
+	hpa=\E[%p1%{1}%+%dG, ich=\E[%p1%d@, ind=\n,
+	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, ri=\EM, rmacs=^O,
+	rmir=\E[4l, rmkx=\E[19;0|, rmln=\E<, 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%;,
+	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,
+	smkx=\E[19;1|, smln=\E?, smxon=\E[29;0|,
+	vpa=\E[%p1%{1}%+%dd, use=ansi+cpr, use=ansi+idl,
+	use=ansi+local, use=ansi+rep, use=ansi+sgrbold,
+	use=ansi+tabs, use=ecma+index,
 
 # (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,
+	bel=^G, bold=\E[2;7m, cnorm=\E[11;0|, cr=\r,
+	csr=%i\E[%p1%d;%p2%dr, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, cvvis=\E[11;1|, dch=\E[%p1%dP,
+	dch1=\E[P$<1>, dim=\E[2m, el1=\E[1K, enacs=\E(B\E)1,
+	home=\E[H, hpa=\E[%p1%{1}%+%dG, ich=\E[%p1%d@, ind=\n,
+	indn=\E[%p1%dE,
 	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,
+	kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, 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,
+	kcrt=\EOn, 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, 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,
+	pfkey=\E[%p1%d;%p2%l%d;3;0p\s\s\sF%p1%d\s\s\s\s\s\s\s\s\s\s
+	      \s%p2%s,
+	pfloc=\E[%p1%d;%p2%l%d;2;0p\s\s\sF%p1%d\s\s\s\s\s\s\s\s\s\s
+	      \s%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,
+	pln=\E[%p1%dp%p2%:-16s, rc=\E8, ri=\EM, rin=\E[%p1%dF,
+	rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|\E[21;1|\212,
+	rmln=\E<,
+	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%;,
+	sgr=\E[0%?%p1%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, 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,
+	smkx=\E[19;1|\E[21;4|\Eent, smln=\E?,
+	vpa=\E[%p1%{1}%+%dd, use=ansi+arrows, use=ansi+erase,
+	use=ansi+idl, use=ansi+local, use=ansi+rep,
+	use=ansi+sgrbold, use=ansi+tabs, use=decid+cpr,
 
-# 01-07-88
+# 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
@@ -11772,16 +14301,31 @@
 # 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,
+	bufsz#0x2000, 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,
+	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=\r,
+	csnm=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfi
+	     nnish%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}%=%tsecurit
+	     y%e%p1%{13}%=%tebcdic%e%p1%{14}%=%tapl%e%p1%{15}%=%tmos
+	     aic%;,
+	cud=\E[%p1%de, cud1=\n, 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%;,
+	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(}%;,
+	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,
@@ -11796,14 +14340,12 @@
 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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+	dch=\E[%p1%dP, dch1=\E[P, home=\E[H, ht=^I, ich=\E[%p1%d@,
+	ich1=\E[@, ind=\n, kclr=\E[2J, kll=\E[70;1H, nel=\r\n,
+	rc=\E8, ri=\E[T, rs1=\Ec, sc=\E7, use=ansi+arrows,
+	use=ansi+erase, use=ansi+idl, use=ansi+local1,
+	use=ecma+index,
 
 # 5620 terminfo  (2.0 or later ROMS with char attributes)
 # The following SET-UP modes are assumed for normal operation:
@@ -11817,32 +14359,30 @@
 # <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,
+att5620|dmd|tty5620|ttydmd|5620|AT&T 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,
+	bel=^G, bold=\E[2m, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, home=\E[H, ht=^I,
+	ich=\E[%p1%d@, ich1=\E[@, ind=\E[S, kclr=\E[2J,
+	kll=\E[70;1H, nel=\n, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8,
+	rev=\E[7m, ri=\E[T, rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7,
+	sgr0=\E[0m, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+	use=ansi+erase, use=ansi+idl, use=ansi+local1,
+	use=ecma+index,
+
+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,
+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,
+att5620-s|tty5620-s|layer|vitty|AT&T 5620 S layer,
 	OTbs, OTpt, am,
 	cols#80, it#8, lines#72,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n,
 	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,
+	el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=\n, kclr=\E[2J,
+	khome=\E[H, kll=\E[70;1H, use=ansi+arrows,
 
 # Entries for <kf15> thru <kf28> refer to the shifted system pf keys.
 #
@@ -11852,15 +14392,11 @@
 	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,
+	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
+	el1=\E[1K, fsl=\E8, ht=^I, il1=\E[L, ind=\n, 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,
+	kLFT=\E[ A, kRIT=\E[ @, kcbt=\E[Z, kclr=\E[2J, 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,
@@ -11870,29 +14406,27 @@
 	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,
+	kf7=\EOi, kf8=\EOj, kf9=\ENo, 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,
+	rmacs=^O, rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l,
+	sc=\E7, sgr0=\E[m\017, smacs=\E)0\016, smln=\E[p,
+	smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,
+	use=ansi+arrows, use=ansi+cpr, use=ansi+erase,
+	use=ansi+idc, use=ansi+local1,
+
+att605-pc|AT&T 605 in pc term mode,
+	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
+	     \263,
+	cub1=\E[D, 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=\E[50;0|$<400>, smsc=\E[?11l\E[50;1|$<250>,
-	xoffc=g, xonc=e, use=att605,
+	kf9=\E[U, knp=\E[G, kpp=\E[I, rmsc=\E[50;0|$<400>,
+	smsc=\E[?11l\E[50;1|$<250>, 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,
+	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
@@ -11901,31 +14435,28 @@
 	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,
+	bel=^G, cbt=\E[Z, cr=\r, cub1=^H, cvvis=\E[?12;25h,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, el1=\E[1K,
+	flash=\E[?5h$<200>\E[?5l, fsl=\E8, ht=^I, ich=\E[%p1%d@,
+	ind=\ED,
 	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,
+	is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A,
+	kcbt=\E[Z, kclr=\E[2J, 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,
 	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%;,
+	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, ri=\EM, rmacs=^O,
+	rmam=\E[?7l, rmir=\E[4l, rmln=\E[2p, rs2=\Ec\E[?3l,
+	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,
+	smln=\E[p, tsl=\E7\E[25;%i%p1%dx, use=ansi+arrows,
+	use=ansi+csr, use=ansi+cup, use=ansi+erase, use=ansi+idl,
+	use=ansi+local, use=ansi+sgrbold, use=decid+cpr,
+	use=ecma+index, use=att610+cvis,
+
 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,
@@ -11938,7 +14469,7 @@
 	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,
+	kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\r,
 	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,
@@ -11975,39 +14506,36 @@
 	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,
+	bel=^G, cbt=\E[Z, cr=\r, cub1=^H, cvvis=\E[?12;25h,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, el1=\E[1K,
+	flash=\E[?5h$<200>\E[?5l, fsl=\E8, ht=^I, ich=\E[%p1%d@,
+	ind=\ED,
 	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,
+	is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @,
+	kcbt=\E[Z, kclr=\E[2J, 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, 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%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\E)0\016%e\E(B\017%;,
+	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, ri=\EM,
+	rmacs=\E(B\017, rmam=\E[?7l, rmir=\E[4l, rmln=\E[2p,
+	rs2=\Ec\E[?3l,
+	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\E)0\016%e\E(B\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,
+	smir=\E[4h, smln=\E[p, tsl=\E7\E[25;%i%p1%dx,
+	use=ansi+arrows, use=ansi+csr, use=ansi+cup,
+	use=ansi+erase, use=ansi+idl, use=ansi+local,
+	use=ansi+sgrbold, use=decid+cpr, use=ecma+index,
+	use=att610+cvis,
+
 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,
@@ -12019,7 +14547,7 @@
 	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,
+	kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\r,
 	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@,
@@ -12048,24 +14576,22 @@
 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%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%p4%|%t;7%;m,
-	sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+	bel=^G, blink=\E[5m, cbt=\E[Z, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, dim=\E[2m, el1=\E[1K, home=\E[H,
+	ht=^I, ind=\ED, is2=\E[m, kcbt=\E[Z, kclr=\E[2J, kdch1=\E[P,
+	kdl1=\E[M, kent=\r, 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, kich1=\E[@, kil1=\E[L,
+	mc4=\E[?4i, mc5=\E[?5i, nel=\r\n,
+	pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\EM,
+	rmso=\E[m, rmul=\E[m, rs2=\Ec, sc=\E7,
+	sgr=\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%p4%|%t;7
+	    %;m,
+	sgr0=\E[m, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+	use=ansi+cpr, use=ansi+erase, use=ansi+idc, use=ansi+idl,
+	use=ansi+local, use=ecma+index,
+
 att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
 	lines#24, use=att630,
 
@@ -12076,7 +14602,7 @@
 #
 # 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)
+# 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)
@@ -12148,42 +14674,39 @@
 #
 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,
+	cols#80, 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,
+	bel=^G, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
 	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,
+	el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l,
+	fln=4\,4, fsl=\E8, home=\E[H, ich=\E[%p1%d@, ind=\ED,
+	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[ @, kcbt=\E[Z,
+	kclr=\E[2J, 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, kich1=\E[@,
+	kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H, nel=\EE,
+	pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t\s\s\sF%p1%1d\s\s\s\s\s
+	    \s\s\s\s\s\s%;%p2%s,
+	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, 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,
+	rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|,
+	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,
+	smxon=\E[53;0|, tsl=\E7\E[99;%i%p1%dx, use=ansi+arrows,
+	use=ansi+csr, use=ansi+erase, use=ansi+idl,
+	use=ansi+inittabs, use=ansi+local, use=ansi+rep,
+	use=ansi+sgrbold, use=decid+cpr, use=dec+pp,
+	use=att610+cvis0,
 
 # This entry was modified 3/13/90 by JWE.
 # fixes include additions of <enacs>, correcting <rep>, and modification
@@ -12202,52 +14725,49 @@
 	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,
+	bel=^G, cbt=\E[Z, cr=\r, cub1=^H, dch=\E[%p1%dP, dch1=\E[P,
+	dim=\E[2m, el1=\E[1K, enacs=\E(B\E)0,
+	flash=\E[?5h$<200>\E[?5l, fsl=\E8, ht=^I, ich=\E[%p1%d@,
+	ind=\ED,
 	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,
+	is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A,
+	kcbt=\E[Z, kclr=\E[2J, 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, kich1=\E[@,
+	kil1=\E[L, kind=\E[S, kri=\E[T, mc0=\E[?19h\E[0i, nel=\EE,
+	pfx=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}
+	    %<%tq\s\s\sSYS\s\s\s\s\sF%p1%:-2d\s\s%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,
+	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, 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%;,
+	rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l,
+	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,
+	smln=\E[?13l, smxon=\E[?21h, swidm=\E#6,
+	tsl=\E7\E[;%i%p1%dx, use=ansi+arrows, use=ansi+csr,
+	use=ansi+cup, use=ansi+erase, use=ansi+idl,
+	use=ansi+local, use=ansi+rep, use=ansi+sgrbold,
+	use=decid+cpr, use=dec+pp, use=att610+cvis,
+
+# "MGT" is "Multi-Tasking Graphics Terminal"
+att730-41|730MTG-41|AT&T 730-41 windowing terminal,
 	lines#41, use=att730,
-att730-24|730MTG-24|AT&T 730-24 windowing terminal Version,
+att730-24|730MTG-24|AT&T 730-24 windowing terminal,
 	lines#24, use=att730,
-att730r|730MTGr|AT&T 730 rev video windowing terminal Version,
+att730r|730MTGr|AT&T 730 rev video windowing terminal,
 	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,
+	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,
 	lines#41, use=att730r,
-att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version,
+att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal,
 	lines#24, use=att730r,
 
 # The following represents the screen layout along with the associated
@@ -12417,12 +14937,9 @@
 	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,
+	cnorm=\E[>l, cr=\r, cup=\E[%p1%d;%p2%dH, cvvis=\E[>h,
+	dch=\E[%p1%dP, dch1=\E[P, ed=\E[0J, el=\E[0K, el1=\E[2K,
+	home=\E[H, ht=^I, ind=\n,
 	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,
@@ -12433,13 +14950,14 @@
 	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,
+	use=ansi+cpr, use=ansi+idl, use=ansi+local,
 
 # 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,
+att505-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 ---------------------
@@ -12457,22 +14975,22 @@
 
 # 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,
+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,
+	bel=^G, cbt=\EI, clear=\E*$<75>, cr=\r, cub1=^H, cud1=\n,
 	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,
+	ich1=\EQ, il1=\EE$<5*>, ind=\n, 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,
+ampex175|Ampex d175,
 	am,
 	cols#80, lines#24,
-	bel=^G, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, clear=\E+, cr=\r, cub1=^H, cud1=\n, 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,
+	dl1=\ER, ed=\Ey, el=\Et, home=^^, ich1=\EQ, il1=\EE, ind=\n,
+	is2=\EX\EA\EF, kcub1=^H, kcud1=\n, 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
@@ -12481,11 +14999,11 @@
 # 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,
+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,
+ampex210|a210|Ampex a210,
 	OTbs, am, hs, xenl,
 	cols#80, it#8, lines#24, xmc#1,
 	cbt=\EI, clear=\E*, cub1=^H, cuf1=^L,
@@ -12501,15 +15019,15 @@
 # (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,
+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,
+	clear=\E[H\E[2J$<50>, cnorm=\E[?3l, cr=\r,
 	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,
+	el=\E[K$<3>, home=\E[H, ht=^I, ind=\n,
 	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~,
@@ -12518,9 +15036,9 @@
 	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,
+	cols#132,
+	cud1=\n, 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,
@@ -12535,7 +15053,7 @@
 	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,
+	cols#132,
 	is2=\E\034Eg\El, use=ampex232,
 
 #### Ann Arbor (aa)
@@ -12572,7 +15090,7 @@
 #	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
+#	Note that many of these settings are irrelevant to the terminfo
 #	and are just set to the default mode of the terminal as shipped
 #	by the factory.
 #
@@ -12666,21 +15184,22 @@
 #	unused
 #
 
-annarbor4080|aa4080|ann arbor 4080,
+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,
+	bel=^G, clear=\014$<2>, cr=\r, cub1=^H, cud1=\n, 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=\n, kbs=^^, kcub1=^H,
+	kcud1=\n, 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,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=^_, cuu1=^N,
+	home=^K, ht=^I, ind=\n, kbs=^H, kcub1=^H, kcud1=\n, ll=^O\0c,
+	nel=\r\n,
 
 # If you're using the GNU termcap library, add
 #	:cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp:
@@ -12691,82 +15210,83 @@
 #   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),
+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,
+	cols#80,
+	bel=^G, clear=\E[H\E[J$<156>, cr=\r, cub1=^H, cud1=^K,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P, ed=\E[J,
+	el=\E[K$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG,
+	ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il1=\E[L$<3>, ind=^K,
+	is1=\E[m\E7\E[H\E9\E8,
+	is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kcbt=\E[Z, kclr=\E[J,
 	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;%;%?%p7%t8;%;m,
+	kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i, mc4=^C,
+	mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8,
+	rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E
+	     \\,
+	rmm=\E[>52l, sc=\E7,
+	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;
+	    %;%?%p7%t8;%;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[3g,
-	vpa=\E[%p1%{1}%+%dd,
+	smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E
+	     \\,
+	smm=\E[>52h, vpa=\E[%p1%{1}%+%dd, use=ansi+arrows,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+	use=ansi+rep, use=ansi+sgrbold,
 
-aaa+rv|ann arbor ambassador in reverse video,
+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[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p2%|%p3%!%t7;%;%?%p7%t8;%;m\016,
+	sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p2%|%p3%!%|%t7
+	    ;%;%?%p7%t8;%;m\016,
 	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,
+# 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[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p3%|%!%t7;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
-	smacs=^O,
-aaa-18|ann arbor ambassador/18 lines,
+	csr=\E[%i%p1%d;%p2%dr, enacs=\E(B\E)0, rmacs=^O,
+	sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p3%|%!%t7;%;%?
+	    %p7%t8;%;m%?%p9%t\016%e\017%;,
+	smacs=^N,
+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,
+aaa-18-rv|Ann Arbor Ambassador/18 lines+reverse video,
 	use=aaa+rv, use=aaa-18,
-aaa-20|ann arbor ambassador/20 lines,
+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,
+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,
+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,
+aaa-24-rv|Ann Arbor Ambassador/24 lines+reverse video,
 	use=aaa+rv, use=aaa-24,
-aaa-26|ann arbor ambassador/26 lines,
+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,
+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,
+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,
@@ -12774,76 +15294,76 @@
 	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,
+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,
+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,
+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,
+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,
+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,
+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,
+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,
+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,
+aaa-36-rv|Ann Arbor Ambassador/36 lines+reverse video,
 	use=aaa+rv, use=aaa-36,
-aaa-40|ann arbor ambassador/40 lines,
+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,
+aaa-40-rv|Ann Arbor Ambassador/40 lines+reverse video,
 	use=aaa+rv, use=aaa-40,
-aaa-48|ann arbor ambassador/48 lines,
+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,
+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,
+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,
+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,
+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,
+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,
+aaa-60-rv|Ann Arbor Ambassador/60 lines+reverse video,
 	use=aaa+rv, use=aaa-60,
-aaa-db|ann arbor ambassador 30/destructive backspace,
+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,
+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,
+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,
@@ -12852,19 +15372,19 @@
 	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,
+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,
+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,
+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,
+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,
@@ -12872,7 +15392,7 @@
 	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,
+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,
@@ -12884,7 +15404,7 @@
 	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,
+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,
@@ -12892,12 +15412,13 @@
 	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,
+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[%?%p6%t1;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p1%!%t7;%;%?%p7%t8;%;m,
+	sgr=\E[%?%p6%t1;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p1%!%t
+	    7;%;%?%p7%t8;%;m,
 	sgr0=\E[7m, smso=\E[m, smul=\E[4;7m,
 
 #### Applied Digital Data Systems (adds)
@@ -12922,53 +15443,57 @@
 
 # Regent: lowest common denominator, works on all regents.
 # (regent: renamed ":bc:" to ":le:" -- esr)
-regent|Adds Regent Series,
+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,
+	bel=^G, clear=^L, cr=\r, cub1=^U, cud1=\n, cuf1=^F, cuu1=^Z,
+	home=\EY\s\s, ind=\n, 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,
+regent100|ADDS Regent 100,
 	xmc#1,
 	bel=^G,
-	cup=\013%p1%' '%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
+	cup=\013%p1%'\s'%+%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,
+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,
+regent25|ADDS Regent 25,
+	bel=^G, kcub1=^U, kcud1=\n, kcuf1=^F, kcuu1=^Z, khome=^A,
 	use=regent20,
-regent40|Adds Regent 40,
+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,
+	bel=^G, dl1=\El$<2*>, il1=\EM$<2*>, kf1=^B1\r, kf2=^B2\r,
+	kf3=^B3\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r,
+	kf8=^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+,
+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,
+# It uses a different code for mapping acs vs dim/blink.
+regent60|regent200|adds200|ADDS Regent 60,
+	acsc=jLkDl@mHnhq`tXuTv\\wPxd, dch1=\EE, ed=\Ek,
+	is2=\EV\EB, kbs=^H, kcbt=\EO, kdch1=\EE, kich1=\EF,
+	krmir=\EF, rmacs=\E2, rmir=\EF, rmso=\ER\E0@\EV, smacs=\E1,
+	smir=\EF, smso=\ER\E0P\EV, kF1=^B!\r, kF2=^B"\r, kF3=^B#\r,
+	kF4=^B$\r, kF5=^B%\r, kF6=^B&\r, kF7=^B'\r, kF8=^B(\r,
 	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,
+viewpoint|addsviewpoint|ADDS Viewpoint,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=^L, cnorm=\017\E0`, cr=^M, cub1=^H, cud1=^J,
+	bel=^G, clear=^L, cnorm=\017\E0`, cr=\r, cub1=^H, cud1=\n,
 	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,
+	ind=\n, is2=\017\E0`, kcub1=^U, kcud1=\n, 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,
+screwpoint|ADDS Viewpoint with ^O bug,
 	cvvis@, rmso@, rmul@, smso@, smul@, use=viewpoint,
 
 # From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
@@ -12980,7 +15505,7 @@
 #
 # Update by TD - 2004:
 # Adapted from
-#	http://www.cs.utk.edu/~shuford/terminal/adds_viewpoint_news.txt
+#	https://web.archive.org/web/19990922005103/http://www.cs.utk.edu/~shuford/terminal/adds_viewpoint_news.txt
 #
 # COMMANDS                        ASCII CODE
 #
@@ -12994,7 +15519,7 @@
 # Cursor forward                  FF
 # Cursor home                     RS
 # Cursor up                       VT
-# Cursor supress                  ETB
+# Cursor suppress                 ETB
 # Cursor enable                   CAN
 # Erase to end of line            ESC,T
 # Erase to end of page            ESC,Y
@@ -13026,18 +15551,20 @@
 # Underlined Half Intensity
 #    Blinking                     c	0143
 # Video suppress                  D	0104
-vp3a+|viewpoint3a+|adds viewpoint 3a+,
+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,
+	blink=\E0B\E), civis=^W, clear=\E*$<80>, cnorm=^X, cr=\r,
+	cub1=^H, cud1=\n, 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(%;,
+	ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=\n, invis=\E0D\E),
+	kbs=^H, kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, khome=^^,
+	nel=\r\n, 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,
+vp60|viewpoint60|addsvp60|ADDS Viewpoint60,
 	use=regent40,
 #
 # adds viewpoint 90 - from cornell
@@ -13050,27 +15577,27 @@
 #   -    <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,
+vp90|viewpoint90|ADDS Viewpoint 90,
 	OTbs, bw, msgr, xhp,
 	cols#80, lines#24,
-	clear=\EG\Ek, cub1=^H, cud1=^J, cuf1=^F,
+	clear=\EG\Ek, cub1=^H, cud1=\n, 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,
+	ich1=\EF \EF\025, ind=\n, kbs=^H, kcub1=^U, kcud1=\n,
 	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,
+	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,
+adds980|a980|ADDS Consul 980,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=\014$<1>\013@, cr=^M, cub1=^H, cud1=^J,
+	bel=^G, clear=\014$<1>\013@, cr=\r, cub1=^H, cud1=\n,
 	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,
+	dl1=\E\017$<13>, il1=\E\016$<13>, ind=\n, 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,
 
@@ -13087,24 +15614,26 @@
 cit80|cit-80|citoh 80,
 	OTbs, am,
 	cols#80, lines#24,
-	clear=\E[H\EJ, cr=^M, cub1=^H, cud1=\E[B, 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=,
+	clear=\E[H\EJ, cr=\r, cub1=^H, cup=\E[%i%p1%2d;%p2%2dH,
+	ed=\EJ, el=\EK, ff=^L, ind=\n, is2=\E>, kcub1=\EOD, kcud1=\EOB,
+	kcuf1=\EOC, kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
+	use=ansi+local1,
+
 # 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,
+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, cud1=\E[B,
-	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,
+	bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, 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,
+	smul=\E[4m, use=ansi+local1,
+
 # 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
@@ -13115,15 +15644,16 @@
 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,
-	cub1=\E[D, 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,
+	acsc=, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
+	cup=\E[%i%p1%2d;%p2%2dH, cvvis=\E[?1l\E[?4l\E[?7h,
+	dch1=\E[P, dl1=\E[M, 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,
+	use=ansi+erase, use=ansi+local1,
+
 # 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
@@ -13132,8 +15662,8 @@
 # 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
+# works is to set all the manually settable stuff to factory defaults
+# by pressing ^D in set-up mode.  Then increase the brightness 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
@@ -13141,37 +15671,35 @@
 # 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),
+cit101e-rv|C. Itoh 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,
+	cols#80, lines#24,
+	OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[1v,
+	cnorm=\E[0;3;4v, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
+	cvvis=\E[3;5v, flash=\E[?5l$<200/>\E[?5h, home=\E[H,
+	hpa=\E[%i%p1%dG, ind=\n,
+	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=^?, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rev=\E[7m,
+	ri=\EM, rmcup=, rmso=\E[m, rmul=\E[m, rs1=\Ec\E[?7h\E[>5g,
+	sgr0=\E[m, smcup=\E[>5g\E[?7h\E[?5h, smso=\E[7m,
+	smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u8=\E[?6c,
+	use=ansi+enq, use=ansi+csr, use=ansi+erase, use=ansi+idc,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+	use=ecma+index,
+
 cit101e-n|CIT-101e w/o am,
 	am@,
-	cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
+	cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=\n,
 	use=cit101e,
 cit101e-132|CIT-101e with 132 cols,
 	cols#132,
-	kbs=^H, kcub1=^H, kcud1=^J, use=cit101e,
+	kbs=^H, kcub1=^H, kcud1=\n, 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,
+	cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=\n,
 	use=cit101e,
 # CIE Terminals CIT-500 from BRL
 # The following SET-UP modes are assumed for normal operation:
@@ -13186,28 +15714,25 @@
 # (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,
+	OTkn#10, cols#80, lines#64, vt#3,
+	acsc=, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
+	cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
+	dch1=\E[P, ed=\EJ, el=\EK, home=\E[H, ind=\n, is2=\E<\E)0,
+	kcbt=\E[Z, 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, 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,
+	sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
+	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+	use=ansi+apparrows, use=ansi+csr, use=ansi+idl,
+	use=ansi+inittabs, use=ansi+local,
 
 # C. Itoh printers begin here
-citoh|ci8510|8510|c.itoh 8510a,
+citoh|ci8510|8510|C. Itoh 8510a,
 	cols#80, it#8,
 	bold=\E!, cub1@,
 	is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073.,
@@ -13218,16 +15743,18 @@
 citoh-elite|citoh in elite,
 	cols#96,
 	is1=\EE,
-	is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089.,
+	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.,
+	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,
+	cols#0x7fff,
 	is1=\EP, use=citoh,
 citoh-6lpi|citoh in 6 lines per inch mode,
 	is3=\EA, use=citoh,
@@ -13238,33 +15765,33 @@
 #### Control Data (cdc)
 #
 
-cdc456|cdc 456 terminal,
+cdc456|CDC 456 terminal,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, clear=^Y^X, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
 	cup=\E1%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dl1=\EJ, ed=^X,
-	el=^V, home=^Y, il1=\EL, ind=^J,
+	el=^V, home=^Y, il1=\EL, ind=\n,
 
 # 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,
+	cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=\n, kcuf1=^I,
 	kcuu1=^W, khome=^Y,
-cdc721ll|CDC Vikingll,
+cdc721ll|CDC Viking with long lines,
 	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,
+	cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=\n, 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,
+	bel=^G, clear=\030\E1\s\s, cr=\r, cub1=^H, cud1=\n, 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,
+	home=\E1\s\s, ind=\n, 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
@@ -13274,15 +15801,15 @@
 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,
+	bel=^G, clear=^Y^X, cr=\r, cub1=^H, cud1=\n, 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,
+	dl1=\EJ$<6*/>, ed=^X, el=^V, home=^Y, il1=\EL$<6*/>, ind=\n,
+	kbs=^H, kcub1=^H, kcud1=\n, 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,
+	rs1=^Y^X^B^C^O,
 #
 # CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL.
 #
@@ -13302,13 +15829,16 @@
 	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,
+	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\s=\036\022Z\036\011C1-`\s`
+	    !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,
+	sgr0=^O^U^]^^E^^^R\\, smir=, smkx=^^^Rk, smso=^^D, smul=^\,
+	tbc=^^^RY,
 
 #### Getronics
 #
@@ -13320,43 +15850,40 @@
 # 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
+# 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
+# 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
+# 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,
+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,
+	blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=\r,
+	csr=\E[%i%p1%d;%p2%dr, cup=\E[%i%p1%d;%p2%dH,
+	dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, ed=\E[J, el=\E[K,
+	flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+	ht=^I, ind=\n, 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,
+	ka1=\E[f, ka3=\EOQ, kb2=\EOP, kc1=\EOR, kc3=\EOS, kdch1=^?,
 	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,
+	lf9=A funcl0=A send, nel=\r\n, rev=\E[7m, rmacs=\E[3l,
+	rmam=\E[?7l, rmkx=\E>, rmso=\E[0;2m, rmul=\E[0m,
+	sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h, smkx=\E=,
+	smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
+	use=ansi+arrows, use=ansi+idc, use=ansi+idl,
+	use=ansi+local,
 
 #### Human Designed Systems (Concept)
 #
@@ -13406,27 +15933,29 @@
 #
 # 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,
+c108|concept108|c108-8p|concept108-8p|Concept 108 w/8 pages,
+	is3=\EU\E\sz"\Ev\001\177\s!p\E\s;"\E\sz\s\Ev\s\s\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,
+c108-4p|concept108-4p|Concept 108 w/4 pages,
+	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,
+	acsc=jEkTl\\mMqLxU, cnorm=\Ew, cr=\r,
+	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,
+	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,
+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,
+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,
+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,
@@ -13469,21 +15998,22 @@
 # \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,
+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=,
+	cub1=^H, cud1=\n, 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*>,
+	ht=\011$<8>, il1=\E\022$<3*>, ind=\n, 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,
+	is2=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo!\0\E\007!\E
+	    \010A@\s\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?,
+	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,
@@ -13492,17 +16022,17 @@
 	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,
+c100-rv|c100-rv-4p|concept100-rv|Concept 100 reverse video,
 	cnorm@, cvvis@, flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee,
 	smso=\EE, use=c100,
-oc100|oconcept|c100-1p|old 1 page concept 100,
+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
+# 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.
@@ -13630,7 +16160,7 @@
 #	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
+#	strike-through, 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.
@@ -13691,7 +16221,7 @@
 #		%p1%{30}%>		 ((key; 30) >;
 #		%p1%{54}%<		  (key; 54) <
 #		%A			 ) AND
-#		%O		  	) OR
+#		%O			) OR
 #	 [that is, "IF key < 24 OR (key > 30 AND key < 54)",]
 #		%t\E[		THEN	OUTPUT	\E[
 #		%p1%d			OUTPUT	(key) as decimal
@@ -13734,84 +16264,85 @@
 #	 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"
+#	 therefore needs mc5i: specified to say so) and "auxiliary 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, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, lm#0,
+	am, bw, eslok, hs, km, mir, msgr, xenl, xon, NQ,
+	cols#80, 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,
-	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%;,
+	blink=\E[0;5m, bold=\E[0;1m, civis=\E[6+{, cnorm=\E[+{,
+	cr=\r, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	dsl=\E[2!w\r\n\E[!w, el1=\E[1K, fsl=\E[!w, home=\E[H,
+	hpa=\E[%i%p1%dG, ich=\E[%p1%d@, 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$^?, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kcbt=\E$I,
+	kdch1=^?, kent=\r, 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, kind=\E[T, knp=\E[U, kpp=\E[V,
+	kri=\E[S, ll=\E[H\E[A, nel=\E[E, rev=\E[0;7m, ri=\EM,
+	rmacs=^O, rmir=\E[4l, rmso=\E[m\017, rmul=\E[m\017,
+	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, use=ansi+pp,
+	smul=\E[0;4m, tsl=\E[2!w\E[%i%p1%dG, vpa=\E[%i%p1%dd,
+	use=ansi+arrows, use=ansi+csr, use=ansi+erase,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+	use=ansi+pp,
 
 # <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,
+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,
+	cols#80, lines#24, lm#192,
+	acsc=, bel=^G, clear=\E[H\E[J$<38>, cnorm=\E[=119l, cr=\r,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, cvvis=\E[=119h,
+	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>, ich=\E[%p1%d@,
+	il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>, 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,
+	kdch1=\E\002\r, ked=\E\004\r, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+	kf4=\EOS, kich1=\E\001\r, kil1=\E\003\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;%;%?%p7%t8;%;%?%p8%t99;%;m%?%p5%t\E[1!{%;%?%p9%t\017%e\016%;$<1>,
+	prot=\E[99m, ri=\EM$<4>, rmacs=\016$<1>,
+	rmcup=\E[w\E2\r\n, rmkx=\E[!z\E[0;2u, rmso=\E[7!{,
+	rmul=\E[4!{,
+	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;
+	    %;%?%p7%t8;%;%?%p8%t99;%;m%?%p5%t\E[1!{%;%?%p9%t\017%e
+	    \016%;$<1>,
 	sgr0=\E[m\016$<1>, 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[3g,
-	vpa=\E[%p1%{1}%+%dd,
-avt-rv-ns|concept avt in reverse video mode/no status line,
+	smcup=\E[=4l\E[1;24w\E2\r, smkx=\E[1!z\E[0;3u,
+	vpa=\E[%p1%{1}%+%dd, use=ansi+arrows, use=ansi+csr,
+	use=ansi+idc1, use=ansi+inittabs, use=ansi+local,
+	use=ansi+rep, use=ansi+sgrbold,
+
+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,
+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,
+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,
 
@@ -13823,22 +16354,22 @@
 # 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,
+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,
+avt|avt-s|concept-avt|Concept AVT w/80 columns,
 	use=avt+s, use=avt-ns,
-avt-rv|avt-rv-s|avt reverse video w/sl,
+avt-rv|avt-rv-s|Concept 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,
+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,
+avt-w-rv|avt-w-rv-s|Concept 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,
 
@@ -13849,11 +16380,11 @@
 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,
+	bel=^G, clear=\EK, cr=\r, cub1=^H, cud1=\n, 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*>,
+	hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=\n, 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,
@@ -13937,7 +16468,7 @@
 	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=^^#,
+	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,
@@ -13949,7 +16480,7 @@
 	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=^^\:,
+	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=^^\,,
@@ -13967,12 +16498,7 @@
 #	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,
+	ncv#53, use=dgmode+color,
 
 dg+fixed|Fixed color info for DG D430C terminals in DG mode,
 	use=dgunix+fixed,
@@ -13986,36 +16512,54 @@
 	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,
+	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,
+	colors#16, ncv#53, pairs#0x100,
+	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,
+	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,
+	colors#16, pairs#0x100,
+	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%{255}%*%{1000}%/%02X%p3%{255}%*%{1000}%/%02X%p4%{255}%*%{1000}%/%02X%p5%{255}%*%{1000}%/%02X%p6%{255}%*%{1000}%/%02X%p7%{255}%*%{1000}%/%02X,
-	oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00,
+	initp=\036RG0%p1%02X%p2%{255}%*%{1000}%/%02X%p3%{255}%*
+	      %{1000}%/%02X%p4%{255}%*%{1000}%/%02X%p5%{255}%*
+	      %{1000}%/%02X%p6%{255}%*%{1000}%/%02X%p7%{255}%*
+	      %{1000}%/%02X,
+	oc=\036RG01A00FF00000000\036RG01B00000000FF00
+	   \036RG01C007F00000000\036RG01D000000007F00,
 	op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D,
 	scp=\036RG2%p1%02X,
 
@@ -14023,21 +16567,29 @@
 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%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{255}%*%{1000}%/%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=,
+	initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{255}
+	      %*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c
+	      %p3%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m
+	      %{48}%+%c%p4%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga
+	      %{16}%m%{48}%+%c%p5%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}
+	      %+%c%ga%{16}%m%{48}%+%c%p6%{255}%*%{1000}%/%Pa%ga%{16}
+	      %/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{255}%*%{1000}%/%Pa
+	      %ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
+	oc=\036RG01:00??00000000\036RG01;00000000??00\036RG01<007?00
+	   000000\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,
+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=^\,
+	bel=^G, blink=^N, clear=^L, cr=\r, cub1=^Y, cud1=^Z, cuf1=^X,
+	cup=\020%p2%c%p1%c, cuu1=^W, dim=^\, el=^K, ind=\n, is1=^R^C,
+	mc0=^Q, nel=\n, 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
@@ -14045,36 +16597,36 @@
 # notation that's "^P%r%+\200%+\200").  Those \200s are suspicious,
 # maybe they were originally nuls (which would fit).
 
-dg200|data general dasher 200,
+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,
+	bel=^G, clear=^L, cr=\r, cub1=^Y, cud1=^Z, cuf1=^X,
+	cup=\020%p2%c%p1%c, cuu1=^W, el=^K, home=^H, ind=\n,
 	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,
+	kf9=^^y, khome=^H, lf0=f10, nel=\n, 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, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
-	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,
+	OTnl=\E[B, clear=\E[2J, cup=\E[%i%p1%d;%p2%dH, 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, use=ansi+local1,
+
 # 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,
+	kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, lf0@, nel=\r^Z, rmcup=^L,
 	rmso=\036E$<0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200,
 
 # dg450 from Cornell (not official)
-dg450|dg6134|data general 6134,
+dg450|dg6134|Data General 6134,
 	cub1@, cuf1=^X, use=dg200,
 
 # Not official...
@@ -14089,19 +16641,19 @@
 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[00\:z, khome=\E[H, lf0=f1, lf1=f2,
-	lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10,
+	OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H,
+	cup=\E[%i%p1%2d;%p2%2dH, 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, 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[00:z, lf0=f1,
+	lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10,
 	mc0=\E[i, rev=\E[7m, ri=\E[T, rmso=\E[m, rmul=\E[05,
-	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m,
-	sgr0=\E(B\E[m, smso=\E[7m, smul=\E[4m, u6=\E[%d;%dR,
-	u7=\E[6n, u8=\E[5n, u9=\E[0n,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;
+	    %?%p1%p3%|%t;7%;m,
+	sgr0=\E(B\E[m, smso=\E[7m, smul=\E[4m, u8=\E[5n, u9=\E[0n,
+	use=ansi+arrows, use=ansi+cpr, use=ansi+local1,
+
 # 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.
@@ -14109,10 +16661,10 @@
 # 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,
+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,
+	OTbc=^Y, bel=^G, clear=^L, cnorm=^L, cr=\r, 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,
@@ -14123,14 +16675,14 @@
 # (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,
+	home=\020\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,
+	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=^O^U^]^^E, 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.
@@ -14142,14 +16694,14 @@
 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[%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;%?%p1%p3%|%p6%|%t7;%;m,
-	sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b,
+	bel=^G, blink=\E[5m, bold=\E[4;7m, clear=\E[2J, cr=\r,
+	cub1=^H, cup=\E[%i%p1%d;%p2%dH, dim=\E[2m, ed=\E[J,
+	el=\E[K, el1=\E[1K, home=\E[H, ind=\n, is1=\E[<0;<1;<4l,
+	ll=\E[H\E[A, nel=\n, rev=\E[7m, rmso=\E[m, rmul=\E[m,
+	sgr=\E[%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;%?%p1%p3%|
+	    %p6%|%t7;%;m,
+	sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=ansi+local,
+	use=dgkeys+7b,
 
 # DASHER D210 series terminals in DG mode.
 # Like D200, but adds clear to end-of-screen and needs XON/XOFF.
@@ -14204,18 +16756,20 @@
 	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,
+	el=^^PE, home=^^PF, hpa=\020%p1%c\177, ht=^I, ind=\n,
+	is1=^R^C^^P@1, is3=^^Fz0, 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=^^F?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%;,
+	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%t1
+	    1%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+,
+	is3=^^Fz2, use=d216+,
 
 d217-unix|Data General DASHER D217 in DG-UNIX mode,
 	use=d216-unix,
@@ -14254,7 +16808,7 @@
 #
 d220-dg|Data General DASHER D220 color terminal in DG mode,
 	mc5i@,
-	dl1@, home@, il1@, is2@, is3=\036FQ2, ll@, mc4@, mc5@, rs1@,
+	dl1@, home@, il1@, is2@, is3=^^FQ2, ll@, mc4@, mc5@, rs1@,
 	rs2=\036N\036FS0>\036O\036FS00, use=dgmode+color8,
 	use=d470c-dg,
 
@@ -14262,9 +16816,11 @@
 # 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,
+	blink=\E[5;50m, bold=\E[4;7;50m, dim=\E[2;50m, nel=\r\n,
 	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%;,
+	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}%;%PD50m\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,
 
@@ -14292,16 +16848,17 @@
 #
 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,
+	acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=^^FQ0, cnorm=^^FQ2,
+	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=^^FG^W, 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=^O^U^]^^E^^O, 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.
@@ -14342,16 +16899,17 @@
 #	\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,
+	cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, ich=\E[%p1%d@,
+	ich1=\E[@,
 	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,
+	is2=\E[3;2;2;1;1;1v\E(B\E)4\017, 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%t2;7%;%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p1%p5%|%t2;%;%?%p6%t4;7;%;m\E)%?%p9%t6\016%e4\017%;,
+	sgr=\E[%?%p1%t2;7%;%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p1%p5
+	    %|%t2;%;%?%p6%t4;7;%;m\E)%?%p9%t6\016%e4\017%;,
 	sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211,
+	use=ansi+idl, use=ansi+pp,
 
 # Initialization string 2 sets:
 #	\E[3;2;2;0;1;0v
@@ -14372,13 +16930,16 @@
 	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%;,
+	sgr=\E[%?%p1%p5%|%t2;%;%?%p2%p6%|%t4;%;%?%p1%p3%|%p6%|%t7;%;
+	    %?%p4%t5;%;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%;,
+	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%e0
+	    0%;,
 	sgr0=\017\025\035\036E\036FS00, smacs=\036FS11,
 	use=d400-dg,
 
@@ -14419,39 +16980,46 @@
 
 # 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,
+	civis=^^FQ0, clear=^^FE, cnorm=^^FQ5,
 	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,
+	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,
+	rs1=\036FA\036FT0, rs2=^^P@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,
+	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,
+	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,
+	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,
+	is3=^^Fz2,
+	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,
+	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%;,
+	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,
@@ -14520,12 +17088,14 @@
 #
 d470c|d470|Data General DASHER D470C,
 	is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
-	sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m\E)%?%p9%t6\016%e4\017%;,
+	sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t
+	    2;7;%;%?%p5%t2;%;m\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[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m%?%p9%t\016%e\017%;,
+	sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t
+	    2;7;%;%?%p5%t2;%;m%?%p9%t\016%e\017%;,
 	use=dg+color, use=d460-7b,
 
 # Initialization string 2 sets:
@@ -14539,7 +17109,8 @@
 #	- (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,
+	is2=\036FQ2\036FW\036F\^\036FX004?\036F]\036O
+	    \036FS00,
 	use=dgmode+color, use=d460-dg,
 
 # DASHER D555 terminal in ANSI mode.
@@ -14601,105 +17172,103 @@
 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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
+	cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ind=\n, 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, use=ansi+erase,
+
 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,
+dm1520|dm1521|Datamedia 1520,
 	OTbs, am, xenl,
 	cols#80, it#8, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, 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=^_,
+	home=^Y, ht=^I, ind=\n, kcub1=^H, kcud1=\n, 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,
+dm2500|datamedia2500|Datamedia 2500,
 	OTbs, OTnc,
 	cols#80, lines#24,
-	bel=^G, clear=^^^^\177, cub1=^H, cud1=^J, cuf1=^\,
+	bel=^G, clear=^^^^^?, cub1=^H, cud1=\n, 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,
+	il1=\020\n\030\035\030\035$<15>, ind=\n, 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,
+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,
+dm3025|Datamedia 3025a,
 	OTbs, km,
 	cols#80, it#8, lines#24,
-	bel=^G, clear=\EM$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+	bel=^G, clear=\EM$<2>, cr=\r, cub1=^H, cud1=\n, 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>,
+	home=\EH, ht=^I, il1=\EP\n\EQ$<130>, ind=\n, 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,
+dm3045|Datamedia 3045a,
+	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,
+	kf0=\Ey\r, kf9=\Ex\r, khome=\EH, pad=^?, rmdc@, rmir=\EP,
+	rmso@, smdc@, smso@, use=dm3025, use=hp+pfk+cr,
 # 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
+#	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
+#	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
+#	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
+#	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
+#	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,
+#	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, cuf1=\E[C, cup=%i\E[%p1%d;%p2%dH,
+	cuu1=\E[A, ed=\E[J, el=\E[K, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+	ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m\017$<2>,
+	smso=\E[7m, smul=\E[4m, use=vt100+4bsd,
 # 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
+# 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,
+dm80w|dmdt80w|dt80w|Datamedia dt80/1 in 132 char mode,
 	cols#132,
-	clear=\E[H\E[2J$<50/>, cud1=^J,
+	clear=\E[H\E[2J$<50/>, cud1=\n,
 	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
@@ -14707,12 +17276,12 @@
 	am, bw,
 	cols#80, lines#24,
 	acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
-	bel=^G, clear=^L, cr=^M,
+	bel=^G, clear=^L, cr=\r,
 	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,
+	is2=\E)0\E<\EP\E'0\E$2, kclr=^L, kcub1=^H, kcud1=\n,
 	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,
@@ -14725,16 +17294,16 @@
 # 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,
+excel62|excel64|Datamedia Excel 62,
+	dch1=\E[P, kbs=^H, kcub1=^H, kcud1=\n, 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,
+excel62-w|excel64-w|Datamedia Excel 62 in 132 char mode,
+	dch1=\E[P, kbs=^H, kcub1=^H, kcud1=\n, 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,
+excel62-rv|excel64-rv|Datamedia Excel 62 in reverse video mode,
+	dch1=\E[P, flash=\E[?5l\E[?5h, kbs=^H, kcub1=^H, kcud1=\n,
 	kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l,
 	smir=\E[4h, use=dt80,
 
@@ -14748,53 +17317,45 @@
 #	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.
+# 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,
+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,
+	bel=^G, clear=\E*, cr=\r, cub1=^H, cud1=\n, 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,
+	ind=\n, is2=\Eu\E3, kcub1=^H, kcud1=\n, 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,
+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,
+	bel=^G, cbt=\EI, clear=\E*, cr=\r, cub1=^H,
+	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, dch1=\EW, dl1=\ER,
+	ed=\EY, el=\ET\EG0\010\Eg0, ht=^I, il1=\EE, ind=\n,
+	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, use=ansi+local1,
+
 # (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,
+ts100|ts100-sp|Falco ts100-sp,
+	mir, xenl, xon,
+	vt#3,
+	cub1=^H, cud1=\n, cuf1=\E[C$<2>, cuu1=\E[A$<2>, dch1=\E~W,
+	dl1=\E~R, ich1=\E~Q, il1=\E~E, is1=\E~)\E~ea, kcub1=\EOD,
+	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rmam=\E[?7l,
+	rmkx=\E[?1l\E>,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, smam=\E[?7h,
+	smkx=\E[?1h\E=, use=ansi+csr, use=ansi+local,
+	use=decid+cpr, use=vt100+4bsd, use=vt100+fnkeys,
+
+ts100-ctxt|Falco ts-100 saving context,
 	rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100,
 
 #### Florida Computer Graphics
@@ -14810,11 +17371,11 @@
 	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,
+	blink=\ESTART\r\E61\,1\r\EEND\r, clear=\EZ$<10>, cr=\r,
+	cub1=^H, cud1=\n, 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=,
+	ind=\n, 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>,
@@ -14830,11 +17391,11 @@
 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,
+	bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, 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, use=ansi+local1,
 
 #### Liberty Electronics (Freedom)
 #
@@ -14848,21 +17409,21 @@
 # (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,
+f100|freedom|freedom100|Liberty 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,
+	acsc=, bel=^G, cbt=\EI, clear=^Z, cr=\r, cub1=^H, cud1=\n,
 	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>,
+	flash=\Eb$<200>\Ed, fsl=\r, home=^^, hpa=\E]%p1%{32}%+%c,
+	ht=^I, hts=\E1, il1=\EE$<8.5*>, ind=\n, 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,
+f100-rv|freedom-rv|Liberty 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
@@ -14896,12 +17457,12 @@
 	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,
+	clear=^Z, cnorm=\E.1, cr=\r,
 	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,
+	flash=\Eo$<200/>\En, fsl=\r, home=^^,
+	hpa=\E]%p1%{32}%+%c, hts=\E1, il1=\EE, ind=\n, 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,
@@ -14914,7 +17475,7 @@
 # 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,
+	flash=\Eb$<200/>\Ed, kcud1=\n, use=f200,
 f200vi-w|Liberty Freedom 200 - 132 cols for vi,
 	cols#132, use=f200vi,
 
@@ -14936,8 +17497,8 @@
 go140|graphon go-140,
 	OTbs,
 	cols#80, it#8, lines#24,
-	clear=\E[H\E[2J$<10/>, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+	clear=\E[H\E[2J$<10/>, cub1=^H,
+	cup=\E[%i%p1%2d;%p2%2dH, 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,
@@ -14945,7 +17506,8 @@
 	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,
+	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, use=ansi+local1,
+
 go140w|graphon go-140 in 132 column mode,
 	am,
 	cols#132,
@@ -14957,18 +17519,17 @@
 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,
+	blink=\E[5m, bold=\E[1m, cub1=^H, cud1=\n, 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,
+	home=\E[H, ht=^I, il1=\E[L, ind=\ED,
+	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kf1=\EOP,
+	kf2=\EOQ, kf3=\EOR, kf4=\EOS, 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,
+	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,
+	use=ansi+arrows, use=ansi+csr, use=ansi+erase,
 
 #### Harris (Beehive)
 #
@@ -15035,22 +17596,24 @@
 # NOTE WELL that the rear panel switch should be set to CR/LF,
 # not AEP!
 #
-sb1|beehive superbee,
+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,
+	cub1=^H, cud1=\n, 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,
+	il1=\EN\EL$<3>\EQ\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+	    \s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+	    \s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+	    \s\s\s\s\s\EP$<3>\s\EO\ER\EA$<3>,
+	ind=\n, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kdl1=\EM,
+	ked=\EJ, kel=\EK, kf0=\E2, 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.,
+	smso=\E_1, smul=\E_0, tbc=\E3, use=hp+pfk-cr,
+	use=vt52+arrows,
+sbi|superbee|Beehive SuperBee at Indiana U.,
 	xsb,
 	cr=\r$<1>, il1=\EN$<1>\EL$<9>\EQ \EP$<9> \EO\ER\EA,
 	use=sb1,
@@ -15064,21 +17627,20 @@
 # 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,
+superbee-xsb|Beehive SuperBee (improved),
 	am, da, db, xsb,
 	cols#80, it#8, lines#25,
-	clear=\EH\EJ$<3>, cnorm=^J, cr=\r$<1000>, cub1=^H, cud1=^J,
+	clear=\EH\EJ$<3>, cnorm=\n, cr=\r$<1000>, cub1=^H, cud1=\n,
 	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,
+	use=hp+pfk-cr, use=vt52+arrows,
 # This loses on lines > 80 chars long, use at your own risk
-superbeeic|super bee with insert char,
+superbeeic|SuperBee with insert char,
 	ich1=, rmir=\ER, smir=\EQ, use=superbee-xsb,
-sb2|sb3|fixed superbee,
+sb2|sb3|fixed SuperBee,
 	xsb@, use=superbee,
 
 #### Beehive Medical Electronics
@@ -15088,68 +17650,68 @@
 # 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".)
+# (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,
+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`,
+	kclr=\EE, 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`, use=vt52+arrows,
 # 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,
+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,
+	bel=^G, clear=^E^R, cr=\r, cub1=^H, cud1=\n, 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,
+	il1=\023$<160>, ind=\n, 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,
+	bel=^G, clear=\EE, cr=\r, cub1=\ED, cud1=\n, cuf1=\EC,
+	cuu1=\EA, ed=\EJ, el=\EK, home=\EH, ind=\n,
 # 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,
+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,
+	bel=^G, clear=\EE, cr=\r, cub1=^H, cud1=\n, 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@,
+	el=\EK, ht=^I, ind=\n, kf9=\Ex, khome=\EH, rmso=\Ed@,
 	rmul=\Ed@, sgr0=\Ed@, smso=\s\EdP, smul=\Ed`,
+	use=hp+pfk-cr, use=vt52+arrows,
 
 # 8675, 8686, and bee from Cyrus Rahman
 # (8675: changed k10, k11...k16 to k;, F1...F6 -- esr)
-ha8675|harris 8675,
+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,
+	kf16=\Eg, kf2=^P, kf3=^N, kf4=^V, kf5=\n, kf6=^T, kf7=^H, kf8=^?,
+	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,
+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"8F750
+	    21B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8
+	    FB5021B7283#,
+	kf1=^B\Ep^C, kf10=\Ej, kf11=\EW, kf12=^B\E{^C,
+	kf13=^B\E|^C, kf14=^B\E}^C, kf15=^B\E~^C, kf16=^B\E^?^C,
+	kf2=^B\Eq^C, kf3=^B\Er^C, kf4=^B\Es^C, kf5=\E3, kf6=\EI,
+	kf7=\ER, kf8=\EJ, kf9=\E(, use=bee,
 
 #### Hazeltine
 #
@@ -15180,40 +17742,40 @@
 # 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,
+hz1000|Hazeltine 1000,
 	OTbs,
 	cols#80, lines#12,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, home=^K,
-	ind=^J,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=\s, home=^K,
+	ind=\n,
 # From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
-hz1420|hazeltine 1420,
+hz1420|Hazeltine 1420,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=^J, cuf1=^P,
+	bel=^G, clear=\E^\, cr=\r, cub1=^H, cud1=\n, 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,
+	ed=\E^X, el=\E^O, ht=^N, il1=\E^Z, ind=\n, 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,
+hz1500|Hazeltine 1500,
 	OTbs, am, hz,
 	cols#80, lines#24,
-	bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
+	bel=^G, clear=~^\, cr=\r, 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,
+	il1=~\032$<40>, ind=\n, kcub1=^H, kcud1=\n, 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,
+hz1510|Hazeltine 1510,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, cuf1=^P,
+	bel=^G, clear=\E^\, cr=\r, 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,
+	el=\E^O, il1=\E^Z, ind=\n,
 # Hazeltine 1520
 # The following switch settings are assumed for normal operation:
 #	FULL		CR		U/L_CASE	ESCAPE
@@ -15223,36 +17785,36 @@
 hz1520|Hazeltine 1520,
 	OTbs, am, bw, msgr,
 	cols#80, lines#24,
-	bel=^G, bold=\E^_, clear=\E^\, cr=^M, cub1=^H, cud1=^J,
+	bel=^G, bold=\E^_, clear=\E^\, cr=\r, cub1=^H, cud1=\n,
 	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,
+	ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z, ind=\n, 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,
+hz1520-noesc|Hazeltine 1520 (no escape),
 	am, hz,
 	cols#80, lines#24,
-	bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
+	bel=^G, clear=~^\, cr=\r, 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=~^_,
+	home=~^R, il1=~^Z, ind=\n, 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,
+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,
+	cud1=\n, dl1=\EO, il1=\EE, lf1=blue, lf2=red, lf3=green,
+	use=vt52,
+hz1552-rv|Hazeltine 1552 reverse video,
+	cud1=\n, rmso=\ET, smso=\ES, use=hz1552,
 # Note: h2000 won't work well because of a clash between upper case and ~'s.
-hz2000|hazeltine 2000,
+hz2000|Hazeltine 2000,
 	OTbs, OTnc, am,
 	cols#74, lines#27,
-	bel=^G, clear=~\034$<6>, cub1=^H, cud1=^J,
+	bel=^G, clear=~\034$<6>, cub1=^H, cud1=\n,
 	cup=~\021%p2%c%p1%c, dl1=~\023$<6>, home=~^R,
-	il1=~\032$<6>, ind=^J, pad=\177,
+	il1=~\032$<6>, ind=\n, pad=^?,
 # 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
@@ -15264,15 +17826,15 @@
 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,
+	bel=^G, cbt=\E^T, clear=\E^\, cr=\r, 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,
+	ed=\E^W, el=\E^O, home=\E^R, il1=\E^Z, ind=\n, is2=\E?, kbs=^H,
+	kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, kf0=^B0\n,
+	kf1=^B1\n, kf2=^B2\n, kf3=^B3\n, kf4=^B4\n, kf5=^B5\n,
+	kf6=^B6\n, kf7=^B7\n, kf8=^B8\n, kf9=^B9\n, 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,
+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
@@ -15281,9 +17843,9 @@
 hmod1|Hazeltine Modular 1,
 	OTbs, am, hz,
 	cols#80, lines#24,
-	bel=^G, cbt=~^T, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
+	bel=^G, cbt=~^T, clear=~^\, cr=\r, 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,
+	ind=\n, 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?)
@@ -15292,38 +17854,39 @@
 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/>,
+	OTnl=\n, bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
+	clear=\E[;H\E[2J$<50/>, cr=\r, cub1=^H, cud1=\n,
+	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, 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,
+	rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
 	sgr0=\E[m$<2/>, smkx=\E[?1h\E=, smso=\E[7m$<2/>,
-	smul=\E[4m$<2/>,
+	smul=\E[4m$<2/>, use=ansi+csr,
 
 #### IBM
 #
 
 ibm327x|line mode IBM 3270 style,
 	gn,
-	clear=^M^J, el=^M, home=^M,
+	clear=\r\n, el=\r, home=\r,
 
 ibm3101|i3101|IBM 3101-10,
 	OTbs, am, xon,
 	cols#80, lines#24,
-	bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+	bel=^G, clear=\EK, cr=\r, cub1=^H, cud1=\n, 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,
+	el=\EI, home=\EH, hts=\E0, ind=\n, nel=\r\n, tbc=\EH,
+	use=vt52+arrows,
 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,
+	is2=\E S, rmacs=\E>B, rs2=\E S,
+	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, use=ibm3162,
 # From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
 # removed kend, knp, kpp -TD
 #
@@ -15335,14 +17898,14 @@
 ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
 	OTbs, am, mir, msgr, xon,
 	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,
+	acsc=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x
+	     \370,
+	bel=^G, blink=\E4D, bold=\E4H, clear=\EH\EJ, cr=\r, 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=\EP \010, il1=\EN, 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,
+	ich1=\EP \010, il1=\EN, ind=\n, invis=\E4P, kbs=^H, kcbt=\E2,
+	kclr=\EL\r, kctab=\E1, 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,
@@ -15350,8 +17913,11 @@
 	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<@%;,
+	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,
+	use=vt52+arrows,
 
 ibm3161-C|IBM 3161-C NLS terminal using cartridge,
 	rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161,
@@ -15378,31 +17944,28 @@
 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,
+	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
+	     \263,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+	dch1=\E[P, ech=\E[%p1%dX, home=\E[H, hpa=\E[%i%p1%dG,
+	ind=\E[S, is2=\Ec, kcbt=\E[Z, kclr=\E[144q, 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, kich1=\E[139q,
+	kil1=\E[140q, kind=\E[151q, knp=\E[154q, kpp=\E[150q,
+	kri=\E[155q, krmir=\E[4l, ri=\E[T, rmir=\E[4l, rs2=\Ec,
+	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
+	    %;%?%p7%t;8%;m,
+	smir=\E[4h, use=ansi+arrows, use=ansi+erase,
+	use=ansi+idl, use=ansi+local, use=ansi+sgrbold,
+	use=ecma+index,
 
 ibmaed|IBM Experimental display,
 	OTbs, am, eo, msgr,
@@ -15410,8 +17973,8 @@
 	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,
+	il1=\EN, kbs=^H, rmso=\E0, sgr0=\E0, smso=\E0,
+	use=vt52+arrows,
 ibm-apl|apl|IBM apl terminal simulator,
 	lines#25, use=dm1520,
 # (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
@@ -15426,34 +17989,37 @@
 	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,
+	ht=^I, kcub1=^H, kcud1=\n, 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%;,
+	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,
+	colors#16, pairs#0x100,
 	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,
+	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,
+	ncv@,
 	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,
+	ht=^I, kcub1=^H, kcud1=\n, 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,
+	use=ibmega,
 # ibmapa* and ibmmono entries come from ACIS 4.3 distribution
 rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display,
 	lines#32,
@@ -15470,62 +18036,52 @@
 	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,
+	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p7%t;8%;%?%p6%t;1
+	    2%;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,
+	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p7%t;8%;%?%p6%t;1
+	    2%;m,
 	sgr0=\E[0;10m, use=ibm5151,
-ibm6153-90|IBM 6153 Black & White display,
+ibm6153-90|IBM 6153 Black & White display (36-line),
 	cols#90, lines#36,
 	blink@, bold@, use=ibm5151,
-ibm6153-40|IBM 6153 Black & White display,
+ibm6153-40|IBM 6153 Black & White display (12-line),
 	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,
+	mir,
+	cub1=\E[D, is2=\Eb\E[m\017\E[?7h, kf0=\E[010q, rc=\E[u,
 	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,
+	smdc=\E[4h, 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,
+	bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
+	dl1=\E[M, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, ind=\n,
+	invis=\E[8m, 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, 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,
+	sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m,
+	use=ansi+arrows, use=ansi+erase, 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,
+	ind=\n,
 #       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
@@ -15533,16 +18089,13 @@
 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,
+	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
+	     \263,
+	bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	ech=\E[%p1%dX, ed=\E[2J, el=\E[0K, home=\E[H,
+	hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ind=\ED, is2=\Ec,
+	kcbt=\E[Z, kclr=\E[144q, 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,
@@ -15552,60 +18105,71 @@
 	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,
+	kf8=\E[008q, kf9=\E[009q, kich1=\E[139q, kil1=\E[140q,
+	kind=\E[151q, knp=\E[154q, kpp=\E[150q, kri=\E[155q,
+	krmir=\E[4l, ri=\EL, 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%;,
+	smacs=\E(0, smir=\E[4h, tbc=\E[3g, use=ansi+arrows,
+	use=ansi+idl, use=ansi+local, use=ansi+sgrbold,
+	use=ecma+index,
+
 # "Megapel" refers to the display adapter, which was used with the IBM RT
 # aka IBM 6150.
 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,
+	dsl=\Ej\EYA \EI\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,
+	dsl=\Ej\EYI \EI\Ek, ht=^I, kcub1=^H, kcud1=\n,
+	tsl=\Ej\EYI%+ \Eo, use=ibmega-c,
 
 #
 # AIX entries.  IBM ships these with AIX 3.2.5.
 # -- added rc, sc based on manpage -TD
+# -- added rmacs, smacs 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,
+	acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, rc=\E8, ri@,
+	rmacs=\E(B, s0ds=\E(B, s1ds=\E(0, sc=\E7,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7
+	    %t;8%;m%?%p9%t\E(0%e\E(B%;,
+	sgr0=\E[0;10m\E(B, smacs=\E(0, use=ibm6154,
+	use=aixterm+sl,
+aixterm+sl|status line for AIXterm,
 	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,
+	dsl=\E[?E, fsl=\E[?F, tsl=\E[?%p1%dT,
+
 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,
+	acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, ri@, s0ds=\E(B,
+	s1ds=\E(0,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7
+	    %t;8%;m%?%p9%t\E(0%e\E(B%;,
+	sgr0=\E[0;10m\E(B, use=ibm6153, use=aixterm+sl,
 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,
+	bold=\E[1m, ri@,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7
+	    %t;8%;m,
+	use=ibm6153, use=aixterm+sl,
 jaixterm|IBM Kanji Aixterm Terminal Eemulator,
-	acsc@, use=aixterm,
+	acsc@, rmacs@,
+	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7%t;8
+	    %;m,
+	sgr0=\E[m, smacs@, use=aixterm,
 jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator,
-	acsc@, use=aixterm-m,
+	acsc@, rmacs@,
+	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7%t;8
+	    %;m,
+	sgr0=\E[m, smacs@, use=aixterm-m,
 
 # This flavor is adapted from xterm, in turn from aixterm documentation -TD
 aixterm-16color|IBM Aixterm Terminal Emulator with 16 colors,
@@ -15618,29 +18182,36 @@
 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,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, 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,
+	ind=\n, 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,
+	bel=^G, clear=\E[2J, cr=\r, cub1=^H, cud1=\n, 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,
+	il1=\E[L, ind=\n, 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^\,
+addrinfo|cursor-addressable Infoton,
+	cup=\037%p1%c%p2%c, home=^H, use=infoton,
+
+# "VISTAR II/HZ Technical Users Manual" (May 1975).
+#
+infoton2|cursor-addressable Infoton VISTAR II,
+	cup=~\021%p2%c%p1%c, home=^H, use=infoton,
+
+# "VISTAR Technical User's Manual" (October 1972).
+#
 # (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
-infoton,
+infoton|Infoton VISTAR,
 	am,
 	cols#80, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, cuu1=^\,
-	ed=^K, ind=^J, ll=^H^\,
+	bel=^G, clear=^L, cr=\r, cub1=^Z, cud1=\n, cuf1=^Y, cuu1=^\,
+	ed=^K, ind=\n, ll=^H^\,
 
 # The ICL6402 was actually the Kokusai Display System 6402.
 # The 6404 was the KDS7372 (color version of the 6402).
@@ -15652,7 +18223,7 @@
 #ctrl-A          set SOM position at cursor position
 #ctrl-G          Bell
 #ctrl-H          Backspace
-#ctrl-I          Horiz tab
+#ctrl-I          Horizontal tab
 #ctrl-J          Linefeed
 #ctrl-K          Cursor up
 #ctrl-L          Cursor right
@@ -15896,7 +18467,7 @@
 # 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 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,
@@ -15907,15 +18478,16 @@
 	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,
+	cnorm=\E.3, cr=\r, csr=\E!%p1%{32}%+%c%p2%{32}%+%c,
+	cub1=^H, cud1=^V, 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%'8'%|%;%?%p2%t%'8'%|%;%?%p3%t%'4'%|%;%?%p4%t%'2'%|%;%?%p7%t%'1'%|%;%cZZ,
+	sgr=\E[%'0'%?%p1%t%'8'%|%;%?%p2%t%'8'%|%;%?%p3%t%'4'%|%;%?
+	    %p4%t%'2'%|%;%?%p7%t%'1'%|%;%cZZ,
 	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,
@@ -15933,21 +18505,21 @@
 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,
+	bel=^G, cbt=^Y, clear=\014$<132>, cr=\r, cub1=^H, cud1=\n,
 	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,
+	el=^Kp^R, ht=^I, il1=\020$<5.5*>, ind=\n, ip=$<5.5*>, kbs=^H,
+	kcub1=^_, kcud1=\n, 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%%,
+	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, 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,
+	bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=\r,
+	cup=\E[%i%p1%d;%p2%dH, 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,
@@ -15956,7 +18528,7 @@
 	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,
+	smul=\E[18 D, use=ansi+local1,
 
 #### Kimtron (abm, kt)
 #
@@ -15982,12 +18554,12 @@
 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,
+	cbt=\EI, clear=\E*, cub1=^H, cud1=\n, 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,
+	kcud1=\n, 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:
@@ -16015,19 +18587,22 @@
 	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,
+	fsl=\r, 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,
+	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,
+	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)
@@ -16051,17 +18626,17 @@
 	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,
+	civis=\E.0, clear=\E*, cnorm=\E.3, cr=\r, 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,
+	dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, fsl=\r,
+	home=^^, ht=^I, ich1=\EQ, il1=\EE, ind=\n,
+	is2=\EG0\E s\017\E~, kcbt=\EI, kclr=\E*, 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,
+	nel=\r\n, pulse=\EK, rmacs=\E%%, rmir=, rmso=\EG0, rmul=\EG0,
 	sgr0=\EG0, smacs=\E$, smir=, smso=\EG4, smul=\EG8, tsl=\Ef,
+	use=ansi+arrows,
 
 #### Microdata/MDIS
 #
@@ -16077,7 +18652,7 @@
 # =========================================
 #
 # Prism-1, Prism-2 and P99:
-#       Ancient Microdata and CMC terminals, vaguely like Adds Regent 25.
+#       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
@@ -16136,11 +18711,13 @@
 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,
+	bel=^G, clear=\014$<20>, cr=\r, cub1=^H, cud1=\n, 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,
+	hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc
+	    %=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
+	ind=\n, kbs=^H, khome=^A, vpa=\013%p1%{32}%+%c,
 
 # p4: Prism-4
 # -----------
@@ -16155,16 +18732,19 @@
 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,
+	bel=^G, blink=^CB, civis=\035\344, clear=\014$<20>,
+	cnorm=\035\342, cr=\r, cub1=^H, cud1=\n, 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,
+	fsl=\035\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=\n, 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,
+	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=\035\343,
 	vpa=\013%p1%{32}%+%c,
 
 # p5: Prism-5
@@ -16231,31 +18811,29 @@
 #  . Padding values (sets xon)
 # (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
 #
-prism9|p9|P9|MDC Prism-9 in ANSII mode,
+prism9|p9|P9|MDC Prism-9 in ANSI mode,
 	am, bw, hs, 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, 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,
+	cols#80, lines#24, vt#3, wsl#72,
+	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[<4l, clear=^L,
+	cnorm=\E[<4h, cr=\r, csr=\E[%i%p1%d;%p2%d%%v, cub1=^H,
+	cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	dsl=\E[%}\024, ech=\E[%p1%dX, ed=\E[J$<10>, el=\E[K,
+	fsl=^T, home=\E[H, hpa=\E[%i%p1%d`, ind=\n,
+	is2=\E[&p\E[<12l\E F, kclr=^L, 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~, nel=\r\n, 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\sF\E[3g\E[9;17;25;33;41;49;57;65;73
+	    \sN,
 	sc=\E[%y,
-	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;m%?%p8%t\E[32%%{%;%?%p9%t\016%e\017%;,
+	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;m%?
+	    %p8%t\E[32%%{%;%?%p9%t\016%e\017%;,
 	sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
+	tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd, use=ansi+arrows,
+	use=ansi+idl, use=ansi+inittabs, use=ansi+local,
 	use=ansi+pp,
 
 # p9-w: Prism-9 in 132 column mode
@@ -16276,8 +18854,8 @@
 # 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,
+	dch=\E[%p1%dP, dch1=\E[P, ich=\E[%p1%d@, ich1=\E[@,
+	use=ansi+idl, use=p8,
 
 # p9-8-w: Prism-9 in P8 and 132 column modes
 # ------------------------------------------
@@ -16285,8 +18863,8 @@
 # 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,
+	dch=\E[%p1%dP, dch1=\E[P, ich=\E[%p1%d@, ich1=\E[@,
+	use=ansi+idl, use=p8-w,
 
 # p12: Prism-12 in ANSI mode
 # ---------------------------
@@ -16322,12 +18900,12 @@
 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
+# p14: Prism-14 in ANSI mode
 # ---------------------------
 #
 # See p9 definition.
 #
-prism14|p14|P14|MDC Prism-14 in ANSII mode,
+prism14|p14|P14|MDC Prism-14 in ANSI mode,
 	use=p9,
 
 # p14-w: Prism-14 in 132 column mode
@@ -16363,15 +18941,15 @@
 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,
+	bel=^G, blink=^CB, clear=^L, cr=\r, cub1=^U, cud1=\n, 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,
+	ed=\EJ, el=\EK, home=^A, ind=\n, invis=^CH, kbs=^H, kcub1=^U,
+	kcud1=\n, 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,
+	lf3=F3, lf4=F4, lf5=F5, lf6=F6, lf7=F7, lf8=F8, lf9=F9, nel=\n\r,
 	pad=\0, rev=^CD, rmso=^C\s, rmul=^C\s, sgr0=^C\s, smso=^CE,
 	smul=^C0,
 
@@ -16389,18 +18967,17 @@
 act4|microterm|microterm act iv,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=\014$<12/>, cr=^M, cub1=^H, cud1=^K, cuf1=^X,
+	bel=^G, clear=\014$<12/>, cr=\r, 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,
+	il1=\001<2.3*/>, ind=\n, 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,
+	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,
@@ -16413,36 +18990,36 @@
 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,
+	bel=^G, clear=^]^C, cr=\r, cub1=^H, cud1=\n, 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,
+	il1=\001$<80>, ind=\n, 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),
+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,
+	bel=^G, clear=\EL, cr=\r, cub1=^H, cud1=\n, 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,
+	il1=\001$<20*>, ind=\n, ip=$<2>, is2=\E), kcub1=^H, kcud1=\n,
 	kcuf1=^L, kcuu1=^K, ri=\EI, rmir=^Z, rmso=\E;, rmul=\E7,
-	smir=\EE, smso=\E\:, smul=\E6,
+	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),
+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,
+	bel=^G, clear=\EL, cr=\r, cub1=^H, cud1=\n, 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,
+	il1=\001$<20*>, ind=\n, ip=$<2>, is2=^Y, ri=\EA, rmir=^Z,
+	rmso=\E9, rmul=\E5, smir=^O, smso=\E8, smul=\E4,
+	use=vt52+arrows,
 # (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,
+	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>,
@@ -16464,33 +19041,30 @@
 # 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,
+	clear=\032$<12/>, cr=\r, cub1=^H, cud1=\n, 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,
+	el=\EL$<2.1/>, ht=^I, il1=\EU$<46/>, ind=\n, is2=\E\,,
+	kbs=^H, kcub1=^H, kcud1=\n, kcuu1=^K, nel=\r\n,
 # 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,
+	bel=^G, cnorm=\E[0V\E8, cr=\r, cup=\E[%i%p1%d;%p2%dH,
+	cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P,
+	flash=\E[?5l$<200/>\E[?5h, fsl=\E[?5l\E[?5h, home=\E[H,
+	ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, 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,
+	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ll=\E[24;1H, nel=\EE,
+	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,
+	sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[g,
+	tsl=\E[25;1H, use=ansi+arrows, use=ansi+csr,
+	use=ansi+erase, use=ansi+idl, use=ansi+local,
 
 # Fri Aug  5 08:11:57 1983
 # This entry works for the ergo 4000 with the following setups:
@@ -16504,17 +19078,17 @@
 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*>,
+	bel=^G, clear=\E[H\E[2J$<80>, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, 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>,
+	smso=\E[7m$<20>, use=ansi+local1,
 
 #### NCR
 #
@@ -16530,26 +19104,26 @@
 # 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,
+# 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,
+	use=decid+cpr, 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,
+# DEC VT200/300 with color capabilities added.
+ncr260intwan|NCR Intecolor emulation of the 2900/260C with an ANSI keyboard (132 column),
 	colors#8, pairs#64,
 	op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	use=ncr260vt300wan,
+	use=decid+cpr, 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,
+# 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,
+# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
+# DEC VT200/300 with color capabilities added.
+ncr260intwpp|NCR Intecolor emulation of the 2900/260C with a PC+ keyboard (132 column),
 	colors#8, pairs#64,
 	op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
 	use=ncr260vt300wpp,
@@ -16561,200 +19135,223 @@
 # 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,
+ncr260vppp|NCR 2900/260 viewpoint,
+	am, bw, km, mc5i, mir, msgr, xon,
 	cols#80, lines#24, nlab#32, xmc#1,
-	acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+	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>,
+	dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, ed=\Ek$<2>,
+	el=\EK$<2>, 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,
+	kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=\n, 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,
+	kf20=^B$\r, kf21=^B%^M, kf22=^B&\r, kf23=^B'\r, kf24=^B(\r,
+	kf25=^B)\r, kf26=^B*\r, kf27=^B+\r, kf28=\002\,\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>,
+	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,
+	smso=\EG4, smul=\EG8, smxon=\Ec21, use=ncr260vp+sl,
+
+ncr260vp+sl|NCR 2900/260 viewpoint with status-line,
+	hs,
+	dsl=\E`c, fsl=\r, 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>,
+	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,
+
+ncr260vt100an|NCR 2900/260 VT100 with ANSI keyboard,
+	am, 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>,
+	clear=\E[2J\E[1;1H$<20>, cr=\r$<1>, 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>,
+	dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, ech=\E[%p1%dX,
+	ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>, 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>,
+	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%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
+	khlp=\E[28~, kich1=\E[2~, krdo=\E[29~, nel=\EE$<5>,
+	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>,
+	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%;$<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,
+	smkx=\E[?1h\E=, smso=\E[1;7m, tbc=\E[3g,
+	vpa=\E[%p1%dd$<40>, use=ansi+csr, use=ansi+sgrbold,
+	use=decid+cpr, use=vt220+vtedit, use=vt220+cvis,
+	use=vt220+keypad, use=ncr260vt+sl,
+
+ncr260vt+sl|NCR 2900/260 VT100 status line,
+	hs,
+	dsl=\E[0$~\E[1$~, fsl=\E[0$}, tsl=\E[2$~\E[1$},
+ncr260vt100wan|NCR 2900/260 VT100 wide mode ANSI keyboard,
 	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>,
+	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>,
+ncr260vt100pp|NCR 2900/260 VT100 with PC+ keyboard,
 	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,
+	kend=\E[5~, khome=\E[2~, kich1=\E[1~, kpp=\E[3~, lf1=pf1,
+	lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
+	use=ncr260vt100an,
+ncr260vt100wpp|NCR 2900/260 VT100 wide mode PC+  keyboard,
 	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>,
+	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,
+ncr260vt200an|NCR 2900/260 VT200 with ANSI keyboard,
+	am, 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>,
+	clear=\E[2J\E[1;1H$<20>, 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>,
+	dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, ech=\E[%p1%dX$<5>,
+	ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>, 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>,
+	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>,
+	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~, khlp=\E[28~, krdo=\E[29~, mc0=\E[i,
+	mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, 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%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
+	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%;$<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,
+	smir=\E[4h, smkx=\E[?1h\E=, tbc=\E[3g,
+	vpa=\E[%p1%dd$<40>, use=ansi+sgrbold, use=decid+cpr,
+	use=vt220+vtedit, use=vt220+cvis, use=vt220+keypad,
+	use=ncr260vt+sl,
+
+ncr260vt200wan|NCR 2900/260 VT200 wide mode ANSI keyboard,
 	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,
+	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+ keyboard,
 	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,
+	kend=\E[1~, khome=\E[H, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
+	rmkx=\E>, smkx=\E=, use=ncr260vt200an,
+ncr260vt200wpp|NCR 2900/260 VT200 wide mode PC+  keyboard,
 	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>,
+	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,
+ncr260vt300an|NCR 2900/260 VT300 with ANSI keyboard,
+	am, 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>,
+	clear=\E[2J\E[1;1H$<20>, 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>,
+	dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, ech=\E[%p1%dX$<5>,
+	ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>, 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>,
+	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>,
+	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~, khlp=\E[28~, krdo=\E[29~, mc0=\E[i,
+	mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, 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%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
+	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%;$<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,
+	smir=\E[4h, smkx=\E[?1h\E=, tbc=\E[3g,
+	vpa=\E[%p1%dd$<40>, use=ansi+sgrbold, use=decid+cpr,
+	use=vt220+vtedit, use=vt220+cvis, use=vt220+keypad,
+	use=ncr260vt+sl,
+
+ncr260vt300wan|NCR 2900/260 VT300 wide mode ANSI keyboard,
 	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>,
+	is2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1
+	    H$<200>,
+	rs2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1
+	    H$<200>,
 	use=ncr260vt300an,
-ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd,
+ncr260vt300pp|NCR 2900/260 VT300 with PC+ keyboard,
 	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,
+	kend=\E[1~, khome=\E[H, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
+	rmkx=\E>, smkx=\E=, use=ncr260vt300an,
+ncr260vt300wpp|NCR260VT300WPP|NCR 2900/260 VT300 wide mode PC+  keyboard,
 	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>,
+	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
@@ -16764,26 +19361,27 @@
 # '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).
+# The capability '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'
+#	    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,
+ncr260wy325pp|NCR 2900/260 Wyse 325,
+	am, bw, 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,
+	acsc=07a?h;j5k3l2m1n8q:t4u9v=w0x6, bel=^G, blink=\EG2,
+	cbt=\EI, civis=\E`0, clear=\E*$<10>, cnorm=\E`1, cr=\r,
 	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>,
+	cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, ed=\Ey$<5>,
+	el=\Et$<5>, 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,
+	kcub1=^H, kcud1=\n, 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,
@@ -16795,17 +19393,25 @@
 	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>,
+	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>,
+	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,
+	use=ncr260vp+sl,
+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>,
+	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).
@@ -16820,45 +19426,36 @@
 # 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
+#	    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,
+ncr260wy350pp|NCR 2900/260 Wyse 350,
+	colors#16, ncv#33, pairs#16,
+	acsc=07a?h;j5k3l2m1n8q:t4u9v=w0x6, cbt=\EI,
+	cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, ed=\Ey$<5>,
+	el=\Et$<5>, ht=^I, hts=\E1,
+	is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"\Ee4\Ex@\E`9
+	    \Ee7$<100>,
 	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>,
+	rmacs=\EH\003\EcB0,
+	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,
+	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, tbc=\E0,
+	use=ncr260vp+sl, use=ncr160wy50+pp,
+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>,
+	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).
@@ -16870,20 +19467,20 @@
 # 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,
+ncr260wy50+pp|NCR 2900/260 Wyse 50+,
+	am, bw, 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,
+	cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=\r,
 	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>,
+	cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>,
+	ed=\EY$<5>, el=\ET$<5>, 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,
+	kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=\n, 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,
@@ -16896,30 +19493,34 @@
 	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>,
+	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,
+	smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>,
+	use=ncr260vp+sl,
+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>,
+	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,
+ncr260wy60pp|NCR 2900/260 Wyse 60,
+	am, bw, km, mc5i, mir, msgr, xon,
 	cols#80, lines#24, nlab#32,
-	acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+	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>,
+	cr=\r, 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>,
+	cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, ed=\Ey$<5>,
+	el=\Et$<5>, 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,
+	kcbt=\EI$<15>, kcub1=^H, kcud1=\n, 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,
@@ -16931,84 +19532,88 @@
 	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>,
+	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,
+	use=ncr260vp+sl,
+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>,
+	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,
+ncr160vppp|NCR 2900/160 viewpoint,
 	use=ncr260vppp,
-ncr160vpwpp|NCR 2900_160 viewpoint wide mode,
+ncr160vpwpp|NCR 2900/160 viewpoint wide mode,
 	use=ncr260vpwpp,
-ncr160vt100an|NCR 2900_160 vt100 with ansi kybd,
+ncr160vt100an|NCR 2900/160 VT100 with ANSI keyboard,
 	use=ncr260vt100an,
-ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd,
+ncr160vt100pp|NCR 2900/160 VT100 with PC+  keyboard,
 	use=ncr260vt100pp,
-ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd,
+ncr160vt100wan|NCR 2900/160 VT100 wide mode ANSI keyboard,
 	use=ncr260vt100wan,
-ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+  kybd,
+ncr160vt100wpp|NCR 2900/160 VT100 wide mode PC+  keyboard,
 	use=ncr260vt100wpp,
-ncr160vt200an|NCR 2900_160 vt200 with ansi kybd,
+ncr160vt200an|NCR 2900/160 VT200 with ANSI keyboard,
 	use=ncr260vt200an,
-ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd,
+ncr160vt200pp|NCR 2900/160 VT200 with PC+  keyboard,
 	use=ncr260vt200pp,
-ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd,
+ncr160vt200wan|NCR 2900/160 VT200 wide mode ANSI keyboard,
 	use=ncr260vt200wan,
-ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+  kybd,
+ncr160vt200wpp|NCR 2900/160 VT200 wide mode PC+  keyboard,
 	use=ncr260vt200wpp,
-ncr160vt300an|NCR 2900_160 vt300 with ansi kybd,
+ncr160vt300an|NCR 2900/160 VT300 with ANSI keyboard,
 	use=ncr260vt300an,
-ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd,
+ncr160vt300pp|NCR 2900/160 VT300 with PC+ keyboard,
 	use=ncr260vt300pp,
-ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd,
+ncr160vt300wan|NCR 2900/160 VT300 wide mode ANSI keyboard,
 	use=ncr260vt300wan,
-ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+  kybd,
+ncr160vt300wpp|NCR 2900/160 VT300 wide mode PC+  keyboard,
 	use=ncr260vt300wpp,
-ncr160wy50+pp|NCR 2900_160 wyse 50+,
+ncr160wy50+pp|NCR 2900/160 Wyse 50+,
 	use=ncr260wy50+pp,
-ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode,
+ncr160wy50+wpp|NCR 2900/160 Wyse 50+ wide mode,
 	use=ncr260wy50+wpp,
-ncr160wy60pp|NCR 2900_160 wyse 60,
+ncr160wy60pp|NCR 2900/160 Wyse 60,
 	use=ncr260wy60pp,
-ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode,
+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,
+ncrvt100an|ncrvt100pp|NCR VT100 for the 2900 terminal,
+	hs, mc5i, mir, xon,
+	nlab#32,
 	acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~,
-	bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>,
-	clear=\E[2J\E[1;1H$<300>, cr=^M,
+	blink=\E[5m$<30>, bold=\E[1m$<30>,
+	clear=\E[2J\E[1;1H$<300>,
 	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,
+	cuf=\E[%p1%dC$<30>, cup=\E[%i%p1%d;%p2%dH$<100>,
+	cuu=\E[%p1%dA$<30>, 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>, 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>,
+	kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kent=\r, 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>,
+	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>,
+	sgr=%?%p9%t\016%e\017%;\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1
+	    %p3%|%t;7%;%?%p4%t;5%;m$<120>,
 	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>,
+	tsl=\E[>+1$<70>, use=decid+cpr, use=vt100+4bsd,
 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>,
+	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
@@ -17066,41 +19671,42 @@
 #		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,
+ncr7900i|ncr7900|n7900|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,
+	bel=^G, blink=\E0B, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=^F,
+	cup=\E1%p2%c%p1%c, cuu1=^Z, dim=\E0A, ed=\Ek, el=\EK, ind=\n,
+	is2=\E0@\010\E3\E4\E7, kcub1=^U, kcud1=\n, 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,
+	sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}
+	    %*%+%c,
 	sgr0=\E0@, smso=\E0Q, smul=\E0`,
-ncr7900iv|ncr 7900 model 4,
+ncr7900iv|NCR 7900 model 4,
 	am, bw, eslok, hs,
 	cols#80, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n,
 	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,
+	fsl=\Ek\Ey5, home=\013@\E^E00, il1=\E^N, ind=\n, kbs=^H,
+	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=\r\n,
+	tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo, use=vt52+arrows,
 # 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,
+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,
+	bel=^G, blink=\E0B, civis=^W, clear=^L, cnorm=^X, cr=\r,
+	cub1=^H, cud1=\n, 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,
+	hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c, ind=\n,
+	is2=\E4^O, kclr=^L, kcub1=^U, kcud1=\n, 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,
+	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,
 
@@ -17121,7 +19727,7 @@
 
 # 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
+# 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
@@ -17131,21 +19737,21 @@
 	am, bw, hs, mc5i, mir, msgr, ul, xon,
 	cols#80, lines#24, wsl#79,
 	acsc=jDkClBmAnIqKtMuLvOwNxJ, bel=^G, cbt=\EI, civis=\E.0,
-	clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
+	clear=\E;, cnorm=\E.1, cr=\r, 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,
+	flash=\Eb$<50/>\Ed, fsl=\r, home=^^, ht=^I, hts=\E1,
+	ich1=\EQ, il1=\EE, ind=\n, 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,
+	ked=\EY, kel=\ET, kent=\r, 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,
+	pfloc=\E|%{48}%p1%+%c2%p2%s\031,
+	pfx=\E|%{48}%p1%+%c1%p2%s\031, prot=\E), ri=\Ej,
 	rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
 	sgr=\EG0\E%%%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
 	sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
@@ -17166,8 +19772,9 @@
 	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,
+	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,
+	smso=\EG4, smul=\EG8, use=ndr9500,
 
 ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
 	lines#25, use=ndr9500-mc,
@@ -17185,53 +19792,53 @@
 # These are official terminfo entries from within Perkin-Elmer.
 #
 
-bantam|pe550|pe6100|perkin elmer 550,
+bantam|pe550|pe6100|Perkin Elmer 550,
 	OTbs,
 	cols#80, lines#24,
-	bel=^G, clear=\EK$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+	bel=^G, clear=\EK$<20>, cr=\r, cub1=^H, cud1=\n, 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,
+	el=\EI$<20>, home=\EH, ind=\n, 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,
+	bel=^G, clear=\EH\EJ$<132>, cr=\r, cub1=^H, cud1=\n,
 	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,
+	home=\EH, hts=\E1, ind=\n, 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,
+	bel=^G, clear=\EH\EJ$<132>, cr=\r, cub1=^H, cud1=\n,
 	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*>,
+	hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=\n, 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,
+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,
+	bel=^G, clear=\EK$<332>, cr=\r, 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,
+	ed=\EJ$<20*>, el=\EI$<10*>, home=\EH, hts=\E1, ind=\n,
 	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,
+#	rmul=\E!\0, smul=\E!\040,
 # which is probably wrong, it collides with kf0
-pe7000m|perkin elmer 7000 series monochrome monitor,
+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,
+	bel=^G, cbt=\E!Y, clear=\EK, cr=\r, cub1=\ED, cud1=\EB,
 	cuf1=\EC, cup=\ES%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
-	ed=\EJ, el=\EI, home=\EH, ind=^J,
+	ed=\EJ, el=\EI, home=\EH, ind=\n,
 	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,
+	kf10=\E!\n, 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,
+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,
 
@@ -17242,26 +19849,25 @@
 
 # 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.
+# 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,
+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=\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=\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,
+	cnorm=\ES, cr=\r, csr=\EU%p1%{32}%+%c%p2%{32}%+%c,
+	cub1=^H, cud1=\E[B, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+	dch1=\EM, dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=\r,
+	home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL,
+	il1=\EN, ind=\n, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H,
+	khome=\E[H, rc=\EX, rev=\E[7m,
+	rf=/usr/share/tabset/vt100, ri=\EI, rin=\E[%p1%dA,
+	rmacs=\Ed, rmam=\E[?7l,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\EW,
+	sgr0=\E[m, smacs=\EF, smam=\E[?7m, tsl=\E], uc=\EPB,
+	use=ansi+apparrows, use=ansi+local, use=ansi+sgrso,
+	use=ansi+sgrul,
 
 #### Tandem
 #
@@ -17282,9 +19888,9 @@
 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,
+	clear=\EI, cub1=^H, cud1=\n, 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,
+	ed=\EJ, el=\EK, fsl=\r, home=\EH, ind=\ES, ri=\ET, rmso=\E6\s,
 	rmul=\E6\s, sgr0=\E6\s, smso=\E6$, smul=\E60, tsl=\Eo,
 
 #### Tandy/Radio Shack
@@ -17295,52 +19901,50 @@
 dmterm|deskmate terminal,
 	am, bw,
 	cols#80, lines#24,
-	bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=^M, cub1=^H,
+	bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=\r, 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,
+	ich1=\EQ, il1=\EP, ind=\EX, invis@, 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,
+	use=adm+sgr, use=vt52+arrows,
 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,
+	acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, clear=\E[H\E[2J,
+	cr=\r, csr=\E[%p1%2d;%p2%2dr, cub1=^H,
+	cup=\010\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M, ed=\E[J,
+	el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, ind=\n,
+	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, use=ansi+local1, use=vt220+cvis,
 dt100w|dt-100w|Tandy DT-100 terminal (wide mode),
 	cols#132, use=dt100,
-dt110|Tandy DT-110 emulating ansi,
+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[B, cuf1=\E[C,
-	cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, 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,
+	acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, clear=\E[H\E[2J,
+	cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
+	cup=\010\E[%i%p1%d;%p2%dH, 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=\n, 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,
+	smacs=^N, smso=\E[7m, smul=\E[4m, use=ansi+local1,
+	use=vt220+cvis,
 pt210|TRS-80 PT-210 printing terminal,
 	hc, os,
 	cols#80,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
+	bel=^G, cr=\r, cud1=\n, ind=\n,
 
 #### Tektronix (tek)
 #
@@ -17350,25 +19954,25 @@
 # area" for interactive text.
 #
 
-tek|tek4012|tektronix 4012,
+tek|tek4012|Tektronix 4012,
 	OTbs, os,
 	cols#75, lines#35,
-	bel=^G, clear=\E\014$<1000>, cr=^M, cub1=^H, cud1=^J,
+	bel=^G, clear=\E\014$<1000>, cr=\r, cub1=^H, cud1=\n,
 	ff=\014$<1000>, is2=\E^O,
 # (tek4013: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4013|tektronix 4013,
+tek4013|Tektronix 4013,
 	acsc=, rmacs=\E^O, smacs=\E^N, use=tek4012,
-tek4014|tektronix 4014,
+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,
+tek4015|Tektronix 4015,
 	acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014,
-tek4014-sm|tektronix 4014 in small font,
+tek4014-sm|Tektronix 4014 in small font,
 	cols#121, lines#58,
-	is2=\E\017\E\:, use=tek4014,
+	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,
+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>
 #
@@ -17379,10 +19983,10 @@
 # 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,
+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,
+	OTnl=\n, bel=^G, clear=\E\014$<4/>, cr=\r, cub1=^H, cud1=\n,
 	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;
@@ -17400,27 +20004,30 @@
 # <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,
+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,
+	bel=^G, clear=\037era\r\n\n, cmdch=^_, cr=\r,
 	cub=\037lef %p1%d\r, cub1=^H, cud=\037dow %p1%d\r,
-	cud1=^F^J, cuf=\037rig %p1%d\r, cuf1=\037rig\r,
+	cud1=^F\n, 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,
+	ind=^F\n,
 	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,
+	rmkx=\037lea\sp2\r\037lea\sp4\r\037lea\sp6\r\037lea\sp8\r
+	     \037lea\sf5\r,
+	smkx=\037lea\sp4\s/h/\r\037lea\sp8\s/k/\r\037lea\sp6\s/\s/
+	     \r\037lea\sp2\s/j/\r\037lea\sf5\s/H/\r,
+tek4025-17|Tektronix 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,
+tek4025-17-ws|Tektronix 4025 17 line window in workspace,
+	is2=!com\s31\r\n\037sto\s9\s17\s25\s33\s41\s49\s57\s65\s73
+	    \r\037wor\s17\r\037mon\s17\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/!,
+tek4025-ex|tek4027-ex|Tektronix 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
@@ -17447,13 +20054,16 @@
 	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;,
+	cr=\r, cub=\035lef %p1%d;, cub1=^H, cud=\035dow %p1%d;,
+	cud1=\n, 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;,
+	il1=\013\035ili;, ind=\n, indn=\035dow %p1%d;,
+	rs2=!com\s29\035del\s0\035rss\st\035buf\035buf\sn\035cle
+	    \035dis\035dup\035ech\sr\035eol\035era\sg\035for\sn
+	    \035pad\s203\035pad\s209\035sno\sn\035sto\s9\s17\s25
+	    \s33\s41\s49\s57\s65\s73\035wor\s0;,
 	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.
@@ -17461,24 +20071,25 @@
 # 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,
+tek4025-cr|Tektronix 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,
+	clear=\037era;, cub1=^H, cud1=^F\n, cuf1=\037rig;,
+	cup=\037jum%i%p1%d\,%p2%d;, cuu1=^K, ht=^I, ind=^F\n,
 	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,
+tek4025ex|4025ex|4027ex|Tektronix 4025 w/!,
+	is2=\037com\s33\r\n!sto\s9\,17\,25\,33\,41\,49\,57\,65\,73
+	    \r,
 	rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
-tek4105|tektronix 4105,
+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, cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C,
+	clear=\E[2J\E[H, cr=\r, cub1=\E[1D, 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,
@@ -17490,25 +20101,14 @@
 	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,
+tek4105-30|Tektronix 4015 emulating 30 line VT100,
+	mir, xenl, xon,
+	lines#30, vt#3,
+	cub1=^H, cud1=\n, cuf1=\E[C$<2>, cuu1=\E[A$<2>, kcub1=\EOD,
+	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rmam=\E[?7l,
+	rmkx=\E[?1l\E>, rmso=\E[m$<2>, smam=\E[?7h,
+	smkx=\E[?1h\E=, use=ansi+csr, use=ansi+local,
+	use=vt100+4bsd, use=vt100+fnkeys,
 
 # Tektronix 4105 from BRL
 # The following setup modes are assumed for normal operation:
@@ -17531,29 +20131,28 @@
 # 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,
+tek4105a|Tektronix 4105 (BRL),
 	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,
+	OTkn#8, cols#80, lines#30, vt#3,
+	acsc=, bel=^G, blink=\E[5m, bold=\E[1m,
+	civis=\E%!0\ETD00\E%!1, cnorm=\E%!0\ETD10\E%!1, cr=\r,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
+	cvvis=\E%!0\ETD70\E%!1, dch=\E[%p1%dP, dch1=\E[P,
+	ech=\E[%p1%dX, home=\E[H, ind=\n, 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, rev=\E[7m, ri=\EM, 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>,
+	sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
+	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, use=ansi+csr,
+	use=ansi+erase, use=ansi+idl, use=ansi+inittabs,
+	use=ansi+local, use=ecma+index,
 
-#
 # Tektronix 4106/4107/4109 from BRL
 # The following setup modes are assumed for normal operation:
 #	CODE ansi		COLUMNMODE 80		CRLF no
@@ -17577,26 +20176,33 @@
 # "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,
+	cols#80, lines#32, vt#3,
+	acsc=, bel=^G, blink=\E[5m, bold=\E[1m,
+	civis=\E%!0\ETD00\E%!1, cnorm=\E%!0\ETD10\E%!1, cr=\r,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
+	cvvis=\E%!0\ETD70\E%!1, dch=\E[%p1%dP, dch1=\E[P,
+	ech=\E[%p1%dX, home=\E[H, ind=\n, 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, rev=\E[7m, ri=\EM, 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>,
+	sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
+	smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, use=ansi+csr,
+	use=ansi+erase, use=ansi+idl, use=ansi+inittabs,
+	use=ansi+local, use=ecma+index,
 
+# Refer to:
+# TEK Programmer's Reference
+# Part No. 070-4893-00
+# Product Group 18
+# 4107/4109 Computer Display Terminal
+# November 1983
+#
 # Tektronix 4107/4109 interpret 4 modes using "\E%!" followed by a code:
 # 0 selects Tek mode, i.e., \E%!0
 # 1 selects ANSI mode
@@ -17605,27 +20211,30 @@
 #
 # One odd thing about the description (which has been unchanged since the 90s)
 # is that the cursor addressing is using VT52 mode, and a few others use the
-# VT52's non-CSI versions of ANSI, e.g., \EJ.
-tek4107|tek4109|tektronix terminals 4107 4109,
+# VT52's non-CSI versions of ANSI, e.g., \EJ.  A possible explanation is that
+# the developer used Emacs, which misuses cvvis (this description sets VT52
+# mode in that capability).
+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,
+	bold=\E%!1\E[1m$<2>\E%!0, clear=\ELZ, cnorm=\E%!0, cr=\r,
+	cub1=^H, cud1=\n, 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,
+	dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=\n,
+	kbs=^H, 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;5%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t<0%;%?%p6%t;1%;m$<2>\E%%!0,
+	sgr=\E%%!1\E[%?%p1%t;7;5%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;
+	    %?%p5%t<0%;%?%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,
+	smul=\E%!1\E[4m$<2>\E%!0, use=vt52+arrows,
 # 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,
+	is1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8
+	    C\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,
 
@@ -17635,7 +20244,7 @@
 # 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
+# 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
@@ -17643,13 +20252,13 @@
 #
 # 'vi' works reasonably well with this entry.
 #
-otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series,
+otek4112|o4112-nd|otek4113|otek4114|Tektronix 4110 series (old),
 	am,
 	cols#80, lines#34,
-	bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ind=^J,
+	bel=^G, clear=\E^L, cr=\r, cub1=^H, cud1=\n, cuu1=^K, ind=\n,
 	rmcup=\EKA1\ELV1, smcup=\EKA0\ELV0\EMG0,
 # The 4112 with the ANSI compatibility enhancement
-tek4112|tek4114|tektronix 4110 series,
+tek4112|tek4114|Tektronix 4110 series,
 	OTbs, am, db,
 	cols#80, lines#34,
 	cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cud1=\E[B,
@@ -17657,82 +20266,80 @@
 	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,
+tek4112-nd|Tektronix 4112 not in dialog area,
 	OTns,
 	cuu1=^K, use=tek4112,
-tek4112-5|4112 in 5 line dialog area,
+tek4112-5|Tektronix 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,
+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,
+	clear=\ELZ, cub1=^H, cud1=\n, 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,
+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,
+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,
+	clear=\E^L, cub1=^H, cud1=\n, cuf1=^I, cuu1=^K,
 	cvvis=\ELZ\EKA0,
-	flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
+	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,
+otek4115|Tektronix 4115 (old),
 	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,
+	cnorm=\E%!0\ELBG8\E%!1\E[34;1H,
+	cup=\E[%i%p1%d;%p2%dH, 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,
+	smul=\E[4m, use=ansi+local1,
+tek4115|Tektronix 4115 entry with more ANSI capabilities (new),
 	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;%;%?%p7%t8;%;m,
-	sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	vpa=\E[%p1%{1}%+%dd,
-# The tek4125 emulates a vt100 incorrectly - the scrolling region
+	bel=^G, cr=\r, cub1=^H, cud1=\n, dch1=\E[P, ich=\E[%p1%d@,
+	ich1=\E[@, ind=\n, kcuu1=\E[A, rmam=\E[?7l, sgr0=\E[m,
+	smam=\E[?7h, use=ansi+arrows, use=ansi+cup,
+	use=ansi+erase, use=ansi+idl, use=ansi+local,
+	use=ansi+rep, use=ansi+rca, use=ansi+sgrbold,
+	use=ansi+tabs,
+
+# 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.
+# chokes on; and adds a lot of initialization for the Tektronix 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,
+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,
+	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+4bsd,
 
 # From: <jcoker@ucbic>
 # (tek4207: This was the termcap file's entry for the 4107/4207, but SCO
@@ -17743,11 +20350,12 @@
 	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,
+	cub1=^H, cud1=\n, 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,
+	is2=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8
+	    C\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,
@@ -17757,70 +20365,82 @@
 # 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,
+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,
+	blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cub1=^H, cud1=\n,
+	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,
 	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,
+	rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, 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,
+	smkx=\E[?1l, smso=\E[7m, smul=\E[4m, use=ansi+csr,
+
 # 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,
+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,
+	bel=^G, cbt=\E^I, clear=\E^E, cr=\r, cub1=^H, cud1=\n,
 	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,
+	dch1=\E^], dl1=\E\r, ed=\E^U, el=\E^T, ht=^I, ich1=\E^\,
+	il1=\E^L, ind=\n, 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
+# 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
+# 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,
+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,
+	clear=\E[2J\E[H, cr=\r, cup=\E[%i%p1%d;%p2%dH,
 	dch1=\E[1P, dim=\E[=1;<6m, dl=\E[%p1%dM, 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,
+	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}%<%tE
+	      1%e%p2%{875}%<%tE:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<
+	      %tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD
+	      4%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:%eF
+	      4%;\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,
+	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%;,
+	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,
+	smul=\E[4m, tbc=\E[1g, use=ansi+local,
 
 #### Teletype (tty)
 #
@@ -17836,11 +20456,11 @@
 tty33|tty35|model 33 or 35 teletype,
 	hc, os, xon,
 	cols#72,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
+	bel=^G, cr=\r, cud1=\n, ind=\n,
 tty37|model 37 teletype,
 	OTbs, hc, os, xon,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
-	ind=^J,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cuu1=\E7, hd=\E9, hu=\E8,
+	ind=\n,
 
 # 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
@@ -17853,7 +20473,7 @@
 # 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,
+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,
@@ -17865,7 +20485,7 @@
 tty43|model 43 teletype,
 	OTbs, am, hc, os, xon,
 	cols#132,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, ind=\n, kbs=^H,
 
 #### Tymshare
 #
@@ -17875,11 +20495,11 @@
 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,
+	acsc=j%k4l<m-q\,x5, bel=^G, clear=\EH\EJ, cr=\r, cub1=^H,
+	cud1=\n, cuf1=^I, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+	cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=\n, mc0=\E;3, mc4=\E;0,
 	mc5=\E;0, rc=^C, rmacs=^O, rs1=\E>, sc=^B, smacs=^N,
+	use=vt52+arrows,
 
 #### Volker-Craig (vc)
 #
@@ -17891,25 +20511,25 @@
 
 # Missing in vc303a and vc303 descriptions:  they scroll 2 lines at a time
 # every other linefeed.
-vc303|vc103|vc203|volker-craig 303,
+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,
+	bel=^G, clear=\014$<40>, cr=\r, cub1=^H, cud1=\n, cuf1=^I,
+	cuu1=^N, home=\013$<40>, kcub1=^H, kcud1=\n, kcuf1=^I,
 	kcuu1=^N, ll=\017$<1>W,
-vc303a|vc403a|volker-craig 303a,
+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,
+vc404|Volker-Craig 404,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=\030$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+	bel=^G, clear=\030$<40>, cr=\r, cub1=^H, cud1=\n, 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,
+	ed=\027$<40>, el=\026$<20>, home=\031$<40>, ind=\n,
+	kcub1=^H, kcud1=\n, kcuf1=^U, kcuu1=^Z,
+vc404-s|Volker-Craig 404 w/standout mode,
+	cud1=\n, 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.,
@@ -17918,12 +20538,12 @@
 	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,
+	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,
+vc415|Volker-Craig 415,
 	clear=^L, use=vc404,
 
 ######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS
@@ -17940,7 +20560,7 @@
 # Steve Jacobson 8/85
 pcplot|pc-plot terminal emulation program,
 	xenl@,
-	csr@, dl@, dl1@, il@, il1@, rc@, sc@, use=vt100,
+	csr@, dl@, dl1@, il@, il1@, rc@, sc@, use=vt100+4bsd,
 # 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
@@ -17950,36 +20570,35 @@
 kaypro|kaypro2|kaypro II,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=\032$<1/>, cr=^M, cud1=^J, cuf1=^L,
+	bel=^G, clear=\032$<1/>, cr=\r, cud1=\n, 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,
+	el=^X, home=^^, il1=\EE, ind=\n, kcud1=\n, 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=^\,
+	bel=^G, clear=^L^K, cr=\r^^, cub1=^], cud1=\n, 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%;%?%p7%t30;40%;m,
-	sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
+	     \263,
+	bel=^G, clear=\Ec, cr=\r, cup=\E[%i%p1%d;%p2%dH,
+	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, kcbt=^], kdch1=^?, kend=\E[Y, kf1=\240,
+	kf10=\251, kf2=\241, kf3=\242, kf4=\243, kf5=\244, kf6=\245,
+	kf7=\246, kf8=\247, kf9=\250, kich1=\E[^H, knp=\E[U,
+	kpp=\E[V, ll=\E[24;1H, nel=\r, rev=\E[7m, ri=\E[T\E[A,
+	rin=\E[%p1%dT\E[%p1%dA,
+	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
+	    %;%?%p7%t30;40%;m,
+	sgr0=\E[m, use=ansi+arrows, use=ansi+local,
+	use=ansi+sgrbold,
 
 #### Apple II
 #
@@ -17996,10 +20615,10 @@
 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=^\,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, 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,
+	home=^Y, ht=^I, ind=^W, kbs=^H, kclr=^X, kcub1=^H, kcud1=\n,
+	kcuf1=^U, kcuu1=^K, kdch1=^?, nel=\r^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
@@ -18012,48 +20631,46 @@
 apple2e|Apple //e,
 	bw, msgr,
 	cols#80, lines#24,
-	bel=^G, clear=\014$<100/>, cub1=^H, cud1=^J, cuu1=^_,
+	bel=^G, clear=\014$<100/>, cub1=^H, cud1=\n, 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,
+	is2=^R^N, kbs=^H, kcub1=^H, kcud1=\n, 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,
+	cup=\036%p2%{32}%+%c%p1%{32}%+%c, 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,
+	bel=\007$<500/>, clear=^L, cr=\r, cub1=^H, cud1=\n, 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,
+	home=^Y, ind=^W, is2=^R^N, kclr=^X, kcub1=^H, kcud1=\n,
 	kcuf1=^U, kcuu1=^K, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
 	smso=^O,
-appleII|apple ii plus,
+appleII|Apple II plus,
 	OTbs, am,
 	cols#80, it#8, lines#24,
-	clear=^L, cnorm=^TC2, cub1=^H, cud1=^J, cuf1=^\,
+	clear=^L, cnorm=^TC2, cub1=^H, cud1=\n, 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,
+	is2=^TT1^N, kcud1=\n, 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,
+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,
+	cbt=^R, clear=\014$<10*/>, cr=\r$<10*/>, cub1=^H, cud1=\n,
 	cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_,
 	ed=\013$<10*/>, el=\035$<10/>, home=^Y,
-apple-soroc|apple emulating soroc 120,
+apple-soroc|Apple emulating Soroc 120,
 	am,
 	cols#80, lines#24,
-	bel=^G, clear=\E*$<300>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, clear=\E*$<300>, cr=\r, cub1=^H, cud1=\n, 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,
+	home=^^, ind=\n, kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K,
 # From Peter Harrison, Computer Graphics Lab, San Francisco
 #   ucbvax!ucsfmis!harrison  .....uucp
 #   ucbvax!ucsfmis!harrison@BERKELEY   .......ARPA
@@ -18063,9 +20680,9 @@
 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=^\,
+	clear=\014$<300/>, cub1=^H, cud1=\n, 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,
+	home=^Y, ht=^I, kcub1=^H, kcud1=\n, 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
@@ -18098,9 +20715,8 @@
 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,
+	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
 #
@@ -18118,19 +20734,19 @@
 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,
+	bel=\007$<100/>, clear=\014$<16*/>, cr=\r, cub1=^H,
+	cud1=\n, 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=^_,
+	ind=\n, kbs=^H, kcub1=^H, kcud1=\n, 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, cub1=\ED, cud1=\EB, 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,
+	home=\EH, kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!,
+	kf5=\E", kf6=\E#, kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
+	use=vt52+arrows,
 #From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
 aepro|Apple II+ running ASCII Express Pro--vt52,
 	OTbs,
@@ -18139,10 +20755,10 @@
 	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,
+apple-vm80|ap-vm80|Apple with viewmax-80,
 	OTbs,
 	cols#80, lines#24,
-	clear=\014$<300/>, cuf1=^\\:,
+	clear=\014$<300/>, cuf1=^\:,
 	cup=\036%p1%{32}%+%c%p2%{32}%+%c$<100/>, cuu1=^_,
 	ed=\013$<300/>, el=^], home=\031$<200/>,
 
@@ -18150,17 +20766,17 @@
 #
 
 # (lisa: changed <cvvis> to <cnorm> -- esr)
-lisa|apple lisa console display (black on white),
+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,
+	cnorm=\E[5l, cub1=^H, cup=\E[%i%p1%d;%p2%dH, 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),
+	use=ansi+local1,
+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,
 
@@ -18170,29 +20786,28 @@
 # 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
+# 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,
+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,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K,
+	home=\E[H, ht=^I, hts=\EH, ind=\n, 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,
+	kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, 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,
+	sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+	tbc=\E[3g, use=ansi+csr, use=ansi+local,
+
 # 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,
+	kbs=^H, kcub1=^H, kcud1=\n, 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.
@@ -18204,7 +20819,7 @@
 	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,
+mac-w|macterminal-w|Apple Macintosh with MacTerminal in 132 column mode,
 	cols#132, use=mac,
 
 #### Radio Shack/Tandy
@@ -18216,19 +20831,19 @@
 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,
+	bel=^G, blink=^_", bold=\E:^A, civis=^E\s,
+	clear=\014$<5*/>, cnorm=^E!, cub1=^H, cud1=\n, 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,
+	dl1=^_1, ed=^K, el=^D, home=^A, il1=^_0, kcub1=^H, kcud1=\n,
 	kcuf1=^I, kcuu1=^L, rev=^_\s, rmso=^_!, rmul=^_#,
-	sgr0=\037!\E\:\0, smso=^_\s, smul=^_",
+	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=^],
+	bel=^G, clear=^L, cr=\r, 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=^\,
+	el=^A, home=^F, ht=^I, il1=^D, ind=\n, kbs=^H, kcub1=^\,
 	kcud1=^_, kcuf1=^], kcuu1=^^, rmso=^O, sgr0=^O, smso=^N,
 # From: Kevin Braunsdorf <ksb@mentor.cc.purdue.edu>
 # (This had extension capabilities
@@ -18239,14 +20854,14 @@
 	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,
+	cnorm=\ERC, cr=\r, 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,
+	ind=\n, kbs=^H, 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,
+	use=vt52+arrows,
 
 #### Commodore Business Machines
 #
@@ -18279,18 +20894,16 @@
 	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,
+	civis=\E[0 p, cnorm=\E[ p, cup=\E[%i%p1%d;%p2%dH,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, home=\E[H,
+	ich=\E[%p1%d@, ich1=\E[@, ind=\E[S, 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, rmacs=^O, rmso=\E[m,
+	rmul=\E[m, rs1=\Ec, sgr0=\E[m, smacs=^N, smso=\E[7m,
+	smul=\E[4m, use=ansi+erase, use=ansi+idl, use=ansi+local,
+	use=ecma+index,
 
 # From: Hans Verkuil <hans@wyst.hobby.nl>, 4 Dec 1995
 # (amiga: added empty <acsc> to suppress a warning.
@@ -18300,7 +20913,7 @@
 	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,
+	civis=\2330 p, clear=\233H\233J, cnorm=\233 p, cr=\r,
 	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,
@@ -18308,7 +20921,7 @@
 	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~,
+	kdch1=^?, 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,
@@ -18331,58 +20944,55 @@
 # 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,
+	btns#1, colors#16, cols#80, lines#24, lm#0, ncv#0, pairs#0x100,
 	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,
+	cnorm=\E[p\E[>?6l, cr=\r, csr=\E[%i%p1%d;%p2%dr,
+	cup=\E[%i%p1%d;%p2%dH, cvvis=\E[>?6h, dch=\E[%p1%dP,
+	dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[1M, flash=^G,
 	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
-	indn=\E[%p1%dS, invis=\E8m,
+	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~,
+	kcbt=\233Z, kdch1=^?, 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,
+	rev=\E[7m, ri=\EM, 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,
+	smso=\E[1m, smul=\E[4m, use=ansi+arrows, use=ansi+erase,
+	use=ansi+local, use=ecma+index,
 
 # MorphOS on Genesi Pegasos
 # By Pavel Fedin <sonic_amiga@rambler.ru>
-morphos,
+morphos|MorphOS on Genesi Pegasos,
 	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
+#	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
+#	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.
+#	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,
+	OTbc=^H, OTnl=\r, clear=\E\006$<10/>, cr=\r, cud1=\n,
 	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=,
+	kcub1=^B, kcud1=\n, kcuf1=^F, kcuu1=^P, khome=\E^E, rmir=,
 	smir=,
 
 #### North Star
@@ -18409,21 +21019,21 @@
 # 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,
+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,
+	bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, 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,
+	dl1=\ER, el=\ET, ich1=\EQ, il1=\EE, ind=\n, kcub1=^H, kcud1=\n,
 	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,
+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,
+	clear=^Z, cub1=\010$<4>, cud1=\n, 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),
+	kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, rmir=, rmso=\E),
 	rmul=\Em, smir=\EQ, smso=\E(, smul=\El,
 #
 # Osborne Executive definition from BRL
@@ -18432,10 +21042,10 @@
 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,
+	OTnl=\n, bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, 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,
+	is2=\Eq\Ek\Em\EA\Ex0, kbs=^H, kcub1=^H, kcud1=\n, 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,
@@ -18456,10 +21066,13 @@
 #
 
 # See
-#	http://www.minix3.org/manpages/html4/console.html
+#	https://web.archive.org/web/20120703021949/http://www.minix3.org/manpages/html4/console.html
 minix|minix console (v3),
-	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,
-	kdch1=\177, kend=\E[Y, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~,
+	NQ,
+	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,
+	kdch1=^?, kend=\E[Y, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~,
 	kf11=\E[11;2~, kf12=\E[12;2~, kf13=\E[13;2~,
 	kf14=\E[14;2~, kf15=\E[15;2~, kf16=\E[17;2~,
 	kf17=\E[18;2~, kf18=\E[19;2~, kf19=\E[20;2~, kf2=\E[12~,
@@ -18478,37 +21091,24 @@
 	use=ecma+color, use=minix-1.7,
 
 # See
-#	http://www.minix-vmd.org/pub/Minix-vmd/1.7.0/wwwman/man4/console.4.html
-# This is the entry provided with minix 1.7.4, with bogus :ri: removed.
+#	https://web.archive.org/web/20030914201935/http://www.minix-vmd.org/pub/Minix-vmd/1.7.0/wwwman/man4/console.4.html
+# This matches the entry provided with minix 1.7.4, with bogus :ri: removed.
 minix-1.7|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, el1=\E[2K,
-	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,
+	am, xenl, xon@,
+	el1=\E[2K, is2=\E[0m, lf0=End, lf1=PgUp, lf2=PgDn, lf3=Num +,
+	lf4=Num -, lf5=Num 5, use=minix-1.5,
 # Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil>
 minix-old|minix-1.5|minix console (v1.5),
-	xon,
+	xon, NQ,
 	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,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=\r,
+	cub1=^H, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	ed=\E[0J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+	ich1=\E[@, ind=\n, kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T,
+	kf4=\E[S, kf5=\E[G, nel=\r\n, rev=\E[7m, ri=\EM, rmso=\E[0m,
 	rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
+	use=ansi+arrows, use=ansi+idl, use=ansi+local,
+
 # 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,
@@ -18524,23 +21124,23 @@
 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,
+	bel=^G, clear=\EE, cr=\r, 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,
+	ed=\EJ, el=\EK, home=\EH, ht=^I, ind=\n, kbs=^H, khome=\EH,
+	ri=\EI, rmir=\EO, rmso=\Eq, sgr0=\Eq, smir=\E@, smso=\Ep,
+	use=vt52+arrows,
 
 # According to the Venix 1.1 manual, the PC console is similar
-# to a DEC vt52.  Differences seem to be (1) arrow keys send
+# 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,
+	bel=^G, clear=\EH\EJ, cr=\r, cub1=^H, cud1=\n, 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,
+	ed=\EJ, el=\EK, ht=^I, il1=\EL, ind=\n, kbs=^H, kcub1=\EK,
 	kcud1=\EP, kcuf1=\EM, kcuu1=\EH, khome=\EG, ri=\EI,
 
 #### Miscellaneous microcomputer consoles
@@ -18556,20 +21156,21 @@
 # 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,
+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,
+	cr=\r, cub1=^H, cud1=\n, 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,
+	kf7=\EOV, kf8=\EOW, nel=\r\ED, rev=\E[7m, ri=\E[T,
+	rmir=\E[4l, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smir=\E[4h,
+	smso=\E[7m, smul=\E[4m, use=ansi+csr,
+
 # basis from Peter Harrison, Computer Graphics Lab, San Francisco
 #   ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA
 #
@@ -18588,8 +21189,7 @@
 # (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,
+	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,
@@ -18601,9 +21201,9 @@
 xerox820|x820|Xerox 820,
 	am,
 	cols#80, lines#24,
-	bel=^G, clear=\032$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, clear=\032$<1>, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
 	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^Q, el=^X,
-	home=^^, ind=^J,
+	home=^^, ind=\n,
 
 #### Videotex and teletext
 #
@@ -18620,62 +21220,456 @@
 	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,
+	blink=\E[5m, bold=\E[1m, civis=\E[<1h, cnorm=\E[<1l, cr=\r,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	flash=^G, fsl=\n, home=\E[H, ht=^I, ind=\n, ip=$<7/>,
+	is1=\E:1}\Ec\E[?4l\E[12h, is2=\Ec\E[12h\E)0,
+	is3=\E[?3l, kclr=\E[2J, 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,
+	kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, kich1=\E[4h,
+	kil1=\E[4l, knp=\EOn, kpp=\EOR, ll=\E[24;80H, mc0=\E[i,
+	nel=\r\n, 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, sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m,
+	smul=\E[4m, tsl=^_@A, use=ansi+arrows, use=ansi+cpr,
+	use=ansi+csr, use=ansi+erase, use=ansi+idl,
+	use=ansi+local,
 
-# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998
+# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998, updated 19 Sep 2016
 #
 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%;,
+	am, bw, eslok, hs, hz, .msgr, G0,
+	colors#8, cols#40, lines#24, pairs#8, .ncv#16,
+	acsc=j+k+l+m+n+o~q`s_t+u+v+w+x|, bel=^G, blink=\EH,
+	civis=^T, clear=^L, cnorm=^Q, cr=\r, cub1=^H, cud1=\n, cuf1=^I,
+	cup=\037%p1%'A'%+%c%p2%'A'%+%c, cuu1=^K,
+	dsl=\037@A\030\n, el=^X,
+	flash=\037@A\EW \177\022\177\022P\r\030\n, fsl=\n,
+	home=^^, ind=\n, is2=\E;`ZQ\E:iC\E:iE\021, kbs=^SG,
+	kcan=^SE, kend=^SI, kent=^SA, khlp=^SD, knp=^SH, kpp=^SB,
+	krfr=^SC, nel=\r\n, op=\EG, rep=%p1%c\022%p2%'?'%+%c,
+	rev=\E], ri=^K, rmso=\E\\,
+	rs2=\024\037XA\030\n\030\n\030\n\030\n\030\n\030\n\030\n
+	    \030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n
+	    \030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\014
+	    \021,
+	setab=\0, setaf=\E%p1%'@'%+%c, setb=\0,
+	setf=\E%?%p1%{1}%=%tD%e%p1%{3}%=%tF%e%p1%{4}%=%tA%e%p1%{6}%=
+	     %tC%e%p1%'@'%+%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.
+	sgr0=\EI\E\\\EG, smso=\E], tsl=\037@%p1%'A'%+%c,
+	u6=\037%c%'A'%-%c%'A'%-, u7=\Ea,
+	u8=\001%[BCDEFGHIJKLbcresdfg0123456789]\004, u9=\E9{,
+	.dim=\EB, .hup=\E9g, .rs2=^L, .u8=^ABr4^D,
+	C0=`>a9f!j%k4l<m-n=p#q\,rpt=u5v-w<x5yvzy|l~$, E0=^O,
+	S0=^N,
+	XC=B\031%\,\241!\,\242"\,\243#\,\244$\,\245%\,\246&\,\247'\,
+	   \250(\,\253+\,\257P\,\2600\,\2611\,\2622\,\2633\,\2655\,
+	   \2677\,\272k\,\273;\,\274<\,\275=\,\276>\,\277?\,\300AA\,
+	   \301BA\,\302CA\,\303DA\,\304HA\,\305JA\,\306a\,\307KC\,
+	   \310AE\,\311BE\,\312CE\,\313HE\,\314AI\,\315BI\,\316CI\,
+	   \317HI\,\320b\,\321DN\,\322AO\,\323BO\,\324CO\,\325DO\,
+	   \326HO\,\3274\,\330i\,\331AU\,\332BU\,\333CU\,\334HU\,
+	   \335BY\,\336l\,\337{\,\340Aa\,\341Ba\,\342Ca\,\343Da\,
+	   \344Ha\,\345Ja\,\346q\,\347Kc\,\350Ae\,\351Be\,\352Ce\,
+	   \353He\,\354Ai\,\355Bi\,\356Ci\,\357Hi\,\360r\,\361Dn\,
+	   \362Ao\,\363Bo\,\364Co\,\365Do\,\366Ho\,\3678\,\370y\,
+	   \371Au\,\372Bu\,\373Cu\,\374Hu\,\375By\,\376|\,\377Hy\,
+	   \252c\,\,0\017\031%\016\,}#\,f0\,g1\,\\\,\\\,\,+.\,./\,0
+	   \177\,--,
 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).
+	cub1=^H, cud1=\n, cuf1=^I, cuu1=^K, dch=\E[%p1%dP, dch1=\E[P,
+	ed=\E[J, el1=\E[1K, is1=\E;iYA\E;jYC, kbs@, kcan@,
+	kclr=\E[2J, kctab=^I, kdch1=\E[P, kdl1=\E[M, kent@, kf1=^SD,
+	kf10=^Y0, kf11=^Y1, kf12=^Y/, kf13=^Y{1, kf14=^Y{2,
+	kf15=^Y{3, kf16=^Y{4, kf17=^Y{5, kf18=^Y{6, kf19=^Y{7,
+	kf2=^SC, kf20=^Y{8, kf21=^Y{9, kf22=^Y{0, kf23=^Y{*,
+	kf24=^Y{#, kf3=^SF, kf4=^SA, kf5=^SG, kf6=^SE, kf7=^Y8,
+	kf8=^Y\,, kf9=^Y., khlp@, kich1=\E[4h, kil1=\E[L, krfr@,
+	lf1=Guide, lf2=Repetition, lf3=Sommaire, lf4=Envoi,
+	lf5=Correction, lf6=Annulation, rmir=\E[4l, smir=\E[4h,
+	u8=\001%[ABCPtuvwxyz0123456789:;<=>?]\004,
+	.ich=\E[%p1%d@, .ich1=\E[@, .kLFT=\E[P, .kRIT=\E[4h,
+	.kb2=^Y{g, .kcbt=^Y{i, .kel=^X, .mc0=\E:|k, .rmkx=\E;jYA,
+	.rs1=\E[4l\E[2l, .smkx=\E;iYA\E;jYC, .u8=^ACu<^D,
+	use=ansi+arrows, use=ansi+idl, use=ansi+local,
+	use=minitel1,
+
+# rmkx posait des problemes (logout en sortant de vi).
 minitel1b-80|minitel 1-bistandard (standard teleinformatique),
-	am@, bw@, hz@,
+	am@, bw@, eslok@, hz@, msgr,
 	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,
+	acsc@, blink=\E[5m, bold=\E[1m, civis=\037@A\024\n,
+	clear=\E[H\E[J, 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,
+	ht=^I, ind=\ED, is1@, is2@, kbs=\EOl, kcan=\EOQ, kend=\E)4\r,
+	kent=\EOM, kf1=\EOq, kf10=\EOp, kf11=\EOP1, kf12=\EOP2,
+	kf13=\EOP3, kf14=\EOP4, kf15=\EOP5, kf16=\EOP6, kf17=\EOP7,
+	kf18=\EOP8, kf19=\EOP9, kf2=\EOr, kf20=\EOP0, kf21=\EOP*,
+	kf22=\EOP#, kf23@, kf24@, kf3=\EOs, kf4=\EOt, kf5=\EOu,
+	kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, khlp=\EOm, knp=\EOn,
+	kpp=\EOR, krfr=\EOS, lf1@, lf2@, lf3@, lf4@, lf5@, lf6@, nel=\EE,
+	op@, rc=\E8, rep@, rev=\E[7m, ri=\EM, rmkx@, rmso=\E[27m,
+	rmul=\E[24m,
+	rs2=\036\E[12H\E[2M\E[H\E[L\E[12H\E[2M\E[H\E[L\E[12H\E[2M\E[
+	    H\E[L\E[12H\E[2M\E[H\E[L\E[12H\E[2M\E[H\E[L\E[12H\E[2M
+	    \E[H\E[L\E[12H\E[2M\E[H\E[L\E[12H\E[2M\E[H\E[L\E[12H\E[2
+	    M\E[H\E[L\E[12H\E[2M\E[H\E[L\E[12H\E[2M\E[H\E[L\E[12H\E[
+	    2M\E[H\E[J\E[m,
+	sc=\E7, setab@, setaf@, setb@, setf@, sgr@, sgr0=\E[m, smkx@,
+	smso=\E[7m, smul=\E[4m,
+	tsl=\037@%?%p1%{63}%<%t%p1%'A'%+%c%e\177%p1%{62}%-%Pa%?%ga
+	    %{1}%&%t\011%;%?%ga%{2}%&%t\011\011%;%?%ga%{4}%&%t\011
+	    \011\011\011%;%?%ga%{07}%>%t\011\011\011\011\011\011
+	    \011\011%;%?%ga%{15}%>%t\011\011\011\011\011\011\011
+	    \011%;%;,
+	u6@, u7@, u8@, u9@, .acsc=}#f[, .enacs=^O, .kb2=\EOPg,
+	.kcbt=\EOPi, .ll=\E[24H, .mc0=\E[i, .rmacs=^O, .rs2=\Ec,
+	.sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1
+	     ;%;m,
+	.smacs=^N, C0=}#f[j+k+l+m+n+o~q=s_t+u+v+w+x!0\032,
+	XC=B\016%\017\,\243#\,\247]\,\260[\,\340@\,\347\\\\\,\351{\,
+	   \350}\,\371|\,\300A\,\301A\,\302A\,\303A\,\304A\,\305A\,
+	   \306E\,\307C\,\310E\,\311E\,\312E\,\313E\,\314I\,\315I\,
+	   \316I\,\317I\,\320D\,\321N\,\322O\,\323O\,\324O\,\325O\,
+	   \326O\,\331U\,\332U\,\333U\,\334U\,\335Y\,\337s\,\341a\,
+	   \342a\,\343a\,\344a\,\345a\,\346e\,\352e\,\353e\,\354i\,
+	   \355i\,\356i\,\357i\,\360d\,\361n\,\362o\,\363o\,\364o\,
+	   \365o\,\366o\,\372u\,\373u\,\374u\,\375y\,\377y\,\267.\,
+	   \327x\,\367/\,\261\E7\E[4m+\E8\E[C\,\,0\017%\016\,x|\,y
+	   \E7\E[4m<\E8\E[C\,z\E7\E[4m>\E8\E[C\,g\E7\E[4m+\E8\E[C,
+	use=minitel1b,
+
+minitel1-nb|minitel 1 (40cols) noir & blanc sans couleurs avec bold et dim ...,
+	colors@, pairs@,
+	bold=\EG, clear=^L\EB,
+	cup=\037%p1%'A'%+%c%p2%'A'%+%c\EB, dim=\ED, home=^^\EB,
+	op@, rs2=^L\EB, setab@, setaf@, setb@, setf@,
+	sgr=%?%p1%p3%O%t\E]%;%?%p4%t\EH%;%?%p5%t\ED%;%?%p6%t\EG%;,
+	sgr0=\EI\E\\\EB, tsl=\037@%p1%'A'%+%c\EB, .invis=\E@,
+	use=minitel1,
+
+minitel1b-nb|minitel 1b (40cols) noir & blanc sans couleurs avec bold et dim ...,
+	msgr,
+	colors@, pairs@,
+	acsc=`>a9f!j%k4l<m-n=p#q\,rpt=u5v-w<x5yvzy|l~$,
+	bold=\EG, clear=^L\EB, cup=\E[%i%p1%d;%p2%dH, dim=\ED,
+	home=^^\EB, kend=\E)4\r, kf1=\E$4\r, kf2=\E#4\r,
+	kf3=\E&4\r, kf4=\E!4\r, kf5=\E'4\r, kf6=\E/4\r, knp=\E(4\r,
+	kpp=\E"4\r, op@, rmacs=^O, rs2=^L\EB, setab@, setaf@, setb@,
+	setf@,
+	sgr=%?%p1%p3%O%t\E]%;%?%p4%t\EH%;%?%p5%t\ED%;%?%p6%t\EG%;,
+	sgr0=\EI\E\\\EB, smacs=^N, tsl=\037@%p1%'A'%+%c\EB,
+	u8=\001%[ABCPpqrstuvwxyz{|}~\177]\004\r, .invis=\E@,
+	.u8=\001Cu|\004r, use=minitel1b,
+
+# Note:
+#
+# Faire, Fnct T puis "/" (TS+"?") pour activer les touches en 40cols :
+#
+# TS+Connexion/Fin(Fin),Retour(Page Up),Suite(Page Down),Guide(F1),
+# Repetition(F2),Sommaire(F3),Envoi(F4),Correction(F5),Annulation(F6),
+# Ctrl+7(F7),Ctrl+8(F8),Ctrl+9(F9),Ctrl+0(F10),Ctrl+*(F11),Ctrl+#(F12).
+#
+# Ctrl+Suite-1(F13), Ctrl+Suite-2(F14), Ctrl+Suite-3(F15),
+# Ctrl+Suite-4(F16), Ctrl+Suite-5(F17), Ctrl+Suite-6(F18),
+# Ctrl+Suite-7(F19), Ctrl+Suite-8(F20), Ctrl+Suite-9(F21),
+# Ctrl+Suite-0(F22), Ctrl+Suite-*(F23), Ctrl+Suite-#(F24).
+#
+# Fonctionne par exemple avec Midnight Commander (mc).
+
+minitel2-80|minitel 2 (80cols) avec filets VT100 (DEC),
+	acsc=ffggjjkkllmmnnooqqssttuuvvwwxxyyzz||}},
+	enacs=\E)0, rmacs=^O, smacs=^N, u6=\E[%i%d;%dR,
+	C0=ffggjjkkllmmnnooqqssttuuvvwwxxyyzz||}},
+	S0=\E)0\016,
+	XC=B%\E(B\,\243\E(3}\,\247\E(R[\,\257\E(3v\,\260\E(3f\,\261
+	   \E(3g\,\265\E(3Y\,\267\E(3~\,\274\E(3O\,\275\E(3P\,\276
+	   \E(3Q\,\277\E(3Z\,\300A\,\301A\,\302A\,\303A\,\304\E(3R\,
+	   \305A\,\306E\,\307C\,\310E\,\311\E(3S\,\312E\,\313E\,
+	   \314\E(3T\,\315I\,\316I\,\317I\,\320D\,\321\E(3W\,\322\E(
+	   3U\,\323O\,\324O\,\325O\,\326O\,\327x\,\331U\,\332U\,
+	   \333U\,\334\E(3V\,\335Y\,\337\E(3{\,\340\E(3A\,\341a\,
+	   \342\E(3B\,\343a\,\344\E(3C\,\345a\,\346e\,\347\E(R\\\\\,
+	   \350\E(3E\,\351\E(3D\,\352\E(3F\,\353\E(3G\,\354i\,\355i
+	   \,\356\E(3H\,\357\E(3I\,\360d\,\361\E(3X\,\362o\,\363o\,
+	   \364\E(3J\,\365o\,\366\E(3K\,\367\E(3h\,\371\E(3L\,\372u
+	   \,\373\E(3M\,\374\E(3N\,\375y\,\377y\,\,0\E)3%\E)0\,\\\,m
+	   \,+k\,.l\,0\177\,-j,
+	use=minitel12-80,
+
+minitel12-80|minitel 12 (80cols),
+	civis=\E[<1h, cnorm=\E[<1l, is2=\E[12h, u6=\E[%i%d;%dH,
+	u7=\E[6n,
+	.acsc=ffggj+k+l+m+n+ovq-swt+u+v+w+xx}}\,m+k.l-j0
+	      \177,
+	.enacs=\E)3, .rmacs=^O, .rs3=\E[?4l, .scs=\E(%p1%c,
+	.smacs=^N,
+	C0=ffggj+k+l+m+n+ovq-swt+u+v+w+xx}}\,m+k.l-j0\177,
+	S0=\E)3\016,
+	XC=B%\E(B\,\243\E(3}\,\247\E(R[\,\257\E(3v\,\260\E(3f\,\261
+	   \E(3g\,\267\E(3~\,\274\E(3O\,\275\E(3P\,\276\E(3Q\,\300A
+	   \,\301A\,\302A\,\303A\,\304A\,\305A\,\306E\,\307C\,\310E
+	   \,\311E\,\312E\,\313E\,\314I\,\315I\,\316I\,\317I\,\320D
+	   \,\321N\,\322O\,\323O\,\324O\,\325O\,\326O\,\327x\,\331U
+	   \,\332U\,\333U\,\334U\,\335Y\,\337\E(3{\,\340\E(3A\,
+	   \341a\,\342\E(3B\,\343a\,\344\E(3C\,\345a\,\346e\,\347\E(
+	   R\\\\\,\350\E(3E\,\351\E(3D\,\352\E(3F\,\353\E(3G\,\354i
+	   \,\355i\,\356\E(3H\,\357\E(3I\,\360d\,\361n\,\362o\,
+	   \363o\,\364\E(3J\,\365o\,\366\E(3K\,\367\E(3h\,\371\E(3L
+	   \,\372u\,\373\E(3M\,\374\E(3N\,\375y\,\377y\,\,0\E)3%\E)0
+	   \,\\\,m\,+k\,.l\,0\177\,-j,
+	use=minitel1b-80,
+
+#
+# Add these in your ~/.screenrc for inputting some special glyphs like french
+# accentuated chars in 40 cols mode:
+#
+# bindkey ^YA digraph '`'  # Saisi accent grave.
+# bindkey ^YB digraph "'"  # Saisi accent aigu.
+# bindkey ^YC digraph '^'  # Saisi accent circonflexe.
+# bindkey ^YH digraph '"'  # Saisi accent trema.
+#
+# bindkey ^Y#      stuff \243  # Livre.
+# bindkey "^Y\047" stuff \247  # Paragraphe.
+# bindkey ^Yj      stuff \306  # AE
+# bindkey ^Yz      stuff \346  # ae
+# bindkey ^YKc     stuff \347  # c cedille.
+#
+
+screen.minitel1|Screen specific for minitel1,
+	ncv@,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+	     yzz||}}~~,
+	bel=\007\E\^ \E\\, bold@, csr@, flash=\Eg\E\^ \E\\, kmous@,
+	rmul@, smul@, u8=\E[?1;2c, use=decid+cpr,
+	use=xterm+x11mouse, use=screen,
+
+screen.minitel1b|Screen specific for minitel1b,
+	kclr=\E[2J, kdl1=\E[M, kf13=^Y{1, kf14=^Y{2, kf15=^Y{3,
+	kf16=^Y{4, kf17=^Y{5, kf18=^Y{6, kf19=^Y{7, kf20=^Y{8,
+	kf21=^Y{9, kf22=^Y{0, kf23=^Y{*, kf24=^Y{#, kil1=\E[L,
+	use=screen.minitel1,
+
+screen.minitel1b-80|screen.minitel2-80|screen.minitel12-80|Screen specific for minitel1b-80 minitel2-80 and minitel12-80,
+	colors@, ncv@, pairs@,
+	bold=\E[1m, kent=\EOM, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@,
+	kf19@, kf20@, kf21@, kf22@, kf23@, kf24@, khlp=\EOm, op@,
+	rmul=\E[24m, setab@, setaf@, setb@, setf@, smul=\E[4m,
+	use=screen.minitel1b,
+
+screen.minitel1-nb|Screen specific for minitel1-nb,
+	colors@, ncv@, pairs@,
+	bold=\E[1m, op@, setab@, setaf@, setb@, setf@,
+	use=screen.minitel1,
+
+screen.minitel1b-nb|Screen specific for minitel1b-nb,
+	colors@, ncv@, pairs@,
+	bold=\E[1m, dim=\E[2m, op@, setab@, setaf@, setb@, setf@,
+	use=screen.minitel1b,
+
+# From: Alexandre Montaron, 29 Sep 2016
+
+linux-m1|Linux Minitel 1 "like" Couleurs,
+	am, bw@, ccc, mir, msgr, xenl,
+	it#8, ncv#16,
+	acsc=a\261f\370g\361h\260j\274k\273l\311m\310n\316q\315t
+	     \314u\271v\312w\313x\272y\363z\362{\343|\252~\372,
+	bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
+	el1=\E[1K, enacs=\E)U, flash=\E[?5h$<100/>\E[?5l,
+	hpa=\E[%i%p1%d`, ht=^I, hts=\EH, ind=\n,
+	initc=\E]P%p1%{15}%&%X%p2%{255}%&%02X%p3%{255}%&%02X%p4
+	      %{255}%&%02X,
+	is2=\E]R\E]P3FFFF80\E[?8c, ka1=\EOw, ka3=\EOy, kb2=\E[G,
+	kbs=^?, kc1=\EOq, kc3=\EOs, kcbt=\E^I, kclr=\E\r,
+	kdl1=\E\E[A, kent=\EOM, 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~, kil1=\E\E[B, kmous=\E[M, nel=\EE,
+	oc=\E]R\E]P3FFFF80, op=\E[39;49m, rev=\E[7m, ri=\EM,
+	rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmpch=\E[10m,
+	rmso=\E[27m, rs1=\Ec, rs3=\E[37;40m\E[8], sgr0=\E[m,
+	smacs=^N, smam=\E[?7h, smir=\E[4h, smpch=\E[11m,
+	smso=\E[7m, tbc=\E[3g, vpa=\E[%i%p1%dd, .VN=\E[?5l,
+	.VR=\E[?5h, .am@, .ich=\E[%p1%d@, .ich1=\E[@, .ll=\E[99H,
+	.rmcup=, .rmul=\E[24m, .smcup=\E]R\E]P3FFFF80\E[?8c,
+	.smul=\E[4m,
+	E3=\E[99H\E[2J\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n,
+	use=ansi+arrows, use=ansi+csr, use=ansi+cup,
+	use=ansi+erase, use=ansi+idl, use=ansi+local1,
+	use=klone+color, use=vt220+pcedit, use=vt220+cvis,
+	use=linux+decid,
+
+# 1. Using double-shapes for VT100 graphical chars (eg: mc).
+# 2. Native brown color corrected to good yellow color.
+# 3. Adding "Insert" and "Delete Line" keys as ESC Up and ESC Down arrow keys.
+# 4. Suppressed nonexistent underlined mode (normally as bright).
+# 5. ich/ich1 not filled because of non-curses programs.
+#--
+# 6. Suppressed nonexistent invisible mode.
+#(7.)Adding forgotten "cub/cud/cuf/cuu" sequences deplacement.
+
+linux-m1b|Linux Minitel 1B "like" Monochrome (Gris/Blanc/Noir+Dim),
+	ccc@,
+	colors@, ncv@, pairs@,
+	acsc@, bold=\E[33m, enacs@, initc@,
+	is2=\E]R\E]P1A9A9A9\E]P2A9A9A9\E]P3FFFFFF\E]P4A9A9A9\E]P5A9A
+	    9A9\E]P6A9A9A9\E]P9FFFFFF\E]PAFFFFFF\E]PBFFFFFF\E]PCFFFF
+	    FF\E]PDFFFFFF\E]PEFFFFFF\E[?2c,
+	oc@, op@, rmacs@, setab=^A, setaf=^A, smacs@, .setab@, .setaf@,
+	.smcup=\E]R\E]P1A9A9A9\E]P2A9A9A9\E]P3FFFFFF\E]P4A9A9A9\E]P5
+	       A9A9A9\E]P6A9A9A9\E]P9FFFFFF\E]PAFFFFFF\E]PBFFFFFF\E]
+	       PCFFFFFF\E]PDFFFFFF\E]PEFFFFFF\E[?2c,
+	use=linux-m1,
+
+linux-m2|Linux Minitel 2 "like" Couleurs (Vert/Blanc/Noir+Bleu),
+	ccc@,
+	colors@, ncv@, pairs@,
+	acsc=++\,\,--..00``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttu
+	     uvvwwxxyyzz{{||}}~~,
+	bold=\E[33m, cnorm=\E[?2c\E[?25h, cvvis=\E[?8c\E[?25h,
+	enacs=\E)0, initc@,
+	is2=\E]R\E]P100A900\E]P200A900\E]P3FFFFFF\E]P400A900\E]P500A
+	    900\E]P600A900\E]P700A900\E]P80000FF\E]P9FFFFFF\E]PAFFFF
+	    FF\E]PBFFFFFF\E]PCFFFFFF\E]PDFFFFFF\E]PEFFFFFF\E]PFFFFFF
+	    F\E[;37m,
+	oc@, op@, setab=^A, setaf=^A, sgr0=\E[;37m, .setab@, .setaf@,
+	.smcup=\E]R\E]P100A900\E]P200A900\E]P3FFFFFF\E]P400A900\E]P5
+	       00A900\E]P600A900\E]P700A900\E]P80000FF\E]P9FFFFFF\E]
+	       PAFFFFFF\E]PBFFFFFF\E]PCFFFFFF\E]PDFFFFFF\E]PEFFFFFF
+	       \E]PFFFFFFF\E[;37m,
+	use=linux-m1,
+
+# From: Alexandre Montaron, 27 May 2020
+linux-s|Linux console with added status line at bottom,
+	hs,
+	clear=\E[255;255H\E[A\E[1J\E[H, csr@,
+	dsl=\E7\E[255H\E[K\E8, ed@, fsl=\E8,
+	iprog=\sbash\s-c\s'echo\s-ne\s"\E[?6l\E[255H\E[A\E[6n"\s;
+	      \sread\s-d\sR\sTMP\s;\sLINES=`echo\s$TMP\s|\scut\s-f1
+	      \s-d\s";"\s|\scut\s-f2\s-d\s"["`\s;\sstty\srows\s$LINE
+	      S\s;\secho\s-ne\s"\E[;"$LINES"r\E[J"',
+	rs1=\E]R, tsl=\E7\E[255;%p1%dH, .rc@, .sc@, use=linux,
+
+# Screen entries counterpart :
+
+screen.linux-m1|Linux m1 specific for screen,
+	ncv@,
+	kclr=\E\r, kdl1=\E\E[A, kf13=\E[25~, kf14=\E[26~,
+	kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+	kf19=\E[33~, kf20=\E[34~, kil1=\E\E[B, rmul@, smul@,
+	u8=\E[?1;2c,
+	E3=\E[99H\E[2J\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
+	   \n\n\n\n\n\n\n\n\n\n,
+	use=decid+cpr, use=xterm+x11mouse, use=screen,
+
+screen.linux-m1b|Linux m1b specific for screen,
+	colors@, pairs@,
+	op@, setab@, setaf@, setb@, setf@, use=screen.linux-m1,
+
+screen.linux-m2|Linux m2 specific for screen,
+	acsc=++\,\,--..00``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttu
+	     uvvwwxxyyzz{{||}}~~,
+	use=screen.linux-m1b,
+
+# Putty :
+
+putty-m1|Putty Minitel 1 "like" Couleurs,
+	dim@, kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
+	kf5=\E[15~, rmul=\E[24m, smul=\E[4m, .E3=\E[300S,
+	use=xterm+alt47, use=putty+screen, use=xterm+sl-twm,
+	use=ecma+index, use=linux-m1,
+
+putty-m1b|Putty Minitel 1B "like" Monochrome (Gris/Blanc/Noir),
+	dim@, kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
+	kf5=\E[15~, rmul=\E[24m, smul=\E[4m, .E3=\E[300S,
+	use=xterm+alt47, use=putty+screen, use=xterm+sl-twm,
+	use=ecma+index, use=linux-m1b,
+
+putty-m2|Putty Minitel 2 "like" Couleurs (Vert/Blanc/Noir),
+	acsc=``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{
+	     {||}}~~,
+	dim@, kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
+	kf5=\E[15~, rmul=\E[24m, smul=\E[4m, .E3=\E[300S,
+	use=xterm+alt47, use=putty+screen, use=xterm+sl-twm,
+	use=ecma+index, use=linux-m2,
+
+putty+screen|PuTTY with screen resizing extensions (building-block),
+	.WS=\E[8;%p1%d;%p2%dt, Z0=\E[?3h, Z1=\E[?3l,
+
+putty-screen|PuTTY with screen resizing extensions,
+	WS=\E[8;%p1%d;%p2%dt, Z0=\E[?3h, Z1=\E[?3l, use=putty,
+
+screen.putty-m1|Putty m1 specific for screen,
+	dim@, rmul=\E[24m, smul=\E[4m, E3@, use=screen.linux-m1,
+
+screen.putty-m1b|Putty m1b specific for screen,
+	colors@, pairs@,
+	op@, setab@, setaf@, setb@, setf@, use=screen.putty-m1,
+
+screen.putty-m2|Putty m2 specific for screen,
+	acsc=++\,\,--..00``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttu
+	     uvvwwxxyyzz{{||}}~~,
+	use=screen.putty-m1b,
+# From: Alexandre Montaron, 19 Nov 2015, updated 19 Sep 2016
+#
+# He comments:
+# viewdata lacks a true cup capability,
+# so I achieved it with home and cud1/cuf1 sequences only !
+viewdata|Prestel/Viewdata terminals,
+	am, bw, eslok, hz,
+	cols#40, lines#24,
+	bel=^G, civis=^T, clear=^L, cnorm=^Q, cr=\r, cub1=^H, cud1=\n,
+	cuf1=^I,
+	cup=\036%?%p1%{07}%>%t\n\n\n\n\n\n\n\n%;%?%p1%{15}%>%t\n\n
+	    \n\n\n\n\n\n%;%?%p1%{4}%&%t\n\n\n\n%;%?%p1%{2}%&%t\n\n%;
+	    %?%p1%{1}%&%t\n%;%?%p2%{07}%>%t\011\011\011\011\011\011
+	    \011\011%;%?%p2%{15}%>%t\011\011\011\011\011\011\011
+	    \011%;%?%p2%{23}%>%t\011\011\011\011\011\011\011\011%;%?
+	    %p2%{31}%>%t\011\011\011\011\011\011\011\011%;%?%p2%{4}
+	    %&%t\011\011\011\011%;%?%p2%{2}%&%t\011\011%;%?%p2%{1}%&
+	    %t\011%;,
+	cuu1=^K, home=^^, nel=\r\n, rs2=^L, .el=^X, .ind=\n,
+	.rep=%p1%c\022%p2%'?'%+%c, .ri=^K,
+
+viewdata-o|optimized version of Viewdata Prestel/Viewdata terminals,
+	cup=\036%p1%?%p2%{20}%>%t%?%p1%{23}%=%t%Pa%{1}%e%{1}%+%;%;
+	    %Pa%?%ga%{13}%<%t%?%ga%{07}%>%t\n\n\n\n\n\n\n\n%;%?%ga
+	    %{4}%&%t\n\n\n\n%;%?%ga%{2}%&%t\n\n%;%?%ga%{1}%&%t\n%;%e
+	    %{24}%ga%-%Pa%?%ga%{07}%>%t\013\013\013\013\013\013\013
+	    \013%;%?%ga%{4}%&%t\013\013\013\013%;%?%ga%{2}%&%t\013
+	    \013%;%?%ga%{1}%&%t\013%;%;%?%p2%{21}%<%t%?%p2%{07}%>%t
+	    \011\011\011\011\011\011\011\011%;%?%p2%{15}%>%t\011
+	    \011\011\011\011\011\011\011%;%?%p2%{4}%&%t\011\011\011
+	    \011%;%?%p2%{2}%&%t\011\011%;%?%p2%{1}%&%t\011%;%e%{40}
+	    %p2%-%Pa%?%ga%{07}%>%t\010\010\010\010\010\010\010\010%;
+	    %?%ga%{15}%>%t\010\010\010\010\010\010\010\010%;%?%ga
+	    %{4}%&%t\010\010\010\010%;%?%ga%{2}%&%t\010\010%;%?%ga
+	    %{1}%&%t\010%;%?%p1%{23}%=%t\013%;%;,
+	.ll=^^^K, use=viewdata,
+
+# Samples with TERM=viewdata and TERM=viewdata-rv: http://canal.chez.com/blog/
+
+viewdata-rv|Prestel/Viewdata terminals with reverse capabilitie (as green),
+	xmc#1,
+	rmso=\EG, smso=\EB, use=viewdata-o,
 
 ######## OBSOLETE VDT TYPES
 #
@@ -18721,12 +21715,12 @@
 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,
+	bel=^G, clear=^L, cr=\r, cub1=\ED, cud1=\n, 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,
+	il=\EF%p1%{32}%+%c, il1=\EF!, ind=\n, kbs=^H, kf1=\Ex,
+	kf2=\Ey, kf3=\Ez, use=vt52+arrows,
 
 # (cbblit: here's a BSD termcap that says <cud1=\EG> -- esr)
 cbblit|fixterm|blit running columbus code,
@@ -18738,10 +21732,10 @@
 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,
+	bel=^G, clear=^L, cr=\r, cub1=\ED, cud1=\n, 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,
+	ht=^I, il=\Ef%p1%{32}%+%c, il1=\EF, ind=\n, kbs=^H, rmir=\ER,
 	smir=\EQ,
 
 #### Bolt, Beranek & Newman (bbn)
@@ -18754,7 +21748,7 @@
 # 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
+# 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
@@ -18774,41 +21768,39 @@
 # 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),
+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),
+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),
+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,
+	bel=^G, clear=\E[H\E[J$<150>, cr=\r, cub1=^H,
+	cup=%i\E[%p1%d;%p2%dH, 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, rmkx=\E>, rmso=\E[m, sgr0=\E[m, smkx=\E=,
+	smso=\E[7m, use=ansi+csr, use=ansi+local1,
 
-bg1.25rv|bbn bitgraph 1.25 (reverse video),
+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),
+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,
+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,
+	bel=^G, clear=\E[H\E[J$<150>, cr=\r, cub1=^H,
+	cup=%i\E[%p1%d;%p2%dH, dl1=\E[M$<2*>, ed=\E[J$<150>,
+	el=\E[K$<2>, ht=^I, il1=\E[L$<2*>, ind=\n$<280>, 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, use=ansi+local1,
+	use=vt52+arrows,
 
 #### Bull (bq, dku, vip)
 #
@@ -18879,46 +21871,47 @@
 # 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,
+	cols#80, 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\\,
+	bel=^G, blink=\E[0;5m, civis=\E[1r, clear=\E[2J,
+	cnorm=\E[r, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%df,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[0;2m,
+	dsl=\EPY99:98\E\\\E[0;98v\E[2J\E[v, fsl=\E[v,
+	home=\E[H, ht=\E[I, ind=\n, 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[3g,
-	tsl=\EPY99\:98\E\\\E[0;98v\E[2;7m,
-tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA,
+	is3=\Eb\E[?<h, kcbt=\E[Z, kctab=\E[g, 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, 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, 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,
+	tsl=\EPY99:98\E\\\E[0;98v\E[2;7m, use=ansi+arrows,
+	use=ansi+erase, use=ansi+idl, use=ansi+inittabs,
+	use=ansi+local, use=ansi+sgrdim,
+
+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,
+tws2103|xdku|Bull Questar tws2103,
 	ht=^I, use=tws-generic,
-tws2103-sna|dku7103-sna|BULL Questar tws2103 for SNA,
+tws2103-sna|dku7103-sna|Bull Questar tws2103 for SNA,
 	ht=^I, use=tws2102-sna,
-dku7102-old|BULL Questar 200 DKU7102 (microcode version < 6),
+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,
+	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),
+dku7202|Bull Questar 200 DKU7202 (colour/character attributes),
 	blink=\E[0;2;4m, dim=\E[0;5m, ht=^I, is3=\E[?3h\Eb,
-	sgr=\E[0%?%p1%t;2;4;5;7%;%?%p3%t;7%;%?%p2%t;2%;%?%p4%t;2;4%;%?%p5%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+	sgr=\E[0%?%p1%t;2;4;5;7%;%?%p3%t;7%;%?%p2%t;2%;%?%p4%t;2;4%;
+	    %?%p5%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
 	smso=\E[0;4;5;7m, smul=\E[0;2m, use=tws-generic,
 
 #=========================================================#
@@ -18928,13 +21921,13 @@
 # Description written by J. Staerck (BULL SA)
 #       Copyright (c) 1989 BULL SA
 #---------------------------------------------------------------------------
-#  This entry is used for terminals with vt320 emulation mode
+#  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.
+#  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
@@ -18987,64 +21980,62 @@
 #	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
+#	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, 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,
+bq300|Bull VT320 ISO Latin 1 80 columns terminal,
+	eo, km, mir, xenl, xon,
+	vt#3, wsl#80,
+	blink=\E[5m, bold=\E[1m, cup=\E[%i%p1%d;%p2%dH,
+	dch=\E[%p1%dP, dch1=\E[P, dsl=\E[1$}\E[2$~\n\E[0$},
+	ech=\E[%p1%dX, el1=\E[1K, flash=\E[?5h$<50>\E[?5l,
+	ich=\E[%p1%d@, ind=\ED, is1=\E[63;1"p\E[2h,
+	is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
+	    l,
 	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~,
+	kb2=\EOu, kc1=\EOq, kc3=\EOs, 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,
-	nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l,
+	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+	khlp=\E[28~, krdo=\E[29~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
+	nel=\EE, 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%;,
+	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$~, use=ansi+pp,
-bq300-rv|Bull vt320 reverse 80 columns,
+	smul=\E[4m, tsl=\E[1$}\E[2$~, use=ansi+enq, use=ansi+csr,
+	use=ansi+erase, use=ansi+idl, use=ansi+local,
+	use=ansi+pp, use=dec+sl, use=vt100+4bsd, use=vt220+cvis,
+	use=vt220+vtedit,
+
+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,
+	is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
+	    l,
 	use=bq300,
-bq300-w|Bull vt320 132 columns,
+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,
+	is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
+	    l,
 	rs2=\E[?3h, use=bq300,
-bq300-w-rv|Bull vt320 reverse mode 132 columns,
+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,
+	is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
+	    l,
 	rs2=\E[?3h, use=bq300,
 
-#  This entry is used for terminals with vt320 emulation mode
+#  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 [)
@@ -19091,36 +22082,34 @@
 #	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
+#	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,
+bq300-8|Bull VT320 full 8 bits 80 columns,
+	eo, eslok, hs, km, mc5i, mir, xenl, xon,
+	vt#3, wsl#80,
+	blink=\2335m, bold=\2331m, clear=\233H\233J,
 	csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=\2331D,
 	cud=\233%p1%dB, cud1=\2331B, cuf=\233%p1%dC, cuf1=\2331C,
 	cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\2331A,
 	dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
 	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, il1=\233L,
-	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,
+	el=\233K, el1=\2331K, flash=\233?5h$<50>\233?5l,
+	fsl=\2330$}, home=\233H, ich=\233%p1%d@, il=\233%p1%dL,
+	il1=\233L, ind=\ED, is1=\E[63;2"p\E[2h,
+	is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
+	    l,
 	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~,
+	ka3=\217y, kb2=\217u, 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,
@@ -19129,72 +22118,81 @@
 	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%;,
+	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=\E(0, 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,
+	use=vt100+4bsd, use=vt220+cvis8,
+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,
+	is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
+	    l,
 	use=bq300-8,
-bq300-8w|Bull vt320 8-bit 132 columns,
+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,
+	is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
+	    l,
 	rs2=\233?3h, use=bq300-8,
-bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns,
+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,
+	is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
+	    l,
 	rs2=\233?3h, use=bq300-8,
 
-#  This entry is used for terminals with vt320 emulation mode
+#  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,
+	kbs=^H, 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@, krdo@, kslt@, lf1@, lf2@,
+	lf3@, lf4@, use=vt220+pcedit, 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,
+	is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
+	    l,
 	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,
+	is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
+	    l,
 	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,
+	is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
+	    l,
 	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,
+	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~, 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,
+	is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
+	    l,
 	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,
+	is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
+	    l,
 	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,
+	is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
+	    l,
 	rs2=\E[?3h, use=bq300-8-pc,
 
 #======================================================#
@@ -19202,80 +22200,79 @@
 #======================================================#
 
 # 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
+#	BLD  bell disable			^[g
+#	BLE  bell enable			^[h
+#	CAMR char. attr. mode reset		^[[G
+#	CAMS char. attr. mode set		^[[D
+#	CLR  clear				^[`
+#	CM   character mode (async.)		^[k
+#	EP   echoplex mode (by host)		^[m
+#	IM   insert mode set			^[[I
+#	IMR  insert mode reset			^[[J
+#	KBL  keyboard lock (reset)		^[[X
+#	KBU  keyboard unlock (set)		^[[W
+#	LGR  Line-graphic mode reset		^[F
+#	LGS  Line-graphic mode set		^[G
+#	NEP  non echoplex mode (by host)	^[l
+#	PDS  print data space			^[[0p
+#	PDT  print data terminator		^[[<p
+#	PHD  print host data			^[[3p
+#	PRES print adapter reset		^[[2p
+#	RBM  block mode reset			^[[E
+#	RES  reset :				^[e
+#	RIS  reset initial state:		^[c
+#	RMR  roll mode reset			^[q
+#	RMS  roll mode set			^[r
+#	SCD  scroll down (72 lines)		^[[1s
+#	SCU  scroll up	(72 lines)		^[[0s
+#	SLL  status line lock			^[O
+#	SLR  status line reset			^[v
+#	SLS  status line set			^[w
+#	SM78 set mode vip7800			^[[1q
+#	SSP0 partition 0 set			^[[00u
+#	SSP1 partition n format 1		^[[PnPnSTRINGu
+#	SSP2 partition n format 2		^[[PnPnSTRINGu
+#	SSP3 partition n format 3		^[[PnPnu
+#	SSPR multi-part. reset			^[[<>u
+#	TBC  tab clear (at cursor pos.)		^[[g
+#	TBI  tab initialize			^[[N
+#	TBS  tab set (at cursor pos.)		^[p
+#
 #	ATR attribute (visual)
-#	    blink :			^[sB
-#	    dim :			^[sL
-#	    hide (blank) :		^[sH
-#	    restore :			^[sR
-#	    inverse video :		^[sI
-#	    prot. :			^[sP
-#	    underline :			^[s_
-#	    reset :			^{
+#	    blink :				^[sB
+#	    dim :				^[sL
+#	    hide (blank) :			^[sH
+#	    inverse video :			^[sI
+#	    protected :				^[sP
+#	    reset :				^[sR
+#	    underline :				^[s_
 #
 # 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,
+	vt#3, wsl#80,
+	acsc=0pjdkblamcnkqitgufvhwexj, blink=\EsB, clear=\E`,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%03d%p2%03df, dch1=\E[P,
+	dim=\EsL, dl1=\E[M, dsl=\Ev,
+	flash=\007$<80>\007$<80>\007, fsl=\EO, hts=\Ep,
+	ich1=\E[I, 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,
+	is3=\Er\E[W\E`, kHOM=\EH, kLFT=\Eo, kRIT=\Eu, kcbt=\E[Z,
+	kclr=\E`, kctab=\E[g, 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,
+	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,
+	mc5=\E[3p, nel=\r, 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,
+	smul=\Es_, tbc=\E[N, tsl=\Ew, use=ansi+inittabs,
+	use=vt52-basic,
 # 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,
@@ -19300,45 +22297,48 @@
 cg7900|chromatics|chromatics 7900,
 	am,
 	cols#80, lines#40,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^],
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, 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\,,
+	ed=^Al, el=^A`, home=^\, ich1=^A>1, il1=^A>2, ind=\n, 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,
+	smcup=\001P0\001O1\001R1\001C4\,\001c0\,\014\001M0\,42\,WARN
+	      ING\sDOUBLE\sENTER\sESCAPE\sand\s\025\001C1\,\001c2\,
+	      \001W0\,0\,79\,39\,,
+	smso=\001C4\,\001c7\,, uc=^A^A_^A\0,
 
 #### Computer Automation
 #
 
-ca22851|computer automation 22851,
+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,
+	bel=^G, clear=\014$<8>, cr=\r, cub1=^U, cud1=\n, cuf1=^I,
+	cup=\002%i%p1%c%p2%c, cuu1=^V, ed=^\, el=^], home=^^, ind=\n,
 	kcub1=^U, kcud1=^W, kcuu1=^V, khome=^^,
 
 #### Cybernex
 #
 
 # This entry has correct padding and the undocumented "ri" capability
-cyb83|xl83|cybernex xl-83,
+cyb83|xl83|Cybernex xl-83,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=\014$<62>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
+	bel=^G, clear=\014$<62>, cr=\r, cub1=^H, cud1=\n, 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,
+	ed=\020$<62>, el=\017$<3>, home=^K, ind=\n, kcub1=^H,
+	kcud1=\n, kcuf1=^I, kcuu1=^N, ri=^N,
 # (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr)
-cyb110|mdl110|cybernex mdl-110,
+cyb110|mdl110|Cybernex mdl-110,
 	OTbs, am,
 	cols#80, lines#24,
-	bel=^G, clear=\030$<70>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+	bel=^G, clear=\030$<70>, cr=\r, cub1=^H, cud1=\n, 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,
+	il1=\016A\016\035$<65>, ind=\n, rmso=^NG, smso=^NF,
 
 #### Datapoint
 #
@@ -19348,11 +22348,11 @@
 # side of Datapoint still lives (1995) in the form of Intelogic Trace.
 #
 
-dp3360|datapoint|datapoint 3360,
+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,
+	bel=^G, clear=^]^_, cr=\r, cub1=^H, cud1=\n, cuf1=^X, cuu1=^Z,
+	ed=^_, el=^^, home=^], ind=\n,
 
 # From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997
 # The Datapoint 8242 Workstation was sold at least between 1985
@@ -19381,101 +22381,127 @@
 #         ctrl-O           vertical line
 # Unfortunately this cannot be fitted into the termcap/terminfo
 # description scheme.
-dp8242|datapoint 8242,
+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,
+	bel=^G, civis=^Y, clear=^U\E^D^W^X, cnorm=^X, cr=\r, cub1=^H,
+	cud1=\n, 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,
+	kf10=\EK\Ea, kf2=^I\Ed, kf3=\n\Ec, kf4=\n\Eb, kf5=^S\Ea,
+	kf6=\EO\Ee, kf7=\EN\Ed, kf8=\EM\Ec, kf9=\EL\Eb, nel=\r\n,
 	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,
+	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)
+#### 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.
-#
+# These entries came from DEC's official terminfos for its older terminals
+# (which happen to be identical to the AT&T/SCO terminal descriptions),
+# Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support Engineering
+# may have had more information.  Updated terminfos and termcaps were available
+# at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
 
-gt40|dec gt40,
+# DEC's terminfos did not describe the auxiliary keypad.
+#
+# DECScope of course had no "function keys", but this building block assigns
+# the three blank keys at the top of the auxiliary (numeric) keypad, using
+# the same analogy as VT100 (also lacking function-keys).
+#
+# These assignments use the same layout for 0-9 as VT100+keypad; the VT52
+# keypad had its cursor-keys on the right-column as shown -TD
+#   _______________________________________
+#  |   PF1   |   PF2   |   PF3   | c-up    |
+#  |   \EP   |   \EQ   |   \ER   |   \EA   |
+#  |_kf1__k1_|_kf2__k2_|_kf3__k3_|kcuu1_k4_|
+#  |    7         8         9      c-down  |
+#  |   \E?w  |   \E?x  |   \E?y  |   \EB   |
+#  |_kf9__k9_|_kf10_k;_|_kf0__k0_|kcud1____|
+#  |    4    |    5    |    6    | c-right |
+#  |   \E?t  |   \E?u  |   \E?v  |   \EC   |
+#  |_kf5__k5_|_kf6__k6_|_kf7__k7_|kcuf1_k8_|
+#  |    1    |    2    |    3    | c-left  |
+#  |   \E?q  |   \E?r  |   \E?s  |   \ED   |
+#  |_ka1__K1_|_kb2__K2_|_ka3__K3_|kcub1____|
+#  |         0         |   .     |  enter  |
+#  |        \E?p       |  \E?n   |  \E?M   |
+#  |___kc1_______K4____|_kc3__K5_|_kent_@8_|
+#
+vt52+keypad|DECScope auxiliary keypad,
+	ka1=\E?q, ka3=\E?s, kb2=\E?r, kc1=\E?p, kc3=\E?n, kf0=\E?y,
+	kf1=\EP, kf2=\EQ, kf3=\ER, kf5=\E?t, kf6=\E?u, kf7=\E?v,
+	kf8=\E?w, kf9=\E?x,
+
+gt40|DEC gt40,
 	OTbs, os,
 	cols#72, lines#30,
-	bel=^G, cr=^M, cub1=^H, cud1=^J,
-gt42|dec gt42,
+	bel=^G, cr=\r, cub1=^H, cud1=\n,
+gt42|DEC gt42,
 	OTbs, os,
 	cols#72, lines#40,
-	bel=^G, cr=^M, cub1=^H, cud1=^J,
-vt50|dec vt50,
+	bel=^G, cr=\r, cub1=^H, cud1=\n,
+
+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,
+	bel=^G, clear=\EH\EJ, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
+	cuu1=\EA, ed=\EJ, el=\EK, ht=^I, ind=\n, u8=\E/A, u9=\EZ,
+vt50h|DEC VT50h,
+	cub1=\ED, cud1=\EB, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+	u8=\E/[HJ], use=vt52+keypad, use=vt50, use=vt52+arrows,
+
 # (vt61: there's a BSD termcap that claims <dl1=\EPd>, <il1=\EPf.> <kbs=^H>)
-vt61|vt-61|vt61.5|dec vt61,
+vt61|vt-61|vt61.5|DEC VT61,
 	cols#80, lines#24,
-	bel=^G, clear=\EH\EJ$<120>, cr=\r$<20>, cub1=^H, cud1=^J,
+	bel=^G, clear=\EH\EJ$<120>, cr=\r$<20>, cub1=^H, cud1=\n,
 	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,
+	ind=\n$<20>, ri=\E$<20>I, use=vt52+arrows,
 
 # 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,
+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,
+	bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, ht=^I, ind=\n,
 	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,
+	smul=\E[4m, use=ansi+local,
 
 # 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,
+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,
+	el=\EK, home=\EH, ht=^I, 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, use=vt52+arrows,
 
-dw1|decwriter I,
+dw1|DECwriter I,
 	OTbs, hc, os,
 	cols#72,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J,
-dw2|decwriter|dw|decwriter II,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, ind=\n,
+dw2|decwriter|dw|DECwriter II,
 	OTbs, hc, os,
 	cols#132,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, ind=\n, 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[w		10 char/in pitch
 # \E[1;132	full width horizontal margins
 # \E[2g		clear all tab stops
 # \E[z		6 lines/in
@@ -19489,30 +22515,30 @@
 #
 #       The dw3 does standout with wide characters.
 #
-dw3|la120|decwriter III,
+dw3|la120|DECwriter III,
 	OTbs, hc, os,
 	cols#132,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, ht=^I, ind=\n,
 	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,
+	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,
+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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, ht=^I, ind=\n, is2=\Ec, kbs=^H,
 	kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
 
 # These aren't official
-ln03|dec ln03 laser printer,
+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,
+	bel=^G, cr=\r, cud1=\n, hd=\EK, ht=^I, hu=\EL, ind=\n, nel=\r\n,
 	rmso=\E[22m, rmul=\E[24m, sgr0=\E[m, smso=\E[1m,
 	smul=\E[4m,
-ln03-w|dec ln03 laser printer 132 cols,
+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,
+	kbs=^H, kcub1=^H, kcud1=\n, use=ln03,
 
 #### Delta Data (dd)
 #
@@ -19524,29 +22550,30 @@
 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,
+	bel=^G, clear=^NR, cub1=^H, cud1=\n, 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=\n,
 
 #### Digital Data Research (ddr)
 #
 
 # (ddr: I added <rmam>/<smam> based on the init string -- esr)
-ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator,
+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/>,
+	clear=\E[H\E[2J$<50/>, cub1=^H, cud1=\n, 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, 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,
+	rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
 	sgr0=\E[m$<2/>, smam=\E[7l, smkx=\E[?1h\E=, smso=\E[7m,
-	smul=\E[4m$<2/>,
+	smul=\E[4m$<2/>, use=ansi+csr,
 
 #### Evans & Sutherland
 #
@@ -19557,7 +22584,7 @@
 # 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
+# systems, although specialized applications like molecular modeling
 # 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)
@@ -19565,7 +22592,7 @@
 ps300|Picture System 300,
 	xt,
 	it@,
-	rmso@, rmul@, smso@, smul@, use=vt100,
+	rmso@, rmul@, smso@, smul@, use=vt100+4bsd,
 
 #### General Electric (ge)
 #
@@ -19573,7 +22600,7 @@
 terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200,
 	OTbs, hc, os,
 	cols#120,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
+	bel=^G, cr=\r, cud1=\n, ind=\n,
 
 #### Heathkit/Zenith
 #
@@ -19613,22 +22640,22 @@
 # 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,
+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,
+	acsc=, bel=^G, clear=\E[2J, cnorm=\E[>4l, cr=\r, 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,
+	ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[1L$<1*>, ind=\n,
 	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,
+h19-bs|Heathkit w/keypad shifted,
 	rmkx=\Eu, smkx=\Et, use=h19-b,
-h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor,
+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)
@@ -19645,23 +22672,23 @@
 # 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,
+h19|heath|h19-b|heathkit|heath-19|z19|zenith|Heathkit h19,
 	OTbs, am, eslok, hs, mir, msgr,
 	cols#80, it#8, lines#24,
 	acsc=+h.kaiggjdkclfmenbozqas{tvutvuwsx`~\^, bel=^G,
-	clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+	clear=\EE, cnorm=\Ey4, cr=\r, 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,
+	dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I, ind=\n,
+	ip=$<1.5/>, kbs=^H, 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, use=vt52+arrows,
+h19-u|Heathkit with underscore cursor,
 	cnorm@, cvvis@, use=h19-b,
-h19-g|h19g|heathkit w/block cursor,
+h19-g|h19g|Heathkit w/block cursor,
 	cnorm=\Ex4, cvvis@, use=h19-b,
-alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
+alto-h19|altoh19|altoheath|alto-heath|alto emulating Heathkit h19,
 	lines#60,
 	dl1=\EM, il1=\EL, use=h19,
 
@@ -19696,7 +22723,7 @@
 # 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
+# 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
@@ -19705,111 +22732,107 @@
 # 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,
+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,
+	cr=\r, 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
+	is2=\E<\E[?2h\Ev, kbs=^H, 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, use=vt52+arrows,
+# 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,
+# (z29a: replaced nonexistent <if=/usr/share/tabset/zenith29> because <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,
-	dl1=\E[M, dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l,
+	cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[1P,
+	dim=\E[2m, 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, il1=\E[L, 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,
+	ind=\ED, kclr=\E[J, 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=\r\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=ansi+apparrows, use=ansi+idl, use=ansi+local,
+
+z29a-kc-uc|h29a-kc-uc|Zenith z29 ANSI mode with keyclick 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[11
+	    m,
 	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,
+z29a-nkc-bc|h29a-nkc-bc|Zenith 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,
+z29a-nkc-uc|h29a-nkc-uc|Zenith 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,
+	am, eslok, hs, 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,
+	clear=\E[2J\E[H, cnorm=\E[>5l, cr=\r,
+	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
 	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,
+	fsl=\E[u, home=\E[H, il=\E[%p1%dL, il1=\E[1L, ind=\n,
+	is2=\E<\E[>1;3;5;6;7l\E[0m\E[2J, ka1=\EOw, ka3=\EOu,
+	kb2=\EOy, kc1=\EOq, kc3=\EOs, ked=\E[J, kf1=\EOS, kf2=\EOT,
+	kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ, kf8=\EOR,
+	kf9=\EOX, khlp=\E[~, ll=\E[24;1H, mc0=\E[?19h\E[i, 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,
+	smir=\E[4h, smkx=\E[>7h, smso=\E[7m, smul=\E[4m,
+	tsl=\E[s\E[>1h\E[25;%i%p1%dH, use=ansi+arrows,
+	use=ansi+local, use=ansi+pp, use=ansi+tabs,
 
 # From: Brad Brahms <Brahms@USC-ECLC>
-z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor,
+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,
+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=+h.kaiggjdkclfmenbozqas{tvutvuwsx`~\^,
 	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,
+	home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H, 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, use=vt52+arrows,
 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,
+ztx|ztx11|zt-1|htx11|ztx-1-a|Heath/Zenith ztx-10 or 11,
 	OTbs, am, eslok, hs,
 	cols#80, it#8, lines#24,
-	clear=\EE, cub1=^H, cud1=^J, cuf1=\EC,
+	clear=\EE, cub1=^H, cud1=\n, 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,
+	kbs=^H, 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, use=vt52+arrows,
 
 #### IMS International (ims)
 #
@@ -19822,12 +22845,12 @@
 ims950-b|bare ims950 no init string,
 	is2@, use=ims950,
 # (ims950: removed obsolete ":ko@:" -- esr)
-ims950|ims televideo 950 emulation,
+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,
+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,
@@ -19849,26 +22872,26 @@
 # then sank out of sight.
 #
 
-superbrain|intertec superbrain,
+superbrain|Intertec Superbrain,
 	OTbs, am, bw,
 	cols#80, lines#24,
-	OTbc=^U, bel=^G, clear=\014$<5*>, cr=^M, cub1=^H, cud1=^J,
+	OTbc=^U, bel=^G, clear=\014$<5*>, cr=\r, cub1=^H, cud1=\n,
 	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,
+	ed=\E~k<10*>, el=\E~K$<15>, ht=^I, ind=\n, kcub1=^U,
+	kcud1=\n, 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,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, 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
+	ind=\n, rmso=\E0@, smso=\E0P,
+# The intertube 2 has the "full duplex" problem like the Tektronix 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,
+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,
@@ -19898,16 +22921,14 @@
 	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,
+	cr=\r, cub1=^H, cud=\E[%p1%dB, cup=\E[%i%p1%d;%p2%dH,
+	cvvis=\Ez4;2;1z\Ez56;2;80;24z, dch1=\E[P, ed=\E[J,
+	el=\E[K, home=\E[H, ht=^I, ind=\ED, kf1=\EOP, kf2=\EOQ,
+	kf3=\EOR, kf4=\EOS, nel=\r\ED, rc=\E8, ri=\EM, rmdc=\E[4l,
+	rmir=\E[4l, sc=\E7, sgr0=\E[m, smdc=\E[4h, smir=\E[4h,
+	use=ansi+arrows, use=ansi+idl, use=ansi+local,
+	use=ansi+sgrso,
+
 graphos-30|graphos III with 30 lines,
 	lines#30,
 	cvvis=\Ez4;2;1z\Ez56;2;80;30z, use=graphos,
@@ -19935,12 +22956,13 @@
 # graphics and DEC VT100/VT52 + ADM-3A emulation with a VT220-style keyboard.
 #
 
-modgraph|mod24|modgraph terminal emulating vt100,
+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,
+	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+4bsd,
 # 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,
@@ -19948,7 +22970,10 @@
 	clear=\EH\EJ$<50/>, cub1=^H, cud1=\EB$<2/>,
 	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,
+	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;7
+	    3s\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>
@@ -19966,16 +22991,16 @@
 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,
+	OTnl=\n, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
+	cr=\r, cub1=^H, cud1=\n, 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,
+	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM,
+	rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, rs1=\E=\E[0q\E>,
+	sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+	use=ansi+csr,
 
 #### Morrow Designs
 #
@@ -19996,13 +23021,13 @@
 	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>,
+	cbt=\EI, civis=\E"0, clear=^Z, cnorm=\E"2, cr=\r, cub1=^H,
+	cud1=\n, 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,
+	ind=\n, 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,
+	kcuu1=^AJ\r, kdch1=^?, 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,
@@ -20021,7 +23046,7 @@
 	cbt=\E[, clear=\EX, cub1=\ED, cud1=\EB, cuf1=\EC,
 	cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, 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@,
+	kcud1=\n, kcuf1=^L, kcuu1=^K, ked=\ET, kel=\EU, khome=\E@,
 	rmso=\Ec\ED, rmul=\Eg\ED, smso=\Eb\ED, smul=\Ef\ED,
 
 #### Omron
@@ -20031,14 +23056,14 @@
 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,
+	bel=^G, clear=\EJ, cr=\r, cub1=^H, cud1=\n, 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.
+# were competition for things like the Tektronix 4025.
 #
 
 # Ramtek 6221 from BRL, probably by Doug Gwyn
@@ -20056,19 +23081,20 @@
 	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,
+	clear=\E[1;1H\E[J, cnorm=\E[>5h\E[>9h, cr=\r, cub1=^H,
+	cud1=^K, cup=\E[%i%p1%d;%p2%dH, 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,
+	hts=\EH, ind=\n, 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,
+	nel=\EE, 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>,
+	sgr0=\E[m, smacs=^N, smkx=\E=, smso=\E[7m, smul=\E[4m,
+	tbc=\E[3g, use=ansi+csr, use=ansi+local,
+
 # [TO DO: Check out: short forms of ho/cl and ll; reset (\Ec)].
 rt6221-w|Ramtek 6221 160x48,
 	cols#160, lines#48,
@@ -20078,7 +23104,7 @@
 #
 
 # RCA VP3301 or VP3501
-rca|rca vp3301/vp3501,
+rca|RCA vp3301/vp3501,
 	OTbs,
 	cols#40, lines#24,
 	clear=^L, cuf1=^U, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
@@ -20103,20 +23129,20 @@
 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,
+	acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub=\E[%p1%dD,
+	cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
+	dch=\E[%p1%dP, dch1=\E[P, home=\E[H, ht=^I, hts=\EH,
+	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>,
+	rs1=\030\E2\E<\E[4i\E[?4i\E[12h\E[2;4;20l\E[?0;7h\E[?1;3;6;1
+	    9l\E[r\E[m\E(B\017\E)0\E>,
+	sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E[?1h\E=, tbc=\E[3g,
+	use=ansi+erase, use=ansi+idl, use=ansi+local,
+	use=ansi+sgrso, use=ansi+sgrul,
+
 hirez100-w|Selanar HiREZ-100 in 132-column mode,
 	cols#132, use=hirez100,
 
@@ -20127,9 +23153,9 @@
 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,
+	clear=\E[;H\E[2J$<50/>, cr=\r, cub1=^H, cud1=\n, 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,
+	ht=^I, ind=\n, kbs=^H, kcub1=^H, kcud1=\n, nel=\r\n, rev=^_\s,
 	rmso=^_!, rmul=^_#, sgr0=^_!, smso=^_\s, smul=^_",
 
 #### Soroc
@@ -20154,19 +23180,18 @@
 #
 
 # (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,
+soroc120|iq120|soroc|Soroc iq120,
+	clear=\E*$<2>, ed=\EY, el=\ET, 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,
+	bel=^G, cbt=\EI, clear=\E+, cr=\r, cub1=^H, cud1=\n, 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,
+	dl1=\Er$<.7*>, ed=\Ey, el=\Et, home=^^, il1=\Ee$<1*>, ind=\n,
 	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,
+	kf8=^AG\r, kf9=^AH\r, khome=^^, ll=^^^K, rmir=\E8, rmso=\E^?,
+	rmul=\E^A, smir=\E9, smso=\E^?, smul=\E^A,
 
 #### Southwest Technical Products
 #
@@ -20175,13 +23200,14 @@
 #
 
 # (swtp: removed obsolete ":bc=^D:" -- esr)
-swtp|ct82|southwest technical products ct82,
+swtp|ct82|Southwest Technical Products ct82,
 	am,
 	cols#82, lines#20,
-	bel=^G, clear=^L, cr=^M, cub1=^D, cud1=^J, cuf1=^S,
+	bel=^G, clear=^L, cr=\r, cub1=^D, cud1=\n, 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,
+	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
@@ -20226,7 +23252,7 @@
 #
 
 # Tested, seems to work fine with vi.
-synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal,
+synertek|ktm|synertek380|Synertek KTM 3/80 tubeless terminal,
 	am,
 	cols#80, lines#24,
 	clear=^Z, cub1=^H, cuf1=^L,
@@ -20246,13 +23272,20 @@
 # <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.
+# compatible but looks more VT100-like -esr
+#
+# According to
+# https://ub.fnwi.uva.nl/computermuseum/tab13215g.html
+#	This monochrome graphics terminal of TAB Products, California, is a DEC
+#	VT52/VT100/VT132 compatible alphanumeric terminal (TAB 132/15),
+#	factory-fitted with additional hardware for Tektronix 4010 emulation. 
+#	Also the terminal understands a selection of Tektronix 4027 commands. 
 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,
+	OTdN@, lm#96,
+	cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M, il1=\E[L,
+	is2=\E[?7h\E[?3l\E[?5l, rmir=\E[4l, rmkx@, smir=\E[4h,
+	smkx@, use=decid+cpr, use=vt100+4bsd,
 tab132-w|tab132 in wide mode,
 	cols#132,
 	is2=\E[?7h\E[?3h\E[?5l, use=tab132,
@@ -20276,32 +23309,33 @@
 # 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
+# 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,
+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,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, ind=\n,
+t3800|Teleray 3800 series,
 	OTbs,
 	cols#80, it#8, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, 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,
+	home=\EH, ht=^I, ind=\n, 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,
+	bel=^G, clear=\014$<1>, cr=\r, cub1=^H, cud1=\n, 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,
+	ich1=\EP, il1=\EL$<2*>, ind=\n, 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,
+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".
@@ -20313,7 +23347,7 @@
 # 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,
+t10|Teleray 10 special,
 	OTbs, km, xhp, xt,
 	cols#80, it#8, lines#24, xmc#2,
 	clear=\Ej$<30/>, cub1=^H, cud1=\EB, cuf1=\EC,
@@ -20321,22 +23355,22 @@
 	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
+# 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,
+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,
+	bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H,
+	cup=%i\E[%p1%d;%p2%df, dch1=\E[P, dl1=\E[M, ed=\E[0J,
+	el=\E[0K, home=\E[H, ht=^I, il1=\E[L, ind=\n, 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,
+	use=ansi+local1,
 
 #### Texas Instruments (ti)
 #
@@ -20344,79 +23378,92 @@
 # 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,
+ti700|ti733|ti735|ti745|ti800|Texas Instruments Silent 700/733/735/745 or OMNI 800,
 	OTbs, hc, os,
 	cols#80,
-	bel=^G, cr=\r$<162>, cub1=^H, cud1=^J, ind=^J,
+	bel=^G, cr=\r$<162>, cub1=^H, cud1=\n, ind=\n,
+
+# Terminal entries for the Texas Instruments 703/707
+# hardcopy terminals.
+#
+# http://www.bitsavers.org/pdf/ti/terminal/silent_700/
+# Refer to:
+#	Model 707 Data Terminal User's Manual
+#	http://www.bitsavers.org/pdf/ti/terminal/silent_700/2310451-0001_Silent_700_Model_707_Users_Manual_Nov1983.pdf
+#
+# pages 2-7 and 2-8 say that the model 707 prints 10.2 characters per inch
+# (cpi) (80 characters per line) by default, and can be switched to/from 17.0
+# cpi using an escape sequence.  There is no 80/132-column capability in
+# terminfo (only the more general cpi which allows any value).
+ti703|ti707|Texas Instruments Silent 703/707,
+	am, xenl,
+	it#8,
+	cuf1=\s, is2=\EPC\\, nel=\r\n, use=ti700,
+ti703-w|ti707-w|Texas Instruments Silent 703/707 (132 column),
+	cols#132,
+	is2=\EPD\\, use=ti703,
 
 #
 # 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,
+ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 VT220 mode 7 bit CTRL,
+	da, db, in,
+	cbt=\E[Z, clear=\E[H\E[2J$<6>, dch=\E[%p1%dP$<250>,
+	ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K,
 	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~,
+	kcmd=\E[29~, kdch1=\E[P, kent=\n, 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,
+	smacs=\016$<2>, 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,
+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,
+	kcuu1=\233A, kdch1=\233P, 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, use=ti916,
 #
 # Texas Instruments 916 VDT 8859/1 7 bit control 132 column mode
 #
-ti916-132|Texas Instruments 916 VDT vt220 132 column,
+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,
+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,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H, cr=\r,
+	csr=%i\E[%p1%d;%p2%dr, cup=%i\E[%p1%d;%p2%dH,
+	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,
+	smul=\E[4m, tbc=\E[3g, use=ansi+local1, use=vt220+cvis,
 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,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H, cr=\r,
+	csr=%i\E[%p1%d;%p2%dr, cup=%i\E[%p1%d;%p2%dH,
+	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=\233P, kf1=\217P, kf2=\217Q,
 	kf3=\217R, kf4=\217S, 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,
+	smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=ansi+local1,
+	use=vt220+cvis,
 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,
@@ -20424,15 +23471,15 @@
 ti931|Texas Instruments 931 VDT,
 	OTbs, am, xon,
 	cols#80, lines#24,
-	bel=^G, blink=\E4P, clear=\EL, cnorm=\E4@, cr=^M, cub1=\ED,
+	bel=^G, blink=\E4P, clear=\EL, cnorm=\E4@, cr=\r, 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,
+	is2=\EGB\E(@B@@\E), 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,
+	use=vt52+arrows,
 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)
@@ -20442,16 +23489,14 @@
 	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,
+	cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, 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,
+	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, 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,
+	smso=\E[7m, smul=\E[4m, use=ansi+arrows, use=ansi+local1,
 #
 #       928 VDT 7 bit control mode
 #
@@ -20479,25 +23524,25 @@
 # 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,
+zen30|z30|Zentec 30,
 	OTbs, am, mir, ul,
 	cols#80, lines#24,
-	bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, clear=\E*, cr=\r, cub1=^H, cud1=\n, 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,
+	il1=\EE$<1.5*>, ind=\n, 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,
+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=^^,
+	invis@, kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, khome=^^,
 	rmul@, smul@, use=adm+sgr,
 
 # CCI 4574 (Office Power) from Will Martin <wmartin@BRL.ARPA> via BRL
@@ -20505,13 +23550,12 @@
 	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,
+	csr=\ER%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=\n,
 	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,
+	invis=\EM(, is2=\EM \EF\ET\EP\ER 7, kbs=^H, khome=\EH,
+	mc4=^T, mc5=^R, rev=\EM$, ri=\EI, rmso=\EM\s, rmul=\EM\s,
+	sgr0=\EM\s, smso=\EM$, smul=\EM0, use=vt52+arrows,
 
 ######## OBSOLETE UNIX CONSOLES
 #
@@ -20523,7 +23567,7 @@
 #
 
 # From: Gary Darland <goodmanc@garnet.berkeley.edu>
-apollo|apollo console,
+apollo|Apollo console,
 	OTbs, am, mir,
 	cols#88, lines#53,
 	clear=^L, cub1=^H, cud1=\EB, cuf1=\EC,
@@ -20535,12 +23579,15 @@
 # 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,
+apollo+vt132|Apollo console emulating VT132,
 	rmir@, smir@, use=vt132,
-apollo_19L|apollo 19 inch display,
-	rmir@, smir@, use=vt132,
-apollo_color|apollo color display,
-	rmir@, smir@, use=vt132,
+
+apollo_15P|Apollo 15 inch display,
+	use=apollo+vt132,
+apollo_19L|Apollo 19 inch display,
+	use=apollo+vt132,
+apollo_color|Apollo color display,
+	use=apollo+vt132,
 
 #### AT&T consoles
 
@@ -20549,41 +23596,38 @@
 # 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,
+	cols#80, 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[3g, vpa=\E[%i%p1%dd, use=klone+color,
+	bel=^G, civis=\E[=C, clear=\E[2J\E[H, cnorm=\E[=1C, cr=\r,
+	cup=\E[%i%p1%d;%p2%dH, 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, ich=\E[%p1%d@,
+	ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S, invis=\E[9m,
+	is2=\E[0;10;39m, kcbt=^], 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,
+	kich1=\E[@, knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S,
+	rc=\E8, ri=\E[T, rmacs=\E[10m, 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, vpa=\E[%i%p1%dd,
+	use=ansi+arrows, use=ansi+inittabs, use=ansi+local,
+	use=ansi+sgrbold, use=ecma+index, 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,
+	clear=\E[2J\E[H, cnorm=\E[=1C, cr=\r, cub1=^H,
+	cup=\E[%i%p1%2d;%p2%2dH, 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=\n, 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=\r\n, rev=\E[7m, rmso=\E[m,
+	rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+	use=ansi+local1,
 
 # From: Benjamin C. W. Sittler <bsittler@nmt.edu>
 #
@@ -20683,7 +23727,7 @@
 #	*     cfont(1) in the PC 7300 documentation.
 #	*/
 #
-#	struct altfdata 	/* structure for alt font data */
+#	struct altfdata		/* structure for alt font data */
 #	{
 #	short	altf_slot;		/* memory slot number */
 #	char	altf_name[FNSIZE];	/* font name (file name) */
@@ -20706,28 +23750,25 @@
 	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,
+	clear=\E[2J\E[H, cnorm=\E[=0C, cr=\r, cub1=^H,
+	cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dim=\E[2m, ed=\E[0J,
+	el=\E[0K, home=\E[H, ich1=\E[@, ind=\n, 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, kcan=\EOw,
+	kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd,
+	kcrt=\EOn, 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,
+	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, use=ansi+arrows,
+	use=ansi+idl, use=ansi+local,
 
 #### Convergent Technology
 #
@@ -20741,7 +23782,7 @@
 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=,
+	OTbc=^H, OTma=\016h\013j\001k\022l\002m, OTnl=\n, 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,
@@ -20771,7 +23812,7 @@
 qdss|qdcons|qdss glass tty,
 	OTbs, am,
 	cols#128, lines#57,
-	clear=\032$<1/>, cub1=^H, cud1=^J, cuf1=^L,
+	clear=\032$<1/>, cub1=^H, cud1=\n, cuf1=^L,
 	cup=\E=%p1%c%p2%c, cuu1=^K,
 
 #### Fortune Systems consoles
@@ -20801,22 +23842,21 @@
 	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>,
+	clear=\014$<20>, cnorm=\E\\, cr=\r, 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,
+	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=\n, 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=\r\n, 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
+# Masscomp has gone out of business.  Their product line was purchased by a
+# company in Georgia (US) called "XS International", parts and service may
 # still be available through them.
 #
 
@@ -20824,11 +23864,11 @@
 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,
+	clear=\E[2J, cub1=^H, cup=\E[%i%p1%d;%p2%dH, 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, use=ansi+local1,
 masscomp1|masscomp large screen version 1,
 	cols#104, lines#36, use=masscomp,
 masscomp2|masscomp large screen version 2,
@@ -20841,8 +23881,8 @@
 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,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, cuu1=^K, ht=^I,
+	ind=\n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
 	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
 
 #### Other consoles
@@ -20856,10 +23896,9 @@
 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,
+	clear=\Ec, cub1=^H, cup=\E[%i%p1%2d;%p2%2dH, ed=\E[J,
+	el=\E[K, home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+	smso=\E[7m, smul=\E[4m, use=ansi+local1,
 
 # (ibmpcx: this entry used to be known as ibmx.
 # It formerly included the following extension capabilities:
@@ -20875,12 +23914,11 @@
 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,
+	clear=^L, cub1=^H, cup=\E[%p1%d;%p2%dH, dch1=\E[P,
+	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L,
+	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=ansi+arrows,
+	use=ansi+local1, use=klone+acs, use=klone+sgr8,
 
 ######## OTHER OBSOLETE TYPES
 #
@@ -20924,20 +23962,28 @@
 	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,
+	clear=\EH\EJ, cr=\r, cub1=^H, cud1=\n, 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,
+	il1=\EL, ind=\n, ip=$<2>, is2=\E&jA\r, kbs=^H, kcub1=\Eu\r,
+	kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\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%;,
+	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,
+	use=hp+pfk+cr,
 
 # gs6300 - can't use blue foreground, it clashes with underline;
 # it's simulated with cyan
@@ -20946,49 +23992,47 @@
 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,
+	acsc=++\,\,--..``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyz
+	     z{{||}}~~,
+	bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+	cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+	home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, ind=\n, is2=\E[m,
+	kcbt=^R^I, kf1=\E[0s, kf2=\E[24s, kf3=\E[1s, kf4=\E[23s,
+	kf5=\E[2s, kf6=\E[22s, kf7=\E[3s, kf8=\E[21s, 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,
+	use=ansi+arrows, use=ansi+erase, use=ansi+idl,
+	use=ansi+local,
 
 # 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),
+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
+# 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,
+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/>,
+	clear=\E[;H\E[2J$<50/>, cr=\r, cub1=^H, cud1=\n,
+	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=\r\n,
+	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>, sgr0=\E[m$<2/>, smkx=\E=\E[?1h,
+	smso=\E[7m$<2/>, smul=\E[4m$<2/>, use=ansi+csr,
 
 # From: Rick Thomas <ihnp4!btlunix!rbt>
 # (xtalk: I added <rmam>/<smam> based on the init string.
@@ -20996,26 +24040,25 @@
 	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,
+	bel=^G, clear=\E[H\E[J$<50>, cr=\r, cub1=^H, cud1=\n,
+	cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
 	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,
+	il1=\E[L$<99>, ind=\n, 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,
+	tbc=\E[3g, use=ansi+local, 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,
+	bel=^G, clear=\EH\EJ, cr=\r, 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,
+	dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, ind=\n, rmcup=\EVE,
 	rmso=\E&d@, sgr0=\E&d@, smcup=\EVS, smso=\E&dB,
 
 #### Daisy wheel printers
@@ -21025,24 +24068,24 @@
 #
 
 # (diablo1620: removed <if=/usr/share/tabset/xerox1720>, no such file -- esr)
-diablo1620|diablo1720|diablo450|ipsi|diablo 1620,
+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,
+	cub1=^H, cud1=\n, cuu1=\E\n, 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,
+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,
+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,
+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,
+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>.
@@ -21060,25 +24103,25 @@
 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,
+	bel=^G, clear=\020\035$<20>, cnorm=^Pb, cr=^P\r, 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,
+	dch1=^X, dl1=^P^S, ed=^P^U^P^S^P^S, el=^P^U, home=^P^R,
+	il1=^P^Z, ind=\n, pad=^?, 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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
+	hts=\E1, hu=\EH, ind=\n, 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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cuu1=^Z, hd=\Eh, ht=^I, hu=\EH,
+	ind=\n,
+aj830|aj832|aj|Anderson Jacobson,
 	hc, os,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
-	ind=^J,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cuu1=\E7, hd=\E9, hu=\E8,
+	ind=\n,
 # From: Chris Torek <chris@gyre.umd.edu> Thu, 7 Nov 85 18:21:58 EST
 aj510|Anderson-Jacobson model 510,
 	am, mir,
@@ -21087,27 +24130,27 @@
 	cup=\E#%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EY,
 	dch1=\E'D$<.1*>, 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,
+	kcuf1=\EX, kcuu1=\EY, pad=^?, 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,
+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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cuu1=\E9, ff=^L,
+	hd=\E]s\n\E]W, ht=^I, hts=\E1, hu=\E]s\E9\E]W, ind=\n,
 	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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
+	hts=\E1, hu=\EH, ind=\n, 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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, ff=^L, ht=^I, hts=\E1, ind=\n,
 	tbc=\E2,
 
 #### Miscellaneous obsolete terminals, manufacturers unknown
@@ -21128,29 +24171,36 @@
 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,
+	bel=^G, clear=\030$<30/>, cr=\r, cub1=^H, cud1=\n, 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,
+	ind=\n, kbs=^H, kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K,
 	khome=^Y,
+
+# http://www.bitsavers.org/pdf/datapro/alphanumeric_terminals/Datapro_C25_Datagraphix.pdf
+#
+# DatagraphiX, Inc.
+# (a subsidiary of General Dynamics),
+# P.O. Box 82449, San Diego, California 92138.
+#
 # (d132: removed duplicate :ic=\E5:,
 # merged in capabilities from a BRL entry -- esr)
-d132|datagraphix|datagraphix 132a,
+d132|datagraphix|DatagraphiX 132a,
 	da, db, in,
 	cols#80, lines#30,
-	bel=^G, clear=^L, cnorm=\Em\En, cr=^M, cub1=^H, cud1=^J,
+	bel=^G, clear=^L, cnorm=\Em\En, cr=\r, cub1=^H, cud1=\n,
 	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,
+	dch1=\E6, home=\ET, ht=^I, ich1=\E5, il1=\E3, ind=\n, kbs=^H,
+	kcub1=^H, kcud1=\n, nel=\r\n, 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
+# 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,
+	bel=^G, clear=\E[1;1H\E[2J, cnorm=\E[>12h, cr=\r, cub1=^H,
+	cud1=\n, 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,
@@ -21159,33 +24209,31 @@
 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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, cuf1=^I, cuu1=^O, el=^X,
+	home=^N, ind=\n,
 # 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,
+	acsc=+\^\,Q-S.M0\177`+a:f'g#h#i#jXkClJmFnNo~qUs_tEuPv\\wKxW~
+	     _,
+	clear=\EH\EJ, cub1=^H, cud1=\n, dch1=\EP, ich1=\EQ, kbs=^?,
+	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, rev=\ET, ri=\ES, rmacs=\EG, rmso=\EX,
+	sgr0=\EX, smacs=\EF, smso=\ET, use=vt52-basic,
 env230|envision230|envision 230 graphics terminal,
 	xenl@,
 	enacs@, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rmacs@,
-	sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
-	sgr0=\E[0m$<2>, smacs@, use=vt100,
+	sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;
+	    1%;m$<2>,
+	sgr0=\E[0m$<2>, smacs@, smso=\E[7m, use=vt100+4bsd,
 # 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,
+	bel=^G, cr=\r, cub1=^H, cud1=\n, hd=^\, hu=^^, ind=\n,
 ep40|ep4000|execuport 4000,
 	cols#136, use=ep4080,
 # Adam Thompson <athompso@pangea.ca> tells us:
@@ -21203,7 +24251,7 @@
 ifmr|Informer D304,
 	OTbs, am,
 	cols#80, lines#24,
-	clear=\EZ, cub1=^H, cud1=^J, cuf1=\EC,
+	clear=\EZ, cub1=^H, cud1=\n, 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,
@@ -21212,37 +24260,42 @@
 	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,
+	cbt=\EI, civis=\E`0, clear=\E*$<100>, cnorm=\E`1, cr=\r,
+	cub1=^H, cud1=\n, 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,
+	ed=\EY$<100>, el=\ET, fsl=\r, home=\036$<2>, ht=\011$<5>,
+	hts=\E1, if=/usr/share/tabset/std, il1=\EE$<4>, ind=\n,
 	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>,
+	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{, kcbt=\EI, 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%t%{8}%|%;%?%p1%p3%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+	sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2
+	    %t%{8}%|%;%?%p1%p3%|%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,
+	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,
+	uc=\EG8\EG0, use=ansi+arrows, 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,
+	bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=^_, cuu1=^K,
+	home=^^, ind=\n,
 # 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
@@ -21272,15 +24325,14 @@
 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, 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=\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,
+	cub1=^H, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M, 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, use=ansi+erase, use=ansi+local1,
 ######## ICH/ICH1 VERSUS RMIR/SMIR
 #
 # Some non-curses applications get confused if both ich/ich1 and rmir/smir
@@ -21306,7 +24358,7 @@
 # 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.
+# receive the document in due course.  Don't expect an email acknowledgment.
 #
 # Related standards include "X3.4-1977: American National Standard Code for
 # Information Interchange" (the ASCII standard) and "X3.41.1974:
@@ -21331,8 +24383,8 @@
 # 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.
+# semicolons.  Parameter meanings for most parameterized sequences are
+# described in the notes.
 #
 # Sequence     Sequence                             Parameter   or
 # Mnemonic     Name              Sequence           Value      Mode   terminfo
@@ -21340,7 +24392,7 @@
 # APC  Applicatn Program Command \E _                -         Delim  -
 # BEL  Bell *                    ^G                  -         -      bel
 # BPH  Break Permitted Here *    \E B                -         *      -
-# BS   Backpace *                ^H                  -         EF     -
+# BS   BackSpace *               ^H                  -         EF     -
 # CAN  Cancel *                  ^X                  -         -      -   (A)
 # CBT  Cursor Backward Tab       \E [ Pn Z           1         eF     cbt
 # CCH  Cancel Previous Character \E T                -         -      -
@@ -21518,9 +24570,14 @@
 # (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.
+# (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
@@ -21529,12 +24586,19 @@
 # (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.
+# (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.
+# (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.
 #
@@ -21547,20 +24611,57 @@
 # (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.
+# (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 CCITT 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 CCITT T.416,
+#	49 = 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.
 #
@@ -21570,11 +24671,15 @@
 # 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.
+# (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.
@@ -21584,19 +24689,32 @@
 #
 # (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.
+# (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 (IRM),
+#	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 (SRM),
+#	13 = Format Effector Action Mode (FEAM),
+#	14 = Format Effector Transfer Mode (FETM),
+#	15 = Multiple Area Transfer Mode (MATM),
+#	16 = Transfer Termination Mode (TTM),
+#	17 = Selected Area Transfer Mode (SATM),
+#	18 = Tabulation Stop Mode (TSM),
+#	19 = Editing Boundary Mode (EBM),
+#	20 = Line Feed New Line Mode (LF/NL),
+#	21 = 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.
@@ -21757,7 +24875,7 @@
 #   (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
+# * Some older versions of ANSI.SYS have a bug that causes them to require
 #   ESC [ Pn k as EL rather than the ANSI ESC [ Pn K.  (This is not ECMA-48
 #   compatible.)
 
@@ -21772,10 +24890,10 @@
 # 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 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
@@ -21802,10 +24920,10 @@
 #	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 ?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
@@ -21818,12 +24936,12 @@
 #	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 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
+#	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
@@ -21849,22 +24967,22 @@
 #	CL	key_char_left
 #	CR	key_char_right
 #	CW	key_change_window			create_window
-#	EN	key_end          	kend
+#	EN	key_end			kend
 #	HM	key_home		khome
 #	HP	??
-#	LD	key_delete_line  	kdl1
-#	LF	key_linefeed     			label_off
+#	LD	key_delete_line		kdl1
+#	LF	key_linefeed				label_off
 #	NU	key_next_unlocked_cell
-#	PD	key_page_down   	knp
+#	PD	key_page_down		knp
 #	PL	??
 #	PN	start_print		mc5
 #	PR	??
 #	PS	stop_print		mc4
-#	PU	key_page_up     	kpp		pulse
+#	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
+#	RT	key_return		kent
+#	UP	key_up_arrow		kcuu1		parm_up_cursor
 #	WL	key_word_left
 #	WR	key_word_right
 #
@@ -21929,7 +25047,7 @@
 #
 # 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:
+# capabilities following prtr_non with the following special capabilities:
 # 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,
@@ -21978,12 +25096,13 @@
 # function keys do not use 2-character names, and are available only with
 # terminfo.
 #
-# As of mid-2012, no other terminfo/termcap implementation than ncurses
-# supports this extension; termcap libraries can as noted above make limited
-# use of the feature.
+# Beginning in 2010, NetBSD curses has also provided a "-x" option for
+# tic/infocmp, and uses this database (with a few changes).  There are a few
+# differences, noted in
+#	https://invisible-island.net/ncurses/ncurses-netbsd.html
 #
-# ncurses makes explicit checks for a few user-definable capabilities:  AX, U8,
-# XM.
+# ncurses makes explicit checks for a few user-definable capabilities:  AX, E3,
+# RGB, U8, XM, which are documented in the user_caps(5) manual page.
 #
 #### SCREEN Extensions:
 #
@@ -22003,7 +25122,8 @@
 # "default".
 #
 # XT is harder, since screen's manpage does not give more details.  For that,
-# we must read screen's source-code.  When XT is set, screen assumes
+# we must read screen's source-code.  For example, when XT is set, screen
+# assumes
 #
 # a) OSC 1 sets the title string, e.g., for the icon.  Recent versions of
 #    screen may also set the terminal's name, which is (for xterm) distinct
@@ -22018,18 +25138,39 @@
 #    sequence.  However, because screen uses only termcap, the values returned
 #    by Af/Ab are not usable because they rely on expressions that termcap
 #    does not support.  Therefore, screen uses a hardcoded string to work
-#    around the limitation.
+#    around the limitation.  In a few cases, screen also uses tparm, which
+#    is a terminfo function rather than termcap.
 # f) all entries named "*xterm*" or "*rxvt*" have the bce flag set.
+# g) screen also uses the feature to decide whether to pay attention to other
+#    xterm-related features which are unrelated to the description in the
+#    manual page.
+#
+# Since XT is useful only when the outer terminal matches screen's assumptions,
+# it is appropriate to use it in the derived terminal descriptions such as
+# "screen.xterm", but not in the generic "screen", "screen-bce" entries.
 #
 # The other ISO-2022 features are rarely used, but provided here to make
 # screen's termcap features available.
 #
 #### XTERM Extensions:
 #
-# Most of the xterm extensions are for function-keys.  Since patch #94 (in
+# For a discussion of "xterm", "xterm-256color" as values for TERM, see
+#	https://invisible-island.net/ncurses/ncurses.faq.html#xterm_generic
+#	https://invisible-island.net/ncurses/ncurses.faq.html#xterm_256color
+#
+# For xterm control sequences, see
+#	https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+#
+# For function-keys with modifiers, see
+#	https://invisible-island.net/ncurses/ncurses.faq.html#modified_keys
+#
+# For a discussion of "bracketed paste", see
+#	https://invisible-island.net/xterm/xterm-paste64.html
+#
+# Most of the xterm extensions are for function-keys.  Since xterm patch #94 (in
 # 1999), xterm has supported shift/control/alt/meta modifiers which produce
 # additional function-key strings.  Some other developers copied the feature,
-# though they did not follow xterm's lead in patch #167 (in 2002), to make
+# though they did not follow xterm's lead in xterm patch #167 (in 2002), to make
 # these key definitions less ambiguous.
 #
 # A few terminals provide similar functionality (sending distinct keys when
@@ -22040,7 +25181,20 @@
 # kDC3 kDC4 kDC5 kDC6 kDC7 kDN kDN3 kDN4 kDN5 kDN6 kDN7 kEND3 kEND4 kEND5 kEND6
 # kEND7 kHOM3 kHOM4 kHOM5 kHOM6 kHOM7 kIC3 kIC4 kIC5 kIC6 kIC7 kLFT3 kLFT4
 # kLFT5 kLFT6 kLFT7 kNXT3 kNXT4 kNXT5 kNXT6 kNXT7 kPRV3 kPRV4 kPRV5 kPRV6 kPRV7
-# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 ka2 kb1 kb3 kc2
+# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 kxIN kxOUT ka2 kb1
+# kb3 kc2
+#
+# Bracketed paste is described with these capabilities in vim:
+#
+# BE enables bracketed paste
+# BD disables bracketed paste
+# PS is sent before the pasted text
+# PE is sent after the pasted text
+#
+# vim also uses these names for xterm focus:
+#
+# fe enables focus events
+# fd disables focus events
 #
 # Here are the other xterm-related extensions which are used in this file:
 #
@@ -22051,36 +25205,55 @@
 # Ms modifies the selection/clipboard.  Its parameters are
 #	p1 = the storage unit (clipboard, selection or cut buffer)
 #	p2 = the base64-encoded clipboard content.
+# RV requests the terminal to report secondary device attributes (i.e, version).
+# rv shows the format of the terminal responses, as a regular expression.
 # Se resets the cursor style to the terminal power-on default.
 # Ss is a string capability with one numeric parameter.  It is used to set the
 #    cursor style as described by the DECSCUSR function to a block or
 #    underline.
 # TS is a string capability which acts like "tsl", but uses no parameter and
 #    goes to the first column of the "status line".
+# XF is set/true for terminals which support the xterm focus-in/focus-out
+#    escape sequences sent from the terminal to the host when private mode
+#    1004 is set.  Those are defined as kxIN and kxOUT, to take advantage of
+#    ncurses keypad mode to interpret them like a function key.  Because the
+#    1004 mode is usually combined with other flags to set the mouse protocol,
+#    this flag provides an application with the information that the focus
+#    mode is assumed to be set, e.g., in XM.
 # XM is a string capability which overrides ncurses's built-in string which
 #    enables/disables xterm mouse mode.
-# xm shows the format of the mouse responses.  Parameters are (from zero):
+# xm shows the format of the mouse responses.  Parameters:
 #	p1 = y-ordinate
 #	p2 = x-ordinate
 #	p3 = button
 #	p4 = state, e.g., pressed or released
-#	p6 = y-ordinate starting region
-#	p7 = x-ordinate starting region
-#	p8 = y-ordinate ending region
-#	p9 = x-ordinate ending region
+#	p5 = y-ordinate starting region
+#	p6 = x-ordinate starting region
+#	p7 = y-ordinate ending region
+#	p8 = x-ordinate ending region
 # Other extensions, used in xm:
 #	%u = UTF-8
+# XR requests the terminal to report its version as a free-format string.
+# xr shows the format of the terminal responses, as a regular expression.
 #
 #### Miscellaneous extensions:
 #
+# csr clears the status line
 # gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
 #    This was implemented for the Hurd.
+# rmxx/smxx describes the ECMA-48 strikeout/crossed-out attributes, as an
+#    experimental feature of tmux.
+# CO gives the number of indexed ("ANSI") colors which overlay an RGB color
+#    space.
 # E3 clears the terminal's scrollback buffer.  This was implemented in the
 #    Linux 3.0 kernel as a security feature.  It matches a feature which was
 #    added in xterm patch #107.
+# NQ denotes a terminal which does not support the standard query/response used
+#    in u6/u7 (cursor position) and u8/u9 (device attributes).
 # U8 is a numeric capability which denotes a terminal emulator which does not
 #    support VT100 SI/SO when processing UTF-8 encoding.  Set this to a nonzero
 #    value to enable it.
+# Smulx modifies the appearance of underlines in VTE, December 2017.
 #
 ######## CHANGE HISTORY
 #
@@ -22154,10 +25327,10 @@
 # 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
+#	* 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.
+#	* 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.
@@ -22170,7 +25343,7 @@
 #	* 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.
+#	  and dg200 entries using caps 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):
@@ -22193,7 +25366,7 @@
 #	* 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
+#	* 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
@@ -22340,7 +25513,7 @@
 #	* 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.
+#	* Corrected 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,
@@ -22434,7 +25607,7 @@
 # 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 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):
@@ -22731,12 +25904,12 @@
 #	* 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
+#	* update xterm-xfree86 to current (xterm patch #84), for is2/rs2 changes - TD
 #	* correct initialization string in xterm-r5, add misc other features
-#	  to correspond with xterm patch 84 - TD
+#	  to correspond with xterm patch #84 - TD
 #
 # 1998/12/19
-#	* update xterm-xfree86 to current (patch 90), smcur/rmcur changes - TD
+#	* update xterm-xfree86 to current (xterm patch #90), smcur/rmcur changes - TD
 #	* add Mathew Vernon's mach console entries
 #	* corrections for ncsa function-keys (report by Larry Virden)
 #
@@ -22760,7 +25933,7 @@
 #	* 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
+#	  PC-style keyboards versus strict vt220 compatibility - TD
 #
 # 1999/3/13
 #	* adjust xterm-xfree86 khome/kend to match default PC-style keyboard
@@ -22773,7 +25946,7 @@
 #	  (Jeffrey C Honig)
 #
 # 1999/3/27
-#	* adjust xterm-xfree86 miscellaneous keypad keys, as per patch #94 - TD.
+#	* adjust xterm-xfree86 miscellaneous keypad keys, as per xterm patch #94 - TD.
 #
 # 1999/4/10
 #	* add linux-lat, from RedHat patches to ncurses 4.2
@@ -23008,7 +26181,7 @@
 #	* 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
+#	* update xterm-xfree86 to current (xterm patch #170) -TD
 #	* add screen-bce, screen-s entries -TD
 #	* add xterm-1002, xterm-1003 entries -TD
 #
@@ -23068,7 +26241,7 @@
 #	* similar fixups for cvvis/cnorm various entries -TD
 #
 # 2004-05-22
-#	* remove 'ncv' from xterm-256color (patch 188) -TD
+#	* remove 'ncv' from xterm-256color (xterm patch #188) -TD
 #
 # 2004-06-26
 #	* add mlterm -TD
@@ -23284,7 +26457,7 @@
 #
 # 2007-11-11
 #	* use xterm-xf86-v44 for "xterm-xfree86", reflecting changes to
-#	  xterm starting with patch #216 -TD
+#	  xterm starting with xterm 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
@@ -23353,7 +26526,7 @@
 #
 # 2009-12-19
 #	* add bw (auto-left-margin) to nsterm* entries (Benjamin Sittler)
-#	* rename minix to minix-1.7, add minix entry for Minux3 -TD
+#	* rename minix to minix-1.7, add minix entry for Minix3 -TD
 #
 # 2009-12-26
 #	* add bterm (bogl 0.1.18) -TD
@@ -23374,7 +26547,7 @@
 #	  FreeMiNT by Guido Flohr (from patch/report by Alan Hourihane).
 #
 # 2010-06-12
-#	* add mlterm+256color entry -TD
+#	* add mlterm-256color entry -TD
 #
 # 2010-07-17
 #	* add hard-reset for rs2 to wsvt25 to help ensure that reset ends
@@ -23635,7 +26808,7 @@
 #	* correct padding in sbi entry -TD
 #
 # 2014-06-07
-#	* update xterm-new to patch #305 -TD
+#	* update xterm-new to xterm patch #305 -TD
 #	+ change screen's smso to use SGR 7 (ECMA-80 reverse) rather than SGR 3
 #	  (italic).  This was a long-ago typo in screen 3.1.1 which was
 #	  overlooked until a few terminal emulators implemented the feature -TD
@@ -23702,4 +26875,639 @@
 #	+ add status line to tmux via xterm+sl (patch by Nicholas Marriott).
 #	+ fixes for st 0.5 from testing with tack -TD
 #
+# 2015-10-24
+#	+ updated minitel entries to fix kel problem with emacs, and add
+#	  minitel1b-nb (Alexandre Montaron).
+#	+ reviewed/updated nsterm entry Terminal.app in OSX -TD
+#	+ replace some dead URLs in commands with equivalents from the
+#	  Internet Archive -TD
+#
+# 2015-11-14
+#	+ add bold to pccon+sgr+acs and pccon-base (Tati Chevron).
+#	+ add keys f12-f124 to pccon+keys (Tati Chevron).
+#
+# 2015-11-21
+#	+ fix some inconsistencies in the pccon* entries -TD
+#
+# 2015-11-28
+#	+ add viewdata (Alexandre Montaron).
+#
+# 2016-01-16
+#	+ tidy up comments about hardcoded 256color palette (report by
+#	  Leonardo Brondani Schenkel) -TD
+#	+ add putty-noapp entry, and amend putty entry to use application mode
+#	  for better consistency with xterm (report by Leonardo Brondani
+#	  Schenkel) -TD
+#
+# 2016-04-23
+#	+ add 'oc' capability to xterm+256color, allowing palette reset for
+#	  xterm -TD
+#
+# 2016-05-14
+#	+ modify linux2.6 entry to improve line-drawing -TD
+#	+ make linux3.0 entry the default linux entry (Debian #823658) -TD
+#
+# 2016-05-29
+#	+ modify rs1 for xterm-16color, xterm-88color and xterm-256color to
+#	  reset palette using "oc" string as in linux -TD
+#
+# 2016-06-11
+#	+ use ANSI reply for u8 in xterm-new, to reflect vt220-style responses
+#	  that could be returned -TD
+#	+ added a few capabilities fixed in recent vte -TD
+#
+# 2016-08-17
+#	+ correct a typo in interix -TD
+#
+# 2016-09-24
+#	+ updated minitel entries to use status line with screen(1), as well as
+#	  printing special G2 videotex chars like french accentuated glyph
+#	  using special cap XC= (patch by Alexandre Montaron).
+#
+# 2016-10-01
+#	+ add linux-m1 minitel entries (patch by Alexandre Montaron).
+#	+ correct rs2 string for vt100-nam -TD
+#
+# 2016-11-26
+#	+ modify linux-16color to not mask dim, standout or reverse with the
+#	  ncv capability -TD
+#	+ add 0.1sec mandatory delay to flash capabilities using the VT100
+#	  reverse-video control -TD
+#	+ omit selection of ISO-8859-1 for G0 in enacs capability from linux2.6
+#	  entry, to avoid conflict with the user-defined mapping.  The reset
+#	  feature will use ISO-8859-1 in any case (Mikulas Patocka).
+#
+# 2016-12-30
+#	+ merge current st description (report by Harry Gindi) -TD
+#
+# 2016-12-31
+#	+ modify flash capability for linux and wyse entries to put the delay
+#	  between the reverse/normal escapes rather than after -TD
+#
+# 2017-01-28
+#	+ minor comment-fixes to help automate links to bug-urls -TD
+#	+ add dvtm, dvtm-256color -TD
+#	+ add settings corresponding to xterm-keys option to tmux entry to
+#	  reflect upcoming change to make that option "on" by default
+#	  (patch by Nicholas Marriott).
+#	+ uncancel Ms in tmux entry (Harry Gindi, Nicholas Marriott).
+#	+ add dumb-emacs-ansi -TD
+#
+# 2017-03-05
+#	+ correct a few spelling errors in comments -TD
+#	+ add fbterm -TD
+#
+# 2017-03-11
+#	+ add vt100+4bsd building block, use that for older terminals rather
+#	  than "vt100" which is now mostly used as a building block for
+#	  terminal emulators -TD
+#	+ modify vt100 rs2 string to reset vt52 mode and scrolling regions
+#	  (report/analysis by Robert King) -TD
+#
+# 2017-04-01
+#	+ minor fixes for vt100+4bsd, e.g., delay in sgr for consistency -TD
+#	+ add smso for env230, to match sgr -TD
+#	+ remove p7/protect from sgr in fbterm -TD
+#	+ drop setf/setb from fbterm; setaf/setab are enough -TD
+#	+ make xterm-pcolor sgr consistent with other capabilities -TD
+#	+ add rmxx/smxx ECMA-48 strikeout extension to tmux and xterm-basic
+#	  (discussion with Nicholas Marriott)
+#
+# 2017-04-22
+#	+ correct missing comma-separator between string capabilities in
+#	  icl6402 and m2-nam -TD
+#	+ update formatting with ncurses 6.0.20170422 -TD
+#	+ restore rmir/smir in ansi+idc to better match original ansiterm+idc,
+#	  add alias ansiterm (report by Robert King).
+#
+# 2017-05-13
+#	+ reformatted using hexadecimal numbers to improve readability -TD
+#
+# 2017-07-29
+#	+ update interix entry using tack and SFU on Windows 7 Ultimate -TD
+#	+ use ^? for kdch1 in interix (reported by Jonathan de Boyne Pollard)
+#	+ add "rep" to xterm-new, available since 1997/01/26 -TD
+#	+ move SGR 24 and 27 from vte-2014 to vte-2012 (request by Alain
+#	  Williams) -TD
+#
+# 2017-08-16
+#	+ update "iterm" entry -TD
+#	+ add "iterm2" entry (report by Leonardo Brondani Schenkel) -TD
+#
+# 2017-08-18
+#	+ update notes on user-defined capabilities -TD
+#
+# 2017-08-26
+#	+ fixes for "iterm2" (report by Leonardo Brondani Schenkel) -TD
+#
+# 2017-11-11
+#	+ add "op" to xterm+256setaf -TD
+#	+ reviewed terminology 1.0.0 -TD
+#	+ reviewed st 0.7 -TD
+#
+# 2017-11-18
+#	+ modify old terminology entry and a few other terminal emulators to
+#	  account for xon -TD
+#	+ correct sgr string for tmux, which used screen's "standout" code
+#	  rather than the standard code (patch by Roman Kagan)
+#	+ correct sgr/sgr0 strings in a few other cases reported by tic, making
+#	  those correspond to the non-sgr settings where they differ, but
+#	  otherwise use ECMA-48 consistently:
+#	  jaixterm, aixterm, att5420_2, att4424, att500, decansi, d410-7b,
+#	  dm80, hpterm, emu-220, hp2, iTerm2.app, mterm-ansi, ncrvt100an,
+#	  st-0.7, vi603, vwmterm -TD
+#
+# 2017-12-30
+#	+ add xterm+noalt, xterm+titlestack, xterm+alt1049, xterm+alt+title
+#	  blocks from xterm #331 -TD
+#	+ add xterm+direct, xterm+indirect, xterm-direct entries from xterm
+#	  #331 -TD
+#	+ modify xterm+256color and xterm+256setaf to use correct number of
+#	  color pairs, for ncurses 6.1 -TD
+#	+ add rs1 capability to xterm-256color -TD
+#	+ modify xterm-r5, xterm-r6 and xterm-xf86-v32 to use xterm+kbs to
+#	  match xterm #272, reflecting packager's changes -TD
+#	+ remove "boolean" Se, Ss from st-0.7 -TD
+#
+# 2018-01-04
+#	+ add konsole-direct and st-direct -TD
+#	+ remove unsupported "Tc" capability from st-0.7; use st-direct if
+#	  direct-colors are wanted -TD
+#
+# 2018-01-17
+#	+ add vte-direct -TD
+#	+ add XT, hpa, indn, and vpa to screen, and invis, E3 to tmux (patch by
+#	  Pierre Carru)
+#
+# 2018-01-21
+#	+ use xterm+sm+1006 in xterm-new, vte-2014 -TD
+#	+ use xterm+x11mouse in iterm, iterm2, mlterm3 because xterm's 1006
+#	  mode does not work with those programs.  konsole is debatable -TD
+#	+ add "termite" entry (report by Markus Pfeiffer) -TD
+#
+# 2018-01-27
+#	+ trim "XT" from screen entry -TD
+#	+ modify iterm to use xterm+sl-twm building block -TD
+#	+ mark konsole-420pc, konsole-vt100, konsole-xf3x obsolete reflecting
+#	  konsole's removal in 2008 -TD
+#	+ expanded the history section of konsole to explain its flawed
+#	  imitation of xterm's keyboard -TD
+#	+ use xterm+x11mouse in screen.* entries because screen does not yet
+#	  support xterm's 1006 mode -TD
+#	+ add nsterm-build400 for macOS 10.13 -TD
+#	+ add ansi+idc1, use that in ansi+idc adding dch for consistency -TD
+#	+ update vte to vte-2017 -TD
+#	+ add ecma+strikeout to vte-2017 -TD
+#	+ add iterm2-direct -TD
+#	+ updated teraterm, added teraterm-256color -TD
+#	+ add mlterm-direct -TD
+#	+ add descriptions for ANSI building-blocks -TD
+#
+# 2018-02-24
+#	+ correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD
+#	+ fix remaining flash capabilities with trailing mandatory delays -TD
+#
+# 2018-03-17
+#	+ trim some redundant capabilities from st-0.7 -TD
+#	+ trim unnecessary setf/setb from interix -TD
+#
+# 2018-05-19
+#	+ trim spurious whitespace from tmux in 2018-02-24 changes;
+#	  fix some inconsistencies in/between tmux- and iterm2-entries for SGR
+#	  (report by C Anthony Risinger)
+#	+ improve iterm2 using some xterm features which it has adapted -TD
+#
+# 2018-06-30
+#	+ add acsc string to vi200 (Nibby Nebbulous)
+#	  add right/down-arrow to vi200's acsc -TD
+#
+# 2018-07-21
+#	+ corrected acsc for wy50 -TD
+#	+ add wy50 and wy60 shifted function-keys as kF1 to kF16 -TD
+#	+ remove ansi+rep mis-added to interix in 2018-02-23 -TD
+#
+# 2018-07-28
+#	+ fix typo in tvi955 -TD
+#	+ corrected acsc for regent60 -TD
+#	+ add alias n7900 -TD
+#
+# 2018-09-29
+#	+ corrected acsc for tvi950 -TD
+#	+ remove bogus kf0 from tvi950 -TD
+#	+ added function-key definitions to agree with TeleVideo 950 manual -TD
+#	+ add bel to tvi950 -TD
+#	+ add shifted function-keys to regent60 -TD
+#	+ renumber regent40 function-keys to match manual -TD
+#	+ add cd (clr_eos) to adds200 -TD
+#
+# 2018-10-27
+#	+ add OpenGL clients alacritty and kitty -TD
+#	+ add Smulx for tmux, vte-2018 -Nicholas Marriott
+#
+# 2018-12-15
+#	+ fix a typo in comments (Aaron Gyes).
+#	+ add nsterm-build309 to replace nsterm-256color, assigning the latter
+#	  as an alias of nsterm, to make mouse work with nsterm-256color -TD
+#	+ base gnome-256color entry on "gnome", not "vte", for consistency -TD
+#
+# 2019-01-12
+#	+ add nsterm-direct -TD
+#	+ use SGR 1006 mouse for konsole-base -TD
+#	+ use SGR 1006 mouse for putty -TD
+#	+ add ti703/ti707, ti703-w/ti707-w (Robert Clausecker)
+#
+# 2019-02-23
+#	+ fix typo in adds200 -TD
+#
+# 2019-03-30
+#	+ add "screen5", to mention italics (report by Stefan Assmann)
+#	+ modify description of xterm+x11hilite to eliminate unused p5 -TD
+#
+# 2019-05-18
+#	+ update xterm-new to xterm patch #345 -TD
+#	+ add/use xterm+keypad in xterm-new (report by Alain D D Williams) -TD
+#	+ update terminator entry -TD
+#	+ remove hard-tabs from ti703 (report by Robert Clausecker)
+#	+ add Smol/Rmol for mintty, vte-2018 -Nicholas Marriott
+#
+# 2019-06-01
+#	+ add rs1 to konsole, mlterm -TD
+#
+# 2019-06-08
+#	+ add mintty, mintty-direct (Thomas Wolff)
+# 2019-06-09
+#	+ comment-out some user-defined capabilities in mintty+common to allow
+#	  builds with existing releases 5.9-6.1 -TD
+#
+# 2019-06-30
+#	+ add ms-terminal -TD
+#	+ add vscode, vscode-direct -TD
+#	+ use ecma+index in screen, st -TD
+#
+# 2019-07-06
+#	+ add domterm -TD
+#	+ improve comments for recent changes, add alias xterm.js -TD
+#
+# 2019-08-03
+#	+ amend the change to screen, because tmux relies upon that entry
+#	  and does not support that feature (Debian #933572) -TD
+#	+ updated ms-terminal entry & notes -TD
+#	+ updated kitty entry & notes -TD
+#	+ updated alacritty+common entry & notes -TD
+#	+ use xterm+sl-twm for consistency -TD
+#
+# 2019-09-22
+#	+ correct a comment -TD
+#
+# 2019-10-26
+#	+ modify linux-16color to accommodate Linux console driver change in
+#	  early 2018 (report by Dino Petrucci).
+#
+# 2019-11-02
+#	+ add "xterm-mono" to help packagers (report by Sven Joachim) -TD
+#
+# 2019-11-09
+#	+ drop ich1 from rxvt-basic, Eterm and mlterm to improve compatibility
+#	  with old non-curses programs -TD
+#	+ reviewed st 0.8.2, updated some details -TD
+#	+ use ansi+rep several places -TD
+#
+# 2020-01-12
+#	+ update alacritty entries for 0.4.0 (prompted by patch by
+#	  Christian Duerr) -TD
+#
+# 2020-01-18
+#	+ spelling fixes per codespell -TD
+#	+ improve xm example for xterm+x11mouse, xterm+sm+1006 -TD
+#
+# 2020-02-22
+#	+ improve vt50h and vt52 based on DECScope manual -TD
+#	+ add/use vt52+keypad and vt52-basic -TD
+#
+# 2020-04-18
+#	+ use vt52+keypad in xterm-vt52, from xterm #354 -TD
+#
+# 2020-04-25
+#	+ use vt100+fnkeys in putty -TD
+#
+# 2020-05-02
+#	+ add details on the change to Linux SGR 21 in 2018 -TD
+#	+ add xterm-direct16 and xterm-direct256 -TD
+#
+# 2020-05-03
+#	+ fix some dead URLs -TD
+#
+# 2020-05-16
+#	+ update notes on vscode / xterm.js -TD
+#
+# 2020-05-30
+#	+ re-enable "bel" in konsole-base (report by Nia Huang)
+#	+ add linux-s entry (patch by Alexandre Montaron).
+#
+# 2020-06-06
+#	+ add xterm+256color2, xterm+88color2, to deprecate nonstandard usage
+#	  in xterm+256color, xterm+88color -TD
+#	+ add shifted Linux console keys in linux+sfkeys entry for
+#	  screen.linux (report by Alexandre Montaron).
+#	+ use vt100+enq in screen (report by Alexandre Montaron).
+#	+ add screen.linux-s alias (suggested by Alexandre Montaron).
+#
+# 2020-07-11
+#	+ fix pound-sign mapping in acsc of linux2.6 entry (report by Ingo
+#	  Bruckl).
+#
+# 2020-08-28
+#	+ correct icl6404 csr (report by Florian Weimer).
+#	+ correct ti916 cup (report by Florian Weimer).
+#	+ improve ndr9500 (report by Florian Weimer).
+#
+# 2020-09-05
+#	+ correct description of vt330/vt340 (Ross Combs).
+#
+# 2020-09-19
+#	+ update mlterm3 for 3.9.0 (report by Premysl Eric Janouch).
+#
+# 2020-09-29
+#	+ add tmux-direct (tmux #2370)
+#	+ simplify mlterm initialization with DECSTR -TD
+#	+ change tmux's kbs to ^? (report by Premysl Eric Janouch)
+#
+# 2020-10-10
+#	+ correct sgr in aaa+rv (report by Florian Weimer) -TD
+#	+ fix some sgr inconsistencies in d230c, ibm6153, ibm6154,
+#	  ncrvt100an -TD
+#
+# 2020-10-17
+#	+ expanded notes about tek4107 -TD
+#
+# 2020-11-07
+#	+ update kitty+common -TD
+#	+ add putty+screen and putty-screen (suggested by Alexandre Montaron).
+#
+# 2020-11-28
+#	+ add Smulx to alacritty (Christian Duerr).
+#	+ add rep to PuTTY -TD
+#	+ add putty+keypad -TD
+#
+# 2020-12-05
+#	+ correct mlterm3 kf1-kf4 (Debian #975322) -TD
+#	+ add flash to mlterm3 -TD
+#
+# 2020-12-27
+#	+ update terminology to 1.8.1 -TD
+#
+# 2021-01-16
+#	+ add comment for linux2.6 regarding CONFIG_CONSOLE_TRANSLATIONS
+#	  (report by Patrick McDermott) -TD
+#
+# 2021-01-25
+#	+ split-out att610+cvis, vt220+cvis, vt220+cvis8 -TD
+#	+ add vt220-base, for terminal emulators which generally have not
+#	  supported att610's blinking cursor control -TD
+#	+ use vt220+cvis in vt220, etc -TD
+#	+ use att610+cvis, xterm+tmux and ansi+enq in kitty -TD
+#	+ use vt220+cvis in st, terminology, termite since they ignore
+#	  blinking-cursor detail in att610+cvis -TD
+#
+# 2021-02-20
+#	+ add/use vt220+pcedit and vt220+vtedit  -TD
+#	+ add scrt/securecrt and absolute -TD
+#	+ add nel to xterm-new, though supported since X11R5 -TD
+#	+ add/use xterm+nofkeys -TD
+#	+ move use of ecma+italics from xterm-basic to xterm+nofkeys -TD
+#
+# 2021-02-27
+#	+ remove a duplicate "use" in xterm-vt220 -TD
+#
+# 2021-03-14
+#	+ correct use-ordering in some xterm-direct flavors -TD
+#
+# 2021-03-20
+#	+ add hterm, hterm-256color (Mike Frysinger)
+#
+# 2021-06-26
+#	+ use default colors in pccon "op" -TD
+#	+ correct rmacs/smacs in aaa+dec, aaa+rv -TD
+#	+ add hpterm-color2 and hp98550-color (Martin Trusler)
+#
+# 2021-07-17
+#	+ correct typo in "vip" comments (report by Nick Black), reviewed this
+#	  against Glink manual -TD
+#	+ fill in some missing pieces for pccon, to make it comparable to the
+#	  vt220 entry -TD
+#
+# 2021-07-24
+#	+ trim "flash" from pccon+base -TD
+#	+ revert change for aaa+rv -TD
+#	+ add workaround for Windows Terminal's problems with CR/LF mapping to
+#	  ms-terminal (patch by Juergen Pfeifer).
+#	+ review/update current Windows Terminal vs ms-terminal -TD
+#
+# 2021-07-31
+#	+ add extensions in xterm+tmux and ecma+strikeout to ms-terminal,
+#	  but cancel the non-working Cr and Ms capabilities -TD
+#	+ add foot and foot-direct -TD
+#
+# 2021-08-15
+#	+ fix missing "%d" for setaf/setab code 8-15 in xterm+direct16 (report
+#	  by Florian Weimer) -TD
+#
+# 2021-08-16
+#	+ corrected tsl capability for terminator -TD
+#
+# 2021-09-04
+#	+ modify linux3.0 entry to reflect default mapping of shift-tab by
+#	  kbd 1.14 (report by Jan Engelhardt) -TD
+#
+# 2021-09-11
+#	+ add testing note for xterm-{hp|sco|sun} -TD
+#	+ corrected description for ansi.sys-old -TD
+#	+ add xterm+nopcfkeys, to fill in keys for xterm-hp, xterm-sun -TD
+#	+ use hp+arrows in a few places -TD
+#	+ use hp+pfk-cr in a few places -TD
+#
+# 2021-09-21
+#	+ add kbeg to xterm+keypad to accommodate termcap applications -TD
+#	+ add smglp and smgrp to vt420+lrmm, to provide useful data for the
+#	  "tabs" +m option -TD
+#
+# 2021-10-09
+#	+ fill in some details for infoton -TD
+#	+ fix spelling/consistency in several descriptions -TD
+#	+ use vt420+lrmm in vt420 -TD
+#
+# 2021-10-13
+#	+ trim some redundant definitions -TD
+#
+# 2021-11-13
+#	+ add xterm+sl-alt, use that in foot+base (report by Jonas Grosse
+#	  Sundrup) -TD
+#
+# 2021-11-20
+#	+ add dim, ecma+strikeout to st-0.6 -TD
+#
+# 2021-11-27
+#	+ fix errata in description fields (report by Eric Lindblad) -TD
+#	+ add x10term+sl, aixterm+sl, ncr260vp+sl, ncr260vp+vt, wyse+sl -TD
+#
+# 2022-01-23
+#	+ update kitty -TD
+#
+# 2022-03-12
+#	+ add xterm+acs building-block -TD
+#	+ add xterm-p370, for use in older terminals -TD
+#	+ add dec+sl to xterm-new, per patch #371 -TD
+#	+ add mosh and mosh-256color -TD
+#
+# 2022-03-19
+#	+ add xgterm -TD
+#	+ correct setal in mintty/tmux entries, add to vte-2018 (report by
+#	  Robert Lange)
+#	+ add blink to vte-2018 (report by Robert Lange)
+#
+# 2022-03-26
+#	+ update teken -TD
+#	+ add teken-16color, teken-vt and teken-sc -TD
+#	+ add a few missing details for vte-2018 (report by Robert Lange) -TD
+#
+# 2022-03-27
+#	+ make description-fields distinct -TD
+#
+# 2022-04-30
+#	+ modify samples for xterm mouse 1002/1003 modes to use 1006 mode, and
+#	  also provide for focus in/out responses -TD
+#
+# 2022-05-28
+#	+ expanded notes for teken/syscons -TD
+#
+# 2022-06-04
+#	+ remove u6-u9 from teken-2018 -TD
+#	+ set "xterm-new" to "xterm-p370", add "xterm-p371" -TD
+#
+# 2022-06-18
+#	+ revise kon/kon2/jfbterm to undo "linux2.6" change to
+#	  smacs/rmacs/enacs (Debian #1012800) -TD
+#	+ amended note for att610+cvis0, as per documentation for att610,
+#	  att620, att730 -TD
+#
+# 2022-06-25
+#	+ correct dsl in dec+sl (report by Rajeev Pillai) -TD
+#	+ add/use ansi+cpr, decid+cpr -TD
+#
+# 2022-07-03
+#	+ use NQ to flag entries where the terminal does not support query and
+#	  response -TD
+#	+ use ansi+enq and decid+cpr in cases where the terminal probably
+#	  supported the u6-u9 extension -TD
+#	+ add/use apollo+vt132, xterm+alt47 -TD
+#
+# 2022-08-27
+#	+ modify nsterm to use xterm+alt1049 (report by Paul Handly) -TD
+#	+ modify putty to use xterm+alt1049 -TD
+#
+# 2022-12-24
+#	+ add/use bracketed+paste to help identify terminals supporting this
+#	  xterm feature (prompted by discussion with Bram Moolenaar) -TD
+#
+# 2022-12-29
+#	+ correct PS vs PE names in bracketed+paste (report by Bram Moolenaar)
+#	  -TD
+#
+# 2023-01-07
+#	+ add comment to bracketed+paste explaining that vim patch 9.0.1117 is
+#	  needed for use with the updated xterm descriptions (suggested by Bram
+#	  Moolenaar).
+#	+ add RV report+version (suggested by Bram Moolenaar).
+#
+# 2023-01-14
+#	+ change RV to XR/xr, to avoid conflict with pre-existing usage in vim,
+#	  to use RV/rv to denote DA2 and its response (discussion with Bram
+#	  Moolenaar) -TD
+#	+ add XF flag to xterm+focus so that termcap applications can be aware
+#	  of terminals which may support focus in/out -TD
+#	+ use xterm+focus in xterm-p370 and tmux -TD
+#
+# 2023-01-28
+#	+ document XF, kxIN and kxOUT -TD
+#	+ add note on sun/wscons/cmdtool/shelltool -TD
+#
+# 2023-04-01
+#	+ remove DECCOLM+DECSCLM from foot (patch by Daniel Ekloef).
+#
+# 2023-04-08
+#	+ add xterm+focus to alacritty+common (patch by Christian Duerr).
+#
+# 2023-05-08
+#	+ add mode 1004 to xterm+sm+1006 from xterm #380 -TD
+#
+# 2023-06-05
+#	+ add xterm+focus to foot+base (patch by Daniel Ekloef).
+#
+# 2023-07-08
+#	+ add linux+kbs for terminals which imitate xterm's behavior with
+#	  Linux -TD
+#
+# 2023-07-15
+#	+ mention E3 in regard to user_caps(5) -TD
+#
+# 2023-08-12
+#	+ add/use putty+cursor to reflect amending of modified cursor-keys in
+#	  2021 -TD
+#	+ add ecma+strikeout to putty -TD
+#
+# 2023-10-21
+#	+ use oldxterm+sm+1006 in vte-2014 (report by Benno Schulenberg) -TD
+#	+ add ansi+apparrows -TD
+#
+# 2023-10-28
+#	+ move xterm focus mode 1004 from xterm+sm+1006 into xterm+focus as
+#	  fe/fd capabilities, like vim (vim-pr #13440).
+#
+# 2023-11-11
+#	+ used "infocmp -u" to help trim redundant capabilities -TD
+#
+# 2023-12-09
+#	+ remove xterm+sm+1006 from tmux (Debian #1057688).
+#	+ used "infocmp -u" to help trim redundant capabilities -TD
+#
+# 2023-12-16
+#	+ used "infocmp -u" to help trim redundant capabilities -TD
+#
+# 2023-12-30
+#	+ add ms-vt100-16color, winconsole -TD
+#	+ add rio, rio-direct -TD
+#	+ add mostlike -TD
+#	+ add wezterm, contour -TD
+#
+# 2024-01-06
+#	+ use ansi+arrows, ansi+apparrows, ansi+csr, ansi+erase, ansi+idc,
+#	  ansi+idc1, ansi+idl, ansi+idl1, ansi+inittabs to trim -TD
+#
+# 2024-01-07
+#	+ restore padding for wy520* and vt320-k311 (report by Sven Joachim).
+#
+# 2024-01-13
+#	+ use ansi+local, ansi+local1, ansi+pp, ansi+rca, ansi+rca2, ansi+sgr
+#	  to trim -TD
+#
+# 2024-01-14
+#	+ use ansi+sgrbold, ansi+sgrdim, ansi+sgrso, ansi+sgrul, ansi+tabs
+#	  ecma+color, ecma+sgr, vt100+4bsd, vt100+pfkeys, vt220+pcedit
+#	  xterm+256color, xterm+acs, xterm+nopcfkeys, xterm+pcf2 to trim -TD
+#
+# 2024-01-27
+#	+ amend change to z39-a (report by Sven Joachim).
+#	+ use xterm+nopcfkeys, vt52-basic, dec+pp, dec+sl, vt52+arrows,
+#	  hp+pfk+cr, klone+acs, klone+color, klone+sgr, ncr160wy50+pp
+#	  to trim -TD
+#	+ NetBSD-related fixes for x68k and wsvt52 (patch by Thomas Klausner)
+#
+# 2024-02-11
+#	+ add vt100+noapp, vt100+noapp+pc, xterm+app+pc, xterm+decedit from
+#	  xterm #389 -TD
+#
+# 2024-03-09
+#	+ modify xgterm to work around line-drawing bug -TD
+#	+ use CSI 3J in vte-2017 (report by Sven Joachim)
+#
 ######## SHANTIH!  SHANTIH!  SHANTIH!
diff --git a/misc/terminfo.tmp b/misc/terminfo.tmp
deleted file mode 100644
index 9bf616d..0000000
--- a/misc/terminfo.tmp
+++ /dev/null
@@ -1,23705 +0,0 @@
-######## 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.549 $
-#	$Date: 2015/07/25 19:27:20 $
-#
-# 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 /system/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[3g,
-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+csr|ansi scroll-region plus cursor save & restore,
-	csr=\E[%i%p1%d;%p2%dr, rc=\E8, sc=\E7,
-
-# The normal (ANSI) flavor of "media copy" building block asserts that
-# characters sent to the printer do not echo on the screen. DEC terminals
-# can also be put into autoprinter mode, where each line is sent to the
-# printer as you move off that line, e.g., by a carriage return.
-ansi+pp|ansi printer port,
-	mc5i,
-	mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
-dec+pp|DEC autoprinter mode,
-	mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i,
-
-# 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, 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, dispc=\E=%p1%dg, ech=\E[%p1%dX,
-	hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-	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-mini, use=ansi+local1,
-
-# 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[3g,
-	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[3g,
-	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"p, 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,
-
-# 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.
-#
-# <pfkey> capability for F1-F48 -TD
-ansi.sys|ANSI.SYS 3.1 and later versions,
-	el=\E[K, 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,
-	pfkey=\E[0;%?%p1%{11}%<%t%'\:'%e%p1%{13}%<%t%'z'%e%p1%{23}%<%t%'G'%e%p1%{25}%<%t%'p'%e%p1%'#'%<%t%'E'%e%p1%'%'%<%t%'f'%e%p1%'/'%<%t%'C'%e%{92}%;%p1%+%d;%p2"%s"p,
-	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,
-
-#### Atari ST terminals
-
-# From Guido Flohr <gufl0000@stud.uni-sb.de>.
-#
-tw52|tw52-color|Toswin window manager with color,
-	bce,
-	colors#16, pairs#256,
-	oc=\Eb?\Ec0, op=\Eb?\Ec0,
-	setab=\Ec%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
-	setaf=\Eb%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
-	setb=\Ec%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
-	setf=\Eb%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
-	use=tw52-m,
-tw52-m|Toswin window manager monochrome,
-	ul,
-	ma#999,
-	bold=\Eya, dch1=\Ea, dim=\EyB,
-	is2=\Ev\Eq\Ez_\Ee\Ei\Eb?\Ec0, rev=\EyP, rmso=\EzQ,
-	rmul=\EzH, rs2=\Ev\Eq\Ez_\Ee\Ei\Eb?\Ec0, sgr0=\Ez_,
-	smso=\EyQ, smul=\EyH, use=at-m,
-tt52|Atari TT medium and high resolution,
-	lines#30, use=at-color,
-st52-color|at-color|atari-color|atari_st-color|Atari ST with color,
-	bce,
-	colors#16, pairs#256,
-	is2=\Ev\Eq\Ee\Eb1\Ec0, rs2=\Ev\Eq\Ee\Eb1\Ec0,
-	setab=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
-	setaf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
-	setb=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
-	setf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
-	use=st52,
-st52|st52-m|at|at-m|atari|atari-m|atari_st|atarist-m|Atari ST,
-	am, eo, mir, npc,
-	cols#80, it#8, lines#24,
-	bel=^G, civis=\Ef, clear=\EE, 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, el1=\Eo, home=\EH, ht=^I,
-	il1=\EL, ind=^J, is2=\Ev\Eq\Ee, kLFT=\Ed, kRIT=\Ec, kbs=^H,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\177,
-	kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es,
-	kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EQ,
-	kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV, kf8=\EW,
-	kf9=\EX, khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb, kpp=\Ea,
-	kund=\EK, nel=^M^J, rc=\Ek, rev=\Ep, ri=\EI, rmso=\Eq,
-	rs2=\Ev\Eq\Ee, sc=\Ej, sgr0=\Eq, smso=\Ep,
-tw100|toswin vt100 window mgr,
-	eo, mir, msgr, xon,
-	colors#8, cols#80, it#8, lines#24, pairs#64, vt#3,
-	acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\Ef,
-	clear=\E[2J\E[H, cnorm=\Ee, 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, dch1=\Ea, dim=\E[2m, 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@, il1=\EL, ind=^J, is2=\E<\E)0, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\177,
-	kf1=\EOP, kf10=\EOY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es,
-	kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EOQ,
-	kf20=\Ey, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
-	kf8=\EOW, kf9=\EOX, khlp=\EH, khome=\E\EE, kich1=\EI,
-	knp=\Eb, kpp=\E\Ea, kund=\EK, ll=\E[24H, nel=\EE,
-	oc=\E[30;47m, op=\E[30;47m, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=^O, rmcup=\E[?7h, rmir=\Ei, rmkx=\E[?1l\E>,
-	rmso=\E[m, rmul=\E[m,
-	rs1=\E<\E[20l\E[?3;6;9l\E[r\Eq\E(B\017\E)0\E>,
-	sc=\E7,
-	setb=\E[4%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=%t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'%=%t3%e7%;m,
-	setf=\E[3%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=%t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'%=%t3%e7%;m,
-	sgr0=\E[m, smacs=^N, smcup=\E[?7l, smir=\Eh,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-# The entries for stv52 and stv52pc probably need a revision.
-stv52|MiNT virtual console,
-	am, msgr,
-	cols#80, it#8, lines#30,
-	bel=^G, blink=\Er, bold=\EyA, civis=\Ef, clear=\EE,
-	cnorm=\E. \Ee, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E.",
-	dim=\Em, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
-	ind=\n$<2*/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\177, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq,
-	kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew,
-	kf19=\Ex, kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET,
-	kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE,
-	kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK, nel=\r\n$<2*/>,
-	op=\Eb@\EcO, rev=\Ep, ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_,
-	rmso=\Eq, rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_,
-	smcup=\Ev\Ee\Ez_, smso=\Ep, smul=\EyH,
-stv52pc|MiNT virtual console with PC charset,
-	am, msgr,
-	cols#80, it#8, lines#30,
-	acsc=+\257\,\256-\^.v0\333I\374`\177a\260f\370g\361h\261j\331k\277l\332m\300n\305o\377p-q\304r-s_t+u+v+w+x\263y\363z\362{\343|\366}\234~\371,
-	bel=^G, blink=\Er, bold=\EyA, civis=\Ef, clear=\EE,
-	cnorm=\E. \Ee, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E.",
-	dim=\Em, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
-	ind=\n$<2*/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\177, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq,
-	kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew,
-	kf19=\Ex, kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET,
-	kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE,
-	kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK, nel=\r\n$<2*/>,
-	rev=\Ep, ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_, rmso=\Eq,
-	rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_,
-	smso=\Ep, smul=\EyH,
-
-# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
-atari-old|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-old|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,
-
-#### Apple Terminal.app
-
-# nsterm*|Apple_Terminal - AppKit Terminal.app
-#
-# Terminal.app is a Terminal emulator bundled with NeXT's NeXTStep and
-# OPENSTEP/Mach operating systems, and with Apple's Rhapsody, Mac OS X
-# Server and Mac OS X operating systems. There is also a
-# "terminal.app" in GNUStep, but I believe it to be an unrelated
-# codebase and I have not attempted to describe it here.
-#
-# For NeXTStep, OPENSTEP/Mach, Rhapsody and Mac OS X Server 1.0, you
-# are pretty much on your own. Use "nsterm-7-m" and hope for the best.
-# You might also try "nsterm-7" and "nsterm-old" if you suspect your
-# version supports color.
-#
-# To determine the version of Terminal.app you're using by running:
-#
-#     echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION"
-#
-# For Apple_Terminal v309+, use "nsterm-256color" (or "nsterm-bce")
-#
-# For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm")
-#
-# For Apple_Terminal v71+/v100+, use "nsterm-bce".
-#
-# For Apple_Terminal v51+, use "nsterm-7-c" or "nsterm-7-c-s".
-#
-# For Apple_Terminal v41+, use "nsterm-old", or "nsterm-s".
-#
-# For all earlier versions (Apple_Terminal), try "nsterm-7-m"
-# (monochrome) or "nsterm-7" (color); "nsterm-7-m-s" and "nsterm-7-s"
-# might work too, but really you're on your own here since these
-# systems are very obsolete and I can't test them. I do welcome
-# patches, though :).
-
-# Other Terminals:
-#
-# For GNUstep_Terminal, you're probably best off using "linux" or
-# writing your own terminfo.
-
-# For MacTelnet, you're on your own. It's a different codebase, and
-# seems to be somewhere between "vt102", "ncsa" and "xterm-color".
-
-# For iTerm.app, see "iterm".
-
-#
-# 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 (in earlier Mac OS X
-# versions) or only accepts status lines consisting entirely of
-# characters from the first 256 Unicode positions (including C1 but
-# not C0 or DEL.)
-#
-# The Mythology* of AppKit Terminal.app:
-#
-# In the days of NeXTSTep 0.x and 1.x there were two incompatible
-# bundled terminal emulators, Shell and Terminal. Scott Hess wrote a
-# shareware replacement for Terminal called "Stuart" which NeXT bought
-# and used as the basis for the Terminal.app in NeXTstep 2+,
-# OPENSTEP/Mach, Apple Rhapsody, Mac OS X Server 1.0, and Mac OS X. I
-# don't know the TERM_PROGRAM and TERM_PROGRAM_VERSION settings or
-# capabilities for the early versions, but I believe that the
-# TERM_PROGRAM_VERSION may have been reset at some point.
-#
-# The early versions were tailored to the NeXT character set. Sometime
-# after the Apple aquisition the encoding was swiched to MacRoman
-# (initally with serious altcharset bugs due to incomplete conversion
-# of the old NeXT code,) and then later to UTF-8. Alos sometime during
-# or just prior to the early days of Mac OS X, the Terminal grew ANSI
-# 8-color support (initially buggy when combined with attributes, but
-# that was later fixed.) More recently, around Mac OS X version 10.3
-# or so (Terminal.app v100+) xterm-like 16-color support was added. In
-# some versions (for instance 133-1 which shipped with Mac OS X
-# version 10.4) this suffered from the <bce> bug, but that seems to
-# have been fixed in Mac OS X version 10.5 (Terminal.app v240.2+).
-#
-# In the early days of Mac OS X the terminal was fairly buggy and
-# would routinely crash under load. Many of these bugs seem to have
-# been fixed around Mac OS X version 10.3 (Terminal.app v100+) but
-# some may still remain. This change seems to correspond to
-# Terminal.app reporting "xterm-color" as $TERM rather than "vt100" as
-# it did previously.
-#
-# * This may correspond with what actually happened, but I don't
-#   know. It is based on guesswork, hearsay, private correspondence,
-#   my faulty memory, and the following online sources and references:
-#
-# [1] "Three Scotts and a Duane" by Simson L. Garfinkel
-# http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/93.8/93.8.Dec.Community1.html
-#
-# [2] NeXTSTEP entry from Wikipedia, the free encyclopedia
-# https://secure.wikimedia.org/wikipedia/en/wiki/Nextstep
-#
-# * 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-old"
-#     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-old"
-#          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,
-	dim=\E[2m, 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, invis=\E[8m, 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%;%?%p5%t;2%;%?%p7%t;8%;m,
-	sgr0=\E[m, 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%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, use=nsterm+7,
-
-nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
-	acsc=+\335\,\334-\366.\3770#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245,
-	enacs=\E(B\E)0, rmacs=^O,
-	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\017, smacs=^N, use=nsterm+7,
-
-# compare with xterm+sl-twm
-nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
-	wsl#50, use=xterm+sl-twm,
-
-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-old|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,
-
-# In Mac OS X version 10.5 the format of the preferences has changed
-# and a new, more complex technique is needed, e.g.,
-#
-#       python -c 'import sys,objc;NSUserDefaults=objc.lookUpClass(
-#       "NSUserDefaults");ud=NSUserDefaults.alloc();
-#       ud.init();prefs=ud.persistentDomainForName_(
-#       "com.apple.Terminal");prefs["Window Settings"][
-#       prefs["Default Window Settings"]]["TerminalType"
-#       ]=sys.argv[1];ud.setPersistentDomain_forName_(prefs,
-#       "com.apple.Terminal")' nsterm-16color
-#
-# and it is still not settable from the preferences dialog. This is
-# tracked under rdar://problem/7365108 and rdar://problem/7365134
-# in Apple's bug reporter.
-#
-# In OS X 10.7 (Leopard) the TERM which can be set in the preferences dialog
-# defaults to xterm-color.  Alternative selections are ansi, dtterm, rxvt,
-# vt52, vt100, vt102 and xterm.
-nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
-	bw@, mir, npc,
-	civis=\E[?25l, cnorm=\E[?25h, dch=\E[%p1%dP, dch1=\E[P,
-	flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
-	ich=\E[%p1%d@, ich1=\E[@, kdch1=\E[3~, kend=\E[F,
-	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[22~, kf19=\E[33~, kf20=\E[34~, kf5=\E[15~,
-	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
-	knp=\E[6~, kpp=\E[5~, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
-	smcup=\E7\E[?47h, smir=\E[4h, vpa=\E[%i%p1%dd,
-	kLFT5=\E[5D, kRIT5=\E[5C, use=nsterm-c-s-acs,
-
-# The versions of Terminal.app in Mac OS X version 10.3.x seem to have
-# the background color erase feature. The newer version 240.2 in Mac OS X
-# version 10.5 does not.
-#
-# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
-# and D P Schreber comparing to nsterm-c-s-acs.
-#
-# In Mac OS X version 10.4 and earlier, D P Schreber notes that $TERM
-# can be set in Terminal.app, e.g.,
-#
-#	defaults write com.apple.Terminal TermCapString nsterm-bce
-#
-# and that it is not set in Terminal's preferences dialog.
-#
-# Modified for OS X 10.8, omitting bw based on testing with tack -TD
-#
-# Notes:
-# * The terminal description matches the default settings.
-# * The keyboard is configurable via a dialog.
-# * By default khome, kend, knext and kprev are honored only with a
-#   shift-modifier.
-# * There are bindings for control left/right arrow (but not up/down).
-#   Added those to nsterm-16color, which is the version used for OS X 10.6
-# * "Allow VT100 application keypage mode" is by default disabled.
-#   There is no way to press keypad-comma unless application mode is enabled
-#   and used.
-# * 132-column mode stopped working during vttest's tests.  Consider it broken.
-# * CHT, REP, SU, SD are buggy.
-# * ECH works (also in Leopard), but is not used here for compatibility.
-# * The terminal preferences dialog replaces xterm-color by xterm-16color and
-#   xterm-256color.  However, it adds "nsterm", so it is possible to use the
-#   nsterm entry from this file to override the MacPorts (20110404) or
-#   system (20081102) copy of this file.
-# + In OS X 10.8 (Mountain Lion) the TERM which can be set in the preferences
-#   dialog defaults to xterm-256color.  Alternative selections are ansi,
-#   dtterm, rxvt, vt52, vt100, vt102, xterm and xterm-16color.  However,
-#   the menu says "Declare terminal as" without promising to actually emulate
-#   the corresponding terminals.  Indeed, changing TERM does not affect the
-#   emulation itself.  This means that
-#   + the function-keys do not match for dtterm for kf1-kf4 as well as
-#     khome/kend
-#   + the color model is the same for each setting of TERM (does not match
-#     ansi or dtterm).
-#   + the shift/control/meta key modifiers from rxvt and xterm variants are not
-#     recognised except for a few special cases, i.e., kRIT5 and kLFT5.
-#   + the vt52 emulation does not give a usable shell because screen-clearing
-#     does not work as expected.
-#   + selecting "xterm" or "xterm-16color" sets TERM to "xterm-256color".
-# + OSX 10.9 (Yosemite) added more extended keys in the default configuration
-#   as well as unmasking F10 (which had been used in the window manager). Those
-#   keys are listed in this entry.
-nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce),
-	bce, use=nsterm-16color,
-
-# This is tested with OS X 10.8 (Mountain Lion), 2012/08/11
-#	TERM_PROGRAM_VERSION=309
-# Earlier reports state that these differences also apply to OS X 10.7 (Lion),
-#	TERM_PROGRAM_VERSION=303
-nsterm-256color|Terminal.app in OS X 10.8,
-	use=xterm+256setaf, use=nsterm-bce,
-
-nsterm-build326|Terminal.app in OS X 10.9,
-	kDC=\E[3;2~, kLFT=\E[1;2D, kRIT=\E[1;2C, kcbt=\E[Z,
-	kf18=\E[32~, kDC5=\E[3;5~, kDC7=\E[3;5~, kLFT3=\Eb,
-	kLFT5=\E[1;5D, kRIT3=\Ef, kRIT5=\E[1;5C,
-	use=nsterm-256color,
-
-# actually "343.7"
-nsterm-build343|Terminal.app in OS X 10.10,
-	kend=\EOF, khome=\EOH, use=nsterm-build326,
-
-# This is an alias which should always point to the "current" version
-nsterm|Apple_Terminal|AppKit Terminal.app,
-	use=nsterm-build343,
-
-# iTerm.app from http://iterm.sourceforge.net/ is an alternative (and
-# more featureful) terminal emulator for Mac OS X. It is similar
-# enough in capabilities to nsterm-16color that I have derived this
-# description from that one, but as far as I know they share no code.
-# Many of the features are user-configurable, but I attempt only to
-# describe the default configuration.
-#
-# NOTE: When tack tests (csr) + (nel) iTerm.app crashes, so (csr) is
-# disabled.
-iTerm.app|iterm|iTerm.app terminal emulator for Mac OS X,
-	bce, bw@,
-	csr@, dim@, kend=\EOF, khome=\EOH,
-	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+256setaf, use=nsterm-16color,
-
-# 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, 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,
-
-
-#### 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, U8#1,
-	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,
-	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, 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%;%?%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%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{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%{255}%*%{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%{255}%*%{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%{255}%*%{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>.
-linux2.2|linux 2.2.x console,
-	civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
-	cvvis=\E[?25h\E[?8c, use=linux-c-nc,
-
-# Linux 2.6.x has a fix for SI/SO to work with UTF-8 encoding added here:
-#	http://lkml.indiana.edu/hypermail/linux/kernel/0602.2/0868.html
-# Using SI/SO has the drawback that it confuses screen.  SCS would work.
-# However, SCS is buggy (see comment in Debian #515609) -TD
-# Further, this breaks longstanding workarounds for Linux console's line
-# drawing (see Debian 665959) -TD
-linux2.6|linux 2.6.x console,
-	rmacs=^O,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, use=linux2.2,
-
-# The 3.0 kernel adds support for clearing scrollback buffer (capability E3).
-# It is the same as xterm's erase-saved-lines feature.
-linux3.0|linux 3.0 kernels,
-	E3=\E[3J, use=linux2.6,
-
-# This is Linux console for ncurses.
-linux|linux console,
-	use=linux2.2,
-
-# Subject: linux 2.6.26 vt back_color_erase
-# Changes to the Linux console driver broke bce model as reported in
-#	https://bugzilla.novell.com/show_bug.cgi?id=418613
-# apparently from
-#	http://lkml.org/lkml/2008/4/26/305
-#	http://lkml.org/lkml/2008/10/3/66
-linux2.6.26|linux console w/o bce,
-	bce@, use=linux2.6,
-
-# 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,
-
-# 16-color linux console entry; this works with a 256-character
-# console font but bright background colors turn into dim ones when
-# you use a 512-character console font. This uses bold for bright
-# foreground colors and blink for bright background colors.
-linux-16color|linux console with 16 colors,
-	colors#16, ncv#63, pairs#256,
-	setab=\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m,
-	setaf=\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m,
-	use=linux,
-
-# bterm (bogl 0.1.18)
-# Implementation is in bogl-term.c
-# Key capabilities from linux terminfo entry
-#
-# Notes:
-# bterm only supports acs using wide-characters, has case for these: qjxamlkut
-# bterm does not support sgr, since it only processes one parameter -TD
-bterm|bogl virtual terminal,
-	am, bce,
-	colors#8, cols#80, lines#24, pairs#64,
-	acsc=aajjkkllmmqqttuuxx, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
-	cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, 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,
-	op=\E[49m\E[39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m,
-	rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr0=\E[0m, smacs=^N, smso=\E[7m, smul=\E[4m,
-
-#### 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: Samuel Thibault
-# Source: git://git.sv.gnu.org/hurd/gnumach.git
-# Files: i386/i386at/kd.c
-#
-# Added nel, hpa, sgr and removed rmacs, smacs based on source -TD
-mach-gnu|GNU Mach,
-	acsc=+>\,<-\^.v0\333`+a\261f\370g\361h\260i#j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
-	el1=\E[1K, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[@,
-	indn=\E[%p1%dS, invis=\E[8m, nel=\EE, rin=\E[%p1%dT,
-	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,
-	use=mach,
-
-mach-gnu-color|Mach Console with ANSI color,
-	colors#8, pairs#64,
-	op=\E[37;40m, rmso=\E[27m, setab=\E[4%p1%dm,
-	setaf=\E[3%p1%dm, use=mach-gnu,
-
-# 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, xenl, xon,
-	colors#8, it#8, ncv#18, pairs#64,
-	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	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,
-
-#### 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=Oa``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	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[3g,
-	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,
-
-#### SCO consoles
-
-# 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.\2310[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%e;10%;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,
-
-#### SGI consoles
-
-# 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,
-
-#### OpenBSD consoles
-#
-# From: Alexei Malinin <Alexei.Malinin@mail.ru>; October, 2011.
-#
-# The following terminal descriptions for the  AMD/Intel PC console
-# were prepared  based on information contained in  the OpenBSD-4.9
-# termtypes.master and wscons(4) & vga(4) manuals (2010, November).
-#
-# Added bce based on testing with tack -TD
-# Added several capabilities to pccon+base, reading wsemul_vt100_subr.c -TD
-# Changed kbs to DEL and removed keys that duplicate stty settings -TD
-#
-pccon+keys|OpenBSD PC keyboard keys,
-	kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kend=\E[8~, kent=^M, 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~, knp=\E[6~, kpp=\E[5~,
-	krfr=^R,
-pccon+sgr+acs0|sgr and simple ASCII pseudographics for OpenBSD PC console,
-	acsc=+>\,<-\^.v0#`+a\:f\\h#i#j+k+l+m+n+o~p-q-r-s_t+u+v+w+x|y#z#{*|!}#~o,
-	sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m,
-pccon+sgr+acs|sgr and default ASCII pseudographics for OpenBSD PC console,
-	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	enacs=\E)0$<5>, rmacs=\E(B$<5>,
-	sgr=\E[0%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<5>,
-	sgr0=\E[m\E(B$<5>, smacs=\E(0$<5>,
-pccon+colors|ANSI colors for OpenBSD PC console,
-	bce,
-	colors#8, pairs#64,
-	op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-pccon+base|base capabilities for OpenBSD PC console,
-	am, km, mc5i, msgr, npc, nxon, xenl, xon,
-	cols#80, it#8, lines#24,
-	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, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	il1=\E[L, ind=\ED, nel=\EE, rev=\E[7m, ri=\EM, rmam=\E[?7l,
-	rmso=\E[m, rs2=\Ec$<50>, smam=\E[?7h, smso=\E[7m,
-	tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
-pccon0-m|OpenBSD PC console without colors & with simple ASCII pseudographics,
-	use=pccon+base, use=pccon+sgr+acs0, use=pccon+keys,
-pccon0|OpenBSD PC console with simple ASCII pseudographics,
-	use=pccon0-m, use=pccon+colors,
-pccon-m|OpenBSD PC console without colors,
-	use=pccon+base, use=pccon+sgr+acs, use=pccon+keys,
-pccon|OpenBSD PC console,
-	use=pccon-m, use=pccon+colors,
-
-#### 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=/system/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=\2335m, 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%;%?%p4%t;5%;%?%p5%t2%;%?%p7%t8%;%?%p1%p3%|%t;7%;m,
-	sgr0=\2330m, smso=\2337m, smul=\2334m,
-
-# 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,
-	civis=\E[?25l, cnorm=\E[?25h, is2=\E[r\E[25;1H,
-	kdch1=\E[3~, 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, rs1=\Ec,
-	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,
-
-# NetBSD 6.x still uses wscons, with minor changes (2014/02/22) -TD
-#
-# TERM is by default vt100 for the console, wsvt25 for other ttys.
-# Initial testing set TERM=xterm, based on comments by developers, found too
-# many differences to continue in that path.  However, test-results may be
-# useful to people curious about compatibility with xterm.
-#
-# Testing with tack:
-# -----------------
-# Failed: cbt, bel, flash, cvvis, smul (color), blink, invis
-# There is color-bleeding in the color-pairs screen.
-# Attributes do not work with color
-# Failed: vpa/hpa
-# Failed: kf1-kf4, kf13-kf48, khome, kend
-# 	(effectively xterm-r6 for function-keys)
-# None of the function or cursor key-modifiers are encoded.
-# Console hangs in the smm/rmm test if TERM=xterm, does not show test
-#
-# Testing with vttest:
-# -------------------
-# Identifies as vt220 with selective erase
-# 	(however, selective erase refers to DECSCA, SPA)
-# Does not implement vt52
-# Uses spaces to simulate double-size characters
-# Does not support 8-bit controls
-# Does not support VT220 reports
-# Does not support send/receive mode
-# Supports ECH (like rxvt)
-# Does not support DECSCA
-# Does not support any of the ISO-6429 cursor-movement
-# Does not support any of the ISO-6429 miscellaneous tests
-# 	(SL/SR also leave unexpected char on screen too)
-# Background does not change in menu 11.6.9 (SGR 22-27)
-# None of the xterm special features tests work
-netbsd6|NetBSD wscons in 25 line DEC VT100 mode,
-	kbs=\177, 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-debian|freebsd console with debian backspace (25-line ansi mode),
-	kbs=\177, kdch1=\E[3~, use=cons25,
-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,
-
-# Starting with FreeBSD 8, an alternative configuration for syscons is provided,
-# which is intended to be xterm-compatible.  See for example
-#	http://svnweb.freebsd.org/base/stable/8/sys/dev/syscons/
-# in particular scterm-teken.c
-#
-# For FreeBSD 9 and 10:
-# --------------------
-# The /etc/ttys entries for console and other ttys are all configured to set
-# TERM=xterm.
-#
-# Testing with tack:
-# There is no VT100 line-drawing (uses +'s and -'s)
-# Shifted f1-f12 give cons25 codes, rather than xterm function-keys
-#
-# Testing with vttest:
-# Menu 2 diamonds don't work, blink ditto, light background ditto
-# The terminal identifies itself as VT100 with AVO
-# There is no VT52 support
-# There is no doublesize character support
-# The terminal supports ECH (like rxvt)
-# The terminal does not support send/receive mode
-# The terminal supports all of the ISO-6429 cursor-movement
-# The terminal supports some of the ISO-6429 miscellaneous tests
-#	(SL/SR also leave unexpected char on screen too)
-#
-# Considering cons25 as a base, the line-drawing mostly works, but is missing
-# the cells which happen to have ASCII control-character values:
-#	-    ^X    arrow pointing up
-#	.    ^Y    arrow pointing down
-#	i    ^Y    lantern
-#	`    ^D    diamond
-#
-# Those are removed from this entry's acsc string to avoid confusion.
-# The resulting description provides correct line-drawing and function-keys -TD
-teken|syscons with teken,
-	bw@, mir, xenl,
-	acsc=0\333a\260f\370g\361h\261j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
-	civis=\E[?25l, cnorm=\E[?25h, cvvis@, hpa=\E[%i%p1%dG,
-	hts=\EH, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kend=\E[F, kent=^M, 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[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmir=\E[4l,
-	smir=\E[4h, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
-	u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd, use=cons25,
-
-#### 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=+h.k0affggolpnqprrss, 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.
-#
-# added msgr -TD
-vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
-	OTbs, OTpt, am, mir, msgr, 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=/system/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=/system/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
-#
-# Here's a picture of the VT220 editing keypad:
-#	+--------+--------+--------+
-#	| Find   | Insert | Remove |
-#	+--------+--------+--------+
-#	| Select | Prev   | Next   |
-#	+--------+--------+--------+
-vt220|vt200|dec vt220,
-	OTbs, am, 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=/system/share/tabset/vt100,
-	il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	is2=\E[?7h\E[>\E[?1l\E F\E[?4l, kbs=^H, 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~, 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,
-	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, use=ansi+pp,
-	use=ansi+enq,
-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=/system/share/tabset/vt100,
-	il=\233%p1%dL, il1=\233L, ind=\ED,
-	is2=\233?7h\233>\233?1l\E F\233?4l, kbs=^H,
-	kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
-	kdch1=\2333~, 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)
-# added msgr -TD
-vt200-js|vt220-js|dec vt200 series with jump scroll,
-	am, msgr,
-	cols#80,
-	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, 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[?1h\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=/system/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, 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, 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~, nel=\EE, rc=\E8, rev=\E[7m,
-	rf=/system/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,
-	use=dec+pp, use=vt220+keypad, use=dec+sl, use=ansi+enq,
-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=/system/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=/system/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, use=dec+sl,
-
-# (vt420: I removed <kf0>, it collided with <kf10>.  I also restored
-# a missing <sc> -- esr)
-# add msgr and other capabilities from vt220 -TD
-vt420|DEC VT420,
-	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>, civis=\E[?25l,
-	clear=\E[H\E[2J$<50>, 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$<10>, 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$<50>, el=\E[K$<3>, el1=\E[1K,
-	enacs=\E)0, flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I,
-	hts=\EH, ich=\E[%p1%d@, if=/system/share/tabset/vt300,
-	il=\E[%p1%dL, 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~, nel=\EE,
-	rc=\E8, rev=\E[7m$<2>, rf=/system/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[27m, rmul=\E[24m, 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\E(B$<2>, smacs=\E(0$<2>, smam=\E[?7h,
-	smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	use=ansi+pp, use=dec+sl, use=ansi+enq,
-
-# 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|DEC VT520,
-	use=ansi+rca, use=vt420, use=ansi+tabs,
-
-vt525|DEC VT525,
-	use=vt520,
-
-# I just got a brand new Boundless VT520 with that company's "ANSI 2011"
-# Keyboard, which replaces the old LK41R-AA keyboard.
-#
-# In trying to get the function keys to work, I had to cobble my own
-# terminfo.src entry, since the existing vt520 entry doesn't include most of
-# the function keys.  If I blend the entries for "vt420f" and "vt220+keypad"
-# I seem to get them all -Mike Gran
-vt520ansi|Boundless VT520 ANSI,
-	use=ansi+rca, use=vt420f, use=vt220+keypad,
-	use=ansi+tabs,
-
-#### 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, mir, msgr, xenl, xon, XT,
-	colors#8, it#8, ncv#22, pairs#64, U8#1,
-	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, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h\E[?5l, 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,
-	kLFT=\EOD, kRIT=\EOC, 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~, khome=\E[1~, kich1=\E[2~,
-	kind=\EOB, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kri=\EOA,
-	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, vpa=\E[%i%p1%dd, E3=\E[3J, use=putty+fnkeys,
-	use=vt102+enq, use=xterm+sl,
-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,
-	use=xterm+256setaf, 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,
-	use=putty+fnkeys+vt100, use=putty,
-
-putty-sco|putty with SCO function keys,
-	use=putty+fnkeys+sco, use=putty,
-
-# PuTTY has more than one section in its Keyboard configuration:
-# a) backspace/delete, which we ignore since that choice largely depends on
-#    whether one matches Unix and BSD or Linux.
-# b) home/end keys, also ignored because the "rxvt" setting sends keys which
-#    are unrelated to rxvt's actual settings.
-# c) function keys and keypad - this is the interesting part.  None of the
-#    selections match any of their respective namesakes, but they are shown
-#    here to help users who expect that the selections do what is implied.
-#
-# This is the default setting for PuTTY
-putty+fnkeys|fn-keys for PuTTY,
-	use=putty+fnkeys+esc,
-
-putty+fnkeys+esc|ESC[n~ fn-keys for PuTTY,
-	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~,
-
-putty+fnkeys+linux|Linux fn-keys for PuTTY,
-	kf1=\E[[A, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
-	use=putty+fnkeys+esc,
-
-putty+fnkeys+xterm|Xterm R6 fn-keys for PuTTY,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-	use=putty+fnkeys+esc,
-
-putty+fnkeys+vt400|VT400 fn-keys for PuTTY,
-	use=putty+fnkeys+esc,
-
-# Shifted F1 is F11.  F13-F20 inherit from the defaults, and the last distinct
-# key is F20.
-putty+fnkeys+vt100|VT100+ fn-keys for PuTTY,
-	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+fnkeys+esc,
-
-# Unlike xterm-sco, this leaves kmous ambiguous with kf1.
-#
-# Use modifiers to obtain function keys past 12:
-# F1-F12 - normal
-# F13-F24 - shift
-# F25-F36 - control/alt
-# F37-F48 - control/shift
-#
-putty+fnkeys+sco|SCO fn-keys for PuTTY,
-	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, knp=\E[G, kpp=\E[I,
-
-# 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.
-teraterm2.3|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,
-
-# Version 4.59 has regular vt100 line-drawing (so it is no longer necessary
-# to choose a Windows OEM font).
-#
-# Testing with tack:
-#	- it does not have xenl (suppress that)
-#	- underline seems to work with color (modify ncv).
-# Testing with vttest:
-#	- wrapping differs from vt100 (menu 1).
-#	- it recognizes xterm's X10 and normal mouse tracking, but none of the
-#	  other flavors.
-#	- it recognizes the dtterm window controls for reporting size in
-#	  characters and pixels.
-#	- it passes SIGWINCH.
-teraterm4.59|Tera Term Pro,
-	bce, xenl@,
-	ncv#41,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	kmous=\E[M, use=teraterm2.3,
-
-teraterm|Tera Term,
-	use=teraterm4.59,
-
-# 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+,
-
-# expect-5.44.1.15/example/tkterm
-# a minimal subset of a vt100 (compare with "news-unk).
-#
-# The missing "=" in smkx is not a typo (here), but an error in tkterm.
-tt|tkterm|Don Libes' tk text widget terminal emulator,
-	clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, 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, rmkx=\E[?1l\E>, rmso=\E[m, smkx=\E[?1h\E,
-	smso=\E[7m,
-
-######## X TERMINAL EMULATORS
-#### XTERM
-#
-# 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 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,
-xterm-old|antique xterm version,
-	use=xterm-r6,
-# 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, XT,
-	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),
-	blink=\E[5m, ich1@, invis=\E[8m,
-	is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
-	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=ansi+pp,
-	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, kb2=\EOE, kcbt=\E[Z, kent=\EOM,
-	rin=\E[%p1%dT, use=xterm+pcfkeys, use=xterm+tmux,
-	use=xterm-basic,
-
-# This fragment is for people who cannot agree on what the backspace key
-# should send.
-xterm+kbs|fragment for backspace key,
-	kbs=^H,
-#
-# 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, mir, msgr, xenl, AX, XT,
-	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, 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$<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>, kmous=\E[M, meml=\El,
-	memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
-	ritm=\E[23m, 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%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
-	sgr0=\E(B\E[m, sitm=\E[3m, 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, E3=\E[3J, use=ansi+pp, use=xterm+kbs,
-	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,
-
-# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
-# If configured to support 88- or 256-colors (which is fairly common in 2009),
-# xterm also recognizes the control sequences for initc -TD
-xterm-16color|xterm with 16 colors like aixterm,
-	ccc,
-	initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
-	use=ibm+16color, use=xterm-new,
-
-# 256-colors 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@,
-
-xterm+256setaf|xterm 256-color (set-only),
-	ccc@,
-	colors#256, pairs#32767,
-	initc@,
-	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@,
-
-# 88-colors 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,
-
-# This chunk is based on suggestions by Ailin Nemui and Nicholas Marriott, who
-# asked for some of xterm's advanced features to be added to its terminfo
-# entry.  It defines extended capabilities not found in standard terminfo or
-# termcap.  These are useful in tmux, for instance, hence the name.
-#
-# One caveat in adding extended capabilities in ncurses is that if the names
-# are longer than two characters, then they will not be visible through the
-# termcap interface.
-#
-# Ms modifies the selection/clipboard.  Its parameters are
-#	p1 = the storage unit (clipboard, selection or cut buffer)
-#	p2 = the base64-encoded clipboard content.
-#
-# Ss is used to set the cursor style as described by the DECSCUSR
-#	function to a block or underline.
-# Se resets the cursor style to the terminal power-on default.
-#
-# Cs and Cr set and reset the cursor colour.
-xterm+tmux|advanced xterm features used in tmux,
-	Cr=\E]112\007, Cs=\E]12;%p1%s\007,
-	Ms=\E]52;%p1%s;%p2%s\007, Se=\E[2 q, Ss=\E[%p1%d q,
-
-# 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, 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,
-	use=xterm+kbs,
-
-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, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-	use=xterm+kbs,
-
-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,
-
-# This entry assumes that xterm's handling of VT100 SI/SO is disabled by
-# setting the vt100Graphics resource to false.
-xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode,
-	U8#1, use=xterm,
-
-# These building-blocks allow access to the X titlebar and icon name as a
-# status line.  There are a few problems in using them in entries:
-#
-# a) tsl should have a parameter to denote the column on which to transfer to
-#    the status line.
-# b) the "0" code for xterm updates both icon-title and window title.  Some
-#    window managers such as 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 icon-name when using those window managers.
-#
-# The extension "TS" is preferable, because it does not accept a parameter.
-# However, if you are using a non-extended terminfo, "TS" is not visible.
-xterm+sl|access X title line and icon name,
-	hs,
-	dsl=\E]0;\007, fsl=^G, tsl=\E]0;, TS=\E]0;,
-xterm+sl-twm|access X title line (pacify twm-descended window managers),
-	hs,
-	dsl=\E]2;\007, fsl=^G, tsl=\E]2;, TS=\E]2;,
-
-# In contrast, this block can be used for a DEC vt320 and up.  There are two
-# controls used.
-#
-# DECSASD (select active status display)
-#	\E[0$}	Main display
-#	\E[1$}	Status line
-#
-# DECSSDT (select status line type)
-#	\E[0$~	No status line
-#	\E[1$~	Indicator status line
-#	\E[2$~	Host-writable status line
-#
-# The building block assumes that the terminal always shows something at the
-# status line (either the indicator, or status line).  That is because if no
-# status line is used, then the terminal makes that line part of the user
-# window, changing its size without notice.
-#
-# Because there is no "esl" (enable status line) capability, the "tsl"
-# capability ensures that the status line is host-writable.  A DEC terminal
-# will clear the status line when changing from indicator to host-writable
-# mode.
-#
-# Once on the status line, the row part of cursor addressing is ignored.  Since
-# tsl expects a parameter (to specify the column), the shortest addressing that
-# can be used for this purpose is HPA, e.g., \E[5d to go to column 5.
-#
-dec+sl|DEC VTxx status line,
-	eslok, hs,
-	dsl=\E[1$~, fsl=\E[0$}, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
-
-#
-# 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,
-	sgr=%?%p9%t\016%e\017%;B\E[0%?%p6%t;1%;%?%p2%t;1%;%?%p1%p3%|%t;7%;m,
-	smso=\E[7m, smul=\E[1m, use=xterm-old,
-
-# 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,
-
-#### XTERM Mouse
-# The xterm mouse protocol is used by other terminal emulators.
-# In this section, two extended capabilities are used to illustrate the mouse
-# protocol: XM and xm.  The "XM" capability is recognized by ncurses to allow
-# enabling/disabling other mouse protocols.  The "xm" capability describes the
-# mouse response; currently there is no interpreter which would use this
-# information to make the mouse support completely data-driven.
-
-# Here is the "original" xterm mouse protocol.
-#
-# First seen in X10.3, February 1986, this likely dates from 1985 based on the
-# copyright dates in the sources.  A comment in charproc.c notes "MIT bogus
-# sequence", referring to the fact that it does not correspond to a "real"
-# terminal.  The mouse responses for the X10 protocol are sent only for
-# button-presses.
-xterm+x10mouse|X10 xterm mouse protocol,
-	kmous=\E[M, XM=\E[?9%?%p1%{1}%=%th%el%;,
-	xm=\E[M%p3%' '%+%c%p2%'!'%+%c%p1%'!'%+%c,
-xterm-x10mouse|X10 xterm mouse,
-	use=xterm+x10mouse, use=xterm,
-
-# Here is the conventional xterm mouse protocol, introduced with X11R1 in
-# September 1987.
-#
-# The mouse responses for the X11 protocol covered button releases, as well as
-# modifiers:
-#  shift    4
-#  alt/meta 8 (technically the "mod1" mask, because X11 has no such keys)
-#  control 16
-#
-# The modifiers are not reflected in this description because as used in xterm
-# they are normally inaccessible because the translations resources assign
-# shift and control to other features.  However, they are important because
-# they take up space in the first byte of the response.  The other bits of this
-# byte are used to encode the button number for both presses and releases.
-# In the X11 protocol, any button-release is encoded with "3" (the lowest 2
-# bits in the byte).  Later work on XFree86 xterm used the remaining 3 bits to
-# provide additional features, e.g., wheel mouse.
-#
-# X11R1's xterm also supported an "emacs" mouse protocol, with final character
-# "t" or "T", which was activated by double-clicking.  The "t" response was
-# used when the starting/ending positions were the same.
-#
-# X11R3 (February 1988) added the highlight/tracking mode.
-#
-# X11R4 (December 1989) added the control sequences document, listing the
-# control sequences for the X10/X11 protocols without descriptions.  It also
-# mentioned the "emacs" ("T") response.  Comments in button.c referred to the
-# X11 protocol as "DEC vt200 compatible", although DEC offered no such terminal.
-#
-# X11R5 (November 1993) gave a description of the mouse protocol.
-#
-# X11R6 (January 1995) moved the control sequences document out of the xterm
-# source-directory to xc/doc/specs/xterm, polishing the formatting but adding
-# no new information.
-xterm+x11mouse|X11 xterm mouse protocol,
-	kmous=\E[M, XM=\E[?1000%?%p1%{1}%=%th%el%;,
-	xm=\E[M%?%p4%t3%e%p3%' '%+%c%;%p2%'!'%+%c%p1%'!'%+%c,
-xterm-x11mouse|X11 mouse,
-	use=xterm+x11mouse, use=xterm,
-
-# Here is a suggested description of the xterm highlighting protocol.
-# A more complicated example could be constructed to account for the "t"
-# response.
-xterm+x11hilite|X11 xterm mouse protocol with highlight,
-	kmous=\E[M, XM=\E[?1001%?%p1%{1}%=%th%el%;,
-	xm=\E[%p7%'!'%+%p6%'!'%+%c%p9%'!'%+%c%p8%'!'%+%c%p2%'!'%+%c%p1%'!'%+%cT,
-xterm-x11hilite|X11 mouse with highlight,
-	use=xterm+x11mouse, use=xterm,
-
-# The preceding were the sources from X Consortium.  Other sources (or patches)
-# were available.  Starting in mid-1995, XFree86 developers collected some of
-# those changes and began improvements, e.g., to support color.  This was, by
-# the way, around the same time that rxvt developers began implementing color,
-# though dates (and attributions) are not well documented.  I became interested
-# in xterm in late 1995, and involved in early 1996.  To complete the picture,
-# CDE's dtterm was introduced around the same time, with no mouse protocol -TD
-
-# xterm patch #83 (1998/10/7), added Jason Bacon's changes to provide an
-# "any-event" mouse mode.
-xterm+sm+1002|xterm any-event mouse,
-	kmous=\E[M, XM=\E[?1002%?%p1%{1}%=%th%el%;,
-xterm-1002|xterm any-event mouse,
-	use=xterm+sm+1002, use=xterm,
-
-xterm+sm+1003|testing xterm-mouse,
-	kmous=\E[M, XM=\E[?1003%?%p1%{1}%=%th%el%;,
-
-xterm-1003|testing xterm-mouse,
-	use=xterm+sm+1003, use=xterm,
-
-# xterm patch #116 (1999/9/25) added Stephen P Wall's changes to support DEC
-# locator mode.
-
-# xterm patch #120 (1999/10/28) added my change to support wheel mouse, by
-# dropping support for the X11 mouse protocol's shift-modifier and using
-# available bits in the first byte of the response to encode buttons 4 and 5.
-# xterm patch #126 (2000/2/8) amended that change to avoid conflicting with
-# older configurations which might have used the obsolete modifiers.
-
-# xterm patch #262 (2010/8/30) added Ryan Johnson's changes to provide a mode
-# where the coordinates in the mouse response would be encoded in UTF-8,
-# thereby extending the range of coordinates past 222=(255-33).  This is the
-# "1005" mouse mode.
-xterm+sm+1005|xterm UTF-8 mouse,
-	kmous=\E[M, XM=\E[?1005;1000%?%p1%{1}%=%th%el%;,
-	xm=\E[M%?%p4%t3%e%p3%' '%+%c%;%p2%'!'%+%u%p1%'!'%+%u,
-xterm-1005|xterm UTF-8 mouse,
-	use=xterm+sm+1005, use=xterm,
-
-# xterm patch #277 (2012/1/7) provides a mode where the mouse response uses
-# SGR-style parameters.
-#
-# Someone stated that the 1005 mouse mode would not be handled properly in luit.
-# (By the way, this is a problem with the X11 protocol).  A more plausible
-# criticism is that the responses provided by the 1005 mode are not distinct
-# from the non-1005 responses.
-#
-# As an alternative (and fixing the longstanding limitation of X11 mouse
-# protocol regarding button-releases), I provided this:
-xterm+sm+1006|xterm SGR-mouse,
-	kmous=\E[<, XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,
-	xm=\E[<%p1%d;%p2%d;%p3%d;%?%p4%tM%em%;,
-xterm-1006|xterm SGR-mouse,
-	use=xterm+sm+1006, use=xterm,
-
-#### KTERM
-# (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, XT,
-	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,
-
-#### Other XTERM
-# 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[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,
-	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,
-	wsl#40,
-	bold=\E[1;43m, rev=\E[7;34m,
-	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1;43%;%?%p2%t;4;42%;%?%p1%t;7;31%;%?%p3%t;7;34%;%?%p4%t;5%;%?%p7%t;8%;m,
-	smso=\E[7;31m, smul=\E[4;42m, use=xterm+sl, use=xterm-r6,
-
-# 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, XT,
-	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 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,
-
-#### GNOME (VTE)
-# 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, XT,
-	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
-vte-2007|VTE in GNOME Terminal snapshot 2.18.1,
-	use=xterm+pcc2, use=gnome-fc5,
-gnome-2007|GNOME Terminal snapshot 2.18.1,
-	use=vte-2007,
-
-# GNOME Terminal 2.22.3 (2008 snapshot)
-#
-# In vttest, it claims to be a vt220 with national replacement character-sets,
-# but aside from the identifier string, implements only a small fraction of
-# vt220's behavior, which will make it less usable on a VMS system (unclear
-# what the intent of the developer is, since the NRC feature exposed in vttest
-# by this change does not work).
-vte-2008|VTE in GNOME Terminal snapshot 2.22.3,
-	use=vte+pcfkeys, use=vte-2007,
-gnome-2008|GNOME Terminal snapshot 2.22.3,
-	use=vte-2008,
-
-# GNOME Terminal 3.6.0 (2012)
-# VTE 0.34.1 was marked in git 2012-10-15 (three days after patch was applied
-# in ncurses).  It inherited from gnome-fc5, which broke the modified forms
-# of f1-f4 -TD
-#
-# Testing with tack shows that flash does not/has not worked -TD
-vte-2012|VTE 0.34.1,
-	ncv#16,
-	dim=\E[2m, flash@, invis=\E[8m, ritm=\E[23m,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
-	sitm=\E[3m, use=vte-2008,
-# Version 3.6.1 sets TERM to xterm-256color (still hardcoded), which has
-# 61 differences from a correct entry for gnome terminal.
-gnome-2012|GNOME Terminal 3.6.0,
-	use=vte-2012,
-
-# GNOME terminal may automatically use the contents of the "xterm" terminfo to
-# supply key information which is not built into the program.  With 2.22.3,
-# this list is built into the program (which addresses the inadvertant use of
-# random terminfo data, though using a set of values which does not correspond
-# to any that xterm produces - still not solving the problem that GNOME
-# terminal hardcodes the $TERM variable as "xterm").
-#
-#	terminfo	modifier	code	keys
-#	kf13-kf24	shift		2	F1 to F12
-#	kf25-kf36	control		5	F1 to F12
-#	kf37-kf48	shift/control	6	F1 to F12
-#	kf49-kf60	alt		3	F1 to F12
-#	kf61-kf63	shift-alt	4	F1 to F3
-#
-# The parameters with \EO (SS3) are technically an error, since SS3 should have
-# no parameters.  This appears to be rote copying based on xterm+pcc0.
-vte+pcfkeys|VTE's variation on xterm+pcfkeys,
-	kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R,
-	kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q,
-	kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P,
-	kf38=\EO1;6Q, kf39=\EO1;6R, kf4=\EOS, kf40=\EO1;6S,
-	kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S,
-	kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R,
-	use=xterm+pcfkeys,
-gnome+pcfkeys|VTE's variation on xterm+pcfkeys,
-	use=vte+pcfkeys,
-
-# deprecated - use "vte" for newer versions
-gnome|GNOME Terminal,
-	use=vte-2012,
-
-# relevant changes were made in January 2014
-vte-2014|VTE 0.35.1,
-	use=xterm+pcfkeys, use=vte-2012,
-
-vte|VTE aka GNOME Terminal,
-	use=vte-2014,
-
-# palette is hardcoded...
-vte-256color|VTE with xterm 256-colors,
-	use=xterm+256color, use=vte,
-gnome-256color|GNOME Terminal with xterm 256-colors,
-	use=vte-256color,
-
-# 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=vte-2008,
-
-#### Other 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,
-
-#### KDE
-# 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
-#
-# Updated for konsole 1.6.6:
-#    add control-key modifiers for function-keys, etc.
-#
-# Updated for konsole 2.12.4:
-#    add sitm/ritm
-#
-# vttest menu 1 shows that both konsole and gnome terminal do wrapping
-# different from xterm (and vt100's).  They have the same behavior in this
-# detail, but it is unclear which copies the other.
-konsole-base|KDE console window,
-	bce, km@, npc, XT,
-	ncv@,
-	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=\E[3~,
-	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, ritm=\E[23m,
-	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, sitm=\E[3m, smam=\E[?7h, vpa=\E[%i%p1%dd,
-	use=ecma+color, use=xterm-r6,
-konsole-linux|KDE console window with linux keyboard,
-	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, khome=\EOH, use=konsole+pcfkeys,
-	use=konsole-vt100,
-# Konsole does not implement shifted cursor-keys.
-konsole+pcfkeys|konsole subset of xterm+pcfkeys,
-	kLFT@, kRIT@, kcbt=\E[Z, kind@, kri@, kDN@, kUP@, use=xterm+pcc2,
-	use=xterm+pcf0,
-# 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,
-	use=xterm+256setaf, use=konsole,
-
-#### MLTERM
-# http://mlterm.sourceforge.net/
-
-mlterm|multi lingual terminal emulator,
-	use=mlterm3,
-
-# Tested mlterm 3.2.2:
-# mlterm 3.x has made changes, but they are not reflected in the included
-# mlterm.ti; this entry is based on testing with tack and vttest -TD
-mlterm3|multi lingual terminal emulator,
-	kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
-	ritm=\E[23m, sitm=\E[3m, use=xterm+app, use=xterm+pcf0,
-	use=xterm+pcc2, use=xterm+pce2, use=mlterm2,
-
-# 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~
-#
-mlterm2|multi lingual terminal emulator,
-	am, eslok, km, mc5i, mir, msgr, npc, xenl, XT,
-	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,
-
-mlterm-256color|mlterm 3.0 with xterm 256-colors,
-	use=xterm+256color, use=mlterm,
-
-#### RXVT
-# 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, XT,
-	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~, kind=\E[a, knp=\E[6~,
-	kpp=\E[5~, kri=\E[b, 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 was originally "xvt", first announced in April 1993:
-#	http://www.informatica.co.cr/linux-desktops/research/1993/0416.html
-#
-# Though its change-log does not mention this, John Davis has stated that he
-# was the author of the changes to use the bce ("new color model") which was
-# incorporated into rxvt 2.11 (June 15, 1995).  The change-log does not give
-# dates, nor give developer's names.  Initial color support was added for rxvt
-# "2.0", which was sometime in 1994.
-#
-# rxvt had usable color support with 2.16 (April 2, 1996), with some help by my work on
-# vttest, as well as bug reports to Mark Olesen.  For instance, the fix
-# mentioned here
-#	http://web.archiveorange.com/archive/v/6ETvLb5wHtbbzCaS4S9J
-# was from one of my bug-reports -TD
-#
-# While the color model both for xterm and rxvt was based on Linux console,
-# Olesen (or possibly Davis) diverged in one respect from Linux's bce color
-# behavior: inserting/deleting characters does not fill the newly empty cell
-# with the default background color.
-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=+\257\,\256-\^0\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,
-	use=rxvt,
-rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin,
-	acsc=+\257\,\256-\^0\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~\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|rxvt with 16 colors like aixterm,
-	ncv#32, use=ibm+16color, use=rxvt,
-
-#### MRXVT
-# mrxvt 0.5.4
-#
-# 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
-#
-# Testing with tack:
-# +	made custom description (below) to work, though it sets TERM=xterm.
-#
-# Testing with vttest:
-# +	While "based on" rxvt, some of the basic functionality is broken.  The
-#	window collapses to a single line when running several of the screens
-#	in vttest, e.g., the tests for cursor movement, screen features,
-#	double-sized characters.
-# +	The vt52 test works properly, but this is an exception.  Due to the
-#	other bug(s) most of vttest is untestable.
-# +	the color test using ECH shows a gap in the bce model, like rxvt.
-#
-# Testing with xterm "vttest" scripts:
-# +	resize.pl does not work because mrxvt does implement CSI 18 t
-#	(not in rxvt, but not documented by mrxvt) but not CSI 19 t.
-# +	none of the "dynamic colors" (OSC colors) scripts work.
-mrxvt|multitabbed rxvt,
-	XT,
-	kEND=\E[8;2~, kHOM=\E[7;2~, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kend=\E[8~, khome=\E[7~,
-	kEND3=\E[8;3~, kEND4=\E[8;4~, kEND5=\E[8;5~,
-	kEND6=\E[8;6~, kEND7=\E[8;7~, kHOM3=\E[7;3~,
-	kHOM4=\E[7;4~, kHOM5=\E[7;5~, kHOM6=\E[7;6~,
-	kHOM7=\E[7;7~, use=xterm+r6f2, use=xterm+pcfkeys,
-	use=rxvt,
-
-mrxvt-256color|multitabbed rxvt with 256 colors,
-	use=xterm+256color, use=mrxvt,
-
-#### ETERM
-# 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, XT,
-	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,
-
-#### ATERM
-# Based on rxvt 2.4.8, it has a few differences in key bindings
-aterm|AfterStep terminal,
-	XT,
-	kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt,
-
-#### XITERM
-# 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,
-
-
-#### HPTERM
-# 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,
-
-#### EMU
-# 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=\EC,
-	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=/system/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,
-
-#### MVTERM
-# 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,
-
-#### VWM
-# http://vwm.sourceforge.net/
-#
-# VWM 2.0.2 (2009-05-01)
-# vwmterm is a terminal emulator written for the VWM console window manager.
-# This version is obsolete, replaced by libvterm in 2.1.0 (2009-10-23).
-vwmterm|(vwm term),
-	am, bce, ccc, mir, msgr, npc, xenl, xon,
-	colors#8, pairs#64,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h, 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[?25h, dim=\E[2m, ed=\E[J, el=\E[K,
-	home=\E[H, il1=\E[L, ind=^J, invis=\E[8m, 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[22~,
-	kf12=\E[23~, 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~, rev=\E[7m, rmacs=\E[10m,
-	rmam=\E[?7l, rmcup=\E[?1049l, rs1=\E[H\E[J\E[m\Ec,
-	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, smam=\E[?7h,
-	smcup=\E[?1049h, smso=\E[3m, smul=\E[4m,
-
-#### 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,
-
-#### SIMPLETERM
-# st.suckless.org
-# st-0.4.1
-#
-# This version uses a table which supports a single modifier (a subset of
-# xterm's keys, using the same scheme).  Because it supports only a single
-# modifier in this table, function keys f36-f48 are normally unavailable
-# because they are assigned to modifier-4.
-#
-# The program assigns TERM to match the program name (the upstream source says
-# "st", but Debian renames it to "stterm").
-#
-# The source includes two entries which are not useful here:
-#	st-meta| simpleterm with meta key,
-#	st-meta-256color| simpleterm with meta key and 256 colors,
-# because st's notion of "meta" does not correspond to the terminfo definition.
-# Rather, it acts like xterm - when the meta feature is disabled.
-#
-# Removed invis -TD
-# Added eo, removed ul -TD
-#
-# Reviewed st 0.5:
-# implements control-modifier, but not control-shift for special keys
-# implements alt-modifier, but not alt-shift for special keys
-st|stterm| simpleterm 0.4.1,
-	am, bce, eo, hs, mir, msgr, xenl,
-	colors#8, cols#80, it#8, lines#24, ncv#3, 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[?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,
-	enacs=\E)0, flash=\E[?5h\E[?5l, fsl=^G, 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, indn=\E[%p1%dS,
-	is2=\E[4l\E>\E[?1034l, 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, ka1=\E[1~, ka3=\E[5~, kb2=\EOu,
-	kbs=\177, kc1=\E[4~, kc3=\E[6~, kcbt=\E[Z, kclr=\E[3;5~,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kdl1=\E[3;2~, ked=\E[1;5F, kel=\E[1;2F,
-	kend=\E[4~, kent=\EOM, 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~, khome=\E[1~, kich1=\E[2~,
-	kil1=\E[2;5~, kind=\E[1;2B, kmous=\E[M, knp=\E[6~,
-	kpp=\E[5~, kri=\E[1;2A, krmir=\E[2;2~, op=\E[39;49m,
-	rc=\E8, rev=\E[7m, ri=\EM, ritm=\E[23m, rmacs=\E(B,
-	rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
-	rmul=\E[m, rs1=\Ec, rs2=\E[4l\E>\E[?1034l, 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%;m,
-	sgr0=\E[0m, sitm=\E[3m, smacs=\E(0, smcup=\E[?1049h,
-	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n,
-	u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd,
-#
-# st-0.1.1
-#
-# Note:  the original terminfo description uses leading blank to persuade
-# ncurses to use "st" as its name.  Proper fix for that is to use "st" as an
-# alias.
-#
-# Reading the code shows it should work for aixterm 16-colors
-# - added st-16color
-#
-# Using tack:
-# - set eo (erase-overstrike)
-# - set xenl
-# - tbc doesn't work
-# - hts works
-# - cbt doesn't work
-# - shifted cursor-keys send sequences like rxvt
-# - sgr referred to unimplemented "invis" mode.
-# Fixes: add eo and xenl per tack, remove nonworking cbt, hts and tbc, invis
-simpleterm|old-st| simpleterm 0.1.1,
-	am, eo, mir, msgr, ul, xenl,
-	colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
-	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
-	cnorm=\E[?12l\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	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[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=\177,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	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~, knp=\E[6~, kpp=\E[5~, op=\E[37;40m, rc=\E8,
-	rev=\E[7m, rmacs=\E(B, rmso=\E[m, rmul=\E[m, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-	sgr0=\E[0m, smacs=\E(0, smso=\E[7m, smul=\E[4m,
-st-16color|stterm-16color|simpleterm with 16-colors,
-	use=ibm+16color, use=st,
-# 256 colors "works", but when running xterm's test-scripts, some garbage is
-# shown in the titlebar.
-#
-# terminal wants to use TERM=stterm-256color, but that is longer than 14
-# characters, making the choice nonportable.
-st-256color|stterm-256color|simpleterm with 256 colors,
-	use=xterm+256color, use=st,
-
-#### TERMINATOR
-# https://code.google.com/p/jessies/
-# Tested using their Debian package org.jessies.terminator 6.104.3256 on 64-bit
-# Debian/current -TD (2011/8/20)
-#
-# There are some packaging problems:
-# a) using Java, the program starts off using 50Mb, and climbs from there,
-#    up to 114Mb after testing (no scrollback).
-# b) it insists on reinstalling its terminal description in $HOME/.terminfo
-#    (two copies, just in case the host happens to be Mac OS X).
-#    I deleted this after testing with tack.
-#
-# Issues/features found with tack:
-# a) tbc does not work (implying that hts also is broken).
-#    Comparing with the tabs utility shows a problem with the last tabstop on
-#    a line.
-# b) has xterm-style shifted function-key strings
-#    meta also is used, but control is ignored.
-# c) has xterm-style modifiers for cursor keys (shift, control, shift+control, meta)
-# d) some combinations of shift/control send xterm-style sequences for
-#    insert/delete/home/end.
-# e) numeric keypad sends only numbers (compare with vttest).
-# f) meta mode (km) is not implemented.
-#
-# Issues found with ncurses test-program:
-# a) bce is inconsistently implemented
-# b) widths of Unicode values above 256 do not always agree with wcwidth.
-#
-# Checked with vttest, found low degree of compatibility there.
-#
-# Checked with xterm's scripts, found that the 256-color palette is fixed.
-#
-# Fixes:
-# a) add sgr string
-# b) corrected sgr0 to reset alternate character set
-# c) modified smacs/rmacs to use SCS rather than SI/SO
-# d) removed bce
-# e) removed km
-terminator|Terminator no line wrap,
-	eo, mir, msgr, xenl, xon,
-	colors#256, cols#80, it#8, lines#24, lm#0, pairs#32767,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	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, ed=\E[J, el=\E[K, el1=\E[1K,
-	enacs=\E(B\E)0, flash=^G, home=\E[H, hpa=\E[%i%p1%dG,
-	ht=^I, hts=\EH, 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,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	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~, 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~, knp=\E[6~, kpp=\E[5~,
-	op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B,
-	rmcup=\E[?47l\E8, rmir=\E[4l, 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>,
-	s0ds=\E(B, s1ds=\E(0, sc=\E7, setab=\E[48;5;%p1%dm,
-	setaf=\E[38;5;%p1%dm,
-	sgr=\E[0%?%p1%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, smcup=\E7\E[?47h, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
-	use=xterm+sl-twm,
-
-#### TERMINOLOGY
-# http://enlightenment.org
-#
-# Tested terminology-0.3.0, 0.6.1, using tack and vttest.  This is not a vt100
-# emulator, nor is it compatible with xterm, but it uses a few features from
-# both -TD
-#
-# General comments:
-#	cursor does not fill on focus
-#	there are pervasive problems with clearing/erasing parts of the screen
-#	resizing the window causes it to stop listening to the keyboard
-# tack -
-#	doesn't understand vt100 CPR needed for resize
-#	no CBT
-#	no cvvis
-#	has invis
-#	no blink
-#	uses bce model for colors, but (see below) fails the vttest screens
-#	has partial support for 256color feature.
-#	tack function-keys (a subset of xterm+pcf0), and
-#	tack cursor-keys (a subset of xterm+pce2):
-#			ctrl+shift (ignored)
-#		2	shift
-#			shift-alt modifier -> shift (2)
-#		3	alt
-#		4
-#		5	ctrl
-#	tack modifiers did not work for fkeys in 0.3.0; subset works in 0.6.1
-#	ctrl + khome/kend works - none of the other modifiers do
-# vttest -
-#	spits lots of messages from termptyesc.c especially in vttest.
-#	no 132-column mode
-#	fails menu 1, 2 (definitely not vt100-compatible)
-#	primary (claims vt420 with several options, apparently none work) and
-#	secondary report says (perhaps... vt420): \E[>41;285;0c
-#	CHA, HPR, VPA, CNL, CPL work
-#	BCE with ED/EL - fail
-#	BCE with ECH/indexing - fail
-#	SD/SU work
-#	unlike teken, background light/dark works
-#	can set title
-#	X10 and Normal mouse work
-#	Any-event mouse works
-#	Mouse button-event works
-#
-# This description uses xterm+pcf0, which is misleading because the program
-# does not handle combinations of modifiers - but listing them all would
-# involve more effort than its developers spent -TD
-terminology|EFL-based terminal emulator,
-	mc5i@, xon@,
-	blink@, ed@, el@, el1@, invis=\E[8m, kLFT=\E[1;2D,
-	kRIT=\E[1;2C, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	kind=\E[1;2B, kri=\E[1;2A,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>,
-	vpa=\E[%i%p1%dd, kDC3=\E[3;3~, kDC4=\E[3;4~,
-	kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~, kDN=\E[1;2B,
-	kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B, kDN6=\E[1;6B,
-	kDN7=\E[1;7B, kEND5=\E[1;5F, kHOM5=\E[1;5H,
-	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, use=xterm+pcf0, use=vt100,
-	use=xterm+256setaf,
-
-######## 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,
-
-#### Emacs
-
-# 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,
-
-# The codes supported by the term.el terminal emulation in GNU Emacs 22.2
-eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
-	am, mir, msgr, xenl,
-	colors#8, cols#80, lines#24, pairs#64,
-	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, 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, invis=\E[8m, kbs=\177,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kend=\E[4~, khome=\E[1~, kich1=\E[2~,
-	knp=\E[6~, kpp=\E[5~, op=\E[39;49m, rc=\E8, rev=\E[7m,
-	ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
-	sc=\E7, setab=\E[%p1%'('%+%dm, setaf=\E[%p1%{30}%+%dm,
-	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
-	sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	u6=\E[%i%d;%dR, u7=\E[6n,
-
-#### Screen
-
-# 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.
-#
-# Initially tested with screen 3.09.08
-#
-# According to its manual page
-#
-#      Screen is a full-screen window manager that multiplexes a physical
-#      terminal between several processes (typically interactive shells).  Each
-#      virtual terminal provides the functions of a DEC VT100 terminal and, in
-#      addition, several control functions from the ISO 6429 (ECMA 48, ANSI
-#      X3.64) and ISO 2022 standards (e.g.  insert/delete line and support for
-#      multiple character sets).
-#
-# However, there is a design error in its support for video highlights.  The
-# program uses a table (rendlist) which equates the SGR codes to terminal
-# capabilities.  That, and color-decoding are hardcoded in screen; its behavior
-# is modified only by the presence or absence of the corresponding capabilities.
-# Not by their values.
-#
-# If screen sets the TERMCAP variable, it uses hardcoded strings which
-# correspond to the rendlist table.
-#
-# The table gives this information:
-#
-#	SGR	capability
-#	---	---------
-#	1	bold
-#	2	dim
-#	3	standout
-#	4	underline
-#	5	blink
-#	-	(unused 6)
-#	7	reverse
-#	-	(unused 8-21)
-#	22	reset bold, standout and dim
-#	23	reset standout
-#	24	reset underline
-#	25	reset blink
-#	-	(unused 26)
-#	27	reset reverse
-#
-# ECMA-48 differs from this: 3 and 23 set and reset italics, respectively.
-# ECMA-48 does not define "standout" - that is a termcap/terminfo abstraction.
-# Without some redesign of screen, it is not possible to extend the set of
-# capabilities.  Substitution would be possible, e.g., sending italics in
-# place of underline.
-#
-# Because screen uses hard-coded parsing, it does not check if two capabilities
-# use the same value.  For example, changing standout to be the same as any of
-# the other capabilities will confuse screen.  Curses applications which use
-# sgr are not impacted (because that usually resets all capabilities before
-# setting any), but termcap applications do not use sgr -TD
-screen|VT 100/ANSI X3.64 virtual terminal,
-	OTbs, OTpt, am, km, mir, msgr, xenl, G0,
-	colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1,
-	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, 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=\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%;%?%p5%t;2%;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,
-	ech@, 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 using 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,
-	use=xterm+256setaf, use=screen,
-
-screen-256color-s|GNU Screen with 256 colors and status line,
-	use=xterm+256setaf, use=screen-s,
-
-screen-256color-bce|GNU Screen with 256 colors and BCE,
-	bce, use=xterm+256setaf, use=screen-bce,
-
-screen-256color-bce-s|GNU Screen with 256 colors using BCE and status line,
-	bce, use=xterm+256setaf, use=screen-s,
-
-screen.xterm-256color|GNU Screen with xterm using 256 colors,
-	use=xterm+256setaf, use=screen.xterm-new,
-
-screen.konsole-256color|GNU Screen with konsole using 256 colors,
-	use=xterm+256setaf, use=screen.konsole,
-
-screen.vte-256color|GNU Screen with vte using 256 colors,
-	use=xterm+256setaf, use=screen.vte,
-
-screen.putty-256color|GNU Screen with putty using 256 colors,
-	use=xterm+256setaf, use=screen.putty,
-
-screen.mlterm-256color|GNU Screen with mlterm using 256 colors,
-	use=xterm+256setaf, use=screen.mlterm,
-
-# ======================================================================
-
-# 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@,
-
-# See explanation before "screen" entry.  Cancel italics so that applications
-# do not assume screen supports the feature.  Add this tweak to entries which
-# extend screen for terminals which do support italics.
-screen+italics|screen cannot support italics,
-	ritm@, sitm@,
-#
-# 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%;%?%p5%t;2%;m,
-	E3@, use=screen+italics, use=screen+fkeys, use=xterm-new,
-#:screen.xterm|screen for modern xterm,
-#:	use=screen.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, XT,
-	cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
-	kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
-	use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
-screen.Eterm|screen in Eterm,
-	use=screen+fkeys, use=Eterm,
-screen.mrxvt|screen in mrxvt,
-	use=screen+fkeys, use=mrxvt,
-screen.vte|screen in any VTE-based terminal,
-	use=screen+italics, use=screen+fkeys, use=vte,
-screen.gnome|screen in GNOME Terminal,
-	use=screen+italics, use=screen+fkeys, use=gnome,
-screen.konsole|screen in KDE console window,
-	use=screen+italics, use=screen+fkeys, use=konsole,
-# 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.putty|screen in putty,
-	use=screen+fkeys, use=putty,
-
-# The default "screen" entry is reasonably portable, but not optimal for the
-# most widely-used terminal emulators.  The "bce" capability is supported in
-# screen since 3.9.13, and when used, will require fewer characters to be sent
-# to the terminal for updates.
-#
-# If you are using only terminals which support bce, then you can use this
-# feature in your screen configuration.
-#
-# Adding these lines to your ".screenrc" file will allow using these customized
-# entries:
-#	term screen-bce
-#	bce on
-#	defbce on
-screen-bce.xterm-new|screen optimized for modern xterm,
-	bce,
-	ech@, use=screen+italics, use=screen.xterm-new,
-screen-bce.rxvt|screen optimized for rxvt,
-	bce,
-	ech@, use=screen.rxvt,
-screen-bce.Eterm|screen optimized for Eterm,
-	bce,
-	ech@, use=screen.Eterm,
-screen-bce.mrxvt|screen optimized for mrxvt,
-	bce,
-	ech@, use=screen.mrxvt,
-screen-bce.gnome|screen optimized for GNOME-Terminal,
-	bce,
-	ech@, use=screen+italics, use=screen.gnome,
-screen-bce.konsole|screen optimized for KDE console window,
-	bce,
-	ech@, use=screen+italics, use=screen.konsole,
-screen-bce.linux|screen optimized for linux console,
-	bce,
-	ech@, use=screen.linux,
-
-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,
-
-# tmux is compatible with screen, but has support for italics, and some of the
-# xterm cursor bits.
-tmux|tmux terminal multiplexer,
-	ritm=\E[23m, rmso=\E[27m, sitm=\E[3m, smso=\E[7m, Ms@,
-	use=xterm+sl, use=xterm+tmux, use=screen,
-
-tmux-256color|tmux with 256 colors,
-	use=xterm+256setaf, use=tmux,
-
-#### NCSA Telnet
-
-# 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, 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, ed=\E[J,
-	el=\E[K, el1=\E[1K, enacs=\E)0, flash=\E[?5h\E[?5l,
-	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	if=/system/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=/system/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,
-	u8=\E[?62;1;6c, use=xterm+sl, 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,
-	kich1=\E[247z, 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,
-
-sun+sl|Sun Workstation window status line,
-	hs,
-	dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l,
-
-# 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 (2005-05-28)
-#
-# According to wscons manpage, color is supported only on IA systems.
-# Sun's terminfo entry documents bold and smul/rmul capabilities, but wscons
-# does not list these.  It also sets ncv#3, however that corresponds to
-# underline and standout.
-#
-# Since the documentation and terminfo do not agree, see also current code at
-# http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/tem_safe.c
-#
-# That (actually a different driver which "supports" sun-color) also supports
-# these features:
-#	vpa=\E[%i%p1%dd
-#	hpa=\E[%i%p1%d`
-#	cbt=\E[Z
-#	dim=\E[2m
-#	blink=\E[5m
-# It supports bold, but not underline -TD (2009-09-19)
-sun-color|Sun Microsystems Workstation console with color support (IA systems),
-	colors#8, ncv#3, pairs#64,
-	bold=\E[1m, cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-	cuu=\E[%p1%dA, home=\E[H, op=\E[0m, rs2=\E[s,
-	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=\E[0%?%p6%t;1%;%?%p1%p3%|%t;7%;m, sgr0=\E[m,
-	smso=\E[7m, 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=/system/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
-	is2=\E[?7h\E[?1h\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=/system/share/tabset/vt100, 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, 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/>, cub1=\E[D, cud1=\E[B, 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
-#
-# 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, 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,
-
-#### Cygwin
-
-# 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%;%?%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%;%?%p5%t;2%;%?%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[3g, vpa=\E[%i%p1%dd, use=vt102+enq,
-
-#### DJGPP
-
-# 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,
-
-#### U/Win
-
-# 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,
-
-#### Microsoft (miscellaneous)
-
-# 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=/system/share/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=+\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, 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[7m, 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=/system/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=/system/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=/system/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=/system/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, cub1=\ED, cud1=\EB, cuf1=\EC,
-	cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
-	ed=\EJ, el=\EK, if=/system/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 /system/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=/system/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 /system/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=/system/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=\ER$<30*>, ed=\EY,
-	el=\ET, ich1=\EQ, il1=\EE$<30*>, 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=/system/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?)
-#
-# Added kdch1, kil1, kdl1 based on screenshot -TD:
-#	http://www.vintagecomputer.net/qume/qvt-108/qume_qvt-108_keyboard.jpg
-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, kdch1=\EW, 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=/system/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=/system/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=/system/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=/system/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=/system/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=/system/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=/system/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=/system/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=/system/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%;%?%p8%t\E&%;%?%p9%t\E$%e\E%%%;,
-	sgr0=\EG0\E%, 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[a2fxgqh1ihjYk?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[a2fxgqh1ihjYk?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.w_vi~j(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[a2fxgqh1ihjYk?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[a2fxgqh1ihjYk?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=/system/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, cud1=\EB, 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[?1h\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=/system/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%|%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, 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%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%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,
-	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,
-	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%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%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=\E[A, 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[B,
-	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[B, 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=\E[50;0|$<400>, smsc=\E[?11l\E[50;1|$<250>,
-	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%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\E)0\016%e\E(B\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%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%p4%|%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=/system/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=/system/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=/system/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;%;%?%p7%t8;%;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[3g,
-	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[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p2%|%p3%!%t7;%;%?%p7%t8;%;m\016,
-	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[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p3%|%!%t7;%;%?%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[%?%p6%t1;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p1%!%t7;%;%?%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, cud1=\E[B, 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, cud1=\E[B,
-	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,
-	cub1=\E[D, 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=/system/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, 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,
-	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, use=ansi+pp,
-
-# <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;%;%?%p7%t8;%;%?%p8%t99;%;m%?%p5%t\E[1!{%;%?%p9%t\017%e\016%;$<1>,
-	sgr0=\E[m\016$<1>, 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[3g,
-	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%{255}%*%{1000}%/%02X%p3%{255}%*%{1000}%/%02X%p4%{255}%*%{1000}%/%02X%p5%{255}%*%{1000}%/%02X%p6%{255}%*%{1000}%/%02X%p7%{255}%*%{1000}%/%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%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{255}%*%{1000}%/%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, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
-	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:"
-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[00\:z, khome=\E[H, lf0=f1, lf1=f2,
-	lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10,
-	mc0=\E[i, rev=\E[7m, ri=\E[T, rmso=\E[m, rmul=\E[05,
-	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m,
-	sgr0=\E(B\E[m, smso=\E[7m, smul=\E[4m, u6=\E[%d;%dR,
-	u7=\E[6n, u8=\E[5n, u9=\E[0n,
-# 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[%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;%?%p1%p3%|%p6%|%t7;%;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%t2;7%;%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p1%p5%|%t2;%;%?%p6%t4;7;%;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[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m\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[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m%?%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, cud1=\E[B, 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=/system/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=/system/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=\EN$<1>\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=/system/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=/system/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
-#
-# From: Stephen Powell <zlinuxman@wowway.com> 23 Apr 2015
-# Added ich1 (kich1 without ich1 doesn't make sense).
-# Added il1 (kil1 without il1 doesn't make sense).
-# Added xon (terminal uses XON/XOFF flow control).
-#
-ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
-	OTbs, am, mir, msgr, xon,
-	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,
-	ich1=\EP \010, il1=\EN, 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,
-#
-# From: Stephen Powell <zlinuxman@wowway.com> 23 Apr 2015
-# Deleted il1.  (il1 will now be inherited from ibm3161-C, which inherits
-# it from ibm3161.
-#
-ibm3162|IBM 3162 display,
-	blink=\E4$a, bold=\E4(a, 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,
-# "Megapel" refers to the display adapter, which was used with the IBM RT
-# aka IBM 6150.
-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%'8'%|%;%?%p2%t%'8'%|%;%?%p3%t%'4'%|%;%?%p4%t%'2'%|%;%?%p7%t%'1'%|%;%cZZ,
-	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, 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,
-	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=/system/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=/system/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, 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, 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;4%;%?%p4%t;5%;%?%p6%t;1%;m%?%p8%t\E[32%%{%;%?%p9%t\016%e\017%;,
-	sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
-	use=ansi+pp,
-
-# 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=/system/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%;%?%p7%t;8%;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%;%?%p7%t;8%;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%;%?%p7%t;8%;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=jDkClBmAnIqKtMuLvOwNxJ, 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=\EG0\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=\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=\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=/system/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=/system/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[B, cuf1=\E[C,
-	cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, 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, cub1=\E[1D, 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,
-
-# Tektronix 4107/4109 interpret 4 modes using "\E%!" followed by a code:
-# 0 selects Tek mode, i.e., \E%!0
-# 1 selects ANSI mode
-# 2 selects ANSI edit-mode
-# 3 selects VT52 mode
-#
-# One odd thing about the description (which has been unchanged since the 90s)
-# is that the cursor addressing is using VT52 mode, and a few others use the
-# VT52's non-CSI versions of ANSI, e.g., \EJ.
-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;5%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t<0%;%?%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, cud1=\E[B,
-	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=/system/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;%;%?%p7%t8;%;m,
-	sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	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, dl=\E[%p1%dM, 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%;%?%p7%t30;40%;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 is 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, cub1=\ED, cud1=\EB, 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/>, cub1=\ED, cud1=\EB, 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,
-
-#### 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,
-
-#### 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.
-#
-
-# See
-#	http://www.minix3.org/manpages/html4/console.html
-minix|minix console (v3),
-	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,
-	kdch1=\177, kend=\E[Y, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~,
-	kf11=\E[11;2~, kf12=\E[12;2~, kf13=\E[13;2~,
-	kf14=\E[14;2~, kf15=\E[15;2~, kf16=\E[17;2~,
-	kf17=\E[18;2~, kf18=\E[19;2~, kf19=\E[20;2~, kf2=\E[12~,
-	kf20=\E[21;2~, kf21=\E[11;5~, kf22=\E[12;5~,
-	kf23=\E[13;5~, kf24=\E[14;5~, kf25=\E[15;5~,
-	kf26=\E[17;5~, kf27=\E[18;5~, kf28=\E[19;5~,
-	kf29=\E[20;5~, kf3=\E[13~, kf30=\E[21;5~, kf31=\E[11;6~,
-	kf32=\E[12;6~, kf33=\E[13;6~, kf34=\E[14;6~,
-	kf35=\E[15;6~, kf36=\E[17;6~, kf37=\E[18;6~,
-	kf38=\E[19;6~, kf39=\E[20;6~, kf4=\E[14~, kf40=\E[21;6~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	kich1=\E[@, knp=\E[U, kpp=\E[V, lf0@, lf1@, lf2@, lf3@, lf4@, lf5@,
-	use=minix-3.0,
-
-minix-3.0|minix console (v3.0),
-	use=ecma+color, use=minix-1.7,
-
-# See
-#	http://www.minix-vmd.org/pub/Minix-vmd/1.7.0/wwwman/man4/console.4.html
-# This is the entry provided with minix 1.7.4, with bogus :ri: removed.
-minix-1.7|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, el1=\E[2K,
-	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-1.5|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-3.0,
-
-# 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=/system/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=\032$<1>, 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[3g,
-	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,
-	sgr=\E[0%?%p1%t;2;4;5;7%;%?%p3%t;7%;%?%p2%t;2%;%?%p4%t;2;4%;%?%p5%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	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, 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,
-	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$~, use=ansi+pp,
-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, cub1=\2331D,
-	cud=\233%p1%dB, cud1=\2331B, cuf=\233%p1%dC, cuf1=\2331C,
-	cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\2331A,
-	dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
-	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, il1=\233L,
-	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=\E(B, 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=\E(0, 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=/system/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=+h.kaiggjdkclfmenbozqas{tvutvuwsx`~\^, 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=/system/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,
-	dl1=\E[M, dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l,
-	home=\E[H, ht=^I, hts=\EH, if=/system/share/tabset/vt100,
-	il=\E[%p1%dL, il1=\E[L, 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=+h.kaiggjdkclfmenbozqas{tvutvuwsx`~\^,
-	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, cuf1=\EC,
-	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\EM, ed=\E[0J, el=\E[0K,
-	ht=^I, if=/system/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=/system/share/tabset/init.graphos> and
-# <rf=/system/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, cud1=\EB$<2/>,
-	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, cub1=\ED, cud1=\EB, cuf1=\EC,
-	cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, 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, 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=\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=\233P, kf1=\217P, kf2=\217Q,
-	kf3=\217R, kf4=\217S, 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,
-
-#### AT&T consoles
-
-# 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[3g, 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,
-
-#### 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,
-
-#### 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,
-
-#### Other consoles
-# 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,
-
-######## 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=/system/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=/system/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=/system/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=/system/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=\E'D$<.1*>, 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@,
-	enacs@, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rmacs@,
-	sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
-	sgr0=\E[0m$<2>, smacs@, 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=/system/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%t%{8}%|%;%?%p1%p3%|%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, 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=\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.
-#
-######## NCURSES USER-DEFINABLE CAPABILITIES
-#
-# Extensions added after ncurses 5.0 generally use the "-x" option of tic and
-# infocmp to manipulate user-definable capabilities.  Those that are intended
-# for use in either terminfo or termcap use 2-character names.  Extended
-# function keys do not use 2-character names, and are available only with
-# terminfo.
-#
-# As of mid-2012, no other terminfo/termcap implementation than ncurses
-# supports this extension; termcap libraries can as noted above make limited
-# use of the feature.
-#
-# ncurses makes explicit checks for a few user-definable capabilities:  AX, U8,
-# XM.
-#
-#### SCREEN Extensions:
-#
-# The screen program uses the termcap interface.  It recognizes a few useful
-# nonstandard capabilities.  Those are used in this file.
-#
-#       AX   (bool)  Does  understand  ANSI  set  default fg/bg color (\E[39m /
-#                    \E[49m).
-#       G0   (bool)  Terminal can deal with ISO 2022  font  selection sequences.
-#       E0   (str)   Switch charset 'G0' back to standard charset.
-#       S0   (str)   Switch charset 'G0' to the specified charset.
-#       XT   (bool)  Terminal understands special xterm sequences  (OSC,  mouse
-#                    tracking).
-#
-# AX is relatively straightforward; it is interpreted by ncurses to say that
-# SGR 39/49 reset the terminal's foreground and background colors to their
-# "default".
-#
-# XT is harder, since screen's manpage does not give more details.  For that,
-# we must read screen's source-code.  When XT is set, screen assumes
-#
-# a) OSC 1 sets the title string, e.g., for the icon.  Recent versions of
-#    screen may also set the terminal's name, which is (for xterm) distinct
-#    from the icon name.
-# b) OSC 20 sets the background pixmap.  This is an rxvt feature.
-# c) OSC 39 and OSC 49 set the default foreground/background colors.  Again
-#    this is an rxvt feature.
-# d) certain mode settings enable the mouse: 9, 1000, 1001, 1002, 1003.
-#    These are from xterm, although xterm accepts mouse codes that may not be
-#    recognized by screen, e.g., 1005, 1006.
-# e) colors beyond 0..7 are implemented by xterm's aixterm-like 16-color
-#    sequence.  However, because screen uses only termcap, the values returned
-#    by Af/Ab are not usable because they rely on expressions that termcap
-#    does not support.  Therefore, screen uses a hardcoded string to work
-#    around the limitation.
-# f) all entries named "*xterm*" or "*rxvt*" have the bce flag set.
-#
-# The other ISO-2022 features are rarely used, but provided here to make
-# screen's termcap features available.
-#
-#### XTERM Extensions:
-#
-# Most of the xterm extensions are for function-keys.  Since patch #94 (in
-# 1999), xterm has supported shift/control/alt/meta modifiers which produce
-# additional function-key strings.  Some other developers copied the feature,
-# though they did not follow xterm's lead in patch #167 (in 2002), to make
-# these key definitions less ambiguous.
-#
-# A few terminals provide similar functionality (sending distinct keys when
-# a modifier is used), including rxvt.
-#
-# These are the extended keys defined in this file:
-#
-# kDC3 kDC4 kDC5 kDC6 kDC7 kDN kDN3 kDN4 kDN5 kDN6 kDN7 kEND3 kEND4 kEND5 kEND6
-# kEND7 kHOM3 kHOM4 kHOM5 kHOM6 kHOM7 kIC3 kIC4 kIC5 kIC6 kIC7 kLFT3 kLFT4
-# kLFT5 kLFT6 kLFT7 kNXT3 kNXT4 kNXT5 kNXT6 kNXT7 kPRV3 kPRV4 kPRV5 kPRV6 kPRV7
-# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 ka2 kb1 kb3 kc2
-#
-# Here are the other xterm-related extensions which are used in this file:
-#
-# Cr is a string capability which resets the cursor color
-# Cs is a string capability which sets the cursor color to a given value.
-#    The single string parameter is the color name/number, according to the
-#    implementation.
-# Ms modifies the selection/clipboard.  Its parameters are
-#	p1 = the storage unit (clipboard, selection or cut buffer)
-#	p2 = the base64-encoded clipboard content.
-# Se resets the cursor style to the terminal power-on default.
-# Ss is a string capability with one numeric parameter.  It is used to set the
-#    cursor style as described by the DECSCUSR function to a block or
-#    underline.
-# TS is a string capability which acts like "tsl", but uses no parameter and
-#    goes to the first column of the "status line".
-# XM is a string capability which overrides ncurses's built-in string which
-#    enables/disables xterm mouse mode.
-# xm shows the format of the mouse responses.  Parameters are (from zero):
-#	p1 = y-ordinate
-#	p2 = x-ordinate
-#	p3 = button
-#	p4 = state, e.g., pressed or released
-#	p6 = y-ordinate starting region
-#	p7 = x-ordinate starting region
-#	p8 = y-ordinate ending region
-#	p9 = x-ordinate ending region
-# Other extensions, used in xm:
-#	%u = UTF-8
-#
-#### Miscellaneous extensions:
-#
-# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
-#    This was implemented for the Hurd.
-# E3 clears the terminal's scrollback buffer.  This was implemented in the
-#    Linux 3.0 kernel as a security feature.  It matches a feature which was
-#    added in xterm patch #107.
-# U8 is a numeric capability which denotes a terminal emulator which does not
-#    support VT100 SI/SO when processing UTF-8 encoding.  Set this to a nonzero
-#    value to enable it.
-#
-######## CHANGE HISTORY
-#
-# The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94.
-# Releases 9 and 10 (up until the release of ncurses 4.2 in 1998) were
-# 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 1995):
-#	* 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 -> /system/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 -> /system/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
-#
-# 2008-10-12
-#	* add teraterm4.59 entry, use that as primary teraterm entry, rename
-#	  original to teraterm2.3 -TD
-#	* update "gnome" to 2.22.3 -TD
-#	* update "konsole" to 1.6.6 -TD
-#	* add "aterm" -TD
-#	* add "linux2.6.26" -TD
-#
-# 2008-11-15
-#	* change several \E[2g (clear tab at current column) to \E[3g
-#	  (clear all tabs) to match definition for tbc capability -TD
-#
-# 2008-11-29
-#	* add eterm-color -TD
-#
-# 2009-01-10
-#	* add screen.Eterm -TD
-#
-# 2009-03-28
-#	* correct typo in pfkey of ansi.sys-old
-#	  (report by Kalle Olavi Niemitalo)
-#	* move function- and cursor-keys from emx-base to ansi.sys, and create
-#	  a pfkey capability which handles F1-F48 -TD
-#
-# 2009-05-02
-#	* add vwmterm entry (Bryan Christ)
-#
-# 2009-09-19
-#	* change ncv and op capabilities in sun-color to match Sun's entry for
-#	  this (report by Laszlo Peter)
-#	* improve interix smso by using reverse rather than bold (report by
-#	  Kristof Zelechovski).
-#
-# 2009-10-03
-#	* remove unnecessary kcan assignment to ^C from putty (Sven Joachim)
-#	* add linux-16color (Benjamin Sittler)
-#	* correct initc capability of linux-c-nc end-of-range (Benjamin Sittler)
-#	* similar change for dg+ccc and dgunix+ccc (Benjamin Sittler)
-#	* add ccc and initc capabilities to xterm-16color -TD
-#
-# 2009-10-31
-#	* updated nsterm* entries (Benjamin Sittler, prompted by GenToo #206201)
-#
-# 2009-12-12
-#	* updated nsterm* entries (Benjamin Sittler, Emanuele Giaquinta)
-#
-# 2009-12-19
-#	* add bw (auto-left-margin) to nsterm* entries (Benjamin Sittler)
-#	* rename minix to minix-1.7, add minix entry for Minux3 -TD
-#
-# 2009-12-26
-#	* add bterm (bogl 0.1.18) -TD
-#	* minor fix to rxvt+pcfkeys -TD
-#
-# 2010-02-06
-#	* update mrxvt to 0.5.4, add mrxvt-256color -TD
-#
-# 2010-02-13
-#	* add several screen-bce.XXX entries -TD
-#
-# 2010-02-23
-#	* modify screen-bce.XXX entries to exclude ech, since screen's color
-#	  model does not clear with color for that feature -TD
-#
-# 2010-03-20
-#	* rename atari and st52 to atari-old, st52-old, use newer entries from
-#	  FreeMiNT by Guido Flohr (from patch/report by Alan Hourihane).
-#
-# 2010-06-12
-#	* add mlterm+256color entry -TD
-#
-# 2010-07-17
-#	* add hard-reset for rs2 to wsvt25 to help ensure that reset ends
-#	  the alternate character set (patch by Nicholas Marriott)
-#
-# 2010-08-28
-#	* improve acsc for vt52 (Benjamin Sittler)
-#	* modify nsterm entries for consistent sgr/sgr0 -TD
-#	* modify xnuppc entries for consistent sgr/sgr0 -TD
-#	* add invis to tek4115 sgr -TD
-#
-# 2010-09-11
-#	* reformat acsc strings to canonical format -TD
-#
-# 2010-09-25
-#	* add "XT" capability to entries for terminals that support both
-#	  xterm-style mouse- and title-controls, for "screen" which
-#	  special-cases TERM beginning with "xterm" or "rxvt" -TD
-#
-# 2010-10-02
-#	* fill in no-parameter forms of cursor-movement where a parameterized
-#	  form is available -TD
-#	* fill in missing cursor controls where the form of the controls is
-#	  ANSI -TD
-#	* add parameterized cursor-controls to linux-basic (report by Dae) -TD
-#
-# 2010-10-09
-#	* correct comparison used for setting 16-colors in linux-16color
-#	  entry (Novell #644831) -TD
-#	* improve linux-16color entry, using "dim" for color-8 which makes it
-#	  gray rather than black like color-0 -TD
-#
-# 2010-11-20
-#	* make "vte" the principal entry defining "gnome", since GNOME terminal
-#	  is merely one of several terminals whose behavior is provided by this
-#	  library -TD
-#
-# 2010-11-27
-#	* fix typo in rmso for tek4106 -Goran Weinholt
-#
-# 2010-12-11
-#	* suppress ncv in screen entry, allowing underline -Alejandro R. Sedeno
-#	* also suppress ncv in konsole-base -TD
-#
-# 2011-02-05
-#	* add U8 feature to denote entries for terminal emulators which do not
-#	  support VT100 SI/SO when processing UTF-8 encoding -TD
-#	* add xterm-utf8 as a demo of the U8 feature -TD
-#
-# 2011-02-20
-#	* add cons25-debian entry (Brian M Carlson, Debian #607662).
-#
-# 2011-06-11
-#	* update minix entry to minix 3.2 (Thomas Cort).
-#
-# 2011-07-09
-#	* fix inconsistent tabset path in pcmw (Todd C. Miller).
-#	* remove a backslash which continued comment, obscuring altos3
-#	  definition with OpenBSD toolset (Nicholas Marriott).
-#
-# 2011-07-16
-#	* add/use xterm+tmux chunk from xterm #271 -TD
-#	* resync xterm-new entry from xterm #271 -TD
-#	* add E3 extended capability to linux-basic (Miroslav Lichvar)
-#	* add linux2.2, linux2.6, linux3.0 entries to give context for E3 -TD
-#	* add SI/SO change to linux2.6 entry (Debian #515609) -TD
-#
-# 2011-07-21
-#	* add kich1 to sun (Yuri Pankov)
-#	* use bold rather than reverse for smso in sun-color (Yuri Pankov).
-#
-# 2011-08-06
-#	* corrected k9 in dg460-ansi, add other features based on manuals -TD
-#
-# 2011-08-20
-#	* minor cleanup of X-terminal emulator section -TD
-#	* add terminator entry -TD
-#	* add simpleterm entry -TD
-#
-# 2011-09-10
-#	* add xterm+kbs fragment from xterm #272 -TD
-#
-# 2011-11-12
-#	* add pccon entries for OpenBSD console (Alexei Malinin)
-#
-# 2011-12-17
-#	* corrected old changelog comments -TD
-#
-# 2011-11-24
-#	* add putty-sco -TD
-#
-# 2012-01-28
-#	* add mach-gnu (Samuel Thibault)
-#	* add mach-gnu-color, tweaks to mach-gnu -TD
-#	* make sgr for sun-color agree with smso -TD
-#	* make sgr for prism9 agree with other caps -TD
-#	* make sgr for icl6404 agree with other caps -TD
-#	* make sgr for ofcons agree with other caps -TD
-#	* make sgr for att5410v1, att4415, att620 agree with other caps -TD
-#	* make sgr for aaa-unk, aaa-rv agree with other caps -TD
-#	* make sgr for avt-ns agree with other caps -TD
-#
-# 2012-02-11
-#	* make sgr for xterm-pcolor agree with other caps -TD
-#	* make sgr for att5425 agree with other caps -TD
-#	* make sgr for att630 agree with other caps -TD
-#	* make sgr for linux entries agree with other caps -TD
-#	* make sgr for tvi9065 agree with other caps -TD
-#	* make sgr for ncr260vt200an agree with other caps -TD
-#	* make sgr for ncr160vt100pp agree with other caps -TD
-#	* make sgr for ncr260vt300an agree with other caps -TD
-#	* make sgr for aaa-60-dec-rv, aaa+dec agree with other caps -TD
-#	* make sgr for cygwin, cygwinDBG agree with other caps -TD
-#
-# 2012-03-31
-#	* correct order of use-clauses in st-256color -TD
-#
-# 2012-04-01
-#	* revert 2011-07-16 change to "linux" alias, return to "linux2.2" -TD
-#
-# 2012-04-14
-#	* document all of the user-defined capabilities in one place -TD
-#	* add XT to some places to improve usefulness for other applications
-#	  than screen, which would like to pretend that xterm's title is
-#	  a status-line. -TD
-#	* change use-clauses in ansi-mtabs, hp2626, and hp2622 based on review
-#	  of ordering and overrides -TD
-#
-# 2012-04-21
-#	* add msgr to vt420, similar DEC vtXXX entries -TD
-#	* add several missing vt420 capabilities from vt220 -TD
-#	* factor out ansi+pp from several entries -TD
-#	* change xterm+sl and xterm+sl-twm to include only the status-line
-#	  capabilities and not "use=xterm", making them more generally useful
-#	  as building-blocks -TD
-#	* add dec+sl building block, as example -TD
-#
-# 2012-04-28
-#	* fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD
-#	* add eslok flag to dec+sl -TD
-#	* dec+sl applies to vt320 and up -TD
-#	* drop wsl width from xterm+sl -TD
-#	* reuse xterm+sl in putty and nsca-m -TD
-#	* add ansi+tabs to vt520 -TD
-#	* add ansi+enq to vt220-vt520 -TD
-#
-# 2012-05-05
-#	* remove p6 (bold) from opus3n1+ for consistency -TD
-#	* remove acs stuff from env230 per clues in Ingres termcap -TD
-#	* modify env230 sgr/sgr0 to match other capabilities -TD
-#	* modify smacs/rmacs in bq300-8 to match sgr/sgr0 -TD
-#	* make sgr for dku7202 agree with other caps -TD
-#	* make sgr for ibmpc agree with other caps -TD
-#	* make sgr for tek4107 agree with other caps -TD
-#	* make sgr for ndr9500 agree with other caps -TD
-#	* make sgr for sco-ansi agree with other caps -TD
-#	* make sgr for d410 agree with other caps -TD
-#	* make sgr for d210 agree with other caps -TD
-#	* make sgr for d470c, d470c-7b agree with other caps -TD
-#
-# 2012-05-12
-#	* rewrite vt520 entry based on vt420 -TD
-#	* corrected 'op' for bterm (report by Samuel Thibault) -TD
-#
-# 2012-06-02
-#	* add kdch1 to wsvt25 entry from NetBSD CVS (reported by David Lord,
-#	  analysis by Martin Husemann).
-#	* add cnorm/civis to wsvt25 entry from NetBSD CVS (report/analysis by
-#	  Onno van der Linden).
-#	* add kdch1 aka "Remove" to vt220 and vt220-8 entries -TD
-#	* add kdch1, etc., to qvt108 -TD
-#	* add dl1/il1 to some entries based on dl/il values -TD
-#	* add dl to simpleterm -TD
-#
-# 2012-06-10
-#	* modify some older xterm entries to align with xterm source -TD
-#	* separate "xterm-old" alias from "xterm-r6" -TD
-#
-# 2012-07-28
-#	* add E3 to xterm-basic and putty -TD
-#
-# 2012-08-11
-#	* add nsterm-256color, make this the default nsterm -TD
-#	* remove bw from nsterm-bce, per testing with tack -TD
-#
-# 2012-10-12
-#       * add vte-2012, gnome-2012, making these the defaults for vte/gnome
-#	  (patch by Christian Persch).
-#
-# 2012-11-02
-#	* reviewed vte-2012, reverted most of the change since it was incorrect
-#	  based on testing with tack -TD
-#	* un-cancel the initc in vte-256color, since this was implemented
-#	  starting with version 0.20 in 2009 -TD
-#
-# 2013-03-16
-#	* correct typo in sgr string for sun-color,
-#	  add bold for consistency with sgr,
-#	  change smso for consistency with sgr -TD
-#	* correct typo in sgr string for terminator -TD
-#	* add blink to the attributes masked by ncv in linux-16color (report
-#	  by Benjamin Sittler)
-#
-# 2013-03-23
-#	* change initialization for vt220, similar entries for consistency
-#	  with cursor-key strings (NetBSD #47674) -TD
-#	* further improvements to linux-16color (Benjamin Sittler)
-#
-# 2013-05-11
-#	* move nsterm-related entries out of "obsolete" section to more
-#	  plausible "ansi consoles" -TD
-#	* additional cleanup of table-of-contents by reordering -TD
-#
-# 2013-06-07
-#	* added note to clarify Terminal.app's non-emulation of the various
-#	  terminal types listed in the preferences dialog -TD
-#
-# 2013-11-02
-#	* use TS extension to describe xterm's title-escapes -TD
-#	* modify terminator and nsterm-s to use xterm+sl-twm building block -TD
-#	* update hurd.ti, add xenl to reflect 2011-03-06 change in
-#	  http://git.savannah.gnu.org/cgit/hurd/hurd.git/log/console/display.c
-#	  (Debian #727119).
-#	* simplify pfkey expression in ansi.sys -TD
-#
-# 2013-11-10
-#	* split-out building blocks xterm+sm+1002 and xterm+sm+1003 -TD
-#
-# 2014-02-22
-#	* updated notes for wsvt25 based on tack and vttest -TD
-#	* add teken entry to show actual properties of FreeBSD's "xterm"
-#	  console -TD
-#
-# 2014-03-22
-#	* add terminology entry -TD
-#	* add mlterm3 entry, use that as "mlterm" -TD
-#	* inherit mlterm-256color from mlterm -TD
-#
-# 2014-03-23
-#	* fix typo in "mlterm" entry (report by Gabriele Balducci) -TD
-#
-# 2014-03-30
-#	* cancel ccc in putty-256color and konsole-256color for consistency
-#	  with the cancelled initc capability (patch by Sven Zuhlsdorf).
-#	* add xterm+256setaf building block for various terminals which only
-#	  get the 256-color feature half-implemented -TD
-#	* updated "st" entry (leaving the 0.1.1 version as "simpleterm") to
-#	  0.4.1 -TD
-#
-# 2014-05-03
-#	* add vt520ansi (Mike Gran)
-#
-# 2014-05-24
-#	* correct several entries which had termcap-style padding used in
-#	  terminfo: adm21, aj510, alto-h19, att605-pc, x820 -TD
-#	* correct syntax for padding in some entries: dg211, h19 -TD
-#	* correct ti924-8 which had confused padding versus octal escapes -TD
-#	* correct padding in sbi entry -TD
-#
-# 2014-06-07
-#	* update xterm-new to patch #305 -TD
-#	+ change screen's smso to use SGR 7 (ECMA-80 reverse) rather than SGR 3
-#	  (italic).  This was a long-ago typo in screen 3.1.1 which was
-#	  overlooked until a few terminal emulators implemented the feature -TD
-#
-# 2014-06-09
-#	> fix regression in screen terminfo entries (reports by Christian
-#	  Ebert, Gabriele Balducci) -TD
-#	+ revert the change to screen; see notes for why this did not work -TD
-#	+ cancel sitm/ritm for entries which extend "screen", to work around
-#	  screen's hardcoded behavior for SGR 3 -TD
-#
-# 2014-06-14
-#	+ modify sgr for screen.xterm-new to support dim capability -TD
-#	+ add dim capability to nsterm+7 -TD
-#	+ cancel dim capability for iterm -TD
-#	+ add dim, invis capabilities to vte-2012 -TD
-#	+ add sitm/ritm to konsole-base and mlterm3 -TD
-#
-# 2014-10-06
-#	+ add xterm-1005 and xterm-1006 entries, with suggested extension
-#	  capability "xm" -TD
-#
-# 2014-10-07
-#	+ update test-report for mrxvt -TD
-#
-# 2014-10-11
-#	+ add xterm-x10mouse, xterm-x11mouse, etc. -TD
-#
-# 2014-10-18
-#	+ reviewed terminology 0.6.1, add function key definitions.  None of
-#	  the vt100-compatibility issues were improved -TD
-#
-# 2015-04-22
-#	+ add 'dim' capability to screen entry (report by Leonardo B Schenkel)
-#	+ add several key definitions to nsterm-bce to match preconfigured
-#	  keys, e.g., with OSX 10.9 and 10.10 (report by Leonardo B Schenkel)
-#
-# 2015-05-02
-#	+ remove unnecessary ';' from E3 capabilities -TD
-#	+ add tmux entry, derived from screen (patch by Nicholas Marriott).
-#	+ split-out recent change to nsterm-bce as nsterm-build326, and add
-#	  nsterm-build342 to reflect changes with successive releases of OSX
-#	  (discussion with Leonardo B Schenkel)
-#	+ add xon, ich1, il1 to ibm3161 (patch by Stephen Powell,
-#	  Debian #783806)
-#
-# 2015-05-17
-#	+ remove screen-bce.mlterm, since mlterm does not do "bce" -TD
-#	+ add several screen.XXX entries to support the respective variations
-#	  for 256 colors -TD
-#
-# 2015-05-23
-#	+ add putty+fnkeys* building-block entries -TD
-#
-# 2015-05-30
-#	+ remove spurious "%;" from st entry (report by Daniel Pitts) -TD
-#	+ add vte-2014, update vte to use that -TD
-#
-# 2015-06-27
-#	+ comment-out "screen.xterm" entry, and inherit screen.xterm-256color
-#	  from xterm-new (report by Richard Birkett) -TD
-#
-# 2015-07-25
-#	+ add status line to tmux via xterm+sl (patch by Nicholas Marriott).
-#	+ fixes for st 0.5 from testing with tack -TD
-#
-######## SHANTIH!  SHANTIH!  SHANTIH!
