Subversion Repositories Kolibri OS

Compare Revisions

Ignore whitespace Rev 251 → Rev 313

/programs/system/gmon/SMBus.inc
1,8 → 1,13
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; SMBus interface
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
;include 'smb_nf2.inc'
include 'smb_nf2.inc'
 
smb_base dd 0 ; IO port base for SMBus acces
smb_slave dd 0 ; SMBus addres for monitoring chip
/programs/system/gmon/config.inc
1,7 → 1,11
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
; 0x00xx - Menuet 0.xx
; 0x0400 - Kolibi 4 (íîâîå çàâåðøåíèå ïðîöåññà)
; 0x0510 - MSR -> ìíîæèòåëü
; 0x0510 - MSR -> ìíîæèòåëü (Kolibri 0.5.1.0)
; 0x0530 - âñåãî/ñâîáîäíî ïàìÿòè
; 0x0580 - íîâîå çàâåðøåíèå ïðîöåññà
OS_version equ 0x0580
/programs/system/gmon/diag.inc
1,3 → 1,8
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
; struc DiagramData size,color
; {
; .color dd color
/programs/system/gmon/gmon.asm
1,5 → 1,8
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
;
; ÂÎÇÌÎÆÍÀ ÏÎÐ×À ÎÁÎÐÓÄÎÂÀÍÈß!
; ÈÑÏÎËÜÇÓÉÒÅ ÍÀ ÑÂÎÉ ÑÒÐÀÕ È ÐÈÑÊ!
;
46,7 → 49,8
; 20/12/2006 - W83627DHG, W83627EHF, W83627EHG, mutipliers for AthonXP-M, Athlon64, Athlon64-M,
; Intel Dothan, Yonah, Conroe, Merom
; 24/12/2006 - ITE chips model id bugfix by Serge
; 26/15/2006 - èñïðàâëåííà ãëóïàÿ îøèáêà â îïðåäåëåíèè ITE è uGuru
; 26/12/2006 - èñïðàâëåííà ãëóïàÿ îøèáêà â îïðåäåëåíèè ITE è uGuru
; 31/01/2007 - èñïðàâëåíà îøèáêà âíåñ¸ííàÿ 17/07/06 â îïðåäåëåíèå ìíîæèòåëÿ äëÿ Intel NorthWood
;
; Ýé! Ó ìåíÿ íåò ìíîãî âðåìåíè.
 
/programs/system/gmon/hwm.inc
1,4 → 1,9
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
;
; HWM abstract interface, provide:
; hwm_init, hwm_get_params, hwm_enable, hwm_temps, hwm_rpms, hwm_voltages, hwm_chip_name
;
/programs/system/gmon/hwm_it87.inc
1,3 → 1,8
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
; Integrated Technology Express
; Chip Temp Volt Fan ISA SMBus
; it8705 3 8 3 + +
/programs/system/gmon/hwm_uguru.inc
1,3 → 1,8
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
; ABIT uGuru
;
; Chip Temp Volt Fan ISA SMBus LPC
/programs/system/gmon/hwm_wb.inc
1,4 → 1,9
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
;
; Áèáëèîòåêà äëÿ ÷èïîâ WinBond
;
;
/programs/system/gmon/system.inc
1,3 → 1,8
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
;--------------------------------------------------------------------
; Çàãðóçêà ïðîöåññîðà
; OUT : AL - çàãðóçêà â ïðîöåíòàõ
259,7 → 264,7
ret
@@: cmp byte [CPU_mod], 2
jae @f
mov eax, 68 ; Pentium 4 / Xeon (model < 2)
mov eax, 68 ; Pentium 4 / Xeon (model < 2) Willamete
mov ebx, 3
mov edx, 0x2A
int 0x40
267,17 → 272,12
and eax, 0x0F
mov cl, [p4coef + eax]
ret
@@: mov eax, 68 ; Pentium 4 / Xeon (model >= 2)
@@: mov eax, 68 ; Pentium 4 / Xeon (model >= 2) NorthWood
mov ebx, 3
mov edx, 0x2C
int 0x40
; shr eax, 24
; and eax, 0x1F
shr eax, 27
and al, 0Fh
add al, 8
shr eax, 24
and eax, 0x1F
mov dl, 10
mul dl
mov cl, al
322,7 → 322,7
athlonmcoef: db 110, 115, 120, 125, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105
db 30, 190, 40, 200, 130, 135, 14, 210, 150, 220, 160, 165, 170, 230, 240
athloncoef3 db 45, 50, 40, 55, 25, 30, 60, 35
p4coef db 160, 170, 180, 190, 200, 210, 220, 230, 80, 90, 100, 110, 120, 130, 140, 150 ; Pentium 4
p4coef db 160, 170, 180, 190, 200, 210, 220, 230, 80, 90, 100, 110, 120, 130, 140, 150 ; Pentium 4 (Willamete)
coppercoeff db 50, 30, 40, 20, 55, 35, 45, 25, 35, 70, 80, 60, 20, 75, 15, 65, 90, 110, 120, 20, 95, 115, 85, 25, 35, 70, 80, 100, 20, 75, 15, 105
tualatcoeff db 120, 35, 35, 40, 55, 35, 115, 35, 160, 70, 80, 60, 40, 75, 35, 65, 90, 110, 35, 35, 95, 35, 85, 35, 35, 35, 130, 100, 140, 35, 150, 105
else
/programs/system/gmon/tab_about.inc
1,4 → 1,9
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
 
mov edx, msg_about
mov ebx, 17 * 65536 + 285
call show_text
/programs/system/gmon/tab_conf.inc
1,5 → 1,10
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
;
;
; Âêëàäêà íàñòðîåê
;
 
/programs/system/gmon/tab_info.inc
1,5 → 1,10
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
;
;
; Âêëàäêà èíôîðìàöèè î ñèñòåìå
;
; Äîïèñàòü åù¸ ÷òîèòü (ìàëîâàòî áóäåò)
29,7 → 34,7
mov al, byte[edx]
movzx esi, al
inc edx
mov ebx, 160 * 65536 + 315
mov ebx, 160 * 65536 + 325
mov al, 4
int 0x40
; ×àñòîòà ïðîöåññîðà
88,7 → 93,7
fstp dword[esp]
mov esi, esp
call ftoa
mov ebx, 160 * 65536 + 325
mov ebx, 160 * 65536 + 315
mov edx, Data_String
mov eax, 4
mov esi, eax
130,6 → 135,6
'CPU Vendor',\
'CPU frequency (MHz)',\
'MMX tehnology',\
'Multiplier',\
'Monitoring chip',\
'Multiplier',\
'Free memory (Kb)'
/programs/system/gmon/tab_test.inc
1,6 → 1,11
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
;
;
;
; Âêëàäêà òåñòîâ
;
;
/programs/system/gmon/tests.inc
1,62 → 1,68
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
;
; k6, k7, p5 & p6 based on Robert Redelmeier's burnCPU tests
; ported by Ghost
; k6, k7, p5 & p6 tests based on Robert J. Redelmeier cpuburn-1.4
; Copyright 1999, 2000 Robert J. Redelmeier. All Right Reserved
; Licensed under GNU General Public Licence 2.0. No warrantee.
 
; adapted by Mihailov Ilia
;
; Çàìåòêè :
; ïåðåïèñòü ðåàêöèþ íà îøèáêè
 
k6:
finit
push ebp
mov ebp, esp
and ebp, -32
sub esp, 96
fldpi
fld qword [rtt]
fstp qword [ebp - 24]
fld qword [e]
fstp qword [ebp - 32]
mov edx, [half]
mov [ebp - 8], edx
k6_after_check:
xor eax, eax
mov ebx, eax
lea esi, [eax - 1]
mov ecx, 400000000
finit
push ebp
mov ebp, esp
and ebp, -32
sub esp, 96
fldpi
fld qword [rtt]
fstp qword [ebp - 24]
fld qword [e]
fstp qword [ebp - 32]
mov edx, [half]
mov [ebp - 8], edx
k6_after_check:
xor eax, eax
mov ebx, eax
lea esi, [eax - 1]
mov ecx, 400000000
mov [ebp - 4], ecx
align 32
;rev. eng. win. ver. (lea esi, [esi]) ; Ghost
k6_crunch:
fld qword [ebp+esi*8-16] ; CALC BLOCK
fmul qword [ebp+esi*8-24]
add edx, [half + 9 + esi + esi * 8] ;!!!
jnz $ + 2
faddp
fld qword [ebp+esi*8-16]
dec ebx
sub edx, [half + 9 + esi + esi * 8] ;!!!
jmp $ + 2
fmul qword [ebp+esi*8-24]
inc ebx
dec dword [ebp+esi*8+4]
fsubp
jnz k6_crunch ; time for testing ?
 
test ebx, ebx ; TEST BLOCK
jnz k6_int_exit
cmp edx, [half]
jnz k6_int_exit
fldpi
fcomp st1
fstsw ax
sahf
jz k6_after_check
dec ebx
k6_int_exit:
dec ebx
add esp, 96
pop ebp
;rev. eng. win. ver. (lea esi, [esi]) ; Ghost
k6_crunch:
fld qword [ebp+esi*8-16] ; CALC BLOCK
fmul qword [ebp+esi*8-24]
add edx, [half + 9 + esi + esi * 8] ;!!!
jnz $ + 2
faddp
fld qword [ebp+esi*8-16]
dec ebx
sub edx, [half + 9 + esi + esi * 8] ;!!!
jmp $ + 2
fmul qword [ebp+esi*8-24]
inc ebx
dec dword [ebp+esi*8+4]
fsubp
jnz k6_crunch ; time for testing ?
 
test ebx, ebx ; TEST BLOCK
jnz k6_int_exit
cmp edx, [half]
jnz k6_int_exit
fldpi
fcomp st1
fstsw ax
sahf
jz k6_after_check
dec ebx
k6_int_exit:
dec ebx
add esp, 96
pop ebp
mov eax, -1
int 0x40
;#######################################################################
116,118 → 122,118
int 0x40
;#######################################################################
;#######################################################################
p5: finit
push ebp
mov ebp, esp
and ebp, -32
sub esp, 96
fld qword [half]
fstp qword [ebp - 24]
fld qword [rtt]
fst qword [ebp - 16]
fld st
fld st
p5_after_check:
xor eax, eax
mov eax, ebx
mov ecx, 200000000
align 32
;# MAIN LOOP 16 flops / 18 cycles
p5_crunch:
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
 
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
 
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
dec ecx
jnz p5_crunch
 
p5: finit
push ebp
mov ebp, esp
and ebp, -32
sub esp, 96
fld qword [half]
fstp qword [ebp - 24]
fld qword [rtt]
fst qword [ebp - 16]
fld st
fld st
p5_after_check:
xor eax, eax
mov eax, ebx
mov ecx, 200000000
align 32
;# MAIN LOOP 16 flops / 18 cycles
p5_crunch:
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
 
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
 
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
fmul qword [ebp - 24]
fxch st1
fadd qword [ebp - 16]
fxch st2
dec ecx
jnz p5_crunch
 
jmp p5_after_check
;#######################################################################
;#######################################################################
p6: finit
push ebp
mov ebp, esp
and ebp, -32
sub esp, 96
fldpi
fld qword [rtt]
fstp qword [ebp - 24]
fld qword [e]
fstp qword [ebp - 32]
mov edx, [half]
mov [ebp - 8], edx
p6_after_check:
xor eax, eax
mov ebx, eax
lea esi, [eax - 1]
mov ecx, 539000000 ;# check after this count
mov [ebp - 4], ecx
align 32
p6_crunch: ;# MAIN LOOP 21uops / 8.0 clocks
fld qword [ebp+esi*8-16]
fmul qword [ebp+esi*8-24]
add edx, [half]
jnz $ + 2
faddp
fld qword [ebp - 24]
dec ebx
sub edx, [half + 9 + esi + esi*8]
jmp $ + 2
fmul qword [ebp+esi*8-24]
inc ebx
dec dword [ebp+esi*8+4]
fsubp
jnz p6_crunch
 
test ebx, ebx ;# Testing block
mov ebx, 0
jnz p6_int_exit
cmp edx, [half]
jnz p6_int_exit
fldpi
fcomp st1
fstsw ax
sahf
jz p6_after_check ;# fp result = pi ?
dec ebx
p6_int_exit: ;# error abort
dec ebx
add esp, 96
p6: finit
push ebp
mov ebp, esp
and ebp, -32
sub esp, 96
fldpi
fld qword [rtt]
fstp qword [ebp - 24]
fld qword [e]
fstp qword [ebp - 32]
mov edx, [half]
mov [ebp - 8], edx
p6_after_check:
xor eax, eax
mov ebx, eax
lea esi, [eax - 1]
mov ecx, 539000000 ;# check after this count
mov [ebp - 4], ecx
align 32
p6_crunch: ;# MAIN LOOP 21uops / 8.0 clocks
fld qword [ebp+esi*8-16]
fmul qword [ebp+esi*8-24]
add edx, [half]
jnz $ + 2
faddp
fld qword [ebp - 24]
dec ebx
sub edx, [half + 9 + esi + esi*8]
jmp $ + 2
fmul qword [ebp+esi*8-24]
inc ebx
dec dword [ebp+esi*8+4]
fsubp
jnz p6_crunch
 
test ebx, ebx ;# Testing block
mov ebx, 0
jnz p6_int_exit
cmp edx, [half]
jnz p6_int_exit
fldpi
fcomp st1
fstsw ax
sahf
jz p6_after_check ;# fp result = pi ?
dec ebx
p6_int_exit: ;# error abort
dec ebx
add esp, 96
pop ebp
mov eax, -1
int 0x40
int 0x40
;---------------------------------------------
align 32
half dd 0x7fffffff, 0