1,18 → 1,18 |
; |
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû |
; Ghost Monitor - ã⨫¨â (áâà¥áá) â¥áâ¨à®¢ ¨ï ¨ ¬®¨â®à¨£ á¨á⥬ë |
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru) |
; All Right Reserved |
|
; |
; Áèáëèîòåêà äëÿ ÷èïîâ WinBond |
; ¨¡«¨®â¥ª ¤«ï 稯®¢ WinBond |
; |
; |
; Äîïèñàòü ïîëó÷åíèå èíôû ñ äðóãèõ äàò÷èêîâ |
; W83627DHG ìîíèòîðèíã àíàëîãè÷åí W83627EHF, äîïèñàòü ó÷¸ò DIV_B2 |
; + 16.03.06 Èñïðàâëåíà îøèáêà â wb_get_cpu_temper ñ äåñÿòûõ ãðàäóñà (áûëî 30.5 30.0 31.5 ...) |
; ®¯¨á âì ¯®«ã票¥ ¨äë á ¤àã£¨å ¤ â稪®¢ |
; W83627DHG ¬®¨â®à¨£ «®£¨ç¥ W83627EHF, ¤®¯¨á âì ãçñâ DIV_B2 |
; + 16.03.06 á¯à ¢«¥ ®è¨¡ª ¢ wb_get_cpu_temper á ¤¥áïâëå £à ¤ãá (¡ë«® 30.5 30.0 31.5 ...) |
; |
; |
; Î ìàðêèðîâêå (?) : H - H/W Monitor, G - Pb-free package, T - ACPI, S - Smart Card Reader Interface |
; ¬ ન஢ª¥ (?) : H - H/W Monitor, G - Pb-free package, T - ACPI, S - Smart Card Reader Interface |
; D - SuperIO supporting Intel* PECI* & SST* interfaces, U - UART |
; |
; | Chip name | ID Vin Fanin PWM Temp ISA SMBus |
40,7 → 40,7 |
|
;----------------------------------- |
wb_init: |
; Ïðîâåðêà íàëè÷èÿ è èíèöèàëèçàöèÿ |
; ஢¥àª «¨ç¨ï ¨ ¨¨æ¨ «¨§ æ¨ï |
; OUT - CF = 1 - error |
cmp byte[acc_type], 2 ; Only ISA and SMBus |
jae wb_no |
57,9 → 57,9 |
mov al, 0x4f |
call [IO_Read] |
cmp ax, 0xa35c |
jne wb_no ; ýòî íå Winbond !!! |
jne wb_no ; íâ® ¥ Winbond !!! |
|
; --- óçíà¸ì èäåíòèôèêàòîð ÷èïà -- |
; --- 㧠ñ¬ ¨¤¥â¨ä¨ª â®à 稯 -- |
mov al, 0x58 |
call [IO_Read] |
and al, 0xFE ; 0x20 = 0x21, 0x60 = 0x61, etc |
111,13 → 111,13 |
;----------------------------------- |
wb_get_temp: |
; temp 1 |
mov al, 0x4e ; Âûáèðàåì bank 1 |
mov al, 0x4e ; ë¡¨à ¥¬ bank 1 |
mov bl, 1 |
call [IO_Write] |
mov al, 0x50 ; Ïîëó÷àåì ñòàðøèé áàéò òåìïåðàòóðû (ãðàäóñû) |
mov al, 0x50 ; ®«ãç ¥¬ áâ à訩 ¡ ©â ⥬¯¥à âãàë (£à ¤ãáë) |
call [IO_Read] |
mov [hwm_temps], al |
mov al, 0x51 ; Ïîëó÷àåì ìëàäøèé áàéò òåìïåðàòóðû (x.5`C) |
mov al, 0x51 ; ®«ãç ¥¬ ¬« ¤è¨© ¡ ©â ⥬¯¥à âãàë (x.5`C) |
call [IO_Read] |
cmp al, 0 ; if al == 0 then x.0, else x.5 |
je @f |
125,21 → 125,21 |
@@: mov [hwm_temps + 1], al |
|
; temp 2 (3 SYSTIN) |
mov al, 0x4e ; Âûáèðàåì bank 0 |
mov al, 0x4e ; ë¡¨à ¥¬ bank 0 |
xor bl, bl |
call [IO_Write] |
mov al, 0x27 ; Ïîëó÷àåì ñòàðøèé áàéò òåìïåðàòóðû (ãðàäóñû) |
mov al, 0x27 ; ®«ãç ¥¬ áâ à訩 ¡ ©â ⥬¯¥à âãàë (£à ¤ãáë) |
call [IO_Read] |
mov [hwm_temps + 2], al |
|
; temp 3 (VTIN) |
mov al, 0x4e ; Âûáèðàåì bank 2 |
mov al, 0x4e ; ë¡¨à ¥¬ bank 2 |
mov bl, 2 |
call [IO_Write] |
mov al, 0x50 ; Ïîëó÷àåì ñòàðøèé áàéò òåìïåðàòóðû (ãðàäóñû) |
mov al, 0x50 ; ®«ãç ¥¬ áâ à訩 ¡ ©â ⥬¯¥à âãàë (£à ¤ãáë) |
call [IO_Read] |
mov [hwm_temps + 4], al |
mov al, 0x51 ; Ïîëó÷àåì ìëàäøèé áàéò òåìïåðàòóðû (x.5`C) |
mov al, 0x51 ; ®«ãç ¥¬ ¬« ¤è¨© ¡ ©â ⥬¯¥à âãàë (x.5`C) |
call [IO_Read] |
cmp al, 0 ; if al == 0 then x.0, else x.5 |
je @f |
146,7 → 146,7 |
mov al, 5 |
@@: mov [hwm_temps + 5], al |
|
; Ïðîâåðêà òåìïåðàòóðû, äàò÷èêè ñ 127.5`C íå èñïîëüçóþòñÿ |
; ஢¥àª ⥬¯¥à âãàë, ¤ â稪¨ á 127.5`C ¥ ¨á¯®«ì§ãîâáï |
mov ecx, 3 |
mov esi, hwm_temps |
wb_check_temp: |
178,6 → 178,8 |
mov ebx, eax |
mov eax, 1350000 |
xor edx, edx |
test ebx, ebx |
jz .div0 |
div ebx |
mov [hwm_rpms], eax |
|
193,11 → 195,14 |
cmp al, 255 |
jne @f |
xor eax, eax |
.div0: |
ret |
@@: mul ebx |
mov ebx, eax |
mov eax, 1350000 |
xor edx, edx |
test ebx, ebx |
jz .div0 |
div ebx |
mov [hwm_rpms + 4], eax |
|
218,6 → 223,8 |
mov ebx, eax |
mov eax, 1350000 |
xor edx, edx |
test ebx, ebx |
jz .div0 |
div ebx |
mov [hwm_rpms + 8], eax |
|
229,7 → 236,7 |
and al, 3 |
mov ebx, 1 |
mov cl, al |
shl ebx, cl ; <- div4, äîïèñàòü ó÷¸ò DIV_B2 |
shl ebx, cl ; <- div4, ¤®¯¨á âì ãçñâ DIV_B2 |
xor eax, eax |
mov al, 0x3F |
call [IO_Read] |
241,6 → 248,8 |
mov ebx, eax |
mov eax, 1350000 |
xor edx, edx |
test ebx, ebx |
jz .div0 |
div ebx |
mov [hwm_rpms + 12], eax |
|
250,9 → 259,9 |
and al, 3 |
mov ebx, 1 |
mov cl, al |
shl ebx, cl ; <- div5, äîïèñàòü ó÷¸ò DIV_B2 |
shl ebx, cl ; <- div5, ¤®¯¨á âì ãçñâ DIV_B2 |
xor eax, eax |
mov al, 0x4e ; Âûáèðàåì bank 5 |
mov al, 0x4e ; ë¡¨à ¥¬ bank 5 |
mov bl, 5 |
call [IO_Write] |
mov al, 0x53 |
265,6 → 274,8 |
mov ebx, eax |
mov eax, 1350000 |
xor edx, edx |
test ebx, ebx |
jz .wb_f_e |
div ebx |
mov [hwm_rpms + 16], eax |
|