Video RAM at 1B8000 ???
Posted: Fri Jul 15, 2005 11:00 pm
Hi All...
I have written a basic kernel that works in PMode. I have a GDT with 2 segment descriptors for Code and Data segments, both starting at physical address 0x00000000 and ending at 0xFFFFFFFF.
The kernel works fine on Bochs, but on a real machine, I have a very strange problem.
Video RAM is normally mapped at address 0xA0000, and in text mode, we use the address space starting at 0xB8000.
On a real machine, Video RAM is mapped at BOTH 0xA0000 AND 0x1A0000!! Which means that when I write 0x41 at address 0xB8000 OR 0x1B8000, the character 'A' appears on the screen. However, writing at address 0x2B8000 does nothing (Thank God).
Is this normal? Can anyone please tell me what is going on?
Ayman Madkour
I have written a basic kernel that works in PMode. I have a GDT with 2 segment descriptors for Code and Data segments, both starting at physical address 0x00000000 and ending at 0xFFFFFFFF.
The kernel works fine on Bochs, but on a real machine, I have a very strange problem.
Video RAM is normally mapped at address 0xA0000, and in text mode, we use the address space starting at 0xB8000.
On a real machine, Video RAM is mapped at BOTH 0xA0000 AND 0x1A0000!! Which means that when I write 0x41 at address 0xB8000 OR 0x1B8000, the character 'A' appears on the screen. However, writing at address 0x2B8000 does nothing (Thank God).
Is this normal? Can anyone please tell me what is going on?
Ayman Madkour