Subversion Repositories Kolibri OS

Rev

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

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