mirror of
https://github.com/opsxcq/mirror-textfiles.com.git
synced 2025-09-01 02:41:56 +02:00
1164 lines
56 KiB
Plaintext
1164 lines
56 KiB
Plaintext
ÛÛÛÛÚÄÄÄÄÄÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄ· ÚÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄÄÄÄÄÄ·ÛÛÛÛ
|
|
ÛÅÅų ÄÄÄÄÄ º³ ÄÄÄÄÄ º³ ÄÄÄÄÄ º³ ºÅ³ º³ ÄÄÄÄÄ º³ ÄÄÄÄÄ ºÅÅÅÛ
|
|
ÛÅÅÅÔ͸ Éͼ³ ÉÍÍÍͼ³ ÉÍÍÍͼ³ º\³ º³ ÉÍÍÍͼÔ͸ ÉͼÅÅÅÛ
|
|
ÛÅÅÅÅųþþþºÅųþþºÅÅÅÅųþþÓÄ·ÅÅųþþºþ³þþº³þþÓÄ·ÅÅÅÅųþþþºÅÅÅÅÅÛ
|
|
ÛÅÅÅÅų±±±ºÅų±±ºÅÅÅÅų±±ÉͼÅÅų±±º\³±±º³±±ÉͼÅÅÅÅų±±±ºÅÅÅÅÅÛ
|
|
ÛÅÅÅÚÄÙ ÓÄ·³ ÓÄÄÄÄ·³ ÓÄÄÄÄ·³ ºÅ³ º³ ÓÄÄÄÄ·Åų ºÅÅÅÅÅÛ
|
|
ÛÅÅųÛÛÛÛÛÛÛº³ÛÛÛÛÛÛÛº³ÛÛÛÛÛÛÛº³ÛۺųÛÛº³ÛÛÛÛÛÛÛºÅųÛÛÛºÅÅÅÅÅÛ
|
|
ÛÛÛÛÔÍÍÍÍÍÍͼÔÍÍÍÍÍÍͼÔÍÍÍÍÍÍͼÔÍͼ ÔÍͼÔÍÍÍÍÍÍͼ ÔÍÍͼÛÛÛÛÛÛ
|
|
N E T W O R K N E W S L E T T E R
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
³ June 1993 Volume Number 3 Issue Number 1 ³
|
|
ÀÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÙ
|
|
³ In This Month's Issue of IceNEWS ³
|
|
³ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ³
|
|
³ Editor's Notes by Special Agent .............. 1 @7672 ³
|
|
³ ³
|
|
³ Tidbits From 1@1 ............................. 1 @1 ³
|
|
³ ³
|
|
³ Features ³
|
|
³ The Art Of Debate - By Bro. Jack ............ 11 @7672 ³
|
|
³ The Learning's of a Teenage CoSysOp ......... 5 @7672 ³
|
|
³ Protecting WWiV - by The Deranged Alchemist . 1 @6855 ³
|
|
³ ³
|
|
³ Modders Corner ³
|
|
³ Mod Tip's by The Flying Chicken ............. 1 @2456 ³
|
|
³ Mod Of The Month ............................ ³
|
|
³ ³
|
|
³ Programers Corner ³
|
|
³ Quickbasic Tips by Tha AMPro ................ 7 @7660 ³
|
|
³ Turbo C++ Tips by Darkhan ................... 2 @7654 ³
|
|
³ ³
|
|
³ Feature BBS Of The Month ....................... @7672 ³
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ Editor's Notes ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|
|
New editor reporting for duty... First duty is thanking Jim
|
|
for entrusting me with the position. So here goes, thanks Jim. Second
|
|
duty is thanking Spelunker and The Fez for their efforts before me in
|
|
this position. They have left me with the unenviable position of trying to
|
|
match the quality of their work in the last two News Letters. Thanks
|
|
guys for a great News Letter....
|
|
|
|
We are going to incorporate some new features into the News Letter.
|
|
First off for the programmers out there, we have developed "The
|
|
Programmers Corner." This will contain programing tips each month on
|
|
Quick Basic, Turbo C++, and others. Another new feature which I am excited
|
|
about is "TFC's Mod Tips of the Month". The Flying Chicken will have us
|
|
flying through mods in no time. Right TFC????
|
|
|
|
Last month's interview with Jim went so well that this will
|
|
become a regular part of the News Letter "Tidbits From 1@1". If you have
|
|
any questions you would like to see Jim answer in the News Letter make sure
|
|
you E-Mail them to me [1@7672] and I will see to it that they are included.
|
|
|
|
Another new feature will be "IceNet's Feature BBS's of the Month".
|
|
We will be contacting IceNet SysOp's asking you to tell us about you and
|
|
your BBS, which will be featured in upcoming News Letters.
|
|
|
|
Look for these and more new features in future Ice Net Newsletters.
|
|
|
|
A great big thanks goes out to those who have taken time from their
|
|
busy schedules to contribute to this months INN.....
|
|
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ Tibit's From 1@1 ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|
|
SA. Well Jim since you have been beta testing Net33 for a while now you
|
|
probably have a good handle on its new abilities, how about sharing them
|
|
with us. What are the new features to Net33?
|
|
|
|
Jim. It's working flawlessly on Paragon, TGWN, and the 1120 Server. The areas
|
|
of change I've noticed include new netdat*.log infomation, subs.inf
|
|
information from the pings that's longer than the 40 character limit in
|
|
NET32, and routing information in the messages. This last part is rather
|
|
interesting, in that it's 'hidden' from view til you extract out the
|
|
message and list it. Each node along the route is listed with the time of
|
|
departure.
|
|
|
|
It's always possible that the final released version could be different
|
|
than the one I have. (Release date 9am Pacific, Saturday, June 5th)
|
|
|
|
Filo had the following remarks about NET33...
|
|
|
|
While on this subject, NET33 should be viewed as an "interim" release. It
|
|
is being released primarily so that the description field is not truncated
|
|
on the "pings." For those who find "ping" to be a new, unfamiliar word,
|
|
it refers to the process whereby @1's software interrogates your SUBS.XTR
|
|
file to find out which subs are designated as AUTO-INFO. Those subs are
|
|
then listed in the SUBS.LST (and accompanying files). It is by that
|
|
method that the SUBS.LST should be more current than it has been in the
|
|
past.
|
|
|
|
SA. Being IceNet 1@1 NC must strap you of much time, but on top of it you are
|
|
also the WWiVNet and WWiVLink AC, tell us how you pull this off with out
|
|
loosing your sanity?
|
|
|
|
Jim. With the GC's doing the updates, Odin doing the subs Lists, you doing INN
|
|
newsletter, and loads of other help I receive from Wayne, Filo, all the
|
|
AC's and sysops, even the users in IceNET...I don't have that much to do.
|
|
It helps being organized, and being fast. You learn as you practice the
|
|
art of NC'ship, and you get faster. BTW, what is this 'sanity' you refer
|
|
too?
|
|
|
|
SA. Oh sanity well, I will tell you the signs that it is lost. You know it is
|
|
lost when you start mysteriously having your forehead grow bigger and the
|
|
remaining hair turns grey. It is then time to get away. this leads me to
|
|
ask, are there any plans in the making for a national IceNet gathering?
|
|
|
|
Jim. Yes! WWIVcon, being organized by Filo, Madman, and a few others will
|
|
certainly be a good place for all IceNET sysops to meet. We could have a
|
|
session during the conference for IceNET sysops. It's next summer, in New
|
|
Orleans, so stay tuned, and plan on coming. Reservations are being taken
|
|
now.
|
|
|
|
WWIVcon '94
|
|
New Orleans
|
|
July 1 - July 3, 1994
|
|
|
|
|
|
Q: What is WWIVcon?
|
|
|
|
A: WWIVcon is a WWIV convention. The first one is to be held in New Orleans.
|
|
|
|
Q: Who may attend?
|
|
|
|
A: Anyone who is interested in WWIV may attend. Those who do not stay at the
|
|
convention hotel will be asked to register in advance and pay a conference
|
|
fee to cover costs like meals and so forth.
|
|
|
|
Q: Where will it be in New Orleans?
|
|
|
|
A: Comfort Inn
|
|
1315 Gravier Street.
|
|
New Orleans, La 70112
|
|
|
|
If you write for reservations, address it to ATTN: Reservations. If you
|
|
wish to call and reserve a room (on credit card or something),
|
|
|
|
The number to call to make your reservation is 800-535-9141. The Sales manager
|
|
handling this is Esther Holguin (pronounced Hole-Kwin). The first night's
|
|
lodging must be prepaid to guarantee your reservation. This is $55, plus 11%
|
|
Sales Tax (I told ya we had the highest in the nation!), plus a $2.00 per night
|
|
city occupancy tax. Ballparking, I'd guess that'd put it at about $62.50 (I
|
|
don't have a calculator handy) Have your Credit Card handy.
|
|
|
|
Q: What is the agenda for the convention?
|
|
|
|
A: The following activities are planned so far:
|
|
|
|
July 1 (Friday night) : Welcome Social at Hotel (7 - 9 pm roughly)
|
|
|
|
July 2 (Saturday day) : Seminars and speakers on various topics
|
|
|
|
July 2 (Saturday night): Awards banquet
|
|
|
|
July 3 (Sunday morning): Additional Seminars and send-off
|
|
|
|
Q: When can I make my reservations?
|
|
|
|
A: You can begin calling the hotel now (see information above) to reserve your
|
|
room. The earlier that you make your reservation, the easier that it is
|
|
for us to plan the event and you are assured of getting a room at the
|
|
hotel. (I hope that we can book all the rooms in the hotel by October or
|
|
so).
|
|
|
|
If we can get the hotel booked up as early as that, we can approach some
|
|
corporate sponsers (like Borland) to see if they will throw together some
|
|
freebies for us.
|
|
|
|
|
|
SA. IceNet is running 720 plus BBS's now. Do you forsee any problems with
|
|
maintaining speedy updates and such?
|
|
|
|
Jim. Not at all. The software and the sysops will see to that. I'm working on
|
|
some utilities now that will help provide a more precisely controlled
|
|
updating process, which will include monitoring total K sent in updates.
|
|
It's a balance between speed, and cost, that I try to optimize. I think
|
|
our organization structure gives us some advantages too, as compared to
|
|
other WWIV networks. We have the ability to move fast (decisions made at
|
|
the top when required), and at the same time, a small number of GC's
|
|
organized by time zones, so when change is necessary, it's easy for us to
|
|
all work as a team.
|
|
|
|
|
|
SA. Speaking of network connections, much discussion has taken place on the
|
|
rate of updates. Could you explain for all your policy and the reasoning
|
|
of it for the nightly updates?
|
|
|
|
Jim. Updates are not on a schedule by date or day of week. Rather, updates go
|
|
out as they are received. This way, updates are more frequent when the
|
|
need is greater, less frequent when things are slower. In total, there
|
|
are 14 files to update and send out, but all the bbslist.* files are
|
|
generally partial updates (as little as one new system in a group, or name
|
|
change). Total K sent out per week is about 60k as determined in a recent
|
|
study. The utilities I mentioned above will allow me to more closely
|
|
monitor this, and make decisions accordingly. Since the files go out as
|
|
received, the incoming queue is somewhat random, though your likely to see
|
|
at least one of the 14 files.
|
|
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
F E A T U R E A R T I C L E S
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ The Art Of Debate ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
Bro. Jack 11 @7672
|
|
|
|
It is a given that the BBS's are a forum for debate. And seeing that
|
|
there is no want for argument on any of the boards I presently frequent, it
|
|
would be a profitable thing to write an article on the art of debate.
|
|
|
|
As we all know there is much discussion on the subs on every issue under
|
|
the sun. But what is the reason for the debate? It becomes obvious that not
|
|
all of us have the same motivation. After many years of study in the art of
|
|
argument and the acts of the mind it is a simple thing to determine when one
|
|
is a sincere seeker of the truth of a matter or nothing more than a proud and
|
|
contentious person not interested in the truth of the matter at all. Opinion
|
|
should be developed according to the facts and logical argument, not according
|
|
to the emotional or immature mind set of a person who is not really interested
|
|
in making a change according to the truth of the matter.
|
|
|
|
Name calling and character assassination is nothing more than a show of
|
|
insecurity in the person displaying such tactics. So then, how much of the
|
|
arguments we have all followed and/or presented have actually been good
|
|
arguments at all? To treat our opponent in a manner which is respectful and
|
|
concerned with preserving one another's integrity should be the order of each
|
|
debate! There are war subs to vent your frustrations, which I do not bother
|
|
with. But the point is that there is a place for that pursuit.
|
|
|
|
It is obvious that it is a waste of time and accomplishing nothing when we
|
|
come to a debate or argument without the confidence that we are correct in our
|
|
ideas. But we also must be open to consider that we may be wrong, and not be
|
|
afraid of making the change if we are! It is not a shame to be wrong and
|
|
change... but it is a shame to be wrong and not be willing to consider that
|
|
possibility. We are all human beings with all the frailties and strengths,
|
|
the desires and drives, the curiosities and the fears common to our natures.
|
|
Mutual respect and an honest inquiry for the truth are the essentials of good
|
|
debate. Are we in the process of searching, or do we just want to prove our
|
|
point at the expense of the character, feelings and integrity of another?
|
|
|
|
No doubt it is enjoyable at times to sling mud around. Yet this is the
|
|
pass time of children, not those who have an influence on the opinions of a
|
|
nation. Yes, it is true! We are a means of informing the nation of the
|
|
general trend in public opinion. If the interpretation is correct, we have
|
|
an opinion that we are hateful and arrogant, with no tolerance for one
|
|
another. Whatever your point of view, it is necessary that we treat each
|
|
other with consideration. Let's show some real class and enter into debate
|
|
with a spirit of respect and mutual consideration.
|
|
|
|
Debate is an art. It is also a tool to ascertain the truth. If we are
|
|
too immature to handle disagreement in an intelligent manner, then our
|
|
favorite pass time of BBSing (at least it is for me) has degenerated into a
|
|
simple game instead of a meaningful medium of communication and inquiry.
|
|
|
|
A few general rules of debate may be in order here:
|
|
|
|
1. Be confident and intelligent in your argument
|
|
|
|
2. Answer all points brought up. Do not ignore that which you cannot
|
|
answer.
|
|
|
|
3. Don't be afraid to admit error. It takes an intelligent adult to
|
|
admit when they are wrong, not to mention truthfulness with one's self.
|
|
|
|
4. Consider what the other person is saying. They may be right.
|
|
|
|
5. Refrain from personal attacks and name calling. Immaturity and
|
|
insecurity are exposed when this snake rears its head.
|
|
|
|
6. If you don't know what your talking about in an area, don't make a
|
|
fool out of yourself unnecessarily. Even a fool is perceived as wise
|
|
when he keeps his mouth shut.
|
|
|
|
7. Be yourself and respect the person of your opponent.
|
|
|
|
8. When an agreement cannot be arrived at, consider the facts from the
|
|
beginning, search the logic in the arguments of both sides of the
|
|
issue at hand, and start over again. If this is done by ALL involved
|
|
it would be surprising how much would be accomplished here.
|
|
|
|
9. If an agreement still cannot be reached, dismiss the debate before you
|
|
get out of control. At least agree to disagree with some class.
|
|
|
|
10. Examine yourself and the concepts that lead you to the opinion you
|
|
hold in the first place. Again, could you imagine what it would be
|
|
like if we were all more concerned with the truth of the matter
|
|
instead of just proving ourselves right and the other guy wrong?
|
|
|
|
|
|
And above all..... KEEP ON POSTING!!!!!! We'll never get anything
|
|
accomplished if we give up. And besides..... who would I get to talk to if
|
|
you all gave up?
|
|
|
|
Bro. Jack 11 @7672
|
|
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ Protecting WWIV ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
by The Deranged Alchemist 1 @6855
|
|
|
|
I was first contacted about doing an article on protecting WWIV a few
|
|
months ago, but had to decline due to a lot of pressure at school and work.
|
|
I'm out of school now (temporarily) and was contacted again by Special Agent
|
|
to do an article.
|
|
|
|
First of all, I'd like to apologize in advance for any grammar or
|
|
spelling errors as I'm not much of a writer. My studies in college have been
|
|
in mainly scientific fields, and most writing I've done has been lab reports
|
|
and technical papers (I still haven't taken English 102 yet!).
|
|
|
|
A bit of History:
|
|
|
|
It was April of 1992 when I first became interested in starting a BBS. I
|
|
was in college and several of my friends had computers and we started a small
|
|
host system on Procomm Plus just to send mail and stuff back and forth. One
|
|
of my friends suggested that I put up a full fleged public BBS so I did. I
|
|
had no idea what kinds of BBS software were available, and by chance, the
|
|
first one I located on a local BBS was WWIV 4.20e. I downloaded it and set it
|
|
up and within 2 weeks had my second phone line and was up and running.
|
|
|
|
Hackers Galore:
|
|
|
|
It seems that new BBS's are the prime targets of hackers, and mine was no
|
|
exception. Within the first week my BBS was up, I had 3 attempts. Luckily
|
|
all were aimed at the outdated 4.12 version and failed to work.
|
|
|
|
There was one hacker in the area (who I shall refer to from now on as
|
|
simply G) that took a liking to my BBS. We were similar in our thinking and
|
|
expertise, but on different sides of the spectrum. Because he liked my BBS,
|
|
he never tried to hack it, but instead warned me when he found areas of
|
|
vulnerability and also when my BBS was targeted by other hackers. His
|
|
information was extremely helpful.
|
|
|
|
The first thing G pointed out to me was the now commonly known PKUNZIP
|
|
'rename' function. For those who are unaware of this, the PKUNZIP versions
|
|
from 1.93a on have the ability to take several courses of action when they
|
|
find duplicate files already in the directory. Older versions just asked if
|
|
you wanted to overwrite the existing file. The later versions gave the option
|
|
of overwriting, or renaming! If a user selected 'rename' then you were
|
|
prompted for a filename *AND A PATH!* With this function, a user could
|
|
specify any path on your harddisk to send the file.
|
|
|
|
When he showed me this, I felt a chill go up my spine. I immediately
|
|
started digging through the PKUNZIP documentation until I found a way to
|
|
disable this without sacrificing the PKUNZIP functionality I had grown to
|
|
appreciate on other BBS's. By adding a '- o' argument to the command line for
|
|
PKUNZIP, the duplicate file would automatically be overwritten without any
|
|
user interaction. I figured I was safe now.
|
|
|
|
About 2 days later, I saw a user log on and attempt to use this function
|
|
by uploading a bogus ZIP file and then try to extract it. He was amazed that
|
|
it didn't work, and I was satisfied that I'd prevented another hack. That
|
|
week, 4 BBS's in the area went down!
|
|
|
|
Another couple of weeks later G called me and showed me a scantily
|
|
documented DSZ command line option called '-ONAME='. Apparently this
|
|
option allowed the sending DSZ program to specify a path and filename to send
|
|
as long as the receiving end wasn't expecting any particular filename (As with
|
|
a batch transfer). This one is easily taken care of by specifying a directory
|
|
for DSZ to upload to with an appended '\' on it to designate 'This Directory
|
|
Only!', or use the '-restrict' command.
|
|
|
|
It became apparent to me that regardless of the precautions taken,
|
|
someone would always find a little documented option or other 'bug' in a
|
|
program that would allow a file to find it's way to an unsafe place and be
|
|
executed by the BBS.
|
|
|
|
Progressive Protection:
|
|
|
|
I had now had a BBS up and running for about 6 weeks and decided to
|
|
register WWIV. I figured that by having the source code I could do some
|
|
serious security modding. I had already begun work on a program that would do
|
|
a simple checksum on a file and return an errorlevel code depending on how the
|
|
checksum compared to a value in an internal table. I was using this from
|
|
batch files to ensure that the programs were valid before executing them. For
|
|
example, I would use a batch file called UNZIP.BAT to call PKUNZIP from the
|
|
BBS. It would first check the program to ensure that its checksum was valid
|
|
prior to passing it any commands. This seemed to give me a small margin of
|
|
protection since not only was there a little protection, the non-standard
|
|
format of file calling would at least confuse a 'would be' hacker.
|
|
|
|
I was still anxiously awaiting my source code for WWIV when I started
|
|
working on a new method. I found a public domain program written by Gary S.
|
|
Brown that would calculate a CRC32 check on a file. It included the source
|
|
code, and I was off and running.
|
|
|
|
I changed my checksum program to include CRC32 checking which is
|
|
exponentially more accurate at catching differences in two data streams. A
|
|
checksum can easily be defeated by tacking on garbage bytes to the end of a
|
|
file so that it returns the same checksum as another program. The only thing
|
|
a checksum does is add up each byte in a stream. A CRC32 check plugs each
|
|
byte into a complicated polynomial and XOR's each result to produce a final
|
|
value that is nearly unique to that data stream. Even a very proficient
|
|
programmer would have extreme difficulty in trying to make a program return a
|
|
particular CRC32 value.
|
|
|
|
Once I had the source code to WWIV, I began my work. I declared an array
|
|
to hold up to 50 filenames and their respective CRC32 values. This was
|
|
hardcoded into the BBS source code and took up a lot of memory, but by
|
|
incorporating it into the BBS.EXE, it could also check RETURN.EXE and
|
|
COMMAND.COM to ensure that they were also valid giving a level of protection
|
|
that went far beyond the batch file checking I was currently doing. The
|
|
drawback was that if anything changed, a complete re-compile was necessary to
|
|
update the information in the BBS.EXE. Later I externalized the table and
|
|
also built functions into the BBS that could be accessed by // commands to
|
|
update for any changes. I'm still working on added functionality to make this
|
|
an easy 'Block Copy' kind of mod for others to effectively use. It is
|
|
available at my BBS in it's present configuration which is not too tough to
|
|
install, but difficult to maintain.
|
|
|
|
Other Protections:
|
|
|
|
I am always looking for ways to increase my level of protection on the
|
|
BBS. I will try to give a rundown on a few of these.
|
|
|
|
One of the main areas of weakness in WWIV is the ability of a remote
|
|
sysop to accomplish nearly anything that you could from the keyboard. If you
|
|
allow remote 255 access, there is always the possibility that someone will
|
|
get a hold of the passwords and then all the protection in the world is
|
|
useless. To make this less of a hole, I've gone through and found functions
|
|
that I figured were useless to a remote sysop, or at least not necessary. If
|
|
you have the source code, it's easy to just add a check to see if the user is
|
|
remote or local before allowing the command to be executed. Another way to
|
|
discriminate is to check the 'usernum' variable to see if it is #1 or another
|
|
sysop. The global variable, 'incom' can be used to let the function know if
|
|
the user is remote or local. For example: Suppose you didn't want remote
|
|
sysops to 'Read All Mail'. I reserve this function to only myself. There is
|
|
really no reason for a co-sysop to do this. Here's how one would modify this
|
|
function:
|
|
|
|
Existing Code:
|
|
|
|
if (strcmp(s,"MAILR")==0) {
|
|
if (checkpw()){
|
|
sysoplog(get_stringx(1,8));
|
|
mailr();
|
|
}
|
|
}
|
|
|
|
Changes:
|
|
|
|
if (strcmp(s,"MAILR")==0) {
|
|
if ((checkpw())&&(usernum==1)) {
|
|
sysoplog(get_stringx(1,8));
|
|
mailr();
|
|
}
|
|
}
|
|
|
|
This way, only user number 1 can 'Read All Mail'.
|
|
|
|
The 'incom' variable can also be used to restrict functions to only the
|
|
local sysop. Here's an example of the same function modified to allow only
|
|
the local sysop access to all mail:
|
|
|
|
if (strcmp(s,"MAILR")==0) {
|
|
if ((checkpw())&&(!incom)) {
|
|
sysoplog(get_stringx(1,8));
|
|
mailr();
|
|
}
|
|
}
|
|
|
|
The 'incom' variable tells the program whether the com port is open or not.
|
|
Obviously if the user is on locally, then the comport is not open and !incom
|
|
will evaluate as true (the '!' is a logical 'NOT' in C).
|
|
|
|
Well that's about it for now. I hope to be able to submit other articles
|
|
in the future. If you would like to obtain any of my mods, I can be contacted
|
|
on IceNET 1@6855 or by calling my BBS (The Lab BBS 618-462-0767). I'd
|
|
appreciate any comments or criticisms as well.
|
|
|
|
The Deranged Alchemist
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ The Learning's Of A Teenage CoSysOp ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
Part 1
|
|
by Fini
|
|
|
|
Do you remember back when you first entered the world of BBSing? How you
|
|
discovered something to do with your computer other than work and video games.
|
|
It was a whole new world to explore.
|
|
For me, as a 15 year old kid, it was also a way to communicate and share
|
|
ideas with adults on an equal unbiased basis. It was a way to discuss
|
|
anything to from politics to computers, or even jokes. It was what I had
|
|
been looking for.
|
|
At first though, it was rather overwhelming, post, email, chain, etc.,
|
|
terms you don't often use in normal preBBS life. But, after numerous and an
|
|
abundance of posts and numerous chats with various sysops, I was able to
|
|
figure out the basics of WWiV BBSing. I soon felt I had learned all there was
|
|
to learn about WWiV. I stopped calling boards just to download files and
|
|
started posting more and more. Soon on my favorite board, Starpoint
|
|
Technology Station, I posted so much, that I often ran out of time. I nicely
|
|
asked the sysop and received a few more minutes a day. Even then, I still
|
|
ended up using most of it.
|
|
Then one day, I was calling to read quick and post, when.... Boo.. I was
|
|
chatting with the sysop, Special Agent. He asked me if I would be a cosysop,
|
|
and I of course said yes. He called me on the phone later that day and I was
|
|
soon immersed in a new side of WWiV i had never seen before. In addition to
|
|
posting, I was now in charge of helping to maintain the quality of other
|
|
messages and other daily maintenance. I was in seven heaven, a cosysop on my
|
|
favorite board.
|
|
That was a month ago, and I am still a cosysop and regular user. It is
|
|
amazing how much work goes into running a board. Scanning every sub, finding
|
|
bugs, helping new users and old. It was no wonder he needed cosysops. In the
|
|
past month, I have learned many things. I have learned how a Net works and
|
|
what it means when it says #@### after someone's handle. I learned how busy a
|
|
sysop is and how much of an investment it is to run a board.
|
|
|
|
Running a BBS is no small deal, so I URGE you:
|
|
|
|
Take time today and say Thanks to your Sysop.
|
|
Without them, there would be no BBS's!! Besides your SL might go up :>
|
|
To be continued....
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
|
|
|
|
M O D D E R S C O R N E R
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ TFC's Tips Of The Month ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
From the Beginning
|
|
|
|
Hello everyone, and welcome to my little corner of the IceNet News. I've
|
|
been graciously given this space each month to talk about something I happen
|
|
to be obsessed with, WWIV source code mods. For those of you that don't know
|
|
me, I am The Flying Chicken, and I run The Insane Asylum BBS in Irving
|
|
(Dallas), TX. I begin using WWIV sometime in late 89, and started modding it
|
|
shortly thereafter. Since then, I have modded versions 4.11 thru 4.22, I
|
|
currently host a support sub for WWIV mods, and I still create new mods when I
|
|
get the time.
|
|
|
|
And now that we have THAT out of the way, let's get down to business. It
|
|
took me a few minutes to figure out where to start, as modding WWIV entails so
|
|
much; everything from compiling to editing to syntax to ideas to tips; the
|
|
list goes on forever. But since we are at the beginning already, why not
|
|
start at the beginner level?!
|
|
|
|
No, I won't bore you with the details about how to compile, or how to edit
|
|
your source files, nor will I attempt to explain the C language. We will have
|
|
to assume from this point forward that you already know that. But there are
|
|
some basics everyone should at least consider when modding your WWIV source
|
|
code.
|
|
|
|
|
|
Keeping Your Source Compatible with
|
|
Wayne Bell and STRIP.EXE
|
|
|
|
If you have scanned the source code for any length of time, you will begin
|
|
to see the pattern with which Wayne Bell has coded his program. Not all
|
|
programmers use this style, but it is concise and easy to read and understand.
|
|
In particular, notice the lines that start in column one. These lines are of
|
|
three types: 1) compiler directives such as #defines and #includes, 2)
|
|
function headers, and 3) comments, blank lines, and lines with nothing but an
|
|
opening or closing brace. There is a reason that only these lines start in
|
|
column one.
|
|
|
|
Wayne also provides a program called STRIP.EXE, which comes with the
|
|
source. This program scans the source files that make up the BBS and creates
|
|
a file of prototypes for the functions it finds. The file it creates is
|
|
otherwise known as FCNS.H. In order to create this file, enter the command
|
|
MAKE FCNS in your source directory. Your source will be scanned, and the
|
|
header file created. This will not be done automatically, but should be done
|
|
whenever you add functions to your source.
|
|
|
|
The STRIP program is efficient, but not very lenient. In particular, it
|
|
expects very little in column one, other than what I mentioned above. If you
|
|
place text in column one, STRIP will think your code is a function header, and
|
|
include it while creating FCNS.H; certainly not what was intended. In fact, it
|
|
will cause compiler errors when you MAKE the BBS. TIP: Keep your code out of
|
|
column one.
|
|
|
|
Another glitch in STRIP has to do with comments. When modding your source
|
|
code, you should really consider commenting it in some fashion. It allows you
|
|
to immediately identify 'foreign' code, and can make life much easier when
|
|
installing mods a few months down the road. STRIP will handle comments in all
|
|
cases except one. When I add a function to my source, I comment the function
|
|
header line itself, like this:
|
|
|
|
void new_function(int num) /* mod - new void */
|
|
{
|
|
....
|
|
|
|
Well, when STRIP sees this type of comment, it ignores the line
|
|
completely. This will not cause problems if the new function returns an int,
|
|
however any other return value will generate a compiler message. There are
|
|
two ways to correct this: 1) don't comment at the end of the function header
|
|
line, place the comment on the line above instead; 2) if you want it, I have
|
|
a fix available. See the note at the end of this column for more information
|
|
about it.
|
|
|
|
|
|
You Want Me To Back Up My Source?
|
|
|
|
The last thing I want to cover in this edition is probably the most
|
|
important part of modding WWIV. Backups. I cannot begin to stress the
|
|
importance of backups of some kind. Backups can be simple ZIP'd copies of
|
|
your source and executables, or more complex forms of backups; it really
|
|
doesn't matter; but choose a regimen and stick to it.
|
|
|
|
What should you backup? Everything in your source directory, for
|
|
starters. This includes the *.C, *.H, *.MAK, *.ASM and any *.STR files. Also
|
|
backup your *.EXE and *.COM files. Further, you might want to keep a separate
|
|
copy of the executables that you are actually running, so you can quickly un-
|
|
install mods if need be. I also backup up my USER.DAT, just in case.
|
|
|
|
Here's a quick batch file you can use to backup your source. In fact, I
|
|
use it on my system. It will create a ZIP file that contains a current copy
|
|
of everything needed to compile your BBS. You'll need to create a text file
|
|
in your source directory; I call it SAVE.BAT. Place the following inside this
|
|
new file:
|
|
|
|
pkzip source -u *.c *.h *.mak *.asm *.str
|
|
|
|
Once this batch file is in your source directory, simply type SAVE to
|
|
execute it. All of your WWIV source files will be ZIP'd for you, safe and
|
|
sound. Further, if you only change a few *.C files, only those files will be
|
|
re-ZIP'd when you execute it, so you can create quick backups often.
|
|
|
|
I run SAVE before each mod I install. This allows me to un-install a mod
|
|
quickly, with one simple command:
|
|
|
|
pkunzip source -o
|
|
|
|
|
|
Curtains
|
|
|
|
Well, why don't we call that our first session for this month. In the
|
|
future, I will go into more detail with MAKE, FCNS.H, *.STR files, and other
|
|
items mentioned above, in addition to all kinds of tips and tricks for WWIV
|
|
modders. We'll examine ARs, exemptions, bit operations, and so much more in
|
|
future editions, and I'll even give you some mods to help enhance your system.
|
|
So go play with your source for a while, and I'll see you next month.
|
|
|
|
The Flying Chicken
|
|
|
|
The Insane Asylum BBS
|
|
IceNet 1 @2456
|
|
|
|
If you'd like a copy of my STRIP.EXE program, I have it written up in a
|
|
mod called TFC026.ZIP. I have Auto-Sysop Validation, and am Snarfable.
|
|
Please feel free to grab yourself a copy.
|
|
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ Mod Of The Month ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|
|
|
|
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
|
|
º WWIV Desc : Print a much more detailed, cosmetic pending list. º
|
|
º º
|
|
º Filename : TB11-422.MOD Mod Version : 1.0å º
|
|
º Author : çhe áishop 1st File Modified : NETSUP.C º
|
|
º 1st Net : 1@7.WWIVnet 2nd File Modified : º
|
|
º 2nd Net : 1@7.ExpressNet 3rd File Modified : º
|
|
º 3rd Net : 1@4550.IceNet 4th File Modified : º
|
|
º 4rd Net : 1@7.WWIVweb 5th File Modified : º
|
|
º 5th Net : 1@7.FUNnet 6th File Modified : º
|
|
º º
|
|
º WWIV Version : 4.22 Date(Happy Easter): 11 Apr 1993 º
|
|
º º
|
|
º Difficulty : Û±±±±±±±±± (Let your dog do it). º
|
|
º º
|
|
º Description : This mod replaces the old pending list with one that has º
|
|
º a lot more information presented in a much more cosmetic º
|
|
º form. It is based directly on MYMOD030 by Keith Cohen, º
|
|
º 1@9969, although it fixes a few problems with lining up º
|
|
º the boxes in that mod. In addition, it also prints the º
|
|
º number of fails for each connect, which will tell you º
|
|
º at a glance how often your BBS is calling out. º
|
|
º çá º
|
|
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
|
|
|
|
This is what the pending list format now looks like:
|
|
ÉÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ»
|
|
º Ok? ³ Network ³ Node ³ Sent ³ Received ³ Ready ³ Fails³ Elapsed º
|
|
ÌÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍ͹
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
³ Legend: ³
|
|
³ ³
|
|
³ = Leave this line alone ³
|
|
³ + Add this line ³
|
|
³ - Delete this line ³
|
|
³ | Change this line ³
|
|
³ . Many statements elapse here ³
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
³ Disclaimer: ³
|
|
³ ³
|
|
³ LIVE WITH IT. ³
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
Step 0: Back it up.
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
Step 1: Open up NETSUP.C. Comment out the old print_pending_list and
|
|
replace it with this one.
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
void print_pending_list(void)
|
|
{
|
|
int i,i1,i2,nn,num_ncn,num_call_sys,h,m,se;
|
|
char s[255],ch,s1[81],s2[81],s3[81],s4[81],s5[81];
|
|
long l,l1;
|
|
net_call_out_rec *con;
|
|
net_contact_rec *ncn;
|
|
|
|
if ((net_networks[0].sysnum==0) && (net_num_max==1))
|
|
return;
|
|
|
|
time(&l);
|
|
|
|
nl();
|
|
nl();
|
|
pl(" Ä> Network Status <Ä");
|
|
nl();
|
|
|
|
|
|
pl("ÉÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÍ
|
|
ÍÍÍÍ»"); /* fix word wrap */
|
|
pl("º Ok? ³ Network ³ Node ³ Sent ³ Received ³ Ready ³ Fails³
|
|
Elapsed º"); /* fix word wrap */
|
|
|
|
pl("ÌÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÍ
|
|
ÍÍÍ͹"); /* fix word wrap */
|
|
|
|
for (nn=0; nn<net_num_max; nn++) {
|
|
|
|
set_net_num(nn);
|
|
|
|
if (!net_sysnum)
|
|
continue;
|
|
|
|
if (!net_networks[net_num].con)
|
|
read_call_out_list();
|
|
|
|
if (!net_networks[net_num].ncn)
|
|
read_contacts();
|
|
|
|
con=net_networks[net_num].con;
|
|
ncn=net_networks[net_num].ncn;
|
|
num_call_sys=net_networks[net_num].num_con;
|
|
num_ncn=net_networks[net_num].num_ncn;
|
|
|
|
for (i=0; i<num_ncn; i++) {
|
|
i2=-1;
|
|
for (i1=0; i1<num_call_sys; i1++)
|
|
if (con[i1].sysnum==ncn[i].systemnumber)
|
|
i2=i1;
|
|
if (i2!=-1) {
|
|
if (ok_to_call(i2))
|
|
strcpy(s2,"Yes");
|
|
else
|
|
strcpy(s2,"---");
|
|
|
|
if (ncn[i].lastcontactsent) {
|
|
l1=l-ncn[i].lastcontactsent;
|
|
se=l1%60; l1=(l1-se)/60;
|
|
m=l1%60;
|
|
h=l1/60;
|
|
sprintf(s1,"%02d:%02d:%02d",h,m,se);
|
|
} else {
|
|
strcpy(s1," NEVER! ");
|
|
}
|
|
|
|
ltoa((((ncn[i].bytes_sent)+1023)/1024),s3,10);
|
|
strcat(s3,"k");
|
|
ltoa((((ncn[i].bytes_received)+1023)/1024),s4,10);
|
|
strcat(s4,"k");
|
|
ltoa((((ncn[i].bytes_waiting)+1023)/1024),s5,10);
|
|
strcat(s5,"k");
|
|
|
|
/* sprintf(s," º %-3s ³ %-11s ³ %5u ³ %8s ³ %8s ³ %8s ³ %9s º", */
|
|
sprintf(s,"º %-3s ³ %-11s ³ %5u ³ %8s ³ %8s ³ %6s ³ %4d ³ %9s º",
|
|
s2,
|
|
net_name,
|
|
ncn[i].systemnumber,
|
|
s3,
|
|
s4,
|
|
s5,
|
|
ncn[i].numfails, /* added */
|
|
s1);
|
|
pl(s);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
for (nn=0; nn<net_num_max; nn++) {
|
|
|
|
set_net_num(nn);
|
|
|
|
if (!net_sysnum)
|
|
continue;
|
|
|
|
sprintf(s,"%sDEAD.NET",net_data);
|
|
i=open(s,O_RDONLY | O_BINARY);
|
|
if (i>0) {
|
|
l=filelength(i);
|
|
close(i);
|
|
ltoa((((l)+1023)/1024),s3,10);
|
|
strcat(s3,"k");
|
|
sprintf(s,"º --- ³ %-11s ³ DEAD! ³ -------- ³ -------- ³ %6s ³ ---- ³
|
|
-------- º",net_name,s3); /* fix word wrap */
|
|
pl(s);
|
|
}
|
|
}
|
|
|
|
|
|
pl("ÈÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÍ
|
|
ÍÍÍͼ"); /* fix word wrap */
|
|
nl();
|
|
if (!useron)
|
|
pausescr();
|
|
}
|
|
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-
|
|
Step 2: You're done! Email me if you use this mod!
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-
|
|
|
|
Ä* çá (Apr '93) *Ä
|
|
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
|
|
P R O G R A M E R 'S C O R N E R
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ Quick Basic Tips ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|
|
QuickBASIC Tips and Tricks #1
|
|
by Alex Mead
|
|
|
|
So you've done it. You've made the jump from QBASIC (free with MS-DOS) to
|
|
QuickBASIC. You probably think that the big deal was getting a compiler, Well
|
|
there's a lot more to it than that. QuickBASIC has a whole host of new
|
|
features that every QuickBASIC programmer should be familiar with. Before you
|
|
go and memorize every command the language has to offer (not difficult
|
|
because we QuickBASIC programers have the one language that actually reads
|
|
like English) you'd be doing yourself a GREAT service by familiarizing
|
|
yourself with the QuickBASIC Editor.
|
|
The moment you set foot inside the QuickBASIC environment I suggest that you
|
|
go right to the options menu and select full menus, because that is where your
|
|
power is hiding.
|
|
Now that you've got the power to make programs larger than 64K, you will
|
|
also find that you have the option to start linking program modules together.
|
|
This can be done with the new commands in the File Menu. Also new in the file
|
|
menu is the ever necessary DOS Shell option.
|
|
For some reason they left the undo command out of QBASIC, but now that you
|
|
have QuickBASIC, you can select UNDO, and undo the changes you just made to
|
|
the line you're working on (it's come in handy more than a few times).
|
|
In QuickBASIC you now have the power to include files directly with the
|
|
'$INCLUDE metacommand, and therefore you get a nifty little view include files
|
|
option in your View Menu.
|
|
Then of course there's the stuff you really bought QuickBASIC for... the new
|
|
options in the RUN menu. You now can compile your programs into .EXEs or you
|
|
can make them into programming libraries to be used over and over again.
|
|
You'll also find the Change COMMAND$ option which can be helpful when creating
|
|
a program that uses command line parameters.
|
|
Perhaps just as importantly however, you have found yourself a pretty
|
|
powerful debugger. My life would be lost without the Instant Watch option.
|
|
Also available, you can override the Error handling with the Break on Errors
|
|
option, and the History on option is new and often useful.
|
|
Learn to use all of this and you will save even more time than you already
|
|
are by programming in QuickBASIC.
|
|
|
|
Support Shareware!
|
|
Alex Mead 'Tha AMPro'
|
|
IceNet 7@7660
|
|
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ Turbo C++ Tips ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|
|
"The Way I 'C' It"
|
|
Pointer Basics
|
|
By Daarkhan 2@7654 IceNET
|
|
14 May 1993
|
|
|
|
Having been asked to write a column for IceNET News on the subject of C
|
|
programming, I found myself wondering what to write about. I have a tutorial
|
|
series which I'm working on ("Learning C", which has its own message base),
|
|
but that's an ongoing learning experience. I need something short and sweet
|
|
which people can benefit from right away. (If you are a novice programmer, and
|
|
want to learn C, get a hold of my tutorial series.)
|
|
|
|
So, I thought, and I thought, and I thought. Now, it's one day before the
|
|
deadline, and I think I've finally figured what to write about. It seems that
|
|
the subject on which I've received the most Email on, and that I see
|
|
programmers having most problems with is that of the dreaded POINTER. So, I'll
|
|
dedicate this article on pointers.
|
|
|
|
Before I start, however, a little disclaimer. I do not consider myself to
|
|
be the world's greatest programming authority. I am a self-taught C
|
|
programmer, and I am a major in Computer Science, but I do make mistakes
|
|
(usually my compiler nails me, however). I probably won't compile and test all
|
|
of the code which I post here, but it should be correct. If not, someone
|
|
please Email me, and I'll post an addendum to next month's column.
|
|
|
|
What is a pointer? Basically, a pointer is a variable, itself, that holds
|
|
the memory address of another variable or object. Think of it like a network
|
|
Email forwarding number (something with which I'm sure you're all familiar).
|
|
If you have an account on one system, and want to have your Email from another
|
|
system sent there, you change the default setting so that system 2 sends (or
|
|
POINTS TO) system 1. Then, every Email reference to you on system 2 will send
|
|
your mail to system 1.
|
|
|
|
That's exactly how pointers work. If you have a variable
|
|
|
|
int i;
|
|
|
|
and declare a pointer to that variable
|
|
|
|
int *p;
|
|
|
|
p = &i;
|
|
|
|
the pointer 'p' now holds the memory address of the variable 'i'. Easy
|
|
enough? Let's take a look under the hood of your machine. A favorite method of
|
|
showing what this looks like that an instructor of mine uses goes like this:
|
|
|
|
Let's take a look at a part of your computer's memory. The numbers here
|
|
are completely arbitrary, and are used only for example, but we'll start at
|
|
memory address 1000.
|
|
|
|
|
|
Address Value
|
|
---------------------------------------
|
|
1000 ?
|
|
1002 ?
|
|
1004 ?
|
|
1006 ?
|
|
1008 ?
|
|
|
|
Ok, let's say that this is a segment of your computer's memory before
|
|
you've done any initialization or declarations or whatever. Whatever values
|
|
are there are probably just junk.
|
|
|
|
First, we want to get an integer and call it 'i'. We'll declare it as normal:
|
|
|
|
int i;
|
|
|
|
Now, our memory looks the same, but the computer will reserve a little
|
|
chunk of that (2 bytes for most compilers) to store the integer we refer to as
|
|
'i'. We'll set the value of 'i' to equal 20:
|
|
|
|
i = 20;
|
|
|
|
and take a look at our memory map:
|
|
|
|
|
|
Address Value
|
|
=======================================
|
|
1000 20 i
|
|
=======================================
|
|
1002 ?
|
|
1004 ?
|
|
1006 ?
|
|
1008 ?
|
|
|
|
Are you with me so far? We haven't used any pointers yet, however. All
|
|
we've done is declare an integer and set its value. Now, let's add a pointer.
|
|
I want to declare an integer pointer 'p':
|
|
|
|
int *p;
|
|
|
|
Now, what's going to happen, is that the compiler needs a place to store
|
|
the data for this pointer, so it will grab some space (usually 4 bytes for int
|
|
pointers) and call that location 'p'. Our memory map now looks like this:
|
|
|
|
|
|
Address Value
|
|
=======================================
|
|
1000 20 i
|
|
=======================================
|
|
1002 ? p
|
|
1004 ?
|
|
1006 ?
|
|
1008 ?
|
|
|
|
Same as before, however now there is a 4 byte block reserved for 'p' (it
|
|
will be 1002 - 1006). Because 'p' is a pointer, this memory location will hold
|
|
ANOTHER MEMORY LOCATION within it. To see how this works, let's execute the
|
|
call:
|
|
|
|
p = &i;
|
|
|
|
Now, the ADDRESS of 'i' has been assigned to 'p'. Let's take a look at our
|
|
memory map now...
|
|
|
|
|
|
Address Value
|
|
=======================================
|
|
1000 20 i
|
|
=======================================
|
|
1002 1000 p
|
|
|
|
1004
|
|
=======================================
|
|
1006 ?
|
|
1008 ?
|
|
|
|
|
|
See? 'p' now has the LOCATION of 'i' stored in it. Now, it is possible for us
|
|
to access the information in 'i' THROUGH 'p' in a method called INDIRECTION.
|
|
|
|
We can see what's stored in 'i' two ways. First, we can use the method
|
|
that I'm sure all of you are familiar with:
|
|
|
|
printf ("%i",i);
|
|
|
|
and get the result of
|
|
|
|
20
|
|
|
|
We can now also access this information like this:
|
|
|
|
printf ("%i",*p);
|
|
|
|
20
|
|
|
|
Here's how it works: by adding the asterisk before 'p' in the call to
|
|
printf(), we are saying, "print the VALUE POINTED TO BY 'p'." Whatever is at
|
|
the address at which 'p' points to is referenced and printed.
|
|
|
|
Well, I don't quite know how long to make these articles, as this is my
|
|
first time writing for IceNET News, so send me your suggestions. Should they
|
|
be longer, shorter, etc.? I need feedback! Tell me what you want to know. I
|
|
love getting your Email. Be sure to check out the new chapter coming out soon
|
|
in the Learning C Tutorials.
|
|
|
|
Until then,
|
|
Daarkhan
|
|
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
Feature BBS of The Month
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
Editors Note [I will start with my BBS seeing this idea came upon us too late
|
|
to get information from others....]
|
|
|
|
|
|
BBS Name: Starpoint Technology Station
|
|
|
|
SysOp Name: Special Agent
|
|
|
|
CoSysops: Bro Jack, Fini, Darkwing, oTTo Parts, and Mad Man.
|
|
|
|
System Equipment: We are running a 386 25mhz unit, a Zoom 14400 Modem,
|
|
100 megs of hard disk space, and a Tandy CD-Rom with over 8600 files for
|
|
downloading.
|
|
|
|
When did you first start bbsing?
|
|
|
|
I first started BBSing 6 years or so ago. I remember the days well. I was
|
|
using an old Commie 128 with a 300 baud modem. I was lost in the IBM world so
|
|
a friend of mine told me about Tres^Angle BBS which was run on an Apple ][ E
|
|
at only 300 baud. The first days of BBSing were lots of fun for me but not my
|
|
fellow BBS'ers. I was too arrogant and looked for trouble. Well I caught on
|
|
fast and knew I had to change my ways and with a new handle I came back onto
|
|
the scene. This time with a Apple ][ E and a 2400 baud modem. I used VT100
|
|
emulation to call the IBM BBS's. A year ago I purchased my first IBM machine.
|
|
I never knew the real world, wow color was so neat... I did not realize what
|
|
I was missing not having color and ANSI.
|
|
|
|
What caught your attention, that later made you decide to start your own BBS?
|
|
|
|
My situation is unique, I had a friend ask me to run his BBS for him, at
|
|
the time I knew nothing. He gave me the docs and said learn!! So it was really
|
|
nothing that caught my attention as being a user that made me want to start my
|
|
own BBS.
|
|
|
|
When did you start your BBS?
|
|
|
|
STS was up and running on July of 1992, but in January of 1993 I purchased the
|
|
machine, moved it to my house with my own phone line and then that is when I
|
|
really first started it. The BBS has grow greatly. It averages over 40 percent
|
|
usage everyday. With 60 percent on a weekday not being out of line.
|
|
|
|
When did you join IceNet?
|
|
|
|
I can't remember when I joined IceNet but I think it was in Dec of 92 just
|
|
before I took over ownership of the BBS.
|
|
|
|
Why did you join IceNet?
|
|
|
|
I saw many good subs on the 35 or so BBS's I called every week and said I must
|
|
join that net. I am so glad that I did. Jim has been so helpful to me in
|
|
running my BBS, although he has not logged on yet, haha. He went out of his
|
|
way to help me set up the net, even going so far as calling me voice to make
|
|
sure things were going well. Along with Jim you other sysops have been so
|
|
helpful. All my questions in the beginning were answered fast and in most
|
|
cases I had 3 or 4 pieces of mail waiting for me with the answers. Yes joining
|
|
IceNet was a great move on my part.
|
|
|
|
What is the theme or purpose of your BBS?
|
|
|
|
STS is a multifaceted BBS. We do subscribe to over 20 some Tech based subs so
|
|
I guess the main theme is Technology. The fasted moving subs on the BBS are
|
|
the Christian ones in nature though. The main purpose of the BBS is to be a
|
|
help to other people and to be a place where people can share their views
|
|
without getting blasted. The rules on the BBS are simple, keep it clean
|
|
language wise and don't dish it out if you can't take it.
|
|
|
|
I also take care to see that we have most of the WWIV utility type programs
|
|
online for downloading and have a good selection of WWIV online games. I kind
|
|
of am an unofficial WWIV support BBS. We also enjoy being a distribution site
|
|
for shareware authors. We currently have Master Software online and we are
|
|
AMPro Distribution site #3.
|
|
|
|
What makes your BBS different or unique from others?
|
|
|
|
Well one thing for sure is you will never here me call anyone a leech or
|
|
putdown those who only like to play games. I have the CD Rom for people to
|
|
download files. I hear too many SysOps complaining about people only
|
|
downloading files. Hey, that is what I got the files for, to be downloaded. I
|
|
also have online games to play, not to take up space. Different, hum, well we
|
|
like people to share their views openly. If they disagree with me so be it.
|
|
Everyone is entitled to his her own thoughts, opinion and feelings. Who am I
|
|
to say that can't say that here. In that area I am different than many. I have
|
|
strong views of my own and I expect the same from them and get it. We have a
|
|
great BBS for debate. I have not seen one fight yet from people who call my
|
|
BBS and get involved with our many heated subjects. That is unique. I see much
|
|
fighting in BBS land but we are spared it here and I am thankful.
|
|
|
|
|
|
Running a BBS takes much time and effort, what makes it worth it for you?
|
|
|
|
One of the things I love about running the BBS and what makes all the work
|
|
worth it is all the people I get to meet and talk to on a daily basis. The
|
|
feeling that all are equal is great...
|
|
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
³ IceNEWS is an independent newsletter published monthly as a service to ³
|
|
³ IceNET, its Sysops and users. The opinions & reviews expressed herein ³
|
|
³ are the expressed views of the respective writers. All Rights Reserved.³
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|