Standardized to standard types in types.pas

git-svn-id: https://spexeah.com:8443/svn/Asuro@31 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
kieron committed 2017-05-16 22:25:41 +00:00
1 parent 7da445635c
commit 7a24ea11ba
17 files changed
+185 -160

No files matched your search

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+18 -18
View File
@@ -4,24 +4,24 @@ interface
type type
TBDA = bitpacked record TBDA = bitpacked record
COM1 : WORD; COM1 : uint16;
COM2 : WORD; COM2 : uint16;
COM3 : WORD; COM3 : uint16;
COM4 : WORD; COM4 : uint16;
LPT1 : WORD; LPT1 : uint16;
LPT2 : WORD; LPT2 : uint16;
LPT3 : WORD; LPT3 : uint16;
EBDA : WORD; EBDA : uint16;
Hardware_Flags : WORD; Hardware_Flags : uint16;
Keyboard_Flags : WORD; Keyboard_Flags : uint16;
Keyboard_Buffer : ARRAY[0..31] OF BYTE; Keyboard_Buffer : ARRAY[0..31] OF uint8;
Display_Mode : BYTE; Display_Mode : uint8;
BaseIO : WORD; BaseIO : uint16;
Ticks : WORD; Ticks : uint16;
HDD_Count : BYTE; HDD_Count : uint8;
Keyboard_Start : WORD; Keyboard_Start : uint16;
Keyboard_End : WORD; Keyboard_End : uint16;
Keyboard_State : Byte; Keyboard_State : uint8;
end; end;
PBDA = ^TBDA; PBDA = ^TBDA;
+67 -67
View File
File diff suppressed because it is too large. Load diff
+13 -15
View File
@@ -7,18 +7,18 @@ uses
type type
TGDT_Entry = bitpacked record TGDT_Entry = bitpacked record
limit_low : int16; limit_low : uint16;
base_low : int16; base_low : uint16;
base_middle : int8; base_middle : uint8;
access : int8; access : uint8;
granularity : int8; granularity : uint8;
base_high : int8; base_high : uint8;
end; end;
PGDT_Entry = ^TGDT_Entry; PGDT_Entry = ^TGDT_Entry;
TGDT_Pointer = bitpacked record TGDT_Pointer = bitpacked record
limit : int16; limit : uint16;
base : int32; base : uint32;
end; end;
var var
@@ -29,7 +29,7 @@ procedure init();
implementation implementation
procedure flush_gdt(gdt_pointer : int32); assembler; nostackframe; procedure flush_gdt(gdt_pointer : uint32); assembler; nostackframe;
asm asm
MOV EAX, gdt_pointer MOV EAX, gdt_pointer
LGDT [EAX] LGDT [EAX]
@@ -41,12 +41,10 @@ asm
MOV SS, AX MOV SS, AX
db $EA // Bypass stupid inline ASM restrictions- db $EA // Bypass stupid inline ASM restrictions-
dw @@flush, $08 // by assembling the farjump instruction ourselves. dw @@flush, $08 // by assembling the farjump instruction ourselves.
// It's just data, honest gov'. @@flush: // It's just data, honest gov'.
@@flush:
RET
end; end;
procedure set_gate(Gate_Number : int32; Base : int32; Limit : int32; Access : int8; Granularity : int8); procedure set_gate(Gate_Number : uint32; Base : uint32; Limit : uint32; Access : uint8; Granularity : uint8);
begin begin
gdt_entries[Gate_Number].base_low := (Base AND $FFFF); gdt_entries[Gate_Number].base_low := (Base AND $FFFF);
gdt_entries[Gate_Number].base_middle := (Base SHR 16) AND $FF; gdt_entries[Gate_Number].base_middle := (Base SHR 16) AND $FF;
@@ -59,13 +57,13 @@ end;
procedure init(); procedure init();
begin begin
gdt_pointer.limit := (sizeof(TGDT_Entry) * 5) - 1; gdt_pointer.limit := (sizeof(TGDT_Entry) * 5) - 1;
gdt_pointer.base := int32(@gdt_entries); gdt_pointer.base := uint32(@gdt_entries);
set_gate($00, $00, $00, $00, $00); set_gate($00, $00, $00, $00, $00);
set_gate($01, $00, $FFFFFFFF, $9A, $CF); set_gate($01, $00, $FFFFFFFF, $9A, $CF);
set_gate($02, $00, $FFFFFFFF, $92, $CF); set_gate($02, $00, $FFFFFFFF, $92, $CF);
set_gate($03, $00, $FFFFFFFF, $FA, $CF); set_gate($03, $00, $FFFFFFFF, $FA, $CF);
set_gate($04, $00, $FFFFFFFF, $F2, $CF); set_gate($04, $00, $FFFFFFFF, $F2, $CF);
flush_gdt(int32(@gdt_pointer)) flush_gdt(uint32(@gdt_pointer))
end; end;
end. end.
+16
View File
@@ -0,0 +1,16 @@
unit idt;
interface
uses
system,
types;
type
TIDT_Entry = bitpacked record
end;
implementation
end.
+6 -8
View File
@@ -14,12 +14,12 @@ procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: DWORD); stdcall;
implementation implementation
procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: DWORD); stdcall; [public, alias: 'kmain']; procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; [public, alias: 'kmain'];
var var
c : byte; c : uint8;
mbi : Pmultiboot_info_t; mbi : Pmultiboot_info_t;
mbm : DWORD; mbm : uint32;
dds : DWORD; dds : uint32;
begin begin
mbi:= mbinfo; mbi:= mbinfo;
@@ -41,8 +41,6 @@ begin
console.setdefaultattribute(console.combinecolors(Red, Black)); console.setdefaultattribute(console.combinecolors(Red, Black));
if dds = $08 then console.setdefaultattribute(console.combinecolors(Green, Black)); if dds = $08 then console.setdefaultattribute(console.combinecolors(Green, Black));
console.writehexln(dds); console.writehexln(dds);
util.halt_and_catch_fire;
console.setdefaultattribute(console.combinecolors(Green, Black)); console.setdefaultattribute(console.combinecolors(Green, Black));
console.writestringln('Asuro Booted Correctly!'); console.writestringln('Asuro Booted Correctly!');
console.writestringln(''); console.writestringln('');
@@ -57,11 +55,11 @@ begin
console.writeint(((mbinfo^.mem_upper + 1000) div 1024) +1); console.writeint(((mbinfo^.mem_upper + 1000) div 1024) +1);
console.writestringln('MB'); console.writestringln('MB');
console.setdefaultattribute(console.combinecolors(lYellow, Black)); console.setdefaultattribute(console.combinecolors(lYellow, Black));
while true do begin {while true do begin
c:= keyboard.get_scancode; c:= keyboard.get_scancode;
console.writehexln(c); console.writehexln(c);
end; end;
util.halt_and_catch_fire; util.halt_and_catch_fire;}
end; end;
end. end.
+3 -3
View File
@@ -7,13 +7,13 @@ interface
uses uses
util; util;
function get_scancode() : byte; function get_scancode() : uint8;
implementation implementation
function get_scancode() : byte; [public, alias: 'get_scancode']; function get_scancode() : uint8; [public, alias: 'get_scancode'];
var var
c : byte; c : uint8;
begin begin
c:= 0; c:= 0;
+21 -21
View File
@@ -9,40 +9,40 @@ const
type type
Pelf_section_header_table_t = ^elf_section_header_table_t; Pelf_section_header_table_t = ^elf_section_header_table_t;
elf_section_header_table_t = packed record elf_section_header_table_t = packed record
num: DWORD; num: uint32;
size: DWORD; size: uint32;
addr: DWORD; addr: uint32;
shndx: DWORD; shndx: uint32;
end; end;
Pmultiboot_info_t = ^multiboot_info_t; Pmultiboot_info_t = ^multiboot_info_t;
multiboot_info_t = packed record multiboot_info_t = packed record
flags: DWORD; flags: uint32;
mem_lower: DWORD; mem_lower: uint32;
mem_upper: DWORD; mem_upper: uint32;
boot_device: DWORD; boot_device: uint32;
cmdline: DWORD; cmdline: uint32;
mods_count: DWORD; mods_count: uint32;
mods_addr: DWORD; mods_addr: uint32;
elf_sec: elf_section_header_table_t; elf_sec: elf_section_header_table_t;
mmap_length: DWORD; mmap_length: uint32;
mmap_addr: DWORD; mmap_addr: uint32;
end; end;
Pmodule_t = ^module_t; Pmodule_t = ^module_t;
module_t = packed record module_t = packed record
mod_start: DWORD; mod_start: uint32;
mod_end: DWORD; mod_end: uint32;
name: DWORD; name: uint32;
reserved: DWORD; reserved: uint32;
end; end;
Pmemory_map_t = ^memory_map_t; Pmemory_map_t = ^memory_map_t;
memory_map_t = packed record memory_map_t = packed record
size: DWORD; size: uint32;
base_addr : QWORD; base_addr : uint64;
length : QWORD; length : uint64;
mtype: DWORD; mtype: uint32;
end; end;
implementation implementation
+23 -10
View File
@@ -4,21 +4,34 @@ interface
type type
//Standard Types //Standard Types
Int8 = BYTE; uInt8 = BYTE;
Int16 = WORD; uInt16 = WORD;
Int32 = DWORD; uInt32 = DWORD;
Int64 = QWORD; uInt64 = QWORD;
sInt8 = shortint;
sInt16 = smallint;
sInt32 = integer;
sInt64 = longint;
Float = Single;
//Pointer Types //Pointer Types
PByte = ^Byte; PuByte = ^Byte;
PInt8 = PByte; PuInt8 = PuByte;
PInt16 = ^Int16; PuInt16 = ^uInt16;
PInt32 = ^Int32; PuInt32 = ^uInt32;
PInt64 = ^Int64; PuInt64 = ^uInt64;
Void = ^Int32; PsInt8 = ^sInt8;
PsInt16 = ^sInt16;
PsInt32 = ^sInt32;
PsInt64 = ^sInt64;
PFloat = ^Float;
PDouble = ^Double;
Void = ^uInt32;
implementation implementation
+18 -18
View File
@@ -4,35 +4,35 @@ unit util;
interface interface
function hi(b : byte) : byte; function hi(b : uint8) : uint8;
function lo(b : byte) : byte; function lo(b : uint8) : uint8;
function switchendian(b : byte) : byte; function switchendian(b : uint8) : uint8;
procedure outb(port : word; val : byte); procedure outb(port : uint16; val : uint8);
procedure outw(port : word; val : word); procedure outw(port : uint16; val : uint16);
procedure outl(port : word; val : longword); procedure outl(port : uint16; val : uint32);
procedure halt_and_catch_fire(); procedure halt_and_catch_fire();
function inb(port : word) : byte; function inb(port : uint16) : uint8;
function inw(port : word) : word; function inw(port : uint16) : uint16;
function inl(port : word) : dword; function inl(port : uint16) : uint32;
implementation implementation
function hi(b : byte) : byte; [public, alias: 'util_hi']; function hi(b : uint8) : uint8; [public, alias: 'util_hi'];
begin begin
hi:= (b AND $F0) SHR 4; hi:= (b AND $F0) SHR 4;
end; end;
function lo(b : byte) : byte; [public, alias: 'util_lo']; function lo(b : uint8) : uint8; [public, alias: 'util_lo'];
begin begin
lo:= b AND $0F; lo:= b AND $0F;
end; end;
function switchendian(b : byte) : byte; [public, alias: 'util_switchendian']; function switchendian(b : uint8) : uint8; [public, alias: 'util_switchendian'];
begin begin
switchendian:= (lo(b) SHL 4) OR hi(b); switchendian:= (lo(b) SHL 4) OR hi(b);
end; end;
procedure outl(port : word; val : longword); [public, alias: 'util_outl']; procedure outl(port : uint16; val : uint32); [public, alias: 'util_outl'];
begin begin
asm asm
PUSH EAX PUSH EAX
@@ -45,7 +45,7 @@ begin
end; end;
end; end;
procedure outw(port : word; val : word); [public, alias: 'util_outw']; procedure outw(port : uint16; val : uint16); [public, alias: 'util_outw'];
begin begin
asm asm
PUSH EAX PUSH EAX
@@ -58,7 +58,7 @@ begin
end; end;
end; end;
procedure outb(port : word; val : byte); [public, alias: 'util_outb']; procedure outb(port : uint16; val : uint8); [public, alias: 'util_outb'];
begin begin
asm asm
PUSH EAX PUSH EAX
@@ -79,7 +79,7 @@ begin
end; end;
end; end;
function inl(port : word) : dword; [public, alias: 'util_inl']; function inl(port : uint16) : uint32; [public, alias: 'util_inl'];
begin begin
asm asm
PUSH EAX PUSH EAX
@@ -92,7 +92,7 @@ begin
end; end;
end; end;
function inw(port : word) : word; [public, alias: 'util_inw']; function inw(port : uint16) : uint16; [public, alias: 'util_inw'];
begin begin
asm asm
PUSH EAX PUSH EAX
@@ -105,7 +105,7 @@ begin
end; end;
end; end;
function inb(port : word) : byte; [public, alias: 'util_inb']; function inb(port : uint16) : uint8; [public, alias: 'util_inb'];
begin begin
asm asm
PUSH EAX PUSH EAX