ллллкФФФФФФФЗкФФФФФФФЗкФФФФФФФЗкФФЗ кФФЗкФФФФФФФЗкФФФФФФФЗлллл лХХХГ ФФФФФ КГ ФФФФФ КГ ФФФФФ КГ КХГ КГ ФФФФФ КГ ФФФФФ КХХХл лХХХдЭИ ЩЭМГ ЩЭЭЭЭМГ ЩЭЭЭЭМГ К\Г КГ ЩЭЭЭЭМдЭИ ЩЭМХХХл лХХХХХГўўўКХХГўўКХХХХХГўўгФЗХХХГўўКўГўўКГўўгФЗХХХХХГўўўКХХХХХл лХХХХХГБББКХХГББКХХХХХГББЩЭМХХХГББК\ГББКГББЩЭМХХХХХГБББКХХХХХл лХХХкФй гФЗГ гФФФФЗГ гФФФФЗГ КХГ КГ гФФФФЗХХГ КХХХХХл лХХХГлллллллКГлллллллКГлллллллКГллКХГллКГлллллллКХХГлллКХХХХХл ллллдЭЭЭЭЭЭЭМдЭЭЭЭЭЭЭМдЭЭЭЭЭЭЭМдЭЭМ дЭЭМдЭЭЭЭЭЭЭМ дЭЭЭМлллллл N E T W O R K N E W S L E T T E R кФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФП Г July 1993 Volume Number 3 Issue Number 2 Г РФФТФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФТФФй Г In This Month's Issue of IceNEWS Г Г ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Г Г Editor's Notes by Special Agent .............. 1 @7672 Г Г Г Г Features Г Г WWIV The Overlooked BBS Software Г Г DESQview/WWIV For C Programmers ............. 1 @8869 Г Г Interview With The Subs List Coordinator Г Г Г Г Modders Corner Г Г Mod Tip's by The Flying Chicken ............. 1 @2456 Г Г Mod Of The Month ............................ Г Г Г Г Feature BBS Of The Month ....................... @7672 Г РФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФй кФФФФФФФФФФФФФФФФФФП ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФД Editor's Notes УФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ РФФФФФФФФФФФФФФФФФФй I want to thank The Flying Chicken for his support of The INN, again he has written an excellent article for the modders out there. Thanks TFC. *** The Bishop 1 @4550 starts next month as the coordinator for the INN Mod [or mods] of The Month. I am looking forward to the selections he makes. *** It has been hot in the Western NY Area the home of IceNET... some say we should change the name from IceNET to HeatNet. Our brain of truely has been slowed considerably, hence the late and brief INN for this month. *** I recently sent Wayne 1@1 WWIVNet some questions and here they are: SA... Rumors are a flying as to the release date of WWIV 4.23, when do you think would be an accurate date of it's release? Wayne... Unfortunately, no idea yet. SA... What new features should we expect to see? Wayne... Definitely multiple languages, some bug fixes, and cosmetic enhancements. Really don't have a list set up yet. SA... You must spend many, many hours programing and coming up with ideas, plus hours on end of tech help. What motivates you to continue the updates of WWIV and the support of WWIV? Wayne... Mostly it's answering email. I don't know why I keep doing it. SA... What is your view on all the different networks that are springing up all over the country since the release of the multinet 4.21a? Wayne... I think we'll see the number drop after a while. SA... Finally, many are wondering if WWIV will go multi line, is this in the future for sure? Wayne... No, not for sure, but it is a possibility for v4.23. We're looking into it now. *** I was hoping for some information on the release of 4.23 but as you can see he has no idea. Multilined WWIV seems to be the item most wanted by WWIV Sysops and it looks like it is on the way. *** I have heard of many sysops having a net validate bug, wherein a sub without Net Val turned on still asked if you would like to net validate messages. Also if net val was on it would not ask you to validate. I had the same problem. Our friend the Deranged Alchemist sent me the following fix. It works and I am happy :). OK, Try this... The Deranged Alchemist #1 @6855 Try the following (Assuming you have the source and a compiler): Load up MSGBASE1.C and search for the function scan(); void scan(int msgnum, int optype, int *nextsub) { char s[95],s1[95],s2[95],*b,*ss1; /* s, s1, and s2 upped to 95 chars */ int i,i1,i2,done,quit,abort,next,val,realexpress; slrec ss; long l,len; postrec p,p1; irt[0]=0; irt_name[0]=0; done=0; Note that s[81], s1[81], and s2[81] were upped to 95 characters. This fixed my problem. If you don't have the source, or want to try this first, get a copy of the virgin BBS.STR (ENGLISH.STR in the ZIP file) put it in gfiles as BBS.STR (back up your modded STR file) and see if the problem goes away. If it does, Whala! Wayne The Lab BBS (618)462-0767 Thanks Wayne for the fix, this one was a killer on my BBS.... *** ФФФФФФФФФФФФФФФФФФЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭФФФФФФФФФФФФФФФФФФФ F E A T U R E A R T I C L E S ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ кФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФП ФФФФФФФФФФФФФФФФФФФФД WWIV The Overlooked BBS Software УФФФФФФФФФФФФФФФФФФФФФ РФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФй WWIV The Overlooked BBS Software By Wig DeMoville / A.K.A. Filo and Don Zarzecki / A.K.A. Black Ninja WWIV BBS Software has been often overlooked by magazines which have often focused on more expensive commercial products such as Major BBS, TBBS, and PcBoard or on public domain software such as RBBS. WWIV, which stands for World War IV, has made significant ground in the shareware market with several thousand systems registered world wide. WWIV sysops have been primarily hobbiests who were drawn to WWIV by several factors. It is extremely easy to set up. It is inexpensive to register and registration permits access to the source code. It has one of the smoothest working networks available, and it allows the sysop to significantly customize the BBSs without resorting to source modifications while permitting the registered sysop to make modifications to the software to give his board a "unique" flavor. EASE OF SET UP: From its beginnings as a teenager's project written in BASIC, WWIV has been easy to set up, featuring an INIT (initialization) program that created the necessary directories and permitted the sysop to easily enter the system specific information required of the system. From its beginning in BASIC, WWIV was written in Pascal and finally in "C". Its origins as a "theme" board with a militaristic flavor have disappeared but its power, its features, and its ease of set up have steadily progressed since 1986 when the first registration was received. Documentation is complete and orderly. While it is not necessary for a sysop to read the documentation before installing WWIV, it will help. Documentation files for installation, sysop commands and users are included with each version. When setting WWIV up for the first time, the sysop runs the initialization program and is presented with a menu of set-up options most of which are self-explanatory. One feature that seems to be unique to WWIV is that the initialization will have the system try to automatically detect the brand, model, and speed of the modem. Once that is detected, the system will automatically set the modem parameters that should work with the modem. A sysop may "tweak" the modem parameters if necessary, but most sysops find the automatically selected ones to be close to optimal. The initialization menu is simple and appears as follows: 1. System info (name, passwords, newuser info, etc) 2. More system info (net, status, etc) 3. Paths (messages, gfiles, data, etc) 4. Com port info (port, IRQ, base address, etc) 5. Select modem type (now GEN-V32) <-- Gives you the modem type detected. 6. External programs (zip, terminal, etc) 7. External protocols (zmodem, hs/link, jmodem, etc) 8. External editors (full screen) 9. SecLev data changes 0. Auto-Validation data changes A. Auto-detect modem type (if possible) N. Update network info U. Change max # sub/dirs Q. Quit Customization of the BBS can actually begin here in some of the options available through the INIT program, such as whether or not you allow aliases or require real names, whether or not you wish users to be informed at logon regarding files which they uploaded that have been downloaded by others, and whether or not you wish to have a "free-format" phone number in order to accommodate European systems. Customization can also be done by changing certain default messages to be whatever you wish. The system supports color ansi, black and white ansi, and non-ansi default messages and displays the appropriate message to the user. Sysops requiring help with the initialization options and/or customization of default messages may consult the documentation or seek help from the designated WWIV support boards located in the USA and throughout the world. WWIV offers the sysop the ability to assign up to 255 different security levels, though most sysops only use 4 - 10 levels. Each of these levels can be configured for the amount of time per day, time per logon, how many messages can be read, how many private E-mails the user can send, how many posts the user can make on public message bases and whether or not the user can post anonymously. In addition the sysop can assign (AR's), account restrictions, which can be used for various purposes such as allowing only a certain group access to a specified message base. There are also (DAR's), Download account restrictions which are used much the same way as the (AR's) and these are used in the files section of the system. There are also function keys that the sysop can use while a user is online to increase a new user's security level, drop to DOS, chat with the user, increase or decrease a user's time in increments of 5 minutes, drop the user offline and give the sysop the user's and system's activity for the day. WWIV permits the system to have as many as 999 message bases and 999 file directories. Each file directory can hold as many as 499 files, giving the system the capacity of 498,501 files. Built-in commands support the two most popular file description formats available on CD-ROMS so that a sysop can easily use CD-ROMS on his system if he wishes. System menus are available in both Ansi and Ascii formats and may be easily customized by the sysop who wishes to have some individuality to his system. WWIV BASED NETWORKS: WWIV also supports several WWIV based networks. The oldest and largest of these is WWIVnet with over 1500 member systems. IceNET and WWIVlink are also relatively large WWIV based networks boasting over 600 members each. There are numerous small WWIV based networks that are primarily local and/or devoted to special topics. A WWIV board may be on more than one network. By joining a network the sysop can subscribe to a wide variety of networked message bases (subs) hosted by other sysops. The selection of subs that are available are many and diverse. The next version of WWIV which should be released during the fall of 1993 will also have FidoNet capability. Presently there are 42 documented WWIV based networks that a sysop can join. WWIV FROM THE USER'S SIDE: A user logging onto a WWIV system for the first time encounters a series of questions. These questions enable the sysop to know a little about his users and they also set the user's capabilities such as ANSI, COLOR, etc. Unmodified WWIV systems will use the following questions: Ansi graphics support detected. Use it? Do you want color? Alias/Handle? Real Name? Voice phone? Data phone? Street address? City? St? Country? Zip code? Sex? Date of birth? After the user has entered this information, he is asked to leave feedback ( a message) to the sysop. New users normally have limited access to the system until the sysop validates their account. A validated user normally will have access to the several sub-systems available on a WWIV board: Message Base area, General Text File area (bulletins), on-line programs, voting booth and file transfer section. Each section has its own menu of commands which a user can read. Expert users may toggle the menu status off. The user can obtain online help at anytime by hitting CTRL-O. WWIV SUPPORT: WWIV is a dynamic BBS system that offers one or two new releases each year. Each new release adds additional features and yet these new releases do not cost the registered sysop any additional money. WWIV support boards have many utilities, modifications, and on-line games available for downloading by WWIV sysops. These support boards also are available to answer technical questions that may arise by WWIV sysops. The registration fee for WWIV is $80.00. Registration fees and/or information about registration may be obtained from WWIV Software Services, P.O. Box 720455, McAllen, TX 78504-0455 In short, the WWIV software offers an inexpensive beginning to the fascinating hobby of running a bbs. кФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФП ФФФФФФФФФФФФФФФФФФФФФФФД DESQview/WWIV For C Programmers УФФФФФФФФФФФФФФФФФФФФ РФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФй by Alken Foijet Godden #1 @8869 I'm afraid to say that there is no easy answer when it comes to making original mods on a board. It would be close to impossible for me to write a mod package that would make a modded BBS DESQview friendly since there is a vast quantity of things that could have happened to make it unfriendly. The easiest problem to predict is footprint size. Many people look at their file size and decide that it is the same size as what's in memory. Ignore the file size and run some memory checks while the program is running, your results should be right on the money. Write down the routine you went through each time you checked the programs memory - this will insure accurate results. Reducing overhead in WWIV: OVERLAYS: You can reduce your EXE size just by optimizing the overlayed files that already exist. The size of your total overlayed files in memory is twice the size of your largest overlayed file (standard Borland). So, by splitting up the largest file into smaller ones you can gain some memory without overlaying more functions then what you started with. You have very little control over when your overlays reside in memory, so try to keep functions that call each other within the same file(s). Just looking at the map should tell you if there are any files that are noticeably larger than any others. You can overlay functions that weren't overlayed to begin with, but you should be very picky as to what exactly you're overlaying. Some functions use memory addresses to call other functions/data. If this data/function was overlayed it's likely that your program will spit up all over you. This includes declaring global variables within an overlayed file - if they are used by other files. SHRINKING: I don't suggest it, but it's easy enough to get the BBS to shrink from WFC to do network calls (receive too). The problem that arises is that if you need to shrink from WFC, it's also likely that you'll need to shrink before running your text editors also - which I found to be a pain to do. LARGE STRUCTURES: WWIV has incredible structures, and with a large user base and many networks they become even more incredible. I won't say exactly what to do about the structures, but they definitely become cumbersome. It might be a good idea to save all of these large structures to disk before running any external programs, and release the memory for that period of time. Any buffers could be freed before an external program runs also. You could rearrange some code so that the memory is freed before a program will need memory. Here is an example in "attempt_callout(void)" where a structure is used to find out what board to call. The memory isn't freed until well after it is done with the structure. This isn't a mod, but I've corrected the problem in theory: fl1 += weight[nn][i]; // existing code. if (fl1>=fl) { // It just finished i1=i; // using "weight" and break; // "try" } // if (fl1>=fl) { // i1=i; // break; // } // } // } // if (i1!=-1) { // for (nn=0; nn<net_num_max; nn++) { // All I did was copy these if (try[nn]) // lines from the bottom of the farfree(try[nn]); // function. if (weight[nn]) // farfree(weight[nn]); // This will save you 4 bytes per } // network and 6 bytes per connect farfree(try); // that you have. farfree(weight); // do_callout(net_networks[net_num].con[i1].sysnum); // existing time(&l); // last_time_c=l; // set_net_num(0); // reset network stuff return; // no reason to be in this function // anymore } // existing } // } // I have a friend who has about 15 networks and an average of five connects a piece (I really don't keep track). And where he's not about to get excited about 510 bytes, it's the theory that's important. I chose that piece of code because it was easy to demonstrate. If you find yourself disagreeing with anything I've said, it's the nature of programming. If we all had the same ideas we'd all write the same programs. MATH COPROCESSOR: If you have a math coprocessor, use it. No reason why not to. By turning floating point emulation off you should gain a substantial amount of memory. WWIV will be able to use the math coprocessor instead of calculating floating point numbers with the code Borland supplies. Remember to compile the entire BBS when changing things that effect the program globally (this includes overlays). Making your program DESQview friendly: INTERRUPTS: All interrupts except 50H-57H, 68H-6FH, and 78H-7FH, are fair game. DESQview uses these interrupts for its own use, do not hook them. INT 15H is used for DESQview's API. Your interrupt handler must preserve all registers both going into DESQview's interrupt handler and returning from DESQview's interrupt handler. INT 1CH / INT 08H (timers) are set up by DESQview. The amount of consecutive time slices is determined here, 5 foreground ticks = 5 consecutive timer interrupts. It's highly advised to pass control to the previous handler as quickly as possible because DESQview will hold off other interrupts until you do - which can effect high speed communications. DESQview's API: WWIVv422 now comes with a bit of API support. These improvements are a step in the right direction, but they are not "fully" there yet. WWIV uses 4 of DESQview's API calls. DESQview has 151 API functions that I'm aware of. If WWIV becomes a multi-line program using DESQview expect to see a great deal more of these API calls. DISK ACCESS: I don't recommend trying to alter any file structure because you'll end up running into problems with external programs that expect certain structures. As it is, WWIV is a fine running DOS program. However, if Wayne intends to make it multi-line it would be advisable that he create a function that all disk access run through. Why? Because here's where multi-tasking causes big problems with multiple programs using the same files. Let's say two WWIV's are running on two different modems. One WWIV writes updated information to a file, the second BBS should be informed of this - but before that, both BBS's should compare their data to each other because it could be different by this time. Having so many places in the code where disk read/writes occur makes for large code if all of the above is going to take place. As it is, WWIV's code could be smaller if all the read/writes were condensed into two or three functions. EXT/EXP MEMORY: Wayne put in a little piece of commented out code that I feel might reek havoc on many people who just take the comments off. This code causes the compiler to use extended or expanded memory for the overlays. For one thing, you're robbing Peter to pay Paul. You want to create some memory in the 640 region, but it's not a straight trade. For one, the compiler has to add some code to allow swapping to this memory - which goes into the base memory. And secondly, if you shrink the BBS for external programs the BBS.EXE program isn't even in memory at all - so what's the point? If you want speed, don't use DESQview. If you're using DESQview it's because you want to run several programs at once. Putting overlays into ext/exp memory only helps in terms of speed - otherwise there's no use for it. The biggest downside to using extended memory while in DESQview is that DESQview cannot manage it very well. When two programs request the same region of ext/exp memory at virtually the same time they can end up corrupting each others data. This is do to the nature of time slicing and ext/exp memory. Since you're running DESQview to run more than one program at a time, try to keep your memory as clean as possible. You know as a sysop that WWIV will be running in your first window, but you can't predict what you'll run in subsequent windows. Since the known variable is WWIV, then I suggest keeping this program as friendly as possible. ФФФФФФФФФФФФФФФФФФФЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭФФФФФФФФФФФФФФФФФФФ кФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФП ФФФФФФФФФФФФФФФФФФФД An Interview With The Sub List Man УФФФФФФФФФФФФФФФФФФ РФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФй SA... Odin being the subslist coordinator must be fun keeping up with all the sub changes. What do you do to stay on top of the situation? Odin: It's not easy staying on top of things. When I first started, it took 5 hours to get the first subs list out. The Editor left me over a month's work (ugh!). After that it took me about 1.5 hrs each "ping." Then, during my Easter break, I decided to write a program. This program was written in 2 days in Turbo Pascal 6.0. It allows me to update the subs list from a ping in about 15 minutes (yeah!). It also let's me set up the SUBS.* files anyway I want. I can place whatever category I want in which ever SUB file. It has incorporated CATEG.NET and a file called N99999.NET (list of all nodes which is updated by another program after NETWORK3.EXE is run). SA... What could the sub hosts do to help? Odin: For starters, they should check their //BOARDEDIT to make sure that the 'O' option for each of their subs is set to how they want the name to look in the subs files. If they want, they can leave it blank. Then the ping will grab the title from option 'A'. All the sysops have been great with their mail to me about their subs. Check the SUBS.LST, SUBS.1, and SUBS.2 files for your subs. If you find an error, e-mail me quick. I will have the change in the next update. SA... What procedure should they follow for hosting a new sub? Odin: First, check to make sure the sub doesn't already exist. When 2 or more subs discuss the same topic, both lose potential subscribers. Second, use //BOARDEDIT to set up the sub. Set the auto info and autorequest (except for adult subs) and select a category. Third, e-mail me the information (include SUBTYPE, HOST, NOTES, and TITLE). Lastly, advertise the heck out of it! It gets subscribers. By the way, picking an interesting name can lead to subscribers easier. SA... Are there are problems arising that you would like to address? Odin: Again the 'O' option in boardedit. Most of the time my program and I spend rejecting new "names" of peoples subs because they have put a description under the 'O' option. I know it says description, but Wayne Bell wrote the software to use this for the pings, so bear with me. SA... Many BBS's are still running 4.21a and earlier, should all subs still have a numeric subtype? Odin: This has been a topic of discussion between Jim and I for a while. Both of us agree that it is better if everyone upgrades to 4.22. It allows more flexibilty. Right now, I have to deal with the alpha types and numeric types for the same sub. It can get very confusing. The biggest problem with alpha types is that sysops have a tendency to use a type already in use. Again, read the subs list first before choosing a name. SA... It was brought to my attention that you are working on a program that will print out on the hosts message base a list of subscribers to a hosted sub, like WWIV Serv does, is this true and if so tell us about it. How does it work and when will the public be able to use it? Odin: This program came from another program I wrote called FIXSUBS. This new program is called SUBSCR(ibers). It is currently in testing stages right now and will be available sometime around July 4th. Basically, it reads the node file and use the nodes and BBSLIST.* to get the board names and REGIONS.DAT to get the area. SA... Odin you have set up a sub that is for the subs list. What is the purpose of this sub and who should subscribe to it? Odin: It is supposed to help sysops to contact me quickly. No one has subscribed yet (guess I don't advertise too well.......). Anyone can subscribe to it. I can help with subtypes, names, etc....... It is a discussion forum also. You can make comment, suggestions, and even gripes to me about the SUBSLIST. So give it a try. Odin: Thanks for interview. If anyone has a question, feel free to write. FIXSUBS is available for download here (we are an ISB and have ASV). SUBSCR will be available in beta form on July 4th. A mod will also come with it. The Following is a post that Odin sent to everyone concerning the subs.lst: Attention all SysOp who host Subs for IceNET - from Odin (SLC) As the IceNET Subslist Coordinator, I was going through the SUBS.INF file (the file created by Jim when he sends out "pings") and I have noticed a few things that I would like to address. I would like all sysops who are currently hosting subs to check the following information: 1. Check for duplicate sub types on your boards (there are a few) 2. Verify all your subs in the subs list. Any discrepancies, please let me know. 3. next paragraph. The last thing I need for you to do is to check your //BOARDEDIT for each of your subs. There is a misleading menu command called 2'O': Description 1. This really should be called SUBS.LST Sub Title. When Jim does a "ping", this ping searches a file called SUBS.XTR for the all the subs you host that have the AUTO INFO set in the 'J' command. The 'O' description will be the title that you wish to have in the SUBS list. If you leave it blank, then the 'A' Title will be used. Please refrain from using the 'O' to describe the sub. Please place the title you wish to use in the subs list instead. Also, Jim and I have discussed a possible change in the CATEG.NET file. The addition of categories, and the renaming of others is a possibility. This is not etched in stone though. Also, the Highly Recommended category is only for the National SysOp Sub. I know all of you think that your subs should be highly recommended (as do I), but then we would only need 1 category. So I may be renaming this category, The National SysOp Category (but I am not sure....). If you have any questions, please feel free to e-mail. Please check over your subs and let me know.......... щыЁЄ Subs List Coordinator p.s. If you wish to automate your subs to remove dropped nodes from the network, call my board and download a file called FIXSUBS.ZIP which will contain the method to automating your subs. ФФФФФФФФФФФФФФФФФФФЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭФФФФФФФФФФФФФФФФФФФ M O D D E R S C O R N E R ФФФФФФФФФФФФФФФФФФФФФФФФФФФ кФФФФФФФФФФФФФФФФФФФФФФФФФП ФФФФФФФФФФФФФФФФФФФФФФФФФФД TFC's Tips Of The Month УФФФФФФФФФФФФФФФФФФФФФФФФФ РФФФФФФФФФФФФФФФФФФФФФФФФФй The Flying Chicken #185 @7672 Some Basic WWIV WWIV. One thing for sure, it's versatile. In that versatility, lies literally hundreds of thousands of possible mods, ranging from simple prompt changes to the more involved mods such as the multi-line mod or the message quoting enhancement. But all of them have one thing in common, they rely on basic WWIV variables. So before we get too involved in mods, I think we will hold back a bit and stick to the tried-and-true basics. Variable Basics It is vital to know all you can about the variables used in WWIV. Each variable takes up precious space in your BBS's data area, and duplicate variables can cause you endless headaches. So we should start with some of the basic WWIV variables, the ones that any modder should at least be aware of. The definitions for all of the global WWIV variables are stored in VARS.H. This file contains variables that are accessable to any function in your BBS. There are quite a few variables in VARS.H, and we certainly can't cover them all, but I'd like to highlight some of the special ones. The Integers checkit 1 if extended ASCII characters are acceptable from the keyboard or com port. 0 instructs WWIV to accept only the lower 128 characters. curdloads 1 if the user is in the transfer section, 0 if the user is NOT in the transfer section. The 'T' command from the main menu simply sets curdloads to 1. The next time the main menu should be displayed, curdloads is checked, and the transfer area menu is displayed instead. echo 1 if WWIV should echo characters to the com port, 0 if not. This feature is set for the entry of passwords. hangup A 1 indicates that WWIV should hangup the phone at it's earliest convenience; used commonly in the '/O' command. helpl The number stored in this variable indicates which help section should be displayed when Ctrl-O is pressed. The is the number stored in HELP.MSG, in the first column of a line of '=' characters. hungup 1 if a user has hung up, 0 otherwise. This variable is normally set by a call to checkhangup(). lines_listed This varialbe contains the current number of lines that has been displayed on the user's screen (NOT THE SYSOP's, they can be different sizes!). When this value reaches the user's screenheight, a pause prompt is displayed. net_num The current network number, as stored in the 'N' setting in INIT. Remember 0 is the first net, 1 is the second, reguardless of the numbering systems you see anywhere else. ok_modem_stuff Setting this variable indicates that WWIV should perform modem routines. If you start the BBS with the /M parameter, this value is 0. topdata The setting of this variable indicates which "topscreen" is displayed locally. 0 disables the display, 1 creates the system status display, and 2 creates the user status display. To actually display the topscreen, a call to the topscreen() function is in order after setting this variable to the desired value. useron 1 if a user is on the BBS, locally or remotely, 0 otherwise. A Lone Double timeon The number of seconds the user has been on. Structures Which brings us to the meat of the variables, structures. There are countless structures in WWIV, some of them large, and I won't go into the data stored in these structures in detail here. Rather, I'll give you a quick definition of what type of information they contain. The word in parentheses below the structure name is the global variable associated with the particular structure. userrec This structure contains user information for the (thisuser) current user. configrec Contains data from CONFIG.DAT, which defines the BBS (syscfg) configuration. statusrec Holds key data about the BBS, most of which changes (status) constantly. This structure is also used to store data from the BBS when external programs are running. It is written to disk before each external program call, and restored afterwards. subboardrec (subboards) Contains //BOAREDIT information about each sub, such as message file name, ARs, restrictions, etc. directoryrec (directories) Stores //DIREDIT information about each sub, such as storage directory, DARs, and other flags. usersubrec These structures hold the subboards and directories (usub) available for each user. Note that not all subs and dirs (udir) are available to all users, so these structures are used as indexes to the actual sub number or directory number. (More on these in the future, I assure you.) postrec Contains data about each message or e-mail, such as (msgs) author, anonymous flags, etc. modem_info This structure stores modem setup strings, connection (modem_i) parameters and more, all taken from the settings in MODEMS.MDM. net_networks_rec (net_networks) This structure holds the INIT settings for each network your system is a member of, such as node number and directory. wwiv_version While really a string, this variable holds the current WWIV version number, suitable for display. Curtains Well, that's enough to chew on for the moment. Some of the more simple mods you'll find just display some of the variables I've mentioned above, and I'm sure you got an idea or two about using them to personalize your BBS. But there are many others, so feel free to poke around inside of VARS.H to see what you can find. And we'll talk again next month. The Flying Chicken The Insane Asylum BBS IceNET 1 @2456 ФФФФФФФФФФФФФФФФФФФЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭФФФФФФФФФФФФФФФФФФФ кФФФФФФФФФФФФФФФФФФФФП ФФФФФФФФФФФФФФФФФФФФФФФФФФФФД Mod Of The Month УФФФФФФФФФФФФФФФФФФФФФФФФФФФФ РФФФФФФФФФФФФФФФФФФФФй [First Release: IceNews] ЩЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЛ К WWIV Desc : Send SSMs to your users or over a network. К К К К Filename : TB5-422.MOD Mod Version : 1.0р К К Author : чhe сishop 1st File Modified : BBS.C К К 1st Net : 1@ 7.WWIVnet 2nd File Modified : К К 2nd Net : 1@ 7.WWIVweb 3rd File Modified : К К 3rd Net : 1@ 7.ExpressNet 4th File Modified : К К 4th Net : 1@ 7.FunNet 5th File Modified : К К 5th Net : 1@4550.IceNET 6th File Modified : К К 6th Net : 1@4550.USLink 7th File Modified : К К К К WWIV Version : 4.22 Date : 19 Jun 1993 К К К К Difficulty : лБББББББББ (Have you noticed 90% of mods are К К 1 out of 10 on the scale?) К К К К Description : SSM's are those short (<80 chars) messages you see К К right before reaching the main menu each logon (ie. "The К К Bishop read your mail on xx/yy/zz"). This mod answers the К К request of Stainless Steel Rat 1@7111 who wanted to send К К SSMs to his users. The mod is also designed so that you К К can easily let users send SSMs to one another if you like. К К Or you could limit it to Co-SysOp's. Whatever. The К К important thing is that the user's name will automatically К К be inserted into the SSM, and the SSM will never exceed К К 79 characters. К К К К At the request of Elston Gunn and other SysOps, I've К К upgraded this mod to allow sending SSMs over a net. К К Please don't send "junk" SSMs over the net; sending them К К costs money. Because of the "danger" of sending junk К К SSM's, the mod is currently set up to allow only SysOps К К to send SSM's across the net. However, if you wanted to К К it'd be easy to change that, too, allowing users access. К К К К Enjoy! К К чс К ШЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭМ кФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФП Г 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: Add the proper variables to BBS.C (void mainmenu). ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ void mainmenu(void) { = double d; + + char ok; /* TB5-422.MOD */ + userrec u; /* TB5-422.MOD */ + unsigned short sy,un; /* TB5-422.MOD */ /* Plus whatever else you may have defined here, of course.. */ ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ Step 2: Add the proper lines to BBS.C (void mainmenu). ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ = if (strcmp(s,"CLS")==0) = outstr("\x0c"); /* TB5-422.MOD * * Note: This mod is setup to let anyone use the SSM editor. If you * want to restrict it, either move it to the proper part of the code, or * make the first line "if ((strcmp(s,"SSM")==0) && (X)) {" * * . . . and replace the x with something along the order of: * * "thisuser.sl>50" (51+ SL's can use it) * "lcs()" (limited Co-SysOps and above can use it) * "cs()" (Co-SysOps and above can use it) * "so()" (SysOps (SL 255) can use it) * "thisuser.ar & 4" (People with AR "C" can use it) * "usernum==1" (Only user #1 can use it) * * TB5-422.MOD */ if (strcmp(s,"SSM")==0) { /* anyone can use it */ ok=0; /* add ok as a char at top of void!! */ nl(); prt(2,"Send to who : "); mpl(30); input(s2,30); if (!s2[0]) { ok=2; un=0; } else parse_email_info(s2,&un,&sy); nl(); if (sy) if ((thisuser.restrict & restrict_net) || (!so())) { /* SysOp only */ un=0; pl("You can't send SSM's over the network."); } if (un) { if (sy) npr("Sending SSM to %u@%u (%s)",un,sy,net_name); else { read_user(un,&u); strcpy(s1,nam(&u,un)); npr("Sending SSM to %s",s1); } nl(); nl(); read_user(usernum,&u); strcpy(s1,nam(&u,usernum)); if (sy) { sprintf(s2," @%u",net_sysnum); strcat(s1,s2); } strcat(s1," says: "); ch=(79-strlen(s1)); /* Use ch as an int */ pl("Enter the SSM - "); prt(1,":"); mpl(ch); inputl(s2,ch); nl(); if (strlen(s2)>0) { strcat(s1,s2); prt(5,"Is this ok? "); if (ny()) { ssm(un,sy,s1); nl(); pl("Saving.."); ok=1; } else { ok=2; nl(); } } else ok=2; } if (ok==2) pl("Aborted."); nl(); } = if ((strcmp(s,"/O")==0) || (strcmp(s,"/G")==0)) { /* Note: /G added */ ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ Step 3: You're done. Please send me email if you use this mod. !! ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ Note: I didn't write an SSM editor. It would be pointless, since Tolkien has already done an excellent job of writing one. So don't make a mistake when writing your SSM's unless you've got Tolkien's editor or don't care. ЩЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЛ К History : К К К К Version Date New К К ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ К К 421a/1.0х 10/17/92 Original Mod. К К 422 /1.0х 06/19/93 Add net SSMs, clean up the code, update for v4.22. К ШЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭМ кФФФФФФФФФФФФФФФФФФФФФФФФП Г WWIV Utilities by 1@7: Г РФФФФФФФФФФФФФФФФФФФФФФФФй Program Ver Date Description ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ Chain 4.3 17 Sep 92 Run old WWIV chains with high speed modems. Day 1.0 15 Aug 92 Run parts of external event only on given day. DelBBSAd 0.8 8 Aug 92 Delete all known BBS Ads in new uploads. кФФФФФФФФФФФФФФФФФФФФФФФФФФФФП Г WWIV Modifications by 1@7: Г РФФФФФФФФФФФФФФФФФФФФФФФФФФФФй FName Ver WWIV Date Description ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ TB1 1.1 4.21a 14 Oct 92 Allow user to abort hangup after batch transfers. TB3 1.0 4.22 04 Apr 93 Super Auto SysOp Validation Mod. TB4 1.0р 4.21a 16 Oct 92 Add oneliners (aka WWIV hacks) to WWIV. TB5 1.0р 4.22 19 Jun 93 Allow SysOp/Users to send custom SSMs. TB7 4.22 Unreleased Full Filepoint system complete with commissions. TB8 1.0 4.21a 27 Dec 92 Place a single line of text in a cosmetic box. TB9 1.0х 4.21a 25 Dec 92 Old Scan in the xfer area (opposite of a New Scan) TB10 1.0 4.22 05 Apr 93 Print a news file, showing users only new news. TB11 1.0х 4.22 11 Apr 93 More cosmetic, detailed //pending list. TB12 1.0х 4.22 17 Apr 93 Limit chains from 1200 bps users. TB13 1.0х 4.22 03 May 93 Force Callout Menu TB14 1.0х 4.22 03 May 93 Simple File Tagging TB15 1.0х 4.22 01 Jun 93 Re-Order Subs/Dirs in //BoardEdit & //DirEdit TB16 1.0х 4.22 Unreleased Add lots of info to chains (min speed to run, # times each chain has been run, grouping, etc). TB17 1.0х 4.22 10 Jun 93 Add support to WWIV for one net callout per x days. All the WWIV v4.21a mods that haven't been updated work fine in WWIV v4.22. Out Of Circulation: (Added to stock WWIV 4.22) ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ TB2 1.0 4.21a 07 Sep 92 Allow SysOp to use 26 Alt Keys as BBS Macros TB6 1.0р 4.21a 30 Oct 92 A better newuser default editor/protocol mod. ФФФФФФФФФФФФФФФФФФФЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭФФФФФФФФФФФФФФФФФФФ Feature BBS of The Month ФФФФФФФФФФФФФФФФФФФФФФФФ Berea BBS (716) 675-9384 IceNET Node 7671 West Seneca, NY Berea is currently operated on an 486 with 8 megabytes of memory, 120 Megabytes of hard disk storage, a CD-Rom Drive for downloading nearly 1 Gigabyte of Shareware programs. Berea has a rotating CD-Rom Library which changes monthly to offer a diversity of programs for downloading. The CD's include several Night Owl series, Two Pheonix series, and an Alpha and Omega. Transmission is achieved through a US Robotics 9600 baud V.32 modem, with V.42 Berea currently uses registered WWIV 4.22 BBS software with personal modifications, and Berea is Networked with the IceNET, WWIVnet, FishNET, and MicroNET Networks. Berea was established March 17, 1987, on an Atari 8 Bit Computer. It was later upgraded to an 8088 and then finally evolved to it's present hardware configuration. Berea Hosts 3 IceNET subs; The Christian Issues Network Subtype 7671 Ambassadors For Christ Subtype 17671 Political Thought and Debate Subtype 27671 When did you first start bbsing? I first started BBSing in January of 1985. I was hesitent and unsure of what the modem world would lead me to. I called many BBSes and really found many of them to be nothing more than war boards. What caught your attention, that later made you decide to start your own BBS? Although I did not start this BBS, I soon found a comfortable place as a user on Berea. Berea was going through some changes and some rough times as it's Sysops and Co-Sysops were not always present. I, through the rough times, made minor suggestions here and there. I was later asked to assist in the daily operations of the BBS. Having only an Apple IIe to work with made these tasks very cumbersome and difficult especially at 300 baud. I soon became a user of the IBM world and learned that the task of daily maintance became enjoyable. The actual Sysop had become too busy to operate his own BBS, so he turned over the complete operations of the system to myself. I remember my first experience as The Sysop when I logged on and found almost 200 pieces of mail waiting for me. Many of these were old, but it was my policy to personally answer each and every piece of mail. When did you join IceNET? I joined IceNET in December of 1992. Why did you join IceNET? I wanted to join IceNET for quite sometime, I think what kept me from joining was the fact of my failure to communicate and my own action of jumping to conclusions. I called many IceNET Boards and found them to be of the Typical High School Sysop type. There is nothing wrong with this type of BBS, it just wasn't what I was looking for as an older Sysop. It was my conversations with Jim (1@1) and Special Agent (1@7672) which led me to see that there was a diversity in IceNET just as in WWIVnet. I then without hesitation joined IceNET. What is the theme or purpose of your BBS? Berea was established March 17, 1987, with the main intent to give an open discussion for religion, and an open forum for Christian conversation. As we all know, religious discussions are shunned from many of the local boards. The idea of Christ, in almost any form of conversation, is rejected and shunned in today's fast paced society. Berea was intended to break this barrier and offer free speech to those who wish to participate in any of the discussions. Although Berea offers a forum for religious speech, it also offers forums for other discussions as well. These include Political, Technical, as well as many others topics which may change from time to time. Berea, was named after the City of Berea in Macedonia (now called Verria or Salonica). The people of Berea were highly recognized and commended by The Apostle Paul for their diligence in Seaching The Scriptures to see if what they were being taught was truly in-line with The Written Word of God. The Bereans were recognized for their perseverance in upholding the Truth, Standards, and Grace that God has set forth for all of mankind. What makes your BBS different or unique from others? To parallel the Berean People, Berea offers an on-line Bible program called "Godspeed" which allows the users to search and find any and all occurrences of any word or phrase in The Bible. Also on-line is a Concordance and Lexicon program that will refer to any word in The Bible and give the user the appropriate Hebrew/Greek word with the original definition when the verse was written. These are available as study helps in an effort to shed Light on The Truth of The Word of God. For home study Berea also has several on-line Bible programs, such as "The On-line Bible" and "God's Word For Windows". Berea also offers a reference library to Preachers, Pastors, Laymen, or anyone who wishes to gain knowledge gleaned from The Bible. Running a BBS takes much time and effort, what makes it worth it for you? Just the act of accomplishment make the task worthwhile. I also want to thank Jim (1@1) for his dedication to IceNET and WWIV software. He has made the Sysop's side of the BBS more enjoyable for us. Jim's addition of the Multi-net Server has allowed me to pull several extra message subs while at the same time it has also lowered my long distance phone bill. My personal thanks to Jim, his efforts, and his dedication to IceNET. кФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФП Г 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.Г РФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФй