81 lines
1.9 KiB
ObjectPascal
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.
|