git-svn-id: https://spexeah.com:8443/svn/Asuro@472 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c

This commit is contained in:
kieron committed 2018-04-10 15:53:08 +00:00
1 parent c56319923a
commit c477deefb2
6 files changed
+3 -13

No files matched your search

+67
View File
@@ -0,0 +1,67 @@
{ ************************************************
* Asuro
* Unit: bios_data_area
* Description: Data Structures controlled by
* the BIOS.
************************************************
* Author: K Morris
* Contributors:
************************************************ }
unit bios_data_area;
interface
type
TBDA = bitpacked record
COM1 : uint16;
COM2 : uint16;
COM3 : uint16;
COM4 : uint16;
LPT1 : uint16;
LPT2 : uint16;
LPT3 : uint16;
EBDA : uint16;
Hardware_Flags : uint16;
Keyboard_Flags : uint16;
Keyboard_Buffer : ARRAY[0..31] OF uint8;
Display_Mode : uint8;
BaseIO : uint16;
Ticks : uint16;
HDD_Count : uint8;
Keyboard_Start : uint16;
Keyboard_End : uint16;
Keyboard_State : uint8;
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);
procedure tick_update(data : void);
implementation
uses
console, vmemorymanager;
procedure tick_update(data : void);
begin
BDA^.Ticks:= BDA^.Ticks + 1;
end;
end.
File diff suppressed because it is too large. Load diff
+63
View File
@@ -0,0 +1,63 @@
{ ************************************************
* Asuro
* Unit: Multiboot
* Description: Mutliboot (GRUB) Structures.
************************************************
* Author: K Morris
* Contributors:
************************************************ }
unit multiboot;
interface
const
KERNEL_STACKSIZE = $4000;
MULTIBOOT_BOOTLOADER_MAGIC = $2BADB002;
type
Pelf_section_header_table_t = ^elf_section_header_table_t;
elf_section_header_table_t = packed record
num: uint32;
size: uint32;
addr: uint32;
shndx: uint32;
end;
Pmultiboot_info_t = ^multiboot_info_t;
multiboot_info_t = packed record
flags: uint32;
mem_lower: uint32;
mem_upper: uint32;
boot_device: uint32;
cmdline: uint32;
mods_count: uint32;
mods_addr: uint32;
elf_sec: elf_section_header_table_t;
mmap_length: uint32;
mmap_addr: uint32;
end;
Pmodule_t = ^module_t;
module_t = packed record
mod_start: uint32;
mod_end: uint32;
name: uint32;
reserved: uint32;
end;
Pmemory_map_t = ^memory_map_t;
memory_map_t = packed record
size: uint32;
base_addr : uint64;
length : uint64;
mtype: uint32;
end;
var
multibootinfo : Pmultiboot_info_t = nil;
multibootmagic : uint32;
implementation
end.
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff