         ŽŪŪŻ° ÜŪŪŪŪŪÜ ÜŪŪŪŪŪŪ° ŪŪ°  ŪŪ° ÜŪŪŪŪŪŪ° ŪŪ°    ŪŪ° ÜŪŪŪŪŪÜ
          ŪŪ°  ŪŪ°°°°° ŪŪÜÜÜÜ°  ŪŪŪÜ ŪŪ° ŪŪÜÜÜÜ°  ŪŪ°    ŪŪ° ŪŪ°°°°°
          ŪŪ°  ŪŪ°     ŪŪßßßß°  ŪŪßŪŪŪŪ° ŪŪßßßß°  ŪŪ° Ü  ŪŪ° ßŪŪŪŪŪÜ
         ŽŪŪŻ° ßŪŪŪŪŪß ßŪŪŪŪŪŪ° ŪŪ° ßŪŪ° ßŪŪŪŪŪŪ° ŪŪÜŪŪŪÜŪŪ°  °°°°ŪŪ°
          ŪŪ°    ŪŪ°°°  ŪŪ°ŪŪ°  ŪŪ°  ŪŪ°  ŪŪ°ŪŪ°° ßŪŪß ßŪŪß  ßŪŪŪŪŪß
          ŽŻ°    ŽŻ°    ŽŻ°ŽŻ°  ŽŻ°  Ž°   ŽŻ°ŽŻ°   ŽŻ°  Ž°    ŽŻ°Ž°
           Ż°    Ž°      Ż°     Ž°         Ż°      Ž°         Ž°

     The Journal of IceNET                                     June 1994
    ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
    ³ Editor's Desk                                                     ³
    ³   The Upper Registers                       Deacon Blues (2@7653) ³
    ³   M/E Comments                                        Louie (6@1) ³
    ³   Letters To The Editors                              Louie (6@1) ³
    ³   IceNEWS Op-Ed Forum                                 Louie (6@1) ³
    ³                                                                   ³
    ³ Feature Stories                                                   ³
    ³   WWIV Goes To School                              Chris (1@7668) ³
    ³   WWIV Security: One Semi-Expert's View        Crossfire (1@8854) ³
    ³                                                                   ³
    ³ WWIV-Specific                                                     ³
    ³   WWIV Mod and Utility Reviews                 Papa Bear (1@5079) ³
    ³                                                                   ³
    ³ Software/Programming                                              ³
    ³   To DOS, Or Not To DOS...                   Mega Bite (172@7672) ³
    ³   Learning C - Pt. 5                            Daarkhan (1@7676) ³
    ³   Artificial Intelligence - Pt. 2                     Louie (6@1) ³
    ³                                                                   ³
    ³ Hardware                                                          ³
    ³   Will Crawford On: The Future of Computing         Will (1@6754) ³
    ³   Give me an A, Give me a T, Give me a Z         Fractal (3@5750) ³
    ³                                                                   ³
    ³ Lite Bytes                                                        ³
    ³   Tales From Being A BBS Sysop - Funny Users   Ima Moron (1@9661) ³
    ³   How They Got Started In BBSing - Pt. 3              Louie (6@1) ³
    ³   Silly Strings                                Ima Moron (1@9661) ³
    ³   Word Search Puzzle Answer                         Louhal (1@10) ³
    ĆÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
    ³                    IceNEWS Staff For June 1994                    ³
    ³                                                                   ³
    ³                    IceNEWS Publisher - Jim 1@1                    ³
    ³           IceNEWS Editor-In-Chief - Deacon Blues 2@7653           ³
    ³                IceNEWS Managing Editor - Louie 6@1                ³
    ³                                                                   ³
    ³                    IceNEWS Contributing Editors                   ³
    ³  Hardware - Will 1@6754   Software/Programming - Daarkhan 1@7676  ³
    ³  WWIV-Specific - Papa Bear 1@5079   Lite Bytes - Ima Moron 1@9661 ³
    ³                                                                   ³
    ³            Editors-At-Large - Louie 6@1, Chris #1@7658            ³
    ³               IceNEWS Production - Spelunker 1@7653               ³
    ĆÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
    ³     IceNEWS is always seeking submissions from those who have     ³
    ³      ideas for stories. If you have any ideas that you might      ³
    ³        like to see published, contact any IceNEWS editor or       ³
    ³        subscribe to IceNEWS Beat, subtype IceNEWS, host @1.       ³
    ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ

                        ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ E D I T O R ' S   D E S K ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ The Upper Registers ³ Deacon Blues (2@7653)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     Here's  a  couple  of  thoughts  that I had while cleaning the coffee cup
rings off of Jim's old desk, which is now mine...
                ______________________________________________

     Several weeks ago on the IceNET National Sysops Only sub, I saw something
that  really  warmed  my heart. It seems that a local IceNET sysop from my 716
area code had a problem with one of the users of his system.  The  person  had
apparently sent out some rather nasty e-mail to a number of network sysops and
users. The sysop of the system that the messages originated from posted on the
sysop  sub,  publicly apologizing to everyone for the actions of that user and
stated that he was revamping his BBS setup to make sure  that  something  like
this  did not occur again. While this was a great gesture of the sysop's part,
it is not the part of the story that got to me.

     Several posts later, there was a response from a sysop from another  area
of  the net that had been the recipient of one of the offensive mailings. Much
to this person's credit (who also happens to be an IceNET  Area  Coordinator),
this  sysop  did  not  blast  the other sysop for the occurrence. Instead, the
person posted saying that it was understood that sometimes these things happen
in  the  net  and  that  there  were no hard feelings over what happened. This
person went on to say the it was understood that there is no way  for  anybody
to  monitor  their system 24 hours a day to make certain that things like this
do not happen. This sysop then extended a  hand  to  help  the  other  in  the
restructuring of the other's BBS and wished him the best of luck.

     I  personally take my hat off to both of these individuals for showing an
uncommon amount of class in the handling of this matter.  Many  lesser  sysops
would  have  taken  the  opportunity  to flame or bash the sysop of the system
where the messages originated from or would  have  made  other  comments  that
could have belittled the other sysop. I've seen flame wars on sysop subs start
for less. Much to my pleasure, the  situation  was  solved  amicably,  without
slurs,  slander,  and  seamy  behavior. Maybe Jim should consider changing the
name of the network to NIceNET...
                ______________________________________________

     For those who may have missed it, "Newsweek" recently (May 16, 1994)  ran
a  cover  story  regarding the gender gap in BBSing. In a part of the story, a
number of female users related to the  author  how  they  were  being  treated
unfairly  by  the  other inhabitants of cyberspace, saying that they are often
the target of flame mail or rude  posts  by  male  users  for  speaking  their
opinions about various subjects and railroaded off of message bases. They also
stated that when it was found out that they were females, they  often  had  to
deal with mail and posts in which they felt they were sexually harassed (asked
for body statistics, dates, and sexual favors).

     In another story that recently appeared on PBS's "The MacNeil/Lehrer News
Hour"  (May  12, 1994), the cyberworld was again the subject of bad press. The
show related the story of a young male who, through his computer access at the
prestigious  Massachusetts  Institute  of  Technology,  managed  to  set up an
illegal  BBS  system  that  encouraged  the  uploading  and   downloading   of
commercially-released software. In other words, "pirate" software.

     While  Internet was prominently named in both stories (in the case of the
pirate system, it was apparently an anonymous FTP site set up  at  the  school
itself),  I  can't  help  but  think  that  all  of this reflects badly on all
computer networks and BBSing in general. Stories of this type can only further
the  public  misconception  that  BBSes are horny teenaged he-man woman-hating
boys clubs where you can download copies of WordPerfect for  the  price  of  a
phone call.

     Unless  the  BBS community both cleans up its act and starts to find ways
to generate more positive press coverage of the cyberworld, I  fear  that  the
false  perception  I  mentioned  above will not only damage the credibility or
create prejudice against the thousands (or tens  of  thousands...  who  really
knows  for  sure?)  of  good, legitimate sysops around the world but will also
turn some  potential  newbies  --  females  in  particular  in  light  of  the
"Newsweek" story -- away from the idea of typing "NEW" at the "NN" prompt. The
real world is moving into computing, BBSing, and networking  at  a  blistering
rate.  Unless more tolerence and openness is shown toward these new drivers on
the data highways, the  proposed  Information  Superhighway  (now  called  the
Information Infrastructure by the politically-correct) is going to look like a
California freeway; with people taking pot-shots at other people who cut  them
off,  look  at  them  the wrong way, intrude on their space or otherwise annoy
them.
                ______________________________________________

     Well, that's enough musing for this month. Time  to  get  on  to  IceNEWS
matters.  In  that  respect,  I  would  like to welcome a few new faces to the
editorial ranks here. Papa Bear, #1 @5079,  comes  aboard  as  a  Contributing
Editor  and  joins our WWIV Specific department. Papa starts out this month by
answering the call of a number of IceNEWS readers by  providing  a  couple  of
reviews;  one  on  the  popular  utility  AutoSend,  the  other  on a BBS mod.
Daarkhan, #1 @7676,  steps  into  the  Software/Programming  department  as  a
Contributing  Editor.  Readers  of  past  issues will recall his name from the
continuing series on learning C programming, a series  that  he  continues  in
this  issue.  Last, but not least, is Chris, #1 @7668, who has joined Louie as
an Editor-At-Large and will be  contributing  to  various  departments.  Chris
starts his tenure here with a Feature story on how he got his school to set up
and operate a WWIV BBS.

     The addition of these fine  folks  is  in  direct  response  to  feedback
received  from  our readers asking for IceNEWS to be able to bring you a wider
range of stories. With these new additions, I feel  that  we  have  taken  the
first  step  in  that  direction. Another step taken to improve the quality of
IceNEWS was a recent meeting of the 716-area staff (myself,  Louie,  Daarkhan,
Chris, and Spelunker) to "gang edit" the copy of this issue for errors. It was
a useful and productive meeting which  I  feel  worked  out  well  and  should
benefit  all  of  our  readers.  Hopefully,  we  will be able to continue this
practice in the future.

     This shouldn't let us off the hook, though. We still need to keep hearing
from  our readers about what you like and don't like and want or don't want to
see in future issues of the Journal. The Letters To  The  Editors  section  of
this  issue  contains a letter telling us just that. We need to hear from more
of you about whether or not you agree with these views and why you  feel  that
way. Remember, if you don't tell us what you want, we can't deliver it to you.
Please take the time and drop us a line to let us know that you're there.

    And now, your June, 1994 edition of the IceNEWS Journal.  Enjoy!

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ Comments From The Managing Editor ³ Louie (6@1)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄ

     Well,  this  was  a  busy  month at IceNEWS. Deacon Blues has assumed the
power position of Editor-in-Chief. Deacon is a long time  IceNEWS  Editor  and
the rest of the Staff welcomes him to his new position as our fearless leader.
Deacon already filled you in on the staff expansion with Papa  Bear,  Daarkhan
and  Chris  becoming  editors.  I would like to extend my personal welcomes to
each of them as well.

     This months issue provides  some  very  good  stories  for  your  reading
pleasure.

     Crossfire  (1@8854) starts us out with an article about WWIV Security. It
contains just about everything a sysop ever wanted to know about  ways  he  or
she  can  protect their system from unwanted hack attempts. It should be noted
that this article does share a common subject with a story written for the May
1994 issue by Papa Bear. Both articles were received within days of each other
and were both written with no  input  from  each  other.  As  PB's  story  was
received first, it was printed first. Crossfire was kind enough to allow us to
hold his article over until this issue.

     Daarkhan and  I  continue  our  series  articles  about  Learning  C  and
Artificial  Intelligence respectively. I also have a third installment of "How
They Started BBSing," with segments this time  coming  from  from  Benny  Hill
(1@7400),  Wildfire (1@5857) and Daydreamer (2@4501). This is very interesting
stuff I think most folks are interested in. We got Louhal's (1@10) answer  key
to  last  month's  word  search puzzle. Some nice techie articles from Fractal
(3@5750) on modems and Mega Bite (172@7672) on the DOS vs. Windows debate. Ima
Moron  (1@9661)  is  his  normal  humorous  self.  There  are a bunch of other
articles that you will be interested in as well.

     Also, in DB's E-I-C Comments, he  mentions  the  Letters  to  the  Editor
section. We do wish for Letters from our readers. This month we are starting a
similar feature to the Letter section though. The IceNEWS Op-Ed  Forum,  which
users in all of WWIVland can write for.

     The Op-Ed Forum will allow anybody and everybody to write an editorial in
which they can expound about their opinions on  some  issue  facing  WWIVland,
IceNET,  BBSing,  WWIVnet,  WWIVLink,  etc.  This  is  not  for  your views on
President Clinton's Health Care Bill, but for your opinions on issues such  as
"Pings,"  the Life Arts Network controversy, Information Superhighway, the Big
Three networks vs. the smaller networks, etc. Letters for  the  IceNEWS  Op-Ed
Forum  should  be  e-mailed  to me (6@1) as I am the Letters guy on the staff.
Also, unlike the regular Letters section, the Op-Ed  Forum  will  not  contain
IceNEWS Editor responses. An IceNEWS Editor _may_ write for it (as I do in the
inaugural installment), just not as an IceNEWS Editor, but  as  their  private
selves.

     I  hope  you  enjoy this months issue of IceNEWS. We do this all for you,
our kind-hearted readers. Thanks for reading us.

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ Letters To The Editors ³ Compiled By: Louie (6@1)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     The IceNEWS "Letters To The Editors" column is a forum for the readers to
express their feelings, thoughts, or opinions regarding IceNEWS.  Please  take
the time to write us regarding your feelings on IceNEWS and its contents, good
or bad. We want to hear what you have to say. Remember, IceNEWS is  meant  for
EVERYONE  in  IceNET  and we need YOUR input in order to maintain a successful
and respected publication.

                 Please address any remarks or questions to:

                        IceNEWS Letters To The Editors
                               c/o Louie, #6 @1
                           IceNEWS Editor-At-Large


Wildfire, #1 @5857, writes regarding his opinions on IceNEWS:

     I don't particularly care for learning programming in a computer article.
