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.
|
||
|
||
-----------------------------------------------------------------
|
||
|
||
|