[mod.mag.fidonet] FidoNET Newsletter, Volume 4, # 4

pozar@well.UUCP (01/28/87)

     Volume 4, Number  4                               26 January 1987
     +---------------------------------------------------------------+
     |                                                  _            |
     |                                                 /  \          |
     |                                                /|oo \         |
     |        - FidoNews -                           (_|  /_)        |
     |                                                _`@/_ \    _   |
     |        International                          |     | \   \\  |
     |     FidoNet Association                       | (*) |  \   )) |
     |         Newsletter               ______       |__U__| /  \//  |
     |                                 / FIDO \       _//|| _\   /   |
     |                                (________)     (_/(_|(____/    |
     |                                                     (jm)      |
     +---------------------------------------------------------------+
     Editor in Chief:                                   Thom Henderson
     Chief Procrastinator Emeritus:                       Tom Jennings

     FidoNews is the official newsletter of the International  FidoNet
     Association,  and is published weekly by SEAdog Leader, node 1/1.
     You  are  encouraged  to  submit  articles  for  publication   in
     FidoNews.  Article submission standards are contained in the file
     ARTSPEC.DOC,  available from  node  1/1.

     Copyright (C) 1987,  by the  International  FidoNet  Association.
     All  rights  reserved.  Duplication and/or distribution permitted
     for noncommercial purposes only.  For use in other circumstances,
     please contact IFNA.




                             Table of Contents

     1. ARTICLES
        The Logical Technologies VS. Hoard Feil Story
        The IBM View of the Universe
        Topical TechMail Files
        WARNING: System Crashed by User
     2. COLUMNS
        CRC Calculations
     3. NOTICES
        The Vote is In!
        The Interrupt Stack




     Fidonews                     Page 2                   26 Jan 1987


     =================================================================
                                 ARTICLES
     =================================================================

     Brian Walsh, 109/640

                                Howard Feil
                                     VS
                     Logical Technologies & Brian Walsh


         Recently I finally got the time to catch up on my reading  of
     Fidonews  and while reading Fidonews Volume 3 Number 45 I noticed
     an article written by a teenage boy by the name of  Howard  Feil.
     After  reading  the  article I was not the happiest person in the
     world.I was also extremely surprised to see it because this child
     was  logged by my sysop log,  AT&T,  & My local telephone Company
     (C&P telephone) to have been the person  who  was  attempting  to
     "crash"  my Bulletin Board System.  My attorney swiftly contacted
     his parents regarding the severity of his actions and was offered
     a notarized letter stating that his actions against myself  &  my
     company   (Logical  Technologies)  would  cease  immediately.   I
     accepted this and dropped all charges and informed  AT&T  that  I
     would  not prosecute in this matter.  After receiving his parents
     letter I noticed that I was being Bothered no  more  and  assumed
     that  the matter was over.  I now know I was incorrect.  I'm sure
     that all of you  are  wondering  what  REALLY  went  on  in  that
     situation  that  Howard  told  in Fidonews so I will now tell the
     WHOLE Story.  Incidentally please keep in mind that I WILL supply
     ANYONE who submits a requests with the written  evidence  proving
     that  what  I am about to write on these electronically generated
     pages is the complete truthful story.

          On May 19th,  1986 I was Hired to the  position  of  Service
     manager to ComputerLand of Howard County in Columbia,  MD.  While
     under there employ in early August I submitted a request to "set-
     up" a computer operated Bulletin  Board  System  (BBS)  operating
     under the fido-net BBS software and to be linked int the Fido-net
     electronic mail system in Net 109.  My request was approved and I
     did so and received the "node number" of 109/640.  I then noticed
     that  the  BBS  was  lacking  information  that was available for
     download and knew that the company would not approve  my  calling
     other  BBSs  while  on  company time and my wife wouldn't like my
     spending our money to get the information for my  employer  so  I
     submitted a request to run a contest in which the first person to
     submit 100 different NON-Copyrighted files would receive a Hayes-
     Compatible internal Hayes Compatible Modem. That request was also
     approved  with  the  Condition that the contest was held with the
     knowledge that Brian Walsh was running the contest and that  only
     He  was  liable for it.  They also stated that I would be able to
     purchase the modem at ComputerLand's  Cost  for  the  contest.  I
     accepted  those  terms  and  proceeded  to  "set-up"  the contest
     information and did supply the information that I was running  it
     and  NOT ComputerLand.  At that point the contest started to take
     off and I was receiving many good files and Howard Feil  (Howard)
     was  in  second  place  when the problem occurred.  First the BBS
     Fidonews                     Page 3                   26 Jan 1987


     system crashed & I lost everything ( the store would  supply  the
     software  to operate the Tape back-up installed in the machine ).
     I reconstructed as much as I could and had also  kept  a  written
     tally  of the contest so I still knew the status of that.  I then
     found out that the company had entered Chapter 11 and I submitted
     my resignation,  two weeks notice and a letter stating that I was
     removing  the BBS from operation when I left because there was no
     one working there at that point except for myself.  I then placed
     a notice on the BBS stating that The system would not be run from
     ComputerLand  in  2 weeks but from my home and after the move the
     contest would continue.  All went well with the move and  My  net
     Coordinator,  Kurt  Reisler,  was very understanding and made the
     change in the nodelist VERY Quickly.  Then I resumed the  contest
     and it wasn't going very quickly when within one saturday evening
     from  11:30pm to 3:00am the next morning I received 47 files from
     Howard putting his tally at 107 and placed notice to  the  public
     on  the  BBS  and  to  him personally.  I know now what I did was
     premature. While waiting for Howard to log on and see what he had
     won I started my own Computer company Logical Technologies. After
     He had seen the message and called me by voice and ask if he  was
     really  the  winner and I stated to him,  "You are the winner and
     will be receiving the prize as soon as the files can be  verified
     to  be  valid  under the rules of the contest." He then said that
     that was fine  and  would  be  awaiting  me  to  contact  him  to
     "formerly" announce him as the winner.  I then check the file and
     found them to be in reality approximately 15 different file  that
     where  not  Copyrighted,  a  pirated copy of SideTalk ( a Memory-
     resident telecommunications  package  from  Lattice)  and  a  few
     trojan  programs.  The rest were duplicates of the original files
     with different file names.  I then notified him  of  this  in  an
     online  chat  and he replied with,  "...well I think you'd BETTER
     give my the modem if you want users and a BBS...." I then set his
     user level to twit and attempted to continue with the contest but
     the interest had died off.  I later noticed many users that would
     call once and leave a message like "This BBS eats S**T" and so on
     and  strange  enough  the user always had a users name of "Howard
     Feil." with the rest being some numeric amount.  I  twitted  each
     user  and after the third user like that I contacted AT&T and C &
     P telephone to ask them to put a "Call Log" on my BBS line.  they
     did  and  then  I noticed that both the users that were using the
     name of "Howard Feil."...  and the new person attempting to crash
     the BBS using the bugs that were in versions prior to 11w (thanks
     Tom)  were  all  calling  from the same telephone number and that
     number was registered to be located in the dwelling where  Howard
     Feil resided.  I then contacted my Attorney and he acted swiftly.
     I then was contacted with Howard's parents request  to  submit  a
     letter stating that they would guarantee that these actions would
     cease.  I  accepted  the offer while thinking of the thing that I
     did at his age and knowing the horrors of  being  "just  a  kid".
     Then  All  ceased  for  a  bit  and then I noticed the article in
     fidonews that prompted my present actions including this article.

        I am now informing AT&T,  C&P telephone and my attorney the  I
     want  this  child to "learn a very hard lesson" from his actions.
     The charge I am bringing up at present are  Slander,Slander  with
     intent  to  harm,  harassment,  &  loss  of business.  AT&T & C&P
     Fidonews                     Page 4                   26 Jan 1987


     telephone,  to the best of my knowledge,  are charging  him  with
     Toll  Freud  and  using  Federal  Communication lines to commit a
     crime.  Please note that I do not enjoy nor make a habit of doing
     this and hope that this article will at least  clear  my  and  My
     companies name with you the readers of Fidonews. Thanks You.


     Sincerely,
     Brian Walsh Jr.
     President, Logical Technologies
     Sysop, Fido 109/640

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

     Fidonews                     Page 5                   26 Jan 1987


                        The IBM View of the Universe


          In the beginning,  there was  chaos  and  the  Universe  was
     without  form  and  void.  The  Lord  looked  upon His domain and
     decided to declare His presence.  "I be" he said, then to correct
     his grammar added "am."

          If   the   Lord  had  decided  to  work  on  irregular  verb
     conjugation first,  this wouldn't have happened.  God would later
     curse  the English language for its part,  but in that moment IBM
     came into being.

          The Lord looked out upon the IBM He  had  created  and  said
     "This  is  good."  That's  what  He said,  but He shook his head,
     wondered what the boys at the User Group  would  say,  split  the
     light  from  the dark and went to bed.  Thus passed the Beginning
     and the end of the first day.

          On the second day,  the Lord summoned IBM unto His presence.
     "There  is chaos out there,  and the Universe is without form and
     void.  I must correct this and I can  use  your  help.  Is  there
     anything you can do for me?"

          "I can take care of form," IBM replied. "Put me in charge of
     computers and I will take care of form for you."

          The  Lord  thought that this was good and said "Let there be
     computers.  Let IBM have my powers of creation  that  pertain  to
     computers and form." Thus saying, the Lord went off to His second
     day's work while IBM created the 1401.

          On  the  third day,  while the Lord was out,  IBM decided to
     subdivide the assgined task.  "Let there be systems that make the
     computer  work  and  let  them  be called Operating Systems.  Let
     there also be systems that make use of the computer and let  them
     be called Application Systems." Thus,  there came into being both
     Operating Systems and Application Systems, but there were no pro-
     grammers.

          The next morning IBM had to give the Lord a status report.

          "What did you do yesterday?" the Lord asked.

          "I invented the operating system" IBM replied.

          "You did?" the Lord shuddered. "Oh dear."

          "Yes I did," IBM confirmed, "but I find I need something you
     alone can provide."

          "And what is that?"

          "I need programmers to  use  my  computers,  to  operate  my
     operation system and to apply my applications."

     Fidonews                     Page 6                   26 Jan 1987


          "That  can't be done now," said the Lord.  "This is only the
     fourth day and there won't be people until the sixth day."

          "I need programmers and I need them now.  If they  can't  be
     people they can't be people, but we have to work this out today."

          "Give  me  some  specifications and I'll see what I can do."
     IBM hastily worked up  specs  for  programmers  (are  specs  ever
     anything other than hasty) and the Lord reviewed them.

          The Lord knew the specs weren't sufficient but followed them
     anyway.  He  also  made  some  programmers  that  did  just  what
     programmers  were  supposed  to  do,  just  to  spite  IBM.   The
     programmers  and  IBM  spent  the  rest  of  the day creating the
     Assembler and FORTRAN.  On the morning of the fifth day,  IBM re-
     ported to the Lord once again.

          "The  programmers  you  created for me have a problem.  They
     want a programming language that is easy to use  and  similar  to
     English.  I  told  them  you  had cursed English,  though I still
     don't know why.  They wanted me to ask your indulgence on this."

          The Lord had cursed English for good reason, but didn't want
     to explain this to IBM. He said "let there be COBOL" and that was
     that.

          On the status report of the  next  day  IBM  announced  that
     computers  had  gone  forth  and multiplied.  Unfortunately,  the
     computers still weren't big enough or fast enough to do what  the
     programmers  wanted.  The  Lord  liked  the  idea  of going forth
     multiplying,  and used the line Himself later on that  day.  This
     sixth day being particularly busy, He declared "Let there be MVS"
     and there was MVS.

          On  the  seventh day God had finished creation and computers
     had COBOL and MVS.  The Lord and IBM  took  the  day  off  to  go
     fishing.  IBM  hung a sign on the door to help programmers in his
     absence.

          IF AT FIRST YOU DON'T SUCCEED, TRY, TRY AGAIN - AND HAVE THE
          FOLLOWING READY BEFORE CALLING IBM.

          On the start of the second week the  programmers  went  over
     IBM's cathode ray tube directly to God.

          "We  have  a horrible problem," they complained.  "Our users
     want systems that perform according to their expectations."

          "USERS!" the Lord bellowed.  "Who said that you should  have
     users!   Users   are   the   difference   between  good  and  bad
     applications,  a  function  I  have  reserved  unto  myself!  Who
     authorized you to have users?"

          "Well, IBM..."

          "IBM!!  You!!  You did this to my programmers! You gave them
     Fidonews                     Page 7                   26 Jan 1987


     the knowledge of good and evil. For that you shall suffer through
     eternity!

          "Let  there  be  competition.  Let it be called Anacom,  and
     Burroughs, and CDC."

          The Lord went through the alphabet several times.  "With all
     this  competition  you  shall  still suffer the pain of antitrust
     legislation all the days of your existence."


          This was the start of the  second  week,  and  it  seems  an
     appropriate  place  to  conclude  our report.  In case you missed
     something, a summary of key points follows:

     1. Users and their needs are and always have been  a  subject  of
        dispute.  Nobody  can  learn  English  because it is cursed by
        God. IBM manuals are doubly cursed and therefore twice as hard
        to understand.  Of the programming languages,  only COBOL  can
        claim  divine origin.  People are people,  but programmers are
        something else.

     2. Computers may be a gift from heaven,  but  there's  no  divine
        help  in  getting  them  to  work.  Because  of  IBM's initial
        assignment,  there are more forms than anyone knows what to do
        with.  Finally,  chaos  was  part of the original state of the
        Universe and not a product of the data processing industry.

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

     Fidonews                     Page 8                   26 Jan 1987


     Ken McVay, 340/20

                   Topical EchoMail Files in ASCII Format

     Many  users have found themselves frustrated when trying to  keep
     up  with  the  message  base in some  of  the  large  continental
     echomail conferences.  With incoming mail increasing that message
     base at the rate of perhaps 75-100 messages per day, seven days a
     week, it takes real dedication of wade through them!

     TECH, one of the popular "continentals," is a case in point. When
     I joined the conference,  I quickly discovered that no matter how
     long  the  users spent reading the  mail,  they  invariably  fell
     behind.  Quite often,  if they missed a span of several days, and
     then  checked  again,  they discovered that RENUM had been  there
     first  and  clobbered half the mail.  Running RENUM on  a  weekly
     basis  was a mandatory chore for me,  as storage  space  demanded
     that the message base be maintained at under 1MByte.

     Another  common  problem  was  that TECH  contained  hundreds  of
     messages  that were of little or no interest to  my  users.  They
     were,  for  instance,  concerned with hard drive and  DOS-related
     issues,   and  cared  little  for  80386  vrs.   80286  technical
     discussions,  or the infamous AMIGA vrs. VAX wars...at first they
     tried  using the "Inquire" option,  but quickly learned that  not
     only could it not find all the topics they were looking for,  but
     that  it  also  took a great deal of time searching  through  the
     mail.

     When a question related to the DOS PATH command generated  dozens
     (they are STILL coming it,  6 weeks later!) of replies, I decided
     to  port them into a text file so users interested  in  improving
     their knowledge of DOS could find all the mail in one place.

     Thanks  to  Rick  Duff,  the SysOp of the  Zanzibar  Hotel  (Fido
     340/11)  in  Victoria,  B.C.,  who provided me with a  delightful
     utility (PRINTMSG.COM) for converting FidoMail to ASCII format, I
     found  it  easy  to convert the  DOS  messages,  sort  them  into
     chronological  order,  and group them into a text file.  I  could
     then edit the text file,  delete all the SEEN-BY lines,  etc.  to
     reduce  storage space,  and tuck the resulting files into my  DOS
     file  area,  where they could be downloaded or read with the TYPE
     command.

     To make a long tale less so:  There are now several topical  text
     archives  available  on my system (some of the un-arc'd ones  are
     listed below),  and more are added as the need arises.  The  file
     names  indicate which month's messages are within the  file,  and
     the  nature of the topic.  Some of these files have grown to over
     70K in the course of a month, while others remain quite small. In
     particular,  both the fixed drive and DOS archives have grown  to
     the point where they are now mini-encyclopaedias.

     My  system is a semi-private one,  and I have created a "generic"
     user  to eliminate access delays which often run-up log  distance
     rates.  Those of you who are interested in obtaining these  files
     Fidonews                     Page 9                   26 Jan 1987


     should  log  on as TECH USER,  password TECH.  The  archives  are
     stored in file area 16.

     3861286  MSG        80386/P-DOS
     AUTOCAD  MSG        CAD/CAM
     COMM1186.MSG        COMMUNICATIONS
     DOS0187  MSG        MS-DOS
     DPUB0187 MSG        DESKTOP PUBLISHING/LASER PRINTERS
     FIRM1286 MSG        GRAPHICS AND MISC. FIRMWARE
     HD1186   MSG        FIXED DRIVES
     LANTECH  MSG        LANS
     MULT1286 MSG        MULTITASKING
     PRNT0187 MSG        PRINTERS
     SEADOG   MSG        SEADOG
     TANDY    MSG        TANDY 1000PC
     V20TECH  MSG        NEC V-20 CPU

     I will be happy to transfer any or all of these files to diskette
     for  anyone who wants them - the archives presently total 2.25MB,
     so you'll need about 7 diskettes to be sure of getting them  all.
     Please include a decent mailer and return postage - the diskettes
     will be returned to you the same day they arrive here.

     Ken McVay, 1B Systems Management
     1602B Northfield Road, Nanaimo, British Columbia, CANADA V9S 3A7
     (VOICE) 604-758-4137       (FIDO) 604-758-4137 (1200 Baud)

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

     Fidonews                     Page 10                  26 Jan 1987


     Sysop, 11/301

                                  WARNING
                           System Crashed by User

     I am the system operator of Fido 11/301.  The following  sequence
     of event occured on January 14, 1987, beginning at 13:30.  A Dave
     Maxwell logged on,  for the first time, according to the log.  He
     made two attempts to download USER.BBS.  The log shows  ERROR  on
     both  attempts.  He  was  on for 10 minutes and used the password
     ANA.  City and State were Asdf Saf.  He was on  for  10  minutes.
     At  13:42 SYSOP successfully logged on.  SYSOP is me,  of course.
     No,  I did not  do  the  logging  on.  Someone  had  acquired  my
     password.  The  user attempted to download *.dog,  after changing
     the file designation for an area to the fido root  directory.  He
     apparently  had a problem and was on for only 5 minutes.  Whoever
     this was came on again at 13:48,  again as  SYSOP,  and  uploaded
     ARC.COM to my net mail area.  (ARC is an EXE,  I think).  Anyway,
     he then exited to DOS and  started  to  build  and  ARC  file  of
     somesort  in  the root directory.  I entered the room and saw the
     constant disk activity and  switched  to  the  bbs  partition  of
     DoubleDos.  You  can  imagine  my  astonishment  to  see WatchDog
     activated.  I then booted the system immediately.  The end result
     was some problem with cross linked files,  possibly caused by the
     intruders  actions,  possibly  not.  The  bottom  line  is  this.
     Someone obtained user.bbs.  Someone exited to Dos, someone messed
     up some files.  I have since removed the exit to DOS switch  from
     runbbs.

     Take  this  as  you  will.  I  am  making  no accusations against
     anyone, just repeating what appeared in SYSOP.LOG and what CHKDSK
     revealed.

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

     Fidonews                     Page 11                  26 Jan 1987


     =================================================================
                                  COLUMNS
     =================================================================

     Orv Stoll, 103/531

                        Sixteen Bit CRC Calculations


          Cyclic Redundancy Check or CRC is  one  of  the  best  error
     detection methods available. It is used primarily for serial data
     transfers  such  as  disk,  tape,  and error free serial transfer
     protocols.  Concentrating on uses found in bulletin boards, CRC's
     are  used  to detect errors in 8 bit data streams such as XMODEM,
     KERMIT,  and 8 bit data files that are commonly transferred which
     could  use  extra error detection,  namely those found in the ARC
     program.

          There are two common types of CRC calculations used  with  8
     bit  data  types.  XMODEM and KERMIT use what is called CRC-CCITT
     while ARC uses CRC-16.  The difference is the polynomial used  in
     generating  the check values.  In each of these two methods there
     are two different ways that data  can  be  fed  through  the  CRC
     generator.  The  classical  method which the CRC instructions and
     CRC hardware chips often use is to feed data from each byte least
     significant bit first.  This is due to the fact that serial  data
     is sent that way.

          The  CRC  process  is  defined  by polynomial division.  The
     message is seen as defining a polynomial.  As an example consider
     a single byte message 01100101, the polynomial this represents is
     x^6+x^5+x^2+1.  The  right  most  bit  is x^0 (or 1) and each bit
     left of this is powers 1,  2,  and  so  on.  Taking  a  128  byte
     message  such  as is found in an XMODEM block,  the polynomial it
     represents could have powers  as  high  as  x^1023.  The  message
     polynomial M(x) is divided by the CRC generating polynomial G(x).
     The CRC check sum is the remainder of the division of M(x) * x^16
     /  G(x).  The G(x) for the CCITT CRC is x^16+x^12+x^5+1 while the
     CRC-16 G(x) is x^16+x^15+x^3+1.  The idea is that by  adding  the
     remainder  to the original message the resultant message when run
     through the CRC generator will have  a  remainder  of  zero.  The
     reason  for  multiplying  the  message  by  x^16  is  so that the
     remainder (which will have an order of x^15  or  less)  will  not
     alter  the  data  bits  in  the message (multiplying M(x) by x^16
     simply adds 16 zero bits to the end of the  data).  Both  16  bit
     CRC's  have  a  generating polynomial with x^16 powers in them in
     order to yield a 16 bit remainder (CRC check) which can  be  sent
     as  exactly two bytes.  A G(x) with a power of x^24 would yield 3
     bytes and so on.  An example using a smaller CRC polynomial and a
     short message appears below.

          Take  a  6  bit  message  101101  which  would represent the
     polynomial x^5 + x^3 + x^2 + 1 and use the generating  polynomial
     x^4  +  x^3  + x.  The remainder will be at most a cubic equation
     which can be represented by a 4 bit  number.  The  total  message
     length  would  be  10  bits.  To  start the 6 bit message M(x) is
     Fidonews                     Page 12                  26 Jan 1987


     multiplied by x^4 to allow the remainder to be added to the 6 bit
     message without altering its' six bits.  The new polynomial to be
     divided would be:

         x^9 + x^7 + x^6 + x^4  reduced by g(x) * x^5 leaves
         -x^8 + x^7 + x^4       reduced by g(x) * -x^4 leaves
         2x^7 + x^5 + x^4       reduced by g(x)* 2x^3 leaves
         -2x^6 + x^5 - x^4      reduced by g(x)* -2x^2 leaves
         3x^5 - x^4 + 2x^3      reduced by g(x)* 3x leaves
         -4x^4 + 2x^3 -3x^2     reduced by g(x)* -4 leaves
         6x^3 - 3x^2 + 4x.

     In columnar form this division looks like:

                                     1 -1  2 -2  3 -4
         1  1  0  1  0 | 1  0  1  1  0  1  0  0  0  0
                         1  1  0  1  0
                           -1  1  0  0  1
                           -1 -1  0 -1  0
                               2  0  1  1  0
                               2  2  0  2  0
                                 -2  1 -1  0  0
                                 -2 -2  0 -2  0
                                     3 -1  2  0  0
                                     3  3  0  3  0
                                       -4  2 -3  0  0
                                       -4 -4  0 -4  0
                                           6 -3  4  0

     If this remainder is added to  the  original  message  polynomial
     then the remainder should be zero:

                                    1 -1  2 -2  3 -4
         1  1  0  1  0| 1  0  1  1  0  1 -6  3 -4  0
                        1  1  0  1  0
                          -1  1  0  0  1
                          -1 -1  0 -1  0
                              2  0  1  1 -6
                              2  2  0  2  0
                                -2  1 -1 -6  3
                                -2 -2  0 -2  0
                                    3 -1 -4  3 -4
                                    3  3  0  3  0
                                      -4 -4  0 -4  0
                                      -4 -4  0 -4  0
                                       0  0  0  0  0



     The  new message polynomial is x^9+x^7+x^6+x^4-6x^3+3x^2-4x which
     in binary is 101101???0.  The problem is how can multiples  of  a
     power  that  is  not  zero or one be represented by a single bit,
     they can't.  For CRC calculations the polynomial division  method
     is  redefined such that negative powers are made positive.  Since
     remainders in each step will be entirely positive,  the remainder
     in  the  next step will only have powers with multipliers 0 or 1.
     Fidonews                     Page 13                  26 Jan 1987


     The above problem in columnar form now looks like this:

                                    1  1  0  0  1  0
         1  1  0  1  0| 1  0  1  1  0  1  0  0  0  0
                        1  1  0  1  0
                           1  1  0  0  1
                           1  1  0  1  0
                                    1  1  0  0  0
                                    1  1  0  1  0
                                             1  0  0

     The remainder is simply x^2 which when added will result  in  the
     division:

                                    1  1  0  0  1  0
         1  1  0  1  0| 1  0  1  1  0  1  0  1  0  0
                        1  1  0  1  0
                           1  1  0  0  1 < note these results
                           1  1  0  1  0
                                    1  1  0  1  0 <
                                    1  1  0  1  0
                                          0  0  0  0

     The  result  of  each  subtraction  being  forced  to be positive
     results in a bit wise operation that is simply an exclusive or.


          In 8088 assembly language the CRC values can  be  calculated
     two  ways  depending  on whether the data is to be taken least or
     most significant bit first (for  each  byte).  XMODEM  takes  the
     most  significant  bit  while  KERMIT the least.  The methods are
     both called CRC-CCITT but yield different results  and  can't  be
     mixed.

     ;
     ; CRC-CCITT accumulator using most significant bit first
     ; crcval should be set to zero before the first call of this
     ; routine. AL is sent in having the next character to add
     ;
     crcadd     proc    near
                mov     bx,crcval
                mov     cx,8
     crclop:    shl     al,1
                shl     bx,1
                jnc     crcnxt
                eor     bx,1021h   ;or use 8005h for CRC-16
     crcnxt:    loop    crclop
                mov     crcval,bx
                ret
     crcadd     endp

     The  above  routine  could generate CRC-16 values by changing the
     eor instruction to:
                eor     bx,8005h

     To generate CRC values with the data shifted in LSBit  first  the
     Fidonews                     Page 14                  26 Jan 1987


     body of the routine would look like this:

     crcadd     proc    near
                mov     bx,crcval
                mov     cx,8
     crclop:    shr     al,1
                shr     bx,1
                jnc     crcnxt
                eor     8408h           ;for CRC-16 use A001h
     crcnxt:    loop    crclop
                mov     crcval,bx
                ret

     When  using each of the above routines for generating CRC values,
     two bytes of zeros must be fed through crcadd after  the  message
     is  sent  through  but  before  the  crcval  is  transmitted.  On
     reception the received CRC bytes should  be  run  through  crcadd
     after  which  crcval  will  be zero if there were no errors.  For
     example the message "THE" would be run through:

                mov     crcval,0
                mov     al,'T'
                call    send
                call    crcadd
                mov     al,'H'
                call    send
                call    crcadd
                mov     al,'E'
                call    send
                call    crcadd
                mov     al,0
                call    crcadd
                mov     al,0
                call    crcadd
                mov     al,crcval+1     ;send MSB first
                call    send
                mov     al,crcval       ;then LSB
                call    send


          With a slight change in the CRC  accumulator  "crcval"  will
     have  a value that includes two zero bytes.  This means that they
     would not have  to  be  added  at  the  end  to  finish  the  CRC
     calculation.


     crcadd     mov     cx,8
                mov     bx,crcval
     crclop:    shl     al,1
                jnc     nobit
                eor     bh,80h
     nobit:     shl     bx,1
                jnc     noeor
                eor     bx,1021h        ;or 8005h for CRC-16
     noeor:     loop    crclop
                mov     crcval,bx
     Fidonews                     Page 15                  26 Jan 1987


                ret


     When shifting data in LSBit:

     crcadd     mov     cx,8
                mov     bx,crcval
     crclop:    shr     al,1
                jnc     nobit
                eor     bl,1
                shr     bx,1
                jnc     noeor
                eor     bx,8408h        ;or a001 for CRC-16
     noeor:     loop    crclop
                mov     crcval,bx
                ret

     Although these methods automatically multiply the message by x^16
     the  loop  is  slower.  The message "THE" using the LSBit routine
     above would be sent:

                mov     al,'T'
                call    send
                call    crcadd
                mov     al,'H'
                call    send
                call    crcadd
                mov     al,'E'
                call    send
                call    crcadd
                mov     al,crcval       ;send LSB first
                call    send
                mov     al,crcval+1     ;then MSB
                call    send

     The receiver would receive it:

                mov     crcval,0
                call    receive
                call    crcadd
                call    receive
                call    crcadd
                call    receive
                call    crcadd
                call    receive
                call    crcadd
                call    receive
                call    crcadd
                cmp     crcval,0
                jnz     error

          CRC calculations are unusual in that they  are  more  easily
     done  in assembly than in any high level language (excepting ones
     with a CRC function).  The process of polynomial division,  which
     sounds like trouble, turns out to be a snap in assembly, in Basic
     though it is trouble.  MS Basic won't do "eor"s with anything but
     Fidonews                     Page 16                  26 Jan 1987


     integer values.  They can be in a floating point number but  must
     be  less  than  32768.  The  CRC  accumulator uses all bits in an
     integer so that the value often gets above 32767  where  the  EOR
     operator will give an overflow error.  To get around this the CRC
     accumulator needs to be split into two parts. The shift operation
     turns into a multiply by 2  operation.  Again  an  overflow  will
     result  if the top bit is remembered and then stripped before the
     multiply.  If you must code a CRC in Basic be prepared for a very
     slow  process.  The best way is to use the CALL statement and put
     the CRC calculator in assembly.  It isn't all that hard since the
     assembly portion needs no storage for itself. For XMODEM a verbal
     procedure would be:

     1. Set crcval to zero.
     2. For each byte in the block do eight times:
        1. Shift the bits of the byte left one position.
        2. Shift crcval left one position.
        3. If a bit is shifted left of bit 7 in step 2.1 add 1 to
           crcval
        4. If a bit is shifted left of bit 15 in step 2.2
           exclusive or crcval with 0001000000100001 or 1021H
     3. If transmitting the block:
        1. Repeat 2.1-2.4 with two zero bytes
        2. Send block, the upper 8 bits of crcval, then the lower
           eight bits of crcval.
     4. If receiving the block:
        1. crcval should now be zero if there were no errors.
        2. The last two bytes of the block should be discarded.

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

     Fidonews                     Page 17                  26 Jan 1987


     =================================================================
                                  NOTICES
     =================================================================

                              The Vote is In!

     We have not yet received the written report  from  the  CPA,  but
     we've  been told by phone that the results of the bylaws vote are
     as follows:

         Votes received:     148
         Votes in favor:     127
         Votes against:       16
         Votes disqualified:   5

     I am told that the  five  disqualified  votes  were  disqualified
     because  the  voters were not listed in node list #311,  but that
     all five were in favor of the proposed bylaws.

     In other words,  the bylaws were passed by almost eight  to  one.
     We extend our thanks to everyone who took the time out to express
     an opinion.

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

                          The Interrupt Stack


     17 May 1987
        Metro-Fire Fido's Second Birthday BlowOut and Floppy Disk
        Throwing Tournament!  All Fido Sysops and Families Invited!
        Contact Christopher Baker at 135/14 for more information.

     24 Aug 1989
        Voyager 2 passes Neptune.


     If you have something which you would like to see on this
     calendar, please send a message to FidoNet node 1/1.

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