Asuro/src/include/bios_data_area.pas

81 lines
1.9 KiB
ObjectPascal

{ ************************************************
* 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;
TCounters = record
c16 : uint16;
c32 : uint32;
c64 : uint64;
end;
const
BDA : PBDA = PBDA($C0000400);
var
Counters : TCounters;
procedure tick_update(data : void);
implementation
uses
console, vmemorymanager;
procedure tick_update(data : void);
begin
//BDA^.Ticks:= BDA^.Ticks + 1;
inc(BDA^.Ticks);
inc(Counters.c16);
inc(Counters.c32);
inc(Counters.c64);
end;
end.