Subversion Repositories Kolibri OS

Rev

Rev 223 | Rev 241 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;
  2. ; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
  3. ; ÂÎÇÌÎÆÍÀ ÏÎÐ×À ÎÁÎÐÓÄÎÂÀÍÈß!
  4. ; ÈÑÏÎËÜÇÓÉÒÅ ÍÀ ÑÂÎÉ ÑÒÐÀÕ È ÐÈÑÊ!
  5. ;
  6. ; Çàìåòêè :
  7. ;       Äîïèñàòü çàïóñê òåñòîâ (rtst) (íåò ðåàêöèè íà îøèáêó çàïóñêà)
  8. ;       Ïåðåäåëàòü îáíîâëåíèå ãðàôèêà (ñäåëàòü îòäåëüíûì ïðîöåññîì)
  9. ;       Äîáàâèòü ðåàêöèþ íà ïàðàìåòðû äàò÷èêîâ
  10. ;
  11. ; Èñòîðèÿ :
  12. ;         09/2005 - íà÷àëî
  13. ;      04/10/2005 - îòêîììåíòèðîâàë êîä
  14. ;      09/11/2005 - äîïèñàíû òåñòû (ïîêà íåò òåñòà ïàìÿòè)
  15. ;      30/01/2006 - äîáàâëåííû ãðàôèêè
  16. ;      02/02/2006 - Äîáàâëåíà íàñòðîéêà âðåìåíè îáíîâëåíèÿ
  17. ;      10/02/2006 - äîáàâëåííà åùå èíôîðìàöèÿ ñ äàò÷èêîâ, îïò. wb_get_chip_name
  18. ;      01/03/2006 - äîáàâëåííà åùå èíôîðìàöèÿ ñ äàò÷èêîâ
  19. ;      16/03/2006 - îïòèìèçèðîâàíà ïî ðàçìåðó
  20. ;      17/03/2006 - ïîäñâåòêà èçìåí¸ííûõ ïàðàìåòðîâ, îïòèìèçàöèÿ, about
  21. ;      20/03/2006 - Ïóáëèêàöèÿ
  22. ;               ---  v 0.2 ---
  23. ;      24/03/2006 - Äîáàâëåííà ïîääåðæêà IT8705F, IT8712F è SIS950
  24. ;      25/03/2006 - Âûâîä òð¸õ òåìïåðàòóð è òð¸õ âåíòèëåé
  25. ;      28/03/2006 - Ãðàôèê temp3 è èçìåíåíèå öâåòà ãðàôèêîâ, îáðàáîòêà îòðèöàòåëüíûõ çíà÷åíèé ãðàôèêà
  26. ;      30/03/2006 - Îïòèìèçàöèÿ ïî ðàçìåðó âåðñèè îò 28/03/2006, ïåðåïèñàë ðèñîâàíèå ãðàôèêà
  27. ;      14/04/2006 - Èñïðàâèë ãðàôèê (jle -> jbe), äîáàâèë mem usage, âû÷èñëåíèå äëèííû ÷èñåë, çàêðûòèå ïî Esc
  28. ;      19/04/2006 - Î÷èñòêà íåèíèöèàëèçèðîâàííûõ äàííûõ
  29. ;               ---  v 0.3 ---
  30. ;      01/07/2006 - Ðàçëè÷èå ITE 8705F, ITE 8712F è IT8716F
  31. ;      04/07/2006 - Äîáàâëåííû íàïðóãè äëÿ ÷èïîâ Winbond
  32. ;      10/07/2006 - äîáàâëåííû íàïðóãè äëÿ ÷èïîâ ITE, ìíîæèòåëè äëÿ AMD K6, Intel P6, P7, îïòèìèçàöèÿ ïî ðàçìåðó
  33. ;      11/07/2006 - Ðåàêöèÿ íà èçìåíåíèå íàïðóãè, îïòèìèçàöèÿ ïî ðàçìåðó
  34. ;      12/07/2006 - it87_get_fan_speed bug fix, çàâåðøåíèå òåñòà ïî 18/18
  35. ;      13/07/2006 - it87_get_fan_speed bug fix, èñïðàâëåí âûâîä ÷èñåë ñ ïëàâàþùåé òî÷êîé
  36. ;      14/07/2006 - èñïðàâëåííû ïîêàçàíèÿ -12V äëÿ Winbond, îñòàëàñü ïðîáëåíìà ñ -5V
  37. ;      17/07/2006 - èñïðàâëåííà îøèáêà îïðåäåëåíèÿ ìíîæèòåëÿ äëÿ P6, äîáàâëåííû ìíîæèòåëè
  38. ;      18/07/2006 - Óëè÷øèë âûâîä ìíîæèòåëÿ, èñïðàâëåííû ìíîæèòåëè äëÿ P6 Tualatin, config.inc
  39. ;      22/07/2006 - P6 multiplier bugfix
  40. ;      30/07/2006 - P6 multiplier bugfix
  41. ;               --- v 0.4 ---
  42. ;      10/08/2006 - íà÷àòà ðàáîòà ïî ïîääåðæêå SMBus, ïåðåïèñàíû ôóíêöèè äëÿ ÷èïîâ ìîíèòîðèíãà
  43. ;      24/08/2006 - äîáàâëåííà ÷àñòîòà ïðîöåññîðà
  44. ;      10/09/2006 - bugfix
  45. ;      25/11/2006 - äîáàâëåí ABIT uGuru
  46. ;      20/12/2006 - W83627DHG, W83627EHF, W83627EHG
  47. ;
  48. ;    Ýé! Ó ìåíÿ íåò ìíîãî âðåìåíè.
  49.  
  50. ; Âíåøíèå ôàéëû :
  51. ;       hwm*.inc        - ïðîöåäóðû ðàáîòû ñ äàò÷èêàìè ìîíèòîðèíãà
  52. ;       system.inc      - âû÷èñëåíèå çàãðóçêè ïðîöåññîðà, çàâåðøåíèå òåñòà, etc...
  53. ;       tests.inc       - òåñòû ;-)
  54. ;       diag.inc        - ïîääåðæêà äèàãðàì
  55. ;       tab_*.inc       - ïðîöåäóðû îòðèñîâêè ñîîòâåòñòâóþøèõ âêëàäîê
  56.  
  57.  
  58. ; Èäåíòèôèêàòîðû êíîïîê :
  59. ;       01 - Exit
  60. ;       02 - Info tab
  61. ;       03 - Tests tab
  62. ;       04 - Config tab
  63. ;       05 - About tab
  64. ;       06 - P5 test
  65. ;       07 - P6 test
  66. ;       08 - K6 test
  67. ;       09 - K7 test
  68. ;       10 - MMX test   - not used
  69. ;       11 - Update time increment
  70. ;       12 - Update time decriment
  71. ;       13..17 - Èçìåíåíèå öâåòà CPU_load, Mem_usage, Temp1, Temp2, Temp3
  72.  
  73. include 'config.inc'
  74. include 'macros.inc'
  75.  
  76. tcol    equ     0x5080d0
  77. atcol   equ     0x4070c0
  78. val_mod equ     0x3090
  79.  
  80. MEOS_APP_START
  81. include "tests.inc"     ; <-- Ìíîãî âûðàâíèâàíèé, ëó÷øå çäåñü
  82. CODE
  83. ;--- Init ------------------------------------------------------------
  84.         ; Î÷èùàåì íåèíèöèàëèçèðîâàííûå äàííûå
  85.         mov     ecx, __memory - __udata
  86.         mov     edi, __udata
  87.         xor     eax, eax
  88.         rep     stosb
  89.  
  90.         xor     eax, eax
  91.         cpuid                                   ; Óçíà¸ì ïðîèçâîäèòåëÿ ïðîöà
  92.         mov     [Vendor + 0], ebx
  93.         mov     [Vendor + 4], edx
  94.         mov     [Vendor + 8], ecx
  95.         mov     eax, 1
  96.         cpuid                                   ; Åñòü ëè MMX ?
  97.         mov     ecx, eax
  98.         shr     al, 4
  99.         and     ax, 0x0F0F
  100.         mov     [CPU_fam], ah
  101.         mov     [CPU_mod], al
  102.         shr     edx, 23
  103.         and     dl, 1
  104.         mov     [CPU_mmx], dl
  105.         shr     ecx, 12
  106.         and     cl, 11b
  107.         mov     [CPU_type], cl
  108.        
  109.         ; ! Öâåòà èç ìàññèâà colors
  110.         mov     dword[d_cpu_load], 0xFF00       ; èíèöèàëèçèðóåì ãðàôèê çàãðóçêè ÀËÓ
  111.         mov     dword[d_mem_usage], 0x8BA169    ; -- mem usega
  112.         mov     dword[d_temp1], 0xFF0000        ; -- ãðàôèê òåìïåðàòóðû ÖÏÓ
  113.         mov     dword[d_temp2], 0xFF            ; -- ãðàôèê òåìïåðàòóðû ÌÏ
  114.         mov     dword[d_temp3], 0xFF7E23
  115.  
  116.         call    hwm_init                        ; Èíèöèàëèçèðóåì ÷èï ìîíèòîðèíãà
  117.  
  118.         jmp     draw_window
  119. ;--- Wait & translate event ------------------------------------------
  120. wait_for_event:
  121.         mov     byte[diag_add_v], 0     ; äîáàâëÿåì äàííûå ê ãðàôèêó òîëüêî ïî òàéìåðó
  122.         mov     ebx, [update_time]
  123.         mov     eax, 23
  124.         int     0x40
  125.         test    eax, eax
  126.         jnz     @f
  127.         inc     byte [diag_add_v]
  128.         inc     eax                     ; ïåðåðèñóåì îêíî (eax := 1)
  129. @@:     dec     eax                     ; redraw request ?
  130.         jz      draw_window
  131.         dec     eax                     ; key in buffer ?
  132.         jz      key
  133.         dec     eax                     ; button in buffer ?
  134.         jz      button
  135.         jmp     wait_for_event
  136. ;--- Key pressed -----------------------------------------------------
  137. key:
  138.         mov     eax, 2
  139.         int     0x40
  140.         cmp     ah, 27                  ; Esc - çàâåðøåíèå ðàáîòû
  141.         je      exit
  142.         jmp     wait_for_event
  143. ;--- Button down -----------------------------------------------------
  144. button:
  145.         mov     eax, 17                 ; get id
  146.         int     0x40
  147.         cmp     ah, 1                   ; button id == 1 ?
  148.         jne     noexit
  149. exit:   cmp     byte[test_id], 0
  150.         je      @f
  151.         call    stop_test
  152. @@:     mov     eax, -1         ; close this program
  153.         int     0x40
  154. noexit:
  155.         ; êíîïêè âêëàäîê (2 .. 5)
  156.         cmp     ah, 5
  157.         jg      no_tabs
  158.         mov     byte[act_tab], ah
  159.         jmp     draw_window
  160. no_tabs:
  161.         ; êíîïêè çàïóñêà òåñòâî (6 .. 10)
  162.         cmp     ah, 10
  163.         jg      no_test_bt
  164.         ; åñëè íåò çàïóùåíûõ òåñòîâ - çàïóñêàåì âûáðàííûé
  165.         cmp     byte[test_id], 0
  166.         je      run_test
  167.         ; åñëè êíîïêà àêòèâíîãî òåñòà - îñòàíàâëèâàåì òåñò, èíà÷å íè÷åãî íå äåëàåì     
  168.         cmp     [test_id], ah
  169.         jne     wait_for_event
  170.         call    stop_test
  171.         jmp     draw_window
  172.  
  173. tsts:   dd      p5, p6, k6, k7
  174. run_test:
  175.         push    eax
  176.         movzx   ecx, ah
  177.         mov     ecx, [tsts + (ecx * 4) - (6 * 4)]
  178. rtst:   mov     eax, 51
  179.         mov     edx, stp
  180.         mov     ebx, 1
  181.         int     0x40
  182.         cmp     eax, 0xFFFFFFF0 ; -16
  183.         je      wait_for_event  ; <-- îøèáêà çàïóñêà òåñòà, ÏÅÐÅÏÈÑÀÒÜ
  184.         mov     [test_pid], eax
  185.         pop     eax
  186.         mov     byte [test_id], ah
  187.         jmp     draw_window
  188.         ;-------------------------
  189.         ; êíîïêè èçìåíåíèÿ âðåìåíè îáíîâëåíèÿ
  190. no_test_bt:
  191.         cmp     ah, 11
  192.         jne     no_ut_inc
  193.         add     dword[update_time], 10
  194.         jmp     draw_window
  195. no_ut_inc:
  196.         cmp     ah, 12
  197.         jne     no_ut_dec
  198.         cmp     dword[update_time], 10
  199.         jng     wait_for_event
  200.         sub     dword[update_time], 10
  201.         jmp     draw_window
  202. no_ut_dec:
  203.         ;-------------------------
  204.         ; êíîïêè èçìåíåíèÿ öâåòà ãðàôèêîâ (13..17)
  205.         cmp     ah, 17
  206.         jg      no_change_color
  207.         sub     ah, 13
  208.         movzx   ecx, ah
  209.         mov     esi, [d_colors + ecx * 4]
  210.         mov     eax, [esi]
  211.         mov     ecx, (colors_end - colors) / 4  ; êîëè÷åñòâî öâåòîâ
  212. @@:     dec     ecx
  213.         cmp     eax, [colors + ecx * 4]
  214.         jne     @b
  215.         mov     ebx, [colors + ecx * 4 - 4]
  216.         mov     [esi], ebx
  217.         jmp     draw_window
  218. no_change_color:
  219.         jmp     wait_for_event
  220. ;---------------------------------------------------------------------
  221. draw_window:
  222.         mov     eax,12
  223.         mov     ebx,1
  224.         int     0x40
  225.         ; Ñîçäà¸ì îêíî
  226.         xor     eax, eax
  227.         mov     ebx, 300 * 65536 + 309
  228.         mov     ecx, 150 * 65536 + 450
  229.         mov     edx, tcol + 0x3000000   ; color of work area RRGGBB,8->color
  230.         mov     esi, 0x805080d0         ; color of grab bar  RRGGBB,8->color
  231.         mov     edi, 0x005080d0         ; color of frames    RRGGBB
  232.         int     0x40
  233.         ; Ñîçäà¸ì ðàìêó ãðàôèêà
  234.         mov     eax, 13
  235.         mov     ebx, 10 * 65536 + 290
  236.         mov     ecx, 138 * 65536 + 105
  237.         mov     edx, atcol
  238.         int     0x40
  239.         mov     ebx, 12 * 65536 + 286
  240.         mov     ecx, 140 * 65536 + 101
  241.         mov     edx, tcol
  242.         int     0x40
  243.         mov     eax, 38
  244.         mov     edx, atcol
  245.         mov     ebx, 12 * 65536 + 286 + 12
  246.         mov     ecx, 140 * 65536 + 140
  247. @@:     add     ecx, 10 * 65536 + 10
  248.         int     0x40
  249.         cmp     cx, 230                 ; ïðèâÿçàíî ê êîîðäèíàòàì îêíà
  250.         jl      @b
  251.         ; Ïèøèì çàãîëîâîê
  252.         mov     eax, 4
  253.         mov     ebx, 8 * 65536 + 8
  254.         mov     edx, title
  255.         mov     ecx, 0x10FFFFFF
  256.         mov     esi, 29
  257.         int     0x40
  258.        
  259.         ; Ïèøèì íàçâàíèÿ ïàðàìåòðîâ (Cpu load, temper, etc...)
  260.         mov     edx, msgs_mon
  261.         mov     ebx, 17 * 65536 + 30
  262.         call    show_text
  263.        
  264.         mov     edx, msgs_mon2
  265.         mov     ebx, 156 * 65536 + 30
  266.         call    show_text
  267.        
  268.         ; Ðèñóåì êíîïêè ñìåíû öâåòà
  269.         mov     eax, 8
  270.         mov     ebx, 112 * 65536 + 5
  271.         mov     ecx, 30 * 65536 + 6
  272.         mov     edx, 13
  273. @@:     mov     esi, [d_colors - 13 * 4 + edx * 4]
  274.         mov     esi, [esi]
  275.         int     0x40
  276.         add     ecx, 10 * 65536
  277.         inc     edx
  278.         cmp     edx, 13 + 5             ; 5 êíîïîê
  279.         jne     @b
  280.        
  281.         ; Ïèøèì çàãðóçêó ïðîöåññîðà
  282.         call    cpu_usage
  283.         ;--- äîáàâëÿåì íà ãðàôèê ---
  284.         mov     esi, d_cpu_load
  285.         call    d_add
  286.         call    d_show
  287.         ;---------------------------
  288.         movzx   ecx, al
  289.         mov     eax, 47
  290.         mov     edx, 121 * 65536 + 30
  291.         xor     esi, esi
  292.         call    digit_len
  293.         int     0x40
  294.        
  295.         ; Ïèøèì èñïîëüçóåìóþ ïàìÿòü
  296.         call    mem_usage
  297.         ;--- äîáàâëÿåì íà ãðàôèê ---
  298.         mov     esi, d_mem_usage
  299.         call    d_add
  300.         call    d_show
  301.         ;---------------------------
  302.         movzx   ecx, al
  303.         mov     eax, 47
  304.         mov     edx, 121 * 65536 + 40
  305.         xor     esi, esi
  306.         call    digit_len
  307.         int     0x40
  308.        
  309.         cmp     byte[hwm_enable], 0
  310.         jne     show_mon
  311.         ; Íåò äàò÷èêîâ - ïèøåì NO
  312.         mov     ecx, 8  ;<- êîëè÷åñòâî ïàðàìåòðîâ
  313.         mov     eax, 4
  314.         mov     ebx, 121 * 65536 + 50
  315.         mov     edx, msg_no
  316.         mov     esi, 3
  317. @@:     int     0x40
  318.         add     ebx, 10
  319.         loop    @b
  320.  
  321.         mov     ecx, 7  ;<- êîëè÷åñòâî ïàðàìåòðîâ
  322.         mov     ebx, 260 * 65536 + 30
  323. @@:     int     0x40
  324.         add     ebx, 10
  325.         loop    @b
  326.  
  327.         jmp     no_monitor
  328. show_mon:
  329.         ;Åñòü äàò÷èêè ïèøèì èíôó
  330.         call    hwm_get_params
  331.         ;---------------------------
  332.         ; Òåìïåðàòóðó
  333.         mov     ecx, 3
  334.         mov     esi, hwm_temps
  335.         mov     edx, 121 * 65536 + 50
  336.         xor     eax, eax
  337. sh_temp:push    ecx
  338.         lodsw
  339.         push    esi
  340.         ; ðåàêöèÿ íà èçìåíåíèÿ
  341.         xor     esi, esi
  342.         cmp     [old_t1 + ecx * 4 - 4], eax
  343.         je      @f
  344.         mov     [old_t1 + ecx * 4 - 4], eax
  345.         mov     esi, val_mod
  346. @@:     movzx   ecx, al
  347.         push    eax
  348.         mov     eax, 47
  349.         mov     ebx, 0x20000
  350.         int     0x40
  351.         pop     eax
  352.         mov     cl, ah
  353.         mov     eax, 47
  354.         mov     ebx, 0x10000
  355.         add     edx, 15 * 65536
  356.         int     0x40
  357.         sub     edx, 15 * 65536 - 10
  358.         pop     esi
  359.         pop     ecx
  360.         loop    sh_temp
  361.         ;;--- äîáàâëÿåì íà ãðàôèê temp1 ---
  362.         movzx   eax, word[hwm_temps]
  363.         mov     esi, d_temp1
  364.         call    d_add
  365.         call    d_show
  366.         ;;--- äîáàâëÿåì íà ãðàôèê temp2 ---
  367.         movzx   eax, word[hwm_temps + 2]
  368.         mov     esi, d_temp2
  369.         call    d_add
  370.         call    d_show
  371.         ;;--- äîáàâëÿåì íà ãðàôèê temp3 ---
  372.         movzx   eax, word[hwm_temps + 4]
  373.         mov     esi, d_temp3
  374.         call    d_add
  375.         call    d_show
  376.  
  377.         ;---------------------------
  378.         ; Ñêîðîñòè âðàøåíèÿ âåíòèëåé
  379.         mov     ecx, 5
  380.         mov     esi, hwm_rpms
  381.         mov     edx, 121 * 65536 + 80
  382. sh_fan: push    ecx
  383.         lodsd
  384.         push    esi
  385.         ;ðåàêöèÿ íà èçìåíåíèÿ
  386.         xor     esi, esi
  387.         cmp     [old_f1 + ecx * 4 - 4], eax
  388.         je      @f
  389.         mov     [old_f1 + ecx * 4 - 4], eax
  390.         mov     esi, val_mod
  391. @@:     mov     ecx, eax
  392.         call    digit_len
  393.         mov     eax, 47
  394.         int     0x40
  395.         add     edx, 10
  396.         pop     esi
  397.         pop     ecx
  398.         loop    sh_fan
  399.        
  400.         ;---------------------------
  401.         ; Íàïðóãè
  402.         mov     esi, hwm_voltages
  403.         mov     edi, old_volts
  404.         mov     ecx, 7
  405.         mov     ebx, 260 * 65536 + 30
  406.         mov     edx, Data_String
  407. volt_nxt:
  408.         push    ecx
  409.         push    esi
  410.         call    ftoa
  411.         ;ðåàêöèÿ íà èçìåíåíèÿ
  412.         xor     ecx, ecx
  413.         fld     dword [esi]
  414.         fsub    dword [edi]
  415.         fabs
  416.        
  417.         ; fcomp dword [c_eps]   ; bug in MeOsEmul
  418.         ; fstsw ax
  419.         fcom    dword [c_eps]   ; 0xBADCODE
  420.         fstsw   ax
  421.         finit  
  422.        
  423.         sahf
  424.         jc      @f
  425.         mov     ecx, val_mod
  426. @@:     mov     esi, Data_String        ; ñ÷èòàåì êîë-âî ñèìâîëîâ
  427. @@:     lodsb
  428.         test    al, al
  429.         jnz     @b
  430.         sub     esi, Data_String
  431.        
  432.         mov     eax, 4
  433.         int     0x40
  434.         add     ebx, 10
  435.         pop     esi
  436.         pop     ecx
  437.         movsd
  438.         loop    volt_nxt
  439.        
  440. no_monitor:
  441.         ;---------------------------
  442.         ; Ñîçäà¸ì êíîïêè âêëàäîê
  443.         mov     edi, 250 * 65536 + 25
  444.         mov     ecx, 4
  445.         mov     eax, 8
  446.         mov     ebx, 10 * 65536 + 70
  447.         mov     edx, 2
  448. n_bt:   push    ecx
  449.         mov     ecx, edi
  450.         mov     esi, tcol
  451.         cmp     byte [act_tab], dl
  452.         jne     na1
  453.         mov     esi, atcol
  454. na1:    int     0x40
  455.         inc     edx
  456.         add     ebx, 73 * 65536
  457.         pop     ecx
  458.         loop    n_bt
  459.         ; Ïèøèì íàçâàíèÿ âêëàäîê
  460.         mov     eax, 4
  461.         mov     ebx, 35 * 65536 + 260
  462.         mov     edx, tab_lab
  463.         mov     ecx, 0x10000000
  464.         mov     esi, 39
  465.         int     0x40
  466.         ; ñîçäà¸ì ðàìêó âíèçó ýêðàíà
  467.         mov     eax, 13
  468.         mov     ebx, 10 * 65536 + 290
  469.         mov     ecx, 275 * 65536 + 160
  470.         mov     edx, atcol
  471.         int     0x40
  472.         mov     ebx, 12 * 65536 + 286
  473.         mov     ecx, 277 * 65536 + 156
  474.         mov     edx, tcol
  475.         int     0x40
  476.         ; ðèñóåì âûáðàííóþ âêëàäêó
  477.         mov     al, [act_tab]
  478.         cmp     al, 2
  479.         je      info_tab
  480.         cmp     al, 3
  481.         je      test_tab
  482.         cmp     al, 4
  483.         je      config_tab
  484.         jmp     about_tab
  485. end_drow_tab:
  486.         mov     eax, 12
  487.         mov     ebx, 2
  488.         int     0x40
  489.         jmp     wait_for_event
  490. ;--- Drow Info tab ---------------
  491. info_tab:
  492.         include "tab_info.inc"
  493. ;--- Drow test tab ---------------
  494. test_tab:
  495.         include "tab_test.inc"
  496. ;--- Drow Config tab -------------
  497. config_tab:
  498.         include "tab_conf.inc"
  499. ;--- Drow About tab --------------
  500. about_tab:
  501.         include "tab_about.inc"
  502. ;---------------------------------------------------------------------
  503.         include "system.inc"
  504.         include "hwm.inc"
  505.         include "diag.inc"
  506.        
  507.  
  508. DATA
  509. act_tab         db      2                       ; Íîìåð àêòèâíîé âêëàäêè
  510. tab_lab         db      'Info       Tests      Configs     About'
  511. title           db      'Ghost Monitor v0.4 [20/12/06]'
  512.  
  513. msgs_mon mls \
  514.         'CPU Load (%)',\
  515.         'Mem Usage(%)',\
  516.         'Temp1',\
  517.         'Temp2',\
  518.         'Temp3',\
  519.         'Fan1',\
  520.         'Fan2',\
  521.         'Fan3',\
  522.         'Fan4',\
  523.         'Fan5'
  524.        
  525. msgs_mon2 mls \
  526.         'Vcore',\
  527.         'AGP',\
  528.         '+3.3V',\
  529.         'AVcc (+5V)',\
  530.         '+12V',\
  531.         '-12V',\
  532.         '-5V'
  533.  
  534. msg_yes         db      'Yes'
  535. msg_no          db      'N/A'
  536.  
  537. update_time     dd      300                     ; ïåðèîä îáíîâëåíèÿ â ñîòûõ äîëÿõ ñåêóíäû
  538. d_colors        dd      d_cpu_load, d_mem_usage, d_temp1, d_temp2, d_temp3
  539. c_eps           dd      0.01
  540.  
  541. ; Öâåòà ãðàôèêîâ
  542. colors:         dd      0xff0000, 0xff00, 0xff, 0xffffff, tcol, 0xFF7E23, 0x8BA169, 0xff0000    ; ïåðâûé è ïîñëåäíèé ðàâíû
  543. colors_end:
  544. ;---------------------------------------------------------------------
  545. UDATA
  546.  
  547. test_pid        dd      ?                       ; åñëè test_id == 0 - íå èìååò ñìûñëà
  548. test_id         db      ?                       ; 0 - òåñò íå çàïóøåí (ñîîòâåòñòâóåò ¹ êíîïêè 6..10)
  549. diag_add_v      db      ?                       ; 0 - íå äîáàâëÿòü äàííûå íà ãðàôèê, !0 - äîáàâëÿòü
  550.  
  551. Vendor:         times   12 db ?
  552. CPU_fam:        db      ?
  553. CPU_mod:        db      ?
  554. CPU_type:       db      ?
  555. CPU_mmx:        db      ?
  556.  
  557. ; Äëÿ ðåàêöèè íà èçìåíåíèÿ
  558. old_t1:         dd      ?       ; ïîñëåäíåå çíà÷åíèå temp1
  559. old_t2:         dd      ?       ; ...
  560. old_t3:         dd      ?
  561. old_f1:         dd      ?
  562. old_f2:         dd      ?
  563. old_f3:         dd      ?
  564. old_volts:      times   7 dd ?
  565.  
  566. ; Ãðôèêè
  567. diag_beg:
  568. d_cpu_load:     dd      ?
  569.                 times 286 db ?
  570.                
  571. d_mem_usage:    dd      ?
  572.                 times 286 db ?
  573.                
  574. d_temp1:        dd      ?
  575.                 times 286 db ?
  576.                
  577. d_temp2:        dd      ?
  578.                 times 286 db ?
  579.  
  580. d_temp3:        dd      ?
  581.                 times 286 db ?
  582. diag_end:
  583.  
  584. ; --- ñòåê òåñòà, âîèçáåæàíèå ãëþêîâ íå ïåðåíîñèòü â äðóãîå ìåñòî ----
  585. th_stack:       times   1024 db ?
  586. stp:
  587. ;---------------------------------------------------------------------
  588. MEOS_APP_END
  589.