%include "pm.inc "
org 0100h
jmp LABEL_BEGIN
[SECTION .gdt]
LABEL_GDT: Descriptor 0, 0, 0
LABEL_DESC_CODE32: Descriptor 0, SegCode32Len-1, DA_C+DA_32
LABEL_DESC_STACK: Descriptor 0, TopOfStack-1, DA_DRWA+DA_32
LABEL_DESC_DATA: Descriptor 0, DataLen-1, DA_DRWA+DA_32
LABEL_DESC_RING3: Descriptor 0, SegRing3Len-1, DA_C+DA_32+DA_DPL3
LABEL_DESC_STACK3: Descriptor 0, TopOfStack3-1, DA_DRWA+DA_32+DA_DPL3
LABEL_DESC_VEDIO : Descriptor 0B8000h, 0ffffh , DA_DRW+DA_DPL3
GdtLen equ $-LABEL_GDT
GdtPtr dw GdtLen -1
dd 0
SelectorCode32 equ LABEL_DESC_CODE32 -LABEL_GDT
SelectorStack equ LABEL_DESC_STACK -LABEL_GDT
SelectorData equ LABEL_DESC_DATA -LABEL_GDT
SelectorRing3 equ LABEL_DESC_RING3 -LABEL_GDT+SA_RPL3
SelectorStack3 equ LABEL_DESC_STACK3 -LABEL_GDT+SA_RPL3
SelectorVedio equ LABEL_DESC_VEDIO -LABEL_GDT+SA_RPL3
[SECTION .data1]
ALIGN 32
[BITS 32]
LABEL_DATA:
PMMessage db "In Protect Model ", 0
PMMessageOffset equ PMMessage-$$
DataLen equ $-LABEL_DATA
;END OF [SECTION .data1]
[SECTION .ss1]
ALIGN 32
[BITS 32]
LABEL_STACK :
times 512 db 0