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