diff --git a/Asuro.iso b/Asuro.iso index ff917a3c..de431f90 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index d9298e84..f6fbb711 100755 Binary files a/bin/kernel.bin and b/bin/kernel.bin differ diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index d9298e84..f6fbb711 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/bios_data_area.ppu b/lib/bios_data_area.ppu index 254de330..d8e223d3 100644 Binary files a/lib/bios_data_area.ppu and b/lib/bios_data_area.ppu differ diff --git a/lib/console.ppu b/lib/console.ppu index 4a3993d5..f7eee766 100644 Binary files a/lib/console.ppu and b/lib/console.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index f28cdc35..5e94e960 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index c32291f4..49cf65ca 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 3a2531c7..3d34f6e5 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index d9107a62..5fa75e15 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/util.ppu b/lib/util.ppu index 6c27d454..5fdcbbac 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/src/bios_data_area.pas b/src/bios_data_area.pas index f8486500..89d26339 100644 --- a/src/bios_data_area.pas +++ b/src/bios_data_area.pas @@ -35,16 +35,44 @@ type end; PBDA = ^TBDA; + TMCFG = bitpacked record + Signature : Array[0..3] of Char; + Table_Length : uint32; + Revision : Byte; + Checksum : Byte; + OEM_ID : Array[0..5] of Byte; + OEM_Table_ID : uint64; + OEM_Revision : uint32; + Creator_ID : uint32; + Creator_Revision : uint32; + Reserved : uint64; + end; + PMCFG = ^TMCFG; + const BDA : PBDA = PBDA($C0000400); +var + EBDA : void; + MCFG : PMCFG; + procedure tick_update(data : void); +procedure init(); implementation +uses + console, vmemorymanager; + procedure tick_update(data : void); begin BDA^.Ticks:= BDA^.Ticks + 1; end; +procedure init(); +begin + console.writestringln('BDA: Loaded.'); + //TO-DO search for important structures like the MCFG or the EBDA. +end; + end. diff --git a/src/kernel.pas b/src/kernel.pas index de3aa2e2..10b8eb3a 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -111,6 +111,8 @@ begin tss.init(); scheduler.init(); + bios_data_area.init(); + //asm INT 13 end; STI; isr32.hook(uint32(@bios_data_area.tick_update));