Subversion Repositories Kolibri OS

Rev

Rev 223 | 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. ;
  42. ;    Ýé! Ó ìåíÿ íåò ìíîãî âðåìåíè.
  43.  
  44. ; Âíåøíèå ôàéëû :
  45. ;       hwm*.inc        - ïðîöåäóðû ðàáîòû ñ äàò÷èêàìè ìîíèòîðèíãà
  46. ;       system.inc      - âû÷èñëåíèå çàãðóçêè ïðîöåññîðà, çàâåðøåíèå òåñòà, etc...
  47. ;       tests.inc       - òåñòû ;-)
  48. ;       diag.inc        - ïîääåðæêà äèàãðàì
  49. ;       *_tab.inc       - ïðîöåäóðû îòðèñîâêè ñîîòâåòñòâóþøèõ âêëàäîê
  50.  
  51.  
  52. ; Èäåíòèôèêàòîðû êíîïîê :
  53. ;       01 - Exit
  54. ;       02 - Info tab
  55. ;       03 - Tests tab
  56. ;       04 - Config tab
  57. ;       05 - About tab
  58. ;       06 - P5 test
  59. ;       07 - P6 test
  60. ;       08 - K6 test
  61. ;       09 - K7 test
  62. ;       10 - MMX test   - not used
  63. ;       11 - Update time increment
  64. ;       12 - Update time decriment
  65. ;       13..17 - Èçìåíåíèå öâåòà CPU_load, Mem_usage, Temp1, Temp2, Temp3
  66.  
  67. include 'config.inc'
  68. include 'macros.inc'
  69.  
  70. tcol    equ     0x5080d0
  71. atcol   equ     0x4070c0
  72. val_mod equ     0x3090
  73.  
  74. MEOS_APP_START
  75. include "tests.inc"     ; <-- Ìíîãî âûðàâíèâàíèé, ëó÷øå çäåñü
  76. CODE
  77. ;--- Init ------------------------------------------------------------
  78.         ; Î÷èùàåì íåèíèöèàëèçèðîâàííûå äàííûå
  79.         mov     ecx, __memory - __udata
  80.         mov     edi, __udata
  81.         xor     eax, eax
  82.         rep     stosb
  83.  
  84.         xor     eax, eax
  85.         cpuid                                   ; Óçíà¸ì ïðîèçâîäèòåëÿ ïðîöà
  86.         mov     [Vendor + 0], ebx
  87.         mov     [Vendor + 4], edx
  88.         mov     [Vendor + 8], ecx
  89.         mov     eax, 1
  90.         cpuid                                   ; Åñòü ëè MMX ?
  91.         mov     ecx, eax
  92.         shr     al, 4
  93.         and     ax, 0x0F0F
  94.         mov     [CPU_fam], ah
  95.         mov     [CPU_mod], al
  96.         shr     edx, 23
  97.         and     dl, 1
  98.         mov     [CPU_mmx], dl
  99.         shr     ecx, 12
  100.         and     cl, 11b
  101.         mov     [CPU_type], cl
  102.        
  103.         ; ! Öâåòà èç ìàññèâà colors
  104.         mov     dword[d_cpu_load], 0xFF00       ; èíèöèàëèçèðóåì ãðàôèê çàãðóçêè ÀËÓ
  105.         mov     dword[d_mem_usage], 0x8BA169    ; -- mem usega
  106.         mov     dword[d_temp1], 0xFF0000        ; -- ãðàôèê òåìïåðàòóðû ÖÏÓ
  107.         mov     dword[d_temp2], 0xFF            ; -- ãðàôèê òåìïåðàòóðû ÌÏ
  108.         mov     dword[d_temp3], 0xFF7E23
  109.  
  110.         call    hwm_init                        ; Èíèöèàëèçèðóåì ÷èï ìîíèòîðèíãà
  111.  
  112.         jmp     draw_window
  113. ;--- Wait & translate event ------------------------------------------
  114. wait_for_event:
  115.         mov     byte[diag_add_v], 0     ; äîáàâëÿåì äàííûå ê ãðàôèêó òîëüêî ïî òàéìåðó
  116.         mov     ebx, [update_time]
  117.         mov     eax, 23
  118.         int     0x40
  119.         test    eax, eax
  120.         jnz     @f
  121.         inc     byte [diag_add_v]
  122.         inc     eax                     ; ïåðåðèñóåì îêíî (eax := 1)
  123. @@:     dec     eax                     ; redraw request ?
  124.         jz      draw_window
  125.         dec     eax                     ; key in buffer ?
  126.         jz      key
  127.         dec     eax                     ; button in buffer ?
  128.         jz      button
  129.         jmp     wait_for_event
  130. ;--- Key pressed -----------------------------------------------------
  131. key:
  132.         mov     eax, 2
  133.         int     0x40
  134.         cmp     ah, 27                  ; Esc - çàâåðøåíèå ðàáîòû
  135.         je      exit
  136.         jmp     wait_for_event
  137. ;--- Button down -----------------------------------------------------
  138. button:
  139.         mov     eax, 17                 ; get id
  140.         int     0x40
  141.         cmp     ah, 1                   ; button id == 1 ?
  142.         jne     noexit
  143. exit:   cmp     byte[test_id], 0
  144.         je      @f
  145.         call    stop_test
  146. @@:     mov     eax, -1         ; close this program
  147.         int     0x40
  148. noexit:
  149.         ; êíîïêè âêëàäîê (2 .. 5)
  150.         cmp     ah, 5
  151.         jg      no_tabs
  152.         mov     byte[act_tab], ah
  153.         jmp     draw_window
  154. no_tabs:
  155.         ; êíîïêè çàïóñêà òåñòâî (6 .. 10)
  156.         cmp     ah, 10
  157.         jg      no_test_bt
  158.         ; åñëè íåò çàïóùåíûõ òåñòîâ - çàïóñêàåì âûáðàííûé
  159.         cmp     byte[test_id], 0
  160.         je      run_test
  161.         ; åñëè êíîïêà àêòèâíîãî òåñòà - îñòàíàâëèâàåì òåñò, èíà÷å íè÷åãî íå äåëàåì     
  162.         cmp     [test_id], ah
  163.         jne     wait_for_event
  164.         call    stop_test
  165.         jmp     draw_window
  166.  
  167. tsts:   dd      p5, p6, k6, k7
  168. run_test:
  169.         push    eax
  170.         movzx   ecx, ah
  171.         mov     ecx, [tsts + (ecx * 4) - (6 * 4)]
  172. rtst:   mov     eax, 51
  173.         mov     edx, stp
  174.         mov     ebx, 1
  175.         int     0x40
  176.         cmp     eax, 0xFFFFFFF0 ; -16
  177.         je      wait_for_event  ; <-- îøèáêà çàïóñêà òåñòà, ÏÅÐÅÏÈÑÀÒÜ
  178.         mov     [test_pid], eax
  179.         pop     eax
  180.         mov     byte [test_id], ah
  181.         jmp     draw_window
  182.         ;-------------------------
  183.         ; êíîïêè èçìåíåíèÿ âðåìåíè îáíîâëåíèÿ
  184. no_test_bt:
  185.         cmp     ah, 11
  186.         jne     no_ut_inc
  187.         add     dword[update_time], 10
  188.         jmp     draw_window
  189. no_ut_inc:
  190.         cmp     ah, 12
  191.         jne     no_ut_dec
  192.         cmp     dword[update_time], 10
  193.         jng     wait_for_event
  194.         sub     dword[update_time], 10
  195.         jmp     draw_window
  196. no_ut_dec:
  197.         ;-------------------------
  198.         ; êíîïêè èçìåíåíèÿ öâåòà ãðàôèêîâ (13..17)
  199.         cmp     ah, 17
  200.         jg      no_change_color
  201.         sub     ah, 13
  202.         movzx   ecx, ah
  203.         mov     esi, [d_colors + ecx * 4]
  204.         mov     eax, [esi]
  205.         call    next_color
  206.         mov     [esi], ebx
  207.         jmp     draw_window
  208. no_change_color:
  209.  
  210.         jmp     wait_for_event
  211. ;---------------------------------------------------------------------
  212. ; Öâåòà ãðàôèêîâ
  213. colors: dd      0xff0000, 0xff00, 0xff, 0xffffff, tcol, 0xFF7E23, 0x8BA169, 0xff0000    ; ïåðâûé è ïîñëåäíèé ðàâíû
  214. next_color:
  215.         mov     ecx, (next_color - colors) / 4  ; êîëè÷åñòâî öâåòîâ
  216. @@:     dec     ecx
  217.         cmp     eax, [colors + ecx * 4]
  218.         jne     @b
  219.         mov     ebx, [colors + ecx * 4 - 4]
  220.         ret
  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 + 430
  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, 118 * 65536 + 105
  238.         mov     edx, atcol
  239.         int     0x40
  240.         mov     ebx, 12 * 65536 + 286
  241.         mov     ecx, 120 * 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, 120 * 65536 + 120
  248. @@:     add     ecx, 10 * 65536 + 10
  249.         int     0x40
  250.         cmp     cx, 210                 ; ïðèâÿçàíî ê êîîðäèíàòàì îêíà
  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, 6  ;<- êîëè÷åñòâî ïàðàìåòðîâ
  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, 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[temps]
  364.         mov     esi, d_temp1
  365.         call    d_add
  366.         call    d_show
  367.         ;;--- äîáàâëÿåì íà ãðàôèê temp2 ---
  368.         movzx   eax, word[temps + 2]
  369.         mov     esi, d_temp2
  370.         call    d_add
  371.         call    d_show
  372.         ;;--- äîáàâëÿåì íà ãðàôèê temp3 ---
  373.         movzx   eax, word[temps + 4]
  374.         mov     esi, d_temp3
  375.         call    d_add
  376.         call    d_show
  377.  
  378.         ;---------------------------
  379.         ; Ñêîðîñòè âðàøåíèÿ âåíòèëåé
  380.         mov     ecx, 3
  381.         mov     esi, 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, Vcore
  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, 230 * 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 + 240
  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, 255 * 65536 + 160
  471.         mov     edx, atcol
  472.         int     0x40
  473.         mov     ebx, 12 * 65536 + 286
  474.         mov     ecx, 257 * 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 "info_tab.inc"
  494. ;--- Drow test tab ---------------
  495. test_tab:
  496.         include "test_tab.inc"
  497. ;--- Drow Config tab -------------
  498. config_tab:
  499.         include "conf_tab.inc"
  500. ;--- Drow About tab --------------
  501. about_tab:
  502.         include "abou_tab.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.3 [30/07/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.        
  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. UDATA
  541.  
  542. test_pid        dd      ?                       ; åñëè test_id == 0 - íå èìååò ñìûñëà
  543. test_id         db      ?                       ; 0 - òåñò íå çàïóøåí (ñîîòâåòñòâóåò ¹ êíîïêè 6..10)
  544. diag_add_v      db      ?                       ; 0 - íå äîáàâëÿòü äàííûå íà ãðàôèê, !0 - äîáàâëÿòü
  545.  
  546. Vendor:         times   12 db ?
  547. CPU_fam:        db      ?
  548. CPU_mod:        db      ?
  549. CPU_type:       db      ?
  550. CPU_mmx:        db      ?
  551.  
  552. ; Äëÿ ðåàêöèè íà èçìåíåíèÿ
  553. old_t1:         dd      ?       ; ïîñëåäíåå çíà÷åíèå temp1
  554. old_t2:         dd      ?       ; ...
  555. old_t3:         dd      ?
  556. old_f1:         dd      ?
  557. old_f2:         dd      ?
  558. old_f3:         dd      ?
  559. old_volts:      times   7 dd ?
  560.  
  561. ; Ãðôèêè
  562. diag_beg:
  563. d_cpu_load:     dd      ?
  564.                 times 286 db ?
  565.                
  566. d_mem_usage:    dd      ?
  567.                 times 286 db ?
  568.                
  569. d_temp1:        dd      ?
  570.                 times 286 db ?
  571.                
  572. d_temp2:        dd      ?
  573.                 times 286 db ?
  574.  
  575. d_temp3:        dd      ?
  576.                 times 286 db ?
  577. diag_end:
  578.  
  579. ; --- ñòåê òåñòà, âîèçáåæàíèå ãëþêîâ íå ïåðåíîñèòü â äðóãîå ìåñòî ----
  580. th_stack:       times   1024 db ?
  581. stp:
  582. ;---------------------------------------------------------------------
  583. MEOS_APP_END
  584.