C--: Difference between revisions

Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content deleted Content added
Line 237: Line 237:
$ INT 0x16
$ INT 0x16
}
}

====Enable Protected Mode====
...
?code32 false
...
DSWORD[#gdtr] = #gdt_end - #gdt0;
DSWORD[#gdtr] = DSWORD[#gdtr] - 1;
DSDWORD[#gdtr + 2] = START + #gdt0;

DSWORD[#idtr] = #idt_end - #idt;
DSWORD[#idtr] = DSWORD[#idtr] - 1;
DSDWORD[#idtr + 2] = START + #idt;

BX = #gdtr;
$ db 0x3e, 0x0f, 0x01, 0x17

BX = #idtr;
$ db 0x3e, 0x0f, 0x01, 0x1f

$ MOV EAX, CR0
$ OR AL, 1
$ MOV CR0, EAX

jump_pm32:
$ db 0xEA
$ dw 0
$ dw 0x10
}
?code32 TRUE
void _1()
{
do_pm32:

$ MOV AX, 0x18
$ MOV DS, AX
$ MOV SS, AX

$ MOV AX, 0x08
$ MOV ES, AX

@setup_pic(0x20, 0x28);
...