Subversion Repositories Kolibri OS

Rev

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