VOGONS


First post, by StickByDos

User metadata
Rank Member
Rank
Member

When I was googleing to find some information to play around LOADALL on a 386, I found this on Wikipedia:

Another interesting usage of LOADALL, signalled in the book The Design of OS/2, would have been to allow running former real mode programs in 16-bit protected mode. Marking all the descriptor caches in the GDT and LDTs "not present" would allow the operating system to trap segment register reloads as well as attempts at performing real-mode specific "segment arithmetic" and emulate the desired behavior by updating the segment descriptors (LOADALL again).

Are there some example of program/code which do this ?

The idea had to be discarded furthermore due to an errata in some early Intel 80286 processors.

What is this errata ?

Type win to loose the power of your computer !

Reply 1 of 6, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Don't think this kind of realmode emulation was ever implemented,
os2 and dos just don't use the memory area that the 286 loadall
was hardwired to (so applications could use loadall).

What is this errata ?

The bug in the article is that the singular of errata is erratum 😉
I doubt that a bug/specification flaw in the implementation of loadall
(which could have been detected) prevented the realmode emulation
technique, but its slowness.

What are you trying to do with loadall?

Reply 2 of 6, by StickByDos

User metadata
Rank Member
Rank
Member

I just wanted to dump some part of memory on my 386SX.
I have 16MB but the bios only report 15232 kB of XMS, if i add the 1st meg, 512kB are still missing. I'd like to know they are gone.
I can also do this with pmode or flat real mode.

Type win to loose the power of your computer !

Reply 4 of 6, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

take in account the memory between the 640 kb and the 1 mb.
That memory is hard to use. (usually some parts are unused and get turned in to upper memory blocks)

Water flows down the stream
How to ask questions the smart way!

Reply 5 of 6, by StickByDos

User metadata
Rank Member
Rank
Member

I count up memory:
I have installed 16MB = 16384kB
During post, BIOS tests 15872kB
later I have 640kB conventionnal and 15232kB extended

15232 + 640 = 15872

If I add 384kB, It is still missing 128kB: The BIOS

When initiallized, CPU start in flat real mode from somewhere at the end of its address space, but on 386SX, address space is 16MB long.
The last 128kB are taken by BIOS.

Type win to loose the power of your computer !

Reply 6 of 6, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Well switch to pmode and check how many bytes >1MB you can actually
toggle (before it crashes or reaches rom).

Does the cpu really start in flat real mode? Think it just sets the cs base
value to lots of binary ones so the boot code is read from a special
location (which is somewhere at the end of the address space as you said).