also ich halte den code für bockmist (<-- spektogeiles wort übrigens). mir stellen sich da nämlich ein paar fragen:
- warum nutzt du nicht grub als bootloader? ist einfacher und du hättest diese probleme nicht
- warum patcht du die selektoren? welchen vorteil hast du davon? (nicht unbedingt an dich gerichtet: und wer verdammt nochmal hat mit diesem scheiss angefangen? und warum machen es ihm alle nach?) das macht den code bloß zu einem frickelwerk, das fehleranfälliger nicht sein könnte z.b. patcht du die gdt, aber lädst sie nicht neu (zwischen PMODE und PMODE2)
- und was soll das sein?
db 0xea
dw PMODE
dw 0x8
warum schreibst du nicht einfach jmp word 0x08:PMODE
?
(und auch hier: wer hat mit diesem blödsinn angefangen? ich verdächtige da MASM/TASM programmierer ... tja jungs, den falschen assembler gewählt!)
- warum springst du in 2 stufen in den protected mode?
- du lädst selektoren mit dem null selektor. warum? bist sicher das das gut geht?
- noch was kosmetisches:
mov eax,2
shl eax,3
warum nicht so?
mov eax, 2 * 8