home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 December
/
simtel1292_SIMTEL_1292_Walnut_Creek.iso
/
msdos
/
c
/
cnews012.arc
/
CNEWS012.NWS
next >
Wrap
Text File
|
1988-10-30
|
39KB
|
1,122 lines
CNews (1.12) Oct 30,1988 CNews (1.12)
*-------------------------------------------------------------*
| C NEWS - International C Newsletter, Compiler review, and |
| tutorial. |
*-------------------------------------------------------------*
Table of Contents
The Heap: Messages from the Editor ..........................2
by Barry Lynch
A Beginner's View of C ......................................4
by Jerry Zeisler
Public Domain Software Review/Interview ...................10
by Barry Lynch and Mike Smedley(CXL)
Article Submission Standards ................................12
Address's ...................................................13
Distribution Points .........................................14
User Response Form ..........................................15
C News is an electronic journal published by the C BBS in
Burke, VA on a monthly basis. The subject for C News is the C
programming language, as well as any derivatives like C++.
All readers are encouraged to submit articles, reviews, or
comments for submission. C News is freely distributed, but
can not be sold for a profit, or cannot have a charge assessed
to cover distribution costs. To do so is in direct violation
of the License agreement. Copies of which are available from
the C BBS. This publication is Copyrighted under U.S
Copyright Law.
-1-
CNews (1.12) Oct 30,1988 CNews (1.12)
THE HEAP: Messages from the Editor
FEEDBACK: Part II In Issue 11, I went out on a limb and
risked offending some C News readers, by complaining about
the lack of feedback. Well, in the weeks that have passed
since, letters and postcards have come in with comments on C
News and the articles included within. Two of those letters
could not have come at a better time.
Every month here in Virginia, we have a "C BBS " Users
meeting on the third thursday of the month. This month the
meeting was held at Arnie Cherdak's house in Maryland.
Before, the meeting I went to my mail box and picked up two
letters, one from Phil Loaiza, and the other from Deborah
Norling.
Both writers took the time to fill out the "User
Response Form" that is included with each issue of C News.
First, Phil's Letter: what caught my eye, was the following
line from Phil's letter. "Please pass along my thanks to
Arnie Cherdak on his Database Design article... ask him if
he could flesh out B trees a bit more in a future article.."
I showed Phil's letter to Arnie, and quite frankly he was
thrilled. There is not a whole lot more that is satisfying
then receiving praise from one's peers. Arnie now feels
refreshed and may consider working on that article that Phil
asked for.
Deborah also took the time to fill out the response
form and had this to say: "...Issue 11's memory models
article was the best explanation of how C handles
segmentation that I have ever read.." Bill Mayne who
authored that article, and was at the user meeting as well
appreciated the kind words from Deborah as well. As I
mentioned previously, both letters could not have been
better timed.
THIS ISSUE'S LEAD ARTICLE
This issue features an interesting article from Jerry
Zeisler, a frequent local user of the C BBS. A few months
ago, Jerry and I were talking about a program that he had
developed for an application at his company. As Jerry, and I
were talking over lunch, I suggested that maybe he write a
small article on the creation of "Vcomm". <Jerry's
Application>.
Well right after Issue 11 was released a draft of his
thoughts to me, and we worked out the article that you will
read in this issue. This is an interesting look at how a
beginner started in C programming. It doesn't get into what
books he read, or what editor he used. But it does outline
some problems he ran into, how he used a local BBS to help
solve them, and what the final outcome was. Jerry's
application resulted in his creating an outstanding
application for his company, an article for C News on Memory
-2-
CNews (1.12) Oct 30,1988 CNews (1.12)
Models (Issue 10), and the article in this issue. If after
reading his article, you think that you might have a
similiar story to tell, drop me a line..
POSTCARDS WANTED!
I have an idea, I would like to know all of the places
on the globe that C News has made an appearance. So, if you
have time, send me a postcard from wherever you are, and I
will keep a running tally of the states and countries that
read C News. It will be interesting to see just what
corner's of the globe C News has made it to. I will do you
the favor of sending you a postcard from the "Nation's
Capitol - Washington, D.C". This sort of reminds me of the
Ham radio operators sending their call letters to each other
on post cards.
SHAREWARE/PUBLIC DOMAIN SOFTWARE AUTHORS
In this issue I review briefly, the CXL windowing
library package by Mike Smedley. If you are an author of a
package, and you would like to see it reviewed in C News,
please contact me at one of the address's listed in the back
of this issue. This forum will provide you with some free
advertising, and it gives me the opportunity to review some
of the packages that are available currently. If time is a
problem for me then I will ask user's to review the
packages. Let's here from you...
In closing, thanks for the support and let's help move
C News into it's 2nd year of existance!
Barry - Editor C News
-3-
CNews (1.12) Oct 30,1988 CNews (1.12)
A BEGINNERS VIEW OF "C" by Jerry Zeisler
ABSTRACT: Jerry's own account of his experiences in
developing a specialized application for his company's high
speed international modems. Jerry reflects on choosing a
compiler, tools to use, and some of the problems that he ran
into as a beginner.
INTRODUCTION
As is the way that most projects get started, my
company had a need. I work for a large firm that
manufactures data communication products, most notably high
speed premium modems. Not the mail order type, but the CCITT
international community type.
When the product was first introduced into this country
a while back, it was most notably lacking an easy user
interface for dialing and configuration. The modem uses soft
straps for configuration which can be accessed via an async
terminal. The dialing procedure is via V.25 bis (similar in
concept to Hays AT) or manual dialing only. This of course
has made the product somewhat difficult to market in the US
where the AT command set has become the Defacto standard.
But, it seems that since divestiture there has been no
single US company or organization with enough power to take
the lead in forming strong US standards, so the CCITT
standards are becoming more fashionable here in the US,
therefore our entry into the US market. So, how does this
rags to rags story relate to 'C'?
THE IDEA
I decided about 8 months ago to design and build a
program that will make the V.25 bis protocol totally
transparent to the user, hopefully easing our way into the
asynchronous marketplace.
Being the enterprising fellow that I am, I decided to
take the giant step into 'C' in order to program the monster
that I had in mind and to finally learn a language that I
seen for a long time but never touched. I knew that it
wasn't going to be an easy task since I am not a programmer
by trade, nor do I do it as a hobby, only as required. I
have done some programming previously. Starting about 14
years ago in the Army I maintained a computer system called
AUTODIN manufactured by Philco Ford. It used a 32 bit word
and the only language available was an assembler. I learned
a lot from that experience but didn't do much more until
about 3 years ago when I developed a large program using
Dbase III Plus.
-4-
CNews (1.12) Oct 30,1988 CNews (1.12)
DECISIONS...DECISIONS
I had originally considered using Pascal but heard that
it may not be flexible enough for the type of communications
programming that I had in mind. So 'C' it was.
I had been playing around on BBS's for awhile and just
happened to come across the 'C BBS'. It was great timing
since I was looking for help from whatever sources I could
find. While looking around the C BBS file system I came
across some tutorials and downloaded them (C Tutor, etc.).
They were exactly what I was looking for, an easy and
painless way to learn C. I also 'listened in' on the
compiler wars that were going on at the time and decided
that the best compiler for my application and experience was
Turbo C. The integrated environment that was touted by
Borland enticed me more than any other feature. I now
consider that decision to be a very good one as I have been
completely satisfied with it's operation. I'll get into the
nitty gritty about that later.
PUTTING IT TOGETHER
So what did I want my program to do? How was I going to
lay it out? What toolbox's was I going to use (if any)? The
way I decided on the look and feel was to see what was
currently available in shareware on the BBS as well as how
other communication programs operated. This way I could see
if I could handle C without risking too much money and at
the same time take some of the better ideas from other
programs.
After sifting through numerous demo programs, I decided
that the Window Boss would be the program I would use as the
user interface and LiteComm(tm) as the communications
toolbox. Once again, for what was available at the time I
think that these were good decisions. Again, more on these
later.
The way I started to build my program was to determine
how the V.25 bis protocol in my modems actually worked,
since that was the core of the program to be built. The
program required downloading or uploading 64 bytes of
configuration and dialing data to and from the modem along
with the appropriate commands. So the program actually
developed from the inside out. I built the V.25 bis engine
to communicate with the modem first, testing each command
along the way. Then I built the shell around the engine
which contained the user interface window program. Of course
as with any program, problems existed and persisted.
-5-
CNews (1.12) Oct 30,1988 CNews (1.12)
PROBLEMS AND HEADACHES
Problem number 1. What model to use? Small seemed to be
appropriate as I didn't feel (and didn't know any better)
that the program would be overly large. Also it would take
up less disk space.
Problem number 2. I needed a line editor for entering either
text information or numbers. The editor needed to be
flexible enough to include a user defined data feature since
the configuration data consists of 1's and 0's only. I found
a public domain editor that someone had developed
specifically for the Window Boss, but was not well
structured and was kind of long. It also had some bugs in it
as well as some features that I had to fix and add along the
way. It was useful for a while.
The biggest problem that I ran into while building the
program was what features was I going to put into this
thing? Unfortunately I didn't have a really well defined
plan prior to starting and it definitely hurt me as the
program developed. I guess that the real reason for this is
that I didn't know what could be done within my level of
experience as well as with the utilities that I was using.
So not only were the specifications changing along the
way, but as I learned more and more I kept adding and adding
and making the program more 'perfect'. Kind of like a catch
22. You don't know what you can do until you do it, and then
when you do it you find out that you can do more, so you do
more and learn more, and do more...
Well, I finally called some of the other marketing
people in my company and asked them what would be sufficient
for a first release. It sure was a relief when I got a
specific stopping point from those people!
CONTINUING ON
Of course as I added features to the program the effect
on functions that were already built without the new
features in mind was a real pain and very time consuming. In
some cases I had to completely rebuild or kludge the older
function. This certainly says something for developing a
master plan prior to starting a major task as this.
Some things I didn't learn until most of the program
was completed, such as function prototyping. None of the
material that I had read said anything about function
prototyping. The first place that I saw it was in one of the
toolbox's that I was using. It still isn't in the program.
-6-
CNews (1.12) Oct 30,1988 CNews (1.12)
SOME MORE HASSLES
Well soon enough the source program became very large.
It consisted of 5 separate files totaling about 100K! That's
a lot of stuff! I had to pare it down somewhat in order for
it to be more manageable. The executable was hovering around
60K. Well, there were a few changes that could be done that
would downsize the source and allow me to eliminate 2 files.
The changes were to upgrade the toolbox's and the compiler.
I started out using Turbo C 1.0, Window Boss, Litecomm,
a shareware graphics package (HSA) and the separate public
domain line editor. It was time to upgrade since TC now had
1.5 and Window Boss and Litecomm both had upgrades.
Actually, the upgrades didn't happen all at once but for the
sake of a shortened story we'll say that it happened that
way. The upgrade to Litecomm happened first. This upgrade
was not going to save me anything in size, but it fixed two
problem that needed fixing. The upgrade to the Window Boss
was next. It allowed me to eliminate the separate line
editor since the new version of the Boss included one. It
also fixed some annoying problems when exiting the program.
The last upgrade was to TC 1.5. This version allowed me to
eliminate the shareware graphics package since TC 1.5 has
graphics functions. So I went from 5 files down to three.
Much more manageable.
Of course, throughout the writing of the program were
the all night debugging sessions, calls to people on the C
BBS, calls to the C BBS sysop (Barry Lynch) at all hours,
calls to Phil and Ralph of the Window Boss and Litecomm and
of course those sleepless nights tossing and turning due to
a bug that I could of sworn was a easy fix. It was a
challenge to say the least.
HOW DO I KNOW WHEN IT'S TIME TO CHANGE MEMORY MODELS?
Well, after the last upgrade the worst (well maybe not
THE worst, but pretty much a royal pain) finally happened.
"Too much global data defined" said the compiler as I was
recompiling. It was time to change memory models. Not so
easy. What was interesting about having to change memory
models was that a number of weeks prior to this latest
disaster I had posted a message on the C BBS asking "how do
I know when it's time to change models?." What I got was a
lot of stuff that was over my head, although I certainly
want to thank all those that tried to educate me and who
took the time to answer. It actually had those people
thinking out there! It had them thinking so much that Bill
Mayne recently wrote a superb article for the C BBS on that
exact topic! The only problem was that nobody had the answer
that I was looking for. How was I supposed to know when my
data or code got too big? How was I supposed to measure it?
I got my answer when the compile crashed.
-7-
CNews (1.12) Oct 30,1988 CNews (1.12)
What did I need to get this thing cooking again?
Obviously I needed to determine what model to upgrade to. I
received suggestions from the people on the C BBS to go to
Compact or Medium. Unfortunately they also crashed with the
same error (not the people, the compiler). So to Large I
went.
That was fun (sarcastically speaking). No problem with
TC 1.5 but I had made some changes in the source code and
header files for Litecomm as well as the Window Boss. The
Litecomm change wasn't too difficult but the Window Boss
cost me money! It seems that the Large model isn't included
but can be compiled with batch files that are included.
Unfortunately there is also assembler code that needs to be
assembled and linked. Did I have an assembler? Of course
not. What did I have to do? Go out and buy one. Ping...$100.
So much for inexpensive shareware.
I finally got everything compiled and linked. Guess
what? Just try to guess the new size of the .EXE file. The
one that was last compiled using the Small model was just
over 71k. How about 161K! Yeech! Oh well. That's life.
Since I had been writing the program for about 6 months
(on and off) I learned a few things about C, and so was able
to squeeze it down to the slim 160k that it is today in it's
Beta test form.
TOOLBOX'S
Now some words about the toolbox's that I used, The
Window Boss from Star Guidance Consulting, Inc. and LiteComm
from Information Technology, Ltd.
WINDOW BOSS
First of all I purchased the source code from both
companies. In the warranty for the Window Boss it said that
there would be free upgrades for one year. Well, when I
needed my upgrade, the upgrade was not free. The answer Phil
gave was that it was a major change, not just a minor
upgrade. "OK. I'll buy it, but I'm not happy about it." I
had no choice since I needed the software and I had about 6
months of my life already invested! I must say in fairness
that it really was a major change and made my life a little
easier.
I had the opportunity to speak to Phil a number of
times and was pleased in the most part for the service that
he provided. The only complaints are in regards to the
upgrade policy and having to purchase an assembler to get my
Large model. Phil was rarely immediately available when I
called and the person answering the phone was unfamiliar
with the software, but Phil always returned my calls within
a reasonable period of time.
-8-
CNews (1.12) Oct 30,1988 CNews (1.12)
LITECOMM
I have no complaints about the service provided by
Ralph from LiteComm. One annoying factor though is that he
keeps his telephone answering machine on all of the time. I
had the opportunity to call Ralph about 6 times or so and
not once did he answer the phone himself, BUT my calls were
always returned quickly. Ralph answered my questions
professionally and was very pleasant and helpful.
WHAT ABOUT THE NEXT TIME?
Would I use these toolbox's again for my next program?
Now that I know more about the C world I would probably look
around some more before making that decision but, I would
use these programs and my experiences as a baseline for
chasing down other newer toolbox's or reviewing the same
ones again along with any new updates.
Would I continue to use shareware or would I like to go
to a commercial package? Since I have had a good experience
with the packages I chose, I would definitely look at the
shareware packages first. I like the idea of seeing what I'm
getting into and trying it out before I buy. I've been
looking in the recent programmers magazines and would love
to try some of the software, but at the prices that are
being charged and no "try before you buy" policy, it makes
it awfully difficult to purchase one of those packages.
So what's next? I recently got my hands on a new data
compression engine and am considering building a file
compression program around it. Yes, I know. I'll make sure
that I don't use the term ARC anywhere near the program.
Turbo C is a trademark of Borland International.
Litecomm is a trademark of Information Technology, Ltd.
Other trademarks mentioned are the properties of their
respective companies.
-9-
CNews (1.12) Oct 30,1988 CNews (1.12)
Public Domain/Shareware Software Review:
Program: CXL - C Programmer's Extended Library
Purpose: CXL provides a complete set of windowing and data entry
routines for the following compilers: Microsoft, TurboC,
Datalight, and Zortech C++.
NOTE: The C BBS has not received any compensation for this
review. Opinions expressed are those of the author only.
EDITOR: I had the opportunity to chat on-line with Mike
Smedley - creator of the CXL Library - the other day here at
the C BBS. What follows is a "C News Interview of sorts", a
first if you will for C News. After Mike's comments, a
review of the basic features of CXL will be presented.
BARRY: Mike, when did you start on CXL, and why?
MIKE: I originally started work on CXL in July 1987. It
started out as a collection of several of my favorite
functions (both C and assembly). I had just purchased Turbo
C 1.0 and started using it for development along with MASM.
What I liked about Turbo C was its pseudo-register variables
and inline assembly allowing me low-level access to the
system. As I was developing my personal applications, if I
made a function that could be re-used, I added it to my
library.
BARRY: After you created the first CXL if you will, did you
have plans to create a complete library?
MIKE: I eventually started trying to think up functions that
I could add to my library. I looked over a few Shareware C
function libraries and decided to add pop-up windows to my
library. I now had a library complete with simple windowing
functions, string functions, equipment detection functions,
and a few other miscellaneous functions. I decided to
release a Shareware version locally in November 1987 just to
see how it would do.
BARRY: After releasing CXL as shareware in Nov 87, what was
the initial response?
MIKE: I eventually realized that to make the product more
usable for others, I would have to be able to supply
libraries for memory models other than small. Considering
the amount of assembly language I was using, this was no
small task. With help from the macros from the MIXED.INC
file included in MASM 5.0, I was able to provide the
additional memory models.
-10-
CNews (1.12) Oct 30,1988 CNews (1.12)
BARRY: At this point you have support for different memory
models, what about other compilers: like Microsoft, and
Zortech?
MIKE: Well, I decided that I needed to support compilers
other than Turbo C. Using assembly language, this requires a
complex system of macros to provide compatiblity. So, I
decided that I should rewrite all of the assembly language
functions in C. Upon completion of this, porting CXL to
other compilers proved quite simple.
BARRY: To sum up, what do you think of CXL?
MIKE: CXL has come a long way since its conception. Although
CXL competes with many commercial packages costing hundreds
of dollars, its registration fee remains low to provide
users with quality software and support at low prices.
REVIEW:
CXL stands for "C Programmer's Extended Library", and
currently supports various C compilers for the IBM PC and
compatibles. Compilers supported include: Microsoft,
Borland, Zortech and Datalight.
It contains 170 functions that encompass a windowing
system, Lotus Style and Pop-Up/Pull Down Menus, Multi-Field
keyboard data entry, EGA 43 and VGA 50 line modes supported,
DESQview compatibilty, Microsoft Mouse compatiable
functions, equipment detection, printing support and more.
The shareware version that is available, only supports the
SMALL memory model. Other memory models are available after
registering for $25, and the source code is provided. Free
updates are available for new versions that are released to
registered users.
I have tried Mike's package rather extensively. It
should be noted that I downloaded CXL from Compuserve,
several weeks before Mike logged onto my BBS. It was my idea
to have a Question and Answer article for C News. I like the
entire CXL package. The documentation is EXCELLENT, and
complete. This is key point if you are new to C programming.
The routines worked as advertised and I am currently using
CXL in one of my applications. I like CXL enough, to have
sent in my registration fee for the complete package. The
registration fee is very reasonable for what you get. And i
believe it is very competitive with commercial packages that
are available, and some of the more popular shareware
packages like: WindowBoss.
CXL is worth a look, the Small memory model will
suffice for a good number of applications. Give CXL a
look.
-11-
CNews (1.12) Oct 30,1988 CNews (1.12)
ARTICLE SUBMISSION STANDARDS AND ADDRESSES
As I have repeatedly stated in this newsletter and
previous issues, I would like to see user-submitted
articles, reviews or questions. Listed below are the
standards that should be followed to make my job easier
as an editor.
- Articles should be submitted in a ASCII non-formatted
file. (Margins 0-65 PLEASE)
- If the article include code fragments as examples. Then
you can include the entire source file if you like for
inclusion with the newsletter.
- Book or magazine reviews should follow the same format,
that is outlined in this issue. The publisher, author,
title, and ISBN number are a must.
- Compiler/and or product reviews, should include the
version number and manufacture. If possible, reviews
should include a sample program with benchmarks.
If you have any questions you can contact me at
the address's included on the next page.
-12-
CNews (1.12) Oct 30,1988 CNews (1.12)
ADDRESSES
The C BBS is located at:
C BBS
% BCL Limited
P.O. Box 9162
McLean VA, 22102
or you can send netmail to:
1:109/713
-13-
CNews (1.12) Oct 30,1988 CNews (1.12)
DISTRIBUTION POINTS
Board Name Number Net/Node Sysop
United States
C BBS (703) 644-6478 1:109/713 Barry Lynch
Burke, VA
Jaz C-Scape (904) 724-1377 1:112/1027 Tom Evans
Jacksonville, FL
Eastern C Board (201) 247-6748 1:107/335 Todd Lehr
Exec-PC (414) 964-5160 .. Bob Mahoney
Milwaukee, WI
TAMIAMI (813) 793-2392 Gerhard Barth
Naples, FL
Sound of Music (516) 536-8723(2400) Paul Waldinger
(516) 536-6819(9600 Hayes V)
CANADA
Another BBS System (416) 465-7752 1:148/208 Mark Bowman
Toronto, Canada
EUROPE
Fido_N1_1 31-8350-37156 2:500/1 Henk Wevers
The Netherlands
AUSTRALIA
Sentry BBS 02-428-4687 ... Trev Roydhouse
(300-2400) Non-Mail Times
(300-19,200) Mail Hour (Trailblazer)
-14-
CNews (1.12) Oct 30,1988 CNews (1.12)
USER RESPONSE FORM
This form will be included as a regular feature in all future
issues of C NEWS.
What did you think of the content of this Issue? _____________
_______________________________________________________________
What improvements can you think of that would make C News a
better tool for the C Community?
_______________________________________________________________
_______________________________________________________________
What is your favorite section or sections? ___________________
_______________________________________________________________
What don't you like about C News? ____________________________
_______________________________________________________________
Additional Comments: _________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
-15-
CNews (1.12) Oct 30,1988 CNews (1.12)
-16-