
               AmTelnet II - The AmigaOS Telnet Client
               =======================================

               Copyright © 1998-2000 by Oliver Wagner
                         <owagner@vapor.com>
                         All Rights Reserved

             AmTelnet 1.x © 1996-98 by Mathias Mischler
                         All Rights Reserved

           FTP Support Site: ftp.vapor.com, /pub/amtelnet
               WWW Support Site: http://www.vapor.com/

         Support Mailing List: <amtelnet-request@vapor.com>
            ("SUBSCRIBE" in subject or body to subscribe)

=====================================================================

1. Introduction

AmTelnet II is a client for the Internet "Telnet" and "SSH"
protocols for remotely logging into computers, playing
text-oriented multi-user games ("MUD"s or "MUSH"s) or
manually simulating internet protocols.


2. Changes since previous release

- "Client break" functionality

- heavily improved output speed when receiving a lot of input
  due to automatic scroll-jump heuristics

For a full list of changes, see below.


3. Note for registered AmTelnet 1.x users

AmTelnet II requires new keyfiles. However, the upgrade for
registered AmTelnet 1.x users is *FREE*. New keyfiles have been
mailed out to all existing AmTelnet 1.x users to the e-mail
addresses on which they originally received their keyfiles.

Should you, for some reason, not have received your AmTelnet II
keyfile yet, please mail your current AmTelnet keyfile together
with a short note on *WHERE* and *WHEN* you originally registered
to <keyfile-update@vapor.com>. Please note that those requests
have to be manually processed by a poor overworked software
developer (me), and thus they generally have awkward response
times -- sorry for that.

Please note that NetConnect II users are not entitled for
an free AmTelnet II upgrade. AmTelnet II is part of the
general NetConnect III upgrade, however, please contact
Active Technologies for any relevant information on the
NetConnect package issues.


4. Registration

AmTelnet II will work in 15 minute demonstration mode
without a keyfile.

AmTelnet II can be registered with the included registration
utility or directly online with any major credit card at

 http://www.vapor.com/order/

Delivery of keyfile is instantious with the online
registration system.


5. Bug reporting

Please mail bug reports and enhancement suggestions to

 <amtelnet-bugs@vapor.com>

Any reportes submitted this way are automatically entered into
the VaporWare bug tracking system. Please see

 http://bugs.vapor.com/

on more information on how to access the bug tracking system.


6. Documentation

As the time of writing, AmTelnet II totally lacks any documentation.
Any volunteers on that are greatly appreciated :)

=====================================================================

Changes since AmTelnet 1.8:

1.11 internal
-------------
[took over Source from Merlin]
- XPR: changed XPR frontend to use AsyncIO lib

1.12 internal
-------------
- Telnet: fixed initial IAC sending screwup (what happened was that
  DO TELOPT_BINARY was send with a function which does a strlen()
  somewhere in between, and TELOPT_BINARY is ascii 0...)
- GUI: now explictely checks for Term.MCC Version 20+ to avoid
  confusion

1.13 internal
-------------
- XPR: fixed XPR receive (IAC escaping across boundaries didn't
  work)

1.14 internal
-------------
- Net: Added SSH1 support (IDEA, BLOWFISH, 3DES)
- GUI: now uses Textinput.mcc

1.15 internal
-------------
- SSH: did tons of code cleanup
- SSH: fixed memory leakage
- SSH: removed IDEA encryption code, added Arcfour encryption code
- SSH: password input will no longer echo "*"
- SSH: fixed error handling
- SSH: added compression support
- SSH: fixed multiple initialization crash
- SSH: should now also work with as225r2
- GUI: fixed menu shortcuts
- GUI: fixed menu item enabling
- GUI: now shows "[SSH]" in title bar/iconify text when SSH connected
- XPR: fixed TimerIO screwup in sread() implementation
- XPR: fixed excess XPR window refreshes. Should considerably speed up
  XPR transfers on fast media (e.g. ethernet). Tiny benchmark: sz'ing
  over Ethernet from a 486DX-100 linux machine gives 250k/s in "raw"
  and about 45k/s in SSH mode
- XPR/SSH: XPR transfers now also work on SSH connections
- XPR: added support for automatic Z-Modem Upload/Download

1.16 beta
---------
- GUI: now properly reports when term.mcc is too old, instead of saying
  that it's not there
- GUI: regrouped menu items
- GUI: added "Reset tweaks" to reset the emulation tweaks (CR/LF etc.)
  to sensible defaults
- GUI: edit window terminal type is now a cycle as well
- GUI: added "Auto fullsize when connected" option
- SSH: fixed screwup when clicking "Close connection" during SSH
  login
- GUI: fixed opening of SSH hosts from history
- Prefs: Added SSH shell option/tooltype
- Prefs: fixed saving of new prefs items
- GUI: added support for Vapor Update Library

1.17 beta
---------
- General: Now uses vapor_toolkit.library for various stuff
- SSH: now using cryptographically strong random number generator
  from vapor_toolkit for generating session keys
- GUI: char bar was limited to 80 characters (oops)
- General: removed a few remaining calls to OldOpenLibrary()
  to make Patchwork happy

1.18 beta
---------
- General: recompiled with full optimization

1.19 beta
---------
- GUI: made "CRASLF" the default
- GUI: added flag "Use custom terminal settings?"
  to individual profiles. If unset, will not modify the
  default AmTelnet Terminal tweaks etc. settings when
  selecting the host
- GUI: removed stupid "About" animation

1.20 beta
---------
- Net: in SSH mode, Return is now always sent as LF
  (protocol standard)
- GUI: useless "8-Bit-Mode" is now OFF by default
- GUI: made "8-Bit-Mode" labeling more clear
  ("8-Bit CSI?")
- Net: fixed a bug in fkey parsing which could
  overwrite a buffer, thus causing crash
- Net: now sets SO_KEEPALIVE even for non-ssh
  connections
- GUI/Net: added option to disable the nagle
  algorithm (TCP_NODELAY)
- GUI/Net: added option to set the SSH compression
  level
- Net: will now translate CTRL^C to telnet
  IAC IP
- GUI: changed CRASLF to Off by default (sigh --
  obviously, term.mcc implements the proper
  ESC sequences to turn this on/off)

1.21 beta
---------
- GUI: raised term.mcc required version to 22
- Net: removed CTRL^C to IP translation again
- GUI: removed "Autofullsize" option;
  previous "Fullsize" will behave now behave
  more like this (fullsize when connected,
  control panel otherwise)
- Net: no longer sets a broken term ident type
  when connecting to a phonebook entry
- GUI: no longer opens a bogus "Can't open file ''"
  requester when a Save operation is aborted
- GUI: added Send IP/AO/AYT menu items in
  "Functions" menu
- GUI: changed to special vapor table
  catalog handling. This renders old
  catalogs useless, though.
- GUI: "CRLF" was still the default after
  "Reset tweaks"
- General: did some code cleanup and reduced
  static memory usage by 16k

1.22 beta
---------
- GUI: showing "About" while the about window 
  was already open would OpenDiskFont()
  two fonts which would never have been
  closed again
- GUI: reworked GUI a bit, added new logo
  and updated about text
- SSH: updated crlf conversion to deal
  with new term.mcc behavior
- GUI: raised term.mcc required version to 23
- GUI: now sets UsedClasses properly

1.23 beta
---------
- Net: Sending of username/password wasn't
  following the proper \r\n-semantics
- GUI: Nagle and SSH compression settings
  weren't saved
- GUI: relabeled "Use custom terminal settings?"
  with "Save terminal settings with profile?"
  to make function more clear

1.24 beta
---------
- GUI: fixed SSH Compression default settings
- GUI: per-profile terminal settings weren't
  properly saved

1.25beta
--------
- GUI: "Change Transfer path" is now an
  ASL drawersonly request instead of a stupid
  text gadget window
- GUI: fixed "will use wrong server entry
  when reconnecting with double click and
  having multiple server with same hostnames
  in phonebook" bug
- SSH: fixed overwriting of passwords in
  host entry on auto-login

1.26beta
--------
- GUI: now checks for Term.MCC V24
- GUI: added escape code help line to
  function key window. Also gives the
  Fkey window a more reasonable default size
- GUI: fixed control bar group spacing
- Net: Send Username/Password now also works
  in SSH mode (without causing a SSH packet
  screwup :)
- Net: no longer sends a DO BINARY WILL BINARY
  after connection establishment
- GUI: Z-Modem Auto Send/Receive was always
  done, even when deselected
- Net: now sends DO BINARY WILL BINARY
  before starting XPR, and DONT BINARY WONT BINARY
  after finishing

1.27beta
--------
- Prefs: serious bug in getting term arguments
  from the term.mcc caused overwriting of innocent
  memory. The memory overwriting may have caused
  all kind of (not so) funny side effects, so if you
  experienced one of those, they may well be gone
  now.

1.28beta
--------
- CVS: initial import
- GUI: fixed a few typos in catalog
- General: fixed enforcer hit flood when pressing
  "connect" without having an host entry selected
- General: changed a last reamining OldOpenLibrary()
  to OpenLibrary() for Patchwork's sake

1.29beta
--------
- GUI: added "Resume transfers" option (Wiz)
- Net: it's possible to telnet to any port now (Zapek)

1.30beta
--------
- GUI: completely rewrote host phonebook system. Old
  style host lists are loaded and converted on first
  start. Host entries can now have a reference
  to a custom config file which is loaded when
  a host is connected (Olli)
- Prefs: changed config file naming to "<name>.AmTcfg"
  and default config to "Default.AmTcfg". Old file
  is still read when "Default.AmTcfg" doesn't exist.

1.31beta
--------
- GUI: phonebook listview is now default object and
  can be controlled with the cursor keys after window
  opened (Olli)
- GUI: fixed username input problem in SSH mode
  with certain term.mcc CR/LF settings (Olli)
- SSH: math now uses workbench math libraries,
  making use of FPU if available (Olli)

1.32beta
--------
- GUI: added "Sort" button to phonebook (Olli)
- GUI: fixed problems with configuration asl popup
  and certain ASL hacks (Olli)
- GUI: main window server string now browses
  through phonebook server list upon
  cursor up/down (Olli)
- GUI: fixed bug with connection port and type
  being lost (Olli)
- GUI: server string is now active by default
  when AmTelnet opens (Olli)
- GUI: added shortcut keys to phonebook (Olli)

1.33beta
--------
- GUI: addded shortcuts to all phonebook's gadgets (Carlos)
- Fixed bug causing phonebook gadgets to be initialized
  with trash for newly added entry (Carlos)
- GUI: when phonebook is not empty, first entry
  is made active by default for the 1st time phonebook
  is being opened (Carlos)
- GUI: phonebook can no longer be dissmissed, if you
  got some asl requesters remaining opened (Carlos)
- General: RegUtil related calls now use VAT (Carlos)
- GUI: fixed 'broken' AmTalk logo in win_demo object (Carlos)
- GUI: Corrected menu layout and shortcuts (Carlos)
- GUI: Localized a few remaining hard-coded strings (Carlos)
- GUI: Added CloseGadget to 'connecting...' window, so you
  can now abort with ESC easyily (Carlos)
- GUI: fixed shortcut keys in phonebook to follow ASG (Carlos)
- GUI: removed ugly phonebook flickers on window open (Carlos)
- GUI: fixed autologin (broken in 1.32beta) (Olli)

