From: Info-IBMPC@WSMR-SIMTEL20.ARMY.MIL ("Info-IBMPC Digest")
Newsgroups: comp.sys.ibm.pc.digest
Subject: Info-IBMPC Digest V92 #210
Date: 4 Jan 93 07:33:23 GMT
Reply-To: Info-IBMPC@wsmr-simtel20.ARMY.mil
Distribution: world
Organization: The Internet
X-Unparsable-Date: Wed, 30 Dec 92 18:56:20 GMT+1

Info-IBMPC Digest           Wed, 30 Dec 92       Volume 92 : Issue 210 

Today's Editor:
         Gregory Hicks - Rota Spain <GHICKS@wsmr-simtel20.Army.Mil>

Today's Topics:
                      .BOOks & BOOTs ... (2 msgs)
                           auditing software
                       bar code printer? (2 msgs)
                IS SoundBlaster CD-ROM working for you?
             Newbie Wants Advice on C-Programming (9 msgs)
            Notes on 'Unable to control A20 line'; v92, #193
                   Problem with Intel's EtherExpress
        Questions on OS2 2.0 from a _potential_ user. HELP !!!!
                      TECHNICAL SUPPORT FAQ REPOST
      Re: Why is ESC special, and, how can I catch one? (V92 #193)

Send Replies or notes for publication to: <INFO-IBMPC@brl.mil>

Send requests of an administrative nature (addition to, deletion from
the distribution list, et al) to: <INFO-IBMPC-REQUEST@brl.mil>

Addition and Deletion requests for UK readers should be sent to:
<INFO-IBMPC-REQUEST@DARESBURY.AC.UK>

Archives of past issues of the Info-IBMPC Digest are available by FTP
ONLY from WSMR-SIMTEL20.ARMY.MIL in directory PD2:<ARCHIVES.IBMPC>.

----------------------------------------------------------------------

Date: 23 Nov 92 17:00:25 GMT
From: "Kenneth A. Kahn" <KENKAHN@pksmrvm.vnet.ibm.com>
Subject: .BOOks & BOOTs ...

 Gordon M. Keegan writes:
> sip1@midway.uchicago.edu writes...
>> c145gmk@utarlg.uta.edu (Gordon M. Keegan) writes:
>>> Two questions (non-faq :( ).  One fairly straight-forward, one not.
>>
>>Actually, Question Two, I think, is addressed in the FAQ List.  It
>>isn't the most convenient method, but it does work (and the FAQ List
>>is designed to be a baseline reference of sorts).
>>
>
>   Sort of.  I understand that I can boot, see, the hard disk, and
>   fix it with CHKDSK using the installation disks.  The eventual
>   goal is to boot with a pair of floppies that load Novell drivers
>   and a CMD script that will rebuild parts of the drive as needed.
>   Given past experience, we are expecting a high enough number of
>   these cases that we'd like to make the process as automatic as
>   possible.  This is the only real dead end we seem to have run
>   into.  Any pointers as to what is different on the installation
>   disks would be greatly appreciated.

Look for the BOOT20.ZIP file, available on most BBS and on CIS.
Following is from the abstract:

  The SE20BOOT program is a utility that allows you to build a BOOTable
OS/2 V2 system using an existing OS/2 V2 system.  The BOOT system can
be installed on any valid medium that OS/2 can BOOT from, including,
but not limited to, Floppies and Hard Disk Drives.

You can thus use it to create a custom made BOOT Disk.  You can then
modify the disk to include access to your LAN or whatever; you'll
probably have to expand out to 2 dissk for this but SE20BOOT will do
the hard part by creating the base BOOT Disk.

------------------------------

Date: 25 Nov 92 17:17:47 GMT
From: "Timothy F. Sipples" <sip1@ellis.uchicago.edu>
Subject: .BOOks & BOOTs ...

 c145gmk@utarlg.uta.edu (Gordon M. Keegan) writes:
>	Ok.  I apologize for a previous lack of clarity in requesting
>	information.  Let me try one more time.
>	Is it possible to boot from a floppy that is not the installation
>	disk and then run CHKDSK /F to fix the 'invalid internal file
>	identifier' error?  If so, how?  I have the remote installation
>	manual, I have created a boot disk using SE20BOOT, and have
>	everything else in place.  I just need to be able to correct
>	drive errors without having to boot from the installation disk set.
>	Thanks for your patience. :)

Ah, all is clear now.  :-)

Well, no, not really.  You can't quite fit it all on one diskette.
What most people do is use a boot diskette created with SE20BOOT and
then a "utilities" diskette (which can be put in Drive B and used from
there).

For CHKDSK you need not only the CHKDSK program itself, but also
UHPFS.DLL and OSO001.MSG.  (I'm not 100% certain about the last one --
it may not be strictly required.  In any event, all these are on Disk
2.)

You can also put an editor (like TEDP or TinyEd) on that disk.  (Both
of those editors are available via anonymous ftp from
ftp-os2.nmsu.edu.)  So you do have two disks involved, but you can put
the boot diskette in Drive A and the utility disk in Drive B and start
that way.

Timothy F. Sipples      | Read the OS/2 FAQ List 2.0g, available from
sip1@ellis.uchicago.edu | 128.123.35.151, anonymous ftp, in /pub/os2/all/info
Dept. of Econ., Univ.   | /faq, or from LISTSERV@BLEKUL11.BITNET (send "HELP")
of Chicago, 60637       | [Read the List, THEN post to ONE OS/2 newsgroup.]

------------------------------

Date: Thu, 24 Dec 92 15:47:57 +0200
From: - <cohena@bimacs.cs.biu.ac.il>
Subject: auditing software

Try laying your hands on a copy of the PC-MAGAZINE tools program:
log.com which loads as a tsr and writes a log file of all program use
that run through the command, if you can't get a copy of the program
mail me your ftp or fsp address and I'll put it in for you R(cohena)

------------------------------

Date: 23 Dec 1992 01:36:52 -0500 (EST)
From: DANA@jhuvms.hcf.jhu.edu
Subject: bar code printer?

Does anyone know of software that can be used to generate the
appropriate postal bar code for a given address and to print it on an
envelope?

Thank you.

Dana Hollander
DANA@JHUVMS.BITNET

------------------------------

Date: Thu, 24 Dec 92 14:27:08 EST
From: Gregory Hicks - Rota Spain <ghicks@BRL.MIL>
Subject: bar code printer?