I  like  a  hardcopy  book,  with  reference  and  index,  etc.,  and I always
understand it better on paper than on a computer. (Yes,  I  know  that  I  can
print it out, but it still isn't the same)

     Maybe  hints  and tips would be fine. Actually, they would be great. Like
compiler  compatibilities,  OS/2,  DOS,  and  Windows   compilers,   and   the
performance  of  each,  and  any  workarounds  or  MAKEFILE changes needed for
different versions, such as TC++, BC++, and GNU++ compilers. For those of  you
out  there  who  don't  know what GNU is, it's an OS/2 Shareware C++ compiler,
I've yet to unzip my copy of it and look at it. "The Adventures of  ModemMan,"
I  skip  them. It's filler fluff that I feel is wasted space. Maybe fill it in
with actual facts about computer industry happenings, Gates vs Stac, etc.


     I feel that IceNEWS needs more technical articles. The  "Building  A  PC"
articles, I didn't even look at, but were highly appropriate (I didn't look at
them since I built my system, (I'm a hardware specialist)) and there should be
more  of them. Mainly, there should be more product reviews if possible in the
areas where we would need them; modem test results,  com  port  test  results,
backup  devices,  and  video  displays with built in BUS mouse connectors (for
those of us with multiple modems, too much other hardware, and no  more  IRQ's
and expansion slots for other serial ports to run a mouse for our BBS).

     Another  thing  we  should  have [in IceNEWS] is software reviews for our
BBS. Like new utilities that are available  and  their  actual  usability  and
usefulness.  Possibly  a  section for chains reviews, new games and the setups
for WWIV, and how well the users  like  the  game,  and  how  much  the  sysop
actually  likes  it. There should also be more info on the NET itself, and NET
utilities that  would  make  our  lives  easier  and  that  are  easy  on  our
pocketbooks.  I know I'm running on a limited budget so there have to be a lot
more sysops out there like me who need utils, but don't have a lot of cash.


Louie, #6 @1, IceNEWS Editor-At-Large, responds:

     I would like to start by extending my personal  thanks  to  Wildfire  for
writing up and e-mailing his comments to me and the rest of the IceNEWS Staff.
We like to get feedback from our readers. We wish to know what the people  who
read the IceNEWS Journal think about our product.

     I  would  just  like  to state that IceNEWS wants to be read and wants to
appeal to as many people as possible in the IceNET and  WWIVland  Communities.
That  is  why  we  publish  many  different  types  of articles from Humor and
Programming  Language  descriptions  to  Product  Reviews  and   WWIV-Specific
articles. We want everybody who reads us to find something they wish to read.

     Now,  Wildfire has told us that he wants to see more tech-type stories in
the IceNEWS Journal. We have been recruiting more technical articles over  the
past  few  months.  But  technical  articles  need  to be written by technical
people. At IceNEWS, we have subdivided  the  technical  areas  into  Hardware,
Software,  Programming  and  WWIV  Specific.  We are looking for more and more
articles  on  each  of  these  sub-topics.  This  month  Papa  Bear,  our  new
WWIV-Specific  Editor,  has  a good article on WWIV Mod Reviews and includes a
couple of his own reviews in it.

     However, I would just like to defend one  specific  thing  that  Wildfire
said.  Wildfire  does  not  seem  to  like Humor articles, like the "ModemMan"
series by Jot$ (1@7850) and Deacon Blues. Now, myself, I like computer  humor.
I think that a lot of other BBSers around IceNET and WWIVland do as well.

     So,  please e-mail us (6@1 is the address to write to) and tell us if you
like the Lite Bytes Humor and what appears there. If most people like it, then
we  will  try to keep it around, if - in the main - folks think we should give
it the old heave ho, the we have to toss it aside and  see  how  IceNEWS  does
without humor.

     We  really  do  want  to know what all our loyal readers think of any and
every aspect of IceNEWS. Please drop us an e-mail at any time to tell us  what
you think of this issue (June 1994), or on anything about it in general.

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ The IceNEWS Op-Ed Forum ³ Louie (6@1)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄ

     This  is  the  first  installment  of the IceNEWS Op-Ed Forum. We will be
printing readers' personal opinions about things going on in IceNET, WWIVland,
the  Information  Superhighway,  etc. Anything about these and other computing
topics is fair game for anybody to write a Guest Editorial about.

     Please remember that any opinions  published  reflect  the  thoughts  and
opinions  of  the respective authors and may not necessarily reflect the views
of IceNEWS, its staff, or any other contributing writers. These  opinions  are
in no way endorsed by IceNEWS or IceNET in any official manner.

     The  first  person to write a guest editorial for the IceNEWS Op-Ed Forum
is myself. Somebody has to get the ball rolling and I want  to  air  a  gripe.
It's my opinion and not that of IceNEWS. With that in mind...


 Sysop Sub-boards

     When I read the various sysop sub-boards in IceNET, WWIVnet, WWIVLink and
other networks, I can't help but wonder just what all  these  sysops  (with  a
smattering  of cosysops) are discussing.  All that seems to ever get discussed
is modding, WWIVland politics, techie "my computer blew up, how do I  fix  it"
things, Sub-board advertisements and a few more posts about modding.

     That  troubles me a lot. Why? Because I do not think that is what a sysop
Sub-board should be used for. There are WWIV mod discussion  subs  already  in
existence.  There  are  WWIVland  political discussion subs (WWIVnet Concerns,
WWIVLink Guidelines, etc.) already in existence. There are subs for  technical
concerns  as  well.  And  there are the various Yellow Page Subs for sub-board
ads. Those subs are where those topics should be discussed in my opinion.

     What should sysops and cosysops talk about? Simple. How do you  make  the
BBSing  world a better place? How to deal with users in a variety of ways? How
to keep their boards good places to call?  I  realize  that  these  are  broad
topics and possibly a little difficult to discuss, but that is why they should
be talked about more often. The more that people discuss them, the  easier  it
will get to talk about them in the future.

     Why  don't  sysops talk about those things much? I think it is because it
is much easier to talk about 14 lines  of  code  in  the  latest  mod.  It  is
specific, it compiles and executes properly or it doesn't.

     WWIVland  politics  is pretty stupid most of the time anyway. Who's going
to be the AC in Area code XXX? Who is going to be King-for-a-day?  Admittedly,
as the movie "History of the World - Part 1" pointed out, it is good to be the
King... but in most networks (save WWIVLink), the King appointed  himself  and
you  kind  of  accepted that fact when you joined that network. If you have to
have an AC fight in your area, make a sub for the fight to take place on. Then
the rest of us in WWIVland do not have to hear about it.

     Sysops   and   cosysops  have  got  to  remember  that  BBSing  is  about
communication.  It isn't about sysops and cosysops communicating, it is  about
USERS Communicating. Users are the important folks.

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ


                      ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ F E A T U R E   S T O R I E S ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ WWIV Goes To School ³ Chris (1@7668)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     WWIV,  the  great  creation of Wayne Bell and WWIV Software Services, has
been one of the most popular bulletin board software platforms around and  its
popularity  is  increasing every day. Bulletin boards are mostly used for fun,
but now the vast array of applications that are available  are  becoming  more
practical.  Local  computer stores have created bulletin boards for support of
their existing customers as well as a means of public relations in gaining new
ones. Just recently, however, WWIV has been used for educational purposes.

     The  Hamburg  Central  School  District of Western New York is one of the
leaders in our  area  regarding  the  integration  of  telecommunications  and
bulletin  boards  in  the classroom curriculum. The Hamburg Junior High School
started a WWIV bulletin board (The Pinnacle, IceNET @7668) in November of 1993
and  have  had  tremendous  student,  staff,  and community involvement in the
project. We have used the bulletin board for many classroom activities.

     Recently a ninth grade home and careers class used the bulletin board  to
gather  information  on  states  they would like to live in as part of a group
project. Bulletin board users from various states responded to a form that the
students  posted  which  included  several questions pertaining to that state.
Students found various statistics in each state. They found that  the  divorce
rate  in California was much higher than that of New York. They also found out
about some local news in each community  as  well  as  collage  and  education
information.

     Another  project  that  we  are  working  on  now  is  simply dubbed "I'm
Sailing!" One of the technology teachers in the Junior  High  School  will  be
taking his sail boat from Lake Erie to the Caribbean and will be taking all of
Hamburg with him. Yup, that's right! Armed with a Macintosh  Powerbook  and  a
modem,  he  will  be  updating The Pinnacle weekly as to his progress. Because
students learn best in "hands on" situations, this project has the ability  to
prove to students the relevancy of the subject matter at hand.

     Science  classes  will  be able to gather information on tides, currents,
winds and ecology, etc. which may be used directly in  the  classroom.  Social
studies  and  English  teachers  can  collaborate  to  have  students retrieve
geographical and historical information on the areas visited and compare  them
with encounters by the crew. Math classes might chart the courses on maps from
information gathered from the bulletin board. This can be directly applied  to
such  problems as time/speed/distance relationships by using real-life places,
people and situations. This is a tangible experience to move  students  beyond
the constraints of a text book and the traditional classroom environment.

     The hard part about using a bulletin board for a class is that a bulletin
board, traditionally, allows only someone with a modem to access the  bulletin
board.  Thanks to Wayne Bell, that is no longer true. As I'm writing this, I'm
awaiting the arrival of Novell DOS for the bulletin board so that students can
access  it  on  any  of  the  three  local  instances  we've registered on our
50-workstation local area network. We are also awaiting the  arrival  of  Filo
Software  Productions  Front Door Installer so that we may add FidoNnet to the
cornucopia of networks that The Pinnacle subscribes to.

     Well, that's about  all  we  are  doing  at  the  moment.  We  are  still
relatively new and we only have about 200 users, but that is changing quick. I
already have plans to help two other local school districts in  creating  WWIV
bulletin  boards  for  themselves  and  linking  them  together with a special
WWIV-based network. I'm also giving presentations at the University of Buffalo
on  the  educational implications of bulletin boards in the classrooms. So, as
you can see, I'm a  busy  kid.  If  you  have  any  suggestions,  comments  or
questions  feel  free  to  e-mail me.  Oh,  I  almost  forgot, one more thing!
Remember: "An hour spent  on  The  Pinnacle  is  an  hour  spent  reading  and
writing!" so check it out at (716) 649-3530!

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ WWIV Security: One Semi-Expert's View ³ Crossfire (1@8854)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     WWIV  security  (or the alleged lack thereof), stock or modded, netted or
not, is certainly one of the most pressing concerns of  virtually  every  WWIV
sysop  today.  I  have  been  a  WWIV  sysop  for  over  three  years and have
encountered several attempted hacks  on  other  systems  (two  of  which  were
successful)  and advised other sysops on how to protect themselves against the
hacks which were commonly known at the time.

     There has been a lot of debate  lately,  particularly  in  IceNET's  WWIV
Security  sub  (subtype  213, host @1), about whether or not WWIV does in fact
contain several internal back doors. One person has even claimed to have found
a  back  door  in NETWORK.EXE, but the general consensus judges this as highly
unlikely. Several people claim extensive knowledge of WWIV  hacks  but  cannot
seem to produce a single viable example.

     The  keys  to avoiding hacks are to understand the most common and likely
hack methods and to set up protection against them. Such methods of protection
may  range  from  simple  ones  to  highly  complex  ones requiring skill in C
programming in order to modify the BBS.

     There are essentially two types of hacks, under which all  known  methods
may  be  grouped:  internal,  meaning  a  flaw in the BBS itself, or external,
meaning methods which rely on some external program to  allow  DOS  access  or
perform  some  other  function  like  transmitting  copies  of  CONFIG.DAT and
USER.LST. Most such programs can more accurately be called  trojans,  as  they
may claim to be onliners or WWIV utilities.


                        --- OLD HACKS AND BACK DOORS ---

     About  four  years  ago,  when  WWIV  4.11  was  new,  a  very common and
frequently successful hack was the one I refer to as the "411 Wildcard"  hack.
This  method  required nothing more than entering ????????.??? as the filename
to upload; the BBS, thoroughly confused, would then place the uploaded file in
the  main  BBS  directory.  It was necessary to use a protocol which supported
batch operation as Xmodem would not allow a file with an unknown  name  to  be
received. DSZ was generally used with the wildcard hack.

     Obviously, this file could be anything the hacker wanted it to be. It was
certainly a very dangerous back door in  its  day,  but,  thankfully,  it  was
extinct  by  the time 4.12 was released. At any rate, this is an example of an
internal hack; a flaw in the BBS itself.

     Popular opinion among most WWIV experts these days says there are few, if
any,  internal  back  doors  to WWIV. Indeed, in my associations with a few of
these experts, I have not heard one single word about any known internal  back
doors  in  recent  revisions  of  WWIV.  They  seem  to be known <sarcasm mode
activated> only to the hackers themselves, who can never seem to give any sort
of  hints  as  to  their  exact  nature  even when dared to do so by an entire
network. Many who claim to have knowledge of several large back doors seem  to
be  basing  their  claims on what was known about older versions of WWIV. Such
hack methods are very unlikely to have any relevance today.

     It is important to note that when I claim belief that WWIV is secure I am
referring to stock versions or versions which the sysop himself has personally
modified. There have been several cases where,  in  direct  violation  of  all
copyright  laws and Wayne's policies, people have made extensive modifications
to the source and redistributed them as their  own  work.  In  some  of  these
cases,  the person doing the modding has deliberately built a back door of his
own directly into the distributed version of the BBS,  allowing  anybody  with
the  necessary  knowledge (generally an associate of the modder) to simply log
on and drop to DOS with a single command or keystroke, sometimes  not  needing
to  go  any further than the "NN:" prompt. This would be another example of an
internal back door, but it is one which has been  deliberately  and  knowingly
placed there, and as such would not be an inherent flaw in WWIV itself.


                        --- HACKS THROUGH EXTERNALS ---

     Barring  deliberately  created back doors, most methods will be external.
External programs may be on-liners, WWIV utilities,  trojan  versions  of  the
network  software,  or  virtually any other program which may be called by the
BBS. Installation of such a program must be done by the hacker himself or,  as
is  usually  the  case,  unknowingly  by  the sysop. If the hacker uploads the
program, begs the sysop to install it, and the sysop does, the  sysop  becomes
an unwitting accomplice in the hacking of his own BBS.

     If  the  BBS has been set up correctly, it will be extremely difficult to
install such an external program without the direct involvement of the  sysop.
What was known as the "extract hack" in earlier versions of WWIV, which relied
on the presence of a bogus PKUNZIP in the TEMP directory, has been  eliminated
from all recent versions, making it a very poor choice for a hack attempt. The
"wildcard hack" has also been obsolete for several years and is a danger  only
to those still running 4.11, if in fact anybody is still running it.

     In  order  to  guard  against  potential  external hacks, it is extremely
important that every sysop make a full examination of each and  every  program
he  plans  to  install  in his BBS. This examination should include not only a
full virus check with everything he has in his arsenal, but also a  full  scan
with  a  utility  like  CHK4BOMB. If the program was uploaded by an unfamiliar
user who begs for  it  to  be  installed,  the  sysop  should  be  immediately
suspicious. I personally would not install it at all.

     When  scanning  a program, pay attention not only to the results of virus
and bomb scans, but also to the  text  data  contained  in  the  program.  For
example, a program which claims to be a BBS log analyzer should have no reason
to access your USER.LST. External programs uploaded by a hacker  may  also  be
nothing  more  than  compiled  batch files. In this case, you will usually see
word-for-word the original content of the batch file and you will be  able  to
gauge immediately the true intent of the program.

     Another  vital  point is for the sysop to be intimately familiar with his
system. He should know what is in every single archive in his transfers,  know
which files exist and which seem to have appeared out of nowhere, and what can
be considered "normal" behavior for any given program on his system.  Anything
out of the ordinary should be investigated immediately.


                --- SECURING TRANSFER SECTIONS AND ARCHIVERS ---

     One  of  my favorite security tips has its origin back in the days of the
"extract" and "411 Wildcard" hacks, but it remains just as valid today  as  it
was  three  or  four  years  ago  -  SPELL  OUT ALL PATHNAMES. When installing
protocols, archivers, and editors in INIT,  when  installing  any  program  in
//CHAINEDIT,  when  writing  batch files, when defining paths for directories,
SPELL OUT ALL PATHNAMES. Let nothing  go  to  default.  Don't  simply  specify
"PKUNZIP"  because  it  is  in  your  PATH= variable. Tell the BBS to look for
C:\WHATEVER\PKUNZIP.EXE. Given this, there can  never  be  even  an  ounce  of
confusion  as  to  which "PKUNZIP" you mean. It will be impossible for a bogus
PKUNZIP to be run unless it has overwritten the real PKUNZIP where it resides.

     Since the transfer section is a favorite target, several  steps  must  be
made  to  protect  the  system  there.  I  recommend  disabling uploads to all
directories except SYSOP, giving all users the U restriction so their  uploads
will  be  forced to SYSOP, and turning on "uploads to sysop" in INIT. There is
no way an upload will go anywhere else unless an external  protocol  has  been
installed  incorrectly.  BBS  security  is  only  one of the reasons for this.
Another concern is the welfare of your users. By placing new uploads on  hold,
they  can be fully tested and examined before they are ever made available for
download. Of course, you should also be careful to specify complete  pathnames
for PKUNZIP, etc., in INIT if you choose to leave the archive commands active.
I personally believe the archive commands are absolutely  safe  when  properly
configured,  so  in  my  opinion  there's no reason for past worries about the
"extract" hack to force you to leave such a useful feature unavailable.

     While PKUNZIP tends to be the favored archiver on many boards, there  are
certainly  others  available,  and they may have back doors similar to PKUNZIP
2.04's "rename or overwrite" problem. When installing  any  archiver  for  the
view/extract/add  commands  in INIT, it is crucial that the archiver's command
set be examined thoroughly for any options which can allow an  extracted  file
to  be  overwritten  rather  than  renamed,  included  pathnames ignored, etc.
Whenever possible, files being extracted from an archive should be allowed  to
overwrite existing files rather than being renamed (assuming the archiver does
allow renaming), and stored pathnames  should  always  be  excluded  from  the
extract process.

     Although  it  might  at first seem dangerous to allow overwrites while an
archive is being extracted, this is  not  really  the  case.  WWIV  tells  the
archiver  where  to  place the files it has extracted (the TEMP directory), so
any files being overwritten will be in  the  TEMP  directory  only.  This  may
sometimes  be an inconvenience if multiple archives contain the same filename,
but it is certainly much safer than allowing a user on the  BBS  to  rename  a
file, complete with the pathname, and place it where he wishes.


                        --- HACKS COURTESY OF PKWARE ---

     Now,  on  the  subject  of  PKUNZIP,  although  I have said I believe the
archive commands are perfectly safe, this is assuming the archivers have  been
set  up  correctly. PKUNZIP 2.04 contains what can be the core of an extremely
simple and dangerous external hack, and we have Phil Katz to  thank  for  this
one.  Suppose  you're extracting from a .ZIP file, and one of the files in the
archive will overwrite a file which already exists (it's  easy  -  extract  it
twice).  By default, PKUNZIP 2.04 will ask you if you would like to rename the
file being extracted. Now, let's suppose  the  extraction  is  being  done  by
someone  trying  to  hack  your  system.  He does want to rename the file. His
keystrokes are  piped,  courtesy  of  the  BBS,  directly  to  PKUNZIP's  "new
filename"   prompt.   Suppose  he  decides  to  rename  it  to  ..\BBS.EXE  or
\COMMAND.COM? You've got a problem then.

     The cure? Force PKUNZIP to ALWAYS overwrite existing files. This is  done
with  the -o switch. You can set this for the extract command line in INIT, or
you can set it as an environment variable (SET PKUNZIP=-o). The main point  is
never  to  let PKUNZIP allow a user to rename a file as it is being extracted.
This one fix alone will cure what is today one of the single most  common  and
dangerous  hacks,  and  often  the most frequently unknown or overlooked among
novice sysops and those  who  have  not  already  heard  about  this  via  the
networks.


                         --- OTHER ARCHIVE DANGERS ---

     Another  popular  archiver, ARJ, also has a back door very similar to the
PKUNZIP 2.04 "rename" back door. In fact, it works in the same way. If a  file
already exists, ARJ will, by default, let the user rename the file and send it
elsewhere.  ARJ  will  give  the  user  a   "(YNAQ)"   prompt,   which   means
Yes/No/Always/  Quit.  "Yes"  will  force the existing file to be overwritten.
"Always" will tell ARJ to overwrite all existing  files  without  any  further
prompting. "Quit" is self-explanatory.

     The  problem  here  is  the  "no"  response. If the user tells ARJ not to
overwrite an existing file, the user will be prompted for a new filename under
which  the  extracted  file should be written. As with the PKUNZIP problem, if
this new filename happens to be a key system file, particularly one associated
with DOS or the BBS, then system security will be very badly compromised.

     The  fix for this problem is slightly different from the PKUNZIP fix, but
it is just as simple. One of ARJ's switches, -n,  will  force  ARJ  to  ignore
files which already exist. As such, they cannot be renamed and redirected.

     If the -n switch is included in ARJ's "extract from archive" command line
in INIT (as it most definitely should  be),  this  back  door  is  effectively
closed  and  is no longer a danger to the BBS. Thus, ARJ's command line should
be "ARJ e -n %1 %2." You may also want to tell ARJ to ignore stored pathnames;
in this case, use "ARJ e -e -n %1 %2."

     Note  that the above back doors are inherent to the archivers themselves,
NOT to WWIV or any other particular BBS software. This means they are a danger
not  only  to  WWIV,  but to any other software which allows a user to extract
from an archive. Any sysops of other BBS software reading this article  should
make note of this and take the necessary steps to secure their boards as shown
above, since these archiver back doors can conceivably be used  against  their
systems as well.

     The  following  can be used as a basic security test for any archiver you
plan to install on your system. Create an archive (it doesn't matter what  you
put  in it), extract it, then extract it again so it would try to overwrite an
existing file. If you are given a multiple-choice prompt, as is the case  with
ARJ,  try  each  choice  in turn and note the results. You might run across an
option which allows a file  to  be  renamed.  If  this  happens,  examine  the
archiver's  command  set and use whatever switch or option will prevent a file
from being renamed, or at least one which will  allow  existing  files  to  be
overwritten  or ignored. The ability to rename an existing file has been found
to be a potential back door in at least two  major  archivers  so  far.  There
certainly  may  be  others. Don't take the chance - test each new archiver you
install in INIT and make sure it will not  allow  a  file  to  be  renamed  or
redirected.

     I have performed the above test with another archiver, LZH (LHA.EXE), and
have found that LZH will, by default,  refuse  to  overwrite  any  file  which
already  exists.  As  such,  it  is my opinion that LZH is safe with the basic
extract command (LHA e filename.LZH <destination>) and no extra  command  line
options need to be used for security purposes.


                     --- AUTO-SKIPPING DURING EXTRACTS ---

     PKUNZIP  2.04  has  an  option  with  the  potential to provide excellent
security, the "-x@listfile" switch. Using this, it is possible  to  specify  a
set  of files which PKUNZIP will completely refuse to display or extract. Such
a file may look similar to this:

     BBS.* INIT.* NETWORK*.* PKUNZIP.* RETURN.* *.BAT

     Suppose this file is named PREVENT.LST. By  passing  "-x@PREVENT.LST"  on
PKUNZIP's  command  line,  you will eliminate the possibility that PKUNZIP may
extract the listed files from an archive. This is more of a precaution than an
important  method  of  protection,  but in my opinion every step toward a more
secure system is a step which should be taken.

     I have found that, at least for my purposes,  the  space  given  for  the
"extract  from  archive" command line in INIT is just a bit too short; I can't
fit the "-x@listfile" switch into the command line I use. If this is also  the
case  on  your  system,  you  can place this list in your PKUNZIP= environment
variable. The only disadvantage to this is that you must remove  it  from  the
environment  variable if you do wish to extract any of the listed files from a
.ZIP archive.


                               --- ANSI BOMBS ---

     There has also been a lot of talk about ANSI bombs, especially where  BBS
security  is concerned, and in most cases this concern is generally unfounded.
An ANSI bomb usually relies on the presence of an  ANSI  driver  which  allows
keyboard  remaps.  The  ANSI.SYS  which  comes  with  DOS  is one such driver.
However, WWIV does not under any circumstances perform any ANSI decoding  with
the  aid  of  the  ANSI.SYS  driver. All necessary ANSI translation for cursor
movement and color is incorporated directly into the  BBS  itself,  and  codes
which  are  not  deemed  useful, such as the codes which remap the keyboard or
change screen modes, are completely ignored by the BBS.

     In order for an ANSI bomb to have any effect against the BBS, it must  be
translated  by  the  resident ANSI driver. As such, it must be sent to the CON
device, which is something else the BBS does not  do.  However,  assuming  the
worst does happen and an ANSI remap code finds its way to CON, it will have no
effect unless the resident driver  allows  keyboard  remaps.  In  truth,  most
drivers  don't  allow remaps these days; DOS's ANSI.SYS is one of the few that
do. Using an alternate driver  such  as  ZANSI  or  PKSFANSI  will  completely
eliminate any and all danger from ANSI bombs which cause keyboard remaps.

     I have heard rumors of a hack method which involves //UPLOADing a certain
type of file and forcing the BBS to display it, but this seems to me as if  it
is  a variation of an ANSI bomb, and I have never once heard of any case where
such an attempted hack has been successful. I'm not  saying  it's  impossible,
because I admit I know little about it, but I'll believe this one if I see it.

     ANSI  bombs in .ZIP comments have also been a concern in the past, but it
is rather well known at this point that PKUNZIP will not attempt to  translate
ANSI  comments  unless  the -q switch has been used. Leave out the -q, and you
can't be bombed by an ANSI .ZIP comment.  No  further  elaboration  is  needed
here.


                         --- DANGEROUS DOS DOODADS ---

     Some  of  the  primary  targets  of  ANSI bombs are DOS utilities such as
FORMAT, FDISK, and DEBUG, as these have the potential to do the  most  damage.
However,  they  are  dangerous  only  if  they  can be found. FORMAT should be
renamed to something known only to you. FDISK can be completely  removed  from
the  drive,  as  it is not something you would normally use on a regular basis
unless your hard drive is ready for the cemetary. DEBUG, unless you frequently
do  assembly language programming, can also be safely removed from your drive.
If you must leave it on your drive, rename it as you have done with FORMAT.

     It is entirely possible to protect your drive from FORMAT, even if it has
been  renamed and the new name is somehow discovered. The key is in the volume
label. With all recent versions of DOS, FORMAT will prompt you to  enter  your
hard  drive's  volume label before it will proceed with formatting your drive.
This in itself does not amount to an effective security measure,  but  suppose
your  label is something which simply cannot be entered from the console? I am
not referring to high-bit ASCII characters, which can be easily entered  using
an alt+keypad combination; rather, I am referring to lower-case characters.


                      --- FANCY TRICKS FOR THE EXPERT ---

     When  you  enter  a  response  to  FORMAT's volume label prompt, DOS will
convert your input to upper-case characters. Now suppose  your  label  is  "My
System"  instead of "MY SYSTEM." When you try to enter "My System" in response
to the prompt, DOS sees this as "MY SYSTEM." Since "MY SYSTEM" does not  match
"My System," FORMAT will not proceed!

     In  order  to  pull  this  trick,  you  will  need  a  utility capable of
performing low-level editing directly  on  the  File  Allocation  Table  (FAT)
itself.  Norton  Utilities and Disk Commando are two such utilities. (You will
also need to be thoroughly familiar with the use of those utilities. I do  not
recommend  this  patch  to novices.) Search the FAT for your volume label, and
edit it to contain lower-case characters.

     But, won't label be able to change this back to something  which  can  be
entered  from  the  keyboard? The answer is, no, not if it's done correctly (I
also recommend LABEL be renamed  or  removed).  The  volume  label  itself  is
nothing  but a null file with the exclusive <L>abel attribute set. Since it is
a file, you can do with it what can be done with almost any other file. To  be
exact,  it  can  be made read-only! So, while you're editing your FAT, set the
<R>ead Only attribute for your volume label. Not only  will  it  be  protected
from  LABEL,  it  will  also  be  protected from many other utilities, such as
XTree, which  normally  are  capable  of  changing  the  volume  label.  After
performing  these  operations,  I have tried changing my label with everything
I've got, and nothing but a sector editor seems capable of changing it.

     Of course, a truly capable programmer could defeat this  method,  but  if
