1674 lines
76 KiB
Plaintext
1674 lines
76 KiB
Plaintext
ÚÄÄÄÄÄÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄ· ÚÄÄ·ÚÄÄÄÄÄÄÄ·ÚÄÄ· ÚÄÄ·ÚÄÄÄÄÄÄÄ·
|
||
³ ÄÄÄÄÄ º³ ÄÄÄÄÄ º³ ÄÄÄÄÄ º³ º ³ º³ ÄÄÄÄÄ º³ º ³ º³ ÄÄÄÄÄ º
|
||
Ô͸ Éͼ³ ÉÍÍÍͼ³ ÉÍÍÍͼ³ º\³ º³ ÉÍÍÍͼ³ º ³ º³ ÉÍÍͼ
|
||
³þþþº ³þþº ³þþÓÄ· ³þþºþ³þþº³þþÓÄ· ³þþº ÚÄÄ· ³þþº³þþþÓÄÄÄ·
|
||
³±±±º ³±±º ³±±Éͼ ³±±º\³±±º³±±Éͼ ³±±º ³±±º ³±±ºÔÍ͸±±±±º
|
||
ÚÄÙ ÓÄ·³ ÓÄÄÄÄ·³ ÓÄÄÄÄ·³ º ³ º³ ÓÄÄÄÄ·³ ÓÄÙ ÓÄÙ ºÚÄÄÙ º
|
||
³ÛÛÛÛÛÛÛº³ÛÛÛÛÛÛÛº³ÛÛÛÛÛÛÛº³ÛÛº ³ÛÛº³ÛÛÛÛÛÛÛº³ÛÛÛÛÚÄÄ·ÛÛÛÛº³ÛÛÛÛÛÛÛº
|
||
ÔÍÍÍÍÍÍͼÔÍÍÍÍÍÍͼÔÍÍÍÍÍÍͼÔÍͼ ÔÍͼÔÍÍÍÍÍÍͼÔÍÍÍ; ÈÍÍÍͼÔÍÍÍÍÍÍͼ
|
||
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 <stdio.h>
|
||
|
||
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 <stdio.h>
|
||
|
||
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 <stdio.h>
|
||
|
||
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 <g>. 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<72>]Èi[ƒ6ù—SQ…Ûl(ÕŸð>8E!©ß #@ãõÎbV°²@Ÿiß,š”BÑ·[Ãàg3o)ëEÃU™ÞK ¶e•ºGŽHo
|
||
;îæÌüIÆšÞWÛ¹„ÁåmiÇ.fOûô<œá͆uFÕÎlÀ;W/„ŠÔæ¯ç<C2AF>£Éœ¯ªí’½ïËéûúN0_ð-ª¤qðÇ?G|Ú¨ÜuV
|
||
|
||
Boolean was jacking streams of line noise into him, and tons of it!
|
||
"ARRRRGGGHHHHH!!" screamed Joe in agony.
|
||
|
||
˜Žç3Ï<33>’"íµçþÌé3þfè<66>Öñ&iòûßE¯‹áî[EtòÜÍÉyé˜éóœïê§ÖÂ*åIUïP‰Ù(—æ»hSpãZV8’ù‹‹
|
||
?ÝůE>*<2A>H"éÉŒ¸Âï<C382>½+0'•©—wƒ3¶¡`Ÿ†Éw¥©Õæg#NWóc&÷<>Öl¶±¾Êl5kaÓÜép™(oL»×“xe¨ŒÁã‘\
|
||
q¦Z¦fê ÇIì›d“Dj¹ŠT’Râ[ý`}ºÓÝü€<C3BC>kBnʵíöwÍxgñŸ3Žß¶…«#ÜcXçBÇ*eÊ¢ÆÞƒàS¾OÖÛ°f$úa
|
||
|
||
"YYYYEEEAAAAAARRRRRGGGGGGGHHHHHHHH!!!!!"
|
||
|
||
;îæÌüIÆšÞWÛ¹„ÁåmiÇ.fOûô<œá͆uFÕÎlÀ;W/„ŠÔæ¯ç<C2AF>£Éœ¯ªí’½ïËéûúN0_ð-ª¤qðÇ?G|
|
||
Þ¾äx?Wsiyš…sû÷¡":1&ª¼`Ç®e½ü¹?ž¦‹3ýÑÄ0#,b°Óq’ÎZ²ìù¼‘3Ÿí7Ìh„€kW,Ão¹“Q<E2809C>°²#Ãp p
|
||
:K/0qþR7$2A5%s¡;QJB§yù1Q¬k:!Ú`Ê˯ÐÀÆ<C380><C386> †ºÐÎãž#ÛÔ¿#Ê•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.³
|
||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||
|