From: jimf@centerline.com (Jim Frost)
Subject: Re: The need for an assembler (was: Favorite CPU)
Organization: CenterLine Software, Inc.
Date: Wed, 2 Sep 1992 14:16:31 GMT

lasner@watsun.cc.columbia.edu (Charles Lasner) writes:
>In article <jimf.715288047@centerline.com> jimf@centerline.com (Jim Frost) writes:
>>lasner@watsun.cc.columbia.edu (Charles Lasner) writes:
>>>Any architecture worth investing effort in generally stays around for awhile;
>>>I think a consensus was reached for a number around 15 years.  This tends to
>>>squelch the arguments about "porting" difficulties in assembler.
>>
>>Well, I can think of a lot of arguments against that, but let's tackle
>>the 15 year lifespan.
>>
>>Has the PC architecture really remained static for the eleven years of
>>its existence?  Meaning, could a program I wrote eleven years ago run
>>optimally on today's hardware?
>>
>>No.  Why not?
>>
>>The base CPU has undergone two major architectural changes.  While a
>>backwards-compatibility mode exists, it is inefficient to use compared
>>to software written to the particular CPU architecture.  For system
>>software the new CPU's provide functionality which cannot even be
>>emulated on the older CPU's.

>This is a crock.  Industry acceptance of MS-DOS since the inception of
>V 2.00 means that there is no such problem.

No, it means that they didn't want to abandon their current
investment.  They put up with "RAM CRAM" and tons of programs that
operated incompatibly for years because of that decision.  Many of
them didn't know that things could be better.

>The so-called new functionality is largely bad fluff that
>most users are ignoring.

Sure.  Most users didn't want more than 640k total for their
spreadsheet program and its data.  Remember the LIM standard that
worked around that?  It wouldn't have been necessary if it weren't for
bad architectural design.

And what about VM?  Most users don't want that either, they'd rather
put up with out-of-memory errors from their application when they do
something that requires a couple more bytes of memory for their
application while they have this memory-resident application sitting
idle.  Sure they do.  And VM wasn't possible without additional
hardware before the 80386.

And most users don't need floating point arithmetic.  That's why
Weitek sold tons of FPU chips, right?

And most users never count higher than 65536 so they don't want fast
32-bit arithmetic.

>OS/2 has been called a solution seeking a problem.

OS/2 would have fared better if it had worked when it was introduced.
Windows has been doing pretty well, providing most of what OS/2 had to
offer.

But what about the other DOS extenders?  You yourself use DR-DOS which
has a number of features not found in MS-DOS.  Many users buy Desqview
to get multiple applications running at once, or VM386, or other
similar products.  I guess they were happy with what they had, right?
That's why they bought all those copies of Windows.

>>There have been four major improvements in the video subsystem (not
>>including the many high-end systems).  Most have been backward
>>compatible to some degree, but to fully utilize the system you needed
>>to make major changes to the way you utilize the video hardware at
>>each new introduction.

>Wrong, there is only mono and color text.  They differ only in the base
>address for the buffer, and are totally compatible.

Sure they do.  What about the VGA text modes that have more than 25
lines?  Oops....

>Graphics programs have
>to be designed for an express screen size.

No they don't.  Ever see a Mac application?  In fact, most graphics
programs designed today are designed to be as independent of the
actual graphics hardware as possible because the hardware changes so
damned fast.

>All newer interfaces support all
>older modes, and generally do them more quickly;

No they don't.  CGA didn't support MGA graphics, for instance.  And
what about the other "standard" boards like the 8514/A?  Or
nonstandard boards such as the Matrox or the growing population of
TIGAs?

If you're counting on permanent backwards compatibility you're already
in trouble.

>>Fixed disk subsystems are now requisite although they didn't even
>>exist at the introduction of the machine.  Several major variations in
>>fixed disk adapters exist and lots of minor variations for disk
>>architecture.

>True, and pure smokescreen.  That's why we have BIOS calls.

Hahahahaha.  The BIOS is deficient in *every* I/O operation.  It sits
in a loop waiting for disk when it could be doing other things.  Its
screen output speed is so bad that virtually nobody in the business
relies upon it.  Its serial port support is so deficient it's unusable
for anything but setting the communications parameters.

Ok, I admit that the disk I/O subsystem works well enough that most
people use it, but it's not what I'd call good at doing disk I/O.

>>In the next year we'll have Windows NT which will be incompatible to
>>some degree with Windows 3.X, but which will provide many capabilities
>>that most PC users have never seen.  Applications will need to be
>>changed in major ways to take advantage of these new capabilities.
>>Applications which do not will be underutilizing the available
>>resources.

>NT is not windows, rather it's a shell on another operating system that
>is fundamentally incompatible with both DOS and OS/2.  Its absurd disk
>and memory requirements will likely make it an even less attractive
>system OS/2.  I suspect that all it will do is sell more copies of
>DR-DOS and perhaps IBM's OS/2 version 2 (which runs MS-DOS programs fine)
>when people find out how gaudy and slow it is.

Uh huh.  I heard the same stuff right around the time the PC was
introduced.

What's going to happen is that there will be applications available on
NT machines that were impractical or impossible on previously.  At
that point you'll see a lot of people cut over even though it costs
them a lot to do so.  Remember Lotus 1-2-3?

>>So, do you consider today's 80486 EISA bus machine with a Super VGA
>>adapter, SCSI disks, and a mouse, running Windows NT, to be the same
>>architecture as the original PC?  Or have applications needed to
>>undergo changes to run well (or at all!) on the newer machines and
>>newer operating systems?

>In summary, the answer is yes, the same exact environment, surrounded
>by a lot of optional shit that can be 100% ignored.

Well, you're even more deluded than I thought you were.

>>It might have seemed like it's all the same architecture to you, but
>>in reality you've been adjusting to a changing architecture without
>>really thinking about it.  Just imagine what would have happened if
>>they changed the CPU on you so that you no longer could run 8086 code.
>>Part of the goal of Windows NT is to dissociate from the 80x86 CPU to
>>take advantage of newer, faster CPU designs, so it's happening as we
>>speak.

>NT is a system written in C with a graphics shell.  It is not geared 
>towards any particular hardware, and has been demo'd on the DEC Alpha
>chip.  Thus there is no relevance to your statement.

There is relevance.  I said from the outset that the PC is radically
different today than it was 15 years ago, and that programmers have
needed to change their programs to keep up with the changing hardware
and system software.  Now we see a trend towards hardware architecture
independence in the form of NT, which will make running 8086
applications a bit of a dog on alien architectures.

Happy hacking,

jim frost
jimf@centerline.com
Xref: sparky alt.folklore.computers:13510 comp.unix.misc:3474