[comp.sys.intel] LOADALL for 80286 & 80386

rob@conexch.UUCP (Robert Collins) (06/17/89)

+> Peter Plamondon from Intel writes:
+>I assume you only give the information in "Microprocessor Report" to
+>some companies and not others (like the ones who pay for it)?  Do you
+>suppose this creates an unfair situation?  ;->
+>---------------------------------------------------------------------
+>Peter Plamondon, Intel Corp, 5200 NE Elam Young Pkwy, Hillsboro, OR
+

Doesn't this sound like a typically arrogant, typically Intel sort of
attitude?  C'mon guys, wake up and smell the roses!  The computer
industry does talk, and the prevailing attitude is that Intel
is very unfair; nobody likes the discretionary information
practices.

+ Michael Slater from Microprocessor Report writes:
+Come now, you can't be serious?  There is a world of difference between
+making information available to anyone that will pay a modest fee, as
+compared to refusing to provide the information at all (as Intel has done).
+

I'll second that!

While attempting to gain information on the 80386 LOADALL instruction
(Opcode 0f07), my Intel rep said:  "We'd like to know who leaked the
existence of the 80286 LOADALL instruction."  After thinking about
that statement, I responded:  "It's obvious who leaked it out...Intel
leaked it out.  If Intel hadn't leaked it out, nobody would know about
it."  I think that pissed the guy off, the truth must have hurt.


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

Just so there is no confusion here, the 80286 has an undocumented instruction
called LOADALL.  It is Opcode 0F05.  Executing Opcode 0F05 on a 80386
will produce an invalid opcode exception (Exception 6).  BIOS programmers
that want to maintain 80286 compatibility must trap this instruction and
emulate it on the '386.  This isn't hard to do.  In fact Intel will
even provide you with source code (though it isn't very well written,
or efficient) on how to do this.  What they won't give you is the
description of the instruction.  The formal description is a 15 page
document that Intel gives out on a need-to-know basis.  And so far,
it seems that the number of company's that "need to know," is directly
proportional to the relationship your company has with Intel.

The 80386 has its own LOADALL.  That is Opcode 0F07.  The requirements
for the '386 LOADALL are different from that of the '286 LOADALL.  Thus
the two instruction are incompatible.

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

We have seen it posted here that Intel is threatening to remove LOADALL on
the next mask of the '386.  This is VERY easy to verify.  Simply set up a
minimal INT6 handler, and execute opcode 0F07.  If you land in your
INT6 handler, then they removed it.  Otherwise, they didn't.

Rumor has it that Intel isn't going to remove LOADALL from the
'386, they just want people to quit calling.  So by merely threatening
to remove it, people will give up on wanting the information.  This same
source of information has Opcode 0F07 in the '486 mask!  This is also
very easy to verify.  Simply try the method listed above to trap the
instruction.

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

I would urge everybody that wants the information to call your Intel rep
and ask for it.  This is what you can expect:
1)  He will claim to know nothing about either instruction.  At this point,
    tell him you know what the Opcodes are (0F05 for '286, 0F07 for '386).
2)  He will say "Oh, those instructions," and promise to get back to you.
3)  Don't expect him to get back to you.  He won't.  Call numerous times.
4)  He finally gets the information, and is going to send it to you.
    (He actually had it all along, but was hoping you wouldn't be so
     persistent.)
5)  He will send you the document on how to emulate '286 LOADALL on the
    '386.
6)  You call him back and tell him he sent the wrong information, you wanted
    the official Intel 15 page document.
7)  He will claim the document doesn't exist.
8)  He will tell you, what he sent you, is all the information he has.
9)  You notice on the source code he sent you, has the name of
    the engineer that wrote it.
10) You call that engineer and find he is too busy to talk to you, isn't
    at his desk, or can't be found.
11) You plead to talk to anybody in engineering.
12) The person you talk to gets rather disgusted with corporate politics,
    and immediately sends the 15 page document saying "I don't know what
    the big deal is anyways."


