Subversion Repositories Kolibri OS

Rev

Rev 485 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. newrating:
  2.  
  3. cmp [freqbb], 151
  4. jl f266
  5.  
  6. cmp [freqbb], 150
  7. ja ft
  8.  
  9. jmp vyxod
  10. ft:
  11.  
  12. cmp [freqbb], 180
  13. ja f400
  14.  
  15. cmp [freqbb], 181
  16. jl f333
  17. jmp vyxod
  18. f266:
  19.  
  20. ;ôîðìóëû âû÷èñëåíèÿ XP-ðåéòèíãà Athlon-îâ (Tbred, Barton):
  21. ;FSB266/256kB:   ñäåëàíî
  22. ;XP+ (Freq<2000MHz) = 1000 + (Freq-1000)*1,5 = Freq*1.5-500
  23. ;XP+ (Freq>=2000MHz) = 900 + (Freq-1000)*1,5 = Freq*1.5-600
  24.  
  25.    mov [FRS], 266
  26.  
  27.    cmp [total], 2000
  28.    jl pal
  29.  
  30.     ; Ðåéòèíã äëÿ Ïàëîìèíî 2000+
  31.     mov eax,[total]
  32.     imul eax, 3
  33.     shr eax,1
  34.     sub eax, 600
  35.     mov [rating], eax
  36.  
  37. jmp vyxod
  38.  
  39. pal:
  40.  
  41.     ; Ðåéòèíã äëÿ Ïàëîìèíî 2000-
  42.     mov eax,[total]
  43.     imul eax, 3
  44.     shr eax,1
  45.     sub eax, 500
  46.     mov [rating], eax
  47.  
  48. jmp vyxod
  49.  
  50.  
  51. f333:
  52.  
  53. mov [FRS], 333
  54.  
  55.  
  56.  cmp [L2], 256
  57.  jl .Th ; Thorton
  58.  
  59. ;FSB333/512kB: ñäåëàíî
  60. ;XP+ (Freq<2100MHz) = Freq*1.2 + 300
  61. ;XP+ (Freq>=2100MHz) = Freq*1.2 + 400
  62.  
  63. cmp [total], 2100
  64. jl .r2100
  65.    mov eax,[total]
  66.    xor edx, edx
  67.    imul eax, 600000
  68.    mov  ebx, 500000
  69.    div ebx
  70.    mov  [rating], eax
  71.    add [rating], 400
  72.  
  73. ; Rating for Barton F<2000 MHz
  74. jmp vyxod
  75.  
  76. .r2100:
  77.     mov eax,[total]
  78.     xor edx, edx
  79.     imul eax, 600000
  80.     mov  ebx, 500000
  81.     div ebx
  82.     mov  [rating], eax
  83.     add [rating], 300
  84.  
  85.  
  86.  ; Rating for Barton F>2000 MHz
  87. jmp vyxod
  88.  
  89. ;FSB333/256kB: ñäåëàíî
  90. ;XP+ = Freq*1.2 + 100
  91.  
  92. .Th:
  93.  
  94.     mov eax,[total]
  95.     xor edx, edx
  96.     imul eax, 600000
  97.     mov  ebx, 500000
  98.     div ebx
  99.     mov  [rating], eax
  100.     add [rating], 100
  101.  
  102.  
  103. ;Rating for Thorton
  104.  
  105.  
  106. jmp vyxod
  107.  
  108. f400:
  109. mov [FRS], 400
  110.  
  111. ;FSB400/512kB:
  112. ;XP+ = Freq*1.5 - 100
  113.  
  114.   mov eax,[total]
  115.   imul eax, 3
  116.   shr eax,1
  117.   sub eax, 100
  118.   mov [rating], eax
  119.  
  120. vyxod:
  121.  
  122.  
  123. ret
  124.  
  125.  
  126. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  127.  
  128. multipl:
  129. ;--- âû÷èñëåíèå êîýôôèöèåíòà óìíîæåíèÿ -
  130. ; ïîðòèò ðåãèñòðû
  131. ; out : CL = êîýôô.óìíîæåíèÿ * 10, èëè 0
  132.  
  133.   xor  ecx, ecx
  134.  
  135.   cmp dword[smallvendor], 'cAMD'  ; Check for Advanced Micro Devices CPU
  136.   jne  noAMD
  137.   cmp  byte [f], 5
  138.   jne  noAMDK6
  139.   mov  eax, 68    ; AMD-K6 (p.30)
  140.   mov  ebx, 3
  141.   mov  edx, 0x0C0000087
  142.   mcall    ; eax - low dword
  143.   and  eax, 111b
  144.   mov  cl, [athloncoef3 + eax]
  145.   cmp  eax, 6
  146.   jne  @f
  147.   cmp  byte[m], 8
  148.   jae  @f
  149.   mov  cl, 20
  150. @@:  ret
  151.  
  152. noAMDK6:cmp     byte [f], 6
  153.         jne     noAMDK7
  154.         cmp     byte [m], 5
  155.         jna     @f
  156.         mov     eax, 0x80000007
  157.         cpuid
  158.         and     edx, 6          ;  voltage ID control & frequency ID control
  159.         cmp     edx, 6
  160.         je      AMDK7M
  161. @@:     mov     eax, 68         ; Athlon/AthlonXP
  162.         mov     ebx, 3
  163.         mov     edx, 0x0C0010015
  164.         mcall
  165.         mov     ebx, eax
  166.         shr     ebx, 24
  167.         and     ebx, 0x0F
  168.         shr     eax, 20
  169.         jnc     @f
  170.         add     bl, 16
  171. @@:     mov     cl, [athloncoef + ebx]
  172.         ret
  173.  
  174. AMDK7M: mov     eax, 68         ; AthonXP-M
  175.         mov     ebx, 3
  176.         mov     edx, 0xC0010042
  177.         mcall
  178.         and     eax, 0x1F
  179.         mov     cl, [athlonmcoef + eax]
  180.         ret
  181.  
  182. noAMDK7:cmp     byte [f], 0xF
  183.         jne     noAMDK8
  184.         mov     eax, 0x80000007
  185.         cpuid
  186.         and     edx, 6          ;  voltage ID control & frequency ID control
  187.         cmp     edx, 6
  188.         je      AMDK8M
  189.         mov     eax, 68         ; Athon64
  190.         mov     ebx, 3
  191.         mov     edx, 0xC0010015
  192.         mcall
  193.         shr     eax, 24
  194.         and     al, 0x3F
  195.         shr     al, 1
  196.         add     al, 4
  197.         mov     dl, 10
  198.         mul     dl
  199.         mov     cl, al
  200.         ret
  201.  
  202. AMDK8M: mov     eax, 68         ; Athon64-M
  203.         mov     ebx, 3
  204.         mov     edx, 0xC0010042
  205.         mcall
  206.         and     al, 0x3F
  207.         shr     al, 1
  208.         add     al, 4
  209.         mov     dl, 10
  210.         mul     dl
  211.         mov     cl, al
  212.         ret
  213. ;/////////////////////////////////////////////////////////     
  214. noAMD:  cmp     dword [smallvendor], 'ntel'     ; Check for International Electronics CPU
  215.         jne     noIntel
  216.         cmp     byte[f], 0x0F
  217.         jne     noIntelP4
  218.         cmp     byte [t], 6
  219.         jne     @f
  220.         mov     eax, 68         ; Pentium M
  221.         mov     ebx, 3
  222.         mov     edx, 0x2A
  223.         mcall
  224.         shr     eax, 22
  225.         and     eax, 0x1F
  226.         mov     dl, 10
  227.         mul     dl
  228.         mov     cl, al
  229.         ret
  230. @@:     cmp     byte [m], 2
  231.         jae     @f
  232.         mov     eax, 68         ; Pentium 4 / Xeon (model < 2) Willamete
  233.         mov     ebx, 3
  234.         mov     edx, 0x2A
  235.         mcall
  236.         shr     eax, 8
  237.         and     eax, 0x0F
  238.         mov     cl, [p4coef + eax]
  239.         ret
  240. @@:     mov     eax, 68         ; Pentium 4 / Xeon (model >= 2) NorthWood
  241.         mov     ebx, 3
  242.         mov     edx, 0x2C
  243.         mcall
  244.         shr     eax, 24
  245.         and     eax, 0x1F
  246.         mov     dl, 10
  247.         mul     dl
  248.         mov     cl, al
  249.         ret    
  250. noIntelP4:
  251.         cmp     byte[f], 6
  252.         jne     noIntelP6
  253.         mov     eax, 68         ; Pentium Pro / Pentium II / Pentium III
  254.         mov     ebx, 3
  255.         mov     edx, 0x2A
  256.         mcall
  257.         shr     eax, 22
  258.         test    al, 0x20
  259.         jz      @f
  260.         or      al, 0x10
  261. @@:     and     eax, 0x1f
  262.  
  263.         cmp     byte[m], 0x06 ; ? 7
  264.         ja      @f
  265.         and     al, 0x0f
  266. @@:
  267.         mov     cl, [coppercoeff + eax]
  268.         cmp     byte[m], 0x0B
  269.         jb      @f
  270.         mov     cl, [tualatcoeff + eax]
  271.        
  272.         cmp     byte[m], 0x0B
  273.         je      @f
  274.         mov     dl, 10          ; model 0x0C - 0x0F - Dothan / Yonah  / Conroe / Merom
  275.         mul     dl
  276.         mov     cl, al
  277.        
  278. @@:     ret
  279.  
  280. noIntel:
  281. noIntelP6:
  282. noAMDK8:
  283.   ret