git-svn-id: https://spexeah.com:8443/svn/Asuro@655 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
parent
6ae51ac70d
commit
42d23dd8c9
BIN
bin/kernel.bin
BIN
bin/kernel.bin
Binary file not shown.
Binary file not shown.
BIN
lib/ACE.ppu
BIN
lib/ACE.ppu
Binary file not shown.
BIN
lib/BPE.ppu
BIN
lib/BPE.ppu
Binary file not shown.
BIN
lib/BTSSE.ppu
BIN
lib/BTSSE.ppu
Binary file not shown.
BIN
lib/CFE.ppu
BIN
lib/CFE.ppu
Binary file not shown.
BIN
lib/CSOE.ppu
BIN
lib/CSOE.ppu
Binary file not shown.
BIN
lib/DBGE.ppu
BIN
lib/DBGE.ppu
Binary file not shown.
BIN
lib/DBZ.ppu
BIN
lib/DBZ.ppu
Binary file not shown.
BIN
lib/DFE.ppu
BIN
lib/DFE.ppu
Binary file not shown.
BIN
lib/E1000.ppu
BIN
lib/E1000.ppu
Binary file not shown.
BIN
lib/GPF.ppu
BIN
lib/GPF.ppu
Binary file not shown.
BIN
lib/IDE.ppu
BIN
lib/IDE.ppu
Binary file not shown.
BIN
lib/IDOE.ppu
BIN
lib/IDOE.ppu
Binary file not shown.
BIN
lib/IOPE.ppu
BIN
lib/IOPE.ppu
Binary file not shown.
BIN
lib/MCE.ppu
BIN
lib/MCE.ppu
Binary file not shown.
BIN
lib/NCE.ppu
BIN
lib/NCE.ppu
Binary file not shown.
BIN
lib/NMIE.ppu
BIN
lib/NMIE.ppu
Binary file not shown.
BIN
lib/OOBE.ppu
BIN
lib/OOBE.ppu
Binary file not shown.
BIN
lib/PCI.ppu
BIN
lib/PCI.ppu
Binary file not shown.
BIN
lib/PF.ppu
BIN
lib/PF.ppu
Binary file not shown.
Binary file not shown.
BIN
lib/RTC.ppu
BIN
lib/RTC.ppu
Binary file not shown.
BIN
lib/SFE.ppu
BIN
lib/SFE.ppu
Binary file not shown.
BIN
lib/SNPE.ppu
BIN
lib/SNPE.ppu
Binary file not shown.
Binary file not shown.
BIN
lib/UIE.ppu
BIN
lib/UIE.ppu
Binary file not shown.
BIN
lib/USB.ppu
BIN
lib/USB.ppu
Binary file not shown.
BIN
lib/arp.ppu
BIN
lib/arp.ppu
Binary file not shown.
BIN
lib/asuro.ppu
BIN
lib/asuro.ppu
Binary file not shown.
BIN
lib/console.ppu
BIN
lib/console.ppu
Binary file not shown.
BIN
lib/cpu.ppu
BIN
lib/cpu.ppu
Binary file not shown.
Binary file not shown.
BIN
lib/fat32.ppu
BIN
lib/fat32.ppu
Binary file not shown.
BIN
lib/idt.ppu
BIN
lib/idt.ppu
Binary file not shown.
BIN
lib/ipv4.ppu
BIN
lib/ipv4.ppu
Binary file not shown.
BIN
lib/irq.ppu
BIN
lib/irq.ppu
Binary file not shown.
Binary file not shown.
BIN
lib/kernel.ppu
BIN
lib/kernel.ppu
Binary file not shown.
BIN
lib/keyboard.ppu
BIN
lib/keyboard.ppu
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/libpsystem.a
BIN
lib/libpsystem.a
Binary file not shown.
BIN
lib/lists.ppu
BIN
lib/lists.ppu
Binary file not shown.
Binary file not shown.
BIN
lib/mouse.ppu
BIN
lib/mouse.ppu
Binary file not shown.
BIN
lib/netutils.ppu
BIN
lib/netutils.ppu
Binary file not shown.
Binary file not shown.
BIN
lib/serial.ppu
BIN
lib/serial.ppu
Binary file not shown.
Binary file not shown.
BIN
lib/strings.ppu
BIN
lib/strings.ppu
Binary file not shown.
BIN
lib/terminal.ppu
BIN
lib/terminal.ppu
Binary file not shown.
BIN
lib/tracer.ppu
BIN
lib/tracer.ppu
Binary file not shown.
BIN
lib/util.ppu
BIN
lib/util.ppu
Binary file not shown.
Binary file not shown.
12
src/cpu.pas
12
src/cpu.pas
@ -78,6 +78,7 @@ type
|
|||||||
end;
|
end;
|
||||||
TClockSpeed = record
|
TClockSpeed = record
|
||||||
Hz : uint32;
|
Hz : uint32;
|
||||||
|
KHz : uint32;
|
||||||
MHz : uint32;
|
MHz : uint32;
|
||||||
GHz : uint32;
|
GHz : uint32;
|
||||||
end;
|
end;
|
||||||
@ -154,19 +155,24 @@ end;
|
|||||||
procedure getCPUClockSpeed;
|
procedure getCPUClockSpeed;
|
||||||
var
|
var
|
||||||
t1, t2 : TDateTime;
|
t1, t2 : TDateTime;
|
||||||
|
c1, c2 : uint64;
|
||||||
c : uint32;
|
c : uint32;
|
||||||
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
c:= 0;
|
c:= 0;
|
||||||
|
if CPUID.Capabilities0^.TSC then begin
|
||||||
t1:= getDateTime;
|
t1:= getDateTime;
|
||||||
t2:= getDateTime;
|
t2:= getDateTime;
|
||||||
|
c1:= getTSC;
|
||||||
while (t1.Seconds = t2.Seconds) do begin
|
while (t1.Seconds = t2.Seconds) do begin
|
||||||
inc(c);
|
|
||||||
t2:= getDateTime;
|
t2:= getDateTime;
|
||||||
end;
|
end;
|
||||||
|
c2:= getTSC;
|
||||||
|
c:= c2 - c1;
|
||||||
|
end;
|
||||||
CPUID.ClockSpeed.Hz:= c;
|
CPUID.ClockSpeed.Hz:= c;
|
||||||
CPUID.ClockSpeed.MHz:= CPUID.ClockSpeed.Hz div 1000;
|
CPUID.ClockSpeed.KHz:= CPUID.ClockSpeed.Hz div 1000;
|
||||||
|
CPUID.ClockSpeed.MHz:= CPUID.ClockSpeed.KHz div 1000;
|
||||||
CPUID.ClockSpeed.GHz:= CPUID.ClockSpeed.MHz div 1000;
|
CPUID.ClockSpeed.GHz:= CPUID.ClockSpeed.MHz div 1000;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -49,6 +49,7 @@ procedure sleep(seconds : uint32);
|
|||||||
function get16bitcounter : uint16;
|
function get16bitcounter : uint16;
|
||||||
function get32bitcounter : uint32;
|
function get32bitcounter : uint32;
|
||||||
function get64bitcounter : uint64;
|
function get64bitcounter : uint64;
|
||||||
|
function getTSC : uint64;
|
||||||
|
|
||||||
function BCDToUint8(bcd : uint8) : uint8;
|
function BCDToUint8(bcd : uint8) : uint8;
|
||||||
|
|
||||||
@ -358,6 +359,23 @@ begin
|
|||||||
get64bitcounter:= bios_data_area.Counters.c64;
|
get64bitcounter:= bios_data_area.Counters.c64;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function getTSC : uint64;
|
||||||
|
var
|
||||||
|
hi, lo : uint32;
|
||||||
|
|
||||||
|
begin
|
||||||
|
asm
|
||||||
|
PUSH EAX
|
||||||
|
PUSH EDX
|
||||||
|
RDTSC
|
||||||
|
MOV hi, EDX
|
||||||
|
MOV lo, EAX
|
||||||
|
POP EDX
|
||||||
|
POP EAX
|
||||||
|
end;
|
||||||
|
getTSC:= (hi SHL 32) OR lo;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure BSOD(fault : pchar; info : pchar);
|
procedure BSOD(fault : pchar; info : pchar);
|
||||||
var
|
var
|
||||||
trace : pchar;
|
trace : pchar;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user