Yep...  Just received my early November '92 PC Mag...

It discussed a utility program that does what you want.  Program is
written in assembly and is designed to work with LASER printers though.

Regards,
Gregory Hicks
Editor, Info-IBMPC Digest

------------------------------

Date: Thu, 24 Dec 92 11:40:14 SST
From: Ang Peng Hwa <MCMANGPH%NUSVM.bitnet@CUNYVM.CUNY.EDU>
Subject: IS SoundBlaster CD-ROM working for you?

I bought a computer with a SoundBlaster Pro and an MKE CD
reader/player.  It worked well. But lately it has been noisy, even when
not in use. Once the system is booted, it would create this spinning
noise that is hard to describe. I called the dealer and he said he was
aware of the problem.  The sound goes away after about 3 minutes or so.
I haven't got it fixed get as I've bought another computer that I use
more regularly but the dealer said it can be fixed and that I should
bring it in.

A more recent problem is the Windows 3.1 driver for the SB Pro. For
some reason, the system creates a droning sound. The only way to get
rid of it is to remove the SB Pro drivers, reinstall and then reboot. I
can't replicate the problem as it is intermittent. Sometimes, it works
normally. Sometimes the drone comes on.

I had the player with Windows 3.0 and it was fine. I think there is
some incompatibility with 3.1 that has not been ironed out. I haven't
called technical support for the problem yet. (Again, my other
computer.) I suppose I should. I might add that I don't know if my
system is to blame as I use QEMM.

So apart from those two bugs (for the first, wait 3 minutes, for the
second remove, reinstall and reboot), SB Pro has been great.

'Regards, Peng Hwa.

------------------------------

Date: 24 Dec 92 17:23:33 GMT
From: Michael Malak <malak@grebyn.com>
Subject: Newbie Wants Advice on C-Programming

 noring@netcom.com (Jon Noring) writes:

>1) There seems to exist C, as well as C++, and possibly other
>variants.  What are the differences between these?  Which should we
>learn first?

In my opinion, there is no fast track to either C or C++.  I feel the
following must be learned in order:

   1) Pascal, with two semesters experience

   2) Assembly, learned anywhere, with tinkering on your own

   3) C, 2-3 years min. anywhere (college, real world, or tinkering)
After that you can learn and appreciate C++.  You need to first learn
structured programming and algorithms, most importantly, linked lists
and trees.  Since C is tightly coupled to assembly in many ways (C is a
shorthand for assembly, and C integrates easily with assembly modules),
you need to known assembly to understand what is going on in your C
program.  The after you know C, it takes _years_ of experience to
really know it.  After 6.5 years, I'm still learning.  After 5 years, I
was doing object-oriented programming in C (not C++) without really
realizing it.  It was at that point that I could appreciate the
syntactic shorthand of C++ for object-oriented programming.  I've never
programmed in C++, BTW, due to the lack of a really good mainstream
32-bit C++ compiler for MS-DOS.

To summarize, C programs should appear structured like Pascal programs,
but are really shorthand for assembly programs.  C++ facilitates
object-oriented programming, but you need experience when to use it
because you can too easily introduce inefficiencies.

>2) We want to do most of our programming on our 386-33 PC running
>MSDOS 5.0.  What C-type compilers exist for the PC?  Which ones are
>better?  How much do they cost and where can one get them at a
>discount?

The first question is 16-bit or 32-bit.  16-bit compilers generate
native MS-DOS programs and MS Windows 3.x programs.  32-bit compilers
generate DOS-extended programs (which appear to run just like native
MS-DOS programs) and, in the case of Microsoft's C compiler, Windows NT
programs.

The best 16-bit compiler ever made is unfortunately no longer
available.  It was Microsoft C 6.0.  I should qualify "best"; I mean in
terms of professional MS-DOS development.  Although I have little
experience with Borland C compilers, I would have to recommend it to
you for the following reasons (if you want a 16-bit compiler):

1) Beginners tend to love Borland's "integrated development
environment", where I presume you can edit, compile, link, and debug
from what appears to be the same program.

2) Microsoft C++ 7.0 requires the finicky 386-MAX memory manager for
compiling and linking under DOS, thus making it unattractive for
creating DOS programs.

3) Borland has aggressively added support for creating Windows
programs, so much so that it is unclear which is better for Windows
development (typically programmers will stick with the "official" C
compiler no matter how bad it is, because of compatibility and compiler
bug issues).

For 32-bit development, the Intel C Code Builder is in my opinion the
best for creating DOS programs since it can link in MASM 6.0 modules.
MASM 6.0 is the best assembler I have ever seen for any computer.  It
allows you to create very structured and readable assembly code, and
seamlessly shares data and functions with C.  Note, however, that it is
just a C compiler, not a C++ compiler.  As I said above, there are no
really good mainstream 32-bit C++ compilers.  I don't feel Zortech C++
qualifies because it doesn't come with a 32-bit C++ debugger, I keep
hearing bad things about it, and it uses a 286 DOS extender with a 16MB
memory barrier.  The memory barrier on a 386 DOS extender, such as the
one built-in the the Intel Code Builder, is 4GB.

For 32-bit Windows development, the only choice as far as I know for
Windows NT is the special version of Microsoft C++ 7.0 that comes with
Windows NT beta developer's kit.  There are 32-bit C compilers for
Windows 3.x, but I wouldn't recommend them since they are not
mainstream.

To me, "mainstream" is important because it means a higher quality
product and better support.  It means more complete and more
professionally done documentation.  It means more complete and wider
beta testing.  It means larger resources to fix the bugs that you find
and report in their compiler.

In any case, you should get MASM 6.0, which lists for $150.  It is both
a 16-bit and a 32-bit assembler and can link with Microsoft, Borland,
and Intel C compilers.

The Intel C Code Builder lists for $595.  I'm not sure of the prices
for Microsoft C++ and Borland C++, but I imagine they are $300 - $500.

>3) How robust is C compared to Fortran for purely number crunching,
>scientific type applications on the PC?

C does not do range-checking on array indices.  This is one way that C
is coupled to assembly: a[i] means _exactly_ "add a to i and
dereference".  In fact a[i] and i[a] are synonyms!  If you want to
incur the overhead of range-checking, you could easily do so in C++.

One reason that FORTRAN is associated with good number crunching
capabilities is that there exist out there optimized, proven math
libraries.  I would guess that that is not so much of an issue anymore,
that math libraries are available and/or have been ported to C, but
I've never done scientific number crunching in FORTRAN, so I don't know
what I'm missing.

>4) What books would you recommend in learning C (my wife might want to
>take classes - I do better teaching myself)?  And of course, since I
>will be doing programming on a PC, what books would you recommend that
>are specific to that platform, especially w.r.t. memory management as
>well as graphics?

You should always start out with the official books:

For C, it is _The_C_Programming_Langauge_ 2nd ed. by Kernighan &
Ritchie

For C++, it is _The_C++_Programming_Language 2nd ed. by Stroustrup

For assembly, it is the programmer's reference manual publsihed by the
chip's manufacturer.  I would recommend the i486 programmer's reference
manual published by Intel.  The invaluable quick reference guide that
comes with MASM 6.0 tells you which instructions are available on which
processor(8088, 286, 386, and 486).

For each language, you may optionally buy a more tutorial or
descriptive book.  The books listed above are more reference books than
tutorials.  Although they do start with the basis, and then build on
them, they do so in a math book kind of way.  Just go to a computer
book store and thumb through some of the books and buy the one(s) that
appear to teach the way you like to learn.  Use the reference books to
verify the tutorial books, and to provide complete information.

As for memory management, it is a non-issue in the 32-bit world, which
is the way the world is going.  The kluges invented for the 16-bit DOS
world, expanded memory (EMS) and extended memory (XMS) are pretty
technical and not necessary for either 16-bit Windows or 32-bit DOS
extenders.

As for graphics, you'll need to use Windows calls to do graphics under
Windows.  I've never done any programming under MS Windows (I wrote my
own windowing system since MS Windows was too slow for the real-time
displays required by my current project), so I don't know any books to
recommend.  To do graphics under DOS, you _might_ find the library
calls that come with the C compiler sufficient.  Most people just write
directly to the VGA registers.  The standard, but _poorly_ written,
guide is called something like _Programming_EGA/VGA_, 2nd edition by
Ferarro.

>(p.s., I looked for a FAQ about my questions, but did not happen to
>find one, so please no flames in the event there is a FAQ for this.)

- Michael Malak, INTP

------------------------------

Date: 24 Dec 92 15:42:04 GMT
From: "Chad R. Collins" <collins@blkbox>
Subject: Newbie Wants Advice on C-Programming

noring@netcom.com (Jon Noring) writes:
[...text deleted...  See previous messages.]

>1) There seems to exist C, as well as C++, and possibly other
>variants.  What are the differences between these?  Which should we
>learn first?

	Well, C is basically a subset of C++.... anything you write in
C should be compatible with C++. C++ is an extension of C, which
primarily adds objects. Personally, I prefer C becuase it is well
standardized and I frankly think most of what C++ adds is a waste of
time. However, alot of people would disagree with me, so you might want
to look into who and what around you will be learning. I think if you
learn C first you will be safe, just becase C works with C++ and not
vice versa.

>2) We want to do most of our programming on our 386-33 PC running MSDOS 5.0.

	Well, if you are doing normal DOS programming, I would probably
stick with either Borland C++ 3.1 or Microsoft's C++ (7.0?). They are
the two most common and you will find alot more written for those two
compilers... I think there was a thread on this newsgroup discussin the
two. I can't say I have ever used Microsoft, so I cant speak for it,
but I have been happy with Borland for the most part.

>3) How robust is C compared to Fortran for purely number crunching,
>scientific type applications on the PC?

	No solid evidence, but my engineer friend uses Fortran for his
classes instead of C.

>4) What books would you recommend in learning C (my wife might want to take

 	Well, when I went from Basic to C (one of the best moves I ever
made :) I used to book called "C:step-by-step" by Waite & Prata. It is
a very good book for basic C.... I still use it now when I have to
clarify something.  It doesn't cover C++ at all, though, so if you want
to learn that you might want to look for something else.

Just my $.02

Chad R. Collins
collins@blkbox.com

------------------------------

Date: 24 Dec 92 23:04:20 GMT
From: Paul Penrod <furballs@sequent.com>
Subject: Newbie Wants Advice on C-Programming

 collins@blkbox (Chad R. Collins) writes:
>noring@netcom.com (Jon Noring) writes:
>
>>My wife, who is a database analyst working with DB2, etc. (all IBM
>>mainframe stuff), is now interested in learning C programming because
>>of pending changes at the company she works.  I, too, have an interest
>>in learning C - I'd like to be able to write programs to solve a
>>variety of problems (I've done a lot of fairly complex scientific
>>programming with, heaven-forbid, Fortran, so I do have some general
>>programming experience).

>>Since both of us are newbies in this area, I'd like some advice as well as
>>answers to the following questions:
>
Well, C may be syntactically a subset of C++, but it requires a
different line of thinking. C is basically a high level assembler with
the ability to produce functional blocks more precisely than Assembly.

In a previous post, some suggested you learn PASCAL first. I don't
think so. You can learn C without having to unlearn the bad habits that
PASCAL produces in programmers. I have had to "deprogram" many a PASCAL
person over the years by yanking them away from their safety nets and
comfort zones and explain to them the real life fact that PASCAL
assumes you don't know the rules and enforces them in that manner. In C
it presumes a knowledge of the rules and there are no safety nets when
you break them. PASCAL was designed solely for the purpose of teaching
structured programming as espoused by Tom DeMarco, Richard West, et al.
C was written in 1969 for the express purpose of providing a general
purpose Operating Systems language that was portable, (spelled UNIX).

C++ takes the idea of a C structure and enforces the concept of data
hiding ontop of an already working system. Object Oriented Programming
can be done in C or C++, it is just that C++ has some features that
make it a little easier.

Either compiler is ok, but I prefer Borland's compiler at the moment.
It is very stable and provides a nice environment for development.
Microsoft C 7.0 is also not too bad. For a C compiler it is very good,
and the amount of fine tuning you can do with the compiler and the
linker is nothing short of amazing. Those features will become useful
later as your experience grows. Zortec and Watcom also produce good
tight EXEs and are not bad from a developmental standpoint.

It's actually better than FORTRAN in many instances, since the actual
number crunching and mathematical algorithyms can be expressed in a
hand tuned fashion that makes it utilize the calculating power of the
machine more efficiently. If you don't wish to roll your own math
functions, an extensive math library is generally provided and third
party vendors extend that capability even further.

Engineers tend to use FORTRAN more by tradition and schooling, rather
than an absolute need for the language.

"C:step-by-step" by Waite & Prata is a good Book. Also you might want
to look into such books at Workout C, C the Complete Reference, The C
Answer Book, Learning C by Augie Hansen, (comes with tutorial disk).
The list goes on and on. The best place I have found for books is
Software Etc, Egghead, and any techinal book stores in your area.

------------------------------

Date: 25 Dec 92 07:15:10 GMT
From: David Oertel <ort@netcom.com>
Subject: Newbie Wants Advice on C-Programming
Summary: Re: Newbie Wants Advice on C-Programming

bank@lea.csc.ncsu.edu (Belgarath the Sorcerer) writes:

>    of course, Smalltalk. I wouldn't want to DEVELOP anything in
>Smalltalk, but if I were to start learning OOP, I think that would be
>the best language to learn the concepts in.

Could someone elaborate on why Smalltalk is not a good development
language if this is not too FAQy?  I've been successfully developing
products through rapid iterative prototyping without any up-front
design.  I've gotten good results by throwing prototypes at the
customer and letting him free associate to determine future direction.
Maybe Smalltalk would support this M.O. better than C++, because I'm
spending a lot of time compiling.  Maybe hardware is getting fast
enough to compensate for interpretation, garbage collection, and slow
method resolution.

thanks in advance,
Dave Oertel
ort@netcom.com

------------------------------

Date: 25 Dec 92 07:35:17 GMT
From: Michael Malak <malak@grebyn.com>
Subject: Newbie Wants Advice on C-Programming

 bank@lea.csc.ncsu.edu (Belgarath the Sorcerer) writes:
>    I'd like to follow-up on some subsequent Posts on this thread.

>2) The "Learn C or C++?" question can ONLY be answered by first
>    asking "OOP or traditional?" If you are and/or want to stay

>    a traditional, top-down programmer, go with C. If you want
>    to get into OOP, go with C++.

Asking "OOP or traditional" is like asking "Open end wrench or socket
set".  You use each tool where appropriate, and as I said in my
previous post, you need years of traditional C experience before you
can realize where C++'s OOP can benefit you without miring you too much
in inefficency.  If you read anyone's report of practical experience
with C++, they tell you the hard thing to learn is where _not_ to use
OOP.

------------------------------

Date: 25 Dec 92 01:55:10 GMT
From: "Wayne A. Christopher" <faustus@ygdrasil.cs.berkeley.edu>
Subject: Newbie Wants Advice on C-Programming

 malak@grebyn.com (Michael Malak) writes:
> In my opinion, there is no fast track to either C or C++.  I feel the
> following must be learned in order:
>   1) Pascal, with two semesters experience

IMHO, Pascal has nothing useful that C doesn't have, except for array
bounds checking.  You you use C++ you can use a vector class that gives
you that.  I would suggest learning Scheme for a semester or two and
then moving to C++.

>   2) Assembly, learned anywhere, with tinkering on your own

I'm not sure it's so important to really program in assembly.  You
should understand basic machine architecture, and have some idea of
what an instruction set looks like, but writing real code, especially
for a RISC, doesn't teach you all that much.

>   3) C, 2-3 years min. anywhere (college, real world, or tinkering)
> After that you can learn and appreciate C++.  You need to first learn
> structured programming and algorithms, most importantly, linked lists
> and trees.  Since C is tightly coupled to assembly in many ways (C is a
> shorthand for assembly, and C integrates easily with assembly modules),

Two point here.  First, you can start with a subset of C++ that is
close to C, but includes important things such as mandatory function
prototypes and flexible declaration positioning, and add classes and
other OO features gradually.  You don't have to jump into multiple
inheritance the first day.  There are plenty of ways that C++ improved
on C that don't add much conceptual complexity.

Second, it's not right to call C "shorthand for assembly".  One thing
you can say about C and C++ is that it discourages language features
that can't be implemented at compile time, but that doesn't make it any
closer to assembly than any other compiled language.  And most
languages "integrate easily with assembly modules", simply because
that's what compilers produce.

> One reason that FORTRAN is associated with good number crunching
> capabilities is that there exist out there optimized, proven math
> libraries.

The other reason (I think) is that the semantics of fortran array
parameters make it easier for vectorizers and optimizers to handle
loops.  I don't remember the details, but this was behind the "noalias"
controversy with ANSI C a while back.

	Wayne

------------------------------

Date: 25 Dec 92 05:05:15 GMT
From: Belgarath the Sorcerer <bank@lea.csc.ncsu.edu>
Subject: Newbie Wants Advice on C-Programming

    I'd like to follow-up on some subsequent Posts on this thread.

1) C is NOT a sub-set of C++. C++ is a superset of C. Yes, I know, that
is a semantical splitting of hairs. But the first expression leaves the
reader with the idea that C++ came before C, when in fact C predates
C++ by the better part of two decades.

2) The "Learn C or C++?" question can ONLY be answered by first asking
"OOP or traditional?" If you are and/or want to stay

    a traditional, top-down programmer, go with C. If you want to get
into OOP, go with C++.

3) If you are going to go into OOP, DO NOT start off with stuff like
Pascal, as one person has suggested. OOP is a completely different
mindset than the traditional forms used by Pascal and C. The best
language for learning OOP is, of course, Smalltalk. I wouldn't want to
DEVELOP anything in Smalltalk, but if I were to start learning OOP, I
think that would be the best language to learn the concepts in.

4) Even if you're not going into OOP, do NOT take up Pascal as a road
to C. Pascal is a language that assumes you know very little and places
lots of restrictions and inhibitions on you. If you already are a
traditional-style programmer, you don't need the knowledge Pascal will
teach you (modularization, declaration, etc). Go on into C and avoid
having to unlearn all the limits Pascal will place on you.

5) Picking up Assembler prior to learning C isn't a bad idea.  Hardly
required, tho.

Belgarath the Sorcerer
bank@lea.csc.ncsu.edu

DISCLAIMER: The above Post constitutes an honest effort by the
             author to impart information he knows, or
             reasonably knows, to be true. All other interpretations
             are in error.

------------------------------

