ÞÛÛÝ° ÜÛÛÛÛÛÜ ÜÛÛÛÛÛÛ° ÛÛ° ÛÛ° ÜÛÛÛÛÛÛ° ÛÛ° ÛÛ° ÜÛÛÛÛÛÜ ÛÛ° ÛÛ°°°°° ÛÛÜÜÜÜ° ÛÛÛÜ ÛÛ° ÛÛÜÜÜÜ° ÛÛ° ÛÛ° ÛÛ°°°°° ÛÛ° ÛÛ° ÛÛßßßß° ÛÛßÛÛÛÛ° ÛÛßßßß° ÛÛ° Ü ÛÛ° ßÛÛÛÛÛÜ ÞÛÛÝ° ßÛÛÛÛÛß ßÛÛÛÛÛÛ° ÛÛ° ßÛÛ° ßÛÛÛÛÛÛ° ÛÛÜÛÛÛÜÛÛ° °°°°ÛÛ° ÛÛ° ÛÛ°°° ÛÛ°ÛÛ° ÛÛ° ÛÛ° ÛÛ°ÛÛ°° ßÛÛß ßÛÛß ßÛÛÛÛÛß ÞÝ° ÞÝ° ÞÝ°ÞÝ° ÞÝ° Þ° ÞÝ°ÞÝ° ÞÝ° Þ° ÞÝ°Þ° Ý° Þ° Ý° Þ° Ý° Þ° Þ° The Journal of IceNET November 1994 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Editor's Desk ³ ³ The Upper Registers Will (1@6754) ³ ³ Managing Editor's Notes Louie (6@1) ³ ³ Letters To The Editors Louie (6@1) ³ ³ IceNEWS Op-Ed Forum ³ ³ Is it you, or is you ain't my baby? Tolkien (1@2000 WWIVnet) ³ ³ ³ ³ Feature Stories ³ ³ The Facts About FAQs Deacon Blues (2@7653) ³ ³ WWIV Services on the Internet IceNEWS Staff ³ ³ A Day in the Life of an IceNET GC Music Man (1@9680) ³ ³ ³ ³ WWIV-Specific ³ ³ WWIV Utility & Mod Review Calvin (1@8262) ³ ³ Revolution 95! Spotnick (1@5497) ³ ³ ³ ³ Hardware ³ ³ Lexmark LaserPrinter 12R+ Will (1@6754) ³ ³ Oh, Those Upgrading Blues... Papa Bear (1@5079) ³ ³ ³ ³ Software ³ ³ Borland Paradox 5.0 Review Will (1@6754) ³ ³ Sidekick 1.0 for Windows Will (1@6754) ³ ³ MS-DOS Memory Management Renob1 (5@7650) ³ ³ ³ ³ Programming ³ ³ Tips on Sound Blaster Programming Odieman (949@2132 WWIVnet) ³ ³ Advantages of C Over PASCAL Grim Reaper (2@8415 WWIVnet) ³ ³ ³ ³ Lite Bytes ³ ³ Silly Strings Ima Moron (1@9661) ³ ³ ³ ³ Special! ³ ³ WWIVnet Technical Documentation Midnight Tree Bandit (1@8411) ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ IceNEWS Staff For November 1994 ³ ³ ³ ³ "...Winners of the 1994 WWIVcon Award for Electronic News" ³ ³ ³ ³ IceNEWS Publisher - Jim 1@1 ³ ³ IceNEWS Editor-In-Chief - Will 1@6754 ³ ³ IceNEWS Managing Editor - Louie 2@7650 ³ ³ ³ ³ IceNEWS Contributing Editors ³ ³ WWIV-Specific - Spotnick 1@5497 Lite Bytes - Ima Moron 1@9661 ³ ³ Software - Music Man 1@9680 ³ ³ ³ ³ Editors-At-Large - Louie 2@7650 & 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 - "Warp Speed Now" ³ by Will 1@6754 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ On October 11th, I had the good fortune to be able to attend the official IBM announcement and launch of the latest version of the OS/2 Operating System, version 3.0, also known as Warp. The announcement took place at the IBM Corporate Headquarters in New York State, but was beamed by satellite to over a hundred cities in the US, and as far away as Australia. Some highlights - The Operating System itself was amazing. IBM has an amazing product here, and all that they need to do is market it. On the surface, Warp (now the official name of the product, a last minute change from 'v3' ordered by IBM Chairman Lou Gerstner himself) looks a lot like the OS/2 2.11. In fact, the only really noticeable difference is a launchpad from which you can launch frequently used applications. The launchpad allows you to have a set of "Drawers" beneath the icon you're using. During the demo that took place at the announcement, they had Lotus 1-2-3 for OS/2 sitting on the launchpad, and the rest of the Smartsuite for OS/2 programs in a drawer beneath it, hidden from view until you click on the handle. This is an amazing way to keep frequently used files available. Performance is way up. I saw Warp running on a 486sx-33 machine with four megabytes of RAM. While it wasn't lightning, it was fast. I fully expect to be able to run Warp on my four megabyte laptop without any difficulty. On an eight or sixteen megabyte dx2, the result is pure speed. There are also a lot of little tweaks. The settings dialog has been moved to its own place on the pop up menus for an object. You can now assign different settings priority (so that my OS/2 .MOD Player doesn't steal too many cycles from the BBS). Multimedia support, robust to begin with in 2.1, has been fully integrated (previously you needed to install it separately) into the installer, and support for a large number of additional sound cards and CD-ROMs (including some non-SCSI CD-ROM drives, and most major Sound/CD combinations). The movie player will now play MPEG and FLI files as well as AVI. IBM has dropped the applets it previously shipped with OS/2 2.x (which, while powerful, were a bit too much or too little for many) in favor of the Bonus Pack containing IBM Works. This includes full featured word processor, spreadsheet, and database products, as well as Internet support (we'll get to that in a minute). The applets support complete DDE between them, and a common "address book". Drop an adress into the PIM, and you schedule an appointment. Drag a spreadsheet into a word processor document. It's a level of flexibility I'd never seen before. If the link makes logical sense, you can do it. A friend of mine was able to get an early copy of the program, and claims to have already begun to do most of his work using the applications shipped with OS/2. From someone who has some of the most advanced software extant floating around his computers, this is high praise indeed. He's ecstatic. The last big addition to Warp is Internet SLIP/PPP support. Without going into too much detail, it's one button Internet. World Wide Web, FTP, Gopher, Mail, and News clients are all included, with a Mosaic interface due out next year (no word on pricing). You default connecting through the IBM provider Advantis, but the software will work with any SLIP/PPP connection. I'm planning on swapping my own Internet access to the Boston based Internet Access Company as soon as I have the final version of Warp installed. Moving back, the announcement itself was spectacular. A real sight and sound extravaganza. Leonard Nimoy did a very funny (pre taped) introduction, with lots of jabs at how Windows makes you waste time. They had Kate Mulgrew (the star of the latest Star Trek spinoff) on hand to help emphasize the Trek connection. All told, it was a major event. My conclusion - Warp is going to rock the industry. This is an amazing piece of software. Everything Windows 95 promises, and much more, now, instead of in the nebulous future. While availability was pushed back a week due to the discovery of a minor bug (copies should be hitting the stores as you read this), Warp has a serious jump on the competition. IBM should even be able to market it, since they've hired some of the marketing people who sold Windows 3.0 to the public a few years ago. Imagine what these people will do when they don't have to exaggerate the merits of the product! ----- Lastly, I'd like to pass along an announcement that Morgul (1@8315) sent me a while ago for inclusion in IceNEWS. I'd also like to remind everyone to come by the WWIV Chat Session on the IRC every Sunday afternoon, and to request the individual who's been locking the channel into invite only mode to find something more interesting to do. You know who you are.... The chat session is on #wwiv, and here's Morgul's announcement about the WWIV Mailing List on the Internet: In the ever expanding effort to make WWIV a cyber-household name, we now announce.... W W I V - T A L K : T H E I N T E R N E T M A I L I N G L I S T ! We may not have our own newsgroup on Internet (yet!) but we now have our own mailing list! Hosted from The Trading Post [SOUTH], this mailing list is open to ALL internet users who are interested in finding out more about WWIV. If you have an internet address, by all means, send in and join! To join the mailing list, send email to: mailserv@ttps.lakes.trenton.sc.us And include the phrase "join wwiv-talk" in the body of the message. Messages can be sent to the mailing list by addressing them to: wwiv-talk@ttps.lakes.trenton.sc.us Come join us, and help spread the word! ----- That's it for this issue. Enjoy the rest of IceNEWS! ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Managing Editor's Comments ³ by Louie 6@1 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Well, this is the November 1994 issue of the IceNEWS Journal. There was no October issue this year. Our last issue was September 1994. Various cons- iderations meant that we didn't have the material to publish an issue last month. The main reason we did not have enough material was that the IceNEWS Staff had shrunk in size. Deacon Blues and Spelunker left the Staff after the August issue and while in the middle of producing the September issue Papa Bear and Chris (now Crave) filed for extended leaves of absence. Papa Bear got a great new job that has him doing a lot of traveling and Chris went back to school. That left the active members of the IceNEWS Staff as Will (1@6754), our fearless Editor in Chief; Ima Moron (1@9661), our Lite Bytes Editor; and me, Louie (6@1, 2@7650), Contributing Editor at-Large - no, I don't know what that fancy title really means either. Three editors couldn't keep this show on the road moving. This month we have fixed that problem. We asked people from around IceNET to join the all-powerful IceNEWS Staff. And, boy were we surprised when two suckers...er, great all-around nice people, took us up on our offer. They were: Spotnick (1@5497) - The mod-king from Montreal, Canada. He is taking over at Papa Bears old post of WWIV-Specific Editor on the staff. Watch out at PB's old Desk, Spotnick. Jack Ryan used to have it and I am positive that the lower left hand drawer still has a bomb in it that could go off at any time. Music Man (1@9680) occupies the Software Desk. Yes, this is the same Music Man who doubles as the IceNET Group Four Coordinator and backup singer for Devo. So, if you are a sysop in Group Four and MM asks for an article, you better give it to him or I'll have him throw you out of IceNET. That gives IceNEWS a good sized and capable staff once again. Or maybe that is something we never had before. Well, we are sure to find out over the course of the next few months. The IceNEWS Staff now looks like this. Will 1@6754 - Editor in Chief Ima Moron 1@9661 - Lite Bytes Louie 6@1, 2@7650 - Contributing Editor at-Large, Letters to the Editor Spotnick 1@5497 - WWIV Specific Music Man 1@9680 - Software Crave (1@7668) and Papa Bear (1@5079) are still around. Just not very active normally. Papa Bear popped up this month to hand in an article. I hope Chris does something similar in the future as well. Both are just considered inactive Staff members. Kind of the like the disabled list in the NFL. Deacon Blues (2@7653) our old Editor in Chief still writes for us. He has an interesting article in this issue. In other news from me... You may be interested to know that a friend of mine decided to put up a new BBS in the 716 area. Jalpar (1@7650) asked me to help him set it up and run the board with him. So, I do a lot of my IceNEWS work off of Chaos Manor @7650 IceNET now. Chaos Manor is a board for the technical minded computer person and programmers a like in the main and this has helped me to recruit work from techies and programmers around IceNET. If you are a computer tech or a programmer and would like to write for IceNEWS, please drop one of the editors a line. We would be glad to hear from you. I went to the Buffalo Computer and Business Show on October 13th of this past month with Jalpar and Renob1 (5@7650). Other than collecting lots of sales literature to allow me nice bathroom reading material for the next, oh...six or seven years I got to see a lot of new stuff from around the world of computing. Two things did kind of stick out in my mind after going to it. 1. IBM was there pushing the heck out OS/2 3.0 Warp. 2. Microsoft was Not there and they were Not pushing Windows/ Chicago. They were content to allow a small local company to push Chicago for them. Warp looked fantastic. It does Windows better than Windows does Windows. It looks better than Windows. Now that I think about it, Warp's interface looks more like the Macintosh interface than the Windows interface. I saw a 486/SX lap-top with four megs of RAM run Doom ][ under Warp at a very nice speed. Now, I know IBM will play-up their product but I was impressed with Warp even after factoring in my cynicism of the whole "Business Hock the Wares" thing that was going on everywhere. Other things I looked out while hanging around with the IBM dudes was a RISC System/6000. The "Dream Machine" for any bbser walking the earth today. I even took a peek at AIX 4.1.1. IBM Unix to those of you who have no idea what that is. It isn't anything a PC person like myself will ever use but what the heck, while I'm at a Computer Convention I'll look at anything. Besides, you never know what you'll run into in the business world. It is good to be familiar with a little of everything once you get a "real" job. As for all the "Info Superhighway" talk that is still going on in the media the Internet is becoming a major topic for BBSers. Two local Buffalo-based companies were that the Computer Show hocking their Internet access service. The guys I talked to from these companies didn't seem to understand BBSes or BBSing. They kind of struck me as aging college students who had to have an Internet account they couldn't make hide nor hair of for one semester but when all the "Information Superhighway" talk started in the press they thought to themselves "Hey, we could make a business out of this idea". Another tidbit I picked up on is that a BBS has been set up for distribution for information about stolen computers. "The Stolen Computer Registry" (PO Box 1490, Madison Square Station, NY, NY, 10159) can be reached at the following phone numbers 212-777-1291 (voice), 212-777-1290 (fax) and 212-505-7526 (BBS, 8-N-1). Their BBS has a list of stolen computer serial numbers and provides info about recently stolen computers. This is a little something everybody who owns a computer should know about. Now, in this issue of IceNEWS we have a lot of fun stuff for you to read. Most important is probably the first of four installments of the new WWIV Technical Documentation that was written by Midnight Tree Bandit (1@8411). MTB did a great job and he deserves a round of applause from all of IceNET and WWIVland. Also, Deacon Blues (2@7653), our former leader, has an article about everything you might have wanted to know about internet style FAQ (frequently Asked Questions) text files. This is something that WWIVland folks should start to do. FAQ's for WWIVnet, IceNET, WWIVlink, IceNEWS, NetXX, etc. might be a good idea. Sure, in many cases lots of the questions are answered if you read the doc's but sometimes the FAQ-style is easier for folks to understand. Spotnick (1@5497) includes the inside scoop on WWIVsys. Music Man (1@9680) tells us what the life of a GC is like. Papa Bear (1@5079) has upgrading blues. Will (1@6754), our fearless editor in chief, has too many articles for me to mention them all. There are many, many good articles included in this issue of IceNEWS. I do wish I could mention them all, really. We actually have some stuff already lined up for the December issue though...but don't let that stop you from writings for us if you get that urge. Well, this is a rather lengthy version of M/E notes so I will end it here. Enjoy the issue. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Letters to the Editor ³ by Louie #6@1, Will 1@6754, and Ima Moron 1@9661 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Firestorm, The Solar Destroyer #1 @5409 writes the following: Dear Sir; I have been reading IceNEWS with some great deal of enjoyment. The stories are rather interesting. However, I've noticed that Icenews does not have a line indicating a standardized filename format with the usual date or vol. # reference when renaming the WWIVNEWS.NET file. I'd like to make Icenews file available for my users who may want to read them, but without any standard filename format, it'll stay offline.... I'd like to see this minor feature on the next issue of icenews. How about it? Louie, 6@1, the Letters Editor responds with: Thank you for reading IceNEWS. I am glad you are enjoying reading it. We stopped having volume numbers on IceNEWS issues because there was no standard usage of the volumn numbering system. The method we use in-house is NEWSYYMM.TXT for the names of the various files. YY is the year, as in 94 for 1994, and MM is the month with 09 for September, 10 for October, etc. The September, 1994 was called NEWS9409.TXT. We encourage everybody who keeps back issues of IceNEWS around to use this system of file naming as it is much superior to the old volume number method. [EIC Note: And of course, we encourage everyone to keep old issues around for users to download!] Crazy Horse, #1 @8050, writes about IceNEWS Content: I really like the tech stuff. Like how to max your memory and the little things to make your bbs run faster and hog less memory. I really don't think you could put too much tech stuff. IceNEWS EIC, Will 1@6754, Responds: Thanks for the comment! While we try to keep a broad range of items available in IceNEWS, I'll admit that the technical articles are generally my favorite as well (although, since I need to keep feet on all sides of the fence, I'll admit I like everything we print!). We don't have quite as much of it for this issue, but you might be interested in the "MS-DOS Memory Management" in the Software/Programming section of this issue. Lots of advanced tricks for getting more conventional memory without buying a third party memory manager. Of course, you're encouraged to make your own submissions! ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The IceNEWS Op/Ed Forum - ³ by Tolkien, 1@2000 WWIVnet ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ "Is You Is Or Is You Ain't My Baby?" Some time ago, when people began importing one network into another (via gating and the like), I had a premonition of problems to come. The feeling was vague, unspecific, but would not go away. For some years I have thought about that, tried to pin down my unrest. Finally, the source of the unrest began to come clear: the problem is homogeneity between the networks, used by unscrupulous people as a means of venting rage while escaping any punitive consequences. For example, let us say someone in WWIVnet gates nastygrams to a system in IceNET. Who then deals with this problem? HOW do they deal with it? Clearly, there is little that the system being abused can do, nor could any network official in the "receiving network" do much, if anything, about it. The abusing system, after all, might not even be a member of the destination network for the hatemail. What can the network officials in the originating network do about it? Should they, in fact, do anything at all? The system being abused might not even be a member of the network originating the abusive mail. There is no standard convention for dealing with such problems at this time, at least in any way other than something purely improvisational. Just whose problem is this anyway, and who addresses it if it IS a problem, if anyone? When this occurred to me, I was doing some research on copyright laws and so forth, and looked at the Berne Convention. The Berne Convention is a set of basic rules governing the protection of artistic, literary, and other such copyrightable works. Before the Berne Convention (which the United States signed in 1989), international copyright protection was only available to members of countries who had signed the Universal Copyright Convention, which the United States helped found and which went into effect on September 16, 1955. By joining the Berne Convention, the United States gave its citizens additional copyright protection in foreign countries (especially countries willing to join the Berne Union but who had not signed the UCC). Now, let us backtrack a bit. I propose that members of a network have some method to address the problem of hatemail originating in foreign networks. Or perhaps it would be best to be more general: people should have a method to cause unwanted network packets to stop coming to their bulletin board; it need not necessarily be unwanted email, though that is the most likely scenario. The problem is that network administrators are generally hesitant to provide such protection for systems not in their network at all, or to avoid the responsibility of addressing such cross-network problems by pointing out the fact that the network packets (probably email most often) cross network boundaries. I say, "So what!" Regardless of the homogeneity of networks, the members of ALL networks deserve at least a modicum of protection from harassment, just as the members of ALL countries deserve some basic copyright protection. So, I propose a new convention. Since these things are traditionally named after the place where they are discussed and signed into effect (Berne is the capital of Switzerland, Geneva is a city, etc), and since we operate in a "place" that is more virtual than actual (nd since the convention itself is vastly more virtual than actual at this point), I will even propose a tentative name: "The Virtual Protection Convention." Networks could sign it and thus provide their members some form of cross-network protection against network harassment, or could choose NOT to sign it, in which case joining systems would know in advance that such protection would not be afforded them if needed. Obviously, before any network could sign such a thing, it first must exist! There is the tricky part; the phrasing would need to be general enough that the specifics of a network's functioning (either technically or politically) are irrelevant, while being clear enough that protection from cross-network harassment is still maintained. So. I have pointed out a serious flaw with network homogeneity (which is an ever-growing trend). I have also pointed out a method that network adminis- trators can use to solve (at least in part) this problem - once the wording of such a convention can be worked out. To that effect, network coordinators interested in providing such protection from harassment for their member systems are urged to contact me (1@2000 WWIVnet) with suggestions for additions to such a convention (or for a better name than VPC, for that matter). If enough people work at the wording, eventually it will be good enough, and sysops and users can have at least some form of protection from cross-network abuse. In the end, I think this is a laudable goal, just as I believe that joining the Berne Union was a good thing for the United States to do. Someday, hopefully not long from now, we will see on network applications, "Member of the Virtual Protection Convention" or somesuch, and will thus know in advance whether we, as sysops and as users, have any protection from cross-network abuse. Sysops can brag: member of only networks that HAVE signed the VCP, thus assuring their users of some protection should THEY be harassed across networks. While this problem hasn't really been wide scale, I suspect that it is more common than most of us think, but simply goes unreported (or is ignored as even BEING a problem), since there is currently no real method of addressing the problem. In any case, the problem is apt to grow, and it is my opinion that creating some form of protection is better done early than late. The growing homogeneity of networks is a mixed blessing; let us enjoy the good, but let us not fail to address the bad. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ F E A T U R E S T O R I E S ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The Facts About FAQS ³ by Deacon Blues 2@7653 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ As the Internet, that Infobahn of Infobahns, slowly builds more and more off-ramps into WWIV BBSes and networks, readers of gated newsgroups (subs, we WWIVers call them) are going to notice something that they may not be accustom to seeing; a "Frequently Asked Questions List," better known as a FAQ, or sometimes FAQL. FAQs have been a staple around the Internet for years, but the idea never seemed to catch on much with WWIVers. It is generally considered good Internet etiquette to post a message asking about the existence of a FAQ for that newsgroup prior to the posting of any questions regarding the topic. This is an issue which should not be taken lightly and is something that many WWIVers who are just getting their first taste of newsgroup access through WWIV network gating may be unaware of. Simply stated, the purpose of a FAQ is to periodically inform others reading a newsgroup (either newbies to the newsgroup or those who've been out of it for awhile) of the answers to the most commonly asked questions regarding the topic of the newsgroup. It may sound like a bit of a waste to those accustomed to WWIV subs, but there is some good reasoning behind the idea of the FAQ. The FAQ was and is used by newsgroup moderators as a way to keep network traffic to a minimum. This is something that is crucial, especially considering the size and the logistics of the Internet. By periodically posting a FAQ, the number of (I hate to put it this way, but I really can't think of another way to say it) "stupid" questions that have already been asked and answered on the newsgroup many, many times before are kept to a minimum. This is particularly helpful on more popular newsgroups where there are thousands (or tens of thousands) of sites (nodes) subscribing. Think about the concept of the FAQ in WWIV terms. Let's say, for the sake of argument, that you're a sysop and have just subscribed to a sub for discussion of that hot, new (but fictional) TV comedy show "Sitcom: The Series." The show is currently top-rated and the sub has many subscribers and is very active. You've been successfully added to the sub and messages start rolling in at a good clip. However, after reading the new posts, you notice that many of the questions asked are repetitive and the answers are sometimes contradicting. Everyone is asking when the new season premier will air. Some say it's in two weeks, some say three or four. Several people post saying they've heard rumors that the show will be changing time slots. Many reply that the rumor is true, others say it's false. Somebody asks what other shows the star of the series has been in. Many people reply. Some answer with incorrect shows, but most cite the one only other show that the actor has done. Sound familiar? It should. There are a number of existing WWIV subs where the message traffic is reminiscent of the scenario I outlined above, and not all of these subs deal with popular television shows. The above could happen on almost any given sub that has a topic matter that is rather specific in nature. While not applicable to most "general"-type discussion areas, a FAQ can really help to resolve the problem of repetitiveness and multiple uninformed or misinterpreted answers on subs where there are problems with such things. Now, if you take this WWIV sub scenario that I outlined above and multiply it ten- or twenty-fold, you then begin to have an understanding of why a FAQ is considered almost a necessity for those who moderate Internet newsgroups. As I implied, even the most popular WWIV-network sub has only a fraction of the subscribers of almost any Internet newsgroup. When I used to have regular Internet access, it was almost nothing to see a newsgroup blow in 50-100 new messages on a daily (that's right, I said daily) basis. If half of the subject matter of the messages falls into the aforementioned "stupid" question/answer category, then how much bandwidth is wasted and how much was the cost of the transmission of it? FAQs can be beneficial to everybody. They benefit the readers by providing them with correct answers to popular questions, therefore minimizing the number of new but spurious posts. By curtailing the need for spurious posts, the sysop and the network benefit by the loss of the spurious data and the need to distribute it. A good FAQ is as informative but a concise as it can be. It asks and answers as many questions as possible without going into excruciating detail. A FAQ should not have the answer to every question ever asked about the subject, but only the ones that are constantly asked, especially by those who are new to the discussion or subject. After all, the idea of a FAQ is to conserve space, so it doesn't do much good to post a 200+k FAQ every month. Also, whenever possible, the source for the answer to the question should be included, for those who really wish to verify the accuracy of the statement. A good FAQ is also as accurate and up-to-date as it can be. This means that the moderator or the individual in charge of keeping the FAQ should always try to confirm the information in the FAQ and correct any errors that may be contained in it. After all, it doesn't make much sense to create a FAQ with erroneous information. Older questions that have not been asked in some time or to which the answers are know by virtually all should be removed and new, fresh questions should be added periodically. A good FAQ does not contain opinions and hearsay. As we all know, everyone has an opinion and everybody is a critic. A FAQ should not try to pose or answer a question that is speculative or subjective by nature. FAQs are meant to answer questions, not start arguments about the validity of an answer because the answer is opinionated in nature or is second-hand news heard from a friend, who heard it from another friend, who was told by his long-lost cousin (twice removed), etc. If you're going to put it in a FAQ, you should be able to substantiate your claims. With that in mind, a good FAQ is also usually a group effort. Creating a FAQ that contains current and accurate information can be a difficult and time-consuming task in some cases. Certain information may be difficult for only one person to research or confirm. Also, a group effort can help stimulate interest of other readers of the sub or newsgroup. A moderator can promote the building of a FAQ on his/her sub as a "project" for readers to participate in and give the readers something constructive to do. There's an old saying that everybody knows a little bit about something, and it's due to this that many group-written FAQs are usually compiled in relatively short order and with usually accurate and credible information. Regardless of whether you build a FAQ alone or with others, one rule must always be followed: stick with what you know and don't stretch it. Don't try to be too diverse on an initial effort to compile a FAQ. Let it slowly grow over time, just like a tree. Prune it every now and again by purging outdated material. Keep feeding it a handful of fertilizer (as in new material and not the fertilizer of the bovine category that we're all familiar with) every now and again and it could thrive for years with relatively low-maintenance. As with anything that demands a good degree of accuracy, the answers to a successful FAQ must be researched and documented whenever possible. About the best place to do this is through a local public library. Many have computerized databases with published information on virtually thousands of subjects. Regardless of where the subject matter of the FAQ lies, from entertainment to computer programming and anything else, a library should yield a good number of answers for you in one stop. And if you still need more, chances are that you can use information from the library to help point you in the direction for the answers that you still need. A FAQ can be about any subject, and, in many cases, is a good way for someone unfamiliar with the topic to at least learn some basics. In this regard, a FAQ should be educational. In fact, I know of a number of people who simply go around collecting FAQs to put them on their BBSes in g-files or for downloading. Some CD-ROM discs for BBS use can also contain FAQs on them on any number of topics. So, if you're considering writing a FAQ, look around first. Somebody may have already written one on the subject you want to do one on, thus saving you the trouble. Now that you know what a FAQ is and how to go about creating one, I'll conclude this article by creating an short sample excerpt of what a finished FAQ may look like when completed. I'll again use the fictitious "Sitcom: The Series" as the model. I hope that this article helps to raise the level of awareness about FAQs, the purpose that they can serve, and the valuable asset that they can be, especially to sub moderators. ============================================================================= FREQUENTLY ASKED QUESTIONS LIST ABOUT "SITCOM: THE SERIES" Compiled by: The users and readers of "Sitcom: The Sub" FAQL Last Updated: 09/12/94 Q. WHAT IS "SITCOM: THE SERIES?" A. "Sitcom: The Series" is a weekly half-hour television program based on "Sitcom: The Movie," a 1992 feature film comedy about life on the set of a popular television situation comedy. "Sitcom: The Series" premiered 09/27/93 and has been renewed for a second season. (Source: Mr. Knowitall, 1@685380) Q. WHEN AND WHERE IS IT ON? <-- (Notice two questions on one line) A. "Sitcom: The Series" airs in the US at 8:00 PM Eastern time each Wednesday on cable's The Useless Programming Channel (UPC). Syndicated in all other foreign markets. Check local listings for regional availability. (Sources: Couch Potato, 142@6930731, The Useless Programming Channel Magazine) Q. WHO ARE THE CHARACTERS IN IT AND WHO PLAYS THEM? A. Burt Langhorne stars as Jack Hack, producer of "The Handy's," the show with the show. Steve Odore plays actor Forrest Parkes, who plays Andy Handy, owner of Handy's Mart on the fictional show. Pam Oleo portrays actress Amanda Pumps/wife Mandy Handy. Dora Standpipe plays actress Sharon Sharalyke/teen daughter Candy Handy. Jimmy Locke stars as heart-throb actor Jason Mason/inept Russian immigrant store clerk Ivan Slakenoff. Various guest stars appear as writers, directors, and as guest stars on the fictitious show. (Source: Video Junkie, 26@8489670532) Q. WHEN DOES THE NEW SEASON START? A. October 27, 1994. (Source: The Useless Programming Channel Magazine) Q. WHO WILL BE MAKING GUEST APPEARANCES IN THE NEW SEASON? A. Asian comedian Sandy Chin, Italian race car driver "Goggles" Pisano, football coach Buck Skin, and washed-up actor McLean Stevenson are scheduled to appear so far. (Sources: Channel Surfer Dude, 846@48567683, Idiot Box Magazine) Q. IS JIMMY LOCKE REALLY LEAVING THE SHOW? A. No. That was a rumor started by Locke's agent as a tactic to re-negotiate Locke's contract. He has signed a new contract and will return. (Sources: Fighting Oscar, 73@385897032, syndicated TV show "Tube Talk") ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ WWIV Services on the Internet ³ IceNEWS Staff ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ WWIV hasn't been left behind in the proliferation of Internet services over the past year. Multiple FTP sites for WWIV support have been setup at various locations, and efforts to organize a regular WWIV chat session over the Internet are underway. FTP (File Transfer Protocol) is an Internet service that allows users to request and transfer files from remote machines. Currently, I am aware of two Anonymous FTP sites accessible over the Internet. They are: ftp.netcom.com - /pub/WWIV Chris Yarnell (IceNET 1@2914) runs this site from the nationwide Network Communications (netcom) service. While the size of the FTP site is limited by space constraints, pub/WWIV contains virtually every major WWIV utility, a large collection of FAQ (Frequently Asked Questions) files pertaining to WWIV, and even a few OS/2 related communications files. Netcom also has virtually unlimited capacity, so response and transfer times are always speedy. helser66.res.iastate.edu - This is a newer site, run by Backlash (1@5552 IceNET). While the capacity for concurrent users is lower (and response times are somewhat slower), there are no disk space restrictions applying to the site, so a considerably larger number of files can be found here. The selection includes all the current WWIV Software Services releases, WWCP (WWIV-> Internet gate software) files, and most popular utilities. The IRC (#WWIV/#wwiv) The Internet Relay Chat system (IRC) allows users all over the world to chat with each other in near-realtime. At any given time of day, you can expect to come across thousands of users from all over making use of the service, often speaking German. There have been several attempts to setup a set meeting time for sysops on #wwiv (or #WWIV - there seems to be little agreement on which is preferred). Over the last few weeks, people have been popping on and off almost at random. IRC servers vary in response speed and quality. Some recomended servers are irc-2.mit.edu (port 6665) and irc.colorado.edu. Some people have been pushing the "Undernet" (the sitename is no.undernet.org). This should probably not be used, as it requires a deliberate connection to a little-used server. Since the majority of IRC users are on the normal ("over") network, this keeps the channel accessible. Over the past few weeks, a meeting time of 1:00pm Pacific Time has been generally agreed upon, and a large number of people have been showing up for either the whole session or just for a segment. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ A Day in the Life of an IceNET GC ³ by Music Man 1@9680 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ It's 7:00 am and all is well except for an irritating sound emanating from somewhere unknown to this old man asleep on his somewhat firm bed. Again, the irritating sound persists with a unrelentless screech as if to say, get up you jerk. Being a not so argumentative type guy, I regain consciousness again as I have for the last 45 years. Typically, I very much despise waking out of my slumber, but oh well, it is dirty work, but someone has to do it. I, Mr. GC4 of IceNET, begin my day. Hurry up honey, it is time to go to work, yells my wife from the distance. I think to myself, "leave me alone, yesterday was a long day and I want to enjoy one of life's choicest moments, sleep." Though I try to fight it, I do get up. Off to the shower to wash the previous day's wear and tear. Scrub a dub, scrub a dub, "maybe if I scrub hard enough I will loose a couple more pounds." "Hmm... it didn't work!" After a time in the bathroom I head to my Maestro BBS computer center to check of the nights email and update requests that, hopefully, came in over the night callouts through the wonderful software called Net 34. "Hmm... what is this, a lock up?" I say to myself. Ah... what is the awful noise coming from the inside of my tower case? Grind, Grind... another of those hard locks! "I have simply go to get this bug fixed." I reset the computer and net 34 finishes it's grind and good old linker unlinks the collage of packet information. "Ah Hah!" "It is fixed for another day." I anxiously go through my mail. In the background I hear "honey, come eat your breakfast. You have to be at work in 10 minutes." I, as any husband will do, I hurriedly head to the dining room as ordered. Arriving at my office I rush to my computer and call out to good old Maestro BBS and quickly head to the mail again. "Oh, another new applicant," I think to myself. "Let's see, this update from the AC has an application from this new connect but has no server listed. Hm...what should I do here? I guess I will send mail off to the AC and ask to which node this new applicant will connect to." So off to my faithful friend WWIVedit I go to write to the AC. I think as I am writing, "boy, one of my directives as a GC is to have fast updates. How is this going to look?" I put that off knowing that the problem is not at my end. Thus I have a slight delay in this update. I read through more of my mail. "What? Please drop XXXX and XXXX from XXXX?" "Hmm... now that will orphan 30 systems from the network." So off to WWIVedit again to write to all the potential systems that will no longer be in the net with this update. I ask them whom they are planning connecting to on this situation. I then proceed to write to the one who is requesting the drop if he will wait till we find new connects for the orphaned systems. "I sure hope he will hold off on this until these others get connected to. I guess they can call here if they have to until they get another connect." As a new GC, I find myself unsure of all the ins and outs, but know that if there is a problem I cannot solve, I can go to my friend Jim, 1@1, for advice. I think to myself, "Boy, I sure hope I am doing the right things for Jim and his great network. I would not want to let him down or those who depend on me." On to the next email. I find a request to be AC for an area. "Well," I think, "this area doesn't have an AC and it sure would be great to have one, and it would be much easier on me to see one there too." So I write back again with my favorite editor. I tell him that it would be best to have an election and to have someone nominate him/her for the position. "It is always best to have support of others in your area code." As I write, I hope that the sysop will understand that I am not against them being an AC, but that I want the best situation for him and the area involved. There is one more email. This is a request from a new system to be added to IceNET. As I continue to look over the application I find that the system has only been up for two days! I find that the system has only two users and a total of 10 calls. Now at I think that this is a joke. Reading further I find that this is an actual application. So, I proceed to email again. "Thank you so very much for your consideration of IceNET to be added to your bbs. We count it a compliment that you would consider our network. I would like to suggest that you wait a while before adding any networks to your system. It would be beneficial to you and your users to have more time to get acquainted with the WWIV software and all the ins and outs. Since you have only been up for two days at the time of this application, I would like to suggest that you get more time under your belt. Also, it would be good to consider registering your software ASAP although we do allow you a period of time to be in IceNET before registration is required. Anyway, thank you again for your application. I will keep this on hold until I hear from you again in a month or so." After sending of this mail, I think to myself, "boy, I hope they will understand and know we want the best for their bbs and IceNET." I finish my reading of update requests and proceed to edit the bbslist.* and connect.* files carefully checking to see that no one is messed up or left out. I then turn to a program called netup and send out the new files to Jim. Knowing that Jim and I both desire that IceNET be a fast, friendly and efficient network, I realize that Jim will send out this update to the rest of the network within hours. "Hmm... it is now 10 am. I guess I had better get to my rehearsals." Off I go into the rest of my day knowing full well that tomorrow will bring another day of updates and email from Group 4. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ W W I V - S P E C I F I C ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ WWIV Utilities and Modification Review ³ by Calvin 1@8262 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ NAME OF MOD/UTILITY BEING REVIEWED: DREAM35B.MOD AUTHOR'S NAME/HANDLE : Unca Scrooge @8398 WWIVNet VERSION NUMBER : N/A VERSION DATE (.EXE date stamp) : March 28, 1994 OVERALL SCORE : 8 INSTALLATION : 7 DOCUMENTATION : 9 PRESENTATION : 10 EASE OF USE : 10 CODING (mods only) : 8 STATED PURPOSE OF MOD/UTILITY: ------------------------------ To provide WWIV with an informative, colorful message header REVIEWER'S PRO COMMENTS: ----------------------- This mod LOOKS GREAT. When you have it installed on your BBS, the information normally presented in a bland, non-informative, and frankly cluttered format at the beginning of messages and mail suddenly comes to life. I'm going to include a screen shot here, so be warned that there's ANSI coming!!! This is a sample of a post header in a netted message base. ÉÄÄÄÄÄÄÄÄÄÄÄÄËÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ» ³ Title ³ Hey Unca! (: 74/75 ³ ³ SubName ³ DreamWARE Comm. Support ³ ³ Name ³ Dude #897 @1111 ³ ³ Date ³ Sat Mar 19 10:21:04 1994 ³ ³ From ³ WWIVnet - Always Down BBS [813-555-1122] ³ ³ Location ³ Western Florida ³ ÈÄÄÄÄÄÄÄÄÄÄÄÄÊÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄþÄ06:05:56 pmÄþļ Now, maybe that doesn't impress you, but look at how the stuff is laid out!? I think it looks great, and it really adds a nice touch to your message bases and your WHOLE SYSTEM in general. Mail and posts both get this header. REVIEWER'S CON COMMENTS: ------------------------ There are a couple problems with this mod, but they're quite small. There is a bug that makes Source Validated Mail look screwy in the header. Now, that was fixed in a later version, but that's the other part of the problem: Unca Scrooges dang updates DON'T come through ModNet! I had put this mod in right when it came out (March) and about JUMPED for joy and excitement when I saw Unca Scrooge put out a new version that fixed the Source Validated Mail thing. He also included a new, ViSiOn-X-style header that could be used instead of the default one through a simple define. I personally thought it looked terrible, but someone must have liked it! Here's the problem again: Una Scrooges mods DON'T make it to my system anymore. This mod requires a standard library he made for his mods. For THIS mod, and old one is used, which I happened to have in ModNet still. In the update, though, it requires a NEW version of his library which I DIDN'T have. When I finally got it, I discovered that DREAM35C.MOD would put garbage instead of message numbers in sub posts!!! Then I heard talk of DREAM35E. Heck, I hadn't even seen _D_ come down the sub!!!! That is why I chose to install this mod. Unca Scrooge has an excellent series of mods that are well-written, fairly easy to install, and quite functional as well as pretty. I WON'T put any of them in, though, until he gets a version of this mod out compatible with the new library that actually gets to me. I mean, this mod is GREAT! FINAL THOUGHTS: --------------- If you're not Unca Scrooge, put this mod in. If you ARE Unca Scrooge, why on earth do you UUCode your mods, anyway? They AREN'T that big! I REALLY would like to see the update of this mod. In the meantime, except for the Source Validated Mail thing, I'll leave in this EXCELLENT, PERFECTLY working mod! REVIEW WRITTEN BY : Calvin NET ADDRESS : @8262 IceNET REVIEWER'S SYSTEM : Blarty-Toot BBS (WWIV v.4.23) HEAP FREE @ //STAT : uh. Huh-huh. Didn't check. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Revolution Planned For '95!³ by Spotnick 1@5497 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Firstly, I must welcome you to this first "WWIV Chronicles", I'm a new editor in IceNEWS and I must say that this won't be easy for me because english is my second language, but I'll do my best to be understandable. I thank the IceNEWS staff for asking me to join this team, even if I'm not really good at writing articles in english, this is a change to improve my skills. As my first article, it wouldn't be fair to explain my group project to the people. I will take this opportunity to introduce to everyone the WWIVsys project. WWIVsys project was developed many years ago by Dark Shadow, the co-author of WWIVsys. He was trying to write his own BBS software and the editors were external. We decided last summer to convert this project to WWIV for good, and this is where the story begins. WWIVsys stands for "WWIV SysOp Utilities", which is a local-only utility for the WWIV system operator. A demo version has been released for SysOps to see the environment and show what it should look like at the beginning, but since that release, WWIVsys improved a lot and is far superior to what it was supposed to be at the beginning. WWIVsys is the most powerful tool to date for the WWIV SysOp, it replace the entire SysOp functions from WWIV, puts them on an external program. Not only it does this, but it also replace the INIT.EXE that comes with WWIV. All functions are available in WWIVsys and there is some extra options also available. All functions in WWIVsys are graphical, in ANSI mode, that allow you to do everything will the minimum of keys. Mostly you will navigate with the arrow keys and the spacebar. One good note is that WWIVsys can allow Registered WWIV SysOps to remove all the code for the SysOp functions of WWIV, which will free a lot of memory, and save a lot of DGROUP space. But the main problem is that it doesn't work remotely, so only local SysOps can use it, so if you have remote operators, you can't remove WWIV internal functions. To have a look at what WWIVsys can do, here is a list of the features in WWIVsys (version is 0.4á): Activity Log ÍÍÍÍÍÍÍÍÍÍÍÍ A Graphical ZLOG viewer. Auto Validation Keys ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The ALT-Fkeys options editor, to validate users online. BBS Information ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ All information about the BBS itself. Most of this information is from INIT's screen 1 and 2. Conference Editor ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The Conference Editor of WWIVsys. Dir Editor ÍÍÍÍÍÍÍÍÍÍ The directory editor of WWIVsys. Door Editor ÍÍÍÍÍÍÍÍÍÍÍ The chain editor of WWIVsys, also a very good way to select the registered user option. External Editors ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The full screen editors editor of WWIVsys. External Programs ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Allows you to edit archivers and events. External Protocols ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Allows you to edit internal and external protocols. File Editor ÍÍÍÍÍÍÍÍÍÍÍ File Editor, many options available, very good tool to do your file maintenance. Gfile Editor ÍÍÍÍÍÍÍÍÍÍÍÍ Allows you to edit the gfiles in gfiles sections. Gfiles Section Editor ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The Gfile Section editor of WWIVsys. Instance Editor ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Allows you to edit options of each instance you have. Won't allow to add instances due to the protection of WWIV. Language Editor ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The language editor of WWIVsys. Mail Manager ÍÍÍÍÍÍÍÍÍÍÍÍ The email manager of WWIVsys. Modem Init ÍÍÍÍÍÍÍÍÍÍ The modem strings & result codes editor of WWIVsys. Network Information ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The net editor of WWIVsys Paths Editor ÍÍÍÍÍÍÍÍÍÍÍÍ The paths editor of WWIVsys. Security Level ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ This allow you to select the options for each security level, much better than the INIT system. SSM Manager ÍÍÍÍÍÍÍÍÍÍÍ This allows you to edit/delete/send small system messages. Statistics ÍÍÍÍÍÍÍÍÍÍ Various Statistics of the WWIV system. Might be removed from release version. Strings Editor ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ WWIVese integrated to WWIVsys. The freeware external string editor of Dark Shadow is now included inside WWIVsys Sub Editor ÍÍÍÍÍÍÍÍÍÍ The board editor of WWIVsys, with the net info editor embedded, which is very powerful. Gives you more options than the normal WWIV system. Sub List Selector ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The ultimate networked WWIV tool! This option is unique to WWIVsys. It allows you to scan the SUBS.* files and press ENTER to the sub you wish to install, and WWIVsys will automatically install the sub for you. A very useful tool for SysOps. Tetris ÍÍÍÍÍÍ The popular Tetris game, included to WWIVsys for relaxation and to have another dimension in WWIVsys. You will be able to play from WFC! User Editor ÍÍÍÍÍÍÍÍÍÍÍ The most powerful user editor ever, you can simply edit ANYTHING you wish, this is the perfect tool for WWIV SysOp. Very easy to use. Vote Editor ÍÍÍÍÍÍÍÍÍÍÍ Finally a vote editor that allows you to change the embedded options without having to delete the question. Was planned since a while, but finally included into WWIVsys. This is the ultimate tool for voting booth. Does not work currently with the Logicom Voting Booth. WWIV.INI Flags Editor ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ For the INI hater in you! This will avoid you to load an editor to toggle WWIV.INI options. Yes! You can toggle the YES/NO field with only the press of the Space Bar! WWIV.INI Editor ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ To edit all other WWIV-native options, only the original ones included starting v4.24 This is the current options available, but there are more to come. WWIVsys is written in C, so it is fast. WWIVsys is our first real step in the shareware market, and the price is fixed to 30$ CAN (22$ US) for the multi- station software. Our beta team is limited, but is also composed of great members: Morbid Angel, an old friend, a very good bug finder! Expos, SysOp of an FMD site called Best of the Best BBS. Electron, SysOp of Electronic Avenue. Tarkan, Author of the WWIVsys documentation. Zu Digital, Part time beta tester, author of the WWIV.INI handling functs. Morgul, WWIV Support SysOp, SysOp of the Trading Post [EAST] Unca Scrooge, SysOp of DreamNET. Without those people, the WWIVsys project wouldn't be at the level it is now, this team is limited, but they do the job of 20 beta testers! Authors: Dark Shadow (Martin Bourdages) Spotnick (Nicolas LeBlanc) Release Date planned: Christmas 1994 or earlier. WWIVsys will be released as a demo. The demo version will have all options enabled for testing purpose, but it won't save any data files. So you will be able to test the entire software before buying it. Some options will be enabled , the string editor, the BBS Informations and the WWIV.INI flags editor. There is a sub about WWIVsys for those interested to have the latest news about it, it's of course available on IceNET and auto requestable. WWIVsys Beta Discussion SubType: WWIVSYS Host: 5497 You can have the demo version of WWIVsys called WWIVSYS.ZIP on most support boards, it will give you an idea of the way WWIVsys will work, but this demo is from the v0.1á, many additions has been done since then, and the WWIVsys software is getting better and better. So, that's why we, in French Mod Division, tell you to be ready for the revolution of WWIV management in 1995! ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ H A R D W A R E ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ IBM Lexmark LaserPrinter 12R+ ³ by Will 1@6754 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Laserprinters have always been a tricky purchase. While nobody can really deny their usefulness and excellent document quality, finding the best match of features and performance for a given task can be daunting. While Laserprinters (usually lower resolution 300x300 dpi models) have come down in price substantially over the past year, a really good model will still cost more than the computer that's driving it. This is changing. Lexmark's (IBM spun their printer division off to this Kentucky based company a few years back) printers are by no means the only choice on the market. However, they provide one of the best mixes of features, price, and performance currently available. Several new printers have recently been added to the company's flagship 4039 line, the "Plus" series, consisting of the 12 Page Per Minute 12R+ and 12L+ and the 16 Page Per Minute 16L+. After spending several months looking over these and other products in the Laserprinter arena, we went ahead and bought a 12R+. The 4039 series printers are large, well designed, boxes. These are not machines to fit under your monitor lift, being fourteen by fourteen by twelve inches (length/width/height) in dimension. This large case is necessary to hold the fast print engine and make other options available, but it did require significant shuffling on my desk. The unit has a front mounted power toggle switch, and a four line, 19 characters per line LCD, with six control buttons (four of which change function according to the current menu being displayed). The printer uses a multi-menu system to access all configuration options. It's extremely easy to do just about everything, including print font lists, demo and test pages, and change printer defaults. Accessing the innards of the printer is very easy. There are no screws, sliders, thumbpresses, or other impediments. You simply grasp the slider above the LCD, squeeze, and lift. Elapsed time, one second. The toner cartridge (available in 10,000 and 20,000 page versions) slides right out for easy replacement. The printer design lifts the cartridge free of the printer body, reducing the opportunity for damage or injury, as well as making the process virtually effortless. In the standard configuration, the 12R+ includes two paper insertion areas and two output areas. There's a standard paper tray (again in the front, easily removable), and a sheet feeder attachment at the rear for small numbers of envelopes, stationary, etc. Output is usually produced at the top of the printer, which has a snap-on paper block that can accommodate up to 14 inch stock (the block is removable). Copy is delivered face down. Another front mounted toggle allows you to have output ejected front the front of the printer onto a snap-on tray. In this case, copy appears face-up. In the standard configuration, the 12R+ comes with two megabytes of printer RAM. The unit supports a maximum of 16 megabytes, more than enough for virtually any project (upgrading past 10 megabytes does require the removal of the two megabyte modules the printer ships with). Four megabyte and eight megabyte modules (to raise total memory to 6 and 10 MB) have a street price of around $170 and $320, respectively. Access to the printer mainboard to install these upgrades is more complicated than toner removal, but not overly so. The printer includes a fast RISC microprocessor to decrease the amount of time one spends waiting for jobs to print. Maximum resolution is 600x600 dots per inch, and the printer includes Lexmark's PQET enhancement technology to smooth edges and lines. Lexmark advertises a 101 gray scale capability, and on my tests with 256 color grayscale photos, the output was quite acceptable (in fact, it looked better than the same images output on an Apple Laserwriter Pro 630). The fact that the printer had only two megabytes of memory limited the size of the image I could print (for the 256 greyscale image, about 4 inches by 5 inches), but did not degrade the quality. There was some slight banding in the darker shades on a gradient fill test, but no more than on any other printer I've seen. Fills looked excellent, as the solid blacks did not appear as patchy as they do on many other printers. The software included is also excellent. Full Windows and OS/2 drivers and installation software are included. Both installed and functioned without problems, and offered a lot of functionality. The + series printers also come with a set of other bidirectional printer utilities for use in DOS and Windows. Postscript Level 2 and Enhanced PCL 5 (Page Control Language - the Hewlett Packard standard) emulations are both included, and you can install any combination of Windows and OS/2 emulation drivers. The printer includes 39 Adobe Type One fonts, 36 Intellifonts, 10 Truetype, and two bitmapped fonts (including bar codes). The printer does not included matching screen fonts, but they can be ordered from Lexmark at no charge - just check the boxes on a postage paid card, drop it in the mail, and Lexmark will ship you what you need, including the printer's technical reference guide, and a converter program to allow you to convert Truetype fonts to downloadable form. In short, the 4039-12R+ is an excellent printer and an excellent value, working quickly, efficiently, and easily. Product Statistics: Model : Lexmark IBM LaserPrinter 4039-12R Plus Pages Per Minutes : 12 Emulations : Enhanced PCL 5 and Postscript Level 2 Resolution : 600x600 dpi + PQET resolution enhancement Memory : 2mb standard, 16mb max Grayscales : 101 Fonts : 39 Postscript, 10 Truetype, 36 Intellifont, 2 Bitmapped Supports HP type font cartridges Software : Windows and OS/2 drivers, Windows/DOS/OS/2 Printer Utilities Options Available : Network Support 100 and 500 Sheet Paper Trays Duplexing Flash Memory and Hard Disk Drive Other : EPA Energy Star Qualified Street Price : $1300 Contact : Lexmark International, Inc. 740 New Circle Road Lexington, KY 40511-1847 (800)-358-5835,(606)-232-2000, Fax: 606-232-2000 In short : An excellent Laser Printer providing top notch print quality and network upgradability as an excellent price. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Oh, Those Upgrading Blues... ³ by Papa Bear 1@5079 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ I recently came back from my trip in New Jersey, where I was working for the past month, only to find that my precious BBS computer had some things wrong with it. During that month I had been in contact with my cosysop (and wife) talking on the phone about the health and welfare of the family, and BBS. She had mentioned a few weeks ago that there were things starting to get "flaky". (With the BBS, not the family .) Firstly, the tape back-up stopping backing up, for no apparent reason. It wouldn't even take new tapes properly. To bypass this, and keep the BBS up, she simply disabled the automatic backup routines that I had written before I left. Then the laser on the CD-ROM stopped firing (we're both Electronics Technicians, and we're always up to our elbows in the computer). This was VERY distressing since we do a *lot* of business off the CD-ROM. This news by itself seemingly indicated that the CD-ROM was simply going bad on its own. She then reported about this time that the 345 MB and the 540 MB hard drives were acting very strangely. The boot drive would boot up fine during one reset, and then it wouldn't during another. The machine would seem to forget that both hard drives each had a partition on them, only to work fine an hour later. BIOS information would get lost for no apparent reason... "Aha!", I though, I *know* the problem. A power supply going bad. I knew the motherboard's CMOS battery was okay, since I had just bought a new 486DX-33 motherboard and CPU a mere month before. The power supply and case (a full size desktop AT) were the *LAST* pieces of remaining hardware left on my entire machine -- everything else had been upgraded throughout the years. So she went out and bought me a "refrigerator" (larger than full size, 10 bays) size tower case with a new 300 watt power supply. She carefully, and dutifully moved the guts from one machine to the other, and hooked it all up. After it was done, around 4:30am, she thought it all worked... I came home a week or so later, to find this GREAT case with a side that swings open, allowing easy access to the insides, and a non-working tape back-up. Remember that she had disabled the tape back-up software a week or so before, and hadn't re-enabled it. Everything else seemed to work fine. So I opened her up (now my wife was the one to be out of town, visiting relatives in El Paso) to see what was up. Oh! The tape back-up's data cable was disconnected. So I reconnected it. After hooking up the necessities -- being the keyboard, video, and power connectors -- I fired it up a found that the tape back-up worked fine. Now the CD-ROM stopped working... This is was strange. Thank goodness I never button up the case until after testing the things I think I've fixed, as it saves a lot of time if something else needs working on! I doubled checked all the software first. Always a first step, since its easier checking that than risking breaking something else by having my big ole hands rummaging around inside the case. Everything looked great there! Okay, time to go back into the case... I thought I had found the problem when I noticed that there were some 8-bit cards in 16-bit card slots with 16-bit cards in slots "before" them (before meaning that they were in a position on the motherboard that is closer to the power supply). Sometimes this will render a 8-bit card inoperable, especially if the 16-bit card before the 8-bit "answers up" to a "call" from the CPU that was destined for the 8-bit card. In this case the 8-bit card never "hears" the call and doesn't preform its function. Anyway, I rearranged the cards, making sure to use the 8-bit cards in 8-bit slots whenever possible (one of my 8-bit slots is unusable due to the placement of the CMOS battery -- something to watch for next time you're in the market for a new motherboard), and also making sure that the 8-bit cards were "before" the 16-bit ones... Nope, still didn't work. Damn. So I changed the base address, via hardware jumper, on the CD-ROM from 250h to 260h. Success! Well, at first it worked. Upon rebooting, the CD-ROM stopped working again. Now its 5:30am Monday morning, and I'm beat. I've been working on this thing since 9pm Saturday night (there was a host of other things to do, too) -- since getting home from New Jersey. So I disable the CD-ROM's software device drivers and get a few hours sleep. Upon waking up, I call technical support. After describing my symptoms (which are: When SBCD.SYS is called the drive takes a extraordinary long time to pass and when MSCDEX.EXE is called, the machine will only proceed booting up if you press the EJECT button on the drive), the Technician declares my drive dead, and turns me over to the RMA department. (Yes, I'm getting it repaired for free, it *is* still under warranty. ) Needing a CD-ROM, I went out and bought another, different, CD-ROM. One that would use the standard 50-pin SCSI connector that is on my sound card. (The other one uses a funky kind of proprietary 38-pin SCSI connector that requires its own interface card.) I get it home, slap on the rails, and install it. After powering up, I find that the CD caddy will not insert fully into the drive. The manual says its supposed to go in easily, especially since it is motor driven when the caddy go in past a certain point. No go, damn! Resigned to my fate, I start to take the rails off so I can pack it up and return it. By sheer luck, I notice that the screws (ones that came with the rails for the case, not the ones that came with the drive) were long. I replaced those screws with the ones that came with the drive and hooked it back up. Finally! It works! Some final software tweaking, and buttoning up, and we're all set. But there's no audio cable to go from the CD-ROM to the sound card. Oh well, I'll just pick one of those up tomorrow. For now I'll just use the front panel mini-plug jack to plug into my stereo computer speakers. So after more than a week, we're finally stable again. These are the things that can happen when the power to your machine starts going bad. I knew that from the beginning. What I didn't know was that the bad power, which was beginning to fluctuate between unacceptable highs and lows, would damage certain components in machine to the point where THEY would become intermittent at a later date as well. And intermittent problems have to be the WORST things to try and track down! If you're going to be upgrading your machine a lot (in the past 4 years I've had 4 hard drives, 3 motherboards, 3 floppies, 4 keyboards, RAM [DRAM and SIMMs], etc...) keep in mind that the power supply needs to be taken into consideration as well. For without stable power, a computer wigs out. Also take into consideration the wattage you have to work with. The motherboard (faster CPUs draw more, too!) and anything plugging into the motherboard draws from the total amount of power you have. On my system I have: 486/33 CPU, 8 MB RAM, sound card, video card, IDE interface, CD-ROM interface, I/O interface, 2 hard drives, 1 floppy, 1 tape back-up, and 1 CD-ROM. With all of this, and a 200 watt power supply, I was most likely pushing that power supply to major extremes. Adding a 300 watt power supply alleviates the problem nicely! Three last points: When installing new hardware, always try to use the parts that they have packaged with what you're installing! Also make sure that you have all the necessary hardware (like cables) to complete the job. Finally, get rest. I made a lot of mistakes because I didn't get the sleep over the weekend that I should have. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ S O F T W A R E / P R O G R A M M I N G ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Borland Paradox 5.0 ³ by Will 1@6754 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Borland's Paradox database has always been a powerful tool. It's also popular, with over twenty percent market share as of June, 1994. With Borland's other end-user database, Dbase IV/5, holding over 50%, Paradox is a clear number 2. The new version, 5.0 for Windows, goes a long way towards resolving the few problems with the program, and reasserts its lead over Microsoft Access, Lotus Approach, and the rest. Paradox 5.0 is a massive expansion on it's predecessor, version 4.5. It also runs faster, even though the minimum memory was raised from four megabytes to six (experienced Paradox 4.5 users will know that the program needed at least 10 to run with decent performance). Version 5.0 is usable with eight. Much of the code is optimized, so the program compiles applications and runs queries much faster than earlier versions. Version 5.0 includes a host of new features designed to remove the biggest gripe people had about it - usability. While earlier versions were not bad in terms of usability, the learning curve was higher than in competing programs. Version 5.0 includes three "Experts", equivalent to Microsoft's Wizards, although in some ways more flexible, that allow for virtually hands off design of forms, reports, and mailing labels. The latter, especially, had been tricky to put together with 4.5. With the Mailing Label Expert, however, all you need to do is select the data, select the data order, pick from a selection of the popular Avery brand printer labels, and the program will take care of putting everything together. The results are excellent - in two minutes I put together an excellent label report. Individuals developing Paradox 5.0 applications (see below) can now create their own Experts as well, and add them to the Paradox Experts dialog. This feature seems to be unique to Paradox, and will provide developers with an excellent new selling point. The other learning curve enhancements are the thirteen interactive "Coaches" that lead you through the performance of various tasks. While they don't teach you the most advanced aspects of the program, the coaches do an excellent job of teaching all the everyday skills you'll need, such as designing a database set, working with a table, query, or report, and linking multiple databases. My only gripe with the Coaches was the lack of flexibility - when I needed to change my working directory in order to run one of them, I had to quit the Coach midway and start over. Since they will generally be used first by people who haven't added additional database aliases, etc, this really won't be a problem in the long run. ObjectPAL, the Object-Oriented Paradox Application Language, has also been expanded. The new version accepted forms and applications written in version 4.5 flawlessly, but with over two hundred new methods (functions), and over a hundred new properties, they didn't stay backwards compatible for long. Using some of the new functions, I was able to cut several pages of code from various applications. The IDE (Integrated Development Environment) has been improved, and a new multi-Window Independent Debugger added. The new debugger allows tracing, error stack tracing, Stop Execution and Run to End of Method buttons, and quite a bit more, making it much easier to debug complex applications. ObjectPAL has always been a great tool, and the new methods make it even more so. With the release of the forthcoming Developers Edition, which will allow the release of precompiled applications, ObjectPAL's advanced features (such as access to most of the Windows API, for functions like playing .WAV files) will make it an increasingly important player in the programming arena. The Form and Report designers also contain a slew of new features that make it even easier to design great looking screens and printouts. Most visible are the several nice looking new frame styles, allowing for a much better looking document. The standard dialog boxes (created with the msgInfo(), msqQuestion(), and related ObjectPAL commands) have been changed to the standard 3D Borland style. While they still look good, I would have liked to be able to use the Paradox 4.5 type dialog boxes as well. Paradox's overall usability has been increased with a Project Viewer similar to the one found in dBase 5.0 for Windows. The Project Viewer allows you to view all of the files of various types in your working directory graphically. I found that with the Project Viewer available, I was able to cut the amount of time I spent opening and closing reports and forms dramatically. The database engine itself has also been improved. Beyond speed increases, the already robust amount of field types has been augmented with Long Integer, Time, Time Stamp, Logical, Byte, Binary, and Autoincrement fields. The last is the most immediately useful - Autoincrement fields are Long Integer fields that increase by one with each new record. Instead of simply adding one to the highest value, however, they choose the highest value that has yet to be used. The upshot of this is if you have order numbers 33, 34, and 35, and you delete 33 and 35, the next one you add will be assigned 36, not 35, keeping all values unique. For one wholesaler's management application, I was able to remove nearly a page of code designed to keep order numbers unique for new records just by changing the key fields to Autoincrement and Long Integer. Paradox 4.5 was packaged as a stand alone and as a separate networked product. Paradox 5.0 comes in one version, with networking support and the Workgroup Desktop, for the same list price as the networkable version of Paradox 4.5. Borland has added support for Client Server computing and SQL. It also includes local SQL which lets you treat local tables as SQL based tables during application development. Paradox now supports SQL linking to Borland Interbase, Oracle, Sybase, and Microsoft SQL servers, and Informix. Of course, you can also use multiple copies of Paradox on a LAN, with the purchase of the appropriate licensing. In short, the program's a winner. The program makes up for its heavier resource requirements with enhanced speed and functionality, and ease of use has been improved to the point where a relative database novice can get started with a little patience. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Borland Sidekick 1.0/Win ³ by Will 1@6754 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ For the last couple of years I've been pretty down on the concept of Personal Information Manager programs (PIMs). Really, I've had this feeling since the first ones came out. Whenever my information managing needs became too great for the mass of paper and Post-It notes that surround my various desks, I'd always pull one out of the pile (both Shareware and Commercial) and give it a shot. Inevitably, after about a few days of religiously using the thing, I gave it up, consolidated the various sheets of paper into a smaller pile, and let the cycle repeat itself. However, last week I broke the chain. While I was installing the new version of Borland Paradox (see elsewhere in this issue), I noticed that Borland had slipped in a promotional copy of Sidekick 1.0 for Windows. I'd heard more good things about the various DOS versions of Sidekick, but since the DOS program had fallen out of the update cycle, I'd never tried it out. Since I had a little extra free time, I popped the single high-density disk into my floppy drive and gave the program a shot. My original plan was to start out using the program as little more than a glorified Rolodex. I had a lot of jotted down phone numbers and business cards that I'd just as soon get out of the way. The program has three main features, a Cardfile, which functions as an amazingly functional mini-database for contact management purposes, a calendar/appointment book, and "Notes", which is essentially a pad of virtual paper for jotting down minor notes to oneself, or larger projects. The Cardfile was considerably more full featured than I though it would be. Besides just entering data, and scrolling up and down to look things up, it provides some very interesting features to access the data once you have it in the program. The Print menu, for instance, will allow you to print labels and address book pages (using the standard Avery label sheets and address pages) for the entire database, the current record, or just the items you've marked with a left-mouse click. You have complete control over what the resulting printout looks like, as well. I had less trouble doing a label merge in Sidekick than I did the first time I used Ami Pro for the purpose, and I've always regarded the Ami Pro mailmerge functions as very usable. After I decided I liked the Cardfile, I decided to see if I'd have any use for the Calendar and Notes portions of the program. The Calendar/ Appointment Schedule was also powerful and easy to use. While I don't think that I personally will be getting much mileage out of that part of the program, I like having it available. The scheduling allows you to view the year from daily/weekly/monthly/yearly perspectives, and click on the relevant location to add an appointment. You can print summaries of available appointment slots, FiloFax and DayRunner format summaries, set multi day and recurring events and reminders, etc. The Notes section of the program was probably the least impressive, while still being impressive - it essentially functions like a stack of paper and file folders. It's useful, especially since you can easily divide notes into categories, and search through them for specific topics. You can also use Cardfile data for a mail merge. What I didn't notice about Sidekick for Windows until I'd been playing with it a while is the fact that it's obviously meant to be a program that you can stay in 100% of the time. It has two features to allow this - QuickMenus and the LaunchBar. QuickMenus are the most interesting. It sits next to the Window control button in the upper lefthand corner of all your applications. Clicking on it allows you to access all of the SideKick functions, and quickly switch back and forth between open applications. I'm eagerly awaiting an OS/2 version of this. It can be started independently from your Startup Group in Windows, so you don't need Sidekick loaded to use the utility, and you can launch Sidekick from it. The LaunchBar is more straight forward - a gray bar (although all the colors in the program are customizable) at the bottom of the screen that allows you to select and launch various applications from within the program. I also found several other, smaller, utility programs embedded within the Sidekick for Windows framework, including a multi-function 13 digit transaction recording calculator, and a phone auto-dialer that works with a modem and the Phone field in the Cardfile. I've also taken to bringing a laptop into classes, and using the Notes feature of SideKick to keep my class notes. While I hadn't been overly impressed with this aspect of the program when I first used it, I've realized the value of the way it works. I can keep separate folders for each class, separate, but easily accessed files for each note, and search through all the notes in the system or for a subject for certain text (for instance, if I want to find all the notes that mention Murmansk, I can search through the Russian History folder, and it will provide me with a list of all the notes files containing a reference to Murmansk. It's amazingly useful, besides cutting clutter quite a bit. In short, I've become a PIM convert. I'm in and out of Sidekick several times a day on my main system, and I always have it loaded on my other, Windows dedicated, computer. While I have a few problems still with the program (I'd like to have some file management utilities built in, for instance, and a more desktop based approach to icon placement for the LaunchBar and the icons representing the internal programs), I'm quite happy with this first attempt. The PIM may just have come into it's own. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ MS-DOS Memory Management ³ by Renob1 5@7650 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The MS-DOS memory management system is good, but sometimes just not good enough. Before running out to get a better memory management package like Quarterdeck QEMM, Qualitas 386Max, or Helix NetRoom -- which can cost more than a DOS upgrade itself -- this article will present ways to configure the MS-DOS 5.0, 6.x, and Windows 3.1 EMM386.EXE memory manager to help you get the most Upper memory possible. In most cases, those who are currently unable to load everything they need into Upper memory on 386 or better computers will benefit greatly from this information. Unfortunately, MS-DOS doesn't provide memory management for 286 or lower computers, other than Extended (XMS) memory services via the HIMEM.SYS driver (and in most cases, it only works for a system with more than 1 meg of memory installed). There's not much you can do on a 286 without the use of Upper memory, which is where you could load device drivers and TSRs high, out of conventional memory. There is hope, though! A few good shareware Upper memory managers that support a lot of 286 systems do exist, the best being LastByte, MemKit, UMB_DRVR, and UMM (all of which are available online). Popular commercial offerings that support some 286 systems include Quarterdeck QRAM, Qualitas MOVE'EM, and Helix NetRoom. If the following information doesn't help you load everything you need into Upper memory, or one of the EMM386 configuration settings does not work on your computer, then your only options are the following: Invest in another memory management package (mentioned above); load only the device drivers and TSRs that you absolutely need; or live with the reduced conventional memory, but use a multi-config setup for running those huge applications or games. Now on with the show... The MS-DOS memory management system consists of three parts: First is the HIMEM.SYS device driver. HIMEM.SYS provides access to the computer's Extended memory, which is that above 1 meg. HIMEM.SYS makes the physical Extended memory accessible as XMS memory to programs that are designed to take advantage of it. (XMS is short for "eXtended Memory Specification"; XMS memory and Extended memory generally refer to the same thing these days, but they are technically different.) HIMEM.SYS also creates the High Memory Area (HMA) from the first 64K of Extended memory, which DOS can use for loading its own kernel into and free up close to 50K of conventional memory (which is that below 640K and being the most important to programs). For the HMA to be available on most systems, there must be at least 64K of Extended memory above 1 meg in the computer; computers with only 1 meg of total system memory usually will not be able to take advantage of loading DOS into the HMA. Second is the EMM386.EXE device driver, which provides access to Upper memory and/or Expanded (EMS) memory. Upper memory is what EMM386.EXE creates from the areas of Reserved memory between 640K and 1 meg that are not occupied by any ROM BIOS. Expanded (or EMS, short for "Expanded Memory Specification") memory is a special type of memory in a computer, a standard for extra memory that came long before XMS. On 386 or better systems, EMM386.EXE simulates EMS memory from the XMS memory provided by HIMEM.SYS. That's one reason why EMM386.EXE requires that HIMEM.SYS be loaded first in CONFIG.SYS to work. Third is the line DOS=HIGH,UMB in CONFIG.SYS. The UMB part is necessary for DOS to be able to access the Upper memory provided by EMM386.EXE. The HIGH part isn't really required, but it does perform a very important function in that it frees up close to 50K of conventional memory by moving the DOS kernel into the HMA created by HIMEM.SYS -- Its use is highly recommended! Note that you can have separate DOS=HIGH and DOS=UMB lines if you want (something MS-DOS 6 MemMaker likes to do), but combining them as DOS=HIGH,UMB is a bit more tidy and it is one less line for DOS to process at bootup. So, lines similar to the following must exist in CONFIG.SYS for DOS to manage the memory in the computer: DOS=HIGH,UMB DEVICE=HIMEM.SYS DEVICE=EMM386.EXE HIMEM.SYS must be the first of any DEVICE lines to load in CONFIG.SYS, and EMM386.EXE must always load directly after HIMEM.SYS (in normal setups). By the way, it actually doesn't matter where lines like DOS=HIGH,UMB, FILES, BUFFERS, etc. appear in CONFIG.SYS; the only order that matters to DOS is that of DEVICE and DEVICEHIGH lines. Note that the path to HIMEM.SYS and EMM386.EXE is not shown above, since that of course varies per setup and depends on whether you're using MS-DOS 5.0, 6.x, or Windows 3.1. The MS-DOS 6.2 versions of HIMEM.SYS and EMM386.EXE are the newest, the MS-DOS 6.0 versions are older, the Windows 3.1 versions are older still, and the MS-DOS 5.0 versions are the oldest. Even if you have Windows 3.1 installed, always use the newest versions of HIMEM.SYS and EMM386.EXE since they contain fixes and enhancements over previous versions and are meant to replace them. Now EMM386.EXE must be specially configured to get what we want: Maximum Upper memory. To do this, one of the following EMM386.EXE lines is to be used: 1) For Upper memory only, no EMS memory support: - MS-DOS 5.0, 6.x, or Windows 3.1: DEVICE=EMM386.EXE NOEMS I=B000-B7FF I=C800-F7FF - MS-DOS 6.x only alternative: DEVICE=EMM386.EXE NOEMS I=B000-B7FF I=C800-EFFF HIGHSCAN This EMM386.EXE line is used when you want Upper memory only, and don't need EMS memory support for DOS programs, which is specified by the NOEMS parameter. You gain an extra 64K of Upper memory for loading things high when not using EMS memory support. 2) For both Upper memory and EMS memory support: - MS-DOS 5.0 or Windows 3.1: DEVICE=EMM386.EXE [memory] RAM FRAME=C800 I=B000-B7FF I=D800-F7FF - MS-DOS 6.x only alternatives: DEVICE=EMM386.EXE MIN=0 RAM FRAME=C800 I=B000-B7FF I=D800-F7FF or DEVICE=EMM386.EXE MIN=0 RAM FRAME=C800 I=B000-B7FF I=D800-EFFF HIGHSCAN This EMM386.EXE line is used when you need both Upper memory and EMS memory support for DOS programs, which is specified by the RAM parameter. With the MS-DOS 5.0 or Windows 3.1 EMM386.EXE, you must specify a value for the amount of EMS memory you wish to have available to DOS programs if you want more than the default of 256K. With MS-DOS 6.x, a number no longer has to be specified to set the amount of EMS memory, because its EMM386.EXE will dynamically allocate as much EMS memory as a program requests, and then release it back to XMS memory when the program is done. Using the MIN=0 parameter means to not permanently reserve any EMS memory from the XMS memory pool (otherwise the default is 256K reserved), thereby making the largest amount of XMS memory available when EMS is not actually in use. (This is just like how Quarterdeck QEMM has been working all these years!) The following explains the parameters common to both EMM386.EXE lines: The I=B000-B7FF parameter tells EMM386.EXE to convert the area of Reserved memory that is normally for a monochrome video adapter into Upper memory. This is perfectly safe to do if you do not use monochrome, and gains 32K more Upper memory. The only major problems this may cause are when using special high-resolution video modes or monochrome emulation modes of certain SuperVGA video adapters; and with Windows 3.1, depending on the Windows video driver used. The video mode problem will vary greatly with the ton of video cards out there, but it is quite rare. The Windows problem can be solved by using the MONOUMB.386 driver available from Microsoft or included with MS-DOS 6.x, which involves adding the line DEVICE=MONOUMB.386 under the [386Enh] section of the SYSTEM.INI file in the Windows directory (either copy the MONOUMB.386 file to the Windows System directory, or supply the full path to the MONOUMB.386 on the DEVICE line). The I=C800-F7FF parameter (or alternate I=C800-EFFF HIGHSCAN parameters for MS-DOS 6.x only; HIGHSCAN is really the same as I=F000-F7FF) converts the largest free area of Reserved memory normally empty on most systems (with one hard disk controller, no special expansion cards, and that are not IBM PS/2s) into Upper memory. If the RAM parameter is being used, then D800 is used instead of C800 because of the 64K EMS Page Frame required in Upper memory for EMS memory support. The EMS Page Frame is placed at the lowest free area by the FRAME=C800 parameter so the largest free area of Upper memory is created. Either of these settings is the most common, but it will of course differ per system. Some things to note about this memory range: - Including the F000-F7FF area (or using HIGHSCAN with MS-DOS 6.x) converts the first half of the System ROM BIOS into Upper memory. This gains an extra 32K of Upper memory, but unfortunately it causes problems on quite a few systems. For example, many system will exhibit erratic floppy drive behavior or plain old system lockups at some point. In my experience, I've found it necessary with a 1990 AMI BIOS to use F6FF instead of F7FF (or HIGHSCAN) to avoid floppy drive problems in certain DOS programs and in Windows; however, F7FF (and HIGHSCAN) works fine with a Pheonix BIOS on another system I use. You will just have to test it out on your system. Some less-compatible systems may not like Upper memory in the System ROM BIOS area at all. - Adapter cards like secondary IDE hard disk controllers and SCSI controllers may use 8K or more for their own ROM starting at the C800 address. - Network interface cards may place their RAM buffers in the D000-DFFF area. - IBM PS/2 computers use the E000-EFFF range for their Advanced BIOS. Some computers (such as Epsons) use this range for the VGA BIOS instead of the normal C000-C7FF range. To avoid memory conflicts, your best bet would be to first examine the Reserved memory area for the spaces that do not contain ROM. This way you can see if multiple I= parameters must be used instead of one big range, and what would be the best range for the 64K EMS Page Frame (if using EMS memory support). Such a utility to do this is called MSD (Microsoft Diagnostics) and comes with Windows 3.1, MS-DOS 6.x, and most other Microsoft products. There is also a utility from PC Magazine called UMASCAN that displays a nice map of the Reserved memory area. There is one more trick for MS-DOS 6.x users. Using the EMM386.EXE parameter NOHI will prevent EMM386.EXE from taking 4K of Reserved memory for its own code. That 4K will then take away from free conventional memory, however if you have a device driver or TSR that requires just a couple more K to load resident in Upper memory, then that trade off is well worth it. I had to do this myself in order to fit SHARE into Upper memory; EMM386.EXE now takes up 4K more conventional memory, but the 17K SHARE driver fits into Upper memory now. After you have configured EMM386.EXE for maximum Upper memory, you should optimize the loading order of your device drivers and TSRs so hopefully all of them fit into Upper memory now. The easiest way to do this with MS-DOS 6.x is to run MemMaker in its Custom mode, and then if necessary change the EMM386.EXE line back to the way you configured it for maximum Upper memory. Since MemMaker puts a size value (the /L parameter) on each device driver and TSR load line, you can easily reorder them to load the ones with the largest size values first since they require the most free Upper memory to initialize in before going resident. Usually MemMaker does this reordering for you, but not always for the best. If you are not using MS-DOS 6.x, then optimizing the loading order of your device drivers and TSRs is a more involved trial-and-error deal. You first have to check memory usage with the MEM /C command and note what device driver or TSR is not loading into Upper memory. Then move the line that loads that device driver or TSR higher up in CONFIG.SYS or AUTOEXEC.BAT. Reboot and check with MEM /C again. Keep trying if necessary until you hopefully get everything to load into Upper memory. Remember that no other device driver should be loaded before HIMEM.SYS and EMM386.EXE in CONFIG.SYS (in normal setups). If you use a certain device driver or TSR that must load after another one to work properly, then you can't always optimize the loading order of them. An example of this is the new SmartDrive 5.0 included with MS-DOS 6.2, which can now cache a CD-ROM drive. In order to cache a CD-ROM drive, SmartDrive must be loaded after the MSCDEX.EXE driver. Since MSCDEX.EXE must be loaded first, and most load it into Upper memory, SmartDrive may not be able to completely fit into Upper memory anymore (depending on what else has been loaded into Upper memory already). Hopefully the information discussed here will help you load everything you need to load into Upper memory, without having to spend more on a third- party memory management package! ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ P R O G R A M M I N G ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Tips on Sound Blaster Programming ³ Odieman 949@2132 WWIVnet ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Introduction Two of the most popular sound cards for the IBM-PC, the AdLib and the Sound Blaster, suffer from a real dearth of clear documentation for programmers. AdLib Inc. and Creative Labs, Inc. both sell developers kits for their sound cards, but these are expensive, and (in the case of the Sound Blaster developers' kit) can be extremely cryptic. This article is intended to provide programmers with a source of information about the programming of these sound cards. The information contained in this article is a combination of information found in the Sound Blaster Software Developer's Kit, and that learned by painful experience. Some of the information may not be valid for AdLib cards; if this is so, I apologize in advance. Please note that numbers will be given in hexadecimal, unless otherwise indicated. If a number is written out longhand (sixteen instead of 16) it is in decimal. Sound Card I/O The sound card is programmed by sending data to its internal registers via its two I/O ports: 0388 (hex) - Address/Status port (R/W) 0389 (hex) - Data port (W/O) The Sound Blaster Pro is capable of stereo FM music, which is accessed in exactly the same manner. Ports 0220 and 0221 (hex) are the address/data ports for the left speaker, and ports 0222 and 0223 (hex) are the ports for the right speaker. Ports 0388 and 0389 (hex) will cause both speakers to output sound. The sound card possesses an array of two hundred forty-four registers; to write to a particular register, send the register number (01-F5) to the address port, and the desired value to the data port. After writing to the register port, you must wait twelve cycles before sending the data; after writing the data, eighty-four cycles must elapse before any other sound card operation may be performed. The AdLib manual gives the wait times in microseconds: three point three (3.3) microseconds for the address, and twenty-three (23) microseconds for the data. The most accurate method of producing the delay is to read the register port six times after writing to the register port, and read the register port thirty-five times after writing to the data port. The sound card registers are write-only. The address port also functions as a sound card status byte. To retrieve the sound card's status, simply read port 388. The status byte has the following structure: 7 6 5 4 3 2 1 0 +------+------+------+------+------+------+------+------+ | both | tmr | tmr | unused | | tmrs | 1 | 2 | | +------+------+------+------+------+------+------+------+ Bit 7 - set if either timer has expired. 6 - set if timer 1 has expired. 5 - set if timer 2 has expired. The Registers The following table shows the function of each register in the sound card. Registers will be explained in detail after the table. Registers not listed are unused. Address Function ------- ---------------------------------------------------- 01 Test LSI / Enable waveform control 02 Timer 1 data 03 Timer 2 data 04 Timer control flags 08 Speech synthesis mode / Keyboard split note select 20..35 Amp Mod / Vibrato / EG type / Key Scaling / Multiple 40..55 Key scaling level / Operator output level 60..75 Attack Rate / Decay Rate 80..95 Sustain Level / Release Rate A0..A8 Frequency (low 8 bits) B0..B8 Key On / Octave / Frequency (high 2 bits) BD AM depth / Vibrato depth / Rhythm control C0..C8 Feedback strength / Connection type E0..F5 Wave Select The groupings of twenty-two registers (20-35, 40-55, etc.) have an odd order due to the use of two operators for each FM voice. The following table shows the offsets within each group of registers for each operator. Channel 1 2 3 4 5 6 7 8 9 Operator 1 00 01 02 08 09 0A 10 11 12 Operator 2 03 04 05 0B 0C 0D 13 14 15 Thus, the addresses of the attack/decay bytes for channel 3 are 62 for the first operator, and 65 for the second. (The address of the second operator is always the address of the first operator plus three). Explanations of Registers Byte 01 - This byte is normally used to test the LSI device. All bits should normally be zero. Bit 5, if enabled, allows the FM chips to control the waveform of each operator. 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | unused | WS | unused | +-----+-----+-----+-----+-----+-----+-----+-----+ Byte 02 - Timer 1 Data. If Timer 1 is enabled, the value in this register will be incremented until it overflows. Upon overflow, the sound card will signal a TIMER interrupt (INT 08) and set bits 7 and 6 in its status byte. The value for this timer is incremented every eighty (80) microseconds. Byte 03 - Timer 2 Data. If Timer 2 is enabled, the value in this register will be incremented until it overflows. Upon overflow, the sound card will signal a TIMER interrupt (INT 08) and set bits 7 and 5 in its status byte. The value for this timer is incremented every three hundred twenty (320) microseconds. Byte 04 - Timer Control Byte 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | IRQ | T1 | T2 | unused | T2 | T1 | | RST | MSK | MSK | | CTL | CTL | +-----+-----+-----+-----+-----+-----+-----+-----+ bit 7 - Resets the flags for timers 1 & 2. If set, all other bits are ignored. bit 6 - Masks Timer 1. If set, bit 0 is ignored. bit 5 - Masks Timer 2. If set, bit 1 is ignored. bit 1 - When clear, Timer 2 does not operate. When set, the value from byte 03 is loaded into Timer 2, and incrementation begins. bit 0 - When clear, Timer 1 does not operate. When set, the value from byte 02 is loaded into Timer 1, and incrementation begins. Bytes 40-55 - Level Key Scaling / Total Level 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | Scaling | Total Level | | Level | 24 12 6 3 1.5 .75 | <-- dB +-----+-----+-----+-----+-----+-----+-----+-----+ bits 7-6 - causes output levels to decrease as the frequency rises: 00 - no change 10 - 1.5 dB/8ve 01 - 3 dB/8ve 11 - 6 dB/8ve bits 5-0 - controls the total output level of the operator. all bits CLEAR is loudest; all bits SET is the softest. Don't ask me why. Bytes 60-75 - Attack Rate / Decay Rate 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | Attack | Decay | | Rate | Rate | +-----+-----+-----+-----+-----+-----+-----+-----+ bits 7-4 - Attack rate. 0 is the slowest, F is the fastest. bits 3-0 - Decay rate. 0 is the slowest, F is the fastest. Bytes 80-95 - Sustain Level / Release Rate 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | Sustain Level | Release | | 24 12 6 3 | Rate | +-----+-----+-----+-----+-----+-----+-----+-----+ bits 7-4 - Sustain Level. 0 is the loudest, F is the softest. bits 3-0 - Release Rate. 0 is the slowest, F is the fastest. Bytes A0-B8 - Octave / F-Number / Key-On 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | F-Number (least significant byte) | (A0-A8) | | +-----+-----+-----+-----+-----+-----+-----+-----+ 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | Unused | Key | Octave | F-Number | (B0-B8) | | On | | most sig. | +-----+-----+-----+-----+-----+-----+-----+-----+ bit 5 - Channel is voiced when set, silent when clear. bits 4-2 - Octave (0-7). 0 is lowest, 7 is highest. bits 1-0 - Most significant bits of F-number. In octave 4, the F-number values for the chromatic scale and their corresponding frequencies would be: F Number Frequency Note 16B 277.2 C# 181 293.7 D 198 311.1 D# 1B0 329.6 E 1CA 349.2 F 1E5 370.0 F# 202 392.0 G 220 415.3 G# 241 440.0 A 263 466.2 A# 287 493.9 B 2AE 523.3 C Bytes C0-C8 - Feedback / Algorithm 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | unused | Feedback | Alg | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ bits 3-1 - Feedback strength. If all three bits are set to zero, no feedback is present. With values 1-7, operator 1 will send a portion of its output back into itself. 1 is the least amount of feedback, 7 is the most. bit 0 - If set to 0, operator 1 modulates operator 2. In this case, operator 2 is the only one producing sound. If set to 1, both operators produce sound directly. Complex sounds are more easily created if the algorithm is set to 0. Byte BD - Amplitude Modulation Depth / Vibrato Depth / Rhythm To further illustrate the relationship, the addresses needed to control channel 5 are: 29 - Operator 1 AM/VIB/EG/KSR/Multiplier 2C - Operator 2 AM/VIB/EG/KSR/Multiplier 49 - Operator 1 KSL/Output Level 4C - Operator 2 KSL/Output Level 69 - Operator 1 Attack/Decay 6C - Operator 2 Attack/Decay 89 - Operator 1 Sustain/Release 8C - Operator 2 Sustain/Release A4 - Frequency (low 8 bits) B4 - Key On/Octave/Frequency (high 2 bits) C4 - Feedback/Connection Type E9 - Operator 1 Waveform EC - Operator 2 Waveform Byte 08 - CSM Mode / Keyboard Split. 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | CSM | Key | unused | | sel | Spl | | +-----+-----+-----+-----+-----+-----+-----+-----+ bit 7 - When set, selects composite sine-wave speech synthesis mode (all KEY-ON bits must be clear). When clear, selects FM music mode. bit 6 - Selects the keyboard split point (in conjunction with the F-Number data). The documentation in the Sound Blaster manual is utterly incomprehensible on this; I can't reproduce it without violating their copyright. Bytes 20-35 - Amplitude Modulation / Vibrato / Envelope Generator Type / Keyboard Scaling Rate / Modulator Frequency Multiple 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | Amp | Vib | EG | KSR | Modulator Frequency | | Mod | | Typ | | Multiple | +-----+-----+-----+-----+-----+-----+-----+-----+ bit 7 - Apply amplitude modulation when set; AM depth is controlled by the AM-Depth flag in address BD. bit 6 - Apply vibrato when set; vibrato depth is controlled by the Vib-Depth flag in address BD. bit 5 - When set, the sustain level of the voice is maintained until released; when clear, the sound begins to decay immediately after hitting the SUSTAIN phase. bit 4 - Keyboard scaling rate. This is another incomprehensible bit in the Sound Blaster manual. From experience, if this bit is set, the sound's envelope is foreshortened as it rises in pitch. bits 3-0 - These bits indicate which harmonic the operator will produce sound (or modulation) in relation to the voice's specified frequency: 0 - one octave below 1 - at the voice's specified frequency 2 - one octave above 3 - an octave and a fifth above 4 - two octaves above 5 - two octaves and a major third above 6 - two octaves and a fifth above 7 - two octaves and a minor seventh above 8 - three octaves above 9 - three octaves and a major second above A - three octaves and a major third above B - " " " " " " " C - three octaves and a fifth above D - " " " " " " E - three octaves and a major seventh above F - " " " " " " " 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | AM | Vib | Rhy | BD | SD | TOM | Top | HH | | Dep | Dep | Ena | | | | Cym | | +-----+-----+-----+-----+-----+-----+-----+-----+ bit 7 - Set: AM depth is 4.8dB Clear: AM depth is 1 dB bit 6 - Set: Vibrato depth is 14 cent Clear: Vibrato depth is 7 cent bit 5 - Set: Rhythm enabled (6 melodic voices) Clear: Rhythm disabled (9 melodic voices) bit 4 - Bass drum on/off bit 3 - Snare drum on/off bit 2 - Tom tom on/off bit 1 - Cymbal on/off bit 0 - Hi Hat on/off Note: KEY-ON registers for channels 06, 07, and 08 must be OFF in order to use the rhythm section. Other parameters such as attack/decay/sustain/release must also be set appropriately. Bytes E0-F5 - Waveform Select 7 6 5 4 3 2 1 0 +-----+-----+-----+-----+-----+-----+-----+-----+ | unused | Waveform | | | Select | +-----+-----+-----+-----+-----+-----+-----+-----+ bits 1-0 - When bit 5 of address 01 is set, the output waveform will be distorted according to the waveform indicated by these two bits. I'll try to diagram them here, but this medium is fairly restrictive. ___ ___ ___ ___ _ _ / \ / \ / \ / \ / | / | /_____\_______ /_____\_____ /_____\/_____\ /__|___/__|___ \ / \___/ 00 01 10 11 Detecting a Sound Card According to the AdLib manual, the 'official' method of checking for a sound card is as follows: 1) Reset both timers by writing 60h to register 4. 2) Enable the interrupts by writing 80h to register 4. NOTE: this must be a separate step from number 1. 3) Read the status register (port 388h). Store the result. 4) Write FFh to register 2 (Timer 1). 5) Start timer 1 by writing 21h to register 4. 6) Delay for at least 80 microseconds. 7) Read the status register (port 388h). Store the result. 8) Reset both timers and interrupts (see steps 1 and 2). 9) Test the stored results of steps 3 and 7 by ANDing them with E0h. The result of step 3 should be 00h, and the result of step 7 should be C0h. If both are correct, an AdLib-compatible board is installed in the computer. Making a Sound Many people have asked me, what the proper register values should be to make a simple sound. Well, here they are. First, clear out all of the registers by setting all of them to zero. This is the quick-and-dirty method of resetting the sound card, but it works. Note that if you wish to use different waveforms, you must then turn on bit 5 of register 1. (This reset need be done only once, at the start of the program, and optionally when the program exits, just to make sure that your program doesn't leave any notes on when it exits.) Now, set the following registers to the indicated value: REGISTER VALUE DESCRIPTION 20 01 Set the modulator's multiple to 1 40 10 Set the modulator's level to about 40 dB 60 F0 Modulator attack: quick; decay: long 80 77 Modulator sustain: medium; release: medium A0 98 Set voice frequency's LSB (it'll be a D#) 23 01 Set the carrier's multiple to 1 43 00 Set the carrier to maximum volume (about 47 dB) 63 F0 Carrier attack: quick; decay: long 83 77 Carrier sustain: medium; release: medium B0 31 Turn the voice on; set the octave and freq MSB To turn the voice off, set register B0h to 11h (or, in fact, any value which leaves bit 5 clear). It's generally preferable, of course, to induce a delay before doing so. ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Advantages of C over PASCAL ³ Grim Reaper (2@8415 WWIVnet) ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1. C is case sensitive by nature, that means you can't just type stuff any old way. This promotes better coding and more standard naming conventions. 2. C has a very versatile preprocessor. Pascal has an extremely primitive one that no one ever uses. 3. C has macros, which saves code for constants because the preprocessor seeks out the macros and replaces them with the real code (i.e. in the code, NUM_OBJECTS would be physically replaced with the number 7) whereas in Pascal, constants must be used, which take up memory. 4. In C, functions can be manipulated and even passed as parameters. In order to accomplish this in Pascal, you must use inline assembly. 5. C is more flexible in parameters, even allowing variable numbers of parameters in some instances. You can call by value or by reference at any time you choose. In Pascal when you use the VAR keyword it expects a variable of the correct type and nothing else will do. 6. C is not strongly typed - Pascal is. That means that an int can be replaced with a char or vice versa or almost anything, in most instances. In many cases it is easier because you don't need useless functions such as the 2ord0 function in Pascal to accomplish what should already be available to you. 7. C can be made portable if it complies with certain standards. Pascal is rarely (if ever) portable to UNIX or other operating systems. 8. C++ can allow overloading for operators or functions. That means that if you pass the same function a different number, set, or types of parameters, it will execute differently. An example would be creating a 1print0 statement that prints different formats depending on whether it is passed a character, an integer, or a floating point number. You could NEVER do this in Pascal. 9. C allows for different memory models, meaning it's good in a bind. Pascal offers adjustable memory sizes but never changes the amount of memory it occupies. 10. To the best of my knowledge, C is able to take advantage of 80386 and 80486 instruction sets (including 32-bit registers). Thus far I have only encountered 80286 instruction set capabilities in Pascal and I own Turbo Pascal 7.0 by Borland. (not sure about this though - can anyone confirm?) 11. C++ allows for temporary variables, meaning even within a specific function they are not on the stack the entire time. An example is that statement: for (int i = 0; i < 10; i++) ... This can save stack space and help coding at the same time, so you can better name your temporary variables to suit each specific purpose but not have to have 10 of them in memory at once. 12. C and C++ communicate on a logic much closer to that of the processor than Pascal does. While it can look messy with all its funky symbols, it is less abstracted than Pascal. 13. Knowledge of C and C++ is infinitely more valuable for obtaining a career than knowledge in Pascal. I should know, I had a summer job working at Hughes Training, Inc. They programmed the software for their flight trainers mostly in FORTRAN, with bits of C every now and then to accomplish what FORTRAN could not. That was for the 3-4 year old models. The newest flight trainers are written entirely in UNIX C and OpenGL. That's about all I could think of offhand. You could get down to the details, like implicit operations: j = i++; and other fun things, but I think the list of arguments I have presented should suffice to convince whoever it is you need. Hope I've helped! ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ L I T E B Y T E S ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Silly Strings ³ by Ima Moron 1@9661 ³ From IceNET Sysops Everywhere ³ Lite Bytes Editor ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This month we have the compendium of wit from the users and sysops of Icenet and WWIVNet. If you have a tagline that you feel is funny, or if you've seen a humorous tagline on another users posts, please send those taglines to myself Ima Moron 1@9661 Icenet or 1@10331 WWIVNet. From: Elite #8@15327 WWIVNet "Could you continue with your petty bickering? I find it most intriguing." From: Minnie Mouse #9@7763 Icenet, Eat-A-Byte BBS I'll be glad to get an offline mail reader!! From: "Yosemite Sam" #1@11561 WWIVNet We don't want users with good taste, we want users that taste good!!! From: Mr. Cheese #26@15116 WWIVNet iwannabestereotyped!iwannabeclassified!iwannabemasochistic!iwannabeastatistic! From: Joker's Wild #14@11809 WWIVNet Just remember, stupid taglines don't kill people, people kill people. From: Anthony #429@4501 Icenet Drink more and fester... From: The Fader #268@12000 WWIVNet I've got something for you that I don't want anymore.... From: Sleepy #3@3074 Icenet Ignorance is temporary...stupidity is FOREVER From: Norplant #160@8312 WWIVNet Once I thought I was wrong, but I was mistaken. From: Firefighter #1@9660 Icenet SysOp's Creed: Coffee is god, Juan Valdez is the messiah ÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ S P E C I A L ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ WWIVnet Technical Docs ³ by Midnight Tree Bandit 1@8411 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ [IceNEWS Serialization Note - This is part one of four. Internal page numbers have been retained for ease of reference. Page breaks, however, have been removed.] WWIVnet Technical Documentation Version 2.0.34 3 October 1994 Wayne Heyward aka Midnight Tree Bandit (based on the original by Wayne Bell) Copyright 1994 by WH and WWIV Software Services WWIVnet Technical Documentation 2.0.34 (NET34) CONTENTS I. Introduction . . . . . . . . . . . . . . . . 1 A. History . . . . . . . . . . . . . . . . . 1 B. Purpose, Limitations, and other Info . . 1 C. Relevant Copyrights and Acknowledgements 2 II. General Overview of WWIV Networking . . . . . 4 III. Making Connections . . . . . . . . . . . . . 6 A. Establishing Contact . . . . . . . . . . 6 B. Data Transfer . . . . . . . . . . . . . . 7 C. Identification Block Examples . . . . . . 10 IV. Message Packets . . . . . . . . . . . . . . . 12 A. The Message Header . . . . . . . . . . . 12 B. Mail File Processing . . . . . . . . . . 14 C. Local Mail Processing . . . . . . . . . . 16 D. Main and Minor Message Types . . . . . . 18 V. BBSLIST/CONNECT Files and Message Routing . . 27 A. Old WWIVnet -- BBSLIST.NET & CONNECT.NET 27 B. New WWIVnet -- BBSLIST.x & CONNECT.x . . 30 C. Figuring the Routing . . . . . . . . . 31 VI. Tips for Writing WWIVnet Software . . . . . . 35 A. WWIVnet Interface Software . . . . . . . 35 B. WWIVnet Software Add-ons . . . . . . . . 37 Appendix A Mail Packet Compression . . . . . . . . . . . 38 Compression Source Code . . . . . . . . . . . 39 WWIVnet Technical Documentation 2.0.34 (NET34) I. INTRODUCTION A. History Back in 1989, Wayne Bell released the first technical documenta- tion covering the technical workings of the WWIV networking software. While much of the information in that document is still relevant now, much has changed since 1989. The Group structure has been added, support for more message types, and support for preprocessors to the packet tossers has been added. So in late 1992 or early 1993 Wayne asked for volunteers to rewrite the WWIVnet Technical documentation. No one spoke up. Then in March I started providing WWIV support on the GEnie information service, and some people started asking about getting technical information so they could get their non-WWIV boards to communicate with WWIV networks. Looking around, I found the original doc, and asked Wayne if anyone had answered his call. As it turned out, I became the volunteer. After much procrastination and "How's the doc coming?" from Wayne, here it is. B. Purpose, Limitations, and Other Info The purpose for this document is to explain the WWIVnet interface for those who wish to write software which communicates with WWIVnet systems, either independently or as an extra utility for the existing NETxx software. The documentation that you are reading now is more an expansion and clarification of the original docs than it is a total rewrite. It looks a little neater too, thanks to Word Perfect. Now that the bulk of the work is done, the plan is to update them with each release of NETxx to reflect new features. The information in this document is current with WWIVnet version 34 (NET34). First clarification: in the context of this document, the term "WWIVnet" refers to the software for interfacing WWIV-type networks and any network which uses that software. Though WWIVnet is also the name of the original and largest of the dozens of WWIV networks out there, the use of the term here is not meant to imply that this document is specific to that network. This documentation assumes that the reader at least: a) has a good working knowledge of C and the various C data types and data structures. b) has a general familiarity of how file transfer protocols work. 1 WWIVnet Technical Documentation 2.0.34 (NET34) Due to the proprietary nature of Wayne Bell's WWIVnet software, we will not cover the inner workings of the current networking programs distributed in NETxx.ZIP. We will only discuss the external requirements for any third party interfaces that may be written for connecting non-WWIV systems to WWIV networks. Likewise, we will not discuss the NETUP software, which generates and sends out the network node lists and connect lists. You'll just have to figure that out for yourself. This document is not a replacement for Filo's WWIVnet Software Documentation. This doc does not describe how to use the network software, only how it works. For instructions on using the NETxx software and familiarize yourself with how to use it, see Filo's documentation, which can be found in the current NETxx release. A note on the numbering for this document. This is version 2.0.34. The first number indicates that this is a major rewrite from the original by Wayne Bell. Unless a major overhaul is done, this is not likely to change. The 0 in the second part indicates that this is the first version of this document. If there are any major changes or additions made, this will be incremented. The 34 indicates that this information is current as of version 34 of the WWIVnet software (NET34). Minor changes reflecting small interface changes in the WWIVnet software will cause this number to be changed. This number will not always be the same as the latest version of the WWIVnet software; if there are no changes in the external interface, this document will not be updated. I welcome comments about this document -- suggestions for additional information to include, things that could be explained more fully, and so forth. I can be reached at the following addresses: WWIVnet: #2@8408 WWIVLink: #1@18411 IceNET: #1@8411 GEnie: TREE.BANDIT Internet: tree.bandit@genie.geis.com C. Relevant Copyrights and Acknowledgements This document is Copyright 1994 by Wayne Heyward (aka Midnight Tree Bandit) and WWIV Software Services (WSS). It may be freely distributed provided it is not altered in any way. This is copyrighted to prevent unauthorized (and possibly inaccurate) changes from being made to this document by anyone other than myself or any other appointed by WWIV Software Services (should I be unable to continue updating this document). 2 WWIVnet Technical Documentation 2.0.34 (NET34) WWIV BBS and the WWIVnet software (distributed as NETxx) are Copyright 1986-1994 by Wayne Bell and WSS. NETEDIT is Copyright 1994 by Black Dragon Enterprises. DSZ is Copyright 1994 by Omen Technology INC. HSLink is Copyright 1994 by Samuel H. Smith. The PKWare Compression Libraries are copyright 1993 by PKWARE, Inc. The WWIVnet interface information and code in this document is placed in the public domain, and may be freely used for the purpose of interfacing with WWIV networks and network software. I would like to thank Wayne Bell, not only for creating a top- notch BBS program that is both powerful and easy to use, but creating a networking scheme that is more painless to set up and operate than any other out there. He has said often that if he knew then what he does now, things would have been different. I cannot help thinking that the result would have been less elegant or easy to use. I would also like to thank Wayne for his patience over the last year and a half, waiting for me to get this document started. I've fired thousands of questions at him the last few weeks in an effort to make this documentation as complete as possible, and he answered every one. And finally thanks to Filo, who also provided vital information and advice without which this documentation would be incomplete. 3 WWIVnet Technical Documentation 2.0.34 (NET34) II. GENERAL OVERVIEW OF WWIV NETWORKING A WWIV network is basically a loose confederation of WWIV BBS systems that use the WWIVnet (or compatible) software. The software does not limit the connection structure, so the member sysops can connect to anyone they wish (subject to the rules of their network). For ease of administration, the network may be split up into Groups, each with their own coordinator. Node numbers are an unsigned short int, so that nodes may be assigned a value from 1 to 65535. The lists of nodes are distributed in two sets of files: BBSLIST.xxx and CONNECT.xxx. There are two different ways of handling these files. The old way has just one BBSLIST.NET and one CONNECT.NET file. The CONNECT.NET file assigns costs to each connection for each system. Some smaller networks still use this setup. The new way, implemented in 1990, uses several BBSLIST and CONNECT files with extensions indicating group number (e.g. Group 1's files would be BBSLIST.1 and CONNECT.1). BBSLIST.0 contains a list of Group numbers, and CONNECT.0 contains inter-Group connections. It is important that any non-WWIV systems be able to support both setups if they wish to connect to a WWIV network. Like all BBS networks, the primary purpose is to exchange private mail and public posts between BBSes. The passing of files in binary form, however, is not supported by the WWIVnet software, though there are some third party programs such as Tolkien's PACKSCAN which can handle files. All messages also have a maximum size limit of 32k. The basic WWIVnet software distributed in NETxx.ZIP by WSS consists of four programs: NETWORK.EXE, NETWORK1.EXE, NETWORK2.EXE and NETWORK3.EXE. Any alternative software for interfacing with WWIV should follow the same structure. NETWORK.EXE handles connections between systems. On the sending end of the connection, NETWORK.EXE calls out to another system, chosen from the CALLOUT.NET file on that system. The answering system activates NETWORK.EXE when it detects a network call. Once they're talking, they make any mail packet transfers needed. NETWORK1.EXE is the first of the two mail tossers. This one takes the incoming packet received by NETWORK.EXE and distributed the messages within to their rightful places. Local mail goes into LOCAL.NET, while mail passing through to other systems is tossed into packet files for the next hop. NETWORK2.EXE tosses the local messages in LOCAL.NET. Most are messages for email or local subboards, but there are also network updates, sub REQuests, software "pings," and other special purpose message types. It also has the ability to call on third-party preprocessors for special handling of certain types of messages. 4 WWIVnet Technical Documentation 2.0.34 (NET34) NETWORK3.EXE processes all the network updates that come in. This helps determine what routing off-system mail will take. Each WWIV network also has its own special encoding and decoding programs for handling of updates and network mail from the Network Coordinator and Group Coordinators. These are the DEmmm.EXE files (mmm corresponding to the message type). The DEmmm.EXE cannot be replaced, so any NETWORK2.EXE replacement must be able to recognize the need for calling the appropriate DEmmm.EXE, as described below. 5 WWIVnet Technical Documentation 2.0.34 (NET34) III. MAKING CONNECTIONS A. Establishing Contact Through some process, one system decides to call another. Various techniques can be used for deciding when and who to call; that should have no effect on the network. Any WWIVnet system should be able to receive a network connection at any time (i.e., there is no network mail hour). For an example of a method for limiting call out times, see the WWIVnet Software Docs. However the decision is made, a call is made to another WWIVnet system. If he connects, the connection protocol is then begun.