Telnet Block Driver V1.2      13 June 1999


Introduction

This is an attempt at producing a Block Driver which will permit any Block Driver aware terminal emulator to act as a Telnet client.  I produced this driver because I wished to use the VT320 emulation facilities of Hearsay over a local ethernet connection to our DEC PDP-11s, VAXs and Alphas.


Installation

Copy the enclosed !SerialDev over your existing !SerialDev resource.


Configuration

The Telnet Block Driver needs no configuration, but certain settings should be made in your terminal emulator.  The Telnet specification dictates that all Telnet servers must accept a CR/LF pair as a single newline character, therefore your terminal emulator should be configured to transmit CR/LF in response to you pressing the 'Return' key.  Many telnet servers are helpful, and accept CR or LF or both as the newline character.  Some Telnet servers (eg Justin Fletcher's TelnetD) do not follow the Telnet specification and will take both the CR and LF as separate newline characters.  If you appear to be getting two new lines for every press of the 'Return' key, then you should alter the configuration of your terminal emulator to only transmit either CR or LF in response to pressing the 'Return' key.


Use

When the terminal emulator initialises the driver, the following prompt will appear:
  Telnet address[,port] :

You may enter the address either in quad dotted numeric form or as a textual host name.  The address may, optionally, be followed by a port number, separated by a comma.  If a port number is not entered the default of port 23 is used.


Testing

I have tested this driver with Connector and Hearsay running on RPC/SA and RPC/700, connecting to TelnetD, PDP-11/TSX, Alpha/VMS, Windows NT Server 4, Demon's SDPS and Minitel.


Technical

The driver implements the basic NVT, but without Break, Interrupt Process, Abort Output, Are You There, Erase Character and Erase Line commands.

It sends a DO Suppress Go Ahead option and accepts the WILL/WONT Echo option.  All other options are declined.

Most Telnet options cannot be implemented sensibly in the Block Driver because the link between the driver and the terminal emulator does not allow sufficient information to be passed between them.  I may try implementing a more complete Telnet protocol in a Hearsay script to be used with a 'Raw' sockets Block Driver.

Block get/put are not currently implemented.


History

1.1   17 October 1998      Initial release
1.2   13 June 1999         Auto detection of single/multi-tasking resolver
                           Enable multiple connections (Port Nos.)
1.3   29 October 1999      Enable multi-tasking during Socket_Connect.
                           Don't use resolver when numeric ip address entered -
                           (suppresses dial-up to DNS server).
                           Allow disconnect at any connected state, not just
                           online.


Acknowledgment

Thanks to Hugo Fiennes for defining and implementing the Block Driver specification, allowing me to base this Telnet driver on his 'Arcade' driver, and providing some assistance on the way.



Peter Bell

Email: peter@foursqre.demon.co.uk
WWW  : http://www.foursqre.demon.co.uk/acorn
