This is the Amiga port of KA9Q 930622 by Olaf 'Rhialto' Seibert.

*** THIS IS UNSUPPORTED SOFTWARE
*** PLEASE DO NOT SEND ME ANY QUESTIONS OR BUG REPORTS - YOU ARE ON YOUR OWN
***
*** However, if you decide to fix up any fundamental problems in
*** this package, I would like to hear about it.
***
*** I currently have no use for this, and when i do the
*** AmiTCP approach seems more modular to me.

- There is no documentation, except this. Get KA9Q's original documentation
 relating to the 920603 release.

- This is EXPERIMENTAL! There are some loose ends. Especially the API for
 other socket and other operations is incomplete. See dtest.c for example.
 A few things were discovered in socket code that did not work as
 advertised. TCP socket operations were not always restartable if they
 were tried in non-blocking mode, recv() would not work right with
 stream-protocol sockets (it would throw away data if not an entire
 mbuf was requested), ....
 I hope that I've marked all non-obvious changes in the generic source
 with Rhialto, but I'm not 100% sure of that.

 Input on implementation of, for instance, resolve() as a shared
 library function is encouraged. (Any changes in domain.c are not
 guaranteed to work)

- Does NOT work with Kickstart 1.1 (yes, I tested this ;-)

- All windows are opened *with* border. If that prevents you from getting
 an 80x25 characters text screen, I suggest you overscan your workbench
 a bit. (2.04+ via Prefs/Overscan, 1.2+ via MoreRows (Fish disk 54) or
 ScnSizer (Fish 79)). ScnSizer is so small that I have included it.
 I am running a 672 x 266 workbench screen since 1987.

The following deviations from the PC version on which it is based apply.

- Only async line support, and only SLIP/PPP at that. I have no need,
 or way to test, anything else. The unused source is included, however.

- To make up for the previous limitation, SANA2 (the Commodore network
 driver standard) use is implemented.

- Async line: currently no DTR/DCD support. (RTS/CTS is done by the serial
 device so that works)

- There is an extra parameter ("param group") which enables use of
 serial.device's EOF mode. (This means that you request a large amount of
 characters at once, yet get the result back earlier if one of the 8
 specified end characters is received. As a result, you can always read
 whole packets from the serial port in one go.) This improves input
 efficiency from 1246 cps to 1471 cps (for the first testcase I tried). If
 you use a replacement for serial.device (such as BaudBandit.device) which
 does not support EOF mode, this won't work.  Note: param group 1 has to
 be enabled specificly.  Also, if you use tip or the dialer on the line,
 this disables EOF mode. Also, using EOF mode increases packet delays,
 since the processing of the slip frame is only started when it has been
 received entirely, whereas non-EOF mode processes the frame while it is
 coming in. The performance gain from EOF mode may depend on the speed
 of your Amiga.

- The SANA2 version of SLIP (slip.device) may have a lower performance than
 the built-in one. However, for CSLIP the reverse is probably true, due to
 complicated header manipulations by cslip (= vjslip).

- The attach command looks like:

 attach asy serial.device 0 slip sl0 1000 464 19200 rv
            ^             ^ ^    ^   ^    ^   ^     ^
            |             | |    |   |    |   |     +- flags (Rlsd, Cts/rts,
            |             | |    |   |    |   |        Vjslip)
            |             | |    |   |    |   +- line speed
            |             | |    |   |    +- Maximum Transmission Unit
            |             | |    |   +- Receive buffer size. Does not need to
            |             | |    |      be more than the max. raw frame size,
            |             | |    |      ie for slip, 2*MTU+2.
            |             | |    +- interface label
            |             | +- encapsulation: slip or ppp
            |             +- unit number
            +- Exec device to use

 or

 attach sana <some-sana.device> <unit> <label> <#read buffers> <MTU>

- SANA statistics are pretty extensive. To see them: ifconfig <label>

- There is yet another hack with the "param" command: "param sl0 blind".
 This kills the receive and transmit processes for the interface.
 This is convenient if you want a "dummy" interface so you can use
 "dial" and "tip", but use a sana device on the port for the real
 work. Note that the only way to undo this is detach and re-attach
 the interface.

- You'd better not change the system time during operation of NOS. The
 internal timing depends on the system time.

- We don't bang on the hardware. Ever.

- The HELP key is always a switch key, so you can disable the default
 one (use escape "").  Switching by keyboard (escape/help key to
 command session, empty line from command session) or "session" command
 brings the new window in front of the previous window (or, in 1.3, to
 the front entirely).  But simply giving input by selecting a new
 window with the mouse leaves the windows just as they are.

- In the ftpusers file you can specify * as a directory; this means that
 access to ALL devices and directories is allowed (subject to the
 user's permissions, of course). ftpusers is also used for POP logins.

- FTP (and other) users can specify filenames and directory names in a
 mixed Amiga/Unix way: "." and ".." are understood as synonyms
 for "" and "/".

- Under 2.04 and higher, some additional features are functional. These
 include:
 - old: Uses smart refresh console windows
   new: Uses simple refresh/character mapped consoles (no cut and paste
   though but saves the memory anyway).
 - old: sessions that are switched to have their window moved to the
   front.
   new: the window is moved in front of the previously active window,
   if there was one.
 - old: uses TR_GETSYSTIME
   new: uses GetSysTime() (faster)
 - new: uses NameFromLock() to find names of directories.
   old: just stubs them out as "TCPIP:".


--
___ Olaf 'Rhialto' Seibert               B4H7f+-t-w--g+k+(+)svmrp+
\X/ I can bicycle on both sides of the road - [email protected]