Page 2 of 2

Posted: Tue Nov 27, 2007 4:17 am
by JamesM
SOLVED

This code is incorrect. It was a typo on the website but is not so in the code available for download:

Code: Select all

gdt_entries[num].limit_low   = (limit & 0xFFFF); 
   gdt_entries[num].granularity = (limit >> 16) & 0xFF; 

   gdt_entries[num].granularity |= gran & 0xF0;
Should be:

Code: Select all

gdt_entries[num].limit_low   = (limit & 0xFFFF); 
   gdt_entries[num].granularity = (limit >> 16) & 0x0F; 

   gdt_entries[num].granularity |= gran & 0xF0;
It is now updated on the website.

Posted: Tue Nov 27, 2007 4:44 am
by Steve the Pirate
I'm using your floppy image - so it could be something to do either with the compiler/linker (I'm using g++ 4.1) or maybe the version of GRUB.

I'm going to try your kernel binary on my CD and vice versa.

EDIT: You solved it before I posted...