Subversion Repositories Kolibri OS

Rev

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

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