1.34beta
--------
- GUI: passing a "hostname" on the commandline which matches
  a phonebook shortname now triggers an autoconnect to the
  given entry, using those parameters (Olli)
- GUI: cycle chained main window gadgets (Carlos)
- GUI: reworked menu once again (Carlos)
- GUI: Iconify title reflects "[Telnet]" as well
  as "[SSH]" depending on connection type (Carlos)
- General: user is now asked for confirmation whenever
  he is going to open new connection while the old
  one is not closed (Carlos)
- GUI: Phonebook will now disallow you to remove/edit the
  definition of the host you are connected to (Carlos)
- General: AmTelnet now checks and warns before it
  overwrite existing file (Carlos)
- General: Added "Connect thread" feature (Carlos)
- GUI: you can no longer quit AmTelnet if there are
  any pop asl objects wanking around (Carlos)
- GUI: it's now possible to manually enter the shortname
  of a phonebook entry and press return to connect to it (Olli)
- GUI: made about window height more reasonable (Olli)
- GUI: cycle chain for main window gadgets is now
  disabled when a connection is established, to allow TAB
  to work normally when inside term window (Olli)

1.35beta
--------
- GUI: phonebook gadgets get disabled if you connect to the
  the currently selected host from main window while phonebook
  window is still opened (Carlos)
- GUI: reworked "FKey" window (Carlos)
- General: "Connect thread" now clones terminal dimensions
  as well (Carlos)
- GUI: Phonebook's "Entry name" string gadget gets automatically
  activated when new host is added (Carlos)
- GUI: fixed bug causing manually entered host name being
  always overriden by phonebook active entry (Carlos)
- General: Opening SSH connection with "Connect thread" didn't
  work (Carlos)
- GUI: fixed bug causing manually entered host name in main
  window's "Server" string gadget, being always overriden by
  phonebook active entry, which made AmTelnet connect to the
  wrong host as soon as you used phonebook. As a side effect,
  phonebook's connect-on-list-double-click had to be disabled
  (Carlos)

1.36beta
--------
- GUI: now uses Popplaceholder.mcc class (Carlos)
- GUI: reenabled phonebook double click (Olli)
- GUI: lame bug (reusing object pointer) caused main window
  port gadget to not be available once the phonebook was
  opened (Olli)

1.37beta
--------
- GUI: Phonebook should now fit 640x200 screens (Carlos)
- General: Fixed "Connect thread" bug causing it to not
  spawn new AmTelnet correctly (Carlos)
- GUI: "Open new window" clones now terminal size (Carlos)
- GUI: Phonebook's "Entry name" string didn't get activated
  when the new host was added to the virgin phonebook (Carlos)
- General: fixed potential nuke on "New AmTelnet" and
  "Connect thread" due to missing TAG_DONE (Olli)

2.0 (2.0 prerelease)
-------------
- General: moved to new style keyfiles (Olli)
- General: fixed bug making (under some circumstances) the app to
  behave as unregistered even the valid keyfile was placed in valid
  key directory (Carlos)

2.0.1
-----
- General: fixed "Conntect thread" wrongly passing port number
  (Carlos)

2.0.2
-----
- General: SSH thread connections now works for all cases (Carlos)
- General: if the host the threaded connection is about to be
  spawned to exists in the phonebook and has a short name (profile
  name) defined AmTelnet passes it, to allow auto-login to take
  place in new AmTelnet too (Carlos)
- General: Added "Clone connection" menu item for doing multiple
  connection to the same host easier (Carlos)

2.0.3
-----
- General: removed a lot of stale code (Olli)
- General: fixed an extremly lame bug in setting the iconify
  title with long hostnames. Buffer overflow and crash either
  during operation or more likely on quit. We had this before, 
  didn't we? (Olli)

2.1 (release)
-------------
- added updated Vapor libraries and MCCs

2.1.1
-----
- Net: now sends an explicit window size packet after logging,
  to make sure the remote terminal really catches it.
  (Olli)
