ÚÄÄÄÄÄÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄ· ÚÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄ· ÚÄÄ·ÚÄÄÄÄÄÄÄ· ³ ÄÄÄÄÄ º³ ÄÄÄÄÄ º³ ÄÄÄÄÄ º³ º ³ º³ ÄÄÄÄÄ º³ º ³ º³ ÄÄÄÄÄ º Ô͸ Éͼ³ ÉÍÍÍͼ³ ÉÍÍÍͼ³ º\³ º³ ÉÍÍÍͼ³ º ³ º³ ÉÍÍͼ ³þþþº ³þþº ³þþÓÄ· ³þþºþ³þþº³þþÓÄ· ³þþº ÚÄÄ· ³þþº³þþþÓÄÄÄ· ³±±±º ³±±º ³±±Éͼ ³±±º\³±±º³±±Éͼ ³±±º ³±±º ³±±ºÔÍ͸±±±±º ÚÄÙ ÓÄ·³ ÓÄÄÄÄ·³ ÓÄÄÄÄ·³ º ³ º³ ÓÄÄÄÄ·³ ÓÄÙ ÓÄÙ ºÚÄÄÙ º ³ÛÛÛÛÛÛÛº³ÛÛÛÛÛÛÛº³ÛÛÛÛÛÛÛº³ÛÛº ³ÛÛº³ÛÛÛÛÛÛÛº³ÛÛÛÛÚÄÄ·ÛÛÛÛº³ÛÛÛÛÛÛÛº ÔÍÍÍÍÍÍͼÔÍÍÍÍÍÍͼÔÍÍÍÍÍÍͼÔÍͼ ÔÍͼÔÍÍÍÍÍÍͼÔÍÍÍ; ÈÍÍÍͼÔÍÍÍÍÍÍͼ The Journal of IceNET April 1994 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The Editor's Desk ³ ³ The State of IceNET Jim (1@1) ³ ³ Managing Editor's Comments Ima Moron (1@9661) ³ ³ Letters To The Editors Louie (6@1) ³ ³ ³ ³ WWIV Specific ³ ³ A Message From Random Louie (6@1) ³ ³ WWIV Operated Under OS/2 Martin (1@6257) ³ ³ ³ ³ Hardware ³ ³ Building A PC/AT Compatible - Part 3 Will (1@6754) ³ ³ ³ ³ Software/Programming ³ ³ Learning C - Part 3 Daarkhan (1@7676) ³ ³ Microsoft Windows for Workgroups 3.11 Will (1@6754) ³ ³ Turbo Pascal - An Introduction Odin (1@7664) ³ ³ ³ ³ Lite Bytes ³ ³ April Fools Day Pranks Deacon Blues (2@7653) ³ ³ The Adventures of ModemMan Jot$ (1@7850) Deacon Blues (2@7653) ³ ³ Silly Strings Ima Moron (1@9661) ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ IceNEWS Staff For April 1994 ³ ³ ³ ³ IceNEWS Editor-In-Chief - Jim 1@1 ³ ³ IceNEWS Managing Editor - Ima Moron 1@9661 ³ ³ ³ ³ IceNEWS Contributing Editors ³ ³ Hardware - Will 1@6754 WWIV-Specific - Jack Ryan 1@4707 ³ ³ Lite Bytes - Ima Moron 1@9661, Deacon Blues 2@7653 ³ ³ Software/Programming - Pale Rider 1@23 ³ ³ ³ ³ Editor-At-Large - Louie 6@1 ³ ³ ³ ³ IceNEWS Production - Spelunker 1@7653 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 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. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ T H E E D I T O R ' S D E S K ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The State of IceNET ³ Jim (1@1) ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ IceNET has recently picked up in growth rate, as we approach 850 nodes. I'm still hoping to see 1000 systems one day in IceNET :). Also, congrats go out to Dr. Diversity and all the Group 1 sysops for having the highest percentage of WWIV registered systems (over %88) for a group in IceNET. I really appreciate all the sysops who have registered to help support the software we all use, and your help to maintain our investment in our boards by encouraging others to register. The goal for IceNET is to achieve %90 registration. I've been testing WWIV 4.24 and NET34 now for several weeks, and I can say you have some marvelous new features in the works. All the memory management woes of the past are being lessened by the installation in stock WWIV of the spawn options, which will give you a lot more memory and avoid the likelihood of those nasty 'OUT OF MEMORY' type lockups. I don't know when the release date is, but the beta testing seems to be moving along well. Don't forget WWIVcon coming up in July. Meet your modem friends face-to-face and have a blast in New Orleans. It's a once-in-a-lifetime opportunity to meet and hear speak the author of WWIV, Wayne Bell; Filo, who we all know, and lot's of other WWIV celebrities (like YOURSELF if you come :))...and I'll be there hoping to see all of you! Email me if you need any details or help in making arrangements. BE THERE!" Have a happy April Fool's day, and enjoy this issue, yet another in the recent string of dynamic IceNEWS issues :) ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Managing Editor's Comments ³ By Ima Moron 1@9661 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Hello IceNET, as you may have already heard I'm the Managing Editor for the current issue of the IceNEWS Journal. Within the April issue, the staff has prepared articles that you, the sysops, have requested through Deacon Blues' questionnaire. Special thanks to Deacon Blues, who has been an inspiration in organizing the staff of the journal, and a big thanks to the whole staff including Jim 1@1 for jumping in and contributing to this issue. A special thanks goes to Daarkhan and Martin for contributing two well paced articles for your reading pleasure. In keeping with American tradition, we here at the IceNEWS Journal have added a "spoof" article or "April Fool's" joke, somewhere within the issue. I won't disclose which article the spoof is, but if you read the journal thoroughly you'll spot the farce. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Letters To The Editors ³ By Louie 6@1 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄ Although there are no actual letters from readers to print here for this issue, we are counting on you to change that for us. Please take the time to write us regarding your feelings on IceNEWS and its contents, good or bad. We want to hear what you have to say. Remember, IceNEWS is meant for everyone in IceNET and we need your input in order to maintain a successful and respected publication. Please address any remarks or questions to: IceNEWS Letters To The Editors c/o Louie, #6 @1 IceNEWS Editor-At-Large ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ W W I V S P E C I F I C ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ A Message From Random 1@3050 IceNET, 1@1 WWIVnet³ By Louie, 6@1 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Well, something short, maybe... Random #1 @3050 Thu Mar 03 19:15:43 1994 RE: What for..? As you all probably know by now, I've been working for the last few months on a method to automatically link WWIVNet-style networks with the IRS. This will have network1.exe scan the sysop logs (yymmdd.log) looking for download indications, and report each download as income to the downloader. It will implement this via a compiled-in table mapping filenames to stated value of the program. (Of course, there is some logic in there to ignore version numbers, so that, say, future versions of DSZ will be caught and reported without having to hard-code every possible version of DSZ.) Network3 will then collect these reports, and initiate a dialout to the IRS 1-900 number to upload the info to the IRS. I expect to have this implemented by the Net31 release, slated for sometime in July 1992. The IRS is only going to be collecting these reports until the 1993 tax year, and send out the 1099-MISC forms in early April 1994. $F4 @1 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ WWIV Operated Under OS/2 ³ By Martin 1@6257 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ----------------------- First things first ------------------------ Getting WWIV 4.23 was something that I, like everyone else it seems, had been looking forward to for a long time. I was lucky enough to have been able to get it from Amber the night it was released so I was able to take a look at it right away. I had planned to wait to install 4.23 on my BBS for at least a week so I'd have time to really look it over but when I saw what it had to offer I decided not to wait. I had been running OS/2 on my second computer for almost 4 months. When I first installed it I realized that I was faced with almost the same magnitude of confusion as I had worked through each time I had bought a new, unfamiliar, computer system. I say this only to say that when I set up WWIV 4.23 under OS/2 I was far from being an expert (and still am not) on the operating system. I was a beginner as far as the use and understanding of OS/2 was concerned, and I was also using a new version of the BBS software. I had a lot of confusion to overcome! Regardless, to the best of my memory, and for whatever help this is worth, here is the breath-taking saga of Amiga Blues' encounter with running multi-instance under OS/2. -------------------------- HPFS or FAT? --------------------------- I had set up OS/2 on my "personal" (as opposed to the BBS) computer with the HPFS and dual boot. I didn't realize at that time that a person could switch back and forth booting either OS/2 or DOS without installing the dual boot feature under the HPFS. It is possible, though, to install OS/2 on an existing partition by installing it in a subdirectory using the FAT system. You can still reboot into DOS by using the "boot /dos" command, and back to OS/2 by typing "c:\os2\boot /os2" (assuming you have used the default directories). When it came time to install OS/2 on my BBS computer I decided to use the FAT system and give it a try. I didn't want to have to repartition my hard drive to use HPFS. You will have to weigh the advantages and disadvantages of the FAT vs the HPFS and decide which way seems best for you. Once I had installed the operating system, I booted it up, made an icon (see below) for instance number one and ran it. It worked! Well, it worked to the extent that the board came up and ran. There was still a lot of work to do before I was ready to actually open the board back up to callers while running under OS/2. ----------------------- icons and .BAT files --------------------- In order to get icons for my "instances" of WWIV, I had to go into the System Setup folder and select "Migrate Applications". Your OS/2 manual will explain the process involved with doing this. After running Migrate Applications, you will need to select the "Add Programs" option and "Add" your BBS.COM to the Selected Programs list. You will do this so that you'll have an icon, but you will only do this as a first step; you won't actually run the board off it. You should make a copy of this icon for each instance you will want to run so that you have one icon for each instance. Icon settings: -------------- Once you have created your icons, go into the Settings for each one and under "Path and file name:" have them call a .BAT file for each instance rather than calling BBS.COM. Under "Path and file name:" you will want C:\WWIV\WWIV1.BAT, C:\WWIV\WWIV2.BAT, and so on rather than C:\WWIV\BBS.COM. This will allow you to set the instance correctly. See my example .BAT files (following) if you don't know what I mean by this. One of the other very important things to do is replace the standard COM drivers that come with OS/2 with Ray Gwinn's SIO drivers. I won't go into the way to do this; it's well covered in the documentation files that come with the drivers. But one thing that's not immediately clear is that you should go into the BBS's icons and make some changes under the new options the SIO drivers give you. For one thing, you'll need to disable access to every COM port but the one used by that instance. For example, let's assume you're running your setup as follows: 2 remote and one local instance (3 icons total). Instance 1 (WWIV1.BAT) uses COM2 Instance 2 (WWIV2.BAT) uses COM3 Instance 3 (WWIV3.BAT) is local. You would want to go into your BBS icons and change your DOS settings so that the icon for instance 1 (WWIV1.BAT) has access to COM2 only, the icon for instance 2 (WWIV2.BAT) has access to COM3 only, and the icon for instance 3 (WWIV3.BAT) does not access any of the COM ports. Once you've installed the SIO drivers, you'll see that the icons will allow for the new options the SIO drivers provide. Restricting each instance's access to only the COM port it needs will prevent problems such as online programs causing a System Error message telling you that your application tried to access a communications port which is in use by another application. I don't have any experience with running WWIV under OS/2's drivers and I would highly recommend getting Mr. Gwinn's drivers. I ran the OS/2 drivers for a while under Procomm Plus, and the difference between the SIO drivers and the standard OS/2 drivers was amazing. I went from approximately 600 CPS and many crashes during transfers to 1600-1700 CPS and no more crashes. Anyway, back to the issue of setting up your icons... You will also want to set the IDLE_SECONDS and IDLE_SENSITIVITY to provide the best performance on your particular system. As I've said, I'm no OS/2 expert, but I do believe that these settings will work differently from one system to another. Your settings will probably be different from mine. What I did to get them tweaked the best I could was to set the IDLE_SECONDS just high enough so I didn't get the famous "pause after message header" problem, and set the IDLE_SENSITIVITY so that the processing time would be divided up between instances as evenly as possible. What I believe causes the problem with messages pausing right after the header is displayed is OS/2 mistakenly thinking that the session is inactive and pausing it until it thinks it's active again. Apparently this is a problem with OS/2 and communication software. The software (in this case your BBS) is processing data but there is no mouse movement or keyboard action while you are reading the message. OS/2 doesn't think anything is happening and idles the session until you do something. On my system I experienced the problem with the session pausing after the message header until I set the IDLE_SECONDS up to 4. Setting the IDLE_SECONDS to 4 took care of the problem. In order to get IDLE_SENSITIVITY set so that it seems to work the best, I tried setting it as low as possible, and then ran the session. I checked the setting by doing a new message scan and watching to see if the text was "jerky". If it was jerky at the IDLE_SENSITIVITY I had, I exited the BBS, quit the session, opened the icon's DOS settings and bumped the setting up by 10 at a time until the text displayed smoothly. I then adjusted it by an increment of 5. What I mean is this: With IDLE_SENSITIVITY set at 30 if the text scrolled jerkily, I went out and set the sensitivity to 40. If it was still jerky I set it to 50. If it was then okay, I set it to 45. If it was okay, I left it alone, and if it was jerky again I set it back to 50. I have left INT_DURING_IO off. I have heard that having it on can mess up network packet handling, and I don't want to risk that. Another thing I did was to aim the DOS_DEVICE to C:\OS2\MDOS\ANSI.SYS so that my system would be able to handle ANSI displays. One last thing that I have just tried is setting the HW_TIMER to on. This is due to a recommendation in "Your OS/2 Consultant" written by Herb Tyson and published by Sams Publishing. Having the HW_TIMER on allows WWIV to have direct access to the timer ports and stops OS/2 from emulating a timer. Apparently, it's been documented that some fax programs and high speed data transfer utilities don't run well unless HW_TIMER is set to on. .BAT files: ----------- The .BAT files are fairly simple. Here are mine: (WWIV1.BAT) set WWIV_INSTANCE=1 c: cd \WWIV bbs.com /i1 (WWIV2.BAT) set WWIV_INSTANCE=2 c: cd \WWIV bbs.com /i2 (WWIV3.BAT) set WWIV_INSTANCE=3 c: cd \WWIV bbs.com /m /i3 You can see that I've got instance 3 set up for local only use and have used the /m parameter to disable the BBS from trying to find a modem. ------------------------- CD-ROM drives -------------------------- I had a little difficulty setting up my CD-ROM drives to work under OS/2 in the same way they had been working under DOS. The problem was not the fault of OS/2; it runs CD-ROM drives just as well as it runs anything else. It was just a matter of finding drivers that worked with my drives (I have Mitsumis). If you have a Mitsumi CD-ROM drive and haven't been able to find a driver for it, you can call the OS/2 BBS at 919-517-0001 and get the driver there. The file name is MITFIX.ZIP and the driver name is MITFIX001.ADD. This driver supports the new FX series of Mitsumi drives as well as the CRMC-FX001, the CRMC-FX001D and the older CRMC-LU005 drives. Once I found and installed the drivers (see your OS/2 manual for more information on this; it's covered very well), I set up a small RAM drive so that the CD-ROM drive letters would be the same as they had been under DOS. I did this because I had used a RAM drive under DOS. This may or may not be important to you; I originally did this so I could run the board under DOS or OS/2 without having to change anything. I've never gone back to DOS though. ---------------------Additional Considerations--------------------- OS/2 aware: ----------- The source code I got when I first downloaded WWIV 4.23 from Amber somehow did not have the code enabled to allow WWIV to work as well under OS/2 as possible. If you are registered and have access to your source code, check UTILITY.C and be sure the following code is in void giveup_timeslice(void): case 4 :/* outs("OS/2"); */ win_pause(); /* add for OS/2 timeslices*/ /* delay(17); */ break; Many thinks to the person responsible for this "fix". My board ran a lot better after I put this code in, and I checked with Wayne, who confirmed that it should be in there. People had been complaining about the system being very slow and jerky at times until I put this code in. I had even upgraded from a 386DX-40 to a 486DX2-50 in order to help the BBS run more smoothly, but things didn't really improve until I added this code. The only time the board seems to slow noticeably now is when someone is doing a file transfer. Init: ----- I've corresponded with Filo regarding the way INIT handles things with more than one instance and he's indicated that there may be some changes under 4.24 to make the data it writes more "instance specific" (my word, for lack of being able to think up anything better). As things are now, the only thing I feel I can count on being kept separate from instance to instance is the modem and COM port configuration information. I do know from first-hand experience that your net low and high times are not kept separate; if you change the net times under one instance it will be changed for all. Memory: ------- OS/2 is VERY memory hungry and you will not be satisfied with its speed or performance unless your system is configured with enough memory. I know of people who are running WWIV under OS/2 with only 4 megabytes of memory, but I understand the Presentation Manager (the graphic interface) takes up almost 4 MB, so I believe 8 MB is really the minimum for satisfactory performance and more is, of course, even better. Another consideration is that if you are used to using a RAM drive you should be aware that using one under OS/2 will take the memory right off the top and may have a significant impact on the performance of your system. Rocker (1@6450) is running his system without using the Presentation Manager and he reports that this frees up his system significantly. External Transfer Protocols: ---------------------------- JAFO (1@8857) had indicated in one of the networked subs that the newest version of DSZ is much more better behaved under a multitasking environment than its predecessors have been and I believe he is right. I just downloaded the DSZ.ZIP file from Telegodzilla with the DSZ.COM dated 02-02-94 and the GSZ.ZIP file with the GSZ.EXE file dated 02-03-94 and have installed them. The system used to bog down significantly during file transfers and I believe that it is a lot better now that I've installed these newest versions of DSZ and GSZ. If you can't find them anywhere else they are available on Telegodzilla at 503-621-3746. My Setup: --------- If you are interested, my system currently looks like this: I have a 486DX2-50 MHz computer with 8 megabytes of RAM, 550 megabytes of hard drive storage space, two Mitsumi CD-ROM drives, a US Robotics 14.4 Courier HST dual standard modem on the first line (612-591-1781) and a US Robotics 14.4 Sportster on the second line (612-591-0173). Conclusions: ------------ In case you haven't been able to tell, I am very happy with the way WWIV runs multiple instances under OS/2. While there are definitely some challenges, the end result is, in my opinion, well worth it. If you've got the resources to be able to run OS/2 and if you want to run more than one instance, I heartily recommend going with OS/2. -Martin References: ----------- DSZ and GSZ can be ordered from Omen Technology Inc. 17505-V Northwest Sauvie Island Road Portland, Oregon 97231 Modem: 503-621-3746 Fax: 503-621-3735 The Mitsumi device drivers can be downloaded from IBM's BBS, located at Research Triangle Park, NC Modem: 919-517-0001 Fax: 800-IBM-3395 SIO can be ordered from The Software Division Attn: Raymond L. Gwinn 12469 Cavalier Dr. Woodbridge, VA 22192 Voice orders: 703-494-4673 Fax: 703-494-0595 Reference Books I've found helpful: ----------------------------------- Dvorak, John C. "Dvorak's Guide to OS/2 version 2.1", Random House, Inc., New York, 1993. Moskowitz, David and Kerr, David, et al. "OS/2 2.1 Unleashed", Sams Publishing, Carmel, IN, 1993. Tyson, Herb. "Your OS/2 2.1 Consultant", Sams Publishing, Carmel, IN, 1993. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ H A R D W A R E ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Building A PC/AT Compatible - Part 3 of 3 ³ By Will 1@6754 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ After a two issue hiatus, we're back with the conclusion of "Building A PC." In the last two articles of this series, we went over choosing the right machine for your needs, looking for, finding, and getting a good deal on system components, and started the assembly of the new machine. When we left off in Volume 4 Issue 1, we had just finished putting the hard and floppy disk drives into the new machine. This issue, we'll complete steps 6 through 9, installation of the video and serial cards, cover, connecting the external devices, in this case the monitor, keyboard, and mouse, and powering up the machine. NOTE: This article series should NOT be used as your only reference should you attempt to build a Personal Computer system. It is hoped that the information presented here will be both informational and interesting, but the author or IceNEWS can not be held responsible for any effects the usage of this article may have. (In the last installment, we went through steps 1 - 5. In order to preserve continuity, I'll start here at 6.) 6. Installing Video/Serial Expansion Cards For both the serial and video cards, follow this general procedure (note that if your serial and hard disk controller are integrated onto one card, you will have already installed the serial portion). Remove one cover plate (the thin metal piece covering the rectangular openings on the back of the computer's case) for each card you need to install. Try to leave as much room between each card as you can. If you have this configuration ('|' representing an empty slot, and 'I' being a full one): ||I|| You should install the other two cards so you have this configuration: I|I|I While not directly affecting the operation of the cards, leaving vent room allows the computer to run "cooler", and extends the operating life of the expansion cards. For the daring, it might even be a good idea to shuffle already installed cards in order to gain better ventilation. Remove each card from the anti-static wrapping. Hold them only by the edges, not touching the gold or silver plated connectors at the bottom. Blow gently over the slot you plan to install the card in, and then gently seat the card into the slot. Push down evenly from the top, excessive force should not be needed. Screw the connection at the top of the card into the case. Note that you should not attempt to install a 16 bit (with two separate connectors at the bottom) card into an 8 bit (only one connector) slot. Some VGA boards (and other applications) are designed to function in an 8 bit slot with the other connector hanging over, but these are the exception far more than the rule. A good rule of thumb is, if it doesn't fit, don't do it. Some motherboards have one or two 8 bit slots to save money. Just put an 8 bit board in them. Some serial boards will have additional ports on a separate holder. They usually look like this: ----- -|\ P | |======/=] < Connectors to cards o | |=====/==] r _|/ Cables^ t -|\ s | |=====/==] > | |====/===] _|/ | | These should be installed in the same way an ordinary expansion card is, except that there is nothing to seat in the actual slot. This might be a good use for one of those 8 bit slots, and ventilation doesn't matter. The cables connected to these should be attached to your serial card per the instructions in its manual, as they all vary. 7. Cover On Double check that all connections are made, all boards screwed down, and that everything is secure. Gently blow over everything for dust motes. Slide the cover back onto the case and screw it in in at least two places. Generally you don't need to bother with screwing in all of the various screws on the case, as that does little but make the machine difficult to open up later. One or two screws, however, can prevent things from coming off accidentally or third parties from opening your machine out of curiosity. (I'm talking about ten year olds.) 8. Put the monitor on or by your computer, and the keyboard/mouse in front of it. Uncoil/tangle all the cables and pull them around to the rear of the machine. Plug them in, monitor to the video card, mouse to the proper serial card slot, keyboard to the keyboard connector (usually a round AT style, always integral to the motherboard). Plug the monitor into the wall socket. Take the power cable that came with the power supply and plug it into the back of the computer (usually a three pronged male connector, with rectangular plugs). Plug the other end into the wall. 9. Power Up Put disk one of your DOS setup into Drive A (note that you need the full, installable version - upgrades won't work). Turn on the monitor, and push the computer's power button (or flip the switch). Check that the machine isn't smoking. It should power up and do a RAM self test, and display a "Hit DEL for BIOS" message, or something similar. Do this, and from the BIOS menus set the date, time, hard and floppy disk types, etc. (Look for an article on BIOS configuration in a future IceNEWS.) Save your BIOS settings, and the computer will restart. This time, let it boot from the disk in drive A:. The DOS setup screen will come up, and guide you through formatting and partitioning your hard disk (if you choose to install OS/2 instead, put the OS/2 install disk into A:, and follow its directions). After DOS is finished with partitioning, formatting, and installing itself, you're done! That concludes the "Building a PC" series in the IceNEWS hardware department. Look for a future article on Troubleshooting a PC, which may very well pick up right where this leaves off, in case your machine is NOT running perfectly. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ S O F T W A R E / P R O G R A M M I N G ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Learning C: Part 3 of 4 ³ ³ Variables, Input, & Calculations ³ By Daarkhan 1@7676 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ PART ONE: VARIABLES AND THEIR USAGE VARIABLES If you have any experience with programming at all, you know that a VARIABLE is a memory location that holds data. For those of you without programming experience, you can think of a variable like a room in a hallway. There are many rooms along this hall, and we want to store something in one of them. We take whatever it is we want to store (a number, a name, a whole record of information) and place it into the room. All we then have to remember is the room number (i.e. WHERE) we stored it. C, unlike some other languages such as BASIC, requires that you DECLARE every variable before you use it. This is so the compiler knows how much memory to reserve for each variable (based on the TYPE of the variable - we'll learn more about this in a little while). C has five (5) basic data types. They are VOID (which we already learned about), INTEGER, CHARACTER, FLOAT, and DOUBLE. As we learned in chapter 2, a void data type has no value. We do not care about what value it holds. We will examine void data types in more detail later. The integer data type (int) holds signed integers, generally (depending on the computer) from -32,768 to +32,767. Integers require 16 bits (2 bytes) of computer memory. Again, this may be different in some computers, but it's a generally accepted standard. A character type (char) reserves 8 bits (1 byte) of memory and is used (normally) to hold a single character of data. One of the best features of C is that char types and int types are interchangeable; that is, a char can be used to hold a very small integer (from 0 to 255). We will see, later, how this can be very helpful. Floats (float) and doubles (double) are assigned numbers which have fractional parts (including a decimal point). They are called Real in some other languages, such as Modula-2. Each can hold very large values; the only difference between the two is that a double will have twice the precision (number of significant digits) as a float. We will examine these data types in detail later, as well. VARIABLE DECLARATION To declare a variable in C, use the following convention: type variable_name; where type is the C data type, and variable_name is the name that you wish to assign to the variable. For example, if you want to declare a character data type and name it "x", you would use: char x; If you want to declare a float of name my_float, you would use: float my_float; Remember that variable names can hold all the alphanumeric characters (0-9, A-Z, a-z) as well as the underscore ("_"). In general it is best to use variable names that are easy to remember, and make sense. Try to avoid huge names, but don't use too many single-character names that you may not remember. For example, if you want to keep track of a variable which stores the number of computers you have in your office, you would not want to use int number_of_computers_in_my_office; but then again, you might forget what your variable means if you just use int c; in a big program. I would suggest using the variable int num_computers; It's not too big (it won't be a pain in the butt to retype several times in your program), yet anyone looking at your code can easily tell what it represents. Remember to follow your variable declaration with a semicolon. Also, remember that C is case-sensitive; the variables int i; and int I; are totally different variables. GLOBAL AND LOCAL VARIABLE Because C is a language which supports functions (procedures, modules, whatever you want to call them; they're called functions in C), it also has to support GLOBAL and LOCAL variables. First, the definition of each, and then an explanation: a GLOBAL variable is a variable which is accessible throughout your entire program. A LOCAL variable is accessible only by the function in which it is declared. The best way to explain this is to take a look at an example. Below is a simple code segment representing my program: /* beginning of MY_PROGRAM */ int a, b, c, y; void function1 (void) { int x; } void function2 (void) { int y; } void main (void) { int z; } Now, although this program will compile (and run) it won't do anything. Remember, we're looking at it for demonstration purposes. The program starts off with a comment telling you that it's the beginning of my program (remember, what's inside of comments /* */ the compiler ignores). The integers a, b, and c are all declared OUTSIDE of any other functions. They are GLOBAL variables and can be accessed by ANY of the functions here (function1(), function2(), or main). The variable x is declared ONLY inside of function1(), so ONLY function1() can use this variable. No other function can use the variable x. Again, the variable z is declared ONLY in the function main(), so function1() and function2() cannot use it. Let's take a look at the variable y. It is declared as BOTH a global variable (outside of all the other functions) and as a local variable to function2(). When this happens, the compiler will reserve memory for two separate variables. function1() and main() will access the global variable y, whereas function2() will have it's OWN separate variable y which is TOTALLY DIFFERENT from the global variable y. In this case, function2() CANNOT access the GLOBAL variable y. Sound a little confusing? We'll discuss this more in a minute. VARIABLE ASSIGNMENTS Ok, now we know how to reserve memory space for a variable. In order to be able to use that variable, we have to be able to ASSIGN it a value. In C, use the following convention for variable assignments: variable_name = value; For example, to assign a value of 1000 to the variable count, you would use the statement count = 1000; Easy enough? There are two ways to assign a value to a char variable; you can enclose a character in single quotes, or you can refer to the character with its ASCII value. For example, to assign the variable my_char the letter 'A', you could use either of the following statements: my_char = 'A'; my_char = 65; Because 65 is the ASCII equivalent of the letter 'A'. (NOTE: most DOS references and programming books have ASCII charts in them.) To assign floating point numbers (float and double) you MUST include a decimal point. For example, my_float = 10.12 is a valid assignment. If your number does not have any fractional you must use a zero (0). Let's take a look at a short program which will declare some variables, assign values to them, and print them out. /* TEST program */ #include void main (void) { int i; char c; float f; i = 100; char = 'A'; float = 10.5; printf ("My integer is %i \n", i); printf ("My character is %c \n", c); printf ("My real number is %f \n", f); char = 67; printf ("The character is now %c \n", c); } /* end of TEST program */ this program will produce an output of: My integer is 100 My character is A My real number is 10.5 The character is now C (I didn't run it and test it, but you should get this output. If not, someone please slap me and I'll be sure to test-run it myself! The only difference I can foresee is that some compilers may produce a floating output of 10.500000 for the real number.) Go ahead and run this program. The point is to make sure that you UNDERSTAND why it works... more than just how it works. PART TWO: KEYBOARD INPUT SCANF() There are many ways to input characters from the keyboard. In this section, we're going to look at one of the methods from the standard input/output (stdio) library called scanf(). scanf() is one of the easiest functions to use, although it possesses considerable flexibility. I personally hardly ever use it myself (in favor of more advanced techniques), although it's an excellent tool for beginning C programmers. Let's jump right in with an example. To use scanf() to read an integer from the keyboard, use the following convention: scanf ("%i", &integer_name); For example, to input a value into the int variable my_int, use scanf ("%i", &my_int); (NOTE: the ampersand before "my_int" is NECESSARY for scanf() to work properly. Basically all it means (for you advanced computer people) is that we're sending the address of the variable my_int to the function scanf(). You don't have to know this now - so don't worry about it. Just remember that you NEED the &.) One thing to note is that scanf() is LINE-BUFFERED. That means that scanf() waits until the user presses the ENTER key before it reads the number entered. To read a value into a character data type, you would use the %c format code. To read a float value, you use %f. To read a double value, use %lf (long float). These format specifiers are exactly the same as the ones for printf() (see chapter 2 for a chart). SAMPLE PROGRAM Below is a sample program that asks the user for some data, and then prints out the results: /* another TEST program */ #include void main (void) { int i; char c; float f; printf ("Input an integer: "); scanf ("%i", &i); printf ("Input a character: "); scanf ("%c", &c); printf ("Input a float: "); scanf ("%f", &f); printf ("You entered: %i, %c, %f.\n", i, c, f); } /* end of TEST program */ Compile and run this program yourself. Check out the results! Now, try to compile and run this program: /* another program */ #include void main (void) { int i; scanf ("%i", i); printf ("You entered: %i", i); } It doesn't work, right? What's the reason why? Take a look at the scanf() statement. Notice anything? We forgot to add the & symbol to the beginning of the variable name. Add it in and see if the program works now. PART THREE: ARITHMETIC CALCULATIONS OPERATORS For the most part, all operations in C follow the basic rules of algebra. If you have any kind of a mathematical background, you should have no problem understanding the material here. If you have not yet taken algebra in school, you may want to get an algebra book and dig through it first, before attempting to go any further with computer programming. C has five basic arithmetic operators: + addition - subtraction * multiplication / division % modulus You are probably familiar with the first 4 operators. They will work on any of the basic data types (int, char, float, double). The last one, the modulus operator only works with the integer data type. The - has two purposes. First, it is the subtraction operator. Secondly, it is called a UNARY minus. That means that it reverses the sign of a number (makes it negative or positive). The term UNARY means that it takes ONE operator (as opposed to BINARY which takes two, TRINARY which takes three, etc.) The % (modulus) is the same as the MOD function in Modula-2 and Pascal. It returns the remainder of an integer division. For example, 10 % 3 will return the value of 1 (10 divided by 3 equals 3 with 1 remainder). There is no DIV (integer division) function in C because the / symbol can take both real and integers. The integer division, however will truncate any remainder, so 10 / 3 will return a 3. EXPRESSIONS An expression may appear on the right side of an assignment statement. For example, if we declare an integer named sum, we can assign sum a value by: int sum; sum = 5 + 10; in which case, sum now holds the value 15. As in algebra, the * and / (and the %) have a higher precedence in the ORDER OF OPERATIONS than do + and -. You can change the order of operations using parentheses. In this example, int answer1, answer2; answer1 = 10 * 3 + 5; answer2 = 10 * (3 + 5); answer1 will have a value of 35, whereas answer2 will have a value of 80. A C expression may contain both variables and constants. For example, this is perfectly valid: int a, b, answer; a = 5; b = 6; answer = 100 - a - b; a is assigned the value of 5; b is assigned 6, and answer is then assigned 89 (100 - 5 - 6 = 89). You can also use calculations within the printf() statement. For example, all of the following statements are correct: given: int a = 10; int b = 5; float f = 10.0; STATEMENT RESULTS ------------------------------------------- -------------- printf ("%i", 5); 5 printf ("%i", 1 + 2); 3 printf ("%i", a); 10 printf ("%i", a + 3); 13 printf ("%i", a + b * 3); 25 printf ("%i", (a + b) / 2); 7 printf ("%i", a % b); 0 printf ("%f", f / 2); 5.0 Feel free to experiment! Remember, now you know how to use printf(), scanf(), variables, and all of the format codes and backslash character constants! You can start to put together some simple programs of your own. ASSIGNMENT An idea that was presented to me after the last tutorial was to give out an assignment at the end of each tutorial for people to work on, and send Email to me when they finished. So here it is: Assignment 3.1: write a simple program that accepts three numbers as input from the user. Print out the sum, difference, product, quotient, and modulus of the first two numbers, AND the sum and product of all three numbers. Assign ALL of your answers to variables before printing them out. When you've finished your assignment, compile it and make sure it runs, then Email me (1@7676) a copy of your source code (program) and I'll issue you a grade. I'll be keeping a record of all grades sent to me - and will post it on occasion! NEXT Functions: usage, return values, and arguments. SOURCES Downing, Douglas. Dictionary of Computer Terms. New York: Barrons, 1989. Holzner, Steven. C Programming: The Accessible Guide to Professional Programming. New York: Brady, 1991. Schildt, Herbert. Teach Yourself C. Berkeley: Osborne McGraw-Hill, 1990. ---. Turbo C/C++: The Complete Reference. Berkeley: Osborne McGraw-Hill, 1990. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Microsoft Windows for Workgroups 3.11 - Is It For You? ³ By Will 1@6754 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Microsoft Corporation recently introduced its upgrade to both the Microsoft Windows and Windows for Workgroups operating environments. Called "Windows for Workgroups 3.11", this is Microsoft's intermediate step between Windows 3.1 and NT. Although the original Windows for Workgroups was aimed at those interested in network machines running Windows (with a minimum of fuss and mess), W4WG 3.11 is designed to appeal to non-networked users as well as those running networks. The question that many face - is it worth upgrading if you're not running a network? I installed the "Microsoft Workgroup Add-On For Windows", a software only package that runs for about $50 on the street, and apparently requires an existing installation of Windows. The installation is relatively simple - pop in disk 1 and run the setup program. If you aren't running a network, the program ignores that aspect. The installation program automatically upgrades your existing Windows files, and installs the new applets (Hearts game, "Microsoft At Home" fax, scheduler/time manager, and Microsoft Mail. The fax portions of W4WG 3.11 make use of the Microsoft Mail program, so even if you aren't on a network (and won't be needing any of the email features) this should be installed if you plan on using the native fax functions. One of the main new features of W4WG 3.11 is 32 bit file and disk access. These are enabled under the Virtual Memory section of the 386 Enhanced Mode control panel, a somewhat non-intuitive placement. The 32 bit disk access requires a compatible disk controller, something my expensive VL-BUS SCSI2 card was not. The file access is somewhat more flexible, and did speed access to my hard disk cache. W4WG also includes an internal 32 bit disk cache. However, I found that disabling SmartDrive caused the system to slow to unusability (a 16 megabyte 486dx2-66 clock doubled test bed, no less). Although with SmartDrive re-enabled performance picked up a bit, things still took about a second on average longer to complete than they had under straight Windows 3.1. However, some areas, such as file-saving under DOS, did increase slightly in speed. W4WG also includes enhanced file sharing code (the equivalent of SHARE.EXE under DOS). As many sysops have experienced, WWIV (and most notably WWIVedit) do not take kindly to having SHARE.EXE loaded while running Win3.x. However, many applications, such as Borland C++ 4.0, insist upon it. The share code in W4WG 3.11 addresses and fixes this problem, WWIV, WWIVedit, BC4, and Ami Pro all coexist peacefully. Joining the mildly addictive Solitaire and the forgettable Minesweeper game, is a networked version of Hearts. You can play with up to three other people over the network, or against the computer. Slightly more serious additions to the applet lineup are "Microsoft At Home" faxing, Schedule+, a network aware personal scheduling/reminder program, Remote Access, a remote network login system, and a single user license of Microsoft Mail. The fax program sends through MS Mail or the scheduler, hooking into the somewhat cryptic interfaces of each. Trips to the manual or at least the help files are required to get it functioning well. The scheduler is functional and slightly easier to learn than MS Mail, and is certainly functional enough that you don't need to rush out and replace it with a third party add-on. On the network side, W4WG includes several net-related applets over the original version. These, in brief, include a Chat application, network usage monitor, system performance monitor, pop up monitor, logon/logoff control, and a configuration control. The new "Clipbook Viewer" replaces the old clipboard viewer, with an advanced Multiple-Document-Interface control set and OLE support. Networking support is now full 32 bit. Windows for Workgroups 3.11 fixes many of my gripes about Windows, and seems marginally more stable than, say, fissionable uranium, a definite step up from Windows 3.1. The performance losses balance the gains, should increase if you're running a 32 bit compatible disk controller, and are not very noticeable anyway. The extra applets, while not wonderful, are adequate and useful. It doesn't include some of the general Windows fixes I'd like (volume control on the Sound control panel, for instance), but is a step in the right direction. If you can afford the $50 for the upgrade, go for it, and don't consider buying a new copy of Windows 3.1 instead of this. It's no OS/2, but it's an improvement, and leaves you in an excellent position to expand into a network sometime in the future. Addendum: After using Windows for Workgroups 3.11 for three weeks, I noticed some additional items about the environment. After about a day, the speed of the system increased to about twice what it had been under Windows 3.1. DOS applications especially benefited from the increase in speed. The system occasionally "pauses" for about two seconds (with heavy hard disk activity), but this itself is not enough to counterbalance the increase in speed. Also, system crashes began to occur more often, although still far below the level of crashes under Windows 3.1. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Turbo Pascal - An Introduction ³ By 0다 1@7664 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ I want to make one thing perfectly clear. I am not saying that Pascal is a better language than C or vice versa. I am writing this series of articles about a language I enjoy and use frequently. I also enjoy programming in C, ALGOL, APL, FORTRAN, and COBOL. But these two languages I use most often. But now to the article. Pascal is a high level language developed in the 1970's as a language which allows easy identification of the main features of a program. The constants, user defined data types. and variables and functions (procedures or voids for you C freaks) are declared first, followed by the body of the program. Different from C, Pascal uses BEGIN and END to block off areas of the program as opposed to { and }. Pascal and C are similar in that they are modular programming languages. This means that a program is broken up into modules or procedures. This allows for more flexibility for a programmer. BASIC is not a modular programming language in its standard form. Some versions of BASIC on the market today allow for a more modular look. FORTRAN is another basic modular language but all the subroutines have to be declared following the main body of the program. The standard form of a pascal program in shown below: program MyProg(input, output); <--- this is header for all programs const Here is where you can set up "variables" that never change their value in the program. type Here is the section where the programmer can create his/her own data types to be used in the program. var variables are declared here. procedures and functions are then put in begin (* Main Block *) more code end. <---- the last end must have a period Constants are used if you plan on using the same number or expression throughout the program. It is similar to the #DEFINE command in C. Change the expression in the declaration and the value changes throughout the program. You can have any type of constant declared. The TYPE declaration is for programmers to declare their own user defined data types. More will be discussed on this topic in future issues of IceNEWS, because there is so much that can be done in this declaration. The VAR declaration is the location where the global variables are declared for use within the program. These variables have to have an alpha character as their first character in their name. The valid types for the variables is endless. You have your standard data types: INTeger, REAL, CHARacter, STRING, BOOLEANs, and ARRAYs of these types. But you can also use the user define types that are declared in the TYPE declaration section of the program. There are other standard types that will also be discussed in further issues of IceNEWS. The rest of the program consists of procedures, functions, and the main body. These 3 "items" contain the actual logical sequence of statements that make the program go. A procedure is similar to the VOID in C, while a function has the same basic idea in Pascal as it does in C. A function returns a value back to the procedure or body that called the function for use later on. The only real difference in the two is the syntax used. What to expect in future issues of IceNEWS: An indepth look at user defined types and an introduction to Turbo Vision programming using the Turbo Vision feature first introduced in Turbo Pascal 6.0. Anyone interested in contributing to these articles, by all means send me the information and I will get it into the next articles and will give you the credit for that part of the article. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ L I T E B Y T E S ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ April Fools Day Pranks ³ By Deacon Blues 2@7653 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ At the end of February, when the IceNEWS staff was starting work on this April issue, I was debating about what I was going to contribute. It took me a couple of days to realize that April Fool's Day would pretty much be about when everyone will be reading this edition. Therefore, I thought that a story about April Fool's Day pranks was in order. While anyone can either pull or be the victim of a prank on any given day, there are really only two days in the year that you have to be especially wary; April Fool's Day, and, although to a somewhat lesser extent, Halloween. On either of these two days, you can usually count on at least seeing the results of a prank, regardless of whether or not you were directly involved or not. Pranks can range from anything like phony telephone calls or beeper messages to minor (or even sometimes major) incidents of sabotage (loaded cigarettes, rigged desk drawers, etc.) and, usually, conspiracy with others in order to perform the sabotage. While not necessarily a good thing, pranks usually do offer a certain amount of stress relief for the perpetrator (and offer no small amount of anguish to the recipient, particularly those without a self-depreciating sense of humor). Knowing that BBSers and computer users can get pretty stressed at times, I knew that there would be those who had, at one time, taken part in the playing of at least one computer prank at one time in their lives. I put up a post asking for reports about pranks that have been pulled before, or info about pranks yet to be pulled, or even pranks that people didn't have the guts to pull. I think that these responses were pretty good-natured, although one or two may may sound a little cruel to be played on less experienced users (and less _forgiving_ users, too). Ronda, #1 @3475, of Ronda's Riverboat BBS, tells of pulling a fast one on her co's... "This might be old... but I thought it was pretty cute when I did it... "I changed my command //dos to something only I knew and then made //dos a fast logoff . I didn't tell my co's about it... just to have a little fun. It works great as a prank for any time." -----================================----- Scooter Rider, #1 @2465, at Scooter's Palace BBS, tells of the time when... "Down in the 214 area code one year we all changed Logon and welcome screens and put up other sysops screens on our boards so that the user thought they had called the wrong board. All got a good laugh out of it and it was a fairly nice April Fools gag." -----================================----- Perseus, #289 @7654, at Paragon, also recalls something similar in my own 716 area code one year... "There is one very good one that I remember very well. Some years back, the sysops of Stairway and Midnight Caller exchanged opening screens. It really blew some minds since 50% of their users called both boards on a regular basis." -----================================----- Alkar Zephyr, #1 @4506, of Alkar's Keep, speaks of a variation of the `switched ANSI' gag... "When me and the DM (sysop of formerly @4514, Worlds of Arashacom) were roommates, we once pulled a practical joke that ended up in getting new users for both our boards... We switched the phone lines around! Whenever someone tried to call my board, they got Arashacom, and vice versa! We had a pretty good laugh... :)" -----================================----- Bogie, #1 @3081, from The Entity, tells of two acts of system sabotage on unsuspecting victims (although neither were meant to cause permanent damage or data loss)... "Neither of these have been pulled on users, but they have been done to various bosses at work: "1. Several years ago when my supervisor just got a 286 for his desk instead of the terminal he had been using, a friend of mine and I got to work early on what was to be his first full day with the computer. I copied the file Helpcry.com to his hard drive and added it to the autoexec.bat file. He came in a couple hours later and turned on the computer. We heard him yell from our office down the hall as his computer had a voice saying, "Help I am trapped in this computer get me out of here!." The best part of all of this was when MIS (repair service) came down to check out his computer. MIS was in on the joke and took the computer for a week. "2. There is a nasty joke that I help another friend of mine play on someone that wound up stealing my friend's job. The program we used was from the shareware collection called Just for Laughs. I don't remember the name of it, but it's a TSR that is time delayed. Once active, it waits for a number of times the enter key has been pressed, which is configurable. When these conditions are met, you get a nice little screen that pops up and says "Congratulations you have just won one Hard disk format!" By the time they finish reading this, they notice that the bottom of the screen is counting off heads and cylinders while the drive light is going. The program actually is doing seeks to get the drivelight active. This one is not recommended for anyone with a weak heart." [Editor's Note: Nor is it recommended for those without a _very forgiving_ sense of humor. Too cruel in my book, but still damn funny :)] -----================================----- Sky, #2 @6560, of Expect a Miracle, made all of the users a sysop for a day once... "One year, I put in Merlin's MCI mod. It allowed you to put in things like user name, phone number etc. I had a BLAST when I made the automessage anonymously say: NEW BBS in town! Call NOW! User phone number. "The all panicked, and said `Who put my voice number in there!, I can't have people calling at all hours.' I've never seen more people reading the help to find out how to change the automessage!!!!" -----================================----- Will, #1 @6754, of Data Express (our IceNEWS Contributing Hardware Editor) tells another MCI story: "I think I saw a sysop a while ago that had used MCI codes (tokens that are replaced with the current user's information) to say something like: Radical Party at [User's Real Name]'s! at [User's Home Address]! Call [User's Home Phone] to RSVP! "I knew he liked to do that kind of stuff, so [when I logged on] it didn't really faze me.. But it certainly scared a lot of people!" -----================================----- Flashback..... Seafox, #1 @2459, Renyard's Keep, tells of turning back the hands of time on April Fool's Day... "Jafo keeps ancient versions of WWIV on his system. I D/l'd WWIV 1.00 from his system. I'm gonna set it up with my user list on a TRS-80 and a 300 baud modem, and on April Fool's Day, I'm gonna switch the two systems. I'm also gonna date everything 10 years earlier, and allude to events of 1984 in the message bases. The users are gonna freak." -----================================----- Jj, #1 @7100, Another Day in Paradise, gets even with the horny male downloaders of her system... "As a female sysop, I found myself getting tired of the endless 'babe' type .gifs, so I d/led myself some beefcake. HAH! When I //uploaded one of them, my description was "640x480x256c Whoa!!! Take it off!" Caught quite a few of the 'babewatchers' on my board! Hehehehe.... But, um, they didn't think it was very funny." -----================================----- As for what we plan to do here at The Cavern, I'm not saying! In case this issue goes out before April 1st, I don't want our users to catch early wind of our intended prank. Actually, it will most likely be a combination of things, some of which _have_ been discussed here by others (that's the only hint I'll give). As long as it's not malicious and the users can take a joke, it should be a good time. However, after seeing some of these other things that people have mentioned, I think I'll just play it safe and give the modem a rest that day... :) Deacon Blues, 2@7653 IceNEWS Contributing Light Bytes Editor ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The Adventures of ModemMan! ³ By Jots 1@7850 & Deacon Blues 2@7653 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Editor's note: "The Adventures Of ModemMan" is a multi-part adventure that will be continued in a serialized format. "In the not-so-distant future, a Top-Secret government experiment goes awry. A computer-geek with the intelligence of a doorknob is accidentally transformed mentally and physically by a combination of science, medicine, technology, and dumb luck. The result: the world's first LIVING COMPUTER... ModemMan! Disguised as Joe Modem, a mild-mannered sysop of a small electronic bulletin board service in a large metropolitan city, ModemMan fights a neverending battle with the sinister forces of evil to protect the world, bringing truth, justice, and a higher transfer rate to all..." The Adventures of M o d e m M a n ! "Insufficient Memory" Chapter 3: "COPY MODEM.MAN B:\BRAIN" In our last episode, ModemMan uses his enhanced neural powers to escape the confines of a limo belonging to the unsavory character of V. T. Killer, which was being driven by his two henchmen, Blue Ray and Egg's Head. Reverting to his guise of Joe Modem, he found out from his friend and bartender Quakey that he's a fugitive; having been framed for data crimes, which is a capital offense. Joe meets with Pronto, his co-sysop and MM's helper. Pronto presents Joe with a videotape from DesqTop, the NC of the largest net in the Tri-State area. DT tells Joe that V. T. has threatened to crash all the computers in the area, but he thinks someone else is behind the scheme. Joe and Pronto return to V. T.'s hideout to try to learn more, but both are captured. After confiscating ModemMan's all-powerful Tool Kit, V. T. tells both of them that they're going for a ride to meet his boss... Joe was now somewhat sorry that he'd disabled V.T. Killer's limo earlier. It certainly was a more comfortable ride than the one that he was having now. Being blindfolded, bound, and gagged, it made it difficult for him to figure out exactly where he and Pronto were. However, it felt like he was lying on top of something that resembled a tire. Coupling that fact with the sound of a vehicle traveling down a road and the smell of exhaust gasses, Joe felt safe in surmising that they were locked in the trunk of a car. Joe noticed that the road had smoothed, making him suspect that they had left New York state and were now either in New Jersey or Connecticut. One whiff of the air made Joe suspect the latter of the two. Soon, the car slowed to a stop and became quiet. The sound of the doors opening and footsteps coming closer signaled the end of the ride. The deck lid popped open and the cool night air rushed into the compartment. As rough set of hands grabbed Joe and hauled him out of the trunk and onto his feet. The hands guided him through a doorway and into some kind of building. Joe heard the sounds of the others behind him. Suddenly, the hands clasped onto Joe's shoulder, indicating to him to stop. Joe then heard the voice of V.T. "You goons keep these punks here while I go see if the boss is in." The voice was not seemingly directed at Joe. "Get ready to meet an old 'pal' o' yours, ModemMan." A shiver went down Joe's spine when he heard that. He could not figure out who the heck this 'boss' guy was. An old pal, thought Joe... how many people do I know, anyway? Oh well, thought Joe, I guess I'll find out soon enough. Moments later, he heard the sound of approaching footsteps. The snap of a finger signaled Blue Ray and Egg's Head to bring Joe and Pronto to their final destination. They entered another room, then stopped. Another snap of the fingers started the loosening of Joe's blindfold. As soon as blindfold was being removed, Joe immediately looked around. He seemed to be in a office which was converted to a high-tech lab. The room was relatively dark, although a weird light seemed to be coming from the back of the room. Near the source of the light was a man in a white lab coat hunched over a table. He seemed to be soldering something. After two minutes, he turned off his acetylene solderer and turned on the main lighting. Still not looking up, he said, "Ah,I see you have brought me ModemMan and his faithful sidekick Pronto. Good work, Mr. Killer. You will be rewarded greatly for your services." That voice, thought Joe, I _know_ that voice... "Did you have to corrupt any BBSs?" asked the man in the lab coat, still looking down at the table. "Uh... No, boss... We caught him right away. An easy find," replied V.T. The man stood up and walked over to where Joe was standing, his face now becoming clear for the first time. "So, Joe," he said," don't you remember me? Hmm?" Now it clicked. "Dr.Boolean!" cried Joe. "I thought you were in jail!" "Well, you thought wrong. Tell me, how have you been enjoying what was supposed to be _MY_ Penultimate neural enhancement chip?" It came back to Joe as if it all happened only yesterday. Joe Modem was an assistant data entry clerk in a Top-Secret government project called "Access," which was supposed to deal with the expansion of the human limits by surgically implanting a super-computer chip - known as the "Penultimate" chip - into the brain of the chip's creator, Dr. Boolean. "Access" was to be the test-bed for future conscious-raising experiments that would eventually lead to the incorporation of the "Penultimate" technology into applications for the country's military. Boolean had planned on double-crossing the government by using the chip for unsavory personal reasons of cyber-world domination. Late one night, while at the lab, Joe was taking a break from his duties and unknowingly decided to have a seat in the chair in which the operation was to be performed. After all, the chair looked so comfortable and Joe was dead tired from inputting data for 10 hours straight. Outside, a fierce electrical storm was raging. Lightning struck the facility, causing numerous power overloads and activating the implant sequence of the robotic operation equipment. In a matter of seconds, Joe was surgically altered by the machinery. A DIN-style plug receptacle was implanted in his right ear, allowing for a connecting cable to link Joe's cerebral cortex into any standard keyboard receptacle of any computer. A modular telephone jack was inserted into Joe's right nostril, allowing for cerebral access to any telephone line. A combination serial/parallel port interface was implanted into the roof of his mouth to allow for cerebral access to various input/output devices. Finally, the Penultimate chip was inserted directly into Joe's brain to control all of the functions. Thus, ModemMan was born. Using his newfound powers - thanks to his finding the set-up manual for configuring his neurosystem - Joe powered-up the Penultimate chip and began to explore his newfound abilities. Upon searching through the computer and finding out Boolean's plans of cyber-domination, ModemMan quickly alerted the Feds to Boolean's evil plot while destroying all schematics and templates of the Penultimate chip. Joe thought that the chip was too potentially dangerous to fall into the wrong hands. Joe had thought that Boolean had been captured by the authorities. Fearing that he would become the subject of further experimentation by the government scientists, Joe quickly departed the center and decided to go `underground' to duck the Feds. He resettled to his original home, NYC, and tried to settle back down to a `normal' routine of life and computing. "Oh, by the way, Joe, " said Boolean, jolting Joe back into the present, "I just thought I should tell you who your 'sidekick' Pronto _really_ is. Frisk 'im, boys!" Blue Ray and Egg's Head pulled out a pocket metal detector stick and started to search Pronto. When they got to his jacket pocket, it started beeping loudly. Ray stuck his hand into the pocket and pulled out a small black wallet-sized case. He handed it to V.T., who then handed it to Boolean. "Ah, yes, here it is. Why don't you take a look at it, Joe?" Boolean waved the case in Joe's face for him to see. Inside was a badge, but not just any badge. It was a rectangular silver plate, with the letters M.O.D. embossed on it. Joe immediately recognized it as the symbol of a Deputy Enforcer of the Modem Operations Directorate. And that meant that Pronto was really an undercover fed! "Pronto,is this for real?" asked Joe. "Sorry to tell ya, MM," he replied, "but it is. I was assigned to keep an eye on you and the Penultimate chip so that nothing would happen to it and to make sure you didn't get out of line with using it. Sorry." "Come along, Joe," said Boolean as he led Joe over to a chair very similar to the one that he'd received his enhancement in. "I want to show you a special machine I call... The Brain." "That's original," deadpanned Joe. If he was going to fry, he might as well get a couple of zingers in while he could. "Did you think of that one all by yourself?" Boolean was too cool of a customer, though, and let the remark slide without comment. "It's my little way of saying 'Thank you' for taking my chip and a little introduction of what's to come. Have a seat, Joe," Boolean said mockingly, "make yourself comfortable." Joe obliged and sat down. He was instantly strapped in to the chair by Blue Ray. Dr. Boolean took the cord from the machine and ever-so-carefully inserted it into Joe's nostril,where his RJ-11 jack was. With a faint click, the cord was secured. "OK, Ray," called Boolean. "Turn it on!" Blue Ray immediately pulled a lever and machine started to hum. Ray then pulled another lever and a few lights lit up on the control panel. "Get ready, 'ModemMan,'"said Boolean, "this is going to get quite devastating." At first, Joe felt nothing. As the machine proceeded to warm up, Joe started feeling a little weird. It felt like a nagging headache. Then, when Blue Ray pulled the final lever, it came on like a hurricane. §crD]Èi[ƒ6ù—SQ…Ûl(ÕŸð>8E!©ß #@ãõÎbV°²@Ÿiß,š”BÑ·[Ãàg3o)ëEÃU™ÞK ¶e•ºGŽHo  ;îæÌüIÆšÞWÛ¹„ÁåmiÇ.fOûô<œá͆uFÕÎlÀ;W/„ŠÔí¦¯ç£Éœ¯ªí’½ïËéûúN0_ð-ª¤qðÇ?G|Ú¨ÜuV Boolean was jacking streams of line noise into him, and tons of it! "ARRRRGGGHHHHH!!" screamed Joe in agony. ˜Žç3Ï’"íµçþÌé3þfèÖñ&iòûßE¯‹áî[EtòÜÍÉyé˜éóœïê§ÖÂ*åIUïP‰Ù(—æ»hSpãZV8’ù‹‹ ?ÝůE>*H"éÉŒ­¸Âï½+0'•©—wƒ3¶¡`Ÿ†Éw¥©Õæg#NWóc&÷Öl¶±¾Êl5kaÓÜép™(oL»×“xe¨ŒÁã‘\ q¦Z¦fê ÇIì›d“Dj¹ŠT’Râ[ý`}ºÓÝü€kBnʵíöw­ÍxgñŸ3Žß¶…«#ÜcXçBÇ*eÊ¢ÆÞƒàS¾OÖÛ°f$úa "YYYYEEEAAAAAARRRRRGGGGGGGHHHHHHHH!!!!!" ;îæÌüIÆšÞWÛ¹„ÁåmiÇ.fOûô<œá͆uFÕÎlÀ;W/„ŠÔí¦¯ç£Éœ¯ªí’½ïËéûúN0_ð-ª¤qðÇ?G| Þ¾äx?Wsiyš…s­û÷¡":1&ª¼`Ç®e½ü¹?ž¦‹3ýÑÄ0#,b°Óq’ÎZ²ìù¼‘3Ÿí7Ìh„€kW,Ão¹“Q°²#Ãp p :K/0qþR7$2A5%s¡;QJB§yù1Q¬k:!Ú`Ê˯ÐÀÆ †ºÐÎãž#ÛÔ¿#Ê•réÍ´µ3[uU‹û½%5”RmÅøðZ3í}: "AAAAIIIIIGGGGHGHHHHHHH!!!" To Be Continued... In our next chapter: Will this be the end of our hero? Will ModemMan survive the onslaught of line noise, or will his brain simply drop carrier and hard-lock? And what of the Penultimate chip? Will the evil Dr. Boolean regain what he feels is rightfully his? Find out the answer to these questions and more next month in the mind-numbing finale of "The Adventures of ModemMan!" ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Silly Strings ³ ³ From IceNET Sysops Everywhere ³ By Ima Moron 1@9661 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This month I've chosen some silly minimum editings that you might add to your BBS; Located at the conference menu..."Minimum BPS Rate:" String #1127 > Minimum $ modem: Located at the new user information inquiry... String #1168 > Can you support ANSI? (Y/N) if yes send $$ .. Located as a sysop message, "Not enough memory" String #1272 > More instances? More $, insufficient MEM. option; String #1272 > Windows on one meg or less? HA!HA!HA!HA! Located as a sysop warning message, "Shut Down All Instances" String #1413 > Meltdown! All instance shutdown. Taglines for this issue; From Jot$ 1@7805 - The Gravity Center To B: or not to B:, that is the backup. From Papa Bear 1@5079 The information went data way. From Tweaty Bird 1@9650 WWIVNet - >UNKNOWN< bbs. Windows... From the people that brought you Edlin. From The Grey Wanderer 1@9995 Ever wonder why Oprah spelled backwards is harpO? ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ IceNEWS is an independent newsletter published monthly as a service to ³ ³ IceNET, its Sysops and users. The opinions & reviews expressed herein ³ ³ are the expressed views of the respective writers. All Rights Reserved.³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