such  a  hacker  has  managed  to  get this close to your DOS then you were in
trouble quite a while beforehand.


                       --- PROTECTION FROM THE INSIDE ---

     Another way to protect the BBS from the inside is to modify the  commands
for //DOS, //CHAINEDIT, etc. This is done in the source code itself, and is an
easy patch even for those with little or no modding experience - search for  a
block  of  case{} statements containing the BBS sysop commands, change them to
whatever you wish, and recompile. Changing  the  commands  is  such  a  common
practice that my mention of it does not even approach being newsworthy.

     Some  sysops  have  added  even more internal protection by either simply
eliminating the //DOS feature altogether or by adding a second password to  be
used  in addition to the system password. This second password is usually hard
coded into the BBS itself, requiring you to recompile the BBS  if  you  change
the  password,  but  those who use this trick swear by it. I wish I could show
novice modders how to add the second password, but I don't speak C.


                      --- PROTECTION THROUGH INIT.EXE ---

     Another good security measure targets the definition of SL privileges  in
INIT.  As  you  know, there are a total of 256 different security levels which
can have various privileges, time limits, etc. assigned to them. What  I  have
done  on  my  system is select a specific set of SL's for various purposes and
blanked everything else out. SL 254 is as good as SL 0 on my  BBS,  because  I
have  stripped  all  time,  all privileges, and turned on all restrictions. It
takes time, but it's worth the effort.

     Suppose you F9 a user and, while your back is  turned  (never  turn  your
back on an F9'ed user!), he goes into //UEDIT and gives himself an SL upgrade.
The highest SL which can be given in UEDIT is 254; so, when he sees  he  can't
give himself 255, he tries for the next best thing and winds up with a 254 SL.
Now, you've got everything ZEROED OUT for that SL. As soon as he sets his  254
SL,  he  is out of time, out of power, out of privileges, and out of luck. The
board kicks him off at the main menu and, if you have done as you  should  and
restricted  that  SL  to one call per day, he will not be able to log on again
that day under that account. Simple, devious, and effective.

     I'll return briefly to the subject of pathnames,  particularly  the  TEMP
directory. While the old extract hack has been eliminated, it is still - in my
opinion - not a good idea to make the TEMP directory one branch down from your
main  BBS directory. The reason for this is that writing a file as ..\file.ext
will send that file to the directory immediately preceding the current  direc-
tory.  If that directory happens to be your main BBS directory, it could cause
serious problems.

     Make your TEMP directory AT LEAST two steps removed from  your  main  BBS
directory. If you have several logical or physical drives, your TEMP directory
should reside on a different drive than your main BBS directory.

     I also recommend changing the default pathnames  used  in  INIT  for  the
DATA,  GFILES,  MSGS,  BATCH, DLOADS, and TEMP directories. Many hack methods,
valid or otherwise, rely on a sysop's laziness and assume these pathnames have
been  left  at  their  default values. The trick here is to fool the hacker in
every way possible, and in many cases the only way to do that is to  stay  one
step  ahead  of him. You may also want to use a non-standard name for the main
BBS directory as well. You may want to call it BOARD or WWIV or even something
which doesn't even look as if it's BBS-related.


                          --- THE FORGOTTEN LOGON ---

     Many  novice sysops aren't aware that WWIV also contains a reserved logon
"account" similar to the !-@NETWORK@-!  logon.  This  account  is  called  the
!-@REMOTE@-! account and can be used to call a program called REMOTE. This may
have valid uses, especially when running file-request utilities or linking  to
networks which do not support the WWIV network exchange protocols, but in many
cases it is little more than a back door waiting to be  opened.  If  a  hacker
manages  to place a REMOTE program where it can be accessed by the BBS, he can
simply enter !-@REMOTE@-! at the "NN:" prompt and have his trojan execute.  Of
course,  as  is  the  case with trojans, they can do whatever the authors want
them to do. This can extend as far as transmitting copies  of  CONFIG.DAT  and
USER.LST;  once those files are in a hacker's possession, he's got the sysop's
account and the system password.

     To protect against this, it is not necessary to  do  anything  more  than
install  a  REMOTE  program before anybody else can do so. Place a file called
REMOTE.* (where * can be COM, BAT, or EXE) in your main BBS directory and  set
it to read-only. At the !-@REMOTE@-! logon, the BBS will execute your REMOTE.*
program. If you have eliminated the possibility of this file being overwritten
by  such methods as the PKUNZIP 2.04 rename back door, then you have protected
yourself from the !-@REMOTE@-! hack.

     If you can program in any language, you might  also  want  to  make  your
REMOTE  program  do  such  things  as write to the daily log and reprimand the
caller. At the very least, you can use a REMOTE.BAT  which  looks  similar  to
this:

     @echo  off  echo  Nice  try, but the REMOTE logon has been closed! > COM1
echo ATH0 > COM1

     If you have experience with C and the WWIV source code, you can go in and
comment  out  the entire block of code which processes the !-@REMOTE@-! logon;
in this case, it cannot possibly be used as a  back  door  even  if  a  trojan
REMOTE has somehow been installed.


                           --- ONE WORD: BACKUPS! ---

     The  importance  of  making  regular  backups  cannot  be too strongly or
frequently stressed. They may be extensive and involve  mass-storage  devices,
or  they  may simply be .ZIPped copies of every last file related to your BBS.
At the very  least,  you  should  keep  frequently-updated  backup  copies  of
CONFIG.DAT  and your DATA and MSGS directories. It is also a good idea to make
regular backups of your networks' directories, especially if you  are  hosting
subs.  It  would  be a major inconvenience to your subscribers if you suddenly
lost all your subscription data. Think about which files would cause headaches
if they got lost and BACK 'EM UP!


                               --- CONCLUSION ---

     These  are  just  some  of  the more common back doors and security holes
known or alleged to exist in WWIV. It is my opinion that the majority  of  the
older back doors, such as the extract (bogus PKUNZIP) and wildcard hacks, will
have no effect against a properly-configured and recent version of WWIV. Other
points, such as ANSI bombs, can be easily nullified (if they are indeed even a
danger at all) by using the proper  ANSI  driver,  and  in  fact  the  general
concern  over  WWIV  being  vulnerable  to  ANSI  bombs seems to be completely
baseless.

     Hacks performed with the aid of  external  programs  usually  rely  on  a
sysop's lack of knowledge, caution and/or common sense, as they cannot usually
be installed or activated in any other  way  except  perhaps  by  renaming  an
extracted  file with PKUNZIP 2.04 or ARJ 2.30, and even these are useless to a
hacker if the proper precautions have been taken  (remember,  specify  -o  for
PKUNZIP and -n for ARJ).

     I  believe  WWIV  is  100%  secure  in  the  hands  of an informed sysop.
Protecting your system against hacks may at times seem to border  on  paranoia
and  certainly  requires  a  bit  of  cleverness,  but isn't a little cautious
paranoia worth the effort when your entire system is at stake?

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ


                        ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ W W I V - S P E C I F I C ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ WWIV Mod and Utility Reviews ³ Papa Bear (1@5079)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

Introduction, AutoSend v1.13 and ALTW-07.MOD    

     A  few weeks ago, I introduced a new sub-board into the WWIV world. It is
a  sub-board for which I thought there was a real need. I hadn't seen anything
like it any time previously or else I wouldn't have done it.

     It  is  called  "WWIV MOD/Utility Reviews  and  Discussions." It is a sub
board  on the WWIV-InfoBahn whose sole purpose  is to review (and discuss, too
<g>)  WWIV  modifications  and external utilities.  No  actual coding is to be
posted  on  this sub-board. Some, if not  all, reviews may find their way into
the "pages" of IceNEWS as part of out WWIV-Specific department.

     It  accomplishes  its goal by using a  set format to review the items and
with  specific rules governing how the reviews  are to be written. I'll show a
couple  of reviews, one for an utility, and  another for a mod. But first, the
rules:

  (1) The author of any modification/utility may not review their own work.
      [And they shouldn't goad a friend into it either!]

  (2) Modifications/utilities should be either registered copies of the
      software or, if not registered, then they *must* be fully-functional
      versions!

     I'll now explain the format that should be used for review submissions on
the  sub  board.  The  primary purpose of  this  format  is  to provide anyone
considering  these  utilities/modifications  with  a  quick  way  to determine
whether this is for them. It is not meant to be an exhaustive write-up.

NAME OF MOD/UTILITY BEING REVIEWED: {proper name}
AUTHOR'S NAME/HANDLE              : {real name and handle}
VERSION NUMBER                    : {important to note ver. no.}
VERSION DATE (.EXE date stamp)    : {this can be important, too!}
OVERALL SCORE                     : {a total of all scores below, divided by
                                    4 (or 5, in the case of a mod)}
  INSTALLATION                    : {how easy did it install, go into the
                                    source? [score 1-10]}
  DOCUMENTATION                   : {did the docs explain everything clearly?
                                    did they cover everything? [score 1-10]}
  PRESENTATION                    : {how does it look? [score 1-10]}
  EASE OF USE                     : {is it intuitive?  is it easy to use?
                                    [score 1-10]}
  CODING (MODs Only)              : {is the coding easy to understand?  is it
                                    commented clearly?  is the formatting in
                                    coding consistent with WWIV? [score 1-10]}

STATED PURPOSE OF MOD/UTILITY:
------------------------------
{these should be the author's own words}

REVIEWER'S PRO COMMENTS:
-----------------------
{why did you like it?  what made it stand out in your mind?}

REVIEWER'S CON COMMENTS:
------------------------
{what was wrong?  explain any mark-downs in scores from above}

FINAL THOUGHTS:
---------------
{this is for anything you'd like to say about it.  how to improve it.  things
you'd like to seen done with it in the future.}

REVIEW WRITTEN BY  : {handle / real name}
NET ADDRESS(ES)   : {this is so the author can get hold of you! :) }
REVIEWER'S SYSTEM : {this should list you processor, CPU speed, operating
                    system, WWIV version number, memory manager, multi-
                    tasker, etc...}
HEAP FREE @ //STAT: {a *very* important consideration for any utilities, any
                    large modifications!}
-----------------------------------------------------------------------------

     The sub-board is open to all people, sysops and non-sysops alike. Bad, or
negative,  reviews  are accepted. I don't  want  this turning into a "yes-man"
type  of operation. The people in WWIVland  deserve to know the lemons as well
as  the  great ones. Authors of  the modifications/utilities have no say-so on
posting of reviews or inclusion in IceNEWS. We are trying to make sure this is
all on the up-and-up and completely fair and unbiased.

     The  sub-board is hosted by me.  The SUBTYPE for subscription purposes is
REVIEW, and it can be picked up on the following node numbers/nets:

@5079 IceNET       @5079 WWIVnet          @15061 WWIVLink        @1860 fileNET
@5050 SEXnet       @5079 TARDISnet        @11579 WW4net          @11 norcalNET


Here is a review that I have written up for an utility, AutoSend 1.13:
-----------------------------------------------------------------------------
NAME OF MOD/UTILITY BEING REVIEWED: AutoSend
AUTHOR'S NAME/HANDLE              : Cris McRae / JAFO
VERSION NUMBER					  : 1.13
VERSION DATE (.EXE date stamp)	  : 03/07/94
OVERALL SCORE					  : 9.25
  INSTALLATION					  : 9
  DOCUMENTATION 				  : 9
  PRESENTATION					  : 10
  EASE OF USE					  : 9

STATED  PURPOSE OF MOD/UTILITY:
------------------------------
     A   WWIV  Net  Sub  Host  Utility.  Features:  Sends  old  posts  to  new
subscribers; posts sub rules and subscription lists; post sub ads, rules, etc.
on any sub; removes unknown systems from N*.NET files; scans DEAD.NET for dead
posts  and  e-mail,  configuration program  for  easy  setup, graphical packet
scanning; complete logging system

REVIEWER'S PRO COMMENTS:
-----------------------
Easy to install using the new AUTOSCFG.EXE program.
Excels at its stated purpose.
Installs very easily via the AUTOSCFG /INSTALL command.
WWIV source code mod for registered WWIV sysops helps make manual message
sending easier.

REVIEWER'S CON COMMENTS:
------------------------
     Documentation  should  be more explicit as  to what command line switches
can be used when using it in conjunction with the EPREPROC.NET file as well as
those that shouldn't be used.
     There  *can*  be problems with memory. This  reviewer  has not had any of
these problems since 1.12, though.
     While  the /REMOVE command line switch  for removing "unknown systems" is
really  nice,  it can be a pain when  one of your subscribing systems has been
removed from the net accidentally or temporarily.

FINAL THOUGHTS:
---------------
     If  you  host  a sub-board, I  *highly*  recommend using this program! It
really  does  help  new systems join in  the  swing  of things when they first
subscribe when they get the last few messages automatically
     The  other options: /REMOVE, /AUTOPOST, /AUTOPURGE make this a great tool
for automatic maintenance of your sub-boards.
     JAFO's  support  sub-board provides an  excellent place to ask the author
directly for help. He is also very open to new suggestions about AutoSend.

REVIEW WRITTEN BY  : Papa Bear / Tracy L. Baker
NET ADDRESS(ES)   : 1@11579.ww4net, 1@5079.ice/tardis/WWIVnet, 1@5050.sexnet
                    1@11.nocalnet, 1@15061.WWIVLink, 1@1860.filenet
REVIEWER'S SYSTEM : 386SX-33, DRDOS 6.0, DESQview 2.6, QEMM 7.0, WWIV 4.23
HEAP FREE @ //STAT: 241k
-----------------------------------------------------------------------------

And now, a review for a modification - ALTW-07.MOD:

-----------------------------------------------------------------------------
NAME OF MOD/UTILITY BEING REVIEWED: ALTW-07.MOD
AUTHOR'S NAME/HANDLE              : French Mod Division (4@5497)
VERSION NUMBER					  : Revision B (C)
VERSION DATE (.EXE date stamp)	  : 05/02/94
OVERALL SCORE					  : 9.60
  INSTALLATION					  : 9
  DOCUMENTATION 				  : 10
  PRESENTATION					  : 10
  EASE OF USE					  : 10
  CODING  (MODs only)                             : 9

STATED PURPOSE OF MOD/UTILITY:
------------------------------
     This  modification  will allow the sysop  to  have a much better call-out
function,  it lists the nodes you are connected to on each networks, gives you
information  on  this node and you can  move between each nodes with the arrow
keys.

REVIEWER'S PRO COMMENTS:
-----------------------
     An *outstanding* modification.	I really love being able to use the cursor
keys  to scroll around the box, all the time highlighting the various nodes to
call out. Very easy to use. Very intuitive.
     I'm  also pleased with the lower  "window's" information. I'm now able to
easily  see a lot of the networking  and node-to-node information I never knew
was there!

REVIEWER'S CON COMMENTS:
------------------------
     They  could  have  done  a  little  better  job  instructing  those of us
upgrading  from  DS007A.MOD  (its  predecessor).  There  were  some minor, but
important changes to be made. Take special care if upgrading.
     Also,  I'm  not real keen on  the global variable declarations in VARS.H.
Since  they  aren't used anywhere else in  the source, it would have made more
sense to #define those variables in NETUP.C, where they are actually used.

FINAL THOUGHTS:
---------------
     Keep  in  mind  that it is  my  opinion  about those "unnecessary" global
definitions/variables!	The  mod  installs just peachy,  especially  if you are
installing it for the first time.
     This  is a great mod that really  deserves to be included as stock source
in WWIV!

REVIEW WRITTEN BY : Papa Bear / Tracy L. Baker
NET ADDRESS(ES)   : 1@11579.ww4net, 1@5079.ice/tardis/WWIVnet, 1@5050.sexnet
                    1@11.nocalnet, 1@15061.WWIVLink, 1@1860.filenet
REVIEWER'S SYSTEM : 386SX-33, DRDOS 6.0, DESQview 2.6, QEMM 7.0, WWIV 4.23
HEAP FREE @ //STAT: 241k
REVIEW DATE 	  : 05/07/94
-----------------------------------------------------------------------------

     Well,  that's  it  for this month. Here's  looking  forward to a long and
healthy  run  for both this column and this  sub  board. I hope all of you out
there find reason to write up a quick review!

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ


                 ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ S O F T W A R E / P R O G R A M M I N G ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ To DOS... Or not to DOS... Or is Windows the answer? ³ Mega Bite (176@7672)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     All  of  us  probably remember the first time we turned on a computer and
were mystified as it flashed incomprehensible messages  onto  the  screen  and
then  proudly  presented  us with a C>. Then came the harrowing moment when we
realized it was not going to ask us to play a  game  or  show  us  pretty  pie
charts  like all the demo computers had done. We searched though all the boxes
and bags and found a promising manual, "DOS x.xx". It was a large book with  a
chapter  on  everything you could possibly need, except for what you wanted to
do right now. Most of us tried reading it and got through  the  first  chapter
before throwing our hands up in futility.

     But  in that first chapter we learned some very important things like the
DIR and COPY commands. We were happy. Starting from there, whenever we  needed
to  do  something different we would either call a friend, who invariably knew
more about it than we did. Or we chanced reading some more of the DOS  manual.
It  was  all  a  learning  experience and soon we all became accustomed to the
plethora of commands and syntax needed to do anything in DOS.

     Then came Windows, everything was three clicks away from perfection.  New
users  no  longer  had to fumble through manuals (that would come later) to do
the simplest of things. The hardest part was getting the mouse pointer on  the
right  icon.  They took the easy path to learning computers. But when they got
caught in a dos shell with that mysterious C> staring them in the  face,  they
were  stumped.  What in the world could they do? The all important mouse would
no longer respond to their summons, they pleaded with the computer to let them
back  into  Windows with all the pretty pictures and colors and a screen saver
that goes off every fifteen seconds. It was their first taste of DOS and  they
were  terrified, so they called us. And we would tell them, "Oh! Type this and
that and this and this and that." Having "grown up" with DOS we were  experts,
but  the  poor  guy on the other side of the phone was instantly mystified and
confused, for after all, how did  we  possibly  remember  all  that?  Then  we
thought and replied, "I don't know, I just do."

     And  that  is  where  DOS  and  Windows  are different. Putting aside the
cosmetic differences, DOS requires a user to learn and remember a multitude of
commands  and  switches,  whereas the only requirement for Windows is hand-eye
coordination. But then you might say, "Isn't Windows better  then?  You  don't
have to spend all your time memorizing commands." That may be true, but if you
think carefully about how Windows  works  you  find  that  it  speeds  up  the
learning time for the user by doing more of the work for him/her. Is that bad?
Maybe. The more work someone does for you, the less control you have  overall,
you  become  accustomed  to  having  it done for you, and you become lazy. For
example, have you ever tried to copy select files from one drive to another in
Windows?  In  DOS it is a simple command: Copy *.exe a: c:, but in Windows you
have to find two or three different specification windows,  look  thought  the
choices  until  you  come  to  the  one  you  want,  mark the files, drag them
physically to the other side of the screen and drop them on the new drive.

     User-friendliness (everything you  need  is  right  there  and  explained
clearly)  is  often tedious and time consuming for those of us who are used to
DOS. A 16 character statement in DOS is replaced with umpteen clicks and  some
typing  in  Windows. The reason why many people who learned computers with DOS
hate Windows so vehemently, it is too simple. The inherent user-unfriendliness
of  DOS is balanced by its great flexibility and power. Windows trades in some
of that flexibility and power for ease of working  and  user-friendliness.  So
which one is better? That all depends on what you are doing.

          DOS vs. Windows.................Tech. Help and Manuals

     Until  the advent of MS-DOS 6.0 DOS had almost no practical on-line help.
Slash H commands often gave incomplete or incomprehensible  "help".  But  with
MSDOS  6.x came the HELP command which greatly enhances the usefulness of many
of the dos commands. But Windows still beats DOS hands  down  with  the  cross
referenced,  easy to access help systems that COME WITH EVERY WINDOWS PROGRAM.
Don't we wish the same was true with all DOS  applications?  The  one  problem
shared  by  both  products  is  the  fact  that  the manuals both read like an
Apache/PKzip mix. The DOS manuals have gotten much [Ed. Note: Remember the DOS
3.x  manuals that started renumbering the pages in the middle?] Windows hasn't
gone through the sheer number of changes DOS has so it is difficult to compare
to anything, but it is very hard to imagine the manuals doing anything but get
better.

              DOS vs. Windows..................................Speed

     One very serious drawback to Windows is the fact  that  it  is  a  severe
memory  hog.  The  problem has been patched and toyed with but because Windows
itself is a hog, anything not expressly made for Windows will almost always be
slower  when  used  in  Windows than when it is not. Most of the programs like
Word Perfect for Windows run more slowly than their DOS counterparts. Anything
that  makes extensive and relentless use of graphics, such as flight simulator
or a fast action game becomes choppy and slow when played  in  a  Window.  DOS
doesn't  have  a  problems  like  that.  The  reason  is Windows is constantly
checking for screen saver times, taskmaster  switches,  residual  drivers  not
used in the DOS program, and an abundance of other things. This ties up memory
and eats up precious CPU time. In DOS , when a program is run it steps out  of
the  picture  almost  entirely.  Before  the program was run, Autoexec.bat and
Config.sys set up everything to listen to the program's instructions and  stay
out of the way as much as possible.

     But  again,  it depends what you are running. If it is a memory-intensive
CPU-burdening program, Windows will only make  it  slower.  But  if  speed  or
smoothness  is not a factor, like in most word processors then Windows will do
just fine.

              DOS vs. Windows.....................Programs Supported

     Much to the dismay of many staunch DOS users, Windows programs are taking
over  a  good portion of the DOS market. But at this time there are still more
DOS applications and games then Windows applications and games. But due to the
fact  that Windows now comes on practically every new computer system sold and
that almost all new users are learning on Windows, the  places  will  soon  be
reversed. What else is there to say?

              DOS vs. Windows......................Correcting Errors

     If  you  use  computers  for  any  length  of time you are bound to screw
something up, sometimes by just turning the computer off at  the  wrong  time.
Solving  some  problems  is  very  easy, others may take hours or even days to
locate and fix. If you are using Windows and you get a fatal error  a  lot  of
times  the  problem  is  in DOS. If you don't have experience with DOS you are
pretty much up the creek. Sure Windows comes with editors  but  if  you  never
worked  with DOS you will have no idea what LH 12,512 /s means in your startup
files. Problems originating totally in Windows  are  generally  easy  to  fix.
Generally. Sometimes.

     Well,  I  can't  think of much more to say in this article. I hope I have
helped you to see why you like or dislike Windows and which one is better  for
you.  I  tried to present both DOS and Windows equally here, but, being one of
the "staunch DOS users" I  mentioned  earlier,  I  might  have  subconsciously
belittled Widows. If I did, I didn't mean to. Remember that there are a lot of
exceptions to anything anyone could say about DOS and Windows. So if you  come
up  with  one  example  where I was wrong, don't get bent out of shape, I just
might not have thought of it. Just e-mail me and scream your head off, I don't
mind. It will help me to write better articles, taking in more points of view.

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ Learning C - Part Five ³ Daarkhan (1@7676)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

            Chapter Five: PROGRAM CONTROL STATEMENTS

IMPORTANT NOTICE

     This  is  the FIFTH chapter in a tutorial series by Richard Rost designed
for people who know very little about programming and want to learn C. If  you
have  not  read  the  previous  chapters,  I  urge  you  to  call  Paragon BBS
(716/837-1636) and download them!


FORWARD TO CHAPTER FIVE

     Well, I said I'd try to get these chapters belted out faster,  but  alas,
time  is  a  luxury  I have not had as of late. My thanks go out to all of the
people who have helped keep  the  "Learning  C"  message  base  talkative  and
informative.


PROGRAM CONTROL STATEMENTS

     What  is  a  program  control  statement?  Simply, it is a statement that
controls the execution, or "flow," of your program.  Without  program  control
statements,  your programs would be able to do little more than simply display
information. Program control statements allow your program to "branch" out  to
multiple  possibilities  based  on  various conditions. The two most important
control statements are "if" and "for,"  and  we  will  cover  each  in  depth,
starting  with  the "if" statement in this chapter, and the "for" statement in
chapter 6.


IF

     The IF statement (I use it  in  capital  letters  to  show  that  it's  a
reserved  word, but do not capitalize it in your programs - remember that C is
a case-sensitive language and will puke on  you  if  you  capitalize  your  IF
statements) is called a "selection" statement or a "conditional" statement. It
basically tests an operation or value to  determine  whether  it  is  TRUE  or
FALSE.  In C, something is equal to logical FALSE if it is ZERO. Anything that
is not ZERO is considered TRUE.

     value     logical
     -----     -------
     1         TRUE
     0         FALSE
     -1        TRUE
     10.3      TRUE


The basic syntax of an IF statement is:

     if (condition) statement;

     For example, the following statement will print, "yes"  if  the  variable
'x' is equal to 6:

     if (x==6) printf("yes");


OOPS, I FORGOT "CONDITIONAL OPERATORS"

     This  brings  us  to  another  topic  that  we need to cover: conditional
operators. These are as follows:

     operator       operation
     --------       ---------
     ==             equal to
     !=             not equal to
     <              less than
     >              greater than
     <=             less than or equal to
     >=             greater than or equal to

     If you have any background with mathematics, you  can  easily  grasp  the
meaning  of  these  operators.  Do not, however, confuse the equality operator
'==' with the assignment operator '='. Both have  completely  different  uses.
For example,

     x = 1

assigns the value of '1' to the variable 'x', whereas

     x == 1

     tests  to  see if 'x' is equal to '1'. This may seem a bit confusing, but
you'll get the hang of it through  many  (yes,  many)  compiler  warnings  for
"possible  incorrect  assignment"  statements.  The  Turbo  C  and  Borland  C
compilers catch some of the instances in which you may  have  improperly  used
these two operators.

     NOTE:  for  those of you who are used to Pascal or Modula-2, the equality
operator in these languages ('=') is the assignment operator in C, whereas the
assignment  operator  in  Pascal  and  Modula-2 is ':=' and in C it's just the
plain '='. Don't get confused  between  them  all.  I  find  myself  sometimes
sitting down to write in Modula-2 and using '=='s all over the place.

DRILL THIS INTO YOUR HEAD:

     Assignment          =
     Equality            ==


IF, AGAIN

     OK,  so back to our IF statement. The best way to learn, as I always say,
is to look at and study examples. So what I'll do now is put up some  examples
and let you see what they produce.

     if (1 > 2) printf("TRUE");

     In this statement, the "TRUE" will never print. The conditional statement
"1 > 2" or "is 1 greater than 2" will be evaluated to FALSE and  the  printf()
statement will never execute.

     if (2 > 1) printf("TRUE");

In this example, the "TRUE" will print. 2 is, indeed, greater than 1.

     if (2 >= 1) printf ("TRUE");

Again, the "TRUE" will print. 2 is greater than or equal to 1.

     if (2) printf("TRUE");

     This  is  an  example  of  how  you  can put just about anything inside a
conditional statement. Remember,  anything  that  is  ZERO  is  equivalent  to
logical  FALSE.  Everything  else  is  considered  TRUE.  In  this  case,  the
conditional statement is just '2' which is not zero, and is  henceforth  TRUE.
In this example, the "TRUE" will print.

     if (!2) printf("TRUE");

     Now,  here,  we  introduce  another  new  symbol,  the logical NOT or '!'
symbol. You can negate any expression by including a '!' symbol before it.  We
touched on it earlier with the '!=' or NOT EQUAL TO operator.

     expression     logical evaluation
     ----------     ------------------
     0              FALSE
     1              TRUE
     -1             TRUE
     !0             TRUE
     !1             FALSE
     !-1            FALSE

     In  our example above, the '!2' is evaluated to be equal to "NOT 2" which
is FALSE, so the "TRUE" will not print.  If  this  seems  confusing,  read  it
again. Ha ha ha... seriously, though, it will come to you - just remember that
you don't necessarily HAVE  to  have  a  mathematical  expression  inside  the
parentheses  of  a  conditional expression. You can have just about everything
from single numbers and variables to whole assignment  statements!  We'll  see
some examples of more things you can do with the IF statement later.


SAMPLE PROGRAM

     Ok,  let's take a look at another example. This complete program will ask
the user to enter a number (int) and will tell the user  whether  or  not  the
number is equal to ZERO or not.

     /* Am I Zero? */

     #include <stdio.h>

     void main (void)
     {
          int i;

          printf ("Input a number: ");
          scanf ("%i",&i);
          if (i==0) printf ("Your number is ZERO");
          if (i!=0) printf ("Your number is not ZERO");
     }

     Ok,  so  it's not the most functional program in the world, but it works.
First, a message prompts the user to input a number. Then the scanf() function
reads a number from the keyboard into the address of the variable 'i' (need to
review scanf()?) Then, the value of i is checked to see whether it is equal to
ZERO.  If  so,  the  first  message  is  printed. If i is NOT zero, the second
message is printed. Note that there  will  NEVER  be  a  case  in  which  both
messages print NOR will there ever be a case where neither message is printed.
ONE and ONLY ONE message will always be printed.

     One other way we could have represented the conditional statements  above
would  have  been  to  just  test  the  logical  values of the variable 'i' as
follows:

     if (i) printf ("Your number is NOT zero");
     if (!i) printf ("Your number IS zero");

     Remember, if i is logically FALSE, it is the same as being ZERO. This  is
a very powerful aspect of C, and we will see more uses of it later.


IF... ELSE

     It seems kind of redundant to have to check the value of i twice, doesn't
it? That's why C and most other  major  programming  languages  have  an  ELSE
statement. The syntax is:

     if (condition) statement1;
     else statement2;

     Basically, if the condition is evaluated to TRUE, statement1 is executed,
otherwise (ELSE) statement2  is  executed.  These  statements  can  be  single
statements  or  entire code blocks (which we learned about in chapter 4) so we
can expand this syntax to:

     if (condition) {
          statements;
     } else {
          statements;
     }

     which is much more functional than single-line statements. So, let's take
a  quick  look  at  the  else  statement.  See  if you can figure out what the
following program does:

     /* Am I Negative? */

     #include <stdio.h>

     void main (void)
     {
          int i;

          printf ("Input a number: ");
          scanf ("%i",&i);
          if (i < 0) printf ("I am a negative number");
          else printf ("I am NOT a negative number");
     }


     Simple enough, right? 'i' is evaluated, and if it's less than  zero,  the
first  message  is  printed,  ELSE  the second message is printed. This method
saves us from having to check the value of i again - in large  programs,  this
can  greatly  effect execution speed, and code optimization is a good habit to
get into.


ASSIGNMENTS

     I know that I said I would be including assignments for everyone  to  do,
but  very  few people have bothered to send me copies of their completed work,
so I'll stop doing them with  this  tutorial...  if  you  really  want  me  to
continue assignments, send them in! My e-mail address is below.

     1.  Write  and  execute a program that asks the user for a number greater
than 10. Have the computer yell at the user if the number is not in range.

     2. Write and execute a program that asks the user for two  numbers.  Have
the  computer  tell  the user whether or not the two numbers are EQUAL to each
other, or if not, which number is the larger of the two.


NEXT

Chapter 6 : The "for" statement.


SOURCES

     Downing, Douglas. Dictionary of Computer Terms. New York:
          Barrons, 1989.

     Holzner, Steven. C Programming: The Accessible Guide to
          Professional Programming. New York: Brady, 1991.

     Schildt, Herbert. Teach Yourself C. Berkeley: Osborne
          McGraw-Hill, 1990.

     ---. Turbo C/C++: The Complete Reference. Berkeley: Osborne
          McGraw-Hill, 1990.

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ Artificial Intelligence - Part Two ³ Louie (6@1)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄ

     For a long period of time, from the mid-1960s to the mid-1980s, the field
of artificial intelligence (AI) was considered a dead issue to many within the
computer  sciences.  Many  of  the predictions made by the AI experts, such as
Marvin Minsky, made great  pronouncements  about  what  was  to  come  in  the
not-too-distant  future  from AI. They were juiced-up on making computers that
could play chess very well and thought "well, if a computer can play chess  on
par  with  most  normal humans, then it isn't that far away from simple things
like language translation, computers seeing objects, computers thinking,  etc.
etc."

     Then  they  learned  that a lot of the things that seemed simple at first
weren't so simple. There are lots of ambiguous things in  this  world.  For  a
simple  example,  language  translation  seems  like  something computers were
almost perfectly designed for. Give it a vast dictionary  in  English  and  in
Russian  and  it  should be able to translate back and forth with ease. But it
doesn't work out that way. Take the English sentence "the spirit  is  willing,
but  the  flesh  is weak." That, when translated by an early computer designed
for translation, came out in Russian as "the vodka is good, but  the  meat  is
rotten."

     That  occurred because of meanings we attach to words. "Spirits" can mean
"alcoholic beverages." It could also mean "ghost,"  "soul,"  "good  feelings,"
etc. Just a bit of a small problem.

     Things  like  that  were  not beginning to be solved until the 1980s. You
needed a translator that understood what it would translate. That is  still  a
bit  of  a  pipe dream even now. They have gotten better at it in choosing the
right methods, though. However, one area of AI did come forward with  promised
advances. That field was Expert Systems.

                                Expert Systems

     The  major  type  of  artificial  intelligence  programs to gain a lot of
attention are expert systems. Programs such as DENDRAL (for aid to chemists in
figuring  out  what  chemical  substances  are  which) and MYCIN (an AI expert
system for diagnosing blood diseases) have gained a lot of attention. They are
both expert systems.

     An  expert  system  contains knowledge about a particular field to assist
human experts or provide information to people who do not have  access  to  an
expert  in the particular field. Expert systems do something that seems almost
impossible at first glance. Often in AI circles, it has been  found  that  the
things  that seem simple on the surface are extremely difficult and the things
that seem extremely difficult on the surface  are  relatively  simple.  Expert
systems make a computer an expert in a narrow range of knowledge.

     Today,  many  expert  systems  are  in use for computer equipment repair,
investment analysis, financial estate and insurance planning, route scheduling
for vehicles, contract bidding, production control, training, etc. Many expert
systems in use around the world today.

     Expert systems have three basic components: a knowledge base  (database),
an  inference  engine, and a user interface (something common to most computer
programs). The knowledge base  is  a  combination  of  data  to  work  on  and
if-then-else rules to apply to the data. This is the major reason the computer
language LISP is still widely used in AI circles.  LISP  can  treat  data  and
programs statements as basically the same thing.

    An example of the if-then-else rule-based structure is the following:

1. IF it is huge, THEN it is a whale.

2. IF it is NOT huge, THEN it is not a whale.

3. IF it is not a whale AND it blows a jet OR it has a blowhole OR it has a
   horizontal tail, THEN it is a mammal.

4. IF is it not a whale AND it has no blowhole OR it has a vertical tail,
   THEN it is a fish.

5. IF it is a mammal AND it has a pointed snout, THEN it is a dolphin.

6. IF it is a mammal AND it has a blunted snout AND it is with a whale, THEN
   it is a baby whale.

7. IF it is a mammal AND it has a blunted snout AND it is not with a whale,
   THEN it is a porpoise.

8. IF it is a fish AND it is by itself, THEN it may be a tuna.

9. IF it may be a tuna AND it has a double dorsal fin, THEN it is a tuna.

10. IF it may be a tuna AND it does not have a double dorsal fin, THEN it is
    an unknown fish.

11. IF it is a fish AND is by itself THEN it is a swordfish or shark.

12. IF it is a swordfish or shark AND it has a sword, OR it is silvery AND has
    a forward dorsal fin, THEN it is a swordfish ELSE it may be a shark.

13. IF it may be a shark AND it has sinewy swim, THEN it is a shark.

14. IF it may be a shark AND it does not have a sinewy swim, THEN it is an
    unknown fish.

     The  words  IF, THEN, ELSE, AND, and OR are capitalized because they each
perform a special operation. They are basic  boolean  mathematics.  Conditions
met and operations performed. They are pretty much each self explanatory.

     The  knowledge base contains the hard data to work with as well. The data
may be like:

1. Robbie is not huge.

2. Robbie has a blow hole.

3. Robbie has a pointed a snout.

4. Jane has a double dorsal fin.

5. Jane is not huge.

6. Steve is huge.

     The data would be descriptions of things in this case. You then apply the
descriptive  data to the if-then rules and conclusions would fall out. This is
the domain of the inference engine.

    In this example, Robbie is a dolphin, Jane a tuna, and Steve is a whale.

     The inference engine of the expert system controls how and when the  data
and  rules  in  the  knowledge base are applied. The two basic methods used in
inference engines are forward-chaining and backward-chaining.

     Forward-chaining is sometimes refereed  to  as  data-driven  because  the
inference engine uses the info that is provided to more through the network of
rules to reach all possible conclusions that can be  drawn.  When  it  doesn't
have enough info to reach conclusions then it may ask for more info.

     To  understand  how  forward-chaining  works,  imagine  that your car has
malfunctioned. You call your mechanic and he/she asks you to describe what  is
wrong. The mechanic continues to ask for more information until he/she figures
out what is wrong with your car.

     Backward-chaining is the reverse of  forward-chaining.  Backward-chaining
starts  with a possible conclusion and then tries to prove, using the data, if
that conclusion is  true  or  false.  Backward-chaining  is  sometimes  called
object-driven  because  the  expert system begins with "Robbie is a shark" and
then finds that Robbie isn't a shark according to its database. It would  then
start  again  with  "Robbie  is a tuna" and then find out Robbie isn't a tuna.
When it finally tries "Robbie is a dolphin," it finds that it is  correct  and
then stops.

     A  good  backward-chaining  water  animal expert system would start using
possible conclusions that are more likely  to  be  true  than  other  possible
conclusions.  There  are  more tunas out there than sharks. So it would try to
see if Robbie is a tuna before it would try see if Robbie were a shark.

     Backward-chaining may seem to be  the  process  that  would  get  answers
slower  than forward-chaining, and in a simple expert system that would be the
case. However, in expert systems with very large data bases, backward-chaining
seems to be quicker most of the time.

     The  user  interface communicates with the user of the expert system. The
user interface may ask questions when it needs more  info.  When  I  wrote  an
expert  system  of  my  own  when  I  was  in  college, the user interface was
practically non-existent. The system was just  asking  for  file  names.  More
advanced  expert  systems  have  user  interfaces  that  allow the user to ask
questions, provide information, etc.

     Expert systems are very simple in their basic approach and set  up,  but,
the more rules and data in the data base, the more powerful they are. They are
starting to be used more and more to aid people in finding information because
of the shortage of and/or expense of consulting human experts.

                                     LISP

     Last  month  I  wrote  a little about the LISP programming language. LISP
(LISt  Processing)  is  the  predominant  programming  language  used  by  the
Artificial Intelligence community.

     John  McCarthy developed LISP at MIT in 1958 because he needed a language
in which he could implement  a  program  called  "Advice  Taker"  efficiently.
Advice Taker never took-off itself, but the language McCarthy came up with for
it did. LISP is the second oldest programming language still in use.  (FORTRAN
is the oldest)

     There  are  many dialects of LISP around today. FranzLISP, ALISP, MacLISP
(note: MacLISPs name has nothing to do with the Apple Macintosh,  MacLISP  was
developed before the Apple Macs came into existence), XLISP, PC-LISP, etc. The
standard is called "Common LISP." It is an  ISO  and  ANSI  Standard  language
definition.

     XLISP  and  PC-LISP  are  Shareware  standards  for the IBM PC-compatible
market. They are both rather powerful. Both can be downloaded from  The  Great
White North (IceNET @1) or Paragon (@7654).

     The  major features that LISP offers as a programming language over other
languages are recursion, storage of programs and data as the same basic stuff,
and its ability to act as an interactive interpreter.

     Recursion allows for functions to include themselves as part of their own
definitions. Other computer languages can do recursion,  but  they  do  it  in
clumsy ways that are rather inefficient. Recursion is second nature to LISP.

     Storing  programs and data as the same basic stuff allows for programs to
be treated as data. A program could be written that would  modify  itself.  AI
finds  this  a  very  useful  thing for program learning: A program that could
teach itself a new trick. This also allows for LISP to  keep  track  of  which
instructions have been executed and how many times they were executed... which
is perfect for writing expert systems so that they can explain how conclusions
were reached.

     LISP   as  an  interactive  interpreter  means  you  have  a  programming
environment suitable for writing programs.  Each  program  statement  is  only
executed  when  called  for.  This allows for quicker development as you don't
have to  waste  time  compiling  and  recompiling  all  the  time  during  the
development process.

    The two LISP's I used in developing this article were:

         XLISP Version 2.0 by David Betz (BIX address: dbetz).

         PC-LISP v2.17 by Peter Ashwood-Smith.

     Both  can  be downloaded from TGWN (IceNET @1) and Paragon (@7654). XLISP
includes Turbo C source code. Both are shareware software.

     When I was in college, we used XLISP in the class. I wrote up one of  the
programs  we  wrote and, with little modification, it ran in PC-LISP. I had to
change one function around a little bit and made it work by adding a few calls
to the list function in two places.

     LISP's  main  data  types  (or  object types if you prefer, as LISP is an
object oriented language at heart) are Symbolic Expressions, or  S-Expressions
for short. The two major S-Exps are Atoms and Lists. Atoms are subdivided down
into Numbers (Fixed and Floating point),  Literals,  and  Strings.  Lists  are
subdivided down into Data lists and Forms.

     Numbers  are  just  that;  1,  2,  3...  358452.254125, e, pi, etc. Fixed
