INTRO
  Nfsc is a terminal emulator. If this file is part of the p3nfs package,
  then nfsc is also the psion counterpart to the p3nfsd daemon on unix with
  additional terminal emulation support. 
  For p3nfsd related info refer to the README file in the p3nfsd package.

  Nfsc emulates a DEC vt100 terminal and some features of the newer vt220.
  It has following noteworthy features:
  - Support for all builtin s3a fonts (9 fonts on the s3a)
  - Support for bold, underlined, inverse and italic fonts
  - Alternative character set support
  - Defineable function key support
  - Jumpscroll and charset conversion (ISO8859-1 <-> ibm codepage 850)
  - Support for history scrollback (over 500 lines are possible)
  - Bring server functionality
  - Paste from the scrollback or from builtin applications.
  - Dialing/scripting support. Extensible, as it is done in OPL.
  - More than one configuration can be saved/loaded.
  - Online help
  - Support for baudrates 50 - 115200
  - Should work on Psion3, it is reported to work on the Siena
  - Robust: most (all?) VT100 animations are working.
  - X/Ymodem support (partially working)
  - Local mode
  - Experimental 3Fax support
  - Automatic dial at startup
New in 5.2
  - TTY:I (infrared)
  
  License: GNU General Public Licence (Version 2)

INSTALLATION
  Place nfsc.app in the \app directory and install it with Psion-I.
  If you also want keypad support, place fnkeys.nfs into the \opd
  directory. Read it (with a text editor) for details.
  If you want dial support, install the files dialme.opl & nfscdial.opl
  in the opl directory and translate them. See below for more.

BUILDING NFSC (If you have the Psion C SDK)
  In the src directory, from the dos prompt:
  C:\SIBOSDK\NFSC> makeshd nfsc
  C:\SIBOSDK\NFSC> rcomp nfsc.hlp
  C:\SIBOSDK\NFSC> tsc /m nfsc
  C:\SIBOSDK\NFSC> ren nfsc.img nfsc.app

NOTES
  - XYmodem was tested with the only Zmodem package I found for UNIX.
    Xmodem works, Ymodem has a problem: the receiver won't terminate cleanly
    after a file was sent. I think the Psion driver and the Unix program
    behave differently here.
  - break. As there is no p_break() function or the like, the break is
    generated as a series of 0 bytes sent at 50 baud. This can work, but
    is not guaranteed, as the definition of break is 0 for at least 250ms
    and this method generates more 200ms pieces. It works on SunOs, but not
    on Solaris.
  - hangup is untested (4.3d)
  - Note for S3 owners: I only tested it on my S3a in compatibility mode.
    All but the online help should work, as it is too wide for the S3.
    Please drop me a mail if it works on your S3.
    Siena was reported to work ok.

DIAL SUPPORT
  It is implemented in OPL, so if you want to use it, you have to write
  first an OPL program, and have to translate it (typing Psion-T).
  Don't be afraid, it may be sufficient to write a program as simple as:

  PROC dialme:
	  global nfscPid%
	  loadm "nfscdial"
	  dialinit:

	  puts:("ATDT 0123456789"+chr$(10))
	  expect:("login:")
	  puts:("my_username"+chr$(10))
	  expect:("Password:")
	  puts:("my_password"+chr$(10))
  ENDP

  The function hotk:("x") calls nfsc to execute "Psion-x")
  You can of course add more expect/puts lines or use OPL features if you
  like (or have to :).
  Dialing is a second "thread", it works in parallel, so you can type
  on the psion while the script is listening (e.g. your password). The
  only problem with this method is that the dial script may loose data.


HOW DIAL SUPPORT WORKS (for programmers only)
  Sending text to nfsc:
    The opl program sends a message with ID $40 to the nfsc application,
    and the address of the OPL string.
  Receiving data:
    The opl program sends a message with ID $41 to the nfsc application,
    and waits for data. It sends a return receipt of 1 if it wants to
    quit, 0 if it requests more data.
  See nfscdial.opl for the implementation of expect, puts & hotk.
  It would be nice to have a "gets" call.

TIPS
  - You can save your modem parameters with a little opl "dialme" program
    like the following:
      PROC dialme:
	      global nfscPid%
	      loadm "nfscdial"
	      dialinit:

	      puts:("ATZ"+chr$(10))
      ENDP
  - If you're logging in to a UNIX system via NFSC, and you dont want to
    start the p3nfsd program there (the UNIX counterpart of nfsc), you may
    have an inappropriate number of lines set. p3nfsd takes care of that,
    but you have to be root while starting it.
    Here is how to fix the number of rows (a little UNIX exercise):
      Check the number of lines (rows) with the following command:
      % stty -a
      To set the number of rows to 20, try
      % stty rows 20
      If this won't work, then try
      % setenv LINES 20
      If you now get "setenv: not found", then (you're using a different shell):
      $ LINES=20
      $ export LINES


HISTORY
  nfsc was originally developed as an OPL counterpart for the UNIX p3nfs
  daemon which is a way to connect psions to UNIX computers.
  After N.N. rewrote it as a C program, I (Rudi) added terminal emulator
  code to it. Then Michael checked it once more together with me so that
  the vt100 animations ran on it. Odd Gripensteim used it on a VMS system
  and wished he had key translation, so he got it (but not everything he
  wished for).
  The famous WWW page ot Steve Litchfield helped me to reorganize the
  whole, and add some user features to it, like online help and config
  saved in a file. For a Bring server I have to remember the data on the
  screen. From here was a little to get scrollback too.

SOURCES
  nfsc.c         protocol and dialog routines
  vt100.c        terminal emulator stuff + scrollback handling
  xymodem.c      X/Y modem support
  paste.c        bring + paste server
  params.c       parameter loading and saving
  nfsc.hlp	 guess what


AT LAST:
  This as a reminder for those who want to check for a newer version of
  the nfsd, but have forgotten the address:

  ftp.uni-erlangen.de:/pub/psion3/local

  My (Rudolf Koenig) mail address is rfkoenig@immd4.informatik.uni-erlangen.de,
  but I can only react to mails on weekends. Try Juergen's address if you have
  urgent questions (jnweiger@immd4.informatik.uni-erlangen.de).
