Subversion Repositories Kolibri OS

Rev

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