numbers are what would be termed Integers in Pascal and  int  in  C.  Floating
points are what would be called Reals in Pascal and floats in C.

     Literals  are  words,  letters,  etc. Things like A,B, Jim, IceNET, LISP,
WWIV-is-Great, etc. When you reference a literal you would normally  reference
it  with  a  quote  mark  (').  That  is  so  LISP knows you are not trying to
reference a function or global variable.

    You would reference them as 'Jim, 'IceNET, or 'WWIV is great.

     Strings are mainly a lot like strings in Pascal or  C.  "Jim,"  "IceNET,"
"Deacon  Blues is an evil Editor-in-Chief," etc., are string atoms. Everything
between the double quotes in included in the string.

     Lists are expressions contained in parentheses. (A),  (Jim),  (IceNET  is
great),  (),  ((())), (5 is a Number), etc. Lists can also contain other lists
and they can also be empty like the empty list () I noted above. Each  Sublist
only  counts as one element in a list, though. (LISP (Jim) (IceNET is (good)))
contains 3 elements even though there are 5 words.

    Examples of lists and number of elements they contain.

     List # of Elements ---- ------------- () 1

(Jim)                             1

((IceNET))                        1

(Jim (IceNET is great))           2

     ((())) 1 (Deacon Blues (is a Good
    Editor))                      3

(An (interesting ((List)
    structure)))                  2

     Forms come in two major types... Function and Global Variables. Functions
are  defined by the user with the Function DEFUN. There are built-in functions
as well though, called primitives. Primitives are functions you would  use  in
creating more complicated functions.

    Numerical Primitives : PLUS, DIFF, TIMES, and DIV.

    PLUS performs addition.  (PLUS 4 5) --> 9.  (PLUS 1 2 3) --> 6.
    DIFF does subtractions.  (DIFF 6 2) --> 4   (DIFF 4.2 2.2) --> 2.0
    TIMES is multiplication. (TIMES 5 5) -> 25. (TIMES 2 3 4) --> 24.
    DIV is division.         (DIV 6 2) ---> 3.  (DIV 4 4) -----> 1.

     PLUS  and  TIMES can take any number of arguments you give them. DIFF and
DIV only accept two arguments.

    These can allow you to build your own functions, such as :

    (DEFUN Factorial (num)
           (COND ((EQUAL num 1) 1)
                 (t (TIMES N
                           (Factorial (DIFF num 1)) )) ))

     You should take note that EQUAL is just what you would  think  it  is.  A
function  that tests to see if two things are equal. If they are, it returns T
(True) or, if not it returns Nil (LISPese for False). COND is just a fancy way
of saying "If".

     If  NUM  is  equal  to  1  THEN return 1 as the value of the function, if
not... activity T, which in this situation means "Else" and multiply NUM times
a recursive call to itself with NUM-1.

    (Factorial 4)  returns the value 24.

     Symbolic  Manipulation.  the  manipulation of symbols like '(IceNEWS is a
Fine publication), is what LISP was invented for. (Note the quote  again.  You
use  those a lot in LISP for when you don't want to get data and program mixed
up.)

     CAR, CDR and CONS are the heart of Symbolic Manipulation  functions.  CAR
