ÞÛÛÝ° ÜÛÛÛÛÛÜ ÜÛÛÛÛÛÛ° ÛÛ° ÛÛ° ÜÛÛÛÛÛÛ° ÛÛ° ÛÛ° ÜÛÛÛÛÛÜ ÛÛ° ÛÛ°°°°° ÛÛÜÜÜÜ° ÛÛÛÜ ÛÛ° ÛÛÜÜÜÜ° ÛÛ° ÛÛ° ÛÛ°°°°° ÛÛ° ÛÛ° ÛÛßßßß° ÛÛßÛÛÛÛ° ÛÛßßßß° ÛÛ° Ü ÛÛ° ßÛÛÛÛÛÜ ÞÛÛÝ° ßÛÛÛÛÛß ßÛÛÛÛÛÛ° ÛÛ° ßÛÛ° ßÛÛÛÛÛÛ° ÛÛÜÛÛÛÜÛÛ° °°°°ÛÛ° ÛÛ° ÛÛ°°° ÛÛ°ÛÛ° ÛÛ° ÛÛ° ÛÛ°ÛÛ°° ßÛÛß ßÛÛß ßÛÛÛÛÛß ÞÝ° ÞÝ° ÞÝ°ÞÝ° ÞÝ° Þ° ÞÝ°ÞÝ° ÞÝ° Þ° ÞÝ°Þ° Ý° Þ° Ý° Þ° Ý° Þ° Þ° The Journal of IceNET December 1994 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³The Editor's Desk ³ ³ The Upper Registers Will 1@6754 ³ ³ ³ ³Features ³ ³ Getting to WWIVcon, Cheap! Seafox 1@2459 ³ ³ WWIV for OS/2 Preview East Bay Ray 323@3050 ³ ³ ³ ³WWIV Chronicles ³ ³ Modifications for Dummies! Spotnick 1@5497 ³ ³ ³ ³Software/Programming ³ ³ IBM OS/2 Warp v3 Will 1@6754 ³ ³ ³ ³Light Bytes ³ ³ The REAL Sysops Guide Aldo Cella 654@7654 ³ ³ Silly Strings Ima Moron 1@9661 ³ ³ ³ ³Special Feature ³ ³ The WWIVnet Technical ³ ³ Documentation (2/4) Midnight Tree Bandit 1@8411 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ IceNEWS Staff For December 1994 ³ ³ ³ ³ "...Winners of the 1994 WWIVcon Award for Electronic News" ³ ³ ³ ³ IceNEWS Publisher - Jim 1@1 ³ ³ IceNEWS Editor-In-Chief - Will 1@6754 ³ ³ ³ ³ IceNEWS Contributing Editors ³ ³ WWIV-Specific - Spotnick 1@5497 Lite Bytes - Ima Moron 1@9661 ³ ³ Software - Music Man 1@9680 ³ ³ ³ ³ Editor-At-Large - Crave 1@7668 ³ ³ IceNEWS Production - Help Wanted ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ IceNEWS is always seeking submissions from those who have ³ ³ ideas for stories. If you have any ideas that you might ³ ³ like to see published, contact any IceNEWS editor or ³ ³ subscribe to IceNEWS Beat, subtype IceNEWS, host @1. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ E D I T O R ' S D E S K ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The Upper Registers ³ by Will 1@6754 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Welcome to IceNEWS! We have a shorter than usual issue for you this month, but some neat information. Seafox tells you how you and the other sysops in your area can get to WWIVcon cheap. East Bay Ray has provided us with a sneak peek at the new version of WWIV for OS/2. We've got the second installment of the WWIV Technical documentation. And for all those who are considering starting up their own BBS, we've got the REAL sysops guide.. We've also got a comprehensive look at the features in the new version of OS/2, Warp. While the product is not perfect (nothing is), I think that it has the potential to be an extremely important product. Therefore, you can expect to see more information on OS/2 Warp and related stories over the next year. Happy Holidays to all, and we'll be back to a more conventional format next month. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ F E A T U R E S T O R I E S ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Getting to WWIVcon, Cheap! ³ by Seafox 1@2459 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Everyone understands air travel on the most basic level. You buy a ticket, you go up in the air, you come down, you leave the plane. However, the modern airfare climate is such a twisted morass that only people who work in it, day to day, have a glimmer of hope in understanding it. As a Travel Agent, I see this all of the time. The rules are so convoluted these days that only by being informed can you ever hope to get the cheapest fare. MY SYSOP WENT TO WWIVCON, AND ALL I GOT WAS THIS LOUSY GIF FILE Lets talk about groups. A group, in Travel Industry parlance, is 10 or more people, travelling on the same flights together. If a group has 21 people, that 21st person goes free. (A great way to reward the local server sysop....) Groups require planning. The best way to plan a group is to have a person designated as the group leader. From there, you determine how many people are interested in going. Then, the group leader calls his local travel agent, and gets the fare to the destination, as well as what airlines fly there from his home airport. (Everything is airports. A group can consist of all of Saskatechewan, as long as they all use the same airport to fly to the convention.) From there, the Group leader contacts everyone and advises them of the fare. Anyone who says "Outrageous! I could buy a Yak for that much money," or any similar sign of toxic cashflow shock, should probably be moved into the maybe column. From there, you get a firmer count. Then, the fun starts. Call the travel agent again, or use whatever arrangements the convention has planned. (WWIVcon might be developing it's own meeting desk, if the particulars can be worked out...) Then, inform the agent of your group size, as well as preferred flight times and carriers. Make sure to ask which ones are non-stop. It might be worth it to make a stop in St. Louis or Houston to fly TWA or Continental, for instance. (And of course, with proper co-ordination, you can pick up other groups at such points, thereby subjecting the flight attendants to an ever growing hoard of BBS'ers.....) The travel agent will call the airlines, and negotiate a rate for your group. Be sure to ask the travel agent what the rate is on all of the carriers you're interested in, not just one or two. Some agents get commission overrides on particular carriers, and they will try to steer you towards certain carriers even though the cost may be higher. From there, you will also get a deadline. Take this deadline very seriously. Also, you will only be able to reduce your group by 20% and still keep the negotiated rate. Get on this today. As space fills up, and as we get closer to the date, it will be harder and harder to get group space. Now, what if you're one of those people who lives in a tiny WWIV community? This is where the Convention/Meeting Rate kicks in. The WWIVcon staff will be negotiating Convention rates with the major carriers. This will definitely include United, Delta, and American Airlines, and will also probably include a few of the smaller carriers as well. (If you know of one you want to fly on, E-mail the WWIVcon staff) Convention rates are a compliment to Group rates, but with a twist. Group rates require everyone to be on the same flights. The convention rate provides a percentage discount to all people flying to a certain convention point, as long as they book their reservation using the convention code. The usual discount is 5% for coach class tickets, and 10% for first class seats. ACTUAL CONTENTS MAY VARY There are several things that you need to make sure you get. First off, you want seat assignments and boarding passes. This ensures you the kind of seat you want, and also saves time because you don't have to go the counter at the airport. However, there is one good reason to go to the counter-- Exit row seats. On some carriers, Exit rows can be assigned beforehand, but the boarding passes can't be issued. This is to ensure that the passenger meets the exit row criteria implemented by the FCC- physically able to open the exit doors, as well as willing to open them and assist people in evacuating the plane in an emergency. Exit rows offer extra legroom. You want the seats facing forward, as the seats facing backward do not recline. The row just in front of the rear facing exit row also don't recline. Ask about special meal options. They are usually catered in much smaller quantities, and as a result, usually taste much better. This is extra important if you have dietary needs. Low fat, low salt, kosher, hindu, vegetarian, vegan, and moslem meals are all offered by most carriers, as well as options for fruit plates, seafood meals, and a couple of other special meals. Make sure you get the lowest fare in the market, and if at all possible, get one that is refundable. If you are willing to do a connection, and can't take advantage of convention or group rates, try to get a connection through Chicago or Atlanta. These cities have become low fare meccas since the wave of cheaper start-up carriers have hit the markets. Names to remember are MarkAir, Valujet, Southwest Airlines, National Airlines, and Midway Airlines. Avoid Sunjet- they frequently lose reservations and are often not on time. Get a frequent flyer number on whatever carrier you plan to fly on. If you are flying TWA, and you usually fly American, you can use your advantage number on your flight. Frequent flyer numbers give you something for nothing, and that's always a good deal. IT'S LATE IN THE EVENING... Now it's less than one month before WWIVcon. Everyone else who's going in your home town (or more importantly, airport region,) has made their plans. They're getting a group fare, and the local server sysop is getting to fly free as thanks for all he does. Suddenly, you realize that you are, after all, going to be able to make it. But you can't afford full coach, and there are no fare wars going on. What to do? You call Travel Bargains. If you're within 30 days but not within a week, Travel Bargains can get you a low fare on TWA. They do not handle originations in St. Louis. (They have a really stupid reason for this......) You will need a credit card, or be willing to Fed Ex a check. Their fares are usually 60% of TWA's KE14NR fare. Call TWA to get the rate for that fare, ask if it's available in "T" class, and then call Travel Bargains. Their number is 1-800- 872-8385. And if you put it off for too long, you're gonna miss it, bud..... BIG OL' JET AIRLINER It *is* possible to get to WWIVcon economically. The key is planning. With WWIVcon in Buffalo, a lot of people have shown concern that it'll be too expensive. However, the WWIVcon Site Committee has decided that Buffalo has so much to offer that it offsets the expense. If you can possibly make it, you owe it to yourself to try. If you're in a big WWIV community, volunteer to be a group leader. This will mean more people from your area will make it, and someone might get to go free. E-mail Jim (1@1.Icenet) and let him know you want to get 20 of your closest friends at WWIVcon. If you're in a smaller community, get involved in the WWIVcon sub. And if you're in Buffalo, get ready, because a whole bunch of computer nerds are about to descend on you and want a good time. With the information in this article, you will be much better armed to deal with the realities and possibilities of affordable air travel. Because it's always easier to let someone else drive............ ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ WWIV for OS/2 Preview ³ by Easy Bay Ray 323@3050 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ [Introductory Note by IceNEWS EIC, Will 1@6754: A few months ago, East Bay Ray, developer of the OS/2 version of WWIV, sent us a question and answer sheet about the product. Ray's been busy since, and we haven't been able to obtain more information. However, I've decided to run this information in it's entirety in order to inform the WWIV community of what's going on in this exciting area] Guys - This is my preliminary Q&A for WWIV for OS/2. _PLEASE_ let me know if you can think of any other questions you or another SysOp might like to know the answer to... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- WWIV for OS/2 - A Preview by Jeff Garzik (East Bay Ray #323@3050 WW4Net) Since many of you have sent me questions via e-mail, I will attempt to describe WWIV/2 in a Q&A format. How is the WWIV/2 user interface different? There is no difference. How is the WWIV /2 SysOp interface different? There is no difference. How is the WWIV/2 setup different? For new installations, the SysOp will go through the normal INIT.EXE setup procedure, and then run INITOS2.EXE to complete the installation. For upgrades, the SysOp will merely have to run INITOS2.EXE. I'm upgrading to WWIV/2 - will I lose my data? Absolutely not. WWIV/2 data files are byte-for-byte compatible with files created with WWIV for DOS. Will I notice any change in response times over WWIV for DOS? On lower end machines (386s) or machines with very little RAM (4MB-6MB), there will be very little difference in the response times. On other machines, there will be an increase in response times and decrease in lost characters (for the higher speed modems). What are the minimum requirements for running WWIV/2? OS/2 version 2.1 Any 386, 486, or Pentium machine 4 megabytes of RAM Any WWIV-supported modem What are the recommended requirements for running WWIV/2? OS/2 version 2.11 (that's OS/2 v2.1 with the CSD applied) 486 or Pentium machine 8 megabytes of RAM Any WWIV-supported modem Will WWIV/2 run my new super-fast 19.2k or 28.8k modem? Yes, but you currently have to lock your port at 38400. The next version of WWIV/2 will support any speed your serial card supports. Will WWIV/2 run native OS/2 chains? Yes. The C chain functions (inkey(), mpl(), onek(), etc.) provided by WWIV will be available in the form of an OS/2 DLL. Will WWIV/2 run my current MS-DOS chains (doors)? Yes, but expect to take a resource hit. Running an MS-DOS program requires a much greater amount of memory than a corresponding OS/2 program. Will OS/2 versions of the network utilities become available? This issue is up to Wayne, not me. I have bugged him several times, but he doesn't want to give out the source to the network utilities. What does that mean for you? The initial version of WWIV/2 will use the DOS network utilities -- taking up a LOT of your precious RAM. If you are running two nodes on the same OS/2 machine (or simply running another application while WWIV/2 is doing network stuff), expect to take a serious performance hit. Bug Wayne so that you, the SysOp, will have decent OS/2 network utilities when WWIV/2 is released! ;-) How much will this glorious product cost? Ask Filo. I'm just a byte monkey. ;-) Will shrink capability be available in WWIV/2? No. There is no need. OS/2 does not have a foolish 640k barrier. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ W W I V C H R O N I C L E S ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Modifications For Dummies!³ by Spotnick 1@5497 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If there is something that I dislike about the WWIV modifications, it's that 75% of them never works on the first time you install them. For some reason, there is always a bug somewhere in the modification, and you wasted your time installing them. Well, I am one of those modification author that was writing modifications that always needs a fix, because I was having problems to extract the mod from inside WWIV and put it in a text file. Many other authors are regular to the "D" revision of their modifications, and sometimes there is more... To start being careful about that, I remember receiving a e-mail that made me realize that it would be better for me to test them before posting anything, that what I started to do then, and also asked for beta testers to check them out before their release. It was great, but of course, there is NOTHING that can stop an error from getting in there. So to you, novice or intermediate modders, even those who are well known to produce quality modifications, you should all follow those simple rules: þ Never release a modification before a rough test on your own system for a specific period of time (1 Month is good). þ Ask some people to test the modification for you before releasing it. þ Install your modification on a virgin copy of WWIV before releasing it. Follow your own text file and act if you were modding for the first time. þ Make your modification to fit the more possible with WWIV standards functions, avoid the "you must have *.MOD installed to use this modification" unless it is one of your own modification, or something very popular. Because most of the time, people don't have that installed and will have to look everywhere to find it before installing your modification. A kind of pain that will reduce the activity of your own modification. If you follow those simple rules, you will have success in the WWIV world. Because you will be known as a bug-free modifier and people will start trusting you. Note that there is other things that you must follow, that is why I decided to include this ethical code for WWIV modificators. This is generally what most Sysop uses, but in case you didn't know, here it is: I will take my own modifications group example to follow the ethical code: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ WWIV Modifications Ethical Code ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ The Header ÍÍÍÍÍÍÍÍÍÍ ÚÂÄÄÄ ÄÄ Ä Ä ÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ ùù ³³ Alternative Worlds Presents ³ ÀÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³³ Mod Name ¯ ALTW-02A.MOD ³ù ³³ Difficulty ¯ ÛÛÛÛÛ±±±±±± (5/10) ³: ³³ WWIV Version ¯ 4.24 ³³ ³³ Date Affected ¯ 10/24/94 ³³ :³ Files Affected ¯ BBS.C / MODEM.C / NETSUP.C / VARS.H / XINIT.C ³³ ù³ Description ¯ VGA Waiting For Caller Screen Status Screen ³³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅ¿ ³ A French Mod Division Release - (C) 1994 FutureSoft ³³ ùù ÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄ Ä Ä ÄÄ ÄÄÄÀÙ þ Avoid too long header: Generally, most of the Sysops hate that. The example has a fancy header, but it isn't too long, so you can see it in less than a half screen. DO NOT PUT COLOR CODES IN THEM! This will be a pain when people will see it in their text editor when doing the modifications. þ Mod Name Line: Generally, you input the filename you wish, not more than 7 letters, and it should have the extension *.MOD and not *.WWIVVERSION, because this cause many problems to SysOp that collects modifications. You must use a name that is specific to your alias or system name, to avoid incompatibility with modifications below WWIV v4.22 where there was no ethical code. You have to put a number also to show that this is your xth modification, and put the revision letter if it is a revision. ALTW-02A.MOD ^^^^ ^ ^ |___|_|____________ ALTW, specific to Alternative Worlds | | |_|____________ 02, this is the 2nd modification | |____________ A, this is revision A. If you follow this example, it will help you on your way to hall of fame , because it will be easy to find your modifications on a BBS that put mods in their directories. Double check to be sure that nobody else uses your acronym. þ Difficulty Line: Put yourself at the time you started modding, and think of the difficulty your modification would be to install. You can use a graphical meter: ÛÛÛÛÛ±±±±± or put the numbers: (5/10) This will help novice modders to ask for help to install some modifications, or to be more careful than others. þ WWIV Version Line: Tell on which version you installed the modification and TESTED the modification. Do not include future versions of WWIV unless you are sure that it is going to work. We saw too many people tell "should work with v4.23" and that were using "open/read/write" without the multi-instance modifications needed that this is very important. On the example, you see v4.24, well, as a Beta site of WWIV, I can assure that this will work with v4.24. I did a small mistake by not including the Beta number (which is áeta 3). Do not include previous versions of WWIV unless you tested it also, a v4.23 modifications won't necessarily work under v4.22, so then people using v4.22 will be aware that it is possible that the modification won't work. þ The Date Line: Very useful for system that produce mods collection, to put your modification in the right collection. Also shows that it is a repost if someone post your modification again. þ The Files Affected Line: This is very important also, it should how many files your modification will affect, and will warn the person if it affects any of the major *.H that need an entire compilation. It will also help SysOp to think if they already modified that file before reaching the last step of your modification and finding out that they have a totally different function instead of yours. þ The Description Line: A very BRIEF description of what your modification does, not more than ONE line, keep in mind that this is what people will check first, so you need to have a punch line there. If your punch line is interesting, people will check the extended description section. þ The Name Line: Include your handle or modification group name, to know who did that modification. þ The Copyright Line: Now that we know that modifications can be copyrighted, but keep in mind that all WWIV code included is copyrighted to WWIV Software Services, you have the right to include your own copyright notice. I suggest you put the disclaimer at the end of the file instead of the top, because this generally bug people very much, only if it is more than one line. Introduction ÍÍÍÍÍÍÍÍÍÍÍÍ þ The Long Description: A verbose description of what your modification will do, generally, it is better if you include a snap shot of what it will look like also. You need to describe each features of your modification. Include also multi-taskers under which your modification has been tested. This can be very useful. You should also put the compiler name and version that you used to do this modification. I already did modifications that weren't working with older versions of Turbo C. þ Requirements: Include anything that is needed to use your modification. If you need another place, this is the place where you put the name of this modification. Example: Requirements for using this modification: - VGA Graphic Card Or Better - VGA Monitor or Better - WWIV v4.23 or higher (tested on v4.24 Beta 3) þ Thanks: This is where you give credit where it is due, generally it would be a shame to forget Wayne Bell in those lines, since it is his software you are modifying. Also put here the name of each and every single person you might have steel code from. This is very important, just like when you do a report, you have to include all your sources. þ Upgrading Information: If your modification is a revision, you need to tell people that installed your modification, what to do to upgrade from previous version, which steps to proceed, etc... this is NEEDED in each mod that you produce. þ Legend: Include this because it might confuse some people if you produce modifications that doesn't use the same standards. Example: ÚÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ ³ = ³ Existing Line ³ ³ + ³ Add this line ³ ³ - ³ Remove this line ³ ³ * ³ Modify this line ³ ÔÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÙ Note also that some people use 1 space between the code, and some doesn't. There is no standard for this, but it will be a good place to put a note about it. This won't change a thing, but make the source code more easy to see. þ Warning Line: Do like most of modders, include a warning line even if you have tested your modification. Tell people to do BACKUPS of their source before installing your modification. This is important. Body Of The Modification ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ þ Steps: Separate your steps so it can be easily found. We use this standard: ÄÄÄ[Step 1]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ So we are sure that nobody will miss a step. Don't include more than one operation in each step. Do not include modifications to more than one function in each step. Put at least 2 existing lines, so people can locate more easily. It is also VERY IMPORTANT that you don't put color codes at the end of each lines (after the ';' code generally) even if it makes your mod ugly at the display, because this causes pain to everyone when they try to install your modification from an extracted post. The End Of File ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ þ Compiler Informations: Tell people if they need to do MAKE FCNS, if there is a change to the makefile, please tell them under which compiler you did this modification, and also notice if they need to do a full or partial compilation. þ Informations Lines: Tell people where they can reach you, name of your BBS, phone number and network address of the main WWIV networks you are in. You don't have to include local networks generally, but you can do that too. If you have a sub about your modifications, leave a note here for people to know how to get support from you. If you don't plan to do support, it is the place to tell that, because you should generally get mail from the modifications you did. And you are done, following all those steps should end with a clear text file, ready to post on the modification subs all around. If you upload your mod to a system, please include in the archive a FILE_ID.DIZ or DESC.SDI inside it, with your description. Here is the example we use in French Mod Division: Shut-Down System For WWIV Mod Name : ALTW-27.MOD Difficulty ¯ Û±±±±±±±±± WWIV Version ¯ 4.23/v4.24 Date Affected ¯ 10/25/94 A French Mod Division Release.. So people will see that when they download or list the files. Be sure that the first line is the description, because stock WWIV version with file tagging doesn't allow to show more than 1 line, so this is the important line. If you post the modification, there is also an ethical code for the title you use. I already tried to have people do it another way, and I got tons of replies to keep it the way it is. PLEASE do that, it is very important, else your modification may suffer from that, because it is needed for SysOps that extract modifications do their xfer area: Title: FILENAME.MOD: Breif Description Of Your Modification. Once this is done, then everything should be perfect. Again, this is a standard. You might not conform to it, but this is what should help people to follow a code that will help the WWIV community. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ S O F T W A R E / P R O G R A M M I N G ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ IBM OS/2 Warp v3 ³ by Will 1@6754 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ With the release of the new version of OS/2, now officially known as Warp, IBM has brought Operating System/2 to a new level. Warp features enhancements and performance increases in virtually every area, with added performance, usability features, and bonus applications. While it's dangerous to compare Warp to an as yet unreleased product (Windows 95), it's probably safe to say that Warp is a match for any Operating System product that will be made available in the next year. I should note that I made these installations over Windows for Workgroups 3.11, starting from scratch. The current version of Warp is not designed to install over OS/2 2.1 systems. The most noticeable enhancement to the product is that it's much leaner in terms of memory requirements. Warp takes as much disk space as before, but it will now successfully run (although not blazingly fast, but tolerably so) in four megabytes of RAM. In fact, this article is being written on a 486sx-33 laptop with four megabytes RAM running Warp, and while there's a lot of disk swapping, it's really just as usable as Windows for Workgroups on the same machine. Overall execution speed has been improved (although with the additional features in the release version, Warp does execute slightly slower than the first Beta). In tests, Warp executed Win16 applications considerably faster than Windows NT 3.5, and only slightly slower than Windows For Workgroups 3.11 (in fact, the difference was not noticeable in virtually every case, except for a slight delay at the beginning where OS/2 loads the Windows code into memory). Device support has been greatly increased, as well. Warp comes with a much larger variety of sound, video, SCSI, and CD-ROM drivers than OS/2 2.x. Earlier versions came with a large amount of printer drivers, and that number has been increased as well. Warp now ships with drivers for most Sound Card-CDROM combinations, something else that was lacking in 2.x. It should be noted that OS/2 now supports more devices right out of the box than Windows 3.x or Windows NT, and supports many newer pieces of hardware to boot. The installer has been greatly improved. It now does a much better job of auto-recognizing hardware than before. On both my systems, it correctly identified all the hardware (it picked the wrong NEC CD-ROM drive, but the driver it installed functioned fine) installed. Again, some of it (such as the SCSI card) was not supported directly under 2.1. There is also a "One Button Install" option for novice users, which will make all the decisions for you, and then just prompt you for disks. When I tried this, it worked fine. Multimedia install, once a seperate process, has been integrated into the main installer, althouh some of the extra multimedia programs (such as the Media Viewer) are installed separately as part of the BonusPack. The desktop has three main new features, once installed. Most obviously, the desktop default color has been altered to teal (which, while it may sound terrible, is actually a wonderful color for the purpose, and I haven't bothered to change it to anything else), and all the icons have been redone in a 3d style. This lends Warp a much more modern look than pervious versions. A floating Launchbar has been added to the bottom of the screen. It holds shadows of various objects (by default, the shredder, A: drive, and some others), which you launch with one click. You can also create drawers to hold additional objects. My Internet drawer, for instance, has the SL/IP dialer visible on the Launchbar, and the rest of my Internet utilities in the drawer. To see the rest of the icons, I click on the handle and the drawer comes out. Click again to retract it. The drawers can be dragged to any portion of the screen, to boot. The last obvious change is on the pull-out menus that you access by right clicking an object. The settings selection, which was previously a submenu under the "Open" heading, now has it's own place on the main menu. This makes training and use much easier. Multimedia support in Warp has been greatly enhanced. The digital video module now supports more varieties of .AVI file, and also plays digital video files in .FLI and .MPG (MPEG) formats. A "Media Viewer" is included in the BonusPack (see below) which acts as a light table for multimedia files. This works by dragging image files (GIF, TIFF, PCX, etc) into the window, where OS/2 then generates a thumbnail image. It also provides "click here" icons for video and sound files. This worked well, and produced accurate thumbnail representations of the images. The only problem was when I dragged a large (over 1024x768) file onto the display. The system slowed almost to unusability as the Viewer attempted to generate a thumbnail. After five minutes, I rebooted. As we've seen, Warp also includes drivers for many more sound cards (including some relatively obscure ones) than it did previously. You also get a stripped down copy of Person-to-Person, IBM's groupware offering. An almost totally new set of sound files are included, as well as several MIDI music files, including a nice jazz riff that plays during the BonusPack installation. Warp now includes a complete set of external applications in the new "BonusPack". IBM Works (originally a popular stand alone integrated package for OS/2) includes a spreadsheet, database, word processor, and charting module. These are not "applets" like those packaged with Windows 3.1 or Windows NT - they're full strength applications, with features like a spell checker, mail merge, and full DDE links between them. At the product launching, one IBM representative said that the programs were being included to demonstrate the usefulness of real 32bit OS/2 applications. They do a good job. The OLE/DDE features, perhaps the best integrated, are fast and seamless. For example, you simply grab a chart in the charting module with the mouse, and drag it into a word processor document. It's instantly transferred. The is a sharp contrast with Windows 3.1 OLE, where, when this is possible at all, the transfer can take several seconds to minutes. The integrated applications make OS/2 a one shop software shop, as the programs are of a higher quality than those found in some standalone integrated packages (such as Microsoft Works). The BonusPack also includes several other applications, including a "Lite" version of HyperAccess Communications for OS/2, FaxWorks/PM, a system information tool, and the IBM Internet Connection. This last is perhaps the most impressive. It essentially consists of a slightly stripped down version of IBM TCP/IP 2.0 (providing SL/IP line connectivity), and a set of clients. You can connect via SLIP to the IBM provider (Advantis) or to a local provider. I took this opportunity to setup a SLIP connect with a local vendor (The Internet Access Company of Bedford, Mass), and it worked great. The included Internet clients range from adequate to excellent. The Newsreader and Gopher clients are fine. The FTP client was usable, although I decided to use a Windows based one instead. Ultimedia Mail/2 Lite has some nice features, but was difficult to configure and had some rough edges (for instance, no word wrap). While it also possessed some excellent features, I decided to use Eudora (a popular Windows based mailreader) instead. Web Explorer/2, the World Wide Web/Mosaic client, isn't shipped with the package. Instead, once you have Warp installed, you use the "Retrieve Software Updates" program and download the latest Beta. This worked well when I was first installing the package, and is how I obtained Beta .91. When .92 was released (on November 23rd), this option gave me an "Unable to resolve address" error, and I had to FTP the package instead. I can only assume that this is a problem at the IBM server. The client itself, however, is excellent. I'd been using Mosaic Netscape, and WE/2 matches it in terms of features, and surpasses it in terms of reliability. I wasn't able to find one HTML document it couldn't handle. It runs quickly, and supports Forms better than Netscape. It does a great job of printing the pages as well. The WebMap (which allows you to move back to any spot you visited previously) is wonderful. The only thing that isn't supported (that I could find) was mailto: links, which allow you to click and send mail. In .91, these weren't recognized, but in .92 I got an error message saying that they weren't currently supported, so we can assume that it will be added before the program is finished. It also takes advantage of OS/2's threading and object-orientation features, allowing, among other things, you to drag a .GIF file out of the program and onto your hard disk. The one thing the Internet Connection lacks is an IRC client, but I found a relatively good (text mode) IRC/2 client that works quite well. The Internet Connection software contains a shell Windows Sockets DLL, which allows you to use any standard Windows based client. The DLL is very fast and reliable. On the whole, the software causes me much less trouble than similar Windows based programs, and runs faster. With it's enhanced speed and usability, not to mention bonus applications, Warp is an excellent product. While I hate to come out this much in favor of a product, I really can't help myself in this case. IBM has been promising a better Windows than Windows for quite some time (it's been a better DOS than DOS for years), and they've finally delivered. The one sore spot is applications, which is being quickly rectified, by the inclusion of excellent apps within the OS package itself, and an increase in development by third parties (Borland, for instance, is porting their Object Windows libraries to OS/2. When this is completed, we can expect a flood of OS/2 versions of current software). Warp has the potential to catch on, and it should - it's shameful that people should have to make do with DOS and a shell. Additional flavors of Warp will be released late this year and early 1995. These include a version featuring peer to peer networking (which, according to IBM, will be compatible with Windows for Workgroups (NETBEUI) networks, as well as Novell and other platforms), and versions including IBM's optimized WIN-OS2 code. There will also be a new version supporting Symmetric Multiproccessing, in the first half of 1995 (OS/2 2.1 for SMP is available now). ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ L I T E B Y T E S ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The REAL Sysops Guide ³ By Aldo Cella 654@7654 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ So, you want to run a BBS, do you? Got it all planned out, eh? Well, before you start anything at all, there are a few things you ought to remember. It seems that lately, with all the boards, AE's, and CF's going up everywhere, quite a few sysops have forgotten or completely ignored the unwritten code established by those early pioneering spirits of the good ol' days. You see, no matter what hardware you use, no matter how much storage, how fast a modem, or what software you want to run, the success or failure of your system ultimately depends on YOU. The remainder of this file consists not of countless obscure details on how to run your system, but of a few short hints which should prove helpful at times. Remember, REAL sysops know the difference between constructive criticism and insults. * ACCESS - One of the most frustrating things that can happen to a new user is to log onto your board after being validated by you, only to find out that he still doesn't have access to 80% of your system. REAL Sysops make plenty of their system available to the average, non-privileged user. ** Corollary: You'll always have more average users than privileged ones. * SUBSCRIPTION FEES - If you plan to charge a subscription fee of any kind for your system, MAKE SURE that it's worth the money to have an account on your system! REAL Sysops who charge subscription fees realize that their system is now a business. * SUBSCRIPTION FEES II - If you are going to charge a subscription fee, MAKE SURE that you VERY CLEARLY define exactly what it is about your system that the user is having to pay for. REAL Sysops who charge subscription fees check out all the legalities FIRST. * SUBSCRIPTION FEES III - If your system happens to have an AE, Catfur, etc., or happens to have any phreak/hack info anywhere on it, DO NOT CHARGE ANY FEES! REAL Sysops may take a chance here and there, but they aren't idiots. * ADVERTISING - Getting publicity for your system must be done carefully. Most likely, people's first impression of your board is going to be determined by the first few lines of your ad, so post your ad carefully. REAL Sysops understand this, and will not sound like a used car salesman when advertising their board. ** Corollary: REAL Sysops know that arrogant ads will attract only arrogant users. * ADVERTISING II - Be decent about how you put your ad on someone's board. Make it short and to the point, and leave it in a section which you know is read frequently (i.e., the public board). REAL Sysops know that redundancy will irritate intelligent people. * SECURITY - If possible, make every possible test of your security before you put your system up. It is best to do most of these tests both while logged in at the board, and again from over the phone. It also can't hurt to have other people try to crash your system during the testing. REAL Sysops are very thorough about this, and sleep much better because of it. ** Corollary: Time spent perfecting your input routines is more wisely used than time spent re-constructing your userfile after it's been blown away. * SECURITY II - Once your done testing, and you know your system is solid, don't make a big deal out of it. Talking about security all the time will make users think you're paranoid, and hackers think you're challenging them. REAL Sysops know that discretion is as important as prevention. ** Corollary: REAL USERS rarely ever ask a sysop about his system's security. * VALIDATION - Always validate within 24 hours if you can. Little is more frustrating for a user than to log onto your board after a week has gone by, and find out he still isn't valid. REAL Sysops always validate quickly, as it always helps with public image. * VALIDATION II - NEVER, at any time, ask new users to answer why they should be given an account on your system. REAL Sysops know that the only people who could answer that question impressively don't even NEED to be calling your system. ** Corollary: You can't build an ELITE board by treating users like spinach in a strainer. * RESTRICTED BOARDS - If you are going to have restricted areas on your system, it's best to make them invisible to those who can't access them. REAL Sysops would rather do this than answer 10000000 feedback messages from users asking for access to your restricted areas. * ABUSERS - From time to time, or perhaps more frequently, you'll end up having to deal with some jerk who is making trouble on your board. REAL Sysops handle these people swiftly and quietly before they get out of hand. ** Corollary: REAL Sysops will only warn abusers ONCE. * ABUSERS II - At times, the jerk that you really want to grind into the dust hasn't really done anything serious yet - maybe just sent you some rude complaints. In this case, it's better not to lose your cool. REAL Sysops know that trading insults with an idiot makes you look worse than he does. ** Corollary: REAL Sysops never drag private matters out in front of the public eye. * CRASHERS - It is very likely that the day you first advertise your board, you'll probably get a couple of attempts at crashing your system. These crashers are doing it just for the thrill, and are counting on the fact that the security of new systems is generally poor. REAL Sysops will have taken this into account, and will have little to worry about. * HACKERS - You probably won't encounter any real hackers unless you charge a subscription fee for your system. These people are usually more determined than the above crashers, and are out to get someone's account on your system, preferably one with high access. Preferably YOURS. REAL Sysops deal with these people carefully and try not to make enemies of them. ** Corollary: REAL Sysops know the difference between a REAL Hacker and a 12-year old WARGAMES fanatic with an acoustic coupler. * NOVICES - From time to time, you'll also most likely run across people on your board who are very new to telecommunications, and will ask very dumb questions. REAL Sysops remember what it's like to be "unenlightened", and will not snap out rude answers at these people. * ADEPTS - Eventually, you may also run into a few people who are so advanced, it'll blow your mind. REAL Sysops know just what to do upon discovering one of these users - QUESTION HIM! Get him to talk to you, and find out what he knows and how it can help you. ** Corollary: There's a difference between being inquisitive and being a pest. ** 2nd Corollary: REAL ADEPTS don't hoard their knowledge. * PUBLIC RELATIONS - Many systems suffer from having a sysop who never chats with users, and answers feedback rarely at best. REAL Sysops keep in touch with their callers, and are respected for it. * CUSTOMIZING YOUR SYSTEM Adding modifications to your system is mandatory if you expect it to be unique, and can be one of the main factors in its success. It can also be the primary instrument of its destruction. REAL Sysops know this, and usually follow some variation of the following rules. Follow these steps, and you'll rarely ever have to worry about any mods you add to your board: A. Pull an idea for a mod out of your imagination. B. Consider how you would go about adding it to your board. C. Try adding it in that way to a BACKUP COPY of your system. D. Test it to see if it works. If not, you added it wrong. Back to B. E. Test the mod to make sure it can't be used to crash your system. F. Test the rest of your system to make sure it's still solid. This completes the REAL Sysop's Guide. On a final note, you won't ever have trouble recognizing a REAL Sysop. Just listen to everyone talk about a board they really like sometime. There's probably a REAL Sysop running it. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Silly Strings ³ by Ima Moron 1@9661 ³ From Icenet Sysops Everywhere ³ Lite Bytes Editor ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ From: Morgoth #2@10408 WWIVNet Home In Nome on my modem by the Bearing Sea! From: Sam #1@4051 WWIVNet MacIntosh: Computer with training wheels you can't remove. From: The Zoo Keeper #1@20762 WWIVNet If the answer isn't right, the question must be wrong! From: "Adam Selene" Rodent #221@3 WWIVNet Good...Bad...I'm the guy with the gun. From: Octavious #1@8357 Icenet Never put off till' tomorrow what you can avoid all together. From: Aaron Pathfinder #18@2491 WWIVNet Those that beat their swords into plow shares, will plow for those who don't From: Indiana Jones #174@15131 WWIVNet ...Your tagline has been assimilated. -- The Collective From: Pandora #424@9661 Icenet Pandora....open my box if you can!!! From: Jim Lilly #74@1294 WWIVNet Worry is a dark room for developing negatives.... From: Papa Bear 1@11579 WWIVNet (A)bort, (R)etry, (I)nfluence with a large hammer. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ WWIVnet Technical Docs ³ by Midnight Tree Bandit 1@8411 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ [IceNEWS Serialization Note - This is part two of four. Internal page numbers have been retained for ease of reference. Page breaks, however, have been removed.] IV. MESSAGE PACKETS The most important component of any network is the mail file, which contains all the public posts, email, and network information which makes the BBS network what it is. WWIVnet mail files consist of a series of mail packets, each with its own header segment describing the type and size of the packet. There are two types of mail files in WWIVnet, each similar but processed differently. The netmail file is the file received from another system, and contains packets destined for that system as well as other systems in the network (if the BBS has more than one connect). Netmail files may be compressed, using the PKWare compres- sion libraries. The local mail file contains the packets from the netmail file which are destined for the BBS only. A. Message Header Each message sent through the network has a header. The header tells which user/system originated the message, where it is to be sent to, the type of message, and other information. The structure of the header is: typedef struct { unsigned short tosys, touser, fromsys, fromuser; unsigned short main_type, minor_type; unsigned short list_len; unsigned long daten; unsigned long length; unsigned short method; } net_header_rec; Each header is 24 bytes long. The fields, in detail, are: tosys, touser The destination of this message (system number and user number, if applicable). The touser field will be zero in all cases except for email (main_type==2) and SSMs (main_type==15). fromsys, fromuser The origin of the message (system number and user number). This contains the user number/system number combination of who actually wrote the message. If the message is "gated" (that is, a sub post from a system on a different network, or email from a user in another network), 'fromuser' will be zero. main_type, minor_type The type of message this is. The main type stores the actual type (email, post), and the minor_type is used to specify what sub-type it is. For example, the main_type for a post is 3. The minor_type is then used to specify what type of post it is, what subboard the post is to go on to. A list of main and minor types is found in section IV(D), below. daten The time the message was sent, stored in unix time, as the number of seconds since Jan 1, 1970. length The length of the message. This includes any information between the packet header and the message itself, such as the sender's name, message title, and so forth. Note that the length does not include the node list indicated by list_len. method If the file is encrypted, compressed, or source-verified, this describes the type of compression or encryption used. This will tell NETWORK2 (or other local mail tosser) which DEmmm.EXE to execute. DEmmm.EXE is explained in more detail in the next section, below. list_len Some messages need to go to more than one system. For example, networked posts may go to over 20 different systems. It makes no sense to have a separate copy of the message for each destination system, so the same copy of the header and message is used. (This is referred to as "stacking" the message). The list_len specifies the number of destination systems listed. If list_len is non-zero, then the touser and tosys fields are ignored. The list_len is not used for e-mail to a user (main_type is 2 or 7). When a message has only one destination system, the destina- tion system is stored in tosys, and list_len is zero. If there are two or more destinations, then tosys is 0, and list_len holds the number of destination systems. When list_len is non-zero, the list of destination systems is stored immediately after the header, but before the actual message itself. The length of the list is not included in the length field in the header; the length stored in the header is the length of the message only. Each entry in the destination system list is two bytes long, and is stored in the standard byte-reversed format of 80x86 chips. For example, if a post is destined to system 1, the tosys field will be 1, and list_len will be 0. If the post is destined to systems 1 and 2, tosys will be 0, list_len will be 2, and there will be 4 bytes between the header and message. The bytes will be: 01 00 02 00 (remember, byte-reversed format). The rest of the header will be the same for both messages. A packet thus consists of a net header, a destination list (if any), and the text of the message. The length of a full message packet is thus: 24 + 2*list_len + msg_length. The message text (the part following the header) for a post or email begins with information intended for the message header shown when the message is displayed. Each piece of information is followed by a carriage return and line feed (cr/lf) character to separate it from the next except for the message title, which is followed by a NUL character. For most posts and email, that information is: Message Title Whatever title the user gave to the post. Sender name usually the name and number of the user who wrote the message with the system number, in whatever format the sending BBS uses. Date string Formatted date the post was written, in whatever format the BBS uses. So the message header format for most posts and email would be TITLESENDER_NAMEDATE_STRINGMESSAGE_TEXT. Some main_types have other information, as noted in the main_type descriptions in section IV(D). B. Mail File Processing A WWIVnet file is simply several packets appended into one file. Starting with NET25, the WWIVnet software supports compression of the netmail files to help save on connection time in long distance connections, using the PKWare Compression Libraries. These files have a slightly different format from uncompressed files, but the most important issue at this point is that the first long int of a compressed file has the value 0xFFFEFFFE. If you purchase the compression libraries from PKWare, details covering compressed packets are found in Appendix A. Otherwise, anyone using WWIVnet compatible software should be advised to make sure their connect only sends them uncompressed files, and the software should be able to detect and reject compressed packets before attempting to process them. Since there is nothing in the data exchange described above to warn that an incoming packet is compressed, there is no way to detect and prevent transfer of a compressed mail file. Once it has been received and (if necessary) uncompressed, the mail file should be processed following these steps: 1. Open the file, and set the current message pointer to the beginning of the file. 2. Read in the net header (24 bytes). 3. If list_len is non-zero, read in the list following the header (2 * list_len bytes). 4. Read in the message itself (length bytes). 5. Process the message. 6. If not the end of file, go to step 2. To ensure the integrity of the mail file, an initial pass over it should be done. This pass would step through each packet in the file, reading each header and making sure no packets are truncated. If the file ends in the middle of a packet, then it is obviously corrupted and cannot be processed properly. At this point, either throw away the whole file or remove the truncated packet and process the remaining packets. During the packet tossing, each packet needs to be marked as processed. Thus, if analysis is interrupted before completion, the packet analyzer can skip over those packets already processed when run again. To mark the packet as already processed (or deleted), set the main_type to 65535. Any packet with a main_type of 65535 should therefore not be processed. The analyzer should follow these steps when processing each packet: 1. If main_type is 65535 (deleted), skip the message. 2. If list_len is non-zero, do steps 3-6 for each entry in the list, substituting that entry for "tosys" 3. If tosys is this system, process the file locally (in the case of NETWORK1.EXE, the message is copied to LOCAL.NET for processing by the local packet processor). 4. If tosys is an unknown system or unreachable, put the packet in the dead mail file. 5. If the next system to forward the packet to ("next hop") is the system that the message was last received from, put the packet in the dead mail file. This prevents messages from looping 6. If the tosys is okay, put the packet into the file that is to be sent to the next hop. Of course, it is more complicated than that. If list_len is non-zero, all destination systems should be processed before the message is stored anywhere. This way, if the message has 10 destinations, each of which has the same next hop, only one copy of the message will be printed out, that packet with 10 systems in its destination list. Likewise, for a system with more than one connection, if a message has 4 destination systems going through one next hop and 3 going through another, one copy of the message will go into each hop's file -- one with four systems in the node list, the other with the remaining three. The dead mail file is reprocessed whenever a network update (new BBSlist or connection list) is received. C. Local Mail Processing and DEmmm.EXE Processing of local mail packets should be similar to processing of incoming netmail packets. The main difference between netmail tossing and local mail tossing is that the main and minor types are ignored during netmail processing, and the list_len and node list are ignored (since there won't be a list on local mail). 1. Open the file, and set the current message pointer to the beginning of the file. 2. Read in the net header (24 bytes). 3. Read in the message itself (length bytes). 4. Process the message. This is done according to the main_type and (if applicable) minor_type of the message. 5. If not the end of file, go to step 2. A few main_types (noted below) cause return messages to be generated to go back out to other systems. The local mail file analyzer should place these into an interim mail file that will be processed by the netmail file analyzer after local mail processing has been completed. The WWIVnet local mail analyzer (NETWORK2.EXE) puts these messages into P1.001 or P2.001. Then NETWORK1.EXE analyzes this file and places them into outgoing netmail files for the system's connections. Some types of messages that contain network related files such as updates to the nodelists and connect lists and email to all sysops from the NC or GC. For the sake of network security, these messages have a source-verification signature at the beginning (using, for example, RSA or a similar algorithm). There are several "methods" used to handle these messages, and each requires a decryption program, or DEmmm.EXE (where "mmm" is the encryption method, as listed in the 'method. field of the net header). These DEmmm.EXE files MUST be supplied by the NC or GC of each network, and each network's DEmmm.EXE are unique to that network. That is, WWIVnet's DE1.EXE will not handle method 1 messages from WWIVLink, nor vice versa. When a message is encountered with 'method!=0', the following steps are taken: 1. The local packet analyzer writes out the text of the message (no header or node list) to a temporary file (TEMPDE.XXX) in the data directory for the relevant network. 2. A command line for calling the appropriate DEmmm.EXE is created using the C command "sprintf(cmd, "de%u %s/tempde.xxx", nh.method, net_data);" ('nh' is a structure of type net_header_record, 'net_data' is the network data directory). The command is then executed. 3. The DEmmm.EXE program is then responsible for reading the TEMPDE.XXX in from disk, deleting it, then attempting to decode it. Two things can then happen: a. If the TEMPDE.XXX fails decoding (bad CRC), DEmmm.EXE just exits (returning to the local packet analyzer). If the analyzer finds the TEMPDE.XXX file does not exist, the message is deleted and the program goes to the next packet. b. If the CRC checks out in the DEmmm.EXE program, it writes out the decoded text into a new TEMPDE.XXX file and exits. The local packet analyzer reads in the data from that file and replaces the text of the message with that, then goes ahead and processes the packet as determined by main_type. Network operators who wish to write EN/DE programs for their own netwide messages may wish to consider using the RSAREF library to develop their own source-verification scheme. D. Main and Minor Message Types The main and minor type of each message determines how it is processed (where it goes, whether it's a sub post, email, or network info, etc.). The analyzer reads the message header in first to get the main and minor types, then performs the operation indicated by those fields. Here is a list of the main_ and minor_types, along with the WWIV BBS #define name and descriptions of the processing required. Encoding method is assumed to be zero unless otherwise noted. Note that while these descriptions concern analyzing local mail packets, they also apply to how to create outgoing netmail packets. It should also be noted that some of the "UNUSED" message types could be used by some third party software, but they are not an official part of the WWIVnet software, so no mention is made of them. main_type 1 (0x0001) -- main_type_net_info These messages contain various network information files, encoded with method 1 (requiring DE1.EXE). Once DE1.EXE has verified the source and returned to the analyzer, the file is created in the network's DATA directory with the filename determined by the minor_type (except minor_type 1). 0 -- Feedback to sysop from the NC. This is sent to the #1 account as source-verified email. 1 -- BBSLIST.NET -- Old-style node list (non-Group setup). 2 -- CONNECT.NET -- Old-style connections list (non-Group). 3 -- SUBS.LST -- List of subboards ("subs") available through the network. This has been replaced by main_type 9. 4 -- WWIVNEWS.NET -- An electronic magazine of sorts distributed within some networks, usually monthly. 5 -- FBACKHDR.NET -- a header file added to network update reports for the network. 6 -- Additional WWIVNEWS.NET text -- appended to the existing WWIVNEWS.NET file. 7 -- CATEG.NET -- List of sub categories. WWIV's sub setup facility uses this list so the sysop can specify what category a netted sub falls into. The network's SUBS.LST compiler uses this information for compiling the subs lists sent out as main_type 9. 8 -- NETWORKS.LST -- A list of all current WWIVnet type networks. This message type is source-verified. That is, there is a digital signature at the beginning of the message text which is decoded by the DE1.EXE to verify that it has come from a "legal" source. This helps make sure that the network info will only come from the Network Coordinator. If the source- verification fails, the packet is discarded. main_type 2 (0x0002) -- main_type_email This is regular email sent to a user number at this system (see tosys and touser, above). Note that this type of mail should only be received by systems that assign numbers to users (WWIV, VBBS, etc.). BBSes in a WWIV network that only identify users by name (PCBoard, RBBS, etc.) can only receive email-by-name (see main_type 7, below). Email has no minor type, so minor_type will always be zero. Processing of the email is straightforward. The analyzer looks for the user number indicated by the touser field. If the number exists and the user has not been deleted from the BBS, the message is written into the email file, addressed to the user indicated. If the number does not exist or the user at that number has been deleted, the packet is deleted without processing. Alternatively, the analyzer may generate a return message (as email) to the sender telling him that the mail was not delivered and quoting the message back to him. main_type 3 (0x0003) -- main_type_post This is a post sent from the sub host's system to the subscriber systems, for subs that have a numeric sub-type (subs of alphanumeric subtypes are main_type 26, described below). The minor_type will be the numeric subtype the post will go to. When this type is encountered, the network analyzer should search the BBS data files for the sub type given. When the sub is found, the message is written into the indicated message file in whatever format the BBS software uses. If the sub type is not found, the message packet is simply deleted. (There are some local mail preprocessors which will scan the packet for messages on subs that the system does not carry, and return the message to the host system. An alternate mail analyzer could have such a capability built in.) main_type 4 (0x0004) -- UNUSED main_type 5 (0x0005) -- main_type_pre_post These messages are similar to main_type_3, except they are posts en route from the subscribers to the host of a sub. Like main_type 3, the minor_type is the numeric subtype of the sub. Since this is from subscriber to host, list_len will be zero. When this type of packet is received, the local mail tosser should look for the appropriate file which will contain the list of subscribers to the sub (WWIV and NETxx use N[subtype].NET) If the file is found, a main_type 3 copy of the post is generated in an outgoing netmail file, with the node list read from the subscriber file inserted before the message text (and the list_len field modified reflecting the addition of the node list). If the file cannot be found, the analyzer assumes the BBS does not host the sub and deletes the packet. Many WWIV sysops use a feature of the software known as network validation ("netval"). When a sub is set for netval (this is found in the SUBS.DAT record for the sub), the analyzer does not send the post out to the network. The sysop must validate the post on the BBS, at which point it is sent out by the BBS. This also applies to pre-posts for main_type 26 (main_type_new_post). main_type 6 (0x0006) -- main_type_external This type has largely been replaced with main_type 27 (main_type_new_external), but essentially works the same way. This will create messages that are read and processed by an external processor. The minor_type is determined by the program expected to work with it. When the processor encounters this type of message, it searches for a file that contains the names of external programs, and the minor_types they accept, used by the BBS (EXT_LIST.NET for the WWIVnet software). If found, the message is written or appended to EXTERNAL.NET in the network's data directory. The external program, when run, should be able to find the file and process it, then delete the file (or the portion that it uses). Note that when there is more than one main_type 6 message in a mail file, the EXTERNAL.NET will contain all messages of that type, so the external message processor needs to be able to find the relevant text within the file. It is encouraged that programs that use external messages use main_type 27 (main_type_new_external), which has more robust features. Among other things, that type will create a separate temporary file for each main_type 27 message found, making processing of external messages simpler. main_type 7 (0x0007) -- main_type_email_name The other email type. The touser field is zero, and the name is found at the beginning of the message text, followed by a NUL character. Minor_type will always be zero. When this type of packet is encountered, the analyzer gets the name from the beginning of the message text and searches through the BBS's user list to find the specified name. If it is found, the message is written into the email file for the BBS. If it is not, the message will be deleted or a return email may be sent back to the sender, explaining that the message was not delivered and quoting the email back. The destination user's name is prepended to the beginning of the message text, followed by a NUL, then the rest of the usual message header info and the message text. The message header info at the beginning of email-by-name messages is thus DEST_USER_NAMETITLESENDER_NAME DATE_STRINGMESSAGE_TEXT. main_type 8 (0x0008) -- main_type_net_edit This type is used by Black Dragon in conjunction with his program NETEDIT, a utility for managing the network files on a WWIV BBS. Minor_types are as follows: 0 -- A partial update to the BBSLIST information. 1 -- A request for BBSLIST information to be changed. 2 -- A partial update to the connection information. 3 -- A request for connection information to change. 4 -- An update to NETEDIT's registration record. 5 -- A transmittal of the installation message. 6 -- A request for to transmit a registration record. 7 -- A response to request for a registration record. 8 -- A remote request for a net analysis ("/A"). 9 -- An ASCII text response to a remote analysis. 10 - Network Editor E-mail and/or automatic feedback. 11 - A message reporting an error condition. 12 - A request for installation and ver information. 13 - A request for a remote node's ALIASES.NET file. 14 - A request for a node's aliases. 15 - A response to the alias request. For more information on the use of these types, see the NETEDIT documentation, or email Black Dragon at @1180 on WWIVnet or @13080 on WWIVLink. main_type 9 (0x0009) -- main_type_sub_lst Networks with large subs lists (over 32k) break them up into parts and send the set out under this main type rather than the subs.lst type under main_type 1. The minor_type indicates the part of the subs list. When the analyzer processes this type, it creates a file in the appropriate network directory and copies the message text into it. Minor_type zero creates the file SUBS.LST, and all other minor_types create a SUBS.x file where 'x' is the minor_type. main_type 10 (0x000a) -- UNUSED main_type 11 (0x000b) -- main_type_bbslist This type is for the new-style BBSLIST files used in networks that use the Group setup. It covers full and partial updates sent from the Network Coordinator (NC) to the entire network as well as update requests sent from the Group Coordinators (GCs) to the NC. The encoding method is either 1 (when coming from the NC) or calculated as ((minor_type % 256)+256) (when coming from the GC). Messages of this type are source verified by DE.EXE, handled the same as main_type 1 packets are. Minor types are as follows: 0..255 Full bbslist update sent from NC to the network. Minor type is the Group number. Creates BBSLIST. in the network data direc- tory. 257..511 Full bbslist update sent from the GC to the NC. Minor_type is the Group number plus 256. Creates BBSLIST.A in the NC's network data directory. 513..767 Partial bbslist update sent from the NC to the network. Minor type is the Group number plus 512. Creates the file BBSLIST. in the network data directory. This file will be merged with the appropriate full BBSLIST file during network analysis (described below). In some networks, the Group updates are sent out to the network by the GCs rather than the NC. main_type 12 (0x000c) -- main_type_connect This is the same as main_type 11, except it is for CONNECT files. It also does not include partial updates, as there are none for CONNECT files. The encoding method is also either 1 (from NC) or ((minor_type % 256)+256) (from NC) for this type. These packets are also source-verified, checked by DE.EXE. Minor types: 0..255 Full CONNECT update sent from NC to the network. Minor type is the Group number. Creates CONNECT. in the network data directory (after source-verification). 257..511 Full bbslist update sent from the GC to the NC. Minor_type is the Group number plus 256. Creates CONNECT.A in the NC's network data directory (after source verifica- tion). In some networks, the Group updates are sent out to the network by the GCs rather than the NC. main_type 13 (0x000d) -- UNUSED main_type 14 (0x000e) -- main_type_group_info For now, this type only covers email to the members of a particular Group by the GC, so minor type will always be zero. Encoding method is the Group number plus 256. Processing for this is the same as for type 1/0 messages. They are source-verified by DE.EXE. main_type 15 (0x000f) -- main_type_ssm WWIV BBSes also send out small messages, known as "SSMs", across the network. These are little one-line messages generally telling users when their mail has been read and so forth. Some BBSes have been modified to send other types of messages. At any rate, main_type handles these small messages. Minor_type is always zero. Like email, the analyzer searches for the user number in the BBS's user list. If found, the message is written into the SSM file for the BBS. Since this is a feature most non-WWIV systems do not support, they can be ignored. One feature of WWIV networking is the ability for network sysops to send "REQs" to the hosts of subs, enabling them to automati- cally subscribe to and drop subs they belong to. Main_types 16 through 19 handle REQs and their responses. main_type 16 (0x0010) -- main_type_sub_add_req This is for requests to add the sending system to a sub's subscriber list. Minor_type will be the numeric sub type, or zero for alphanumeric sub types. For minor_type==0, the sub type (followed by NUL) will be the message text. Otherwise, there should be no message text (if there is, ignore it). When this message type is received, the analyzer should search for the subtype's subscriber file (N[subtype].NET for WWIV systems). If the file is found, the system number of the new subscriber is added, if it is not in there already. If the add is successful, it will then look for a text file in the data directory (SA[subtype].NET for the WWIVnet software) that contains information the sysop wants to send back to the subscriber. A type 18 message is sent to the subscriber indicating status of the add request (see below) and including the text in the SA[subtype].NET file, if one is found. If the add is not allowed, the analyzer looks for SR[subtype].NET and sends that text back to the requester. If the add is otherwise unsuccessful, the type 18 message will include the status and a short explanation of why the add was not successful. main_type 17 (0x0011) -- main_type_sub_drop_req This is the same as a main_type 16 message, except that it is sent by a subscriber wishing to drop a sub. The minor_type is determined the same way as main_type 16. There should be no message text, but if there is any, it is ignored. Processing is similar to a type 16 message. The analyzer searches for the subtype's subscriber file, and upon finding it removes the subscriber's system number from it, if it is there. Status of the drop request is returned to the sender in a main_type 19 message, with a short message appended that explains the status. main_type 18 (0x0012) -- main_type_sub_add_resp This carries the status response to a main_type 16 (sub add request). The minor_type is determined the same way as type 16 message. The first byte of message text (after the subtype, if minor_type==0) is the status of the add request. Possible status byte values are: 0 -- Subscriber added successfully. 1 -- This system is not the host (N[subtype].NET not found). 3 -- Not allowed to add subscribers automatically. 4 -- System number already there (can't add it again). Since these messages also may contain a message to the requesting sysop, the message header info at the beginning of the message text appears as SUBTYPESTATUS_BYTE TITLESENDER_NAMEDATE_STRINGMESSAGE_TEXT. In this case, SENDER_NAME will be the name of the sysop of the system hosting the sub. 'SUBTYPE' will only be included if the sub is an alpha subtype. And finally, note that there is not or after the status byte. When received, the processor will send the message text mentioned in the main_type 16 description (minus the status byte) to the sysop as email, if the status is 0 or 3. main_type 19 (0x0013)- main_type_sub_drop_resp Similar to main_type 18, this carries the response to a sub drop request, with the minor_type following the same conventions as above. This also carries a status byte as the message text: 0 -- Sub dropped successfully. 1 -- This system is not the host. 2 -- System number is not there (can't drop it). 3 -- not allowed to drop subscribers automatically. The message header info in the message text is the same format as for main_type 18. When received, the processor will send the message text mentioned in their main_type 17 description (minus the status byte) to the sysop as email, is the status is 0 or 3. main_type 20 (0x0014) -- main_type_sub_list_info In many WWIV networks, the subs list coordinator (SLC) occasionally sends out "pings" to all network members. When this message type is received from the SLC (minor_type 0), the analyzer checks the BBS's sub data file. If there are any subs hosted by the receiving system which are flagged for inclusion in the distributed SUBS.LST, a list of them is returned to the SLC via another main_type 20 message with minor_type==1). When the SLC receives the reply, it is written into SUBS.INF in the network's data directory (appended if the file exists). main_types 21 (0x0015) through 25 (0x0019) -- UNUSED These were formerly reserved for the WWIVLink network for their own updates, before they purchased NETUP (WSS's network update software). It is not longer used by that network. main_type 26 (0x001a) -- main_type_new_post Because of the growing number of networked subs on WWIVnet, the number of available subtypes was getting scarce. Starting with WWIV version 4.22 and NET32, alphanumeric subtype support was added, greatly expanding the possible subtypes. Alpha subtypes are seven characters -- the first must be a letter, but the rest can be any character allowed in a DOS filename. This main_type covers both subscriber- to-host and host-to-subscriber messages. Minor type is always zero (since it's ignored), and the subtype appears as the first part of the message text, followed by a NUL. Thus, the message header info at the beginning of the message text is in the format SUBTYPETITLE SENDER_NAMEDATE_STRINGMESSAGE_TEXT. It is assumed that a message coming into a host is a prepost, and it is processed similarly to main_type 5. Likewise, it is assumed that messages coming into a sub- scriber system are net posts, and they are processed similarly to main_type 3. main_type 27 (0x001b) -- main_type_new_external This is the new type of external message, implemented with NET33. Like main_type 6, it creates an external file with the message text for an external program to process. Again, the minor_type is determined by the external program. There is a full explanation of how these messages are processed in Filo's WWIVnet Software Docs. In short, similar to main_type 6, the local mail processor searches for the minor_type in a data file (EPROGS.NET for NETxx), and creates an external file if it is found. When the local mail processor is finished with the local mail file, the program associated with that minor_type will execute, with the associated filename (with path) as a parameter. [More Next Issue] ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ IceNEWS is an independent journal 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.³ ³ Many product names used herein are the property of their respective ³ ³ manufacturers/authors. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