837 lines
39 KiB
Plaintext
837 lines
39 KiB
Plaintext
![]() |
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.
|
|||
|
|
|||
|
-----------------------------------------------------------------
|
|||
|
|
|||
|
|