means "Contents of the Address part of the Register," which sounds complicated
but in reality it means "First." It gives the first element of the list.

    (CAR '(IceNEWS Is great)) --> IceNEWS.

     CDR means "Contents of the Decrement part of the Register" but it  really
means "Rest". Give me all of the list except the first element.

    (CDR '(IceNEWS Is great)) --> (Is great).

     Both  these  functions are often also referenced as FIRST and REST within
most LISPs. You LISP's environment can be altered so that CAR and CDR  can  be
referenced  as  FIRST  and  REST  if you want. (Setq FIRST 'CAR) should do the
trick for you. Both CAR and CDR expect to be called with Lists, though.  Don't
call  them with only atoms as arguments. (CAR 'A) and (CDR 'A) both return NIL
or False.

     CONS is for Constructing new lists. It accepts two arguments. It  inserts
the first argument into the second argument. The first can be either a list or
atom. The second must be a list.

    (CONS 'IceNEWS '(is great)) --> (IceNEWS is great).
    (CONS '(Jim is an evil overlord) '(who must be stopped)) --->
           ((Jim is an evil overlord) who must be stopped)

     There are also True-False or  predicate  functions.  NULL,  LISTP,  ATOM,
NUMBERP, EQUAL, etc.

     NULL  tests  to  make  sure  something  isn't Nil. LISTP checks to see if
something is a list or not. ATOM checks  to  see  if  something  is  an  ATOM.
NUMBERP  checks to make sure if something is a numeric atom. EQUAL, as I noted
before, checks to see if two things are equal or not.

     Some other functions that should be referenced  are:  APPEND,  a  special
version  of  CONS.  LIST  which forms a new list out of its arguments, LENGTH,
which returns the number of elements in a given list as a  numeric  atom,  and
REVERSE, which reverses a given list.

    (APPEND '(IceNEWS is great) '(IceNET is cool)) ---->
                 (IceNEWS Is great IceNET is cool)

    Compare to (CONS '(IceNEWS Is great) '(IceNET is cool)) ---->
                 ((IceNEWS is great) IceNET is cool)

    (LIST 'A) ---> (A).      (LIST '(Jim is a nice guy)) ---->
                                 ((Jim is a nice guy)).

    (LENGTH '(A B C D)) ---> 4.

    (REVERSE '(A B C D)) --> (D C B A).

     The  other  type of Forms are the global variables. These you alter using
Setq. Global variables can be functions as well as just your  normal  variable
like  in  Pascal  or  C.  Like  when  I set a global variable equal to the CAR
function beforehand.

     (SETQ **A** '(IceNET is nice)) defines a global variable of  **A**  which
means (IceNEW is Nice).

    (CAR **A**) ----> IceNET.
    (CDR **A**) ----> (is nice).
    (CAR (CDR **A**)) ----> is.
    (CONS 'Jimbo **A**) ----> (Jimbo IceNET is nice).

     SETQ  can  be  used  for what is sometimes refereed to as polymorphism in
other languages like C++ or an OOP Pascal. It allows function names to go with
different types of functions at different times.

     I'll  now define some functions I have written in the past to give a feel
of what LISP can do sometimes.

     Palindromep - a predicate that tests an argument list to see it is  it  a
list  that  has  the  same sequence of symbols when read from right to left as
when it is read left to right.

    (DEFUN Palindromep (l)
           (COND ((NULL l) T)
                 ((EQUAL l (REVERSE l)) T)
                 (T NIL) ))

    (Palindromep '(a b c b a)) ----> T.
    (Palindromep '(a b c c c a)) --> NIL.

     Presentp - a predicate  that  determines  whether  a  given  atom  occurs
anywhere in an expression.

    (DEFUN Presentp (a exption)
           (COND ((NULL exption) NIL)
                 ((EQUAL a (CAR exption)) T)
                 ((LISTP (CAR exption))  (OR (Presentp a (CAR exption))
                                             (Presentp a (CDR exption)) ))
                 (T (Presentp a (CDR exption)) )) )

    (Presentp 'x '(SQRT (DIV (PLUS (expt x 2) (expt y 2)) 2))) ---> T.


     There  are  other  things  to  LISP, but those are the more difficult and
advanced aspects of the language. If anybody has any questions they would like
me to answer just drop me an e-mail (6@1 IceNET) and I will try to answer them
in an upcoming installment of this Artificial Intelligence series of articles.


Coming in the July issue of IceNEWS: Part 3 of this series.


Sources used in this series:

    _Understanding Artificial Intelligence_; 1988;  by Henry C. Mishkoff;
         Howard W Sams.

    _Artificial Intelligence... Using C_; 1987;  by Herbert Schildt;
         Osborne McGraw-Hill.

    _The Computer Glossary: The Complete Desk Reference_; 1991;  by Alan
         Freedman; AmaCom.

    _Using Turbo Prolog_; 1988;  by Kelly M. Rich & Phillip R. Robinson;
         Borland-Osborne McGraw-Hill.

    _I, Robot_; 1950;  by Isaac Asimov; Del Rey.

    _Asimov On Science_; 1989; by Isaac Asimov; Pinnacle.
         essays entitled "Thinking About Thinking" and
         "More Thinking About Thinking".

    _AI: The Tumultuous History of the Search for Artificial Intelligence_;
         1993; by Daniel Crevier; BasicBooks.

    _LISP: An Interactive Approach_; 1986; by Stuart C. Shapiro;
         Computer Science Press.

    _XLISP: An Experimental Object-Oriented Language_; 1986; by David M. Betz;
         Documentation with program.

    _PC-LISP User Manual_; 1987; by Peter Ashwood-Smith; Documentation with
         program.

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

                             ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ H A R D W A R E ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ Will Crawford On: The Future of Computing ³ Will (1@6754)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     Every  few  months,  people  get  together and try to figure out what the
computing scene will look like five, ten, or  fifteen  years  down  the  line.
Often  these are wild guesses, flagrantly optimistic or too narrow-sighted and
pessimistic. A committee under President Johnson was told to come up  with  an
idea  of  what  computing  would  be  like  in  the year 2000. Everything they
predicted had occured by the mid 1970s. Arthur C. Clarke, a science  visionary
if  there ever was one, overshot the direction of AI (in 2001) and understated
it as well (in some of his novels, he predicted that punch cards  would  still
prevail in 100 years).

     The  mid  1990s is certainly a turbulent time, with platforms, chips, and
operating systems all jostling for a top position, and nobody is really  quite
sure  what  will  come  out on top in the end. However, computer technology is
begining to settle into a pattern and trends  appear  which  make  long  range
predictions   easier.   While  things  are  still  murky,  many  technological
developments of the next five to ten years can be seen through the haze.

     Hard disk capacities will double, triple, and finally increase by  up  to
50  times  over  the  next  five  years,  with no real change in cost. Two new
technologies will make this possible.  The  first  involves  using  DAC  chips
(Digital  Audio Converter, more on them later) to filter data "noise" from the
hard disk. This will allow information to be packed much more tightly  on  the
disk  platter  without  additional  miniaturization  costs. The second scheme,
which may bear even more potential, involves changing the orientation  of  the
recording  medium  on  the  disk  platter  to  allow a much tighter density of
information.

     Crystal Lattice memory may also come into its own for storage, pehaps  by
the  year  2000,  perhaps  later. This involves using a laser to store data in
"cells" a few dozen atoms across in pieces of special crystal.  While  current
working  models only store a few dozen bits of memory, this technology has the
potential to cram terrabytes of memory into a recording media not much  larger
than a marble.

     The  chip  wars  will  continue for a few more years, the eventual winner
still indeterminite. IBM, and Apple especially, are betting the  farm  on  the
success  of  the PowerPC RISC chip. Intel has a lot to lose if PowerPC catches
on, so they'll continue to step up R&D and solve the cooling problems  of  the
latest generations of Pentiums and above (Intel recently demoed a Pentium DX4.
While capable of  hundreds  of  MIPS,  the  machine  needed  liquid  cooling).
Machines using liquid nitrogen cooling might become popular if the chips can't
be made to run at a lower temperature.

     If IBM and Motorolla can release the PowerPC 620 chip  on  schedule,  and
announce  even  more advanced versions, they have a good chance of prevailing.
Rumors are that IBM plans to incorporate some 486 compatible circuits onto the
next  generation  of PowerPC, helping end the copmatibilty problems. The other
RISC manufactures, such as MIPS (makers of the  R4000  chip  used  in  Silicon
Graphics  workstations, among other strong RISC machines) aren't going to toss
in the towel, so there's still the possibility of a "Dark Horse" canidate.

     Who wins the chip war really depends on who  wins  the  Operating  System
War.  Which chip is "in" use might become quite irrelevant if Microsoft and/or
IBM get the multi-platform versions of Windows NT and OS/2  out  the  door  on
time.  Part  of Microsoft's master plan includes versions of Windows NT, which
should be able -- with minimal effort -- to run all Windows NT  apps,  period,
making  proccessor type irrelevant. If they can improve the emulation of 80x86
programs, they might manage to do just that. If IBM wins big with  OS/2,  then
the  PowerPC  will  have  a  definite  advantage. Of course, the product under
development by the IBM/Apple join venture Talligent may change all of that.

     Audio subsystems  will  become  standard  equipment  on  almost  all  new
machines, perhaps to the level of common motherboard interfaces. The DAC chips
that are becoming very popular allow customized data proccessing  that  allows
the  sound  elements  to be turned to various uses. Soft modems, such as those
found on the AV Macintoshes and available from a few PC vendors,  will  become
increasingly  popular  because  they  can easily be upgraded with software and
double as an audio system. They'll gradually replace conventional modems. With
the   advent   of  enhanced  telecommunications  environments  (the  so-called
Information Superhighway), the picture might change again,  with  direct  ISDN
links replacing modems in many applications.

     There's a lot going on in the PC world, and the next few years and months
are going to be very interesting.

Next Month: The PC Buyer's Quandry

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ Give me an A, Give me a T, Give me a Z ³ Fractal (3@5750)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     What does it spell? ATZ. It sounds really simple, and if you feed it to a
modem, 99.9% of them will say OK. Not only that, they for the most  part  will
connect to almost any other modem at that setting. Why is it then that so many
people have so many problems getting their modem INIT strings to work?

     For starters, most are overly complex. There seems to be a mystique about
modem  initialization strings that says that they need to be a complex magical
combination of indiscernible characters to result  in  the  right  connection.
Take the following examples:

                (lines with - are two-line init strings)

  ATE0H0M0Q0V1X4\N3%C1\A3S0=0S2=1S48=7S95=44
  ATC1E0F1H0M0Q0V1X6&A1&B1&C1&D2  -  AT&H1&I0&K1&N0&R2&S0S0=0S2=1
  ATC1E0F1H0M0Q0V1X6&A2&B2&C1&D2S38=1  -  AT&H1&I0&K1&N0&R2&S0S0=0S2=1
  AT\N3%C1\K3\G0\A3%D2%E0%M3  -  ATS46=138S48=7S82=128S36=1S95=44S11=50
  ATE1Q0M1L2&C1&D2S0=0S2=255&W0&W1

     In  most  cases, much of the contents of the init strings are unnecessary
as many of them match the default values that are  already  set  on  power-on.
Many  modems  provide more than one command to do the same thing. Sometimes, a
command that starts with a letter like M0 or M1 (speaker on  or  off)  can  be
duplicated by an S-register command like S193=0 or S193=1.

     Adding  to  the  confusion is permanent memory, which allows modems to be
pre-configured to one setting or another but which can conflict with  settings
that are specified in an initialization string. The best way to eliminate this
problem and assure consistency is to begin all init  strings  with  a  factory
reset  command  that will start you off from a common ground; an &F will often
work toward this end.

     The "ATZ" init string doesn't reset to factory defaults, it merely resets
the  modem  to what it was when it was powered on, which would be different if
the permanent memory has been saved to in the past. AT&F, if the modem accepts
that  command, would be much better because it is more consistent. Also, avoid
saving to permanent memory (ending with &W, &W0, or &W1) because it serves  no
purpose  as long as an init string is being used and could cause some problems
for other software which uses the modem (it will also probably slow  down  the
initialization process).

     Many  times,  redundant  commands can make for long lengthy init strings.
AT&FE1 wouldn't make sense because almost any modem that is new enough to have
a  default  setting  in ROM will always turn the echo on anyway in its default
setting, so the E1 is redundant  and  should  be  removed.  Your  manual  will
indicate  the  settings  that  a default initiates. Follow the &F (or similar)
command only with settings  you  desire  to  be  different  from  the  default
settings. This will often include &C1 and &D2, which are common additions; &C1
enables the carrier detect line so it doesn't  always  indicate  a  connection
even  when  noone  is online; &D2 tells the modem to hangup in response to the
dropping of the DTR line from  the  computer.  Most  term  programs and  BBSes
(including  WWIV)  will try to hangup this way. You may also want to include a
M0 if your modems default leaves the speaker turned on.

     A few spaces never hurt either just to make it readable. Hayes compatible
modems  completely  ignore  spaces,  so  "AT  &F  &C1 &D2" makes a pretty good
universal setup string for most modems.

     WWIV sysops should be aware that if your modem's factory defaults  should
enable  auto-answer  you  will  need  to add "S0=0" to your init string or the
modem will hang up when the board tells it to answer (You'll know this because
nobody  will connect)! This happens because when a modem answers, pressing any
key before a carrier is locked on will cause it to abort and the ATA  sent  by
the computer aborts the answer already in progress.

     Common  additions  to the generic setup include: S10=50, which allows the
modem to recover better from a momentary lost carrier  (like  a  call  waiting
beep),  S0=0, which prevents auto-answer, and M0, which turns off the speaker.
Add these only as required to keep yourself running well.

  For a good init string, start with something like this:

     (WWIV sysops won't forget to add the curly brace on the end :))

  AT &F S2=255 S10=50

     Then, if needed, add &C1, &D2, S0=0, and M0 as required.  By  this  time,
you  should  be  well on your way to a good connect. WWIV sysops making a .MDM
profile will then need to make sure  that  the  result  strings  indicate  the
appropriate  connects  and baud rates (this can be done by setting the MS= and
CS= numbers as required). If your modem needs different settings added to  its
init  string  to allow it to report the caller's baud rate, then add them. You
can lock the baud rate or leave it floating as  long  as  the  result  strings
indicate  the  appropriate action. There are reasons for going either way, but
we'll leave that as well as other tips and tricks for another time.

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ


                           ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ L I T E   B Y T E S ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ Tales From A BBS Sysop - Funny Users ³ Ima Moron (1@9661)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

˙                             That Funny Occurance

     Every  once  in  a  while,  a  user  pulls/posts/or  E-mails one of those
immensely funny occurances that makes the work of being a sysop worth the time
and effort. I live for those moments, and I frequently encounter that point in
time when a user torques my funny bone. On that note I'll let all of you in on
my users quirks.

     In  creating an incentive to donate to my BBS I utilized a program titled
"Tradewars Galactic Market" by Eric  Heimburg,  WWIVnet  1@4709.  The  program
allows  an  external  starport  feature  in  which the sysop can regulate item
prices, users decloak others, disclose other player's locations, or  in  which
the  user  can  transwarp  tow themselves anyplace.  I then created an ANSI ad
campaign using a modified mafia.ans from the tradewar ANSI files.  Within  Mr.
Martin's ANSI I created my mafia "Don" who extolled all of the features of the
software. There would now be two classes of Tradewars playing users on my BBS;
those  that  paid me a bribe for the AR toggle to use the mafia and those that
just played the game without any outside intervention. To be sure of immediate
success  and  a large subscription list to the program I added an incentive to
pay up; all paying subscribers to my mafia  could,  if  they  wished,  pay  an
additional  $2.00  and exclude a competitor from the mafia. One fine morning I
picked up my mail to find the following letter wrapped around nine one  dollar
bills:

         Dear Mr Mafia Man

               I am enclosing 900 cents in small unmarked bills. Please
         do not hurt my ship. I want to see it alive again.

                                          Thank you
                                       David [real name excluded]

     I  laughed  myself  into  stitches,  I  gave  him his access and an extra
fifteen minutes of daily user time for the humor. BTW -  the  letter  had  the
appearance of a cut up magazine.

                            ---- User Errors ----

     I  had  expressedly  informed  all  of my users that they should read the
network sub-board of their interest and, after aquiring a grasp of the subject
on  the  sub-board, they should then post. A young man logged on shortly after
having been allowed access to the networks. He then proceeded  to  comment  on
anything  and  everything.  I  spent most of the morning logon deleting what I
could stop from being sent out and attempting to apologize  for  the  dialogue
that was transmitted and I restricted him.

     When  the  youngster  logged back on to the BBS the following evening, he
immediatly sent me some feedback in which he stated that he was possesed by  a
fervor  that  he had never experienced before. Mom and dad had held a cocktail
party at their house. At the end of the party, Junior was instructed to  clean
up  the mess, which he devoured in gulps -- gin, wiskey, etc. What could I do?
There just isn't any way to regulate  the  travels  of  youth.  I  temporarily
restricted his access, then, after a week, I forgave him.

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ How They Got Started In BBSing - Pt. 3 ³ Compiled by: Louie (6@1)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     Some  of  the kind readership of IceNEWS may recall the older articles in
this series in which stories from well known folks around WWIVland tell us all
how  they started in BBSing. Such luminaries as Wayne Bell, Filo, Jim, Deanna,
etc. told us how they started in this wonderful hobby of ours called BBSing.

     Hummm... Why do we call it "BBSing?" "MUGing" (Modem User Group) gets  us
funny  looks  when  we put up picnic signs with that on it. "Modemers" doesn't
give the same oomph as BBSing. "Bauders" just sounds weird. Well, I  guess  we
are stuck with some strange names like "BBSing" for our hobby.

     This  month  we have stories from DayDreamer (2@4501), an all around nice
person who wrote about being a female sysop in the May 1994 issue of  IceNEWS;
Benny  Hill  (1@7400),  the  all  famous  Group  Coordinator  of  WWIVnet; and
Wildfire, (1@5857) who is a  nice  person  writing  for  his  first  time  for
IceNEWS. Each is "good people"... unlike some of the IceNEWS Staff. :-) hehehe
(Hey, Will... put that axe down!) One moment  please  while  I  put  down  the
rebellion within our ranks!

**BANG!** Ahhhggg!  **THUD!**  Belch! **WAP!**

     There,  everything seems to be back in the natural order of things. Seems
I had to promise Will that he could be M/E next month though.

     Anyway, this is getting weird and you would rather hear from Daydreamer I
am sure.



Daydreamer, #2 @4501, writes:

                           Dream Tales

     In  the  time before the creation of the mountains and after the creation
of the sun, there came into being DayDreamer.

     'Twas the summer of '89. A bright, beautiful afternoon that gave no  hint
of  what was to come. Suddenly, a sharp scream echoed throughout the building,
followed by a sigh of relief... DreamScape, the dusk to dawn BBS, emerged into
the unsuspecting world.

     After  hours  of reading fine print labeled FYEO, the newly created sysop
knew that something wonderful was going to happen. Rising from the chair  that
she  had  called  home  for  the  better part of the day, the weary DayDreamer
brought into creation a blinking cursor, turned  out  the  lights,  and  said,
"this is good."

     Early  the  next  morning,  DayDreamer  rushed  to  the  room  containing
DreamScape to see what had happened  in  the  night:  arghhhhhh...  absolutely
nothing,  not  a call, not even a wrong number. With a worried expression, she
wondered what could be wrong. Then, the reason for  failure  became  apparent.
Who  knew  about  this  new  reality?  Quick,  call the printers. Send out the
messengers. Let the world know that there is something new and different to be
found in the tiny town of Oklahoma City. Find kindred souls. Search for others
that share the same desires and passions,  those  that  wish  to  spend  long,
endless hours making a simple machine become a power to be reckoned with.

     Six  WWIV  wizards  appeared,  all  with  thunderous  attitudes,  bearing
predictions of misfortune. This was not a task for m'lady, 'twas a  dirty  and
thankless  job  and best left to those more suited for it. The lady viewed the
wizards, wondering what secrets they were trying to hide, why would they  want
her  to  stay  in  the  "dark  Ages of childbirth and housework." Squaring her
shoulders, DayDreamer said, "We shall see if the walls  of  ignorance  can  be
torn  down,  and  women  given their rightful place in the electronic age." As
time passed, the user base grew with astounding speed. The new serfs cried for
more  online  time,  more  hours  of  operation,  more  utilities, and more of
DayDreamer's ancient wisdom.

     Realizing that growth was a sign of success, DayDreamer  sent  a  carrier
falcon  with  registry  for her creation. As days passed, she became restless.
Would the keeper of the records, Lord Bell, also feel that this was not a task
for  the other gender? Then it happened. The secret code arrived. With it came
a magic number, and DreamScape evolved into a  24-hour  system,  made  to  the
specifications  of  DayDreamer. Hers alone. No other had anything exactly like
it. The local WWIV wizards were still skeptical, but now they asked for advice
on questions that they could not resolve.

     DayDreamer  became the matriarch of WWIV in Oklahoma. This also created a
new set of problems. The reigning wizard had to admit to errors in some of his
spells,  spells  borrowed  from other wizards in distant realms. New alliances
had to be formed. The camps divided, those that followed the  bard  and  those
that followed a dreamer. Old friendships crumbled to dust as the new ones grew
stronger. The full meaning of the original worries became clear. WWIV: another
way of warfare; a masculine skill.

     DayDreamer  joined  a  national  alliance of wizards and found no unusual
comments on  her  gender.  There  were  questions  of  course,  but  time  and
experience had provided answers. Some made offers of a physical nature, others
wondered at what had caused her to become one of the sysops. The answer to the
latter  was  simple,  time  was  at  fault. 'Twas the last frontier (or so she
thought). One of the new wizards spent long hours talking with the dreamer and
a  friendship  about  user bases, file formats, archives and network connects.
DayDreamer wondered if the past  and  future  could  blend  into  the  present
without  constant  strife.  A  merging  took place and DreamScape and StarBase
resided in the same time and space. The Dream Wizard and the StarBase  Admiral
signed an agreement to co-exist, bonding the past to the future.

     Then another evolution took place. DreamScape had fullfilled DayDreamer's
every expectation. The time for change was at hand.  With  a  few  keystrokes,
DreamScape  ceased  to exist in this reality. DayDreamer made a permanent move
to StarBase, becoming the Admiral's  right-hand  "man."  The  random  ways  of
DreamScape  were not the ways of StarBase. Choas was not the order of the day,
but singularity of purpose. DayDreamer  sent  a  message  to  the  wise  Texas
Wizard,  title  to  DreamScape  was transferred to the Admiral, and DayDreamer
became the "Other One."

     Ah, for a moment we forgot that this was suppose  to  tell  the  tale  of
being a female sysop. Sysops have no gender, just a love of creation, a desire
to make new friends and assist others in becoming familiar with the keystrokes
required  to  navigate a message base. Being a sysop only requires a desire to
be up long hours searching out  the  reason  for  failure  when  new  code  is
incorporated  into  old,  the  reason  for  modem  connect  failures  and lost
messages, corrupted user bases, and file not found errors.

     Perhaps the motto of the sysop should be "be all you can be" and  nothing
more.


Wildfire, #1 @5857, tells about how it all started for him:

     I  originally started BBSing in 1987 on my Tandy 1000EX, with a 1200 baud
modem. I was fast at that point. 2400 bps was just introduced, but many people
I  knew still only had 300 bps. I was a member of a lot of WWIV BBSes. I liked
them. They were easy for new users to get used to and there  was  even  a  Mac
running  a  version  of  WWIV. Somebody actually took the time to port over (I
think a Pascal version) WWIV, and it was a cool BBS for us young'ns. I was all
of  15  and  was  really  getting  into  computers.  The  modem  was a natural
extension. I felt I could communicate better over the  modem  than  person  to
person, and I grew with the modem.

     I  dropped out of BBSing for almost a year. The Tandy died (don't tell my
dad but I left the window open behind it one night and it got rainded  on.  He
still  thinks  it  was a natural failure) and I was without computer. Dad then
went out looking for another computer as I was starting to sort of need one to
do reports on as my school was no longer accepting hand-written reports and we
didn't have a working typewriter. He  finally  decided  on  another  Tandy,  a
1000SL  this time. We bought the adapter board and put the 1200 bps modem back
in and I was back in business. Procomm + 1.1TD and I were good friends at  the
time.  When  2400 was becoming more and more prevalent, and most BBS users had
1200 bps modems, I wanted faster. So I wasted my $80  for  the  then  cheapest
2400,  and I was again a BBS speed demon/god. 9600 baud hadn't even been heard
of yet.

     I graduated high school on that Tandy 1000 and got a job at  Radio  Shack
when I started college. I got a lot of computer exposure there. I already knew
more than most of the RS employees about computers, so  it  was  just  natural
that  I  learned  more  about them. After about a year, I finally bought a new
computer. It was about 6 months  before  the  386SX  came  out,  so  the  only
affordable  power at the time was a 286. The company made me a deal: a 286, 10
MHz, 1 MB RAM, 1.44 MB floppy, 52 MB IDE hard drive, 101-enhanced  KB,  and  a
VGA  monitor.  I  put my modem in there, still had that copy of PC+TD, and was
full force into BBSing again.

     About 2 years ago, probably a little more, I got my own phone line. Don't
know  why.  I think it was really so I could BBS without dad bugging me to get
off the line. The  phone  line  was  horrible.  After  complaining,  rewiring,
complaining  again  and getting them to fix the problems, I finally could call
out without a screen full of line noise.

     Two of my friends then decided to set up a BBS on  my  computer.  I  kept
telling  them  not to, I didn't want to run a BBS. I didn't want to, really, I
didn't. They set up a copy of WWIV 4.12 and between the two of them,  it  took
all  of  about  a  half-hour.  Full  BBS with file directories, message bases,
g-files, and a game (we were all very good DOS users at the time, stuff wasn't
hard  for  us).  I  finally  sat  down  and made a couple of ANSI logon/logoff
screens, and made the new user message, the system  message,  etc.  Since  the
thing was set up mostly, why not finish it?

     I  opened  part time in around April of 1992, 9:00 AM until 12:00 AM, and
ran that way for about 6 months.  Then  I  went  24  hours,  swearing  that  I
wouldn't  join a network since I didn't want to run a BBS to start with. Well,
needless to say, here I am. The BBS  takes  up  as  much  of  my  life  as  my
ex-girlfriend did. It's scary...


Benny Hill #1 @7400

     I  started  sometime in August, 1968, in the Big Apple. There, my parents
decided they wanted to have a child.... Wait, you only want how I got  started
into BBSing? Oh, Sorry...

     I started calling bulletin boards on one of my old best friend's computer
in 1988. His name was Kevin Camardelle from New Orleans. His  computer  was  a
Timex Sinclair 2068 (no, not a Timex 1000 doorstop). At times, I would go over
to his house and call a bulletin board or two  because  I  thought  they  were
"neat." The system he had consisted of only a TS 2068 computer and a Westridge
300 baud modem, which was slow at the time, and real slow  now  that  I  think
about it!

     The  first  BBS  I  called was named LA Medsig, which was a RBBS Bulletin
Board in New Orleans. The first WWIV bulletin board I ever called was a system
run  by  Josh  Aasgaurd in New Orleans called, at the time, Freedom's Gate. On
that BBS, I learned about BBS etiquette by observing things I saw from several
of  the  board's  more respected users, such as Taliesin, Quadrangle, Morgana,
Shadowspawn, The Police, Redwitch, Todd VomiT, and Elizabeth Shaw.  I  watched
and tried my best to blend in with the ways of BBSing, as any newbie would do.
Eventually I got the hang of it. I was definitely hooked on BBSing!

     In June of 1988, I called Madman's BBS, The  Funny  Farm  BBS  (still  in
operation  today,  WWIVnet  @5401,  WWIVLink @15401 - WWIV Source Distribution
Site). At that time, he had just put up his BBS and I was his 6th user. Madman
was  just  getting his board started and I really enjoyed calling his BBS. One
day, Madman decided to take advantage of one of WWIV's features  by  assigning
subops  to some of his sub-boards. At that time, his assistant sysop was a man
who went by the handle of Goata. I had volunteered to become a  subop  of  the
"Opinions" sub-board, and someone by the handle of Stalker became the subop of
the "War" board. Well, I spent a lot of time on The  Funny  Farm.  Eventually,
something  or another happened with Goata and Madman decided he needed another
cosysop, and for some reason he selected me.

     As a cosysop, I spent time trying to learn all the features of WWIV, as I
did  enjoy  the  software  and preferred it over any other BBS programs that I
saw. I became fairly familiar with the software through experimenting with the
commands,  DOS,  etc. The trick was, I did not have an IBM-compatible, but one
of Kevin's Timex Sinclair 2068s and 300 baud modem! No previous DOS experience
whatsoever! WWIV was easy to learn as the menus were easy to go through.

     We  ran  WWIV  v4.01  at  the  time (a -long- time ago). At one point, we
decided to drop down to WWIV v3.21d because we wanted to install games on  the
system  that  we  could not with 4.01, as not many were available at the time.
Things ran smoothly for the Farm; more users, more activity on the system, all
was going well.

     Sometime  around  October of '88, I learned about WWIVnet. WWIVnet at the
time probably only had 150 systems in it, if that many. The System Operator of
The Ravenloft BBS, who was Count Strahd Von Zarovich, brought WWIVnet into New
Orleans as WWIVnet @5400. I was fascinated with the networking concept: that I
could  actually  send  e-mail to someone in California from my own computer. I
spent a lot of time trying to convince  other  sysops  in  the  area  to  join
WWIVnet.  Madman  was  the  first  I was able to convince and he joined as the
original WWIVnet @5401. Of course, Madman had to upgrade to WWIV v4.05 to join
as v3.21d was not compatible. Kevin Caparotta (Piano Man) joined soon after as
node @5402, I got Freedom's Gate on the  net  as  @5403,  and  things  started
rolling  along.  By  this time, I had 255 access on most of the WWIV boards in
New Orleans and was always willing to help anyone out if I could.

     Eventually, with the help of Madman, I got an IBM XT-Turbo machine with a
huge 20 MB hard drive (well, back then, it was a good size). With the machine,
I inherited a 1200 baud modem.  A  big  jump  over  300  baud.  Of  course,  I
downloaded  a  copy  of  WWIV and put it on my machine and tried to figure out
more things about the software. In February of 1989, I got my first 2400  baud
modem through help of Foxx of The Foxxhole BBS (1@4907 WWIVnet currently).

     During the summer of 1989, I spent time trying to help promote the use of
the WWIV software. During that time, the original  WWIV  Support  Network  was
created  with  5  systems,  including  Mr Bill of Mr Bill's Abode, Filo of The
Dragon's Den, a guy from Massachusetts, Eric Golden of Farpoint  Station,  and
Doug  Fields of The Galactic Empire. The support network was growing a bit and
I tried my best and got The Funny Farm (original) into it. We  registered  the
WWIV software at this point (June of 1989).

     In  September  1989, I moved from New Orleans to Charlotte, NC. There was
not a single WWIV BBS in the 704 area code and not a single alias BBS  in  the
city  whatsoever.  I  decided  to put up my own BBS and decided to call it The
Funny Farm (East Wing). When my board was put up on October  10th,  1989,  its
sole  purpose  was  for  the  support of the WWIV software. It was my aim as a
sysop to promote the use of the software. In time, I had one  of  the  largest
collections  of WWIV compatible games, files and utilities available anywhere!
I joined WWIVnet as node @7400 and 704 area coordinator. In this area code, we
jumped  from  one  WWIV  BBS  to, at one time, over 30 of us! All but one were
alias-based boards.

     In time, Wayne Bell appointed me to coordinate the WWIV Support  Network.
The  first thing I did as support board coordinator was limit my own power, if
it ever even existed. I made it where any system being added  would  be  voted
upon  by the membership of the area, not any decision made by just one person.
Through trial and error, I think we currently have one of the best systems  of
adding  support  systems as needed. While not perfect, it is the best solution
we have come up with so far; To be fair to one and all who  submit  a  support
application.

     I  also  remember one of the biggest events that ever hit the WWIV world.
It was in late 1990. There was some dissatisfaction of what was  going  on  in
WWIVnet. At that time, there were no group coordinators; only ACs and Wayne as
the NC. I attended a sysop meeting in Richmond, VA. There, I met John Hardman,
John  Wash,  Tarkender  Evenstar,  Lord  Samos, ->DOC<-, Deanna, Moribound The
Burgermiester (MTB of The Vaporboard), Kent 1@9955, and several other  sysops.
It was at that meeting that the separation of WWIVnet was put into full force,
the meeting in which WWIVLink was born. On Feb 27th of 1991, WWIVLink was made
a  reality when all of the systems which were to be WWIVLink boards instead of
WWIVnet boards were cut out of WWIVnet.

     I created a modification for my board at the time (WWIV  v4.10  I  think)
which  allowed  me to be on both networks at the same time. I do believe I was
the first ever multi-network BBS  for  a  WWIV-type  network.  I  remained  on
WWIVnet  and  was  also a charter member of WWIVLink. I did this by allowing a
command to "jump" to the other network (a different BBS.EXE entirely).  I  had
tweaked  the code so it would make automatic callouts to both networks through
batch files  and  everything  was  in  full  gear  then.  Unfortunately,  some
circumstances  developed  and I could not duplicate what I did to that code to
do multi-network and I dropped out of WWIVLink.

     Since 1991, I have served as the WWIVnet Group 6 Coordinator. I  am  also
the coordinator of the WWIV Support Network. My aim still remains the same: to
promote the use of the WWIV software. My BBS is an official support board, and
one  of the original Source Distribution Sites. Since my board went up, I have
received close to 45,000 calls to the system, I have over 1000 users, and have
received  calls  from many parts of the globe including Canada, Japan, Mexico,
Portugal, England, Spain, and Australia.

     If you wish to call my system, feel free to do so!  The  system  runs  24
hours  a  day,  7  days a week. We are now at 14.4k v.32bis using a USRobotics
Dual Standard modem. The software as of this writing is WWIV v4.24 beta 1.  We
have auto-sysop validation so you can download WWIV-related files on the first
call. We have about 65 MB worth of WWIV-related downloads available.  We  also
serve  as  a Source Distribution Site authorized by Wayne Bell. If you wish to
be able to download the source from here, give the board a call, and read  the
instructions in the g-files section #1, "System Bulletins." No upload/download
ratios for WWIV sysops!

         ------------------------------------------------------------

     Well, there. We found out that Daydreamer doesn't seem to live within our
Universe, Wildfire is a weird person, and Benny Hill is a card-carrying wacko!
But then, you could say any of that about any BBSers in existance.  Myself,  I
live on the 61st planet or Sirus in the year 6547. :-) Ha ha.

    I hope you liked this.

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ Silly Strings - From IceNET Sysops Everywhere ³ Ima Moron (1@9661)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     For  the  June issue of the Journal,  I've decided to include two partial
tagline collections submitted by Mike Hunt and Michael Siegle. Below that I've
included some humor submitted by Diamond #1 @3956.


 Taglines from Mike Hunt #510 @1

   "Apple" (c) Copyright 1767, Sir Isaac Newton.

   And God said: E = «mvż - Zeż/r, and there was light!

   On a clear disk you can seek forever

   THE ROAD TO SUCCESS IS ALWAYS UNDER CONSTRUCTION.

   The floggings will continue until morale improves.

   I know a good tag line when I steal one.


 Taglines from Michael Siegle #1 @8654

   Drop your carrier...we've got you surrounded.

   RAM= Rarely Adequate Memory.

   Mary had a little RAM -- only about a MEG or so.


OK, here's some humor for ya. (not original) By Diamond #1 @3956

   How do you tell the difference between a used car salesman and a computer
   salesman?

   The used car salesman knows he's lying... and knows how to drive.

    ÄÄĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶÄÄ

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ Word Search Puzzle Answer ³ Louhal (1@10)
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

                                 . . . T N O F . . . . . . . . . . . . . . . S
            COMPUTER             D . T U P T U O . . . . . . . . . . . . . . T
                                 . L . . . . T U P N I . . . . . . . . . . . I
                                 . . E . E . . . . . . R O T C E S . . . . . B
 ANALOG          JOY STICK       . . . I . G . C A N A L O G . . . . . . P . .
 ARRAY           KEYBOARD        . . T . F K A . I . . . . . . . . . . R . . .
 BASIC           LANGUAGE        . . . R . . C U . S . E S U O M . . I . . . .
 BITS            MEMORY          . . . . O . . I G . A . . . . . . N . . C . .
 BYTES           MODEM           . . . . . P . . T N . B . A . . T . . O . . .
 COMPUTER        MONITOR         . R V . . . . . . S A . . R . E . . M . . . .
 DATA            MOUSE           S O A . . . . . . . . L . R R . . P . . D . .
 DISKETTE        OUTPUT          P T R . . . . . . . . Y . A . . U . . . R . .
 DRIVE           PORT            R I I . . . . . . . . . O Y . T . . . . A . .
 FIELD           PRINTER         E N A . . . . . . . . . M J E . F . . . O . .
 FILES           PROGRAM         A O B D I S K E T T E A . R . . O F . . B . .
 FONT            SECTOR          D M L . . . . . . . R G . . . . R I . . Y . R
 FORMATE         SPREADSHEET     S . E . S E T Y B G N . . . . . M L . . E E .
 HACKER          STRING          H . S . . . . . O I . . . . . . A E . . K . .
 INPUT           VARIABLES       E . . . . . . R R . . M O D E M T S . C . . .
                                 E . . . . . P T . . . . D R I V E . A . . . .
                                 T . . . . . S M E M O R Y . . . . H . . . . .
                                 . . . . . . . . . . A T A D . . . . . . . . .
                            

  ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
  ³ IceNEWS is an independent newsletter published monthly as a service to ³
  ³ IceNET, its sysops and users.  The opinions & reviews expressed herein ³
  ³ are the expressed views of the respective writers. All Rights Reserved.³
  ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ
