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]