- GUI: fixed window title to represent proper terminal
  size in fullscreen mode (Olli)
- Net: hopefully fixed a few problems with XPR transfers
  (Olli)

2.1.2
-----
- Net: fixed another problem with IAC escaping in the
  XPR driver which could return "0 bytes read" even when
  a byte was read, but this was collapsed due to IAC
  deescaping. Should fix Z-Modem problems (Olli)
- GUI: made XPR window break button more responsive (Olli)

2.1.3
-----
- GUI: Fkeys could insert trash, depending on stack
  contents (Olli)
- GUI: manually entering a hostname after having connected
  to a different host via the phonebook before 
  should work now (Olli)

2.1.4
-----
- GUI: relabeled "Entry name" in phone book back to
  "Short name", for the sake of clarification (Olli)
- Net: fixed XPR over SSH, broken in 2.1.3 (Olli)
- GUI: clicking "Sort" in the phonebook would
  desync the internal "active entry" pointer and
  thus overwrite an phonebook entry (Olli)

2.1.5
-----
- GUI: chat bar status is now saved as well (Olli)
- SSH: now returns "ansi" terminal type when in
  ansi mode (Olli)

2.2
---
- Net: it's now possible to explicitely set the
  terminal reported during DO TTYPE / SSH terminal
  type negotiation (as some older termcaps don't
  have proper "ansi" entries)
- added updated Installer script, libs and classes
- recompiled with full optimization for release

2.2.1
-----
- Net: now sends linux-alike PTY modes when requesting
  a SSH link. Should fix problems with HP-UX hosts
  etc. Thanks to jon@siliconcircus.com for supplying
  this part of the PenguiNet code (Olli)

2.2.2
-----
- Net: added option to send "keepalives" to avoid
  TCP timeouts when connecting over a masquerading
  proxy. Will send SSH IGNORE or Telnet NOP after
  30 seconds of no user input. (Olli)

2.2.3
-----
- Net: fixed SSH keepalive to not send a string
  argument with SSH_MSG_IGNORE for sshds < 1.2.23
  (Thanks to Jon 'PenguiNet' Bright) (Olli)

2.2.4
-----
- GUI: fixed duplicate shortcuts fors
  Local echo / Send Ascii (Olli)
- GUI: added Copy & Paste menu entry to copy and
  immediately past the select line again (Olli)
- GUI: fixed selecting an host entry in phonebook
  and clicking on "Use" (Olli)
- GUI: will now lookup a host name in the phonebook
  if it can't be looked up via DNS (Olli)
- General: Added abbreviations of CLI arguments (Carlos)
- GUI: Popph used for TTYPE popup (Carlos)

2.3 [release]
-------------

2.3.1
-----
- GUI: fixed fonts in about window buttons (Olli)

2.3.2
-----
- Net: Added "Client break" functionality. If executed, AmTelnet
  will sent a CTRL^C to the remote end and then eat up all following
  output until there is 1/2 second of network silence, then it will
  output the last line (or parts of that). This is extremly useful
  if you started a massive output-generating command (like, ls -lR /)
  and due to network latency and/or output slowness, are not likely
  to see a simple CTRL^C being executed in this century (Olli)

2.4 [release]
-------------
- added optimized outputting heuristics: when more than 256 bytes
  of data come in a time, AmTelnet sets Term.mcc into quiet mode
  and does a full screen refresh after the output. Heavily speeds
  up outputting of large amounts of text due to removed scrolling
  requirements (Olli)
- added new Term.mcc, Textinput* and Popplace holder revisions
- added Catalogs by ATO
- recompiled with full optimization

=====================================================================

Term.mcc changes

19.7
----
- did some minor optimizations (data alignment, opening of
  cybergfx library etc.)

20.0
----
- raised version to 20.0 for AmTelnet compatibility
- modified IAC handling

