This is the README for Top Gun Telnet, my first try at an application
that uses the Palm Pilot Pro's built-in TCP/IP library.

Instructions
------------

Here's a brief set of instructions (obviously, you need to have a Palm
Pilot Professional for this to work at all):

 o Start PPP from the "Network" section of the Prefs app.
 o Go to the TG Telnet app.
 o Enter the server hostname in the top line on the screen, and hit "Open".
   You can enter a hostname or numerical IP, optionally followed by a
   colon and a port number.
 o Type into the bottom field (just above the buttons), and push "Send"
   or "SendCR" to send the text with or without a return.  Use "^x" to send
   a control-x, "\^" to send ^, "\\" to send \, "\e" to send ESC, etc.
   The page up and page down keys on the Pilot send ^k and ^l, respectively.
 o Once you have logged in, you may have to set your remote machine to
   "echo" mode ("stty echo" on Unix) if you want your typing to appear in
   the output window.
 o The menus will let you change the font size and/or width of the terminal.
   If you choose a width larger than you can see, the thick line above the
   text entry field will become a simple scrollbar.  NOTE: the bar will
   _not_ move as you drag it; it will only move when you lift your pen.
   ALSO NOTE: If the screen does not update after you change font or width,
   tap the Graffiti area (putting you into punctuation mode).  For some
   reason, this (or a handful of other events) seems to unblock it.
 o Hit "Close" to disconnect when you're done.

For best results, you should run "screen" on the machine to which to telnet.
This will provide your applications with a VT100 environment, and handle
things like virtual terminals, automatic screen redraws when you change
width or font, and the ability to interrupt and resume login sessions.

The termcap entry for tgtelnet is contained in the accompanying "termcap"
file, and duplicated here:

pi|pilot|tgtelnet:am:xn:bs:co#39:li#16:cl=\Ec:cm=\Em%+ %+ :ho=\Em  :nw=\Em~ :\
	:so=\Eb:se=\EB:bl=^g:cr=^m:do=^j:le=^h:kP=^k:kN=^l:

To use it (and screen), put it in your server's /etc/termcap file.  Then,
when you log in to your server using tgtelnet and do "stty echo", set your
TERM environment variable to "tgtelnet", and run screen.

With this method, I have been able to run vi, emacs, elm, trn, and lynx.
What more could you want?

Future Enhancements
-------------------

OK, you could want more.  First of all, source.  It will be released when
I get a little more free time after the semester is over.  Watch the
pilot-unix mailing list for announcements.  Second of all, when I go
home (_not_ in the US) at the end of the semester, I will be adding
crytpo into the client, to hopefully make it ssh-compatible.

Comments and bug reports are welcome (though I don't promise not to
put them aside or ignore them...); send them to the pilot-unix list
or to me at the address below.

Legalese
--------

    This software is copyrighted by the Regents of the University of
    California.  The following terms apply to all files associated with
    the software unless explicitly disclaimed in individual files.

    The authors hereby grant permission to use, copy, modify,
    distribute, and license this software and its documentation for any
    purpose, provided that existing copyright notices are retained in
    all copies and that this notice is included verbatim in any
    distributions. No written agreement, license, or royalty fee is
    required for any of the authorized uses.  Modifications to this
    software may be copyrighted by their authors and need not follow the
    licensing terms described here, provided that the new terms are
    clearly indicated on the first page of each file where they apply.

    IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
    FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
    ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
    DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
    POSSIBILITY OF SUCH DAMAGE.

    THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
    NON-INFRINGEMENT.  THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
    AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE
    MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

   - Ian Goldberg, ISAAC Group, UC Berkeley
     <iang@cs.berkeley.edu>
