Subversion Repositories Kolibri OS

Rev

Rev 243 | Rev 251 | 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
  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.