ÛÛÛÛÚÄÄÄÄÄÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄ· ÚÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄÄÄÄÄÄ·ÛÛÛÛ ÛÅÅų ÄÄÄÄÄ º³ ÄÄÄÄÄ º³ ÄÄÄÄÄ º³ ºÅ³ º³ ÄÄÄÄÄ º³ ÄÄÄÄÄ ºÅÅÅÛ ÛÅÅÅÔ͸ Éͼ³ ÉÍÍÍͼ³ ÉÍÍÍͼ³ º\³ º³ ÉÍÍÍͼÔ͸ ÉͼÅÅÅÛ ÛÅÅÅÅųþþþºÅųþþºÅÅÅÅųþþÓÄ·ÅÅųþþºþ³þþº³þþÓÄ·ÅÅÅÅųþþþºÅÅÅÅÅÛ ÛÅÅÅÅų±±±ºÅų±±ºÅÅÅÅų±±ÉͼÅÅų±±º\³±±º³±±ÉͼÅÅÅÅų±±±ºÅÅÅÅÅÛ ÛÅÅÅÚÄÙ ÓÄ·³ ÓÄÄÄÄ·³ ÓÄÄÄÄ·³ ºÅ³ º³ ÓÄÄÄÄ·Åų ºÅÅÅÅÅÛ ÛÅÅųÛÛÛÛÛÛÛº³ÛÛÛÛÛÛÛº³ÛÛÛÛÛÛÛº³ÛۺųÛÛº³ÛÛÛÛÛÛÛºÅųÛÛÛºÅÅÅÅÅÛ ÛÛÛÛÔÍÍÍÍÍÍͼÔÍÍÍÍÍÍͼÔÍÍÍÍÍÍͼÔÍͼ ÔÍͼÔÍÍÍÍÍÍͼ ÔÍÍͼÛÛÛÛÛÛ 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; nn0) { 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.³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