Date: 25 Dec 92 07:00:24 GMT
From: Michael Malak <malak@grebyn.com>
Subject: Newbie Wants Advice on C-Programming

 faustus@ygdrasil.CS.Berkeley.EDU (Wayne A. Christopher) writes:
>malak@grebyn.com (Michael Malak) writes:
>> In my opinion, there is no fast track to either C or C++.  I feel the
>> following must be learned in order:
>>   1) Pascal, with two semesters experience
>
>IMHO, Pascal has nothing useful that C doesn't have, except for array
>bounds checking.  You you use C++ you can use a vector class that
>gives you that.

Pascal has the following advantages over C:

   1) It has structured syntactic blocks for constants, types and
variables.

   2) It has nested procedures.

   3) Most importantly, the good structured programming professors
wouldn't be caught dead teaching C (biggotry in my opinion).

>  I would suggest learning Scheme for a semester or two
>and then moving to C++.

Is there an MS-DOS Scheme?

>
>>   2) Assembly, learned anywhere, with tinkering on your own
>
>I'm not sure it's so important to really program in assembly.  You
>should understand basic machine architecture, and have some idea of
>what an instruction set looks like, but writing real code, especially
>for a RISC, doesn't teach you all that much.

It depends on what you mean by "writing real [assembly] code".  I think
to learn anything you need to try it at least once.  The programming
assignments in an assembly class would be sufficient, as would be
trying a couple of exercises out of a tutorial book if one were
learning it on his own.

>>   3) C, 2-3 years min. anywhere (college, real world, or tinkering)
>> After that you can learn and appreciate C++.  You need to first learn
>> structured programming and algorithms, most importantly, linked lists
>> and trees.  Since C is tightly coupled to assembly in many ways (C is a
>> shorthand for assembly, and C integrates easily with assembly modules),
>
>Two point here.  First, you can start with a subset of C++ that is
>close to C, but includes important things such as mandatory function
>prototypes and flexible declaration positioning, and add classes and
>other OO features gradually.  You don't have to jump into multiple
>inheritance the first day.  There are plenty of ways that C++ improved
>on C that don't add much conceptual complexity.

Good point.

>
>Second, it's not right to call C "shorthand for assembly".  One thing
>you can say about C and C++ is that it discourages language features
>that can't be implemented at compile time, but that doesn't make it
>any closer to assembly than any other compiled language.  And most
>languages "integrate easily with assembly modules", simply because
>that's what compilers produce.

BASIC, LISP, and all the other interpretive languages do not integrate
with assembly.  And on many platforms other than MS-DOS you cannot mix
(link) outputs from different compilers.  All in all, most languages on
most platforms do not mix well with assembly.  I know of no C compiler
that cannot link in assembly modules; I cannot say the same for any
other language.

------------------------------

Date: 25 Dec 92 18:42:59 GMT
From: Alan Watson <alan@sal.wisc.edu>
Subject: Newbie Wants Advice on C-Programming

I came to C from Fortran a few years back; with a Fortran background,
there are two distinct things one needs to master to program
effectively in C.

Firstly, one must master the new programming techniques, such as
linkage classes, scope, pointers, heap memory management, and
recursion.  Secondly, one must master the notation and semantics of the
C language -- C is a very dense and tightly-woven language.

One can attempt to learn both of these concepts simultaneously, by
plunging straight into C, or one can learn the first using Pascal, a
much simpler, smaller, and more limited language than C.  This was the
path I would recommend, with a couple of months with Jensen and Wirth
to learn the new concepts (where new == late 1960s) with Pascal and
then a couple of weeks with Kernighan and Ritchie to learn the C
language per se.

There is so much new stuff in C that I would learn it first and then
C++.

Fortran possesses several advantages over C in numerical computing, but
none of them are overwhelming.  There are better and more extensive
libraries available in Fortran (but f2c exists), Fortran compilers on
fast machines generally produce better scalar code than C compilers
(but only by perhaps at most 25%), Fortran has complex numbers
(although these can be added easily to C++), and Fortran code will
often vectorize more easily and with less intervention that C code (but
often even Fortran code needs tweaking or re-writing to take full
advantage).  Still, I work almost exclusively in C because I find I can
write, debug, and understand my programs more quickly and easily, and
still get within 25% of the speed of Fortran.  Your milage may vary.

On a separate issue, some people insist on making the age-old assertion
that C is a kind of portable assembly language.  This is simply not
true.

C deals with the kind of objects and operations that many assembly
languages do, but it gives one no information on the REALIZATION of the
language on the machine.  For example, the language does not specify
the format (or even the existence) of the call stack, so it is
impossible to garbage-collect the stack in standard C, just as it is
impossible to do this in, say, standard Pascal.  (Yes, I know one can
do it in both C and Pascal for specific implementations.)  It is true,
however, to say that C (and similar languages, such as BCPL and BLISS)
replaced assembly language in many tasks.

------------------------------

Date: 24 Dec 92 16:33:20 MDT (Thu)
From: Oleg Ivanov <tdsolid@glas.apc.org>
Subject: Notes on 'Unable to control A20 line'; v92, #193
 
    Yao-Sheng Cheng writes in v92, #193 of this list:
 
>   I have updated my DOS version to 5.0 recently, but when I write the
> statement "device = c:\dos\himem.sys" in the config.sys file, the error
> "Unable to control A20 line!" happened. I have tried to add
> /A20CONTROL:OFF/ [ON] to test it, but it does not work. I have also
> changed the XCMOS configuration to enable or disable the A20 line, but
> it also failed.
 
   Hi, Yao-Sheng Cheng !

   I could advise you to include in CONFIG.SYS

                  device=himem.sys /machine:1

(or /machine:2, etc. till /machine:16 (???), see the MSDOS README.TXT
file.)

instead of your statement(s). For some of these options the computer
will NOT work at ALL. (In such possible cases you must boot the
computer from a bootable diskette and change "/machine" switch in
CONFIG.SYS.) Try to find the correct "machine". If this will not help
then the version of HIMEM.SYS you have does not support this option. (I
use HIMEM.SYS, ver. 2.77, 02/27/91 on my computer AT-286, AMI-BIOS).
 
   By the way, how one can change XCMOS configuration for A20
en/disabling?
    Hope everything will be Ok. Regards,
 
                                        Maksim Stolyarov.
 
           24.12.92
