[comp.sys.ibm.pc.programmer] loadall

ctroup@ariel.unm.edu (Charles Troup) (05/10/90)

Joel Armengaud writes:

>Unfortunately, the problem with loadall is that an interrupt resets the
>"invalid" cache descriptors: so you have 2 alternatives: keep
>interrupts disabled (not recommended for a long period), or reissue a
>LOADALL whenever an interrupt occurs.

	What Mr. Armengaud writes is quite correct.  It is maddeningly
frustrating that the highest address bits in the Descriptor Caches are
so easily lost.  And a program which is going to run in real mode above
1 megabyte will have to keep the interrupts turned off, because ANY
change to the segment registers will cause the 4 highest address bits
(of the 24-bit address in the Descriptor Cache) to be cleared.  If this
weren't so, we would have a second "over-DOS" operating system for
286's yesterday.

	This does not mean that Loadall is useless, however, it just
means that the 80286 would be much more powerful, and easier to use, if
that weren't so.  But subroutines which do not need interrupts, but do
need extra space, such as image-transformation subroutines, can run up
there, in real mode, quite well.  For programs which are going to run
in extended memory for any length of time, and need interrupts for one
reason or another, flipping into protected mode is the way to go (and
Loadall will warp the processor into being completely set up and
running in protected mode, anywhere in the 16-Megabyte address space
of the 286, in one instruction).

	Loadall is an addition to your tool-box, not a cure-all.

--Terry@scopes.unm.edu    76416.553@compuserve.com