also der fehler tritt direct beim einschalten vom Paging ein.
und zwar gibt dein highmem_alloc() keinesfalls werte über 16MB aus, sonder werte wie 0x18000, das liegt möglicher weise daran das BootInfo->mem_{high,low} werte in KB angeben.
Vermutlich sollte es bei dir also so aussehen:
highmem_init(0x1000000, BootInformation->mem_high+BootInformation->mem_low)*1024-0x1000000);
[edit]
deine memset funktion hat nen fehler:
du benutzt edi sicherst aber das esi register
[/edit]
[edit]
deine GetCR2 funktio ist ne kopie von GetCR0
und der beim aufruf in der isrs.c solltest du noch ( ) dranhängen, du wilst ja nicht die adresse der funktion ausgeben, oder
das behebt zwar noch nicht alle fehler, aber es sollte schon mal helfen die restlichen zu finden
[/edit]