That's what it takes to get the information.  It took me over 4 months.
In other words, the rep stroked me over 4 months.  Was it a stroke?
Look at the outline above, and come to your own conclusion.  The
irony lies in the ease of getting the document from the engineering
department.

-- 
"Worship the Lord your God, and serve him only."  Mat. 4:10
Robert Collins                 UUCP:  ucbvax!ucivax!icnvax!conexch!rob
HOMENET:  (805) 523-3205       UUCP:  uunet!ccicpg!turnkey!conexch!rob
WORKNET:  (805) 378-7901

mike@relgyro.stanford.edu (Mike Macgirvin) (06/20/89)

In article <31249@conexch.UUCP> rob@conexch.UUCP (Robert Collins) writes:
>Doesn't this sound like a typically arrogant, typically Intel sort of
>attitude?  C'mon guys, wake up and smell the roses!  The computer
>industry does talk, and the prevailing attitude is that Intel
>is very unfair; nobody likes the discretionary information
>practices.
	Intel advertisement seen recently:
		INTEL. We listen to the customer.

	(THE Customer == IBM).

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+            These views are my own, and may not be correct.                +
+  Mike Macgirvin                                                           +
+  - Systems Administrator  Stanford Relativity Gyroscope Experiment        +
+  - Internet:              mike@relgyro.stanford.edu (36.64.0.50)          +
+  - Bitnet:                mike%relgyro.stanford.edu@forsythe.stanford     +
+  - Uucp:                  uunet!relgyro.stanford.edu!mike                 +
+  "There must be some kind of way out of here." - Dylan (w/help from Jimi) +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

davidsen@sungod.crd.ge.com (William Davidsen) (06/20/89)

I never cease to be amazed that some people find something which they
consider a feature in a CPU and then demand that it be documented. Back
in the CP/M days we had two sets of Z80 "secret" instructions and the
8085 "secret" instructions. This resulted in code which required an
Intel, Zilog, or Mostek CPU, and in the Mostek case, the "old" version,
since the instruction went away along with some other bugs in a later
stepping.

If Intel doesn't document it they have no need to keep it around in the
next stepping of the chip, or the 486, 586, etc. While it's fun to use
undocumented instructions, the gain in performance is seldom worth the
portability problems. 

If you write for your machine and only your machine, then use what you
want, but I can't see writing any code I would ever share which uses an
undocumented feature. What happens is that it fails on someone's
machine and they blame the software. If you write for money you don't
need unhappy customers, and if you write for fun you don't need to see
people posting flames about your work.

Maybe someone can explain how the LOADALL instruction will change my
life, other than letting me reformat my disk if it doesn't work as
(un)documented. I checked to be sure that my 386 wasn't faking it, and I
don't have a list of programs which go out with trap6.

Sounds like a solution in search of a problem to me.
	bill davidsen		(davidsen@crdos1.crd.GE.COM)
  {uunet | philabs}!crdgw1!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me

peter@guardian.UUCP (peter) (06/23/89)

All right, all right!!  I suppose no one noticed the portion of my original
posting which noted I had _no_ connection with the silicon people (you
remember, the guys who designed the chips with/without the alleged
instruction?).  I'm a _software_ person.  Believe it or not, I wasn't aware
that Intel may/may not have tried to limit the availability of info on the
alleged instruction.  So now I've been educated.  I can trust all of you to
give me the straight scoop, right?  You wouldn't withhold information, would
you?  ;-)

Seriously, assuming info on the alleged instruction wasn't freely available,
what's the big deal?  From what I've heard, the instruction was intended for
the testing of the component and was never intended for general use.  So
someone figured out it exists, or some large customer wanted to do their own
in-coming testing and the info leaked out.  How does that put an obligation
on Intel to provide that info to anyone who asks?  (If an unnamed computer
company were to buy a substantial chunk of Intel and then ask for "inside
info", you've got to expect they'd get something for their money -- do the
flamers in the audience own Intel stock?).

