Subversion Repositories Kolibri OS

Rev

Rev 3604 | 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. ; Äîïèñàòü åù¸ ÷òîèòü (ìàëîâàòî áóäåò)
  11. ;
  12. ;
  13.  
  14.         ; Ïèøåì ïàðàìåòðû
  15.         mov     edx, lab_info_tab
  16.         mov     ebx, 17 * 65536 + 285
  17.         call    show_text
  18.  
  19.         ; Ïèøåì ïðîèçâîäèòåëÿ ïðîöåññîðà
  20.         mov     edx, Vendor
  21.         mov     esi, 12
  22.         mov     ebx, 160 * 65536 + 285
  23.         int     0x40
  24.         ; Ïîääåðæêà MMX
  25.         mov     ebx, 160 * 65536 + 305
  26.         mov     esi, 3
  27.         mov     edx, msg_yes
  28.         cmp     byte[CPU_mmx], 1
  29.         je      mmx_en
  30.         mov     edx, msg_no
  31. mmx_en: int     0x40
  32.         ; ×èï ìîíèòîðèíãà
  33.         mov     edx, [hwm_chip_name]
  34.         or      ecx, 0x80000000
  35.         mov     ebx, 160 * 65536 + 325
  36.         mov     al, 4
  37.         int     0x40
  38.         ; ×àñòîòà ïðîöåññîðà
  39.         mov     eax, 18
  40.         mov     ebx, 5
  41.         int     0x40
  42.  
  43.         xor     edx, edx
  44.         mov     ebx, 1000000
  45.         div     ebx
  46.         mov     ecx, eax
  47.         call    digit_len
  48.         mov     eax, 47
  49.         mov     edx, 160 * 65536 + 295
  50.         xor     esi, esi
  51.         int     0x40
  52.  
  53.         ; push  eax                     ; Âåðíóòü êîä ïîñëå èñïðàâëåíèÿ ftoa
  54.         ; fild  dword[esp]
  55.         ; push  1000;000
  56.         ; fidiv dword[esp]
  57.         ; fidiv dword[esp]
  58.         ; fstp  dword[esp]
  59.         ; mov   esi, esp
  60.         ; call  ftoa
  61.         ; mov   ebx, 160 * 65536 + 295
  62.         ; mov   edx, Data_String
  63.         ; mov   eax, 4
  64.         ; mov   esi, 7
  65.         ; xor   ecx, ecx
  66.         ; int   0x40
  67.         ; pop   eax
  68.         ; pop   eax
  69.  
  70.         ; Ñåìåéñòâî è ìîäåëü ïðîöåññîðà
  71.         mov     eax, 47
  72.         mov     ebx, 0x10100
  73.         xor     ecx, ecx
  74.         mov     cl, [CPU_fam]
  75.         mov     edx, 250 * 65536 + 285
  76.         xor     esi, esi
  77.         int     0x40
  78.         mov     cl, [CPU_mod]
  79.         add     edx, 10 * 65536
  80.         int     0x40
  81.  
  82.         ; êîýôôèöèåíò óìíîæåíèÿ
  83.         call    multiplier
  84.         test    ecx, ecx
  85.         jz      @f
  86.         movzx   ecx, cl
  87.         push    ecx
  88.         fild    dword[esp]
  89.         push    10
  90.         fidiv   dword[esp]
  91.         fstp    dword[esp]
  92.         mov     esi, esp
  93.         call    ftoa
  94.         mov     ebx, 160 * 65536 + 315
  95.         mov     edx, Data_String
  96.         mov     eax, 4
  97.         mov     esi, eax
  98.         xor     ecx, ecx
  99.         int     0x40
  100.         pop     eax
  101.         pop     eax
  102. @@:
  103.         ; Ñâîáîäíàÿ ïàìÿòü
  104. if (OS_version >= 0x0530)
  105.         mov     eax, 18
  106.         mov     ebx, 16
  107.         int     0x40
  108.         mov     ecx, eax
  109.         call    digit_len
  110.         mov     eax, 47
  111.         mov     edx, 160 * 65536 + 335
  112.         xor     esi, esi
  113.         int     0x40
  114. end if
  115.  
  116.         ; Ðàññòàâëÿåì äâîåòî÷èÿ
  117.         mov     eax, 4
  118.         mov     ebx, 152 * 65536 + 285
  119.         mov     edx, dub_p
  120.         mov     esi, 1
  121.         mov     ecx, 6          ; <- êîëè÷åñòâî ñòðîê
  122. nxt_dp: push    ecx
  123.         xor     ecx, ecx
  124.         int     0x40
  125.         add     ebx, 10
  126.         pop     ecx
  127.         loop    nxt_dp
  128. ;---------------------------------------------------------------------
  129.         jmp     end_drow_tab
  130. dub_p   db      ':'
  131.  
  132. if lang eq it
  133.         lab_info_tab mls \
  134.                 'Vendor CPU',\
  135.                 'Frequenza CPU (MHz)',\
  136.                 'MMX tehnology',\
  137.                 'Multiplier',\
  138.                 'Monitoring chip',\
  139.                 'Memoria libera (Kb)'
  140. else
  141.         lab_info_tab mls \
  142.                 'CPU Vendor',\
  143.                 'CPU frequency (MHz)',\
  144.                 'MMX tehnology',\
  145.                 'Multiplier',\
  146.                 'Monitoring chip',\
  147.                 'Free memory (Kb)'
  148. end if
  149.