am Sonntag, 23. Mai 2021 um 15:47 schrieben Sie:

> hum... looking back at the problem of calling int 13h with ax=0 and
> dl=80 give an exception ... on lidt instruction I think...



> Jemmex only do mov byte cs:[1d],2 before calling original BIOS interrupt.



> I begin to expect it to:

> save idtr and gdtr

> switch to real mode (from protected mode -not VM86 mode- it should be running 
> at that time)

nope. EMM386 runs the machine in VM86 mode. all the time.

for 2 (good) reasons:

a) switching the machine to real mode was expensive in 386 time.

b) you would loose UMB memory at interrupt/BIOS service time which was the most 
important
   reason to use it in the first place. and you can't switch UMB's off
   suddenly as other TSR's (think network stack) will want to execute
   as triggered by hardware interrupts, even if a disk I/O is served
   currently.

> [    0.000000] BIOS-e820: [mem 0x0000000000058000-0x0000000000058fff] reserved
if this is real (that's a BIG if), then this machine is not DOS
compatible. this machine would not be able to load any *real mode*
program larger then ~300 KB. enough to run EDLIN, but not much else.

actually original DOS (2.something) would not search for a memory map
through BIOS-e820, it would simply ask the BIOS a simple question:

    how much memory is available?

and the answer is the amount of contiguos memory (in KB) from 0 to the
top, and usually 640 or 639.

and - to my knowledge - this is still the way the freedos kernel
allocates memory. all this fancy BIOS-E820 stuff is left to HIMEM,
EMM386 and friends.


> That way the BIOS could do privileged instructions like lidt it it want.
no. way.

Tom



_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to