From: olaf@oski.toppoint.de (Olaf Schlueter)
Newsgroups: comp.sys.atari.st
Distribution: world
Subject: Installation Guide for NN 6.4.11 ST
Organization: Toppoint Mailbox e.V.
Date: Mon, 24 Aug 92 23:30:39 MEST

[In case I said anything different from what is stated in this document, 
this document is right, and I've been wrong.]

                        How to install NN 6.4.11 ST
                        ---------------------------
                    Olaf Schlueter <olaf@oski.toppoint.de>

     Advice

   `Read them,' said the King.
   The White Rabbit put on his spectacles. `Where shall I begin,
 please your Majesty?' he asked.
   `Begin at the beginning,' the King said, very gravely,
 `and go on till you come to the end: then stop.'

                                     Lewis Carrol, Alice in Wonderland


1. Requirements

To run (and need) NN 6.4.11 ST you need a working news system.  This
usually consists of a hard disk partition big enough to store incoming
news for a reasonable long time, and either the Mercury UUCP Modules or
the MNews Implementation for the Atari ST.  NN has been tested with both
and tools are included in the NN.LZH archiv to let NN cooperate with
both.  Nevertheless, MNews is recommended, as it has fewer bugs and makes
using of hard disk space more efficient.


Next, you need a shell, a command-line interpreter, which is not
normally coming along with your Atari ST.  This shell is not needed as a
user-interface, but as a program running beneath NN, called by NN via
the _shell_p pointer hook.  The shell used for the NN development has
been Gemini, a shareware desktop available at several atari archive
sites.  If you have Gemini, you are lucky, since NN was written with
this excellent shell in mind, and the author himself did not test it on
other platforms.  However, it is reported, that NN works with Gulam and
a couple of other shells too.  For you to decide, whether you have to
get Gemini (or at least Mupfel, the command-line part of Gemini - in
case you are short of memory space), you will find a list of commands
the shell must be able to perform when called via _shell_p in section 2.3.


Finally, you need a text editor, which must NOT use GEM (as NN doesn't),
for posting/mailing within nn. There are several of them available
and I do not include any of them in the distribution. Note, that
NN knows certain editors, MicroEmacs and Vi, better then others, if the
program is called `em' or `vi' respectively.



2. Environment

Another beast not normally found on an Atari system is the environment.
NN makes heavy use of this feature and again you need a shell or another
tool to install an environment.  Conceptually speaking the environment
is a set of variables named in uppercase letters and their contents,
which are simple strings.  These variables may be set by a program and
are available to all other programs started by it.  I.e., if your shell
defines an environment, the settings defined may be read by NN, if NN is
started by that shell.

Most shells offer a setenv command like

setenv HOME my_castle

which defines the variable HOME to have the (string) contents
`my_castle` or a BASIC like directive like

HOME=my_castle

(Gemini/Mupfel offers both) and a feature to let you define an
environment when starting the shell by the use of a kind of startup
file.  See the documentation of your shell how to define an environment
during the startup of the shell.


2.1 The environment needed by NN - Personal Information

Some information NN cannot figure out without asking you, but this
information stays always the same at every time you start NN, and you
surely do not want answer NN's questions every time NN is coming up.

At first, NN needs to know, who you are (that won't change pretty often,
eh?), and what the name and domain of your site is in the USENET.  These
names are defined by the environment variables USER (your username for
mail purposes), SITENAME (the name of your computer) and DOMAIN (the
name of the Domain your SITENAME is unique within).  For example, the
authors USENET Adress is olaf@oski.toppoint.de.  Due to USENET mail
address rules, the USER is olaf, the SITENAME is oski, and the DOMAIN
is toppoint.de.  So I use the following settings:

setenv USER olaf
setenv SITENAME oski
setenv DOMAIN toppoint.de


Next, NN creates temporary files (files which are destroyed immediately
after use) every now and then, and this is normally done in a certain
directory, which may be a ram disk for the sake of speed.  This
directory is reported to NN by the environment variable TMP.  On my
system the temp directory resides on C:\TMP, so I say

setenv TMP C:\TMP


Furthermore, NN assumes that you are using a certain directory for your
private purposes, i.e., a directory not filled up with programms,
configuration files etc.  but with your personal data like mail, texts
you wrote and so on.  On Unix systems the documentation refers to this
directory as your `home' directory, and this give reason to the naming of
the environment variable HOME, which tells NN where your HOME is.  My
HOME is D:\usr\schlut (in the world my computer is able to realize), and
so I say

setenv HOME D:\usr\schlut

If you are the only one using NN (and all the other USENET stuff) on
your computer, then there is no problem to set these variables in a
startup file once and for all when you start your favorite shell.  If
someone else is using NN too, you should think about a way to change the
HOME and USER setting to introduce this other user to your system.  No
tool is included in the NN distribution for this purpose, but it is easy
to develop one.



2.2 Environment needed by NN - Information about your hard disk
    structure

Another thing NN needs to know is the location of several data on your
hard disk.  Among these are the location of the news directory tree, and
certain configuration directories.

There are a lot of different directories used by NN, and it would be a
waste of memory to assign a environment variable to every directory.
Instead NN is satisfied with a set of two variables, if you install a
certain structure on your hard disk.  These two variables are USR and
ETC which contain root directories for the rest of the others.  The
following list tries to tell you about the directory structure in a
compact manner.  The prefixes $USR and $ETC are placeholders for the
actual contents of USR and ETC, i.e., $USR\lib\nn stands for
F:\usr\lib\nn, if USR happens to have the contents F:\usr.

$USR\spool\news         # the root directory for the news article tree
$USR\spool\news\.nn     # a directory for nn's database (we will talk
                        # about that later)

$USR\lib\nn             # a directory for nn's help files and other things
$USR\lib\nn\help

$USR\lib\news           # a directory where the active file of the
                        # news system lives.

$USR\adm                # a directory where logfiles will go

$ETC                    # the passwd (see later) file will live here.


This directory structure is defined more strictly and elaborated in a
paper called the HH standard (HH stands for Hansestadt Hamburg), which
also defines a couple of other enviroments settings and file formats.
NN follows this standard with one unimportant exception regarding the
temp directory (the HH standard allows 4 different variables to
introduce this directory, but NN insists on TMP) and an important
exception as it requires a shell in the background (I said that
before, didn't I?).


Now look at the directories listed above and their meanings.  You
already may have some of them, namely $USR\spool\news (although it may
be F:\news or what on your system), and $ETC since even Mercury UUCP
Modules makes use of a passwd File.

So you may set $ETC to the directory where the passwd file lives.  If
your news directory does not fit in the $USR\spool...  scheme, you may
explicitely set it with the environment variable NEWS (which is still a
HH standard variable). $USR is nevertheless required to find all the
other directories which must be in $USR at the places mentioned
in this paper.

On my system, the news articles are stored in E:\usr\spool\news, and
anything else belonging to $USR starts with E:\usr so I say

setenv USR E:\USR

My passwd file is C:\etc\passwd, so this is set by

setenv ETC C:\ETC

IMPORTANT: Once you have installed the settings of USR and ETC, you have
to follow the scheme as defined by the HH standard.  All informations
regarding NN are contained in this readme, but for other programs which
explicitely state that they follow the HH standard, you have to install
their directories according to your actual setting of USR and ETC
instead of changine the contents of these variables.  You may obtain the
HH standard description by asking me via E-Mail for it.



2.3 Environment of NN - Location of programs

Finally, NN calls several other programs at several places.  It uses the
shell (remember _shell_p!) fur this purpose rather then executing
programs directly, making it possible this way to put the executable
programs anywhere on your hard disk.

Most shells offer the feature to tell them a list of directories which
contain executable programs using the PATH environment variable.  Hunt
through your shell documentation for a feature like this.  Normally, the
directory list is seperated by colons or semicolons.  I use the
directories C:\bin and C:\usr\bin for executables and my PATH variable
therefor reads

setenv PATH "C:\bin;C:\usr\bin"

(The quotes are necessary in Gemini to avoid misinterpretation of the
semicolon).

If your PATH variable is correctly set, you should be able to call a
program like C:\bin\em.ttp by just saying

em

to the shell.  NN calls every program without a full pathname and
without an extension (.ttp or .tos or whatever) by telling only its
basename to the shell.  If your shell does not support this, you are in
trouble.


The following programs and commands (in addition to those contained in
this distribution) are called by NN (especially when posting or mailing
articles).

echo args...    # outputs its arguments to the screen
rm -f file      # removes a file without bothering whether it exists
cp a b          # copies file a to file b
mkdir a         # creates directory a
cat             # copies a file or its input to its standard output

The following is seldom used (only by nnadmin), so you may live even if
your shell does not support it.

ls -l pattern   # list the directory contents matching pattern
                # note that pattern is a Unix style pattern not
                # an MSDOS style.



2.4 The editor to use - EDITOR

At last, you need the environment variable EDITOR. It should contain
the command name of your favorite text editor. This text editor
should not use GEM but rather be a TOS program. I recommend MicroEmacs,
which , if called `em.ttp' or `em.tos', is better supported by
NN then others. (NN also knows about `vi'.)

setenv EDITOR em



3. Making directories

Now, after defining the meaning of the USR and ETC environment variable,
we are going to create directories, which are needed by NN, but not
normally by your other News and Mail software so they probably won't
exist.  Since there is no standard shell coming along with the atari, we
have to do everything by hand - there is no installation script.

The easiest way to get the directories is to unpack the archiv and let
USR and ETC point to the directories usr and etc created during
extraction of the archiv.  If you dont want that for any reason, the
directory structure created by the archiv will still be useful as an
illustration of what is going on now.

In the following, I will repeatedly refer to the "directory, which is
defined in the environment variable XXX".  To avoid this lengthy idiom,
I will use the notation $XXX to refer to the contents of XXX.

At first, of course, we should check whether $USR or $ETC exists.  Make
them if needed.  (If $USR did not exist before, that implies that your
news articles did not fit in the $USR\spool\news scheme - remember to
define NEWS to point to your news directory!).

The HH standard and NN require two subdirs in $USR:

$USR\adm        # for logfiles
$USR\lib        # for configuration and help files of certain programs

and again $USR\lib needs two subdirs:

$USR\lib\news   # for the active File
$USR\lib\nn     # for nn's needs

The last directory must contain a subdir

$USR\lib\nn\help        # nn's online help

Finally, we remember that there is a $USR\spool\news\.nn (or $NEWS\.nn)
directory, which is new.  Make it and a subdir DATA in it.

$USR\spool\news\.nn
$USR\spool\news\.nn\DATA



4. Copying Files

Now we are ready to move the files of the distribution archiv to the
places where they belong.  After you have unpacked the archiv you will
notice that it resembles very well the directory structure described
above.  The directories contained in the archiv are:

usr\lib\nn              # NN's aux files
usr\lib\nn\help         # NN's help files

usr\lib\news            # where the active file of the news
                        # system should be

usr\lib\mercury         # see note below

usr\spool\news\.nn      # NN's database
usr\spool\news\.nn\DATA

etc                     # the passwd file is here

usr\bin                 # the executables
bin


NOTE: If you are using Mercury UUCP, you may already have a file named
active somewhere on your disk.  If it happens to live in $USR\lib\news,
you have to move it to somewhere else or rename it and change the
appropiate field in config.sys.  It is field 0012.  Check it NOW!

No copy the contents of usr\lib\nn and its subdir help to $USR\lib\nn
(and $USR\lib\nn\help).

Then copy the contents of usr\bin and bin to one or several directories
listed in your PATH environment variable.


5. Localizing some files

A part of the localizing procedure has been described earlier in the
environment topic.  You should now have configured your shell so far
that the necessary environment variables are defined when the shell has
started.

5.1 /etc/passwd

Under normal circumstances you probably will have a /etc/passwd file.
To make sure that it has the correct format, I describe the passwd file
format as described in the HH standard, a format which is used by Unix,
newer Mercury UUCP (>=1.16) and, of course NN.

The passwd file contains one or several lines of the format

username:password:uid:gid:Voller Name|Organisation:Home-Dir:Default-shell

To illustrate the meaning of it, here an example

olaf::0:0:Olaf Schlueter|Toppoint Mailbox e.V.:D:\usr\schlut:C:\bin\gemini

The fields are seperated by :, which cause an ambiguity in the HomeDir
field and shell field, but this is correctly resolved by the routines NN
is using to parse the passwd File.  The informations NN takes out of
this file are the full name (Olaf Schlueter) and the organization
(Toppoint Mailbox e.V.) by looking up the line in the file that matches
the username defined by the environment variable USER.  Although the
passwd file contains an entry for the home directory of a user, NN does
not look at that but insist on having a defined HOME environment
variable.



So you should have a line in your passwd file with your
username, your fullname and your organization.  The others fields of
this line should not be empty, but their actual contents is not
important (as far as NN is concerned).


5.2 Adapting NN to Mercury UUCP

One file needs to be adapted to Mercury UUCP and one possibly needs to
be created.  The first file to look at is the config.sys file used by
Mercury UUCP.

If you moved the news directory ($NEWS or $USR\spool\news) to another
place during installation of NN, you should check, whether it is
correctly defined in config.sys.  It is field 0018 in config.sys.

Finally, create an empty file named "alias" somewhere and append a line

#!0102 "<complete path to alias>"

to config.sys.  <complete path to alias> stands for the actual pathname
of course.  On my system the file is E:\usr\lib\mail\alias, and my
config.sys has

#!0102 "E:\usr\lib\mail\alias"


Now, check whether your news spool directory ($NEWS or $USR\spool\news)
is in the right place.  Then you should have a file $NEWS\news.def or
$USR\spool\news\news.def.  If not, reread this paper.  $NEWS or
$USR\spool\news should by the directory, the news article tree starts
in.

Otherwise, you run

buildact

from your shell.  This will create a Unix compatible (and NN compatible)
active file in $USR\lib\news\active.



5.3 Adapting NN to MNews

MNews is another news system for the Atari ST.  Originally developed for
OS-9, it has been ported to TOS independently by bjoern@drdhh.hanse.de
and the author of this paper.  MNews is slower then Mercury UUCP in
processing incoming News but has less bugs and offers a more Unix like
environment like an Unix compatible active File and a history mechanism.
If you already use it, you will probably have had less trouble in
installing NN since MNews supports and requires the HH standard, so lots
of things mentioned above should already have existed.

However, to let NN cooperate with MNews, you still have to change on
file: $USR\lib\nn\init.  The init file in the distribution is prepared
for operation with Mercury UUCP.  Look at the init file and read the
comments regarding MNews and HH rmail.  Actually, you may run three
different configurations:

Mercury UUCP for mail and News  that was handled in section 5.2

Mercury UUCP for mail and MNews that is explained here

HH mail and MNews               that is also explained here

NN offers a mail interface, which is less powerful then
a real mail user agent like elm or blm, but let you read
your mail or mail a message to the author of a newsgroup
article. Therefore there are some configuration variables
within nn, which let you adapt them to either mail package
mentionend above. The variables are

mail                    # the location of your mail folder (HH mail)
mailer                  # the program to send mail to an author
append-signatur-mail    # whether to append a signature file to
                        # each outgoing mail or not

As has been said, NN is preconfigured both by compilation and the
contents of the init file as delivered to use Mercury UUCP.  If you are
going to use HH mail (also called Digital Island UUCP), you may follow
the comments within the init file to change the settings of these
variables.  The setting of `mail' makes no sense in Mercury UUCP, as
Mercury does not collect your mail in one file, so it is unset by
default.  Also, the mailer program used by Mercury UUCP, mrecmail,
appends the file $HOME\signatur.mai itself, so `append-signature-mail'
is false (i.e., unset) by default.  The changes for HH mail are
commented out, just remove the '#' signs in front of those set commands,
and put '#' in front of those regarding Mercury rmail. Note that
NN knows that the signature file for HH mail is $HOME\signatur.


Posting of news articles is controlled by the variables
`append-signature-post' and `inews'. The init file as delivered
sets them right for Mercury UUCP, and again you may change
that following the instructions in the comments.



5.4 Signature Files

Mercury UUCP, HH mail and MNews have a different naming convetion
for signature files. Mercury UUCP has two signature files, one
for mail, which should be in $HOME\signatur.mai and one for
news, which is called $HOME\signatur.net. If you are using
either HH mail or MNews or both, you need a $HOME\signatur
File, since both packages use this for your signature. You can
remove either signatur.mai (if you are using HH mail) or
signatur.net (if you are using MNews) or both then.

Note, that all three packages do not automatically put a
-- \n sequence in front of your signature so you should include
it in your signature file if you want to support this
(useful) convention.


After making the necessary modifications to adapt NN to the News and
Mail software you are actually using, the final installation step
is to initialise NN's database of news articles. Unlike most other
news readers, NN maintains a database containing all repeatedly
needed information about any article in any newsgroup of your system,
to avoid scanning newsgroup directories and reading articles more
often then necessary. This database has to be created and maintained
everytime new articles arrive at your system. See the NN manual
for a more elaborated description of NN's use of a database and
nnmaster, which is the database gardener.

Then run

nnmaster -I 100

This will initialise the nn database of available articles.  nnmaster
reads your active file to determine which groups are currently on your
system.  If new groups are created later on, nnmaster will append them
to its database during normal operation. (100 tells nnmaster to collect
at most 100 articles per group, which saves time during initialisation,
but won't let you read any older article then the youngest 100 in
every group. This disadvantage will vanish with time, as these old
articles get expired. You may safely omit the 100 or any other number,
but be prepared for a possibly very long initialisation run of nnmaster.)

nnmaster will prompt you to type OK (in uppercase letters!) to confirm
initialisation.  Just do it.  It will now take a bit of time depending
on how many groups already exists on your system.  Be patient.

After nnmaster has finished you should have a human-readable file
$USR\lib\nn\groups and a not human-readable file $USR\lib\nn\master.
This is the root of the nn database.  The groups file is editable, but
before you are going to change it, read the corresponding sections in
the nn manual.  Later on I will tell you how to read this unusual
formatted document using nn.


Finally, to complete the first time creation of the nn database, run
nnmaster again, but this time you type

nnmaster -u

This will take even more time then nnmaster -I this time depending on
the count of articles already on your system.  You may want to take a
break of sitting in front of your computer.

At least, don't worry about speed: only this first time scanning of the
articles may take a considerable amount of time, later on the actual
incoming news flow is handled very fast.


    Testing nn

When nnmaster has completed this task too, you are ready to read news
using nn.  Just start nn by typing

nn

and watch what is happening.  You pass through some welcome screens, and
then nn will present you all articles of the first group on your system,
either in an alphabetical sense or according to the sequence defined in
$USR\lib\nn\init.

You may get help by typing ?, or :help or :man.  The latter will put you
into nn's online Manual, which you may read by pressing the percent sign
% followed by the letter or digit standing in front of each entry on the
screen.

The nn online manual is an ordinary text file (and lives in
$USR\lib\nn\help\manual) and can be printed without problems.  However,
the text layout is somewhat unsual but I have no NN 6.4.11 Unix man page
available.

You should read the NN manual.  NN is a slightly complex, but very
powerful news-reader and you will enjoy its features.




6. Posting Articles

There are several ways to post an article. If you want to make
a follow-up to an article you are actually reading, just type
'f'. If you want to post an article without referencing another
type ':post' from within nn, or 'nnpost' from the shell. NN
will lead you through all necessary steps to create and
send an article.

Note, that you can abort the creation of an article any time by pressing
the `Delete' key (until you are within the text editor: leave it then
and press 'a<Return>' for abort afterwards).

     Problems with posting, NN and the shell

Most people so far report few problems in making NN to present articles
to you, but much problems in making it to post something.  The reason
for this is always, that another shell then Gemini/Mupfel is used.
Actually, most of the shell dependence is here.

For your help, I will outline now, how NN posts articles:

After asking some questions about newsgroups, distributions etc.
nn starts the programm $USR\lib\nn\aux.ttp. This program
makes heavily use of the shell feature offered by _shell_p
to perform its tasks. The first problem most people
encounter is that aux.ttp is not where it should be,
namely $USR\lib\nn\aux.ttp.

aux.ttp can perform five different tasks: mailing, replying, posting,
writing a followup and cancelling of articles. Which task it
should perform, NN tells him by an argument. NN says

aux mail
aux post
aux follow
aux reply
aux cancel

All other parameters needed are collected in a file $HOME\nn\param.mup.

When replying or posting a followup, aux first start your texteditor and
let you edit the original message to allow quoting.  In case of posting
an original article, you are put into the editor too, but the file you
edit is almost empty.

Never remove one of the header field lines like 'Newsgroups:' or
'Subject:'.  They are necessary and belong to the places you find them,
so do not even move them around or insert anything in front of them.  If
you are using MicroEmacs or vi, the cursor is initially placed below them to
remind you of this.

After you have edit the message, the shell's tough job is started:
Now many files are moved around, appended, concatenated, filtered
and so on, and there is quite a good chance that you do not
have a good shell. Here are some examples of commands, your shell
must be able to perform:

echo "To: " > file
sed -e "s/^To:/X-To:/" -e "/^Orig-To:/d" filea >> fileb

Note the use of " characters here and the use IO redirection > and >>.
In the latter case output is appended to fileb. sed is not an builtin
command in most shells, but included in the distribution like grep,
which is also used by aux.

Some shells do not have a 'cat' command. Some have a 'copy'
command with the same meaning and an alias feature so you may
tell your shell

alias cat copy

Some shells do not like a space following the '>' or '>>'.  Well, then
get another.  They should allow it.

Some shells handle quoting in a different manner, they do not remove "
characters around arguments, do not collect them right, and so on.  All
programms in the NN package uses the ARGV scheme as defined by Atari.
If your shell does not support it, you are in trouble.  Again, get
another.

I recommend to use Gemini/Mupfel. It's shareware and costs 50 DM,
but it is worth more. If you are short of memory (1M or less),
you have to restrict yourself to use Mupfel alone, i.e., call
nn only within mupfel.

As far as I know, Gulam (Freeware) works well too. But there are
older versions of Gulam, which do not support ARGV. Make sure
you have the newest one (which nevertheless is pretty old).

Sometimes the reason for the failure of aux is repairable: check the
PATH environment variable, and look if all programs I mentioned in this
paper (the editor, sed, grep, cat, rm etc.) are callable by just typing
their name at the shell prompt.



7. Maintaining the nn database

Every time articles are coming to your site, either created
by you or forwarded to you by your newsfeed, nn's database
of articles needs an update. An update is also necessary
after article expiration.

This is easy. After your news system has processed the incoming
news, or you did expire articles, type

buildact
nnadmin EYW

in case you are using Mercury UUCP, or just

nnadmin EYW

in case you are using MNews, which maintains an Unix compatible
active file, so buildact is not necessary (won't even work
then).


If you are interested in how many new articles has arrived
after a poll, type

nnadmin L

finally. This will show you the tail of the Log file maintained
by nnmaster, and the lines starting with C: report about
collection of articles, how many have been collected during
one run and how long it takes.

Again, read the manual(s). They explain all these features and
a whole bunch of others.



8. Bugs and Bug reports

Yet, there is one bug in nn. The commands :unshar and :patch
won't work but bomb. If everything would be, like it was
intended by me, they won't crash, but still won't do
anything useful, as their use is very Unix specific. In case
you want to unshar a posted shar archive, or patch online
sources with a posted patch, use the save command to save
the relevant articles, and extract the shar archives or
patches by hand after leaving nn. The :decode command,
often useful in comp.sources.atari.st or comp.binaries.atari.st,
works and does not even require an external uudecode utility.


Anything else you consider a bug you may report to me via
E-Mail. Put the line

set bug-report-adress   olaf@oski.toppoint.de

somewhere in your $USR\lib\nn\init file. Then bugs are
easily reported by typing

:bug

within nn. It is very useful for me if you type

nnadmin C >$USR\lib\nn\conf

to finish your nn installation. The conf file is automatically
included into the bug-report created by nn, and contains
useful information for me.

Also, always, I repeat, always, tell me about:

Operating system in use (TOS Version number, KAOS)
Type of computer (Mega, STE, TT)
Memory size
News/Mail Software in use
Shell used

since I do not have telepathic abilities.

If you think of any other special features of your computer not normally
found on other systems, include them in your description.

If the log file used by nn and nnmaster contains error reports, include
it in your mail.  Keep the other lines around them, do not delete them
(i.e., do NOT type nnadmin LE >bugrep.txt).  To shorten it just remove
all lines in front of the last nnmaster started line.

And, finally, do not expect wonders: the source code of NN has died
during a hard disk crash (hardware failure).  I'm therefore not able to
remove bugs from the software, but may hunt for ways around them, or
give you tips for changing your installation.  Mostly, what you consider
a bug is really an installation problem.  On a couple of sites NN is
working without problems for more than a half year.




9. Pecularities of the ST implementation

NN interprets the backslash as a path seperator under normal
circumstances in contrast to its Unix father.  But within the init file
(both your personal init file and the global init file), the backslash
is still used as an escape character, and if you want assign a TOS path
to a variable, you have to escape the backslashes.  Look at the
definition of the variable `mail' or `newsrc' in the accompanying 
\usr\lib\nn\init file.

Furthermore, NN ST lacks the `nngoback' feature, as I did not write a
programm which maintains a number of backups of the active file.


Also, NN ST does not have advanced terminal options like underlining
or shading, as the ST does not have it.

If you are using gemini and run nn in the console window, you may define
a environment variable TERM=gemini.  NN then looks for the environment
variables ROWS and COLUMNS (which are automatically created by Gemini),
and adapts its screen size.  This is also useful if you are using an
enhanced video display on your Atari (then you have to create ROWS
and COLUMNS in addition to TERM by yourself).


There is no background option in nnmaster, i.e.  the option -r is
ignored by nnmaster.  Therefore, nnadmin always reports `master NOT
running'.  The 'W'akeup command of nnadmin is implemented as starting
nnmaster without any option and, due to the nature of TOS, waiting until
it has finished.


You may bother TOS with an uncareful setting of the save-counter
variable.  If this creates more then one '.' in the filename, TOS is
very annoyed.  Also, the $G variable is not useful in TOS, as it
contains too much periods.  The $F variable, however, is expanded right,
i.e., it uses backslashes instead of slashes.



10. Technical Notes

Maybe you are writing your own news system.  If you want to make it
cooperate with NN, you may be interested in the HH standard.  Just mail
me and ask for it.  Furthermore, NN understands a disk space saving feature,
which is already used by at least my implementation of MNews. If a
crossposting is coming to your site, Mercury UUCP creates copies of it
in every directory, so a 10K article may easily occupy 30K disk space on
your hard disk.

MNews uses a kind of `symbolic link', to prevent an article to be stored
in more then one copy on your hard disk.  In the first newsgroup
encountered in a crossposting the article is stored as a whole.  This
may be junk, but as this group must exist in every news system that is
no problem.  All other copies of the article does not contain its text,
but a line reading

%(#)$ <path of original article relative to $NEWS or $USR\spool\news>

For example, if there is a crossposting to comp.os.minix and
sub.os.minix in that order, and the article is stored in
$NEWS\comp\os\minix\112 and $NEWS\sub\os\minix\20, the latter file will
be very short and will contain only the line

%(#)$ comp\os\minix\112


Note that this causes a slight problem according to the manner % and $A
are handled, when passed to shell commands.  Both of them shall contain
the full pathname of the file, the article is in.  This may be a link
file, in which case both % and $A do not contain the article itself.
So, if you type

!cat %

you may be disappointed to see only a link entry instead of the article
you have been actually reading.  As long as I am usign NN, I never faced
a situation where this bothered me, in fact I never used % or $A yet.
If you really want to let a shell command operate on the contents of an
article, no matter where it is, use the pipe feature of the save
command or the print command.

Of course, if your news system does not have this feature, you won't have
the problem (but probably want a bigger hard disk).



11. Acknowledgements

Kim F. Storm for creating nn.
Martin I. Hilbert for creating mmail.


-- 
Olaf Schlueter, Sandkuhle 4-6, 		    | olaf@oski.toppoint.de, 
2300 Kiel 1, Germany, Toppoint Mailbox e.V. | olaf@tpki.toppoint.de
My heart full of hope, my ass full of dope. 
Barcelona 1992