I was looking in BIOS interrupts info from:
http://www2.ift.ulaval.ca/~marchand/ift17583/dosints.pdf
When I saw:
INT 15 - AH = 89h SYSTEM - SWITCH TO VIRTUAL MODE (AT,XT286,PS50+)
BL = interrupt number of IRQ0 (IRQ1-7 use next 7 interrupts)
BH = interrupt number of IRQ8 (IRQ9-F use next 7 interrupts)
DS:SI -> GDT for protected mode offset 0h null descriptor 8h GDT descriptor
10h IDT descriptor 18h DS 20h ES 28h SS 30h CS 38h uninitialized, used to
build descriptor for BIOS CS
CX = offset into protected-mode CS to jump to
Return: CF set on error AH = 0FFh error enabling address line 20
And that answered a bit of question to me, how can DOS programs and BIOS
cooperate with a common GDT table?
I am not sure at all I have the "right" Jemm(Ex) source code here, but looking
at:
https://github.com/Baron-von-Riedesel/Jemm/blob/master/src/JEMM16.ASM line 988
and more,
it seems Jemm does not use that instruction to enter protected mode, but change
CR0 bit 1 itself.
Maybe I could try to hack something about it... not sure I am good enough to do
it.
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel