ArpVT200:
A VT200/VT100/VT52/XTerm emulator for ArpTelnet.

Version 4 / August 3, 1998

Copyright ©1998 by Angry Red Planet and Dianne Hackborn.
All rights reserved.

This program is not public domain, nor freely distributable.
Please direct any questions or requests to Dianne Hackborn,
at <hackbod@lucent.com> or <hackbod@angryredplanet.com>.

The files contained here-in must be distributed together, as
they came in the original archive.  You are free to edit and
pervert the source files, but you may not distribute such
changes without my express concent.  I would also appreciate
patches for any fixes or enhancements you make, so that I
can integrate them back into this distribution; any such
contributions will be meet with great appreciation and accolades.

Based (increasingly loosly) on WebTerm, a Web-based terminal applet
written in Java, which is Copyright (C)1996 by the National Alliance for
Computational Science and Engineering (NACSE).
See <URL:http://www.nacse.org/> for more information.

------------------------------------------------------------------------

THANKS TO

Jon Watte for many hints on using sockets under BeOS.

Gustav Kalvesten for reporting the problem with XTerm's title text
sequences.

Tom Spindler for pointing me to "vttest" and sending over a copy.

Rich $alz and Per Lindberg for vttest, which has made the VT
emulation much more solid...  it's not completely there yet, but getting
much better.

------------------------------------------------------------------------

CONTENTS

This archive contains the ArpTelnet application, a VT200-based add-on
emulator for it, and source code.  These are organized into three directories:

	src/ArpTermEmu is the VT200/VT100/VT52/XTerm emulator add-on.
		Full source for this is provided.

	src/makefiles generic support makefiles for building all this stuff.

To build the add-on you will need to get the ArpCommon distrubution
and move the resulting directory to src/ArpCommon.  Then open a bash shell, CD
to ARP/ArpTermEmu, and type "make".  This will build both the emulator and application.

------------------------------------------------------------------------

STATUS

NOTE: If you find any VT200 or X-Terminal sequences that do not
behave as they should, please let me know what they are and what
you think they should do, so that I can fix them!

------------------------------------------------------------------------

USAGE

This is a terminal emulation add-on for the ArpTerminal classes.  To you use
it, you should place it in an add-ons/ArpTerminal directory -- either from the
directory of your application, or in /usr/home/config/add-ons.

------------------------------------------------------------------------

HISTORY

July 31, 1998 (Version 1.3):

	Terminal:
	• Split off the terminal emulation code tree from the original
	  ArpCommon and ArpTelnet code bases.

The rest of this document is intended for programmers; if you are just
interested in using the application, there's no reason to read any further...

------------------------------------------------------------------------

VT200 EMULATOR OVERVIEW

The VT200 emulator is fairly complete.  You can play around with it
by typing text when a TELNET session isn't active: in this case, all the
text you type is simply echoed back to the screen.  Here are some of
the more rewarding VT200 escape sequences:

	<ESC>[0m   -- Plain boring text.
	<ESC>[1m   -- Bold text style.
	<ESC>[4m   -- Underscore text style.
	<ESC>[5m   -- Italic text style.
	<ESC>[7m   -- Inverse text style.
	<ESC>[22m  -- Bold text style off.
	<ESC>[24m  -- Underscore text off.
	<ESC>[25m  -- Italic text off.
	<ESC>[27m  -- Inverse text off.
	<ESC>[3Nm  -- Set foreground color, where N is the color number.
	<ESC>[4Nm  -- Set background color, where N is the color number.

	<ESC>[T;Br -- Set scroll region top to row T and bottom to row B.

	<ESC>[L    -- Insert line(s) at cursor.
	<ESC>[M    -- Delete line(s) at cursor.
	<ESC>[P    -- Delete character(s) at cursor.
	<ESC>[@    -- Insert character(s) at cursor.
	<ESC>[X    -- Erase character(s) at cursor.
	<ESC>[J    -- Erase in display.

Note also that the cursor keys send out appropriate VT200 sequences,
so they can be used to move the cursor around the screen.

------------------------------------------------------------------------

EMULATOR CLASSES

Most of the ArpTerminal classes are implemented in the ArpCommon class
library.  This library contains classes for the terminal, a subclass from which
add-on emulators can build, and classes for managing the available emulations.
You will need the library distribution to rebuild this emulator from its source; it
should be available from the same place at which you got the application
distribution.

Briefly, the most important classes that ArpVT200 uses in the library are:

	ArpTerminalInterface is an abstract interface to a terminal-like
		device.
	ArpEmulatorInterface is an abstract interface to the code that
		implements a particular emulator.
	ArpEmulator is a useful base class of a terminal emulator; it also
		implements a dumb emulation.
