ݰ ۰ ۰ ۰ ۰ ۰ ۰ ۰ ۰ ܰ ۰ ܰ ۰ ۰ ۰ ۰ ۰ ߰ ۰ ߰ ۰ ۰ ݰ ۰ ۰ ۰ ۰ ۰ ۰ ۰ ۰ ۰۰ ۰ ۰ ۰۰ ݰ ݰ ݰݰ ݰ ް ݰݰ ݰ ް ݰް ݰ ް ݰ ް ݰ ް ް The Journal of IceNET June 1995 Ŀ The Editor's Desk The Upper Registers Will 1@6754 IceNEWS Op-Ed Forum Computer Illiteracy Deacon Blues 2@7653 The Future of Computing Will 1@6754 Features Let's Get Together: Starting BBS Events Louie WWIV Goes to School Chris 1@7668 Software/Programming Artificial Intelligence Louie x@xxxx Archivers: Which One is Best? Papa Bear 1@5079 Tips on Soundblaster Programming Odieman 949@2132 WWIVnet Light Bytes SysGods: Sysops With an Attitude Deacon Blues 2@7653 Special Feature The WWIVnet Technical Documentation (4/4) Midnight Tree Bandit 1@8411 Ĵ IceNEWS Staff For June 1995 "...Winners of the 1994 WWIVcon Award for Electronic News" IceNEWS Publisher - Jim 1@1 IceNEWS Editor-In-Chief - Will 1@6754 Ĵ IceNEWS is always seeking submissions from the electronic community. If you have an idea for a story, contact one of the addresses above, or see the end of this file to find out more ways to get in contact with IceNEWS. Ŀ E D I T O R ' S D E S K Ŀ The Upper Registers by Will 1@6754 Hello all, and welcome back to IceNEWS! We return this month our hiatus with something a little different. Things are changing, and we're changing with them. With any luck, you'll like the changes. IceNEWS is a group effort, and it's an entirely volunteer operation. Almost every story is a freelance submission from people in the telecommunications world, BBS sysops and users. For those just joining us, a little history; IceNEWS was founded several years ago as the newsletter of IceNET, a network of computer bulletin boards running the WWIV software. Most of our readers still get IceNEWS over IceNET, and obviously the name reflects our origin. Starting this issue, we're breaking new ground, and expanding outwards. IceNEWS is still, and always will be, available over IceNET. But now we're also available via the Internet - on newsgroups such as comp.bbs.misc, from our mailing list (see the end of the issue), and over the WorldWide Web, at http://www.tiac.net/users/wcrawfor/icenews/ where you'll find a full hypertext version. Despite this expansion (and it does mean that we go from thousands of potential readers to millions), we're keeping content the same. IceNEWS will continue to feature articles on the technical, personal, and humorous sides of the BBS world. To kick off our expansion, we're looking back at a year's worth of IceNEWS, starting when IceNEWS was reorganized in December 1993. Enjoy! Ŀ The IceNEWS Op/Ed Forum - "Computer Literacy" by Deacon Blues 2@7653 "Now repeat after me... Random Access Memory... ROM... BIOS..." -- commercial for Compaq computers -- How computer literate are we? Well, if you had enough knowledge to set up a BBS, join a network and maintain a connect, and look in your data files for this publication, you're more computer literate than the average person. Trust me on this. Over the course of this past winter, I found out first hand for myself just how computer literate (or illiterate, as this case may be) some of today's high school grads really are. I'm a student at a local business institute and part of my curriculum included a requisite class on introductory computer concepts. What the school considered "introductory" was learning how to use DOS and an integrated software package that included spreadsheet, database, word processing, and graphing programs. Now I'm no computer whiz myself, but even I was not intimidated by the course outline for the class. At the start of the semester, there were a total of 28 students in the class representing curricula such as Secretarial, Medical Secretarial, Business Management, Computer Systems Management, Travel & Tourism Management (my field), and Electronic Technology. The machines in our lab were old 8088s that were not networked and had no hard drives; they all booted off of the 5.25 low density floppy a: drive. This is where the fun began. Out of the 28 class students, 5 (including myself _and_ the teacher) had previous computer experience and 2 (excluding myself and the teacher) owned a computer at home. When these 2 were asked how much they knew about the operations of their machines both replied that they knew little. They had bought "package deals" which had come complete with pre-loaded software. All they knew was that they turned the power switch on and the thing worked. Neither knew how to actually install a program or what a directory listing looked like (in fact, they didn't even know what a directory was). In short, these people did not know a game port from an airport. The teacher was ready to slap himself in the head as neither him nor I had ever seen a room full of so many people who knew so little about computers. Being a cosysop and having experience with computer illiterate newbies from my BBS dealings, I immediately identified with the plight the teacher was facing and offered any help I could give him. No matter what this guy said to the other students and how he simplified things he might as well have been speaking Greek to 90% of the class. At the end of the very first class nearly everyone's heads were visibly spinning (I swear, some students actually appeared to stagger out of the class disoriented and glassy-eyed) and about all the teacher did was to go over simple components (like disk drives, CPUs, peripherals, etc.) and try to explain what an operating system (DOS) was and touch on some simple commands (like DIR). The next time the class met, 4 people had dropped the course and the teacher decided to put off teaching DOS for the moment and try to teach the integrated software instead as at least some of the people had some experience or base knowledge of one of the integrated programs. The next time the class met, the teacher gave everyone a DOS disk and had everyone load it up. He then had everyone type the directory listing command to show them what one looked like. Then he had us load in the integrated software. He told everyone that in order to use the programs they would need to load DOS first, then load the integrated software. For about 9 of the next 12 weeks, about half of the students continued to take the teacher literally, thinking that they must not only load DOS but do a DIR as well before they could insert and load the integrated software. About a quarter of the remainder failed to grasp the concept of loading DOS before attempting to load their other software and cries of "Mr. Sparks, what's wrong with my machine?" were a regular event. By mid-term, the size of the class had dwindled to 14 students. As the weeks rolled by and I alternated between burning through my class exercises and running around helping the teacher deal with the remaining dunderheads who couldn't understand why you can't insert letters in a numeric data field, I came to the dawning realization that the more the world turns toward computer technology, the deeper of a hole this country's work force is going to be in. These students were all high school graduates and all from fields of study that rely heavily on the daily use of computers in some way, shape, or form and they were wallowing miserably in about the most basic and simple computer class you could get. It was time for my head to spin now. Oh, by the way, we never did learn about DOS. It had taken everyone the entire 12 weeks of the class (which met twice a week for sessions lasting one hour and fifty minutes) to get through their assignments on the four basic integrated software programs and the teacher ran out of time. Two people were even still working on old assignments the class before the final exam while the teacher was giving a final review. For the last class, 9 people (myself included) showed up to take the final exam. Nine out of an original 28 students. In case you're wondering, everyone who took the final passed (it was joke simple, a rehash of 4 previous assignments). Those who dropped the class avoided nothing as it's a requisite, so they only delayed the inevitable and passed up on having a class with an incredibly easy-going and undemanding teacher. I hope they all get into a class taught by a real stiffy. My whole point to this rambling is that it is very clear (at least, to me) that computer training must become a requisite course at the high school level, if not earlier. Otherwise, I feel that the fiasco that I witnessed at the collegiate level will become a more common and unfortunate occurrence.As I alluded to before, I'm no computer genius and I got through the class alive and passed the final. To think that there are people who are fresh out of high school (I've been out for nearly 15 years now) and couldn't cope with a simpleton class is scary. Real scary. Ŀ The Future of Computing Will (1@6754) Every few months, people get together and try to figure out what the computing scene will look like five, ten, or fifteen years down the line. Often these are wild guesses, flagrantly optimistic or too narrow-sighted and pessimistic. A committee under President Johnson was told to come up with an idea of what computing would be like in the year 2000. Everything they predicted had occured by the mid 1970s. Arthur C. Clarke, a science visionary if there ever was one, overshot the direction of AI (in 2001) and understated it as well (in some of his novels, he predicted that punch cards would still prevail in 100 years). The mid 1990s is certainly a turbulent time, with platforms, chips, and operating systems all jostling for a top position, and nobody is really quite sure what will come out on top in the end. However, computer technology is begining to settle into a pattern and trends appear which make long range predictions easier. While things are still murky, many technological developments of the next five to ten years can be seen through the haze. Hard disk capacities will double, triple, and finally increase up to 50 times over the next five years, with no real change in cost. Two new technologies will make this possible. The first involves using DAC chips (Digital Audio Converter, more on them later) to filter data "noise" from the hard disk. This will allow information to be packed much more tightly on the disk platter without additional miniaturization costs. The second scheme, which may bear even more potential, involves changing the orientation of the recording medium on the disk platter to allow a much tighter density of information. Crystal Lattice memory may also come into its own for storage, pehaps by the year 2000, perhaps later. This involves using a laser to store data in "cells" a few dozen atoms across in pieces of special crystal. While current working models only store a few dozen bits of memory, this technology has the potential to cram terrabytes of memory into a recording media not much larger than a marble. The chip wars will continue for a few more years, the eventual winner still indeterminite. IBM, and Apple especially, are betting the farm on the success of the PowerPC RISC chip. Intel has a lot to lose if PowerPC catches on, so they'll continue to step up R&D and solve the cooling problems of the latest generations of Pentiums and above (Intel recently demoed a Pentium DX4. While capable of hundreds of MIPS, the machine needed liquid cooling). Machines using liquid nitrogen cooling might become popular if the chips can't be made to run at a lower temperature. If IBM and Motorolla can release the PowerPC 620 chip on schedule, and announce even more advanced versions, they have a good chance of prevailing. Rumors are that IBM plans to incorporate some 486 compatible circuits onto the next generation of PowerPC, helping end the copmatibilty problems. The other RISC manufactures, such as MIPS (makers of the R4000 chip used in Silicon Graphics workstations, among other strong RISC machines) aren't going to toss in the towel, so there's still the possibility of a "Dark Horse" canidate. Who wins the chip war really depends on who wins the Operating System War. Which chip is "in" use might become quite irrelevant if Microsoft and/or IBM get the multi-platform versions of Windows NT and OS/2 out the door on time. Part of Microsoft's master plan includes versions of Windows NT, which should be able -- with minimal effort -- to run all Windows NT apps, period, making proccessor type irrelevant. If they can improve the emulation of 80x86 programs, they might manage to do just that. If IBM wins big with OS/2, then the PowerPC will have a definite advantage. Of course, the product under development by the IBM/Apple join venture Talligent may change all of that. Audio subsystems will become standard equipment on almost all new machines, perhaps to the level of common motherboard interfaces. The DAC chips that are becoming very popular allow customized data proccessing that allows the sound elements to be turned to various uses. Soft modems, such as those found on the AV Macintoshes and available from a few PC vendors, will become increasingly popular because they can easily be upgraded with software and double as an audio system. They'll gradually replace conventional modems. With the advent of enhanced telecommunications environments (the so-called Information Superhighway), the picture might change again, with direct ISDN links replacing modems in many applications. There's a lot going on in the PC world, and the next few years and months are going to be very interesting. In May, 1994, ex-IceNEWS Contributing Editor Louie gave us a piece on organizing BBS get-togethers, which spawned dozens across the country: Ŀ Let's Get Together: Starting BBS Events Louie (6@1) Summer time is just around the corner. That means nice weather is almost upon us. Time to start thinking of the summer's BBS Events. What's that? Your area doesn't have BBS gatherings? Well, that is a shame. BBSers should all get together every now and again just so we remember we are all real people at the other end of the modem and not just some weird Artificial Intelligence Projects (or lack thereof). GETTING TOGETHER In the 716 area code where I am from, BBS Events are a long-held tradition. I have been BBSing for five and one-half years now and within the first few months of my being involved, I had gone to a Kingdom of Renjevyick Picnic. The Kingdom was a great board from WNY BBS history that now is a dead phone line in the sky. But I remember all the folks I met at that picnic. It was a great time for everybody. Other picnics were held that year. I went to them all. I met lots of fun people that year. Rebo, Perseus, Pillsbury Dough Boy, The Piper, Jammin' Joe, Pirate, Eh ???/Zenith, IBM Monk, Far Side, etc. etc. I met a lot of fun people that summer. Some of them have become close friends, others became friends for a while until we drifted apart. Others I haven't seen since, but I remember then with fondness. In 716 the picnics evolved away from one board events into Western New York All BBS Events. We try to involve all boards in the area in the Picnics, Wing Dings, and other events. WHAT TO GET TOGETHER FOR Many types of events have occurred in Western New York. We have had our Picnics, Pizza-Movie Events, Winterfests, THITs, Splatball, house parties, and "Wing Dings" (our Crown Jewel of BBS events). WING DINGS Wing Dings came about the year after I first got involved in BBSing. Buffalo is famous for Chicken Wings around the nation. Well, on the Kingdom of Renjevyick and The Far Side (two boards both defunct now), a small band of us got to talking about who could eat the most HOT Chicken Wings. All of us, being the great HE-MEN we liked to think we were, started to brag about eating hot wings. (I know, we seem to have been rather stupid. I don't deny it.) Well, Perseus got to telling us all about some really really HOT wings you could get at some local bar in Depew (a small village just outside of Buffalo). We all claimed we could eat 20 wings at this place Perseus told us about. It was a small hole-in-the wall bar called "Sal's." Naturally, Perseus - being the intelligent one among us (and having tried to eat a Sal's Wing in the past) - dared us all to show up at Sal's and try eating one, let alone 20. Seven brave putzoids took the "Sal's Suicide Challenge," as it has since been called. The brave adventures were : Perseus, Rebo, David C. (who has since changed his handle to The Wizard), Gordon Sumner (who has since wandered away from WNY BBSing), John Hardball, The Pillsbury Dough Boy, and myself. Due to a mix-up, only one of us got the "Suicidal" wings. That person was myself (oh, lucky me). I managed to eat 8 of those Hellish things. I have never tried to eat another one since. I know when I have met my limits. It was a fun time for the seven of us. We went back to PDB's and goofed-off there for a couple of hours and then we all broke up again. We talked about the "event from hell" on KOR and Far Side and others took an interest in what we were talking about. They, like we had originally, thought there wasn't a hot chicken wing they could not master. Little did they know... We decided to hold a Second Wing Ding at Sal's. About 20-odd folks showed up for Part Two. Among those that turned out for the second hellish experience were Kilometers, The Piper, Jammin' Joe, Zot, Swashbuckler, Eh ???, Pirate, etc. etc., as well as the original seven of us. At this second Wing Ding Rebo managed to eat 20 of the hellish wings. And, as Rebo later put it, he had trouble in the bathroom for a week. Rebo is the only idiot to manage to eat 20 of the evil wings. (He can be reached at 1@7660 in WWIVnet and 1@17660 in WWIVlink). At Wing Ding Three (the first Wing Ding to be called a Wing Ding), Csev The Wanderer managed to eat 11. The top three folks at eating wings are Rebo, Csev, and myself. I titled the Wing Dings that myself. I said something like "See you all at the Wing Ding later tonight," and the name of the event was born. Perseus was the Wing Ding Czar for about three years. Perseus was in charge of organization because it was his original idea. I, however, have since inherited the Czarship. I am about to hold my 5th Wing Ding myself. It will be the 22nd Wing Ding in a long glorious history of WNY BBSing. Wing Dings are something we are very proud of, as you probably already guessed. These are sometimes other gatherings at local restaurant/bars. People come out to eat dinner and spend the evening talking and meeting other BBSers. For dinner we hype the Chicken Wings, but it is not a requirement. PICNICS Picnics are nice events for summer weather. We normally get together at Beaver Island State Park three or four times over the course of the summer. We then regularly have one End of Summer Picnic at Chestnut Ridge Park. To hold a picnic you need a large park. Someplace everybody pretty much knows exists and knows how to get to. Don't choose some small, out-of-the-way park that very few people know about. The park should have picnic tables, shelters, big open spaces, parking areas and bathrooms. Other secondary things to look for are things like baseball/softball diamonds, basketball courts, volleyball nets, and playground equipment for the tykes. Also, try to pick a place in the park that is easy for people to find where everybody can meet when they first get to the picnic. Remember the Bring-Your-Own-Stuff mentality. Make it plain to everybody that food and drink is not being provided by you when you advertise the picnic. Sure, you are a nice person, but I am sure you can't provide hot dogs for 100+ folks. Remember to bring a grill to cook on, too, since some parks don't provide them. In Western New York, we have gotten turnout for picnics to push 175-200 folks at times. We advertise the heck out our picnics. MOVIE-PIZZA NIGHTS Movie-Pizza events are another thing we like to do around 716. In this we pick a movie to see and a time to see it. Then we choose a time about two hours before the movie starts to meet a local pizza Joint, normally a Pizza Hut. We meet, eat, and chat at the restaurant, then go see the film of choice. Sometimes, we even keep things going afterward by maybe either heading off to a bar or to somebody's house afterwards. These are good to do with a funny movie, sometime like "Wayne's World" or "Naked Gun" type films. Don't try this with "Schindler's List." This is supposed to be a fun event and a serious or weighty movie can really put a damper on the fun. THITS A THIT (standing for "Thank Heavens It's Thursday) was an adult-type Wing Ding before there were Wing Dings. We have not had one in a long time around here. Adult themes may be something to stay away from anyway. BBSing already gets a bad enough rap in the press with the "We're all Pirates and X-rated GIF Makers" guff you see. Besides, there are usually many BBSers in an area that are minors and would be unable to attend. One of the reasons that Wing Dings and Picnics have been so popular is that they are open to all-ages. WINTERFESTS Ok, I'm a dude from Buffalo, and in Buffalo some of the more insane among us Picnic in the snow. Every year, Chestnut Ridge Park is home to a county-sponsored Winter Festival near the end of January. It's always very fun to get together at Chestnut Ridge and have snowball fights, go sledding, and play football on a snow covered field... and not just touch football either. We play a full-scale tackle/kill-the-enemy-brand of football. These are great fun, but it's impractical to try to organize one of these in Southern California or Florida or anywhere else that snow doesn't fare well. HOUSE PARTIES House Parties can be pretty good fun. Around 716, the house party expert is The Piper (16@7686). House parties do call for the host in question to provide some supplies; like chips, pop, maybe a pizza or two. It isn't uncalled to ask the quests to each put in a few bucks to pay the pizza delivery person, though. You will probably want to keep these semi-private affairs, though. Don't advertise on every BBS in your area "House Party at Louie's". You don't want 100+ idiots showing up and burning the house to the ground. A house party should be for the BBS Event "regulars" and others that you are fairly-well acquainted with. Don't let just anybody into your house for a party that you don't know or haven't met before. Use simple common sense on who you invite and don't tolerate "crashers" who may have found out about your gathering through third-party word-of-mouth. SPLATBALL (PAINTBALL) Splatball was tried in WNY a few times. Rebo organized this three times. It did involve collecting money up front, though. Also, one must pay for the paintballs that they shoot over the course of a session. Fees paid to the facility usually only cover the field fee and the rental of a gun (more generous field owners may include one or two free tubes of paintballs with gun rental). With prices ranging between $2.00 to $4.00 per tube of paintballs (a tube contains 10 paintballs), trigger-happy players can wind-up spending a fair sum of money over the course of one session (a session usually consists of about 5 or 6 complete games, depending on the field). A session usually lasts about three hours (depending on how quickly individual games are completed). Splatball is also dangerous (at least potentially) and you don't want to be held liable by some insurance company because you let some real idiot play that shouldn't have been allowed in. Deacon Blues used to play on a regular basis for a couple of years and can tell several "war stories" about players being injured on the field while involved in a game (including one incident in which he was involved). Many paintball fields also have a minimum age restriction for players, so minors may or may not be allowed. Also, Splatball is a "dirty" game in that you are always either being hit by paint or otherwise rubbing up against walls (when played indoors) that are splattered with paint from stray shots. Splatball is also a game that usually requires a fair amount of running. By the time that an evening's play is over, participants are usually too sweaty and dirty and tired to do anything afterward but go home and count the bruises. WHAT TO CONSIDER BEFORE GETTING TOGETHER There are a few other things to consider about BBS Events before actually getting one together. Advertising was something I brought up a few times in passing. You advertise a BBS Event by posting messages about it. In 716 we have the 716 General Chat Subs in IceNET and WWIVnet as well as a few Event Planning Subs. We post the messages about Wing Dings and picnics on these subs. I also normally e-mail a copy of an add to each 716 IceNET, WWIVnet and WWIVLink Sysop and ask him to tell his/her users about the event. You also should consider how many people you want to attend a BBS event before you start an advertising blitz. If you want over 100+ people to attend (which a picnic could easily support) then it pretty much does not matter how much you advertise it. You may not want more than 50 people for a Wing Ding (or other restaurant or bar-dependent activity) though. In that case, I normally only advertise on IceNET and WWIVnet. We have other various small networks around (QuadNet, DragonNET, MicroNet, etc.) and you will reach more people by advertising on such nets. But that means you will get largest attendance as well. Sometimes you don't wish for a huge attendance. If you think that this sounds contradictory to the very idea of getting together, let me relate to you some of the problems that we have had with our Wing Dings. Two problems we ran into with Wing Dings had to do with money and the place we hold the event. We started out holding Wing Dings at Sal's, a very small mom-and-pop-type bar with a capacity of about 25 people. After word spread around town about the Wing Dings, attendance skyrocketed. We quickly outgrew that small place. Sal's was good for an event that would get 25 folks at the most. We have since gotten 125 at some Wing Dings recently. In the end, Sal kicked us out because we simply over-ran his small establishment (and put a serious hurt on his very limited staff). We had to locate another place to hold the event. We did... but they only let us stay for two gatherings. Some folks got a little rowdy and tossed some birthday cake around and made a general nuisance of themselves. So, we were tossed out of our second home. Since then we have been asked to leave about five places. We have Hemingway's, a nice bar in downtown Buffalo that likes us now... but we will probably only be there one or two times more. Trying to find a new how right now. The main problems we have had with restaurants are folks being rowdy and the restaurant wanting us to have up-front money. Restaurants want up front money for some good reasons though. 1.) People sometimes stiff on bills from a group of folks (another reason we were asked to leave one establishment). 2.) People from a group sometimes cause damage (as evidenced by the cake-throwing incident). 3.) It is easier to get 300 bucks from the group and then put out a buffet of 300 bucks worth of food. Up-front money is a bad idea normally. Why? Because it can cause problems. If you have to ask people to put in $4 before hand some complain "I only ate $3 worth of food while he ate $7 worth of food" and similar complaints. It is also easier for people to manage their own bills. If you eat $5 bucks worth of wings, then you pay for $5 bucks worth. Another aspect of concern to the owners of the establishments we've held Wing Dings at is the issue of under-age drinking. You can't have kids showing up a Wing Ding (or picnic, or anything else, for that matter) and illegally drinking. This issue also cost the Wing Dings a home when someone of legal age bought a minor a drink from a bar. Due to this (and even prior to the instance) we (those of legal age) watch for this like hawks around 716 BBS Events. Some of us take a look every now and again at what folks are drinking if they are young. It might not be something you want to do but it is something you have to look out for. If some kid gets arrested for DWI on the way home from a BBS Event... the police and the parents might have some questions to ask the Organizers and the Sysops. WHAT TO DO AT AN EVENT Other little things we do... We have a sign in sheet where people sign their handles to a sheet so we know how many showed up. That is how we know we had 175+ for some picnics and a 125+ for some Wing Dings. I normally go around trying to meet everybody as well. Some people just want to talk to a few people they already know. Others, like me, try to get to know and exchange a few words with everybody. Remember, the idea is to meet people. The saying we have for our events is "Come out and meet the faces behind the handles," and that's what everyone should try to do. CONCLUSION Well, that is all I can think of to say about Western New York's BBS events. We are going to have a lot of them this summer. I hope some other parts of the country also have BBS Events. One of the ideas of BBSing is to meet more people. Local, regional, and national BBS Events can go a long way in helping to do that. They are great fun. Who knows, WWIVCon '94 may just end up being one huge BBS Event from Hell. Lets hope so. In June, we had a story about operating a BBS in a school environment: Ŀ WWIV Goes To School Chris (1@7668) WWIV, the great creation of Wayne Bell and WWIV Software Services, has been one of the most popular bulletin board software platforms around and its popularity is increasing every day. Bulletin boards are mostly used for fun, but now the vast array of applications that are available are becoming more practical. Local computer stores have created bulletin boards for support of their existing customers as well as a means of public relations in gaining new ones. Just recently, however, WWIV has been used for educational purposes. The Hamburg Central School District of Western New York is one of the leaders in our area regarding the integration of telecommunications and bulletin boards in the classroom curriculum. The Hamburg Junior High School started a WWIV bulletin board (The Pinnacle, IceNET @7668) in November of 1993 and have had tremendous student, staff, and community involvement in the project. We have used the bulletin board for many classroom activities. Recently a ninth grade home and careers class used the bulletin board to gather information on states they would like to live in as part of a group project. Bulletin board users from various states responded to a form that the students posted which included several questions pertaining to that state. Students found various statistics in each state. They found that the divorce rate in California was much higher than that of New York. They also found out about some local news in each community as well as collage and education information. Another project that we are working on now is simply dubbed "I'm Sailing!" One of the technology teachers in the Junior High School will be taking his sail boat from Lake Erie to the Caribbean and will be taking all of Hamburg with him. Yup, that's right! Armed with a Macintosh Powerbook and a modem, he will be updating The Pinnacle weekly as to his progress. Because students learn best in "hands on" situations, this project has the ability to prove to students the relevancy of the subject matter at hand. Science classes will be able to gather information on tides, currents, winds and ecology, etc. which may be used directly in the classroom. Social studies and English teachers can collaborate to have students retrieve geographical and historical information on the areas visited and compare them with encounters by the crew. Math classes might chart the courses on maps from information gathered from the bulletin board. This can be directly applied to such problems as time/speed/distance relationships by using real-life places, people and situations. This is a tangible experience to move students beyond the constraints of a text book and the traditional classroom environment. The hard part about using a bulletin board for a class is that a bulletin board, traditionally, allows only someone with a modem to access the bulletin board. Thanks to Wayne Bell, that is no longer true. As I'm writing this, I'm awaiting the arrival of Novell DOS for the bulletin board so that students can access it on any of the three local instances we've registered on our 50-workstation local area network. We are also awaiting the arrival of Filo Software Productions Front Door Installer so that we may add FidoNnet to the cornucopia of networks that The Pinnacle subscribes to. Well, that's about all we are doing at the moment. We are still relatively new and we only have about 200 users, but that is changing quick. I already have plans to help two other local school districts in creating WWIV bulletin boards for themselves and linking them together with a special WWIV-based network. I'm also giving presentations at the University of Buffalo on the educational implications of bulletin boards in the classrooms. So, as you can see, I'm a busy kid. If you have any suggestions, comments or questions feel free to e-mail me. Oh, I almost forgot, one more thing! Remember: "An hour spent on The Pinnacle is an hour spent reading and writing!" so check it out at (716) 649-3530! Also from May, 1994, Louie gave us the beginning of a four part series on Artificial Intelligence: Ŀ Artificial Intelligence - Part 1 Louie (6@1) Artificial Intelligence is a growing field within the computer sciences. It encompasses many hopes and dreams of what computer technology has to offer the world. It also encompasses many fears of what computers and robotics will do to the world. But what is AI? That is a very difficult question to answer. It involves answering some other questions that we really cannot answer yet. Questions like: 1) What is Intelligence? 2) Can a machine think? 3) If so, can it think like a human being or will the thinking process involved be fundamentally different. 4) What will it do for, or maybe to, human beings. Lots of other questions I could think up as well if I wanted to sit here and think about it for a little while. Most of these questions are unanswerable in any definitive way. First, nobody is sure what intelligence is. Does a machine that looks like it is intelligent really qualify as being intelligent, or is it just obeying simple commands and doing a good imitation of intelligence? See what I mean? The father of Computer Science and Artificial Intelligence was Alan Turing. He was a brilliant and innovative mathematician. He helped in designing one of the first computers ever to be built. He wrote many papers that are still used for the ideas he expressed in them. Turing said "A machine has artificial intelligence when there is no discernible difference between the conversation generated by the machine and that of an intelligent person." This has been used as the practical definition of AI by many since the time Turing first expressed this thought in 1950. Why? Couldn't it just be a good imitation? Yes, it could be just an imitation of true intelligence; but how do you know that the people around you that you consider intelligent are not just real good imitations? There is probably no final word on whether something or somebody is intelligent or not. So, you've a practical definition in absence of an absolute. The test that is implicit in Turing's definition is called the "Turing Test" in his honor. So far, no computer or electronic machine has ever passed the Turing Test. There have been some very good imitations so far, but all have had limits on them that make it apparent. After some observation of the output for some time, it becomes a rather simple task to figure out that it is a computer. Some take longer than others, but all have failed in the end. Mankind has always dreamed of Artificial Intelligence, even before the term to express the dream had been invented. Greek mythos had Hephaestus who fashioned human-like figures regularly in his forge. Aphrodite brought Galactea - a man-made woman, to life. Medieval Christians had the legend of Pope Sylvester II, who was credited with building a talking head that answered questions about the future. Medieval European Jews had Rabbi Judah ben Loew who created the Golem out of clay. The Jewish legend ends, however, with the Golem having to be dismantled because it got out of control. This may be the first instance of "Technology is bad" or "Man was not meant to know certain things" ideas. Author Mary Shelley took large parts of the Rabbi ben Loew myth for her novel "Frankenstein," first published in 1818. The 20th Century saw the rise of science fiction as a legitimate form of literature. With it, came Isaac Asimov and his "Three Laws of Robotics". This was a practical approach to robots (Which are just computers that can walk around, aren't they? C3PO from "Star Wars" and Data from "Star Trek: The Next Generation" are examples of robots as I am thinking of them here. I am not thinking of those industrial machines that move around a little.) The three laws of robotics are: First Law: A robot may not injure a human being, or, through inaction allow a human being to come to harm. Second Law: A robot must obey the orders given to it by a human being except where such orders would conflict with the First Law. Third Law: A robot must protect its own existence as long as such protection does not conflict with the First or Second Law. (Note: Isaac Asimov always gave credit for the Three Laws to John W. Campbell, Jr. But Campbell always said they were Asimov's. Asimov ended up with the copyright so he gets the credit. Besides, the laws were used in stories written by Isaac Asimov. Asimov's approach to computers and robotics involved built-in safeguards to protect human beings from their own creations accidentally causing them harm. This is the opposite of the basic moral of Frankenstein or the Rabbi ben Loew legend. Intelligent computers won't be able to harm humans because they will be sophisticated enough to allow for built-in safeguards. This does not mean one couldn't build them without built-in safeguards, but why would any person take a chance like that? Only terrorists and madmen would even attempt it, in my opinion. Militaries might narrow down the basic definition, but even they will leave safeguards in for most practical matters. Nobody wants their own machine turning on them when it can be avoided. So, I am against the Doomsday Sayers as to what Artificial Intelligence will bring. Computers will not be turning on their masters. Not without the masters screwing up big time first, anyway. Probably the two most important names in AI other than Turing are those of John McCarthy and Marvin Minsky. McCarthy is the inventor of the LISP programming language. Minsky has done much work on organization and representation of knowledge. LISP is the big-name programming language in the AI field. Of the 100 most important artificial intelligence research programs ever written, probably 95 of them were written in LISP. The others were probably either written before LISP came around in 1958, or were written in Prolog, a recent language to come around and still not widely used in the United States. LISP stands for LISt Processing. It is an interpreted language, which means each program statement isn't looked at seriously until run-time. To use LISP you have to think recursively. A recursive function includes itself as part of its own definition. A LISP sees no difference between the program and the data being acted upon. Prolog, though, (a recent newcomer to the field of AI relative to LISP), has gained a small following now. Prolog stands for PROgramming in LOGic. It uses predicate calculus techniques in attempting to prove the truth of propositions from a set of axioms. Neither LISP or Prolog is much like the normal programming languages BBSers would know - like C, Pascal, Basic, Fortran, COBOL, etc. Neither LISP nor Prolog is a structured programming language. The most famous program Artificial Intelligence has given the world is ELIZA. ELIZA was developed by Joseph Weizebaum in the mid-1960's at MIT. ELIZA simulates a Rogerian therapist; you can conduct a conversation with ELIZA just as you might with a psychiatrist. ELIZA was a first attempt to see if a computer could pass the Turing Test. ELIZA used basic trickery in an attempt to appear human. It would look for key words in the conversation and turn around statements made by you into questions. Here is an example of a conversation of an ELIZA with a person. (CAPS is ELIZA) HOW ARE YOU TODAY? Fine. Men are all alike. IN WHAT WAY? They're always bugging us about something or other. CAN YOU THINK OF A SPECIFIC EXAMPLE? Well, my boyfriend made me come here. YOUR BOYFRIEND MADE YOU COME HERE? He says I'm depressed most of the time. I'M SORRY TO HEAR YOU ARE DEPRESSED. It's true. I am unhappy. DO YOU THINK COMING HERE WILL HELP YOU NOT TO BE UNHAPPY? I need some help, that much seems certain. WHAT WOULD IT MEAN TO YOU IF YOU GOT SOME HELP? See how impressive that ELIZA program can be. It looks almost intelligent at first glance. But when you look at it you can see it just latched on to what the person interfacing with it said and turned the input around into questions most of the time. ELIZA would also look for keywords like "boyfriend," "mother," "father," and "death," etc. etc. If the program would be giving intelligent responses it couldn't really turn input around. It would understand what the person typing with it meant when she said it was her boyfriend who made her talk to ELIZA and wouldn't ask a generic question like "YOUR BOYFRIEND MADE YOU COME HERE?" ELIZA did not demonstrate real understanding or intelligence. It was a very good first attempt to try and pass the Turing Test and is still studied today because it is easy to draw up a simple ELIZA program and play with it. When I was in my second year College LISP class, it was the first programming project assigned to us. We had to design an ELIZA of our own. Now, what I wrote was functionally stupid but it was a fun project and many of the basic concepts of AI (if not all of them) are part of it. The major areas Artificial Intelligence research has divided itself into are: Expert Systems, Natural Language Processing, Symbolic Processing, Problem Solving (Mathematical proof solving), Pattern Recognition, Robotics, Machine Learning, and Appearing Human. In the second installment of this series, I will try to provide a rough overview of each of these areas. BIBLIOGRAPHY Understanding Artificial Intelligence; 1988; by Henry C. Mishkoff; Howard W Sams. Artificial Intelligence... Using C; 1987; by Herbert Schildt; Osborne McGraw-Hill. The Computer Glossary: The Complete Desk Reference; 1991; by Alan Freedman; AmaCom. Using Turbo Prolog; 1988; by Kelly M. Rich & Phillip R. Robinson; Borland-Osborne McGraw-Hill. I, Robot; 1950; by Isaac Asimov; Del Rey. Asimov On Science; 1989; by Isaac Asimov; Pinnacle. Essays entitled "Thinking About Thinking" and "More Thinking About Thinking". AI: The Tumultuous History of the Search for Artificial Intelligence; 1993; by Daniel Crevier; BasicBooks. IceNEWS has always provided usefull techinical articles and comparisons. In addition to software reviews and tutorials, we've run pieces like Papa Bear's August 1994 comparison of Archival software. The results may surprise you: Ŀ Archivers... Which One Is Best? Papa Bear (1@5079) Archivers... They're an essential part of BBSing today. No BBS I've ever visited can get along without archives. Mostly, they're used for the file transfer section. But they can also be used for many other applications such as backing-up the BBS's files, preserving disk space for seldom used programs, and more. Every so often, a heated debate will flare up in BBS-land about which one is *BEST*. Well, I'm here to help you decide for yourself which would be best suited for you. I have done some tests -- and the results will most likely surprise you. I'll also offer some opinions that reflect some of the intangible aspects of these programs. I tested using the newest version of each program that I could find. I also used maximum compression on all of the programs that had such a setting. (Speed is hardly a consideration anymore, except in one case, and we'll get to that later) Lets get to it. I tested 9 programs, and here they are, using the format: {(Chart identifier)} {Arc. name} {Version} {(Extension)} {Developer} (!) ARC 6.00 (.ARC) System Enhancement Associates (@) ARJ 2.41a (.ARJ) Robert K Jung (#) HAP&PAH 3.00 (.HAP) Hamarsoft - Harald Feldmann ($) LHA 2.55b (.LZH) Haruyasu Yoshizaki (%) PAK 2.10 (.PAK) NoGate Consulting (^) Squeeze It 1.08.3 (.SQZ) J I Hammarberg (&) UltraCompressor II 1.0{?} (.UC2) Ad Infinitum Programs (*) PKZIP 2.04g (.ZIP) PKWARE, Inc. (-) Zoo 2.1 (.ZOO) Rahul Dhesi [The ? for the version number for UC2 is because I couldn't find one] The testing took place on 5 different kinds of archives, as follows: {[Chart identifier]} {No. files in arc.} - {total uncompresses size} [1] 97 text files - 1,500,562 bytes [2] 26 data files - 1,427,548 bytes [3] 1 BIG text file - 1,678,337 bytes [4] 1 BIG data file - 1,410,992 bytes [5] Mixed data and text, various sizes - 1,637,404 bytes Here is the chart of how the testing went. Each entry has two numbers. The first number is the size of the final archive for each type of data. In this case, smaller is better. The second number is the percentage of compression, if it says 25% and the original file size was 100,000 bytes, then the final file size would be 75,000 bytes. So here, the larger the number, the better. [1] [2] [3] [4] [5] ͵ (!)764269 1221626 633295 870588 1350310 49.0% 14.4% 60.4% 38.2% 17.5% ͵ (@)624257 1018320 425697 588143 1113209 58.4% 28.6% 74.6% 58.3% 32.0% ͵ (#)521363 1036803 371865 590311 1125593 65.2% 27.3% 77.8% 58.1% 31.2% ͵ ($)630642 1029630 444987 604625 1125312 57.9% 57.8% 73.4% 57.1% 31.2% ͵ (%)653009 1060599 477287 636336 1164962 56.4% 25.7% 71.5% 54.9% 28.8% ͵ (^)619371 1016825 425373 585386 1110656 58.7% 28.7% 74.6% 58.5% 32.1% ͵ (&)546616 1006922 419000 577086 1077628 63.5% 29.4% 75.0% 59.1% 34.1% ͵ (*)623741 1017266 418665 583832 1113326 58.4% 28.7% 75.0% 58.6% 32.0% ͵ (-)631148 1030693 445118 604762 1127622 57.9% 27.7% 73.4% 57.1% 31.1% ; Now, in order to keep you from having to bang your head over these numbers, I have come up with a way to determine a clear "winner". I assigned 8 points to the program that compressed the most, 7 for the one that was next, and so on until the program that compressed the least -- which got 0 points. Since there are 5 categories, a perfect score would be 8*5 or 40 points. Here are those results. Hold on to your hats! Chances are your program didn't win! 1st - 37 points: UltraCompressor II 1.0 6th - 17 points: LHA 2.55b 2nd - 31 points: Squeeze It 1.08.3 7th - 11 points: Zoo 2.1 3rd - 30 points: PKZIP 2.04g 8th - 5 points : Pak 2.10 4th - 25 points: HAP&PAH 3.00 9th - 0 points : ARC 6.00 5th - 24 points: ARJ 2.41a Yep, you got it, the UC2 format is clearly the best in terms of overall compression. But normal archives normally do not include just data or text files, but a mixture of files. So the last column in the chart is actually the most telling for a BBS sysop. If you were to consider that only, the ranking falls slightly differently, as follows: 1st - UltraCompressor II 1.0 6th - HAP&PAH 3.00 2nd - Squeeze It 1.08.3 7th - Zoo 2.1 3rd - ARJ 2.41a 8th - Pak 2.10 4th - PKZIP 2.04g 9th - ARC 6.00 5th - LHA 2.55b Like I said, surprising, no? Now for some personal "awards" -- these are based on things that the archiver does, or has to offer, that do not affect its compression: Most configurable - ARJ 2.41a Fastest - UltraCompressor II 1.00 [by far!] Easiest to configure - UltraCompressor II 1.00 "Prettiest" - UltraCompressor II 1.00 Slowest - HAP&PAH 3.00 [I almost fell asleep waiting on this] Least configurable - Zoo 2.1 Least Flexible - Zoo 2.1 Most confusing - ARJ 2.41a [can be overwhelming in its configurability] Most online help - UltraCompressor II 1.00 Most popular - PKZIP 2.04g [shame, too, there are better...] As an aside... I just got UC2 *last night*. I had heard of it via SHEZ, but didn't know what it was. If that program is any indication of where archivers are headed, then the future looks especially bright. It truly is a great little program. Too bad no one really uses it... I used SHEZ 10.0 to handle all of these conversions. I think SHEZ is one of the best compression shells around. For the record, I had to do ARC manually because it kept bombing out under SHEZ. UC2, HAP&PAH, and Squeeze It all did things okay, until they reached the archives with large numbers of files in the archive. At that point they all caused SHEZ to simply quit. I simply reloaded SHEZ and picked up where I left off. Well that is it. I hope you got something from this. All of these programs (and more!) are available here *shameless plug time* at 510-522-3583 (ASV). I appreciate any comments that you may have on this matter. In October, we ran a more technical article on programming the Sound Blaster card, as well as several reviews of newly released software: Ŀ 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. From our first issue under "new" management, back in December 1993, here's IceNEWS Editor-In-Chief Emeritus Deacon Blues on some of those sysops you just don't want to deal with... Ŀ SysGods: Sysops with an attitude Deacon Blues 2@7653 or "I Did It MY Way" "You ask me if I have a God complex. I AM God." - Alec Baldwin in commercials for the film "Malice" - We've all heard the horror stories. Accounts deleted for "no reason." Mail from users being routinely ignored or just plain "zapped" without reply. New user accounts remaining unvalidated for weeks, sometimes months. Sudden loss of carrier from the BBS, then a busy signal when redialing is attempted. Seventy-five line posts from the #1 account on a daily basis explaining in excruciatingly exact detail just why he/she holds the #1 account and what he/she can do to those who dare to oppose. I am, of course, talking about the sysop. More precisely, the sysop with an attitude. If you continually experience any or all of the potential symptoms I've outlined above, you may have found yourself a sysop with a "SysGod" complex. The SysGod complex can best be described as a habitual misuse of the powers vested in being a sysop for reasons of pleasure or personal gain. The complex causes the sysop to act in a manner that would suggest delusions of godhood and a semi-divine detachment, thus alienating his/her users to the point of them no longer calling the BBS. The complex can be broken down into two categories: "Demi-SysGod Syndrome" [DSS] and "Holy SysGod Syndrome" [HSS]. Believe it or not, in most cases of DSS, the afflicted sysops usually started their BBS with all the best of intentions, and in most cases used to be a "regular" user prior to becoming a sysop. But, apparently, somewhere along the way something happens to them. Maybe it's the fact that running a BBS is more of a task than they thought it was. Maybe they're experiencing personal problems. Maybe their pet goldfish died. Somewhere down the line, they experience a "break" in their attitude as a sysop. A kind of a digital "Falling Down," if you will, where they start to vent their anger and frustrations out onto their users. When detected early, most of these cases manage to correct themselves in a relatively short time and with little lasting repercussions to their users. Once a sense of normalcy returns to the sysop's life, so too does it to the BBS in most cases. HSS sufferers, on the other hand, while also usually being users prior to becoming sysops, also generally suffer from other outside, pre-existing personality disorders. As regular users (and I use the term "regular" loosely), they often acted in "irregular" manners that most would describe as being combative, disrespectful, disagreeable, belligerent, and/or offensive toward others. Typically, they are the type of user who feels that they are "God's gift to BBSs" or a form of "Modem Messiah" and anyone else who has differing ideas or ideals is irrelevant and only there for his/her personal amusement. They are usually shallow, close-minded individuals who quite probably used to be (or still are) either the school, neighborhood or work bully. Mostly, their motivation to start their own BBS is based on their feelings that "All of the other 35 BBSs I call suck, so I'll make one in my own image with my own rules and forget everyone else." While HSS sufferers make up only a small minority of those who suffer from the SysGod complex, they are the one's who draw all the scrutiny from others as their affliction is usually chronic in nature and long in duration. One of the saddest things about this affliction is that everyone, not just the sysop, suffers because of the effects of the SysGod complex. This includes the BBS itself. Many times, in fits of rage and delirium, they will make changes to the BBS itself to reflect their newfound divine philosophy in the way of allowing certain policies, adding particular subs that normally wouldn't be carried, deleting files or users, regularly interrupting or kicking users offline in order to allow the SysGod to access the computer for things like playing games, viewing adult .GIFs, calling other BBSs and leaving posts saying how much that system sucks and how great his system is, etc. As a result, the users will slowly start to disappear as they either stop calling back or are deleted by the sysop. Eventually, the BBS will receive sufficient bad word-of-mouth publicity as to discourage new callers from logging on. In order to better understand the psyche of those who suffer from HSS, I decided to look for a local BBS that is run by an afflicted sysop and give it a call. After searching the advertisement subs of several local systems, I found the following ad: CALL HERE!!!!!! MY DAMN BBS (Sysop: The All-Powerful 1) If you don't call "My Damn BBS," you're a chump. 716-555-1001 Nine months old and going strong. As this looked like a good potential candidate for a HSS sufferer, I called. Here is the capture file I ran while online at My Damn BBS. My personal notes written later appear in [brackets]. Connected at 14400 Welcome to: ___ ___ /\ /\ | \ | \ / \/ \ | |\ \ | o / / /\ /\ \ | |/ / | o \ /_/ \/ \_\ Y |_ _/ AMN |___/ BS Sysop: The All-Powerful 1 24 Hours (but not in a row) 2400-14.4 (if I like you) - 1200 (if I don't) Enter your number or name or `NEW' NM: NEW Would you like to use our Guest User account to look around first? Y/N Y Too damn bad, we don't have one here. [At this point, I was somewhat certain that I'd reached a HSS sufferer, but some doubts still remained. Those, however, were washed away by what followed next. At this juncture, one would expect to see a system rules file and/or a legal disclaimer. Here's what I got:] >>Welcome To My Damn BBS<< My Damn BBS was started because I felt that all the other sysops in the area are [CENSORED]. So I leeched a copy of WWIV from somebody and started by own BBS. My motto here is: If you don't like it, too damn bad. Since this BBS is run on by damn computer, I'm gonna run this place the way I want to and nobody better tell me any different. Here's my damn rules for My Damn BBS: Don't bother trying to chat with me about any of your problems as I got enough of my own to deal with and shouldn't have to deal with yours too. If you leave me mail, I might get around to answering it someday if I find it interesting and relevant, but don't hold your breath. If you don't like it, too damn bad. If you have problems with using the BBS software, don't bug me for help. I had to learn once too, you know, and nobody showed me how to do it. If you can't figure it out for yourself, that's your problem. If you don't like it, too damn bad. If you want to swear here, that's fine with me. I'm sure it's nothing I haven't heard or said already anyway. Cuss all you want. If you've got virgin ears and don't like it, too damn bad. Don't bother asking me for files that I have backed-up offline in the transfer section. I've got "Castle Commando II," "Rocket Jockey IV," and "The Further Adventures of Happy Henry Hedonist in the Land of the Sexually Explicit Women Who'll Never Sleep With Him" taking up 85 megs on my BBS HD, so I don't have the room for them. And I'm not going to clear-up any HD space just for YOU. This is >>My<< Damn BBS, and if you don't like it, too damn bad. Don't pester me for more time to download files. If you've got a 14.4 modem, you should be able to get whatever you want in the 20 minutes I give you online. If the file is too big and you don't like it, too damn bad. If you call at any speed less than 14.4 and you want more D/L time, too damn bad, get a 14.4 modem and I'll start to think about it. Maybe. Don't post anything contradictory to whatever I post. I'll either delete it or flame you, probably both. If you get me riled-up enough, I'll delete your account and throw your name into my trashcan.txt file. Remember, since I've got the #1 account here, whatever I say is law and whatever I want to do, I'll do. If you don't like it, too damn bad. These are the rules for MY Damn BBS. If you don't like them, too damn bad, press ALT-H to hang up now since you obviously disagree with me and users here aren't allowed to disagree with me. Continue to logon? Y/N Y [At this point, I was fully convinced I had encountered a sysop with a particularly advanced case of HSS, one which looked terminal for this sufferer. Sadly, my initial diagnosis for this patient is that he suffers from a not-so-rare form of HSS in the manifestation of a "Ptolemy complex" in which, as the name suggests, he sincerely believes that the universe (and his BBS in particular) does indeed revolve around him, and not vice-versa. On the average, about 70-75% of HSS sufferers also are afflicted with a Ptolemy complex. Medical science is currently at a loss to explain the cause for such conditions and attempts at treatment are usually unsuccessful.] [I decided that, in the interest of getting better insight into this ailment, I needed to logon to this system to further see just how far the HSS had manifested itself. I also decided that, given the nature of this particular case, it would be best for me to logon under an assumed name with bogus user info. While considered unethical from a journalistic and a BBSing point of view, I felt safer personally, since I don't want this loop to ever know who I really am. I feel that, to paraphrase his own inspired words, if he don't like that, too damn bad. Following my logon info, I sent the obligatory new user feedback to The All-Powerful 1 to reflect my bogus statistics and stated that I'm just a general user looking to check out his BBS. Upon completion of that, I glean my next view of the effects of HSS on the sysop and his particular BBS as the logon continues.] Good Evening, Mr. Blahblahblah. You are the 3rd caller for today. Last Callers: ======================================================================= Call # User Name Time Baud # ======================================================================= 278 Blow Hard #3 2:53 am 2400 1 279 The All-Powerful's Babe #2 3:21 pm KB 1 280 Redneck #4 4:14 pm 9600 1 281 Blow Hard #3 6:00 am 2400 1 ======================================================================= [Things don't look too good so far. Considering that his BBS has been up (supposedly) for 9 months, 281 calls is pretty sparse business. Also, since I called at around 10 pm and I'm only the third caller for the day, it looks like there's not too much activity in these parts. I can't imagine why. I also don't see a user number higher than 4. Strange. Let us continue on:] Auto Message by: The All-Powerful 1 #1 Welcome to My Damn BBS Anyone who changes this automessage dies. If you don' like it, too damn bad. User Name Mr. Blahblahblah #9 Member since 10/26/93 Member status Inconsequential Unvalidated New Peon Time allowed on 10 minutes Mail waiting 0 Times on today 1 Sysop is NOT going to answer you even if he's here System is WWIV v4.22 (Reg #[DELETED]) [User #9, eh? After 9 months of operation? Either there have been alot of deletions, or people have just stayed away in droves. I think it's probably a combination of both. I also like the automessage. It shows just how possessive that this person has become. This is common in advanced cases. Also note the member status and sysop availability lines, as well as time allowed online. At least you know where you stand with this guy. Let's move on further, shall we. Now we've made it to the main message prompt, let's take a look around and see what's online for subs before time expires:] Time Remaining = 9 minutes, 7 seconds [1] [The All-Powerful 1's Decrees]:* Available message bases: Sub Network/ New # Scan? Local Sub Name Msgs ====================================================================== 1 Yes Local The All-Powerful 1's Decrees 1 2 Yes Local The All-Powerful 1 on Everything 50 3 Yes Local The All-Powerful 1 on Politics 50 4 Yes Local The All-Powerful 1 on Sports 50 5 Yes Local The All-Powerful 1 on News 50 6 Yes Local The All-Powerful 1 on Television 50 7 Yes Local The All-Powerful 1 on Movies 50 8 Yes Local The All-Powerful 1 on Women 50 9 Yes Local The All-Powerful 1 on Programming 50 10 Yes Local The All-Powerful 1 on Games 50 11 Yes Local The All-Powerful 1 on Music 50 ====================================================================== Time Remaining = 8 minutes, 59 seconds [1] [The All-Powerful 1's Decrees]: [I'm sensing a distinct pattern here. Obviously, this particular patient is definitely in the most advanced latter stages of the disease. The aforementioned Ptolemy complex is well represented by this sampling. Mercifully, I believe that this patient will succumb to the effects of HSS very soon and his suffering (as well as everyone else's) will then end. While there still appears to be some life left in the body, let us further sample so of this person's delusions of Godhood by viewing some messages. We'll start with The All-Powerful 1's Decrees. Since there's only one message on there, this shouldn't take long:] Time Remaining = 8 minutes, 59 seconds [1] [The All-Powerful 1's Decrees]: Q < Q-scan The All-Powerful 1's Decrees 1 - 1 msgs > Message 1 of 1 Title/Subject: If you don't like it, too damn bad. [Random Title] Name: the All-Powerful 1 #1 Date: Sun Feb 24 11:41:17 1993 Well, I finally got this piece of [CENSORED] up and running. I hope you're all happy now. I know I am. I've finally got my own little stomping ground and I plan on stomping anyone who gets in my way here. If you don't like it, tough [CENSORED]. BTW = The board will be down for the entire month of April because that's when Star Shooter XXIII comes out and I won't have enough room on my HD for both the game and the BBS. Whenever I get thru with the game, I'll put the board back up. Maybe. If you're lucky. If you don't like it, too damn bad. #1 < The All-Powerful 1's Decrees 1 - 1 Q-scan Done > Time Remaining = 8 minutes, 53 seconds [1] [The All-Powerful 1's Decrees]: [Again, the Ptolemy complex shows here. Deciding to take down a system that has only recently gone online for the purpose of playing a newly-released game shows where this particular sysop's priorities lie.] [Just as I was going to begin to delve into the message bases to see further preachings of higher thinking from The All-Powerful 1, the following occurred:] Time Remaining = 8 minutes, 53 seconds [1] [The All-Powerful 1's Decrees]:ɵ^/!PIyյ!(>="LUňc⪂lk8ÎV X-u)ǖܙH̀jnu(0~+#X/Sr,;#=Kr~4),l>C59 NO CARRIER [Man! That's a pretty generous helping of line noise there! My computer was beeping out the pc speaker big-time on that dosage of dumping. It's quite possible that this sufferer has installed a combination line noise generating nuke mod built into his system. As if it's not simple enough to just hit F5 to dump a user off the system, this guy needs special line noise key to give the act a true meaning of personal satisfaction. Looks like this sufferer has got something better to do with his system than to allow me (or others, for that matter) to use it. Upon redialing, the line was busy. Why am I not surprised?] [After three hours of solid war-dialing, I finally managed to get back on the system. After going through my logon, I see the following:] Last Callers: ======================================================================= Call # User Name Time Baud # ======================================================================= 279 The All-Powerful's Babe #2 3:21 pm KB 1 280 Redneck #4 4:14 pm 9600 1 281 Blow Hard #3 6:00 am 2400 1 282 Mr. Blahblahblah #9 10:04 pm 14400 1 ======================================================================= [Uh-huh. Just as I suspected. Notice who the last caller was. Me. Obviously, our HSS sufferer is lurking near the keyboard somewhere. Let's see if I can call him out.] Time Remaining = 9 minutes, 45 seconds [1] [The All-Powerful 1's Decrees]: C The All-Powerful 1 can't be bothered by your trivial problems. Leave feedback instead. Leave feedback to The All-Powerful 1 #1 ? (Y/N) Y [Since our sufferer seems to be above speaking with me, I decided that I will leave him feedback instead. I chose to make a fairly neutral statement regarding what had happened to me earlier. This should manage to get some response from our esteemed SysGod.] Enter Title or Press [Return] for a Random Title. (---=----=----=----=----=----=----=----=----=----=----=----) Title: Hello... Enter message now, max lines are 20 Type /COLORS to change your default colors. Type /MACROS to change your default macros. Type /HELP for help. Type /Q to quote from message. /S Save /ABT Abort /LI List /CLR Clear CTRL-P # Change color [...|....1....|....2....|....3....|....4....|....5....|....6....|....7....|....] Hi there. Sorry to trouble you, but I am a new user here and recently experienced a problem when I was on your system earlier tonight. I was just looking around when I suddenly lost carrier. I was wondering if this was due to a problem on your end, or if it was a problem with my terminal program. I don't have call-waiting or an extension phone on this line that I call out with, so I'm kind of puzzled by the dropped carrier problem. Can you enlighten me? Thank for any help. Mr. Blahblahblah /es Saving... message sent to The All-Powerful 1 #1. Time Remaining = 9 minutes, 45 seconds [1] [The All-Powerful 1's Decrees]: [What happened next was totally unexpected:] The All-Powerful 1 is Here: Hey! What's your problem, buddy? [Well, I expected a response to my letter, but not THIS fast! Let's see what he has to say:] Hello. I'm not sure what the problem is, if it's with my software or if it's on your end. I was on earlier this evening and I know, dammit. don't you think I saw the mail you sent me? So, what's your point? Well, I was wondering if you were around when I lost carrier here earlier and saw what happened. Did your board hang? I saw by the daily log that nobody else been on the system since I lost carrier. [I deliberately gave him an "out" in my question by suggesting that the board might have locked-up. This was my way to finally determine once and for all if he was indeed suffering from HSS. If he was, he wouldn't take the escape that I gave him, instead opting to blather something to the effect that it was "his" system and if I didn't like it, then that was too damn bad.] Hey! I had to do something on the computer. You got a problem with that? What are you, some kind of [CENSORED] troublemaker? No, I'm not trying to cause a problem, I just asked a question. If you needed to use the computer, you could have just popped in on me in chat mode like you are now and ask me to logoff. I would've done it. There was no need to hang up on me. [CENSORED] off, buddy. You're outta here! 3ϝ"3f&iE[Ety*IUP(hSpZV8rń( ?ůE>*H"Ɍ+0'w3`wg#NWc&ll5kap(oLדxe\R IdDjTR[`}kBnʵwxg3߶#cXB*eʢރSO۰f$aB crD]i[6SQl(՟>8E!ߠ#@bV@i,Bѷ[g3o)EUKeGHoqZf ;IƚW۹mi.fO<͆uFl;W/í灣ɜ풽N0_-q?G|ڨuV ޾x?Wsiys":1&`Ǯe?30#,bqZ37hkW,oQ#pp :K/0qR7$2A5%s;QJBy1Qk:!`˯Ɓ#Կ#ʕrʹ3[uU%5RmZ3}: JwvrAS=tWWgsךj*Nbgi~8LcugܑsA/yK*, U>ՒcIxjkdB`)c6stPE3BlӋ:2VK4IġMĪM֋xx Ipw1dx6p|}QpN@s"32;M(랴@KfƸ-ٖb~a2_V6#@NU"pX X-u)ǖܙH̀jnu(0~+#X/Sr,;#=Kr~4),l>C59 NO CARRIER [Well, I think that settles it. I decided to try one more time calling back to see just how badly my little comment had affected this guy.] Connected at 14400 Welcome to: ___ ___ /\ /\ | \ | \ / \/ \ | |\ \ | o / / /\ /\ \ | |/ / | o \ /_/ \/ \_\ Y |_ _/ AMN |___/ BS Sysop: The All-Powerful 1 24 Hours (but not in a row) 2400-14.4 (if I like you) - 1200 (if I don't) Enter your number or name or `NEW' NM: Mr. Blahblahblah Sorry, I don't know that user Enter your number or name or `NEW' NM: Mr. Blahblahblah Sorry, I don't know that user Enter your number or name or `NEW' NM: 9 Sorry, I don't know that user NO CARRIER I think it's safe to say that My Damn BBS isn't going to be long for this world, so long as The All-Powerful 1 is the sysop. What you've seen here is a rare glimpse of a sysop who suffers from an extreme case of SysGod Complex. As I stated earlier, cases such as the one documented above are relatively few in numbers but I think you can see that while they are few, they also have the potential to be very acute. Medical science has thus far been unable to find a cause for this ailment, let alone a cure. Unless the disease is caught in its earliest stages, it is ultimately fatal to a sysop and his/her BBS. Like rubber-neckers gawking at a car wreck while passing it on the highway, there's little anyone can do or say except "What a shame. I wonder what happened." The best way to protect yourself from the ravages of the SysGod Complex is to know the tell-tale warning signs: -=- Repeatedly hanging-up on your users -=- Repeatedly taking the board down for your own uses -=- Chronically ignoring e-mail from your users -=- Deleting users who question or disagree with you -=- Continually telling your users that the board is "mine" If you notice any of these potential warning signs in yourself, you may be at risk of having one of the two complexes. The best way to tell is to put up a public post on the board asking the opinion of your users on how you're running the system. If you see a noticeable number of negative posts, you may have a problem. If you then begin to delete these posts and the users who made them, then you DEFINITELY are suffering from either DSS or HSS. Once you are diagnosed with having a SysGod complex, the only treatment can come from within. YOU must be the one who treats the disease by changing your habits and starting to act more responsibly toward your users, your BBS, and yourself. Hopefully, this article will help to illuminate others to the effects of SysGod Syndrome and, perhaps, may save others from succumbing to this most dreaded of afflictions. For only through effective education and communication can this monstrous malady ever be eradicated. This last is the conclusion of a four part technical series, not a reprint: Ŀ WWIVnet Technical Docs by Midnight Tree Bandit 1@8411 [IceNEWS Serialization Note - This is part four of four. Internal page numbers have been retained for ease of reference. Page breaks, however, have been removed.] COMPRESSION SOURCE CODE The following code is provided to help simplify the process of writing code for complete compatibility with the WWIVnet software. It is the same as what is used by NETWORK1.EXE in NET34. It covers both the compression and decompression of netmail packets. Comments have been added by WH in order to clarify what's happening. Some lines are split due to space. /* Description of global variables used here: * (long) nbw -- number of bytes written * (long) nbr -- number of bytes read * (long) nbl -- number of bytes left (to read/write) * (int) fi -- input file handle (set to "S[sysnum].NET") * (int) fo -- output file handle (set to "Z[sysnum].NET" for compression, "TEMP.NET" for decompression) * (char) net_data -- path to system's network data directory * The rest should be obvious from their use. */ unsigned far pascal net_read(char far *buff, unsigned short int far *size) /* used { unsigned br=0,sz; unsigned pct,i; sz=*size; 39 if ((long)sz>nbl) sz=(unsigned)nbl; br=read(fi,buff,sz); if (br<0) br=0; nbr += br; nbl -= br; nc_sf += br; return(br); } void far pascal net_write(char far *buff, unsigned short int far *size) { write(fo,buff,*size); nbw += *size; } void net_compress(unsigned int sn) { char s[81], s1[81], fl; long l,l1; char *buf; unsigned short int type, dsize, xx; /* set up the input (Sxxxx.NET) and output (Zxxxx.NET) filenames */ sprintf(s,"%sS%u.net",net_data, sn); sprintf(s1,"%sZ%u.net",net_data, sn); /* open the input file, if possible */ fi=open(s,O_RDWR | O_BINARY); if (fi<0) { return; } buf=malloc(35256); if (!buf) { printf("\r Not enough mem to compress \r"); return; } /* open the output file, if there is one */ fo=open(s1,O_RDWR | O_BINARY | O_CREAT, S_IREAD | S_IWRITE); if (fo<0) { 40 close(fi); free(buf); return; } /* write file header if file is new */ if (filelength(fo)==0) { /* compression identifier */ l=0xfffefffe; write(fo,&l,4); /* extra bytes in header */ xx=4; write(fo,&xx,2); /* uncompressed bytes (initalized to 0) */ l=0L; write(fo,&l,4); } /* prepare for new segment */ nbw=nbr=0; l=filelength(fo); lseek(fo,l,SEEK_SET); l1=filelength(fi); nbl=l1; fl=1; /* compresssion flag (compressed) */ /* write compression flag and segment length to segment header */ write(fo,&fl,1); write(fo,&nbw,4); type=CMP_ASCII; if (l1<1024) dsize=1024; else if (l1<2048) dsize=2048; else dsize=4096; /* compress the file */ implode(net_read, net_write, buf, &type, &dsize); if (nbw>=nbr) { /* if it didn't compress */ lseek(fo,l,SEEK_SET); lseek(fi,0L,SEEK_SET); fl=0; /* change segment header (flag off, seg length is input length */ write(fo,&fl,1); write(fo,&nbr,4); /* then write input file to output file (overwrite compressed) */ xx=read(fi,buf,32768); while (xx>0) { write(fo,buf,xx); xx=read(fi,buf,32768); } chsize(fo,l+5+nbr); } else { /* if compressed, write compressed seg length to segment header */ lseek(fo,l+1,SEEK_SET); write(fo,&nbw,4); } 41 /* update output file header (change uncompresssed bytes) */ lseek(fo,6,SEEK_SET); read(fo,&l,4); l += nbr; lseek(fo,6,SEEK_SET); write(fo,&l,4); bytes_comp=filelength(fo); bytes_uncomp=l; /* compute percentage of compression */ if (bytes_comp0) { /* get segment header */ read(fi,&fl,1); /* compression flag */ read(fi,&l1,4); /* segment length (in bytes) */ nbr=nbw=0; nbl=l1; if (fl==0) { /* if segment not compressed, write directly to temporary * netmail file */ if (nbl>16384) xx=read(fi,buf,16384); else xx=read(fi,buf,(unsigned)nbl); while (nbl>0) { write(fo,buf,xx); nbl -= (long)xx; if (nbl>16384) xx=read(fi,buf,16384); else xx=read(fi,buf,(unsigned)nbl); } } else { /* if segment compressed, decompress to temp netmail file */ explode(net_read, net_write, buf); } l -= (l1+5); 43 } /* clean up */ close(fi); close(fo); unlink(fn); rename(s,fn); /* rename temp filename to P*.NET */ free(buf); } Getting IceNEWS: There are several ways to get your copy of IceNEWS each month. If you have access to IceNET, issues will be sent automatically. New issues will be posted to alt.bbs and comp.bbs.misc on the Internet, and can be fetched via the World Wide Web from http://www.tiac.net/users/wcrawfor/icenews/ There is also an IceNEWS Internet Mailing List: * To subscribe: Send an empty email message (signatures are ok) to with a subject of "SUB ICENEWS ()". Capitalization is important, or your message may be returned. Example: Subject: SUB ICENEWS nriley@sample.org (Nicholas Riley) The full name may be ommitted. You must provide the email address. Thanks to Nicholas Riley for providing this service. To contact the IceNEWS Editor-In-Chief, email any of these addresses: - 1@6754 IceNET - wcrawfor@express.tiac.net Internet - Subtype ICENEWS, host @1 IceNET Ŀ IceNEWS is an independent journal published monthly as a service to IceNET, its Sysops and users. The opinions & reviews expressed herein are the expressed views of the respective writers. All Rights Reserved. Many product names used herein are the property of their respective manufacturers/authors. Copyright (C) 1995 Jim Nunn.