21.0
----
- added SAVEFH and SAVEPLAINFH to save into AmigaDOS filehandles
- raised output buffer limit (for clipboard pastes)
- bumped version to 21 so users are able to check for the new
  methods
- recompiled with full optimization
- fixed SETABSXY (fixes AmTelnet "Reset window to 80x25")
- calculation of available character cell space was wrong
  and mostly off by 1 cell of width/height
- right/bottom frame clearing could cause a call to
  RectFill() with xstart>xend and/or ystart>yend, thus
  wrecking havoc on AGA machines

21.1
----
- fixed a bug in handling IACs which could cause parts
  of the IAC sequence to be echoed to the user

21.2
----
- will now properly reply WONT to any DONT inquiry
  (should fix strange AIX hosts which slap a 
  DO ECHO into our face, but obviously don't like
  us to actually echo :)

21.3
----
- will now use SetABPenDrMd() and SetMaxPen() when
  running on OS 3.x systems. Should squeeze some
  more speed out of it.
- did various more code cleanup

21.4
----
- recompiled with full optimization

21.5
----
- will now send WONT to DO TFLOW and LINEMODE

21.6
----
- wouldn't handle IAC IAC properly

21.7
----
- will now no longer echo unknown ESC sequences; with
  debugging enabled, will print the command code

22.0
----
- bumped version to 22 so users are able to check for the
  new version

22.1
----
- changed the translation of the return key to "\n"
  to conform with the NVT specification. Also,
  CTRL-RETURN is now translated to "\r"

23.0
----
- added config item to limit scrollback buffer size
  (defaults to 1024 lines)

24.0
----
- implemented ANSI T (scroll up) sequence
- implemented ANSI S (scroll down) sequence
- changed CR/LF handling *again*, hopefully correct now
  (special thanks to Jon Bright for advice on that)
- TCM_SCROLLDOWN messed up the buffer when a scroll
  region was set (PINE 4.10 reader havoc)

24.1
----
- will now reply WONT BINARY to DO BINARY requests --
  accepting binary mode seems to confuse several
  telnetds, making login impossible (SunOS 5.6,
  and probably many others who reported problems
  with login and cr/lf handling)

24.2
----
- recompiled with full optimization

24.3
----
- initial CVS import

25.0
----
- added wheel support. Plain wheel scrolls 3 lines,
  Shift + Wheel scrolls 1 page, Ctrl + Wheel scrolls
  1 line (Olli)

26.0
----
- with cursor style inverse, will now show "plain"
  when being over inverse text, to make cursor visible
  when scrolling in a VT100 with inverse parts (Olli)

26.1
----
- optimized release of 26.0

26.2
----
- fixed problem with "Position 81" wrapping after
  the offending write, instead of on the next write.
  Caused problems with Pine and probably many other.
  (Olli)

26.3
----
- fixed character wrapping again (Olli)
- OM_GET now correctly returns TRUE when an Term.mcc
  attribute was found, and only does a DOSUPER
  for unknown ones (Olli)
- some minor internal optimizations (Olli)

26.4
----
- now ignores private Amiga CSI sequences (Olli)

26.5
----
- fixed clipboard paste to actually do proper LF/CR conversions
  (Olli)
- fixed wrapping in the last line causing a buffer overwrite
  and rendering out of the object's rectangle (Olli)

26.6
----
- implemented ANSI 'd' sequence (relative position absolute)
  (Olli)
- now saves cursorstyle properly (Olli)

26.7
----
- fixed buffer save failing sometimes (Olli)

27.0
----
- now returns "ANSI" when in ANSI mode, instead of VT220 (Olli)

27.1
----
- TTYPE packet had an excess \0 byte at the end (Olli)

27.2 [internal]
---------------

27.3
----
- removed some excess __saveds to speed up internal operations
  (Olli)
- fixed Semaphore race condition bug in mccheader.c (Olli)

28.0
----
- added TCA_QUIET (Olli)