(Now I'm really asking for it...) There's clearly a difference between not
documenting the MOV instruction, not documenting the alleged LOADALL, and
giving design details to the Japanese.  Where would _you_ draw the line?
-------------------------------------------------------------------------------
Peter Plamondon, Intel Corp, 5200 NE Elam Young Pkwy, Hillsboro, OR  97124-6497
Internet: peter@langlab1.hf.intel.com                           +1 503-696-5219
UUNET   : uunet!littlei!langlab1!peter     "I speak for myself, as best I can."
UUCP    : tektronix!psu-cs!foobar!langlab1.hf.intel.com!peter    
-------------------------------------------------------------------------------

mslater@cup.portal.com (Michael Z Slater) (06/24/89)

>Seriously, assuming info on the alleged instruction wasn't freely available,
>what's the big deal?  From what I've heard, the instruction was intended for
>the testing of the component and was never intended for general use.  So
>someone figured out it exists, or some large customer wanted to do their own
>in-coming testing and the info leaked out.  How does that put an obligation
>on Intel to provide that info to anyone who asks?

The instruction was designed for testing, but because of the limitations of
the 286 architecture, it turned out to be genuinely useful for operating
system code and certain utilities, such as ram disks and ems emulators.
Microsoft uses it in their RAMdrive program and in OS/2, and I've been told
that it is used in some ROM bios code and in several ems emulators.  Thus,
if I am a vendor of RAM emulators and haven't been given this info, then I
can't compete with Microsoft on a fair basis.

I understand Intel's concern that they don't want to make something a part
of the architecture that they don't intend to support in future products.
The solution to this is simple; the documentation just states that this
is an implementation-specific function, is not part of the architecture, and
should be used with great care and only after testing for processor type.

Michael Slater, Microprocessor Report

philba@microsoft.UUCP (Phil Barrett) (06/30/89)

In article <19820@cup.portal.com> mslater@cup.portal.com (Michael Z Slater) writes:
>>Seriously, assuming info on the alleged instruction wasn't freely available,
>>what's the big deal?  From what I've heard, the instruction was intended for
>>the testing of the component and was never intended for general use.  So
>>someone figured out it exists, or some large customer wanted to do their own
>>in-coming testing and the info leaked out.  How does that put an obligation
>>on Intel to provide that info to anyone who asks?
>
> ...
>
>I understand Intel's concern that they don't want to make something a part
>of the architecture that they don't intend to support in future products.
>The solution to this is simple; the documentation just states that this
>is an implementation-specific function, is not part of the architecture, and
>should be used with great care and only after testing for processor type.
>
>Michael Slater, Microprocessor Report


This suggestion has problems in that whether you say `implementation-specific'
or not and add copious disclaimers and warnings,  people will use the feature
and then complain bitterly (repleat with character assasinations) when it
gets removed.  The experience with MS-DOS is instructive here: there are 
undocumented `features' that are impossible to remove because somebody groveled
through the code, figured out what was going on  and took advantage of it
in a popular piece of SW.  If it gets changed they scream loud and long in
public.  I've heard such statements like `you have no right to do this' and
`you are trying to put me out of business' and `typical arrogant SOBs'.  How
does one improve a product with these kind of constraints?.  And, yes, loadall
eats microcode store big time. Intel is doing exactly the right thing in
trying to prevent widespread use of loadall.


Phil Barrett
of course, the above opinions are mine and not those of Microsoft.

peter@ficc.uu.net (Peter da Silva) (08/08/89)

In article <6203@microsoft.UUCP>, philba@microsoft.UUCP (Phil Barrett) writes:
> `you are trying to put me out of business' and `typical arrogant SOBs'.  How
> does one improve a product with these kind of constraints?.

You stand your ground. Microsoft can't do that because MS-DOS was so
inadequate that there was no alternative to breaking the rules, but
Commodore regularly breaks badly-behaved software with new releases of
the Amiga O/S with only the mildest of whimpers. And Microsoft has less
need to kowtow to developers than Commodore, seeing as it has so many
more of them.
-- 
Peter da Silva, Xenix Support, Ferranti International Controls Corporation.

Business: uunet.uu.net!ficc!peter, peter@ficc.uu.net, +1 713 274 5180.
Personal: ...!texbell!sugar!peter, peter@sugar.hackercorp.com.