Department of Theoretical Physics
 P.N. Lebedev Physical Institute
       Moscow, Russia

------------------------------

Date: Wed, 23 Dec 92 16:31:14 SCL
From: terenas@vnet.ibm.com
Subject: Problem with Intel's EtherExpress

Hello,

We are having a problem with Intel's EtherExpress 16 LAN Adapter.

We are using an IBM PS/ValuePoint 325T (6384-G24) with Intel's
EtherExpress 16 LAN Adapter and an IBM 3270 Connection Adapter.  The
problem is that when we insert Intel's EtherExpress adapter, we loose
the emulation. It seems there is a clash between the two adapters. (I
tried changing the I/O base, address, shared memory and still the
emulation doesn't work) When we replace Intel's EtherExpress by a 3Com
EtherLink II/16 TP there is no problem: both the emulation and network
work just fine.

I tried using the same settings of the 3Com adapter on Intel's board
and still it does not work.

What I need to know is if there is any reported problem between Intel's
EtherExpress 16 LAN Adapter and the PS/ValuePoint and how to get these
working with a 3270 Connection Adapter.

Thanks for your help,

Frederico Terenas              "The opinions herein expressed are
terenas@vnet.ibm.com            mine, not my employer's"
FTERENAS at SANVM1
IBM de Chile S.A.C.

------------------------------

Date: 20 Nov 92 11:13:14 GMT
From: Bill Austin <baustin@billapc.uucp>
Subject: Questions on OS2 2.0 from a _potential_ user. HELP !!!!

gt7692b@prism.gatech.EDU (Constantinos Malamas) writes:

>       I am the prud owner of a new 486DX33, and I am seriosly
>considering installing OS/2 2.0 as my OS... Before I spend $125 on the
>package though, I wanna some input by you, fellow netters:

Nice machine, make sure you have at LEAST 8 meg of memory.  IBM was
foolish to suggest 4M as a minimum.  Even if they belived it
themselves, it would have been smarter to say 5 M and let us netters
leak it to each other as 'unofficial info' that 4M MIGHT work.  Second,
don't spend $125.. Spend $99+5 shipping from PC Connection
1-800-800-5555 (thats overnight delivery, and no.. I don't work for
them.. Just a very please customer that bought OS/2 2.0 from them)

>       o  Due to a small (comparatively) HD (107MB), I will probably
> install Stacker 2.0, that I used on my old machine. Now I _heard_ that OS2
> requires ~30MB for its swap files. Is this true? How close is this figure
> to actual performance? most importantly-- will OS2 be able to access the
> Stacker drive to dump its swap files (unlike Windows)? are this files so
> compressed that this is not efficient anyway?

No, util Stac puts out its promised OS/2 version.. All compressed disks
via Stacker are a 'Dos-thing'.  Personally, I've been screwed by SStor
and Stacker both in Dos.. I won't let it near my OS/2 machine till at
least one revision goes by.  (I have nothing against the concept, or
the CURRENT DOS versions.. but I have the arrows in my back from the
early buggy versions...  With OS/2.. the potential for bugs.. not
having a properly shut down OS/2.. etc.. scares the @%@%%! out of me)

You have inaccurate information about its HD needs.  Its more like 34
meg for a full install (including lots of stuff you can delete later,
and/or don't need.. the games, the tutorial..etc.. personally.. I nuked
the tutorial and kept the applets) and with 8M of memory about 4M
(average) for a permanant (no such thing as a temp.. its a swap file..
its there.. even if you don't ask for it/need it.  Just smaller) swap
file.  A 4M ram system is going to be slow, regardless of your CPU
speed.  The Swapper.dat will grow till are ready to shoot your system
to put it out of your misery.  'Budget' 40M for the base OS and your
home free.  Apps of course take whatever they need.

You CAN of course have a stacker/sstor volume still around.  Just don't
expect OS/2 or the VDM dos boxes to get to them.  You can dual-boot (or
boot manager) to native DOS for access to such items.  Not worth it
over here, but special needs call for special messes.

>       o  How does OS2 run DOS and Windows apps? Does it emulate these
> two exceptional os's (NOT!!!! :))...) or does it require the actual DOS
> and Windows OS software to be installed on the HD?

Totally self contained.  DOS is an emulated varient of DOS 5.0, and
Windows support is currently at 3.0 level.  Win3.1 level is promised
RSN.  (i.e.. don't hold breath, but it will happen if you wait) When
you buy the upgrade from DOS kit.. (price above).. it must find an
installed DOS.  This is to say.. at least a HD which has had a SYS
command applied to it.  (A fresh HD was installed after format with
only SYS C: applied.. so its obviously only concerned with the hidden
files and/or a Command.com)

>       o  How much space will the OS2 files take up?

As above.. about 32M for the base, and 2/4/6/8 for swap.. depending on
your memory condition.  Have 8+ MEG

>       o  How power-intensive is OS2 anyway? Will it take up so much uf
> the CPU that really BIG programms (Mathematica 2.0 for DOS, for
>example) will not run fast enough?

Don't use that particular program, however.. I've run several intense
DOS apps in Full screens while downloading at 14.4K without errors.
I've also run several other large programs and been brought to a snails
pace.  It would be unfair to say anything universal as 'Yes' or 'no'..
OS/2 isn't perfect (GASP.. Bye world.. This group is going to terminate
me!).. but its sure a heck of alot better than multitasking under any
other comparable resource requiring and/or priced OS for Intel
machines.  I again.. won't make a universal statement that being the
'best' is going to also be 'fast enough'.. However, from a personal
standpoint over here.. Its my personal choice.

A word of warning.  (actually several)

1. Have enough memory (worth repeating this many times)

2. Don't let the drive run out of drive space when it wants to make a
bigger swapper.dat  (related to #1.. This SHOULDN't be a problem)

3. Verify driver support exists for your hardware.. (i.e. Video,
CD-Rom, SCSI card, etc..etc) if its important that you not have to wait
for a driver to get something working.  (i.e. my Diamond SpeedStar 24X
card.. unsupported in above stock VGA.., my old and slow Trident 8900b,
a full set of drivers for anything I could every want..etc)

4. Be prepared to find and install something called the 'Service Pak'
which was released 10-29-92.  It fixes 250+ bugs, as well as adds more
SVGA support and upgrades the 16-bit Graphics Engine to the 32-bit
level.  Its available from the IBM NSC bbs in GA,

   1-404-835-6600 (double check this before you call.. std disclaimer)
for next available modem.. usually V.32

   1-404-835-5300 (double check this before you call.. std disclaimer)
for a USR DS (V.32bis) connection.

   Its more economical however to find someone that has it locally than
to download 14 1.44M floppy images (plus LDF.com if you don't have it)
at LD rates.

   Its generally worth installing the Service Pak (SP) even if you have
NO problems.  Future add-ons, upgrade products..etc. may assume a
syslevel of General Availablity (GA) with the SP installed over it.
You can of course enjoy playing with it all you like without the SP.
we all more or less survived without it before it was available.

5. Keep good backups.  What was important under DOS is twice as
important under OS/2.  Unfortunately, many of us with unsupported tape
drives are still in the cold.  Check this before you buy a tape drive
if you don't already have one.  Good quality Diskette backup programs
do exist and work.  I suggest Obackup, though I don't use it
personally.

6. Don't get frustrated, too many good people that really would have
enjoyed the benifits of OS/2 have given up before making the system
work.  Its really no harder than making DOS work, and certainly from my
viewpoint easier than getting a single DOS memory manager to work all
the time.  Unfortunately, I know far too many people that just gave up.
I can only help so many install it.  (FWIW dept..  including my own,
and NOT including re-installs on same machines..  I've installed 2.0 GA
on 43 machines.. 25 of them in one day, aprox 40/min machine.. though
that 25 I did 10 at a time.. It was quite a three ring circus running
from machine to machine putting the next disk in.)  (Also FWIW, all
copies of OS/2 GA were legit.. I looked at the proof of ownership card
and other proof of ownership.  It was a deal I made at a local user
group meeting to help as many people install it as I could.  All but 1
machine worked first try.. not perfectly, but enough to make alot of
people happy)

7. Good Luck, and while some might say that I'm crazy for even
mentioning OS/2's failings.. You are better served to go into it with
your eyes open.  I don't think you will regret it.  I don't work for
IBM.. and the only thing I EVER got for installing those copies of OS/2
was a couple pieces of Pizza.. (it was an OS/2 install party!)

baustin@bluemoon.com

------------------------------

Date: 22 Nov 92 21:02:11 GMT
From: Ken Bass <kbass@gmuvax2.gmu.edu>
Subject: TECHNICAL SUPPORT FAQ REPOST

OS/2 2.0 Technical Support FAQ 11/6/92

OK EVERYONE. Here is a list of OS/2 support persons avaible to help you
on CompuServe.

Anyone on the Internet or BITNET can send mail to persons with
CompuServe accounts. For example, to send Jim Akers mail, who has an
CompuServe ID of 72410,1360, you would send to the following:

72410.1360@compuserve.com

Note the comma in the UserID is replaced with a period. Also note that
those individual listed without an area of expertist should not be
contacted yet. I will keep this list up to date. It is available from
CIS. I will also upload it to hobbes and watson.

   ---Ken

User ID    Name                Area of Expertise

---------- ------------------- ------------------------------------ 

72410,1360 JIM AKERS           LAN SERVER AND COMM MANAGER, ISV QUESTIONS
72370,141  BILL ALLEN          CUA CONTROLS LIBRARY/2
72360,3555 DOUG AZZARITO       DOS EMULATION + COMMUNICATIONS
72400,2756 BILL BAER
72370,135  E GENE BARLOW       OS/2 USER AND PC USER GROUPS
71075,1337 IVAN BIDDLES        OS2DF1-PM WINDOW MANAGER, AND CONVERTING TO CSET/2 COMPILER, BORLAND C++ FOR OS/2 BETA PROGRAM
71075,3151 BOB BLAIR
71072,3171 ART BORREGO         LAN
72400,2746 RON BOYAJIAN        SYSOP SECTION 14 OS2DF2
72370,152  TOM BRIDGMAN
71072,1534 PAUL BRIGHTLY       TOOLKIT
71075,1112 MICHAEL BROWN
71075,3161 CHARLES BUCK II
72400,3600 JOHN J CANNELLA
72360,3621 JOSEPH J CARUSILLO  SOFTWARE DEV.SUPPORT+SERVICE
71075,2551 SAM P CASTO         Manager, Boca Technical Support Group
72360,3474 ROSS L COOK         OS2DF1, OSDF2, OS2USER, OS2SUPPO, DDJFORUM, WINNT AND MSWIN32 
72410,1357 ROBERT J CRAWLEY
71075,1107 LARRY DAVIS         MEDIA RELATIONS TECHNICAL SUPPORT, AND MONITOR COM MAN - OS2DF2 
72370,512  LORI DAY            WORDPERFECT RELATED ITEMS
72370,1116 WF DAYTON           PC COMPANY CUSTOMER SATISFACTION 
72410,335  RICHARD DECKER
71075,2430 SAM DETWEILER       GOLLY,OS/2 INSTALL,PDK,CDROM,C,ES, CM,CID,PROGRAMMING,REXX,COMM      
72370,251  DAVID DILL
71075,3143 MICHAEL DUNN        CID ENABLEMENT
72410,340  BRIAN DUQUETTE
72370,274  BOB EASTON          ES/LS, COMM MGR, DB MGR, TCP/IP, CID, AND OS2USER
71075,3157 RICK EFRUSS         Device Drivers
71075,3565 GEORGE ELLIOTT
72370,250  DAVIS FOULGER
71072,1541 SUZANNE GAGNON
72370,146  KEJIA GAO
72370,562  MIKE GERENTINE      INSTALL/2, TEXT CONTROL, DIST. APPL, CAU CONTROLS/2 
71075,2611 BOB GIDEON          LAN 3.0 SERVER AND NOVELL INTEROPERABILITY
71075,131  DANIEL A GISOLFI
71075,340  JOHN GOLDTHORP      OS/2 APP. DEVELOP. SUPPORT
71075,2426 PETER F HAGGAR      CONTAINER CONTROL SHIPPED WITH OS/2 2.0, PMAPI'S-OS2DF1, OS2DF2
71075,1445 DON HAILE           LAN HARDWARE, OS/2 COMM MANAGER
72400,2751 ERIC HANSENNE
72410,625  NICKY HARTLESS
72360,3645 DON R HEDDING       OS2DF2 COMM MAN,OS2SUPPORT, NOVELL NETWIRE
72410,336  CARMEN HERNANDEZ
72410,265  FLOYD HIEBERT
72370,1265 JOE HLAVATY         WIN/OS2
71075,133  RODNEY MAXWELL      PMX 
71075,134  LEE COLE            TCPIP
71075,135  BRYAN FREY          TCPIP 
72370,143  JON E HOLLIDAY
72370,1201 TONY INGENOSO       DOS APP COMPATIBILITY, AND SYSTEM CONFIGURATION. DEV FORUMS - KERNEL AND ARCHITECTURAL QUESTIONS
72370,730  TERRIE JACOPI
72370,1117 RANDALL JAMESON     LAN SERVER, NTS/2
72400,2743 CHRIS JUDGE
71075,2432 KENNETH KAHN 
72370,142  PHILIP G KERKLO
71075,2427 DAVID A KERR        OS2DF1 PM API'S
72360,3554 KELVIN R LAWRENCE   GRAPHIC ENGINE,GPI,PMWIN,VIDEO 
72360,3611 DAN K LEE           DFI, BASE OS2 API, PM API 
71075,3150 LEN LESLIE          CID ENABLEMENT(OS2DF2)
71075,2431 ROGER LEWIS         CID ENABLEMENT(OS2DF2)
72370,511  ED LILLY
71075,3153 MARK LUTZE          PDK SUPPORT
72370,145  DIANA MACK
71075,3324 JOHN MCCLELLAN      ESDTOOLS FOR DAP
71075,1754 SHEILA MCDONALD-RICH WIN31/32 bit GRE Beta
71075,1032 BERT MICHAUD
71075,3454 DARREN MICLETTE     WINOS2
72370,136  STEVE M MILLER      CUA / USER INTERFACE 
71075,3564 JOHN MOTE           PL/1 COMPILER DEVELOPMENT
72410,624  ERIC NELSON         TOOLKIT, TECHNICAL LIBRARY, AND TECHNICAL DOCUMENTS 
72370,140  BINH NGUYEN         CUA / USER INTERFACE
71075,136  ART OLBERT
72400,2754 JUDITH W OSBORNE    DAP
71075,2106 MICHAEL PERKS       OS/2 PRINT, NETWORK AND COMMS PRINT
71075,2553 JOE POLIZZI         OS/2 SHAREWARE, PDK,TOOLS GROUP(DAP) 
71075,3152 MIDGE PORTNEY       OS2DF2 CD ROM PDK
71075,3160 GUPTA RAJIV         WINOS2 SUPPORT
71075,137  CLIFF REEVES
71075,524  KAMRAM REJAEE       OS2DF1-SYSOP THUNKING AND DEVICE DRIVERS
71072,1540 SCOTT RILEY
71072,241  THOMAS ROGERS
71075,140  JERRY RONGA
72410,337  STEVEN ROSBURY
72370,560  FELIX P RUO
71075,206  MATHEW F RUTKOWSKI  Printers
71075,3321 SCOTT SCHWEITZER
71075,3323 DAMIEN SCOTT        DAP PDK CD ROM (OS2DF2)
71075,2762 ROB SEMONIS         DMK, AND TOOLKIT
72370,151  DAVID SLAUSON
72370,137  ROD SMITH           WORKPLACE SHELL, APPLICATION DEVELOPMENT TOOLS, AND CUA - END USER INTERFACE
72360,3475 CLIFFORD J SPINAC
71075,1111 LARRY SWOFFORD      OS2DEV AND IBMOS2 FORUMS
71075,2552 JAMES TAYLOR
71075,3566 BOB THIMSEN         PL/1 PACKAGE/2
71072,562  LAURIE TURNER       NTS/2 SUPPORT
72370,150  JOHN A WALICKI      
71075,3563 CASEY WARD
72370,147  ALAN WARREN         PmDRAW, PM and GPI programming
71075,1117 JOHN D WEBB         OS2DF1-PM API'S,OBJECT TECH, DEBUG
72370,134  ANDREA R WESTERINEN
72400,2740 STEVE WOODWARD      GENERAL OS/2(VIDEO DRIVERS +WPS)
72360,3615 MIKE WORRALL        WIN-OS/2, WINDOWS APPLICATIONS UNDER OS/2
72400,2734 STEVE YU

Ken Bass (kbass@gmuvax2.gmu.edu)              |   Telecommunications  
George Mason University                       |   Techniques Corp, 
Student, Department of Electrical Engineering |   Software Engineer 

------------------------------

Date: Thu Dec 24 10:32:52 PST 1992
From: bill@Celestial.COM (Bill Campbell)
Subject: Re: Why is ESC special, and, how can I catch one? (V92 #193)

> > Why is the ESC key used as a break key in so many
> > programs?  Is it buffered?
> > Does it set a flag? Is it stored in BIOS RAM like the
> > shift, num lock, ...
> > keys?

The ESC character generally indicates the start of some special command
sequence (arrow keys, function keys, print codes...).  This eliminates
the need to put non-printing characters in a stream of characters going
over a communications line that could be misinterpreted/intercepted by
intervening hardware/software.

Generally speaking and ESC character is the beginning of a character
sequence and had no meaning by itself.  The buffering is necessary to
allow time for the rest of an escape sequence to come through.  If
nothing happens after a timeout period, then it's assumed that the
object is to use the ESC alone.  This timeout can cause problems when
using a network since there can be considerable delays between
characters.  The vi editor has an option ':set notimeout' to get around
this problem.

>It's a normal key like all the others, returning ASCII 27. The reason
>we use it to get out of a program is its name ESCAPE, as in escape out
>of the program, window, section whatever. ;-)  I presume the key was
>originally put there for something like this.

This is a good example of corruption by DOS programmers who aren't
familiar with the larger world of computers and data communications.
Another example is the ``WordStar Diamond'' for cursor control where
ctrl-s is used (x-off).

Bill
-- 
INTERNET:  bill@Celestial.COM   Bill Campbell; Celestial Software
UUCP:   ...!thebes!camco!bill   6641 East Mercer Way
             uunet!camco!bill   Mercer Island, WA 98040; (206) 947-5591
SPEED COSTS MONEY -- HOW FAST DO YOU WANT TO GO?

------------------------------

End of Info-IBMPC Digest V92 #210
*********************************
-------