N/A
git-svn-id: https://spexeah.com:8443/svn/Asuro@18 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
parent
e33d8ad9eb
commit
eebe77ad9b
BIN
bin/kernel.bin
BIN
bin/kernel.bin
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/console.o
BIN
lib/console.o
Binary file not shown.
BIN
lib/console.ppu
BIN
lib/console.ppu
Binary file not shown.
BIN
lib/kernel.o
BIN
lib/kernel.o
Binary file not shown.
BIN
lib/kernel.ppu
BIN
lib/kernel.ppu
Binary file not shown.
BIN
lib/keyboard.ppu
BIN
lib/keyboard.ppu
Binary file not shown.
Binary file not shown.
BIN
lib/libpkernel.a
BIN
lib/libpkernel.a
Binary file not shown.
Binary file not shown.
BIN
lib/libpsystem.a
BIN
lib/libpsystem.a
Binary file not shown.
BIN
lib/multiboot.o
BIN
lib/multiboot.o
Binary file not shown.
Binary file not shown.
BIN
lib/system.o
BIN
lib/system.o
Binary file not shown.
BIN
lib/system.ppu
BIN
lib/system.ppu
Binary file not shown.
BIN
lib/util.ppu
BIN
lib/util.ppu
Binary file not shown.
21
src/gdt.pas
21
src/gdt.pas
@ -13,10 +13,11 @@ type
|
|||||||
limit_n_flags : Byte;
|
limit_n_flags : Byte;
|
||||||
base_high : Byte;
|
base_high : Byte;
|
||||||
end;
|
end;
|
||||||
|
PSegmentDescriptor = ^TSegmentDescriptor;
|
||||||
|
|
||||||
var
|
var
|
||||||
GDTarr : array[0..3] of TSegementDescriptor;
|
GDTarr : array of TSegementDescriptor;
|
||||||
GDTptr : ^TSegementDescriptor;
|
GDTptr : PSegmentDescriptor;
|
||||||
GDT_length : integer = 0;
|
GDT_length : integer = 0;
|
||||||
|
|
||||||
procedure init();
|
procedure init();
|
||||||
@ -50,14 +51,18 @@ var
|
|||||||
descriptor_ptr : ^Byte = @descriptor[0];
|
descriptor_ptr : ^Byte = @descriptor[0];
|
||||||
s_descriptor : TSegementDescriptor;
|
s_descriptor : TSegementDescriptor;
|
||||||
s_descriptor_ptr : ^TSegementDescriptor = @s_descriptor;
|
s_descriptor_ptr : ^TSegementDescriptor = @s_descriptor;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if limit <= 65536 then
|
if limit <= 65536 then begin
|
||||||
descriptor[6] := $40
|
descriptor[6] := $40
|
||||||
else
|
end else begin
|
||||||
if (limit and $FFF) <> $FFF then
|
if (limit and $FFF) <> $FFF then begin
|
||||||
limit := (limit >> 12) -1
|
limit := (limit SHR 12) -1
|
||||||
else
|
end else begin
|
||||||
limit := limit >> 12;
|
limit := limit SHR 12;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
descriptor[6] := $C0;
|
descriptor[6] := $C0;
|
||||||
|
|
||||||
descriptor[0] := limit and $FF;
|
descriptor[0] := limit and $FF;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user