Subversion Repositories Kolibri OS

Rev

Rev 3587 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
223 Ghost 1
;******************************************************************************
4107 mario79 2
; project name:  CPUID                                                        *
3
; platform:      KolibriOS, x86 (IA-32), x86-64 achitectures                  *
4
; compiler:      flat assembler 1.70.03                                       *
5
; version:       2.28                                                         *
6
; last update:   23rd October 2013                                            *
7
; maintained by: Sergey Kuzmin aka Wildwest                                   *
8
; e-mail:        kuzmin_serg@list.ru                                          *
9
; site:          http://coolthemes.narod.ru/files.html                        *
10
; license:       Copyright 2004-2013 Sergey Kuzmin and co-authors             *
11
;                Rules:                                                       *
12
;                1)you can use pieces of code in your project, but should     *
13
;                mention the original author (include copyright notice);      *
14
;                2)if you modify CPUID (improve, port, translate, etc) send   *
15
;                your changes to the maintainer or make about post changes    *
16
;                at forum  http://board.kolibrios.org/viewtopic.php?f=42&t=594*
223 Ghost 17
;-----------------------------------------------------------------------------*
18
; English comments                                                            *
19
;------------------------------------------------------------------------------
20
use32
21
  org	 0x0
22
  db	 'MENUET01'
23
  dd	 0x01
24
  dd	 START
25
  dd	 I_END
451 heavyiron 26
  dd U_END+4096
27
  dd U_END+4096
223 Ghost 28
  dd	 0x0
29
  dd	 0x0
30
 
4107 mario79 31
include 'lang.inc'                              ; language support
485 heavyiron 32
include '..\..\..\macros.inc' ; useful macroses
33
include 'draw.inc'
34
include 'brand.inc'           ;Brand ID decoding
35
include 'caches.inc'          ;(L1 and L2 cashes decoding for Intel)
36
include 'multipli.inc'        ;(multiplier decoding)
37
include 'features.inc'        ;(features decoding)
223 Ghost 38
 
39
include 'rsatest.inc'
40
include 'variable.inc'
41
 
318 heavyiron 42
 
43
 
223 Ghost 44
START:			;   LET'S GO!!!
45
;------------
46
CYCLES:
47
;    CPU speed
48
    mov eax, 18
49
    mov ebx,5
485 heavyiron 50
    mcall
318 heavyiron 51
    mov [total1],eax  ;in Hz,  example 1600490000
223 Ghost 52
    xor  edx,edx
53
    mov  ebx,1000000
54
    div  ebx
318 heavyiron 55
    mov [total], eax  ; in Mhz,  example 1600
223 Ghost 56
    xor edx, edx
57
    mov eax, [total1]
58
    mov ebx, 10000
59
    div ebx
60
    mov [ost], eax    ; example 160049
532 diamond 61
    mov ecx, [total]
62
    imul ecx, 100
63
    neg  ecx
64
    add  ecx, eax
65
    mov [sot], ecx    ; example 49
223 Ghost 66
;------------
67
cpu:		      ;is CPUID supported?
68
  pushfd	      ;push original EFLAGS
69
  pop eax	      ;get original EFLAGS
70
  mov ebx, eax	      ;save original EFLAGS
71
  xor eax, 00200000h  ;flip 21th bit in EFLAGS
72
  push eax	      ;save new EFLAGS value on stack
73
  popfd 	      ;replace current EFLAGS value
74
  pushfd	      ;get new EFLAGS
75
  pop eax	      ;store new EFLAGS in EAX
76
  cmp eax, ebx	      ;compare values of 21th bit
77
  jz NO_CPUID	      ;CPUID isn't supported
78
;------------
79
CPUNAME:	      ; VENDOR
80
    mov   eax,0       ; eax=0
81
    cpuid
82
 
83
    mov [stdc], eax   ; number of calls
84
    mov   [cpuname+ 12],ebx
85
    mov   [cpuname+ 16],edx
86
    mov   [cpuname+ 20],ecx
87
    mov   [smallvendor],ecx
88
 
89
; for various vendors we should later use different methods
90
 
91
;Decoding cache L1 and L2 for Intel
92
 
532 diamond 93
  cmp ecx, 'ntel'
223 Ghost 94
  jne cpu1     ;is not Intel
95
 
96
;Starting L1, L2, L3 caches detection (Intel made it VERY HARD)
97
 
98
mov eax, 2
99
cpuid
100
 
101
mov [che], al	     ; number of calls
102
multik:
103
 
104
.eaxl:
532 diamond 105
test  eax, eax       ;    Test bit 31
106
js    .ebxl	     ;    <> 0 =>invalid values
107
call decodecache24
223 Ghost 108
.ebxl:
532 diamond 109
test  ebx, ebx
110
js    .ecxl
223 Ghost 111
mov eax, ebx
532 diamond 112
call decodecache32
223 Ghost 113
.ecxl:
532 diamond 114
test  ecx, ecx
115
js    .edxl
223 Ghost 116
mov eax, ecx
532 diamond 117
call decodecache32
223 Ghost 118
.edxl:
532 diamond 119
test  edx, edx
120
js    cpu1
223 Ghost 121
mov eax, edx
532 diamond 122
call decodecache32
223 Ghost 123
 
532 diamond 124
dec [che]    ; we made all calls
223 Ghost 125
je cpu1
126
 
127
multi: ; not yet
128
 
129
mov eax, 2  ; so we made call again
130
cpuid
131
 
132
jmp multik
133
 
134
;  FAMILY MODEL STEPPING
135
cpu1:
136
    xor eax, eax
137
    inc eax	  ; eax=1
138
    cpuid
139
 
140
mov ecx, eax
141
shr ecx,8	  ;   shift it to the correct position
532 diamond 142
and ecx,0000000Fh ;   get CPU family
223 Ghost 143
mov dword[f],ecx
144
 
145
mov ecx, eax
146
shr ecx,4
532 diamond 147
and ecx,0000000Fh ;    get CPU model
223 Ghost 148
mov dword[m],ecx
149
 
150
mov ecx, eax
151
and ecx,0000000Fh ;   get CPU stepping
152
mov dword[s],ecx
153
 
154
;-
155
mov ecx, eax	  ; get Type
156
shl ecx, 18
157
shr ecx,30
158
;and ecx, 0000000Fh ; only two lower bits can be nonzero
159
mov dword[t], ecx
160
;=======================================================
161
 
162
cmp dword[smallvendor], 'cAMD'
163
jz maybe_athlon
164
cmp dword[smallvendor], 'ntel'
532 diamond 165
jnz no_full   ; if not AMD or Intel
223 Ghost 166
 
4107 mario79 167
;detect_it:
168
;cmp [f], 0Fh
169
;jne no_full   fixed calculation of extended model for Intel
223 Ghost 170
 
171
full:
172
 
173
mov ecx, eax	      ; get Extended model
174
shr ecx,16	      ;shift it to the correct position
4107 mario79 175
and ecx, 0000000Fh
223 Ghost 176
shl ecx, 4
177
add ecx, [m]
178
mov dword[em],ecx     ;  effective    model
179
 
180
mov ecx, eax	      ; get Extended family
181
shr ecx, 20	      ;shift it to the correct position
182
and ecx, 000000FFh
183
add ecx, [f]
318 heavyiron 184
mov dword[ef],ecx     ; effective family
223 Ghost 185
 
186
 
187
jmp fut
188
 
189
no_full:
190
 
191
mov ecx, [m]
192
mov [em], ecx
193
 
194
mov ecx, [f]
195
mov [ef], ecx
196
 
197
jmp fut
198
 
199
maybe_athlon:
318 heavyiron 200
mov eax, 0x80000001		  ; CPUID ext. function 0x80000001
4107 mario79 201
cpuid
223 Ghost 202
mov ecx, eax
203
shr ecx,8	  ;   shift it to the correct position
532 diamond 204
and ecx,0000000Fh ;   get CPU family
223 Ghost 205
mov dword[ef],ecx
206
 
207
mov ecx, eax
208
shr ecx,4
532 diamond 209
and ecx,0000000Fh ;    get CPU model
223 Ghost 210
mov dword[em],ecx
211
 
212
fut:
213
 
214
call decode_sse3
215
;-
216
    call decode_extended
217
 
532 diamond 218
mov  dword [myname], $612F6E
223 Ghost 219
 
532 diamond 220
        cmp     [extc], $80000003
221
        jbe     .noname
223 Ghost 222
 
223
    mov       eax,$80000002
224
    cpuid
225
    mov   [myname],eax
226
    mov   [myname+4],ebx
227
    mov   [myname+8],ecx
228
    mov   [myname+12],edx
229
    mov   eax,$80000003
230
    cpuid
231
    mov   [myname+16],eax
232
    mov   [myname+20],ebx
233
    mov   [myname+24],ecx
234
    mov   [myname+28],edx
235
    mov   eax,$80000004
236
    cpuid
237
    mov   [myname+32],eax
238
    mov   [myname+36],ebx
239
    mov   [myname+40],ecx
240
    mov   [myname+44],edx
241
 
242
.noname:
4107 mario79 243
red:
223 Ghost 244
 
245
;mov byte [multiplier], 115;     ; for testing
246
 
4107 mario79 247
call multipl			      ; get multiplier
223 Ghost 248
mov byte [multiplier], cl
249
 
532 diamond 250
mov   dword [freqbb], 0
4107 mario79 251
mov   dword [freqll], 0
223 Ghost 252
 
532 diamond 253
mov   ebx, dword [multiplier]
254
test  ebx, ebx
255
jz output
223 Ghost 256
 
257
calc:
258
 
259
mov eax,dword [ost]   ; example 166474
260
imul eax, 10	      ; example 1664740
532 diamond 261
xor edx,edx
262
div ebx               ; get system clock (if multiplier detected)
223 Ghost 263
 
532 diamond 264
xor edx, edx                    ; example eax=16647
265
mov ebx, 100
266
div ebx
267
mov dword [freqbb], eax         ; example 166
268
mov dword [freqll], edx         ; example 47
223 Ghost 269
 
270
xor edx, edx
271
    mov eax,dword[multiplier]  ; example 115
272
    mov  ebx,10
273
    div  ebx
274
    mov dword[multb], eax  ;   example 11
532 diamond 275
    mov dword[multa], edx    ; example 5
223 Ghost 276
 
277
output:
278
 
279
   call draw_window    ;     Draw window
280
 
281
typedetect:
532 diamond 282
        mov     edx, t1
283
        cmp     [t], 00b
284
        jz      @f
285
        mov     edx, t2
286
        cmp     [t], 01b
287
        jz      @f
288
        mov     edx, t3
289
        cmp     [t], 11b
290
        jz      @f
291
        mov     edx, t4
292
@@:
293
        mov     ebx, 290*65536 + 250
294
        mov     ecx, 0x80000000
295
        mcall   4
223 Ghost 296
 
297
PROCCORE:    ;   Who are you?
298
; Intel - "GenuineIntel"           +
299
; AMD - "AuthenticAMD"             +
300
; Cyrix - "CyrixInstead"           +
301
; UMC - "UMC UMC UMC "
302
; NexGen - "NexGenDriven"
303
; Centaur - "CentaurHauls"         +
304
; Rise Technology - "RiseRiseRise"
305
; SiS - "SiS SiS SiS "
306
; Transmeta - "GenuineTMx86"       +
307
; National Semiconductor - "Geode by NSC"
4107 mario79 308
; Vortex - "Vortex86 SoC"       + initial support
223 Ghost 309
  cmp dword[smallvendor], 'ntel'
310
  jz Intel
311
  cmp dword[smallvendor], 'cAMD'
312
  jz AMD
313
  cmp dword[smallvendor], 'tead'
314
  jz Cyrix
315
  cmp dword[smallvendor], 'auls'
316
  jz Centaur
317
  cmp dword[smallvendor], 'Mx86'
318
  jz Transmeta
4107 mario79 319
  cmp dword[smallvendor], ' SoC'
320
  jz Vortex
223 Ghost 321
 
322
; cmp ecx, 'UMC '
323
; jz .UMC
324
; cmp ecx, 'iven'
325
; jz .NexGen
326
; cmp ecx, 'Rise'
327
;  jz .Rise
328
; cmp ecx, 'SiS '
329
; jz .SiS
330
; cmp ecx, ' NSC'
331
; jz .NSC
532 diamond 332
; jmp Other   ;  I don't know what to do with you...
223 Ghost 333
Other:
451 heavyiron 334
Text 75,70,0x00000000,other, otherlen-other
223 Ghost 335
    jmp MMXtest
336
;-------------------------
337
 
338
AMD:
339
 
451 heavyiron 340
Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 341
 
532 diamond 342
Text 75,70,,AMDn, AMDnlen-AMDn
223 Ghost 343
 
344
	mov	esi, amd
345
	call	load_gif
515 heavyiron 346
PutImage 135,107,201,49,img_area+8
318 heavyiron 347
;         place   size
223 Ghost 348
 
349
; Relax, man. AMD made PRETTY SIMPLE cache detection routine
350
;CACHE1:
351
mov eax, 80000005h
352
    cpuid
318 heavyiron 353
 
532 diamond 354
movzx eax, cl
318 heavyiron 355
mov [lineld], eax
356
 
357
mov eax, ecx
358
;shl eax, 8
359
;shr eax, 24
360
 
361
and eax,00FF0000h
362
shr eax, 16
363
mov [wayld], eax
364
 
223 Ghost 365
shr ecx, 24
366
mov [L1d], ecx
318 heavyiron 367
 
368
 
532 diamond 369
movzx eax, dl
318 heavyiron 370
mov [lineli], eax
371
 
372
mov eax, edx
373
;shl eax, 8
374
;shr eax, 24
375
 
376
and eax,00FF0000h
377
shr eax, 16
378
mov [wayli], eax
379
 
380
 
223 Ghost 381
shr edx, 24
382
mov [L1i], edx
318 heavyiron 383
 
384
 
223 Ghost 385
;CACHE2:
386
mov eax, 80000006h
387
    cpuid
318 heavyiron 388
 
532 diamond 389
movzx eax, cl
318 heavyiron 390
mov dword[linel2], eax
391
 
532 diamond 392
push ecx
393
shr ecx, 12+1
394
and ecx, 0x7
395
mov eax, 1
396
shl eax, cl
397
mov dword [wayl2], eax
398
pop ecx
318 heavyiron 399
 
223 Ghost 400
shr ecx, 16
401
mov [L2],ecx
318 heavyiron 402
 
223 Ghost 403
    cmp [f], $5
404
    jz .fiv
405
    cmp [f], $6
406
    jz .si
407
    cmp [f], $F
408
    jz fif
409
.fiv:	 ;     Family=5
532 diamond 410
        mov     [micron], 50
411
        mov     edx, A50
412
        cmp     [m], $0
413
        jz      @f
414
        mov     [micron], 35
415
        mov     edx, A51
416
        cmp     [m], $1
417
        jz      @f
418
        mov     edx, A52
419
        cmp     [m], $2
420
        jz      @f
421
        mov     edx, A53
422
        cmp     [m], $3
423
        jz      @f
424
        mov     [micron], 30
425
        mov     edx, A56
426
        cmp     [m], $6
427
        jz      @f
428
        mov     [micron], 25
429
        mov     edx, A57
430
        cmp     [m], $7
431
        jz      @f
432
        mov     edx, A58
433
        cmp     [m], $8
434
        jz      @f
435
        mov     edx, A59
436
        cmp     [m], $9
437
        jz      @f
438
        mov     [micron], 18
439
        mov     edx, A5D
440
@@:
441
        jmp     @f
442
 
223 Ghost 443
.si:   ;    Family=6
532 diamond 444
        mov     [micron], 25
445
        mov     edx, At1
446
        cmp     [m], $1
447
        jz      @f
448
        mov     [micron], 18
449
        mov     edx, At2
450
        cmp     [m], $2
451
        jz      @f
452
        mov     edx, At3
453
        cmp     [m], $3
454
        jz      @f
455
        mov     edx, At4
456
        cmp     [m], $4
457
        jz      @f
458
        cmp     [m], $6
459
        jz      A6
460
        mov     [micron], 13
461
        mov     edx, At7
462
        cmp     [m], $7
463
        jz      @f
464
        cmp     [m], $8
465
        jz      A8
466
        jmp     AA
467
@@:
468
        Text    100,70,0x80000000
469
        jmp     MMXtest
223 Ghost 470
A6:
4107 mario79 471
;        mov     [FRS], 266  ;!!!!!!
223 Ghost 472
 
4107 mario79 473
;        Number  315,90,0,3,dword [FRS],0x000000; MHz
223 Ghost 474
 
532 diamond 475
        call    newrating; !!!!
223 Ghost 476
 
532 diamond 477
        Text    245,70,0x00000000,pr, prlen-pr
223 Ghost 478
 
532 diamond 479
        Number  310,70,0,4,dword [rating],0x000000
480
        mov     edx, At6
481
        jmp     @b
223 Ghost 482
 
483
A8:
484
 
4107 mario79 485
;        mov     [FRS], 266	;!!!!!!
223 Ghost 486
 
4107 mario79 487
;        Number  315,90,0,3,dword [FRS],0x000000; MHz
223 Ghost 488
 
532 diamond 489
        cmp     [L2], 256
490
        jl      .App  ; Applebred
223 Ghost 491
 
532 diamond 492
        call    newrating;!!!!
223 Ghost 493
 
532 diamond 494
        Text    245,70,0x00000000,pr, prlen-pr
495
        Number  310,70,0,4,dword [rating],0x000000
496
        mov     edx, At8
497
        jmp     @b
223 Ghost 498
 
532 diamond 499
.App:
500
        mov     edx, At8a
501
        jmp     @b
223 Ghost 502
 
503
AA:
504
 
4107 mario79 505
;        mov     [FRS], 333; !!!!
532 diamond 506
        Text    245,70,0x00000000,pr, prlen-pr
223 Ghost 507
 
4107 mario79 508
;        Number  315,90,0,3,dword [FRS],0x000000; MHz
223 Ghost 509
 
532 diamond 510
        mov     edx, Atat
511
        cmp     [L2], 256
512
        jl      .Tho ; Thorton
513
        mov     edx, Ata
514
.Tho:
515
        push    edx
223 Ghost 516
 
532 diamond 517
        call    newrating;!!!!!
223 Ghost 518
 
532 diamond 519
        Number  310,70,0,4,dword [rating],0x000000
520
        pop     edx
521
        jmp     @b
223 Ghost 522
 
523
fif:  ;  AMD-64    Family=15
524
 
525
;here is a need to rewrite detection of AMD F-th family according to "Revision Guide for
526
;AMD AthlonTM 64 and  AMD OpteronTM  Processors" 25759.pdf
527
 
528
; checking sse3 for new AMD's is needed
4107 mario79 529
    cmp [m],$1	; Dual-core Opteron
223 Ghost 530
    jz .AF1
318 heavyiron 531
    cmp [m],$3	; Toledo 1024 0.09   // Manchester     ||Windsor Dual Core not supported
223 Ghost 532
    jz .AF3
533
    cmp [m],$4	;Athlon 64 Mobile Athlon 64 FX  ClawHammer (1024) 0.13
534
    jz .AF4
535
    cmp [m],$5	; Opteron     Athlon 64 FX 0.13 (1024)
536
    jz .AF5
318 heavyiron 537
    cmp [m],$7	;Athlon 64 Athlon 64 FX  Clawhammer(1024) 0.13   Sledgehammer(1024)  0.13  // SSE3+ SanDiego(1024)
223 Ghost 538
    jz .AF7
539
   cmp [m],$8 ; Athlon 64 Mobile Athlon 64 FX ClawHammer (1024) 0.13
540
    jz .AF8
541
   cmp [m],$B ; Athlon 64
542
    jz .AFB
543
   cmp [m],$C ;Athlon 64 Newcastle(512) 0.13  Sempron> Paris (256)   0.13  |SSE3+ Sempron >  Palermo FC0 0.09  // (Venice)
544
    jz .AFC
545
   cmp [m],$E  ; Athlon 64    //
546
    jz .AFE
515 heavyiron 547
   cmp [m],$F ; Athlon 64 Winchester(512) |SSE3+ SanDiego(1024)  Venice (512)  Palermo (256) 0.09
223 Ghost 548
    jz .AFF
549
    jmp next_generation
550
.AF1:
551
    mov [micron], 09  ;?
515 heavyiron 552
    Text 100,70,0x00000000,AF1, AF1len-AF1
553
    jmp MMXtest
223 Ghost 554
.AF3:
555
    mov [micron], 09
515 heavyiron 556
    Text 100,70,0x00000000,AF3, AF3len-AF3
557
    jmp MMXtest
223 Ghost 558
.AF4:
559
    mov [micron], 13
515 heavyiron 560
    Text 100,70,0x00000000,AF4, AF4len-AF4
561
    jmp MMXtest
223 Ghost 562
.AF5:
563
    mov [micron], 13
515 heavyiron 564
    Text 100,70,0x00000000,AF5, AF5len-AF5
565
    jmp MMXtest
223 Ghost 566
.AF7:
567
    mov [micron], 13
515 heavyiron 568
    Text 100,70,0x00000000,AF5, AF5len-AF5
569
    jmp MMXtest
223 Ghost 570
.AF8:
515 heavyiron 571
   mov [micron], 13
572
   Text 100,70,0x00000000,AF4, AF4len-AF4  ; AF4, AF5len-AF4
573
   jmp MMXtest
223 Ghost 574
.AFB:
575
    mov [micron], 13
451 heavyiron 576
Text 100,70,0x00000000,AF4, AF4len-AF4
223 Ghost 577
 jmp MMXtest
578
 
579
.AFC:
580
cmp [L2], 512
581
je .AFCn
582
 
583
cmp [sse3sup], 1
584
je .AFCnpal
585
 
586
.AFCnpar:  ; paris
587
    mov [micron], 13
515 heavyiron 588
    Text 100,70,0x00000000,AFCs, AFCslen-AFCs
589
    jmp MMXtest
223 Ghost 590
 
591
.AFCnpal: ; palermo
592
    mov [micron], 9
515 heavyiron 593
    Text 100,70,0x00000000,AFCsp, AFCsplen-AFCsp
594
    jmp MMXtest
223 Ghost 595
 
596
.AFCn: ;newcastle
597
    mov [micron], 13
515 heavyiron 598
    Text 100,70,0x00000000,AFC, AFClen-AFC
599
    jmp MMXtest
223 Ghost 600
 
515 heavyiron 601
.AFE:	; error in cpu
223 Ghost 602
 jmp .AFC
603
 
604
.AFF:
605
 
606
cmp [sse3sup], 1
607
je .AFFsse
608
 
609
.win:
610
mov [micron], 9    ; winchester
611
jmp MMXtest
612
 
613
.AFFsse:
318 heavyiron 614
mov [micron], 9
223 Ghost 615
cmp [L2], 1024
616
jz .AFs
617
cmp [L2], 512
618
jz .AFd
619
cmp [L2], 256
620
jz .AFp
621
 
622
.AFs:
451 heavyiron 623
Text 100,70,0x00000000,AFS, AFSlen-AFS
223 Ghost 624
 jmp MMXtest
625
 
626
.AFd:
451 heavyiron 627
Text 100,70,0x00000000,AFV, AFVlen-AFV
223 Ghost 628
 jmp MMXtest
629
 
630
.AFp:
451 heavyiron 631
Text 100,70,0x00000000,AFCsp, AFCsplen-AFCsp
223 Ghost 632
 jmp MMXtest
633
;-----------------------------------------------
634
Intel:
451 heavyiron 635
Text 75,70,0x00000000,Inteln, Intelnlen-Inteln
223 Ghost 636
 
637
	mov	esi, intel
638
	call	load_gif
515 heavyiron 639
PutImage 135,107,201,49,img_area+8
640
;PutImage 125,107,201,49,img_area+8
318 heavyiron 641
;         place   size
223 Ghost 642
 
643
det:
644
    cmp [f], $5
645
    jz .five
646
    cmp [f], $6
647
    jz .six
648
    cmp [f], $7
649
    jz .sev
650
    cmp [f], $F
651
    jz .fift
652
.five:	      ;Family=5
653
 
451 heavyiron 654
Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 655
 
656
    cmp [m],$0
657
    jz .I0
658
    cmp [m],$1
659
    jz .I1
660
    cmp [m],$2
661
    jz .I2
662
    cmp [m],$3
663
    jz .I3
664
    cmp [m],$4
665
    jz .I4
666
    cmp [m],$7
667
    jz .I7
668
    cmp [m],$8
669
    jz .I8
670
.I0:
451 heavyiron 671
Text 110,70,0x00000000,P50, P50len-P50
223 Ghost 672
   mov [L1d], 8
673
   mov [L1i], 8
674
   mov [L2], 256
675
   mov [micron], 80
676
 jmp MMXtest
677
.I1:
451 heavyiron 678
Text 110,70,0x00000000,P5, P5len-P5
223 Ghost 679
   mov [L1d], 8
680
   mov [L1i], 8
681
   mov [L2], 256
682
   mov [micron], 50
683
 jmp MMXtest
684
.I2:
451 heavyiron 685
Text 110,70,0x00000000,P54C, P54Clen-P54C
223 Ghost 686
   mov [L1d], 8
687
   mov [L1i], 8
688
   mov [L2], 256
689
   mov [micron], 50
690
 jmp MMXtest
691
.I3:
451 heavyiron 692
Text 110,70,0x00000000,P54T, P54Tlen-P54T
223 Ghost 693
   mov [L1d], 8
694
   mov [L1i], 8
695
   mov [L2], 256
696
   mov [micron], 50
697
 jmp MMXtest
698
.I4:
451 heavyiron 699
Text 110,70,0x00000000,P55C, P55Clen-P55C
223 Ghost 700
   mov [L1d], 8
701
   mov [L1i], 8
702
   mov [L2], 256
703
   mov [micron], 35
704
 jmp MMXtest
705
.I7:
451 heavyiron 706
Text 110,70,0x00000000,P54C, P54Clen-P54C
223 Ghost 707
   mov [L1d], 8
708
   mov [L1i], 8
709
   mov [L2], 256
710
   mov [micron], 35
711
 jmp MMXtest
712
.I8:
451 heavyiron 713
Text 110,70,0x00000000,P55C, P55Clen-P55C
223 Ghost 714
   mov [L1d], 16
715
   mov [L1i], 16
716
   mov [L2], 256
717
   mov [micron], 35
718
 jmp MMXtest
719
.six:		   ;Family=6
720
 
451 heavyiron 721
Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 722
 
723
    cmp [m],$0
724
    jz .I60
725
    cmp [m],$1
726
    jz .I61
727
    cmp [m],$3
728
    jz .I63
729
    cmp [m],$5
730
    jz .I65
731
    cmp [m],$6
732
    jz .I66
733
    cmp [m],$7
734
    jz .I67
735
    cmp [m],$8
736
    jz .I68
737
    cmp [m],$9
738
    jz .I69
739
    cmp [m],$A
740
    jz .I6A
741
    cmp [m],$B
742
    jz .I6B
743
   cmp [m],$D
744
    jz .I6D
745
    cmp [m],$E
746
    jz .I6E
747
   cmp [m],$F
748
    jz .I6F
749
.I60:
750
    mov [micron], 50
451 heavyiron 751
Text 110,70,0x00000000,P60, P60len-P60
223 Ghost 752
 jmp MMXtest
753
.I61:
754
    mov [micron], 35
451 heavyiron 755
Text 110,70,0x00000000,P61, P61len-P61
223 Ghost 756
 jmp MMXtest
757
.I63:
758
    mov [micron], 28
451 heavyiron 759
Text 110,70,0x00000000,P63, P63len-P63
223 Ghost 760
 jmp MMXtest
761
.I65:
762
    mov [micron], 25
763
    cmp [L2], 0
764
    jne .pp65  ; Pentium
451 heavyiron 765
Text 110,70,0x00000000,P65c, P65clen-P65c
223 Ghost 766
    jmp MMXtest
767
.pp65:
451 heavyiron 768
Text 110,70,0x00000000,P65, P65len-P65
223 Ghost 769
    jmp MMXtest
770
.I66:
771
    mov [micron], 25
451 heavyiron 772
Text 110,70,0x00000000,P66, P66len-P66
223 Ghost 773
    jmp MMXtest
774
.I67:
775
    mov [micron], 25
4107 mario79 776
Text 110,70,0x00000000,P67, P67len-P67 ;but if SSE4.1 supported then it is Intel Core (Penryn)
223 Ghost 777
    jmp MMXtest
778
.I68:
779
    mov [micron], 18
780
    cmp [L2], 128
781
    jne .pp68  ; Pentium
451 heavyiron 782
Text 110,70,0x00000000,P68c, P68clen-P68c
223 Ghost 783
    jmp MMXtest
784
 .pp68:
451 heavyiron 785
Text 110,70,0x00000000,P68, P68len-P68
223 Ghost 786
    jmp MMXtest
787
.I69:
788
    mov [micron], 13
451 heavyiron 789
Text 110,70,0x00000000,P69 , P69len-P69
223 Ghost 790
    jmp MMXtest
791
.I6A:
792
    mov [micron], 18
4107 mario79 793
Text 110,70,0x00000000,P6A, P6Alen-P6A ;but if SSE4.2 supported then it is Intel Core (Nehalem)
223 Ghost 794
    jmp MMXtest
795
.I6B:
796
    mov [micron], 13
797
    cmp [L2], 256
798
    jne .pp6B  ; Pentium
451 heavyiron 799
Text 110,70,0x00000000,P6Bc, P6Bclen-P6Bc
223 Ghost 800
    jmp MMXtest
801
.pp6B:
451 heavyiron 802
Text 110,70,0x00000000,P6B, P6Blen-P6B
223 Ghost 803
    jmp MMXtest
804
.I6D:
805
    mov [micron], 9
451 heavyiron 806
Text 110,70,0x00000000,P6D, P6Dlen-P6D
223 Ghost 807
    jmp MMXtest
808
.I6E:
809
    mov [micron], 6
451 heavyiron 810
Text 110,70,0x00000000,P6E, P6Elen-P6E
223 Ghost 811
    jmp MMXtest
812
.I6F:
813
    mov [micron], 6
451 heavyiron 814
Text 110,70,0x00000000,P6F, P6Flen-P6F
223 Ghost 815
    jmp MMXtest
816
 
817
;06Ex - Pentium M Yonah 0.065
318 heavyiron 818
;06Fx - Pentium D Conroe 0.065, Xeon Woodcrest, Celeron D AllenDale, Core 2 Kentsfield
223 Ghost 819
 
820
.sev:	 ;Family=7
821
.IS0:
822
 
451 heavyiron 823
Text 15, 190,0x00000000,cache, cachelen-cache ;?
223 Ghost 824
 
825
    mov [micron], 18
451 heavyiron 826
Text 110,70,0x00000000,PS0, PS0len-PS0
223 Ghost 827
 jmp MMXtest
828
 
829
.fift:	  ;Family=15
830
 
451 heavyiron 831
Text 15, 190,0x00000000,cacheP4, cacheP4len-cacheP4
223 Ghost 832
 
833
    cmp [m],$0
834
    jz .IF0
835
    cmp [m],$1
836
    jz .IF1
837
    cmp [m],$2
838
    jz .IF2
839
    cmp [m],$3
840
    jz .IF3
841
    cmp [m],$4
842
    jz .IF3 ;identical to F3xh
843
    cmp [m],$5
844
    jz .IF5
845
    cmp [m],$6
846
    jz .IF6
847
    jmp next_generation
848
.IF0:
849
    mov [micron], 18
850
    cmp [L2], 128
851
    jne .ppF0  ; Pentium
451 heavyiron 852
Text 110,70,0x00000000,PF0c, PF0clen-PF0c
223 Ghost 853
    jmp MMXtest
854
.ppF0:
451 heavyiron 855
Text 110,70,0x00000000,PF0, PF0len-PF0
223 Ghost 856
    jmp MMXtest
857
.IF1:
858
    mov [micron], 18
859
    cmp [L2], 128
860
    je .IF0;jne.ppF1  ; Pentium
861
  ;  mov   eax,dword 0x00000004
862
  ;  mov   ebx,115*65536+80
863
  ;  mov   ecx,dword 0x00000000
864
  ;  mov   edx,PF0c
865
  ;  mov   esi,PF0clen-PF0c
485 heavyiron 866
  ;  mcall
223 Ghost 867
  ;jmp MMXtest
868
;.ppF1:
451 heavyiron 869
Text 110,70,0x00000000,PF0, PF0len-PF0
223 Ghost 870
 jmp MMXtest
871
.IF2:
872
    mov [micron], 13
873
    cmp [L2], 128
874
    jne .ppF2  ; Pentium
451 heavyiron 875
Text 110,70,0x00000000,PF2c, PF2clen-PF2c
223 Ghost 876
 jmp MMXtest
877
.ppF2:
451 heavyiron 878
Text 110,70,0x00000000,PF2, PF2len-PF2
223 Ghost 879
 jmp MMXtest
880
.IF3:
881
    mov [micron], 09
882
    cmp [L2], 256
883
    jne .ppF3  ; Pentium
451 heavyiron 884
Text 110,70,0x00000000,PF3c, PF3clen-PF3c
223 Ghost 885
 jmp MMXtest
886
.ppF3:
451 heavyiron 887
Text 110,70,0x00000000,PF3, PF3len-PF3
223 Ghost 888
 jmp MMXtest
889
 
890
.IF5:
891
    mov [micron], 09
892
    cmp [L2], 512
893
    jae .ppF5  ; Pentium
451 heavyiron 894
Text 110,70,0x00000000,PF5c, PF5clen-PF5c
223 Ghost 895
 jmp MMXtest
896
.ppF5:
451 heavyiron 897
Text 110,70,0x00000000,PF5, PF5len-PF5
223 Ghost 898
 jmp MMXtest
899
 
900
 .IF6:
901
    mov [micron], 06  ; 065
902
    cmp [L2], 512
903
    ja .ppF6  ; Pentium
451 heavyiron 904
Text 110,70,0x00000000,PF6c, PF6clen-PF6c
223 Ghost 905
 jmp MMXtest
906
.ppF6:
451 heavyiron 907
Text 110,70,0x00000000,PF6, PF6len-PF6
223 Ghost 908
 jmp MMXtest
909
 
910
 
911
 next_generation:
451 heavyiron 912
Text 110,70,0x00000000,NG, NGlen-NG
223 Ghost 913
  jmp MMXtest
914
;----------------------------------
915
Cyrix:
916
 
451 heavyiron 917
Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 918
 
919
	mov	esi, cyrix
920
	call	load_gif
515 heavyiron 921
PutImage 135,107,201,49,img_area+8
922
;PutImage 130,127,201,49,img_area+8
318 heavyiron 923
;         place   size
223 Ghost 924
 
925
    cmp [f], $5
926
    jz .fivv
927
    cmp [f], $6
928
    jz .sixx
929
.fivv:	  ;Family=5
930
    cmp [m],$2
931
    jz .C52
932
    cmp [m],$4
933
    jz .C54
934
.C52:
935
    mov [micron], 50 ;35?
936
    mov [L1i], 8
937
    mov [L1d], 8
938
    mov [L2], 512
451 heavyiron 939
Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
940
Text 110,70,0x00000000,C52, C52len-C52
223 Ghost 941
    jmp MMXtest
942
.C54:
943
    mov [micron], 50
944
    mov [L1i], 8
945
    mov [L1d], 8
946
    mov [L2], 512
451 heavyiron 947
Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
948
Text 110,70,0x00000000,C54, C54len-C54
223 Ghost 949
    jmp MMXtest
950
 
951
.sixx:	   ;Family=6
952
   cmp [m],$0
953
   jz .C60
954
   cmp [m],$5
955
   jz .C65
956
.C60:
957
    mov [micron], 25
958
    mov [L1i], 32
959
    mov [L1d], 32
960
    mov [L2], 512
451 heavyiron 961
Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
962
Text 110,70,0x00000000,C60, C60len-C60
223 Ghost 963
    jmp MMXtest
964
.C65:
965
    mov [micron], 25 ;35?
966
    mov [L1i], 32
967
    mov [L1d], 32
968
    mov [L2], 512
451 heavyiron 969
Text 75,70,0x00000000,Centaurn, Centaurnlen-Centaurn
532 diamond 970
    mov edx,C65
971
    mov esi,C65len-C65
972
    jmp OutProcName
223 Ghost 973
;---------------------
974
Centaur:
975
 
451 heavyiron 976
Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 977
 
978
;CACHE1:
979
mov eax, 80000005h
980
    cpuid
981
shr ecx, 24
982
mov [L1d], ecx
983
shr edx, 24
984
mov [L1i], edx
318 heavyiron 985
 
986
 
987
 
988
; cache detection routine
989
;CACHE1:
990
mov eax, 80000005h
991
    cpuid
992
 
532 diamond 993
movzx eax, cl
318 heavyiron 994
mov [lineld], eax
995
 
996
mov eax, ecx
997
shr eax, 16
532 diamond 998
and eax,000000FFh
318 heavyiron 999
mov [wayld], eax
1000
 
1001
shr ecx, 24
1002
mov [L1d], ecx
1003
 
532 diamond 1004
movzx eax, dl
318 heavyiron 1005
mov [lineli], eax
1006
 
1007
mov eax, edx
1008
 
1009
shr eax, 16
532 diamond 1010
and eax,000000FFh
318 heavyiron 1011
mov [wayli], eax
1012
 
1013
shr edx, 24
1014
mov [L1i], edx
1015
 
1016
 
223 Ghost 1017
;CACHE2:
1018
mov eax, 80000006h
1019
    cpuid
318 heavyiron 1020
 
1021
cmp [f], $6
1022
    jz vn
1023
    jmp vl2old	; if not then old identification
1024
vn:
1025
    cmp [m],$9
1026
    jl vl2old
1027
; else  new
532 diamond 1028
movzx eax, cl
318 heavyiron 1029
mov dword[linel2], eax
1030
 
1031
mov eax, ecx
1032
shl eax, 16
1033
shr eax, 28
1034
 
1035
mov dword[wayl2], eax
1036
 
1037
shr ecx, 16  ; it is 16 bits now
223 Ghost 1038
mov [L2],ecx
1039
 
318 heavyiron 1040
 
1041
 
1042
vl2old:
532 diamond 1043
movzx eax, cl
318 heavyiron 1044
mov dword[linel2], eax
1045
 
1046
mov eax, ecx
1047
shl eax, 8
1048
shr eax, 24
1049
 
1050
mov dword[wayl2], eax
1051
 
1052
shr ecx, 24  ; it was 8 bits earlier
1053
mov [L2],ecx
1054
 
1055
 
223 Ghost 1056
    cmp [f], $5
1057
    jz fivC
1058
    cmp [f], $6
1059
    jz sixC
1060
 
1061
fivC:		   ;Family=5
1062
 
1063
	mov	esi, idt
1064
	call	load_gif
515 heavyiron 1065
PutImage 135,107,201,49,img_area+8
1066
;PutImage 125,107,201,49,img_area+8
318 heavyiron 1067
;         place   size
223 Ghost 1068
 
451 heavyiron 1069
Text 75,70,0x00000000,IDTn, IDTnlen-IDTn
223 Ghost 1070
    cmp [m],$4
1071
    jz .V54
1072
    cmp [m],$8
1073
    jz .V58
1074
    cmp [m],$9
1075
    jz .V59
1076
.V54:
1077
   mov [micron], 35
532 diamond 1078
   mov edx,V54
1079
   mov esi,V54len-V54
1080
    jmp OutProcName
223 Ghost 1081
.V58:
1082
    mov [micron], 25
532 diamond 1083
    mov edx,V58
1084
    mov esi,V58len-V58
1085
    jmp OutProcName
223 Ghost 1086
.V59:
1087
    mov [micron], 25
532 diamond 1088
    mov edx,V59
1089
    mov esi,V59len-V59
1090
    jmp OutProcName
223 Ghost 1091
 
1092
sixC:	;Family=6
1093
 
1094
	mov	esi, via
1095
	call	load_gif
515 heavyiron 1096
PutImage 135,107,201,49,img_area+8
1097
;PutImage 125,107,201,49,img_area+8
318 heavyiron 1098
;         place   size
223 Ghost 1099
 
451 heavyiron 1100
Text 75,70,0x00000000,Centaurn, Centaurnlen-Centaurn
223 Ghost 1101
    cmp [m],$6
1102
    jz .V66
1103
    cmp [m],$7
1104
    jz .V67
1105
    cmp [m],$8
1106
    jz .V68
1107
    cmp [m],$9
1108
    jz .V69
318 heavyiron 1109
    cmp [m],$A
223 Ghost 1110
    jz .V6A
1111
.V66:
1112
   mov [micron], 18 ; 25?
532 diamond 1113
   mov edx,V66
1114
   mov esi,V66len-V66
1115
    jmp OutProcName
223 Ghost 1116
.V67:
1117
    mov [micron], 15
532 diamond 1118
    mov edx,V67
1119
    mov esi,V67len-V67
1120
    jmp OutProcName
223 Ghost 1121
.V68:
1122
    mov [micron], 13
532 diamond 1123
    mov edx,V68
1124
    mov esi,V68len-V68
1125
    jmp OutProcName
223 Ghost 1126
.V69:
1127
   mov [micron], 13
532 diamond 1128
   mov edx,V69
1129
   mov esi,V69len-V69
1130
   jmp OutProcName
223 Ghost 1131
.V6A:
1132
   mov [micron], 9
532 diamond 1133
   mov edx,VA
1134
   mov esi,VAlen-VA
1135
   jmp OutProcName
223 Ghost 1136
;-----------
1137
Transmeta:
1138
 
451 heavyiron 1139
Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 1140
 
532 diamond 1141
Text 75,70,,Tranmsmetan, Tranmsmetanlen-Tranmsmetan
223 Ghost 1142
 
1143
	mov	esi, transmeta
1144
	call	load_gif
515 heavyiron 1145
PutImage 135,107,201,49,img_area+8
1146
;PutImage 125,107,201,49,img_area+8
318 heavyiron 1147
;         place   size
223 Ghost 1148
 
318 heavyiron 1149
; cache detection routine - it is the same as for AMD (almost)
223 Ghost 1150
;CACHE1:
1151
mov eax, 80000005h
1152
    cpuid
318 heavyiron 1153
 
532 diamond 1154
movzx eax, cl
318 heavyiron 1155
mov [lineld], eax
1156
 
1157
mov eax, ecx
1158
 
532 diamond 1159
shr eax,16
1160
and eax,000000FFh
318 heavyiron 1161
mov [wayld], eax
1162
 
223 Ghost 1163
shr ecx, 24
1164
mov [L1d], ecx
318 heavyiron 1165
 
532 diamond 1166
movzx eax, dl
318 heavyiron 1167
mov [lineli], eax
1168
 
1169
mov eax, edx
1170
 
1171
shr eax, 16
532 diamond 1172
and eax,000000FFh
318 heavyiron 1173
mov [wayli], eax
1174
 
223 Ghost 1175
shr edx, 24
1176
mov [L1i], edx
318 heavyiron 1177
 
1178
 
223 Ghost 1179
;CACHE2:
1180
mov eax, 80000006h
1181
    cpuid
318 heavyiron 1182
 
532 diamond 1183
movzx eax, cl
318 heavyiron 1184
mov dword[linel2], eax
1185
 
1186
mov eax, ecx
1187
shl eax, 16
1188
shr eax, 28
1189
 
1190
mov dword[wayl2], eax
1191
 
223 Ghost 1192
shr ecx, 16
318 heavyiron 1193
mov [L2],ecx
223 Ghost 1194
 
318 heavyiron 1195
 
223 Ghost 1196
    cmp [f], $5
1197
    jz .fivt
1198
    cmp [f], $F
1199
    jz .fift
1200
.fivt:	  ;     Family=5
1201
 
532 diamond 1202
    mov edx,T5
1203
    mov esi,T5len-T5
1204
    jmp @f
223 Ghost 1205
 
1206
.fift:	  ;     Family=F
532 diamond 1207
    mov edx,TF
1208
    mov esi,TFlen-TF
1209
@@:
223 Ghost 1210
    mov [micron], 13 ;
532 diamond 1211
    Text 140,70,0
223 Ghost 1212
    jmp MMXtest
1213
 
532 diamond 1214
OutProcName:
1215
        Text    100,70,0
1216
 
223 Ghost 1217
;----
4107 mario79 1218
;---------------------------------- new
1219
Vortex:
1220
 
1221
Text 15, 190,0x00000000,cache, cachelen-cache
1222
 
1223
	mov	esi, vortex
1224
	call	load_gif
1225
PutImage 135,107,201,49,img_area+8
1226
;PutImage 130,127,201,49,img_area+8
1227
;         place   size
1228
 
1229
    cmp [f], $5
1230
    jz .V54 ;fivvtx
1231
;.fivvtx:	  ;Family=5
1232
;    cmp [m],$4
1233
;    jz .V54
1234
.V54:
1235
    mov [micron], 13
1236
    mov [L1i], 16
1237
    mov [L1d], 16
1238
    mov [L2], 256
1239
    mov [wayl2], 4
1240
    mov [wayli], 4
1241
    mov [wayld], 4
1242
Text 75,70,0x00000000,Vortexn, Vortexnlen-Vortexn
1243
;Text 110,70,0x00000000,V54, V54len-V54
1244
    jmp MMXtest
1245
 
1246
;---------------------
1247
 
1248
 
1249
 
223 Ghost 1250
MMXtest:	     ; MMX test and Brand ID decoding
1251
 
1252
call decodebrand  ; get Brand ID
1253
 
1254
call decode_standard_features
1255
 
1256
call decode_extended_features
1257
      xor eax,eax
1258
      inc eax
1259
      cpuid
1260
HTTtest:
1261
  test	edx, $10000000; ;Test bit 28
1262
  jz .ELN
1263
 
532 diamond 1264
.EL:   ;HTT technology is supported
223 Ghost 1265
   and ebx,00FF0000h ; numbers of logical processors
532 diamond 1266
   cmp ebx, 1 shl 16
318 heavyiron 1267
   ;   mov [number_of_log_cpus], ebx
223 Ghost 1268
   je .ELN  ; HHT not enabled (Celeron)
1269
 
1270
   mov	dword [HTTn+9], $736579
1271
   mov	dword [HTT+ 6], $736579
1272
   jmp TEXTOUT
1273
.ELN:
1274
 
1275
   mov	dword [HTTn+ 9],  $6F6E
1276
   mov	dword [HTT+ 6],  $6F6E
1277
 
1278
TEXTOUT:
1279
 
451 heavyiron 1280
Text 15,110,0x00000000,fam, famlen-fam
532 diamond 1281
Text 15,130,,mode, modelen-mode
1282
Text 15,150,,step, steplen-step
223 Ghost 1283
;--------L1  L2
451 heavyiron 1284
Number 75,170,0,3,dword [L1d],0x000000;
532 diamond 1285
Number 75,190,,,dword [L1i]
1286
Number 41,210,0,4,dword[L2]
1287
Number 35,230,0,5,dword[L3]
223 Ghost 1288
;-----------Features
532 diamond 1289
Number 258,50,0,2,dword [micron]  ; micron
223 Ghost 1290
 
451 heavyiron 1291
Text 275,290,0x00000000,HTT, HTTlen-HTT
532 diamond 1292
Text 275,310,,sse3, sse3len-sse3
223 Ghost 1293
 
532 diamond 1294
Text 15,70,,name, namelen-name
223 Ghost 1295
 
532 diamond 1296
Text 15,290,,MMXs, MMXslen-MMXs
1297
Text 15,310,,SSE, SSElen-SSE
1298
Text 95,310,,SSE2, SSE2len-SSE2
223 Ghost 1299
 
451 heavyiron 1300
    Number 140,170,0,2,dword [wayld],0x000000
532 diamond 1301
    Number 218,170,,,dword [lineld]
318 heavyiron 1302
 
532 diamond 1303
    Number 140,190,,,dword [wayli]
1304
    Number 218,190,,,dword [lineli]
318 heavyiron 1305
 
532 diamond 1306
    Number 140,210,,,dword [wayl2]
1307
    Number 218,210,,,dword [linel2]
318 heavyiron 1308
 
532 diamond 1309
    Number 140,230,,,dword [wayl3]
1310
    Number 218,230,,,dword [linel3]
318 heavyiron 1311
 
223 Ghost 1312
;-------------------
1313
TEST3DNOW:
1314
 
532 diamond 1315
  xor edx, edx
223 Ghost 1316
  cmp [smallvendor], 'ntel'
532 diamond 1317
  je @f
223 Ghost 1318
 
1319
  mov	eax, $80000001 ;// Setup extended function 8000_0001h
1320
  cpuid
1321
 
532 diamond 1322
@@:
1323
  mov   eax, now+9
1324
  add   edx, edx
1325
  call  write_yes_no_cf
223 Ghost 1326
 
532 diamond 1327
  mov   eax, nowp+9
1328
  add   edx, edx
1329
  call  write_yes_no_cf
223 Ghost 1330
 
1331
TESTMMXP:
1332
 
1333
    mov   eax,$80000000
1334
    cpuid
1335
 
532 diamond 1336
    test eax, eax
1337
    jns NOEXTENDEDM
223 Ghost 1338
 
1339
  ;cmp   eax, $80000000 ;// Is 800_0001h supported?
1340
  ;jz   .NOEXTENDEDM    ;// If not, 3DNow! technology is not supported
1341
  mov	eax, $80000001 ;// Setup extended function 8000_0001h
1342
  cpuid
1343
  cmp [smallvendor], 'tead'
1344
  jne noCyr
1345
Cyrmx:
1346
  test	edx, $01000000 ;// Test bit 24
1347
  jnz	XITM  ;// 3DNow! technology is supported
1348
  jz NOEXTENDEDM
1349
noCyr:
1350
  test	edx, $00400000 ;// Test bit 22
1351
  jnz	XITM  ;// 3DNow! technology is supported
1352
  ;jz   .NOEXTENDEDM
1353
 
1354
NOEXTENDEDM:
1355
   mov	dword [mmxp+ 7], $6F6E
1356
   mov	dword [MMXPi+ 8], $6F6E
1357
   jmp text3d
1358
XITM:
1359
   mov	dword [mmxp+ 7],  $736579
1360
   mov	dword [MMXPi+ 8],  $736579
1361
 
1362
text3d:
1363
 
451 heavyiron 1364
Text 175,290,0x00000000,now, nowlen-now
532 diamond 1365
Text 175,310,,nowp, nowplen-nowp
1366
Text 95,290,,mmxp, mmxplen-mmxp
223 Ghost 1367
 
1368
jmp still
1369
 
1370
;--------------------------
1371
NO_CPUID:
451 heavyiron 1372
 Text 15,50,0x00000000,oblom, oblomlen-oblom
223 Ghost 1373
 
1374
FREEZE:
1375
nop
318 heavyiron 1376
jmp FREEZE ; maybe we should close application or just made some Warning and jump to still:
223 Ghost 1377
;----------------
450 Ghost 1378
still:
1379
 
4107 mario79 1380
; waiting for events
450 Ghost 1381
event_wait:
1382
 
1383
    ;================_RAM_==============
451 heavyiron 1384
  Number 200,340,0,4,dword [ram_size_a],0xFFFFFF
450 Ghost 1385
 
1386
  mov eax, 18
1387
  mov ebx, 16
485 heavyiron 1388
  mcall
450 Ghost 1389
 
1390
  shr eax, 10
1391
 
1392
  mov [ram_size_a], eax
1393
 
1394
  mov eax, 18
1395
  mov ebx, 17
485 heavyiron 1396
  mcall
450 Ghost 1397
 
1398
  shr eax, 10
1399
 
1400
  mov [ram_size_t], eax
1401
 
451 heavyiron 1402
  Text 115,340,0x00000000,ram, ramlen-ram
532 diamond 1403
  Text 300,340,,mb, mblen-mb
450 Ghost 1404
 
451 heavyiron 1405
  Number 200,340,0,4,dword [ram_size_a],0x000000
450 Ghost 1406
 
532 diamond 1407
  Number 270,340,,,dword [ram_size_t]
450 Ghost 1408
 
1409
;==============================
1410
 
4107 mario79 1411
	mov	eax,23	     ; function 23 - event wait
1412
	mov	ebx,50	     ; wait for 0.5 second
485 heavyiron 1413
	mcall
450 Ghost 1414
 
4107 mario79 1415
    cmp  eax,1		;
450 Ghost 1416
    je	 red		;  redraw
4107 mario79 1417
    cmp  eax,2		;
223 Ghost 1418
    je	 key		;  key
4107 mario79 1419
    cmp  eax,3		;
223 Ghost 1420
    je	 button 	;  button
4107 mario79 1421
    jmp  still		;
1422
  key:			;
1423
    mcall		;
1424
    jmp  still		;
1425
  button:		;
1426
    mov  eax,17 	;
1427
    mcall		;
223 Ghost 1428
    cmp  ah,1		;  = 1 ?
1429
    je	close		; close
1430
 
1431
    cmp  ah,2		;  = 2 ?
4107 mario79 1432
    je	thread_start	;
1433
			;
1434
;    cmp  ah,3		;  = 3 ?
532 diamond 1435
    jne  still
223 Ghost 1436
 
1437
 
4107 mario79 1438
;vybor:
223 Ghost 1439
 
4107 mario79 1440
; Number 310,70,0,4,dword [rating],0xFFFFFF ;
223 Ghost 1441
 
4107 mario79 1442
; Number 315,90,0,3,dword [FRS]; MHz
223 Ghost 1443
 
4107 mario79 1444
;cmp [FRS], 266
1445
;jz .s1
1446
;cmp [FRS], 333
1447
;jz .s2
1448
;cmp [FRS], 400
1449
;jz .s3
223 Ghost 1450
 
4107 mario79 1451
;.s1:
1452
;mov [FRS], 333
1453
;.rating:;
1454
;call newrating
1455
; Number 310,70,0,4,dword [rating],0x000000
223 Ghost 1456
 
4107 mario79 1457
; Number 315,90,0,3,dword [FRS]; MHz
1458
;jmp  still
1459
;
1460
;.s2:
1461
;mov [FRS], 400
1462
;jmp .rating
1463
;
1464
;.s3:
1465
;mov [FRS], 266
1466
;jmp .rating
223 Ghost 1467
 
1468
close:
4107 mario79 1469
    mov   eax,-1
1470
    mcall
223 Ghost 1471
 
1472
;**************************** THREAD-SECOND WINDOW
1473
thread_start:
1474
 
4107 mario79 1475
    cmp  [num_win2],0
223 Ghost 1476
 
4107 mario79 1477
    jne  still
223 Ghost 1478
 
1479
;================================================RSA test
1480
 
1481
;test rsa coding speed
532 diamond 1482
        call    init_test
223 Ghost 1483
;length of module - 256 bit
1484
  mov  eax,26
1485
  mov  ebx,9
485 heavyiron 1486
  mcall
223 Ghost 1487
  add  eax,100 ;test lasts 1 second.
1488
  push eax
1489
.loop:
532 diamond 1490
  push 4     ;do 4 iterations - this reduces number of calls mcall.
223 Ghost 1491
.loop1:
1492
  call rsa_test   ;this procedure change all registers
1493
  dec  dword [esp]
1494
  jnz  .loop1
1495
  pop  ecx
1496
  mov  eax,26
1497
  mov  ebx,9
485 heavyiron 1498
  mcall
223 Ghost 1499
  cmp  eax,dword [esp]	 ;Is time changed?
1500
  jl   .loop
1501
  pop  eax
1502
  shr  dword [iter],4 ;[iter] - speed in Kb/sec. (every iteration codes 64 bytes)
318 heavyiron 1503
CreateTread window_2,thread2_esp
532 diamond 1504
  jmp  still
223 Ghost 1505
 
1506
window_2:
4107 mario79 1507
    mov  [num_win2],1
1508
    call draw_window_2
223 Ghost 1509
 
4107 mario79 1510
still_2:
223 Ghost 1511
 
4107 mario79 1512
    mov  eax,10
1513
    mcall
223 Ghost 1514
 
4107 mario79 1515
    cmp  eax,1
223 Ghost 1516
    je	 window_2	;  window_2
4107 mario79 1517
    cmp  eax,2		;
223 Ghost 1518
    je	 key_2		;  key_2
4107 mario79 1519
    cmp  eax,3		;
223 Ghost 1520
    je	 button_2	;  button_2
1521
 
4107 mario79 1522
    jmp  still_2	;
223 Ghost 1523
 
4107 mario79 1524
  key_2:		;
1525
    mcall		;
1526
    jmp  still_2	;
223 Ghost 1527
 
4107 mario79 1528
  button_2:		;
1529
    mov  eax,17 	; 17
1530
    mcall		;
223 Ghost 1531
 
1532
    cmp  ah,1		; = 1 ?
532 diamond 1533
    jne  still_2	; noclose
223 Ghost 1534
 
4107 mario79 1535
    mov  [num_win2],0	;
223 Ghost 1536
 
4107 mario79 1537
    or	 eax,-1 	;
485 heavyiron 1538
    mcall
223 Ghost 1539
 
1540
draw_window_2:
1541
    mov  eax,12 		   ; function 12:tell os about windowdraw
1542
    mov  ebx,1h 		    ; 1, start of draw
485 heavyiron 1543
    mcall
223 Ghost 1544
 
1545
 
451 heavyiron 1546
  Window 250,250,420,390, 0x33FFFFFF, 0x805080d0, standard
318 heavyiron 1547
	  ; place size
1548
 
451 heavyiron 1549
Text 15, 10,0x00000000, STDCA, STDCAlen-STDCA
532 diamond 1550
Text 215, 10,, EXTCA, EXTCAlen-EXTCA
318 heavyiron 1551
 
451 heavyiron 1552
Number 135,10,1*256,8,dword [stdc],0x000000
532 diamond 1553
Number 335,10,,,dword [extc],
223 Ghost 1554
 
451 heavyiron 1555
Text 15, 30,0x00000000, FPU, FPUlen-FPU
532 diamond 1556
Text 115, 30,, VME, VMElen-VME
1557
Text 215, 30,, DE,  DElen-DE
1558
Text 315, 30,, PSE, PSElen-PSE
223 Ghost 1559
 
532 diamond 1560
Text 15, 50,,TSC, TSClen-TSC
1561
Text 115,50,,MSR, MSRlen-MSR
1562
Text 215,50,,PAE, PAElen-PAE
1563
Text 315,50,,MCE, MCElen-MCE
223 Ghost 1564
 
532 diamond 1565
Text 15,70,,CX8, CX8len-CX8
1566
Text 115,70,,APIC, APIClen-APIC
1567
Text 215,70,,Res, Reslen-Res
1568
Text 315,70,,SEP, SEPlen-SEP
223 Ghost 1569
 
532 diamond 1570
Text 15,90,,MTRR, MTRRlen-MTRR
1571
Text 115,90,,PGE, PGElen-PGE
1572
Text 215,90,,MCA, MCAlen-MCA
1573
Text 315,90,,CMOV, CMOVlen-CMOV
223 Ghost 1574
 
532 diamond 1575
Text 15,110,,PAT, PATlen-PAT
1576
Text 115,110,,PSE36, PSE36len-PSE36
1577
Text 215,110,,PSNUM, PSNUMlen-PSNUM
1578
Text 315,110,,CLFLUSHn, CLFLUSHnlen-CLFLUSHn
223 Ghost 1579
 
532 diamond 1580
Text 15,130,,Res, Reslen-Res
1581
Text 115,130,,DTS, DTSlen-DTS
1582
Text 215,130,,ACPI, ACPIlen-ACPI
1583
Text 315,130,,MMX, MMXlen-MMX
223 Ghost 1584
 
532 diamond 1585
Text 15,150,,FXSR, FXSRlen-FXSR
1586
Text 115,150,,SSE, SSElen-SSE
1587
Text  215,150,,SSE2, SSE2len-SSE2
1588
Text 315,150,,SSn, SSnlen-SSn
223 Ghost 1589
 
532 diamond 1590
Text 15,170,,HTT, HTTnlen-HTTn
1591
Text 115,170,,TM, TMlen-TM
1592
Text 215,170,,IA64, IA64len-IA64
1593
Text 315,170,,PBE, PBElen-PBE
223 Ghost 1594
;---------------
451 heavyiron 1595
DrawLine 0,  410, 185,185,0x8080FF  ;10
223 Ghost 1596
 
1597
mov   eax,$80000000
1598
cpuid
1599
;mov eax, $03020101   for test of reaction
532 diamond 1600
test eax, eax
1601
js  goooddd
223 Ghost 1602
 
1603
baaadd:
451 heavyiron 1604
Text 95,235,0x00000000,NEF, NEFlen-NEF
223 Ghost 1605
jmp too
1606
 
1607
goooddd:
451 heavyiron 1608
Text 15,195,0x00000000,SS3, SS3len-SS3
532 diamond 1609
Text 15,215,,MON, MONlen-MON
1610
Text 15,235,,DS_CPL, DS_CPLlen-DS_CPL
1611
Text 15,255,,EST, ESTlen-EST
1612
Text 15,275,,TM2, TM2len-TM2
1613
Text 15,295,,VMX, VMXlen-VMX
1614
Text 15,315,,SVM, SVMlen-SVM
223 Ghost 1615
 
532 diamond 1616
Text 115,195,,CNXT_ID, CNXT_IDlen-CNXT_ID
1617
Text 115,215,,CX16, CX16len-CX16
1618
Text 115,235,,ETPRD, ETPRDlen-ETPRD
1619
Text 115,255,,SYS, SYSlen-SYS
1620
Text 115,275,,LAF, LAFlen-LAF
1621
Text 115,295,,SSSE3, SSSE3len-SSSE3
1622
Text 115,315,,MCR8, MCR8len-MCR8
223 Ghost 1623
 
532 diamond 1624
Text 215,195,,MP, MPlen-MP
1625
Text 215,215,,NX, NXlen-NX
1626
Text 215,235,,MMXPi, MMXPilen-MMXPi
1627
Text 215,255,,MMXn, MMXnlen-MMXn
1628
Text 215,275,,FXSRn, FXSRnlen-FXSRn
1629
Text 215,295,,DCA,DCAlen-DCA
223 Ghost 1630
 
532 diamond 1631
Text 315,195,,FFXSR, FFXSRlen-FFXSR
1632
Text 315,215,,TSCP, TSCPlen-TSCP
1633
Text 315,235,,LM, LMlen-LM
1634
Text 315,255,,DNo, DNolen-DNo
1635
Text 315,275,,DN, DNlen-DN
1636
Text 315,295,,CMPL, CMPLlen-CMPL
318 heavyiron 1637
 
1638
 
223 Ghost 1639
too:
451 heavyiron 1640
DrawLine 0,  410, 335,335,0x8080FF  ;10
223 Ghost 1641
 
451 heavyiron 1642
Text 15,350,0x00000000,speed, speedlen-speed
532 diamond 1643
Text 130,350,,kbpersec, kbperseclen-kbpersec
223 Ghost 1644
 
451 heavyiron 1645
Number 95,350,0,5,dword [iter],0x000000; RSA test results
223 Ghost 1646
 
1647
    mov  eax,12
1648
    mov  ebx,2h
485 heavyiron 1649
    mcall
223 Ghost 1650
 
1651
    ret
1652
 
1653
num_win2 db 0
1654
 
1655
;   *******  main window *******
1656
 
1657
draw_window:
1658
   mov eax,12
1659
   mov	ebx,1h
485 heavyiron 1660
   mcall
223 Ghost 1661
 
551 spraid 1662
  Window 150,150,350,385, 0x34FFFFFF, 0x805080d0, title
318 heavyiron 1663
	  ; place size
223 Ghost 1664
 
451 heavyiron 1665
  Button 15,330,92,23,2,0x03FFFFFF   ;  button "press for more"
223 Ghost 1666
 
1667
	mov	esi, knopka
1668
	mov	edi, img_area2
1669
	call	load_gif2
451 heavyiron 1670
PutImage 15,330,93,24,img_area2+8   ; image "press for more"
318 heavyiron 1671
;         place   size
223 Ghost 1672
 
1673
 
1674
    mov  eax,12
1675
    mov  ebx,2h
485 heavyiron 1676
    mcall
223 Ghost 1677
 
451 heavyiron 1678
    Text 130,270,0x00000000,instruct, instructlen-instruct
223 Ghost 1679
 
451 heavyiron 1680
    DrawLine  10,  330, 325,325,0x8080FF
532 diamond 1681
    DrawLine 330,  330, 275,325;,0x8080FF
1682
    DrawLine  10,   10, 275,325;,0x8080FF
1683
    DrawLine  10,  125, 275,275;,0x8080FF
1684
    DrawLine 230,  330, 275,275;,0x8080FF
223 Ghost 1685
 
1686
  cmp dword[smallvendor], 'cAMD'
1687
  jne cont
1688
  cmp [f], $6
1689
  jne cont
1690
 
4107 mario79 1691
;   Button 240,85,69,15,3,0x030000FF  ;  button for rating
223 Ghost 1692
 
4107 mario79 1693
;    Text 245,90,0x00FFFFFF,FR, FRlen-FR ; text at button
223 Ghost 1694
 
1695
   call newrating; !!!!
1696
 
1697
     cont:
1698
 
1699
 
4107 mario79 1700
    Text 15,50,0x00000000,tsum, tsumlen-tsum   ;
1701
    Text 15,90,,cpuname, cpunamelen-cpuname;
532 diamond 1702
    Text 255,250,,typen, typenlen-typen;
4107 mario79 1703
    Text 175, 50,,tech, techlen-tech;
223 Ghost 1704
 
451 heavyiron 1705
    Number 82,50,0,4,dword [total],0x000000; MHz
532 diamond 1706
    Number 110,50,0,2,dword [sot]; KHz
318 heavyiron 1707
 
451 heavyiron 1708
    Text 15,170,0x00000000,cache2, cache2len-cache2
532 diamond 1709
    Text 15,210,,cache3, cache3len-cache3
1710
    Text 15,230,,cache4, cache4len-cache4
318 heavyiron 1711
 
1712
 
4107 mario79 1713
    Number 75,110,1*256,1,dword [f],0x000000 ;
532 diamond 1714
    Number 75,130,,,dword [m]
1715
    Number 75,150,,,dword [s]
223 Ghost 1716
 
532 diamond 1717
    Number 110,110,1*256,2,dword [ef]
1718
    Number 110,130,,,dword [em]
223 Ghost 1719
 
451 heavyiron 1720
Text   15,30,0x00000000,multil, multillen-multil
532 diamond 1721
Text   175,30,,freql, freqllen-freql
451 heavyiron 1722
Number 85,30,0,2,dword [multb],0x000000;
532 diamond 1723
Number 105,30,0,1,dword [multa]
1724
Number 259,30,0,4,dword [freqbb]
1725
Number 289,30,0,2,dword [freqll]
318 heavyiron 1726
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
451 heavyiron 1727
;Text 115,280,0x00000000,logcpus, logcpuslen-logcpus
1728
;Number 250,280,0,2,dword [number_of_log_cpus],0x000000
223 Ghost 1729
 
318 heavyiron 1730
 
451 heavyiron 1731
    Text 15,10,0x00000000,stm, stmlen-stm
223 Ghost 1732
;  Fix for deleting leading whitespaces
1733
;  in Intel P4's internal name
1734
;  by Madis Calme
1735
;  23.12.2004 ver. 0.81
1736
    cld
1737
    mov  edi,myname
1738
    mov  al,20h
1739
    or	 ecx,-1
1740
    repe scasb
1741
    dec  edi
1742
    mov  esi,mynamelen
1743
    sub  esi,edi
451 heavyiron 1744
    Text 105, 10, 0x00000000, edi, esi
1745
;    Text 105,20,0x00000000,myname, mynamelen-myname
223 Ghost 1746
;-
532 diamond 1747
Text 15,250,,brandid, brandidlen-brandid
223 Ghost 1748
 
4107 mario79 1749
    ret 		;
223 Ghost 1750
 
1751
load_gif:
552 diamond 1752
        mov     edi, img_area
223 Ghost 1753
load_gif2:
1754
 
552 diamond 1755
COLOR_ORDER equ MENUETOS
1756
include 'gif_lite.inc'        ; parse GIF files
1757
 
223 Ghost 1758
; DATA AREA
1759
 
4107 mario79 1760
title	 db   'CPUID 2.28 by S.Kuzmin & the KolibriOS team',0
451 heavyiron 1761
 
4107 mario79 1762
 
223 Ghost 1763
tsum:
4107 mario79 1764
 
3587 fedesco 1765
if lang eq it
4107 mario79 1766
 
1767
                db 'Frequenza:     .   MHz'
1768
 
3587 fedesco 1769
else
4107 mario79 1770
 
1771
                db 'Frequency:     .   MHz'
1772
 
3587 fedesco 1773
end if
1774
 
4107 mario79 1775
 
3587 fedesco 1776
 
4107 mario79 1777
 
1778
 
223 Ghost 1779
tsumlen:
1780
 
4107 mario79 1781
 
1782
 
223 Ghost 1783
total dd 0x0
4107 mario79 1784
 
223 Ghost 1785
total1 dd 0x0
4107 mario79 1786
 
223 Ghost 1787
rating dd 0x0
4107 mario79 1788
 
223 Ghost 1789
rat dd 0x0  ;
1790
 
4107 mario79 1791
 
1792
 
223 Ghost 1793
ram:
4107 mario79 1794
 
3587 fedesco 1795
if lang eq it
4107 mario79 1796
 
1797
                db 'RAM libera:        su'
1798
 
3587 fedesco 1799
else
4107 mario79 1800
 
1801
                db 'Available RAM:     out of'
1802
 
3587 fedesco 1803
end if
1804
 
4107 mario79 1805
 
3587 fedesco 1806
 
4107 mario79 1807
 
1808
 
223 Ghost 1809
ramlen:
1810
 
4107 mario79 1811
 
1812
 
223 Ghost 1813
NEF:
4107 mario79 1814
 
223 Ghost 1815
db 'EXTENDED FEATURES ARE NOT AVAILABLE'
4107 mario79 1816
 
223 Ghost 1817
NEFlen:
1818
 
4107 mario79 1819
 
1820
 
223 Ghost 1821
mb :
4107 mario79 1822
 
223 Ghost 1823
db 'MB'
4107 mario79 1824
 
223 Ghost 1825
mblen:
1826
 
4107 mario79 1827
 
1828
 
318 heavyiron 1829
;logcpus :
4107 mario79 1830
 
318 heavyiron 1831
;db 'Number of logical CPU:'
4107 mario79 1832
 
318 heavyiron 1833
;logcpuslen:
1834
 
4107 mario79 1835
 
1836
 
223 Ghost 1837
speed :
4107 mario79 1838
 
3587 fedesco 1839
if lang eq it
4107 mario79 1840
 
1841
                db 'Performance'
1842
 
3587 fedesco 1843
else
4107 mario79 1844
 
1845
                db 'PERFORMANCE:'
1846
 
3587 fedesco 1847
end if
1848
 
4107 mario79 1849
 
3587 fedesco 1850
 
4107 mario79 1851
 
1852
 
223 Ghost 1853
speedlen:
1854
 
4107 mario79 1855
 
1856
 
223 Ghost 1857
kbpersec:
4107 mario79 1858
 
223 Ghost 1859
db 'KB/SEC'
4107 mario79 1860
 
223 Ghost 1861
kbperseclen:
1862
 
4107 mario79 1863
 
1864
 
223 Ghost 1865
instruct:
4107 mario79 1866
 
3587 fedesco 1867
if lang eq it
4107 mario79 1868
 
1869
                db 'Set istruzioni'
1870
 
3587 fedesco 1871
else
4107 mario79 1872
 
1873
                db 'Instruction sets'
1874
 
3587 fedesco 1875
end if
1876
 
4107 mario79 1877
 
3587 fedesco 1878
 
4107 mario79 1879
 
1880
 
223 Ghost 1881
instructlen:
1882
 
4107 mario79 1883
 
1884
 
451 heavyiron 1885
standard    db 'Standard and Extended features plus Performance test',0
223 Ghost 1886
 
4107 mario79 1887
 
223 Ghost 1888
 
4107 mario79 1889
;FR:
1890
 
1891
;    db 'Choose FSB:'
1892
 
1893
;FRlen:
1894
 
1895
 
1896
 
223 Ghost 1897
STDCA:
4107 mario79 1898
 
223 Ghost 1899
    db 'Highest STD call is         '
4107 mario79 1900
 
223 Ghost 1901
STDCAlen:
1902
 
4107 mario79 1903
 
1904
 
223 Ghost 1905
EXTCA:
4107 mario79 1906
 
223 Ghost 1907
    db 'Highest EXT call is         h'
4107 mario79 1908
 
223 Ghost 1909
EXTCAlen:
1910
 
4107 mario79 1911
 
1912
 
223 Ghost 1913
brandid:
4107 mario79 1914
 
223 Ghost 1915
    db 'Brand:'
4107 mario79 1916
 
223 Ghost 1917
brandidlen:
1918
 
4107 mario79 1919
 
1920
 
223 Ghost 1921
oblom:
4107 mario79 1922
 
3587 fedesco 1923
if lang eq it
4107 mario79 1924
 
1925
                db 'CPUID non e disponibile'
1926
 
3587 fedesco 1927
else
4107 mario79 1928
 
1929
                db 'SORRY, CPUID IS NOT AVAILABLE'
1930
 
3587 fedesco 1931
end if
1932
 
4107 mario79 1933
 
1934
 
223 Ghost 1935
oblomlen:
4107 mario79 1936
 
223 Ghost 1937
other:
4107 mario79 1938
 
3587 fedesco 1939
if lang eq it
4107 mario79 1940
 
1941
                db 'Questo vendor non e supportato'
1942
 
3587 fedesco 1943
else
4107 mario79 1944
 
1945
                db 'SORRY, THIS VENDOR IS NOT SUPPORTED YET'
1946
 
3587 fedesco 1947
end if
1948
 
4107 mario79 1949
 
1950
 
223 Ghost 1951
otherlen:
318 heavyiron 1952
 
4107 mario79 1953
 
1954
 
223 Ghost 1955
cpuname:
4107 mario79 1956
 
3587 fedesco 1957
if lang eq it
4107 mario79 1958
 
1959
                db 'Vendor CPU              '
1960
 
3587 fedesco 1961
else
4107 mario79 1962
 
1963
                db 'CPU VENDOR:             '
1964
 
3587 fedesco 1965
end if
1966
 
4107 mario79 1967
 
1968
 
223 Ghost 1969
cpunamelen:
4107 mario79 1970
 
223 Ghost 1971
fam:
4107 mario79 1972
 
3587 fedesco 1973
if lang eq it
4107 mario79 1974
 
1975
                db 'Famiglia:   std    ext'
1976
 
3587 fedesco 1977
else
4107 mario79 1978
 
1979
                db 'FAMILY:     std    ext'
1980
 
3587 fedesco 1981
end if
1982
 
4107 mario79 1983
 
3587 fedesco 1984
 
4107 mario79 1985
 
1986
 
223 Ghost 1987
famlen:
4107 mario79 1988
 
223 Ghost 1989
mode:
4107 mario79 1990
 
3587 fedesco 1991
if lang eq it
4107 mario79 1992
 
1993
                db 'Modello:    std    ext'
1994
 
3587 fedesco 1995
else
4107 mario79 1996
 
1997
                db 'MODEL:      std    ext'
1998
 
3587 fedesco 1999
end if
2000
 
4107 mario79 2001
 
2002
 
223 Ghost 2003
modelen:
4107 mario79 2004
 
223 Ghost 2005
step:
4107 mario79 2006
 
3587 fedesco 2007
if lang eq it
4107 mario79 2008
 
2009
                db 'Stepping:'
2010
 
3587 fedesco 2011
else
4107 mario79 2012
 
2013
                db 'STEPPING:'
2014
 
3587 fedesco 2015
end if
2016
 
4107 mario79 2017
 
2018
 
223 Ghost 2019
steplen:
318 heavyiron 2020
 
4107 mario79 2021
 
2022
 
223 Ghost 2023
cache2:
2024
 
4107 mario79 2025
 
2026
 
318 heavyiron 2027
    db 'L1(data):     KB       -way set     -byte line size'
4107 mario79 2028
 
223 Ghost 2029
cache2len:
2030
 
4107 mario79 2031
 
2032
 
223 Ghost 2033
cache:
4107 mario79 2034
 
318 heavyiron 2035
    db 'L1(inst):     KB       -way set     -byte line size'
4107 mario79 2036
 
223 Ghost 2037
cachelen:
2038
 
4107 mario79 2039
 
2040
 
318 heavyiron 2041
cache3:
2042
 
4107 mario79 2043
 
2044
 
318 heavyiron 2045
    db 'L2:      KB            -way set     -byte line size'
4107 mario79 2046
 
318 heavyiron 2047
cache3len:
2048
 
4107 mario79 2049
 
2050
 
318 heavyiron 2051
cache4:
4107 mario79 2052
 
318 heavyiron 2053
    db 'L3:      KB            -way set     -byte line size'
4107 mario79 2054
 
318 heavyiron 2055
cache4len:
2056
 
4107 mario79 2057
 
2058
 
223 Ghost 2059
cacheP4:
2060
 
4107 mario79 2061
 
2062
 
318 heavyiron 2063
    db 'L1(inst):     Kuops    -way set     -byte line size'
4107 mario79 2064
 
223 Ghost 2065
cacheP4len:
2066
 
4107 mario79 2067
 
2068
 
223 Ghost 2069
tech:
4107 mario79 2070
 
3587 fedesco 2071
if lang eq it
4107 mario79 2072
 
2073
                db 'Tecnologia: 0.   micron '
2074
 
3587 fedesco 2075
else
4107 mario79 2076
 
2077
                db 'Technology: 0.   micron '
2078
 
3587 fedesco 2079
end if
2080
 
4107 mario79 2081
 
3587 fedesco 2082
 
4107 mario79 2083
 
2084
 
223 Ghost 2085
techlen:
2086
 
4107 mario79 2087
 
2088
 
223 Ghost 2089
typen:
4107 mario79 2090
 
3587 fedesco 2091
if lang eq it
4107 mario79 2092
 
2093
                db 'Tipo:'
2094
 
3587 fedesco 2095
else
4107 mario79 2096
 
2097
                db 'Type:'
2098
 
3587 fedesco 2099
end if
2100
 
4107 mario79 2101
 
2102
 
223 Ghost 2103
typenlen:
2104
 
4107 mario79 2105
 
2106
 
223 Ghost 2107
pr:
4107 mario79 2108
 
223 Ghost 2109
  db 'P-rating:'
4107 mario79 2110
 
223 Ghost 2111
prlen:
2112
 
4107 mario79 2113
 
2114
 
223 Ghost 2115
multil:
4107 mario79 2116
 
223 Ghost 2117
  db 'Multiplier:   .'
4107 mario79 2118
 
223 Ghost 2119
multillen:
2120
 
4107 mario79 2121
 
2122
 
223 Ghost 2123
freql:
4107 mario79 2124
 
223 Ghost 2125
  db 'System clock:     .   MHz'
4107 mario79 2126
 
223 Ghost 2127
freqllen:
2128
 
4107 mario79 2129
 
2130
 
223 Ghost 2131
name:
4107 mario79 2132
 
3587 fedesco 2133
if lang eq it
4107 mario79 2134
 
2135
                db 'Codename:'
2136
 
3587 fedesco 2137
else
4107 mario79 2138
 
2139
                db 'CODENAME:'
2140
 
3587 fedesco 2141
end if
2142
 
4107 mario79 2143
 
2144
 
223 Ghost 2145
namelen:
318 heavyiron 2146
 
4107 mario79 2147
 
2148
 
223 Ghost 2149
AMDn:
4107 mario79 2150
 
223 Ghost 2151
    db 'AMD'
4107 mario79 2152
 
223 Ghost 2153
AMDnlen:
4107 mario79 2154
 
223 Ghost 2155
Inteln:
4107 mario79 2156
 
223 Ghost 2157
    db 'Intel'
4107 mario79 2158
 
223 Ghost 2159
Intelnlen:
4107 mario79 2160
 
223 Ghost 2161
Cyrixn:
4107 mario79 2162
 
223 Ghost 2163
    db 'Cyrix'
4107 mario79 2164
 
223 Ghost 2165
Cyrixnlen:
4107 mario79 2166
 
223 Ghost 2167
IDTn:
4107 mario79 2168
 
223 Ghost 2169
     db 'IDT/Centaur'
4107 mario79 2170
 
223 Ghost 2171
IDTnlen:
4107 mario79 2172
 
223 Ghost 2173
Centaurn:
4107 mario79 2174
 
223 Ghost 2175
     db 'VIA'
4107 mario79 2176
 
223 Ghost 2177
Centaurnlen:
2178
 
4107 mario79 2179
 
2180
 
223 Ghost 2181
Tranmsmetan:
4107 mario79 2182
 
223 Ghost 2183
     db 'Transmeta'
4107 mario79 2184
 
223 Ghost 2185
Tranmsmetanlen:
2186
 
4107 mario79 2187
 
2188
Vortexn:
2189
    db 'Vortex86'
2190
Vortexnlen:
2191
 
2192
 
223 Ghost 2193
MMXs:
4107 mario79 2194
 
223 Ghost 2195
    db 'MMX:         '
4107 mario79 2196
 
223 Ghost 2197
MMXslen:
2198
 
4107 mario79 2199
 
2200
 
223 Ghost 2201
mmxp:
4107 mario79 2202
 
223 Ghost 2203
    db 'MMX+:         '
4107 mario79 2204
 
223 Ghost 2205
mmxplen:
2206
 
4107 mario79 2207
 
2208
 
223 Ghost 2209
HTT:
4107 mario79 2210
 
223 Ghost 2211
    db 'HTT:          '
4107 mario79 2212
 
223 Ghost 2213
HTTlen:
2214
 
4107 mario79 2215
 
2216
 
223 Ghost 2217
HTTn:
4107 mario79 2218
 
223 Ghost 2219
    db 'HTT:         '
4107 mario79 2220
 
223 Ghost 2221
HTTnlen:
2222
 
4107 mario79 2223
 
2224
 
223 Ghost 2225
sse3:
4107 mario79 2226
 
223 Ghost 2227
    db 'SSE3:         '
4107 mario79 2228
 
223 Ghost 2229
sse3len:
4107 mario79 2230
 
223 Ghost 2231
now:
4107 mario79 2232
 
223 Ghost 2233
    db '3DNOW!:         '
4107 mario79 2234
 
223 Ghost 2235
nowlen:
4107 mario79 2236
 
223 Ghost 2237
nowp:
4107 mario79 2238
 
223 Ghost 2239
    db '3DNOW!+:         '
4107 mario79 2240
 
223 Ghost 2241
nowplen:
2242
 
4107 mario79 2243
 
2244
 
223 Ghost 2245
;-Type
2246
 
4107 mario79 2247
 
2248
 
532 diamond 2249
t1      db      'OEM',0
4107 mario79 2250
 
532 diamond 2251
t2      db      'Overdrive',0
4107 mario79 2252
 
532 diamond 2253
t3      db      'Dual',0
4107 mario79 2254
 
532 diamond 2255
t4      db      'Unknown',0
223 Ghost 2256
 
4107 mario79 2257
 
2258
 
223 Ghost 2259
;----------Intel
4107 mario79 2260
 
223 Ghost 2261
P50:
4107 mario79 2262
 
223 Ghost 2263
db 'P5 A-step'
4107 mario79 2264
 
223 Ghost 2265
P50len:
4107 mario79 2266
 
223 Ghost 2267
P5:
4107 mario79 2268
 
223 Ghost 2269
db 'P5'
4107 mario79 2270
 
223 Ghost 2271
P5len:
4107 mario79 2272
 
223 Ghost 2273
P54T:
4107 mario79 2274
 
223 Ghost 2275
db 'P24T Overdrive'
4107 mario79 2276
 
223 Ghost 2277
P54Tlen:
4107 mario79 2278
 
223 Ghost 2279
P54C:
4107 mario79 2280
 
223 Ghost 2281
db 'P54C'
4107 mario79 2282
 
223 Ghost 2283
P54Clen:
4107 mario79 2284
 
223 Ghost 2285
P55C:
4107 mario79 2286
 
223 Ghost 2287
db 'P55C (with MMX)'
4107 mario79 2288
 
223 Ghost 2289
P55Clen:
4107 mario79 2290
 
223 Ghost 2291
; ---
4107 mario79 2292
 
223 Ghost 2293
P60:
4107 mario79 2294
 
223 Ghost 2295
db 'Pentium Pro A-step'
4107 mario79 2296
 
223 Ghost 2297
P60len:
4107 mario79 2298
 
223 Ghost 2299
P61:
4107 mario79 2300
 
223 Ghost 2301
db 'Pentium Pro'
4107 mario79 2302
 
223 Ghost 2303
P61len:
4107 mario79 2304
 
223 Ghost 2305
P63:
4107 mario79 2306
 
223 Ghost 2307
db 'Pentium II (Klamath)'
4107 mario79 2308
 
223 Ghost 2309
P63len:
4107 mario79 2310
 
223 Ghost 2311
P65:
4107 mario79 2312
 
223 Ghost 2313
db 'Pentium II (Deschutes)'
4107 mario79 2314
 
223 Ghost 2315
P65len:
4107 mario79 2316
 
223 Ghost 2317
P66:
4107 mario79 2318
 
223 Ghost 2319
db 'Celeron (Medocino)'
4107 mario79 2320
 
223 Ghost 2321
P66len:
4107 mario79 2322
 
223 Ghost 2323
P67:
4107 mario79 2324
 
223 Ghost 2325
db 'Pentium III (Katmai)'
4107 mario79 2326
 
223 Ghost 2327
P67len:
4107 mario79 2328
 
223 Ghost 2329
P68:
4107 mario79 2330
 
223 Ghost 2331
db 'Pentium III (Coppermine)'
4107 mario79 2332
 
223 Ghost 2333
P68len:
4107 mario79 2334
 
223 Ghost 2335
P69:
4107 mario79 2336
 
223 Ghost 2337
db 'Pentium M (Banias)'
4107 mario79 2338
 
223 Ghost 2339
P69len:
4107 mario79 2340
 
223 Ghost 2341
P6A:
4107 mario79 2342
 
223 Ghost 2343
db 'Pentium III Xeon (Cascades)'
4107 mario79 2344
 
223 Ghost 2345
P6Alen:
4107 mario79 2346
 
223 Ghost 2347
P6B:
4107 mario79 2348
 
223 Ghost 2349
db 'Pentium III (Tualatin)'
4107 mario79 2350
 
223 Ghost 2351
P6Blen:
4107 mario79 2352
 
223 Ghost 2353
P6D:
4107 mario79 2354
 
223 Ghost 2355
db 'Pentium M (Dothan)'
4107 mario79 2356
 
223 Ghost 2357
P6Dlen:
4107 mario79 2358
 
223 Ghost 2359
P6E:
4107 mario79 2360
 
318 heavyiron 2361
db 'Pentium M (Yonah)/ Core'
4107 mario79 2362
 
223 Ghost 2363
P6Elen:
4107 mario79 2364
 
223 Ghost 2365
P6F:
4107 mario79 2366
 
318 heavyiron 2367
db 'Pentium D (Conroe)/ Core 2 (Kentsfield)'
4107 mario79 2368
 
223 Ghost 2369
P6Flen:
4107 mario79 2370
 
223 Ghost 2371
;---
4107 mario79 2372
 
223 Ghost 2373
PS0:
4107 mario79 2374
 
223 Ghost 2375
db 'Itanium (IA-64)'
4107 mario79 2376
 
223 Ghost 2377
PS0len:
4107 mario79 2378
 
223 Ghost 2379
;------------
4107 mario79 2380
 
223 Ghost 2381
PF0:
4107 mario79 2382
 
223 Ghost 2383
db 'Pentium 4 (Willamete)'
4107 mario79 2384
 
223 Ghost 2385
PF0len:
4107 mario79 2386
 
223 Ghost 2387
PF2:
4107 mario79 2388
 
223 Ghost 2389
db 'Pentium 4 (Northwood)'
4107 mario79 2390
 
223 Ghost 2391
PF2len:
4107 mario79 2392
 
223 Ghost 2393
PF3:
4107 mario79 2394
 
223 Ghost 2395
db 'Pentium 4 (Prescott)'
4107 mario79 2396
 
223 Ghost 2397
PF3len:
4107 mario79 2398
 
223 Ghost 2399
PF5:
4107 mario79 2400
 
223 Ghost 2401
db 'Pentium 4 (Tejas)'
4107 mario79 2402
 
223 Ghost 2403
PF5len:
4107 mario79 2404
 
223 Ghost 2405
PF6:
4107 mario79 2406
 
223 Ghost 2407
db 'Pentium 4 (Presler)'
4107 mario79 2408
 
223 Ghost 2409
PF6len:
4107 mario79 2410
 
223 Ghost 2411
;----------------Intel Celerons
4107 mario79 2412
 
223 Ghost 2413
P65c:
4107 mario79 2414
 
223 Ghost 2415
db 'Celeron (Covington)'
4107 mario79 2416
 
223 Ghost 2417
P65clen:
4107 mario79 2418
 
223 Ghost 2419
P68c:
4107 mario79 2420
 
223 Ghost 2421
db 'Celeron (Coppermine)'
4107 mario79 2422
 
223 Ghost 2423
P68clen:
4107 mario79 2424
 
223 Ghost 2425
P6Bc:
4107 mario79 2426
 
223 Ghost 2427
db 'Celeron (Tualatin)'
4107 mario79 2428
 
223 Ghost 2429
P6Bclen:
4107 mario79 2430
 
223 Ghost 2431
PF0c:
4107 mario79 2432
 
223 Ghost 2433
db 'Celeron (Willamete)'
4107 mario79 2434
 
223 Ghost 2435
PF0clen:
4107 mario79 2436
 
223 Ghost 2437
PF2c:
4107 mario79 2438
 
223 Ghost 2439
db 'Celeron (Northwood)'
4107 mario79 2440
 
223 Ghost 2441
PF2clen:
4107 mario79 2442
 
223 Ghost 2443
PF3c:
4107 mario79 2444
 
223 Ghost 2445
db 'Celeron (Prescott)'
4107 mario79 2446
 
223 Ghost 2447
PF3clen:
4107 mario79 2448
 
223 Ghost 2449
PF5c:
4107 mario79 2450
 
223 Ghost 2451
db 'Celeron D (Texas)'
4107 mario79 2452
 
223 Ghost 2453
PF5clen:
4107 mario79 2454
 
223 Ghost 2455
PF6c:
4107 mario79 2456
 
223 Ghost 2457
db 'Celeron D (Presler)'
4107 mario79 2458
 
223 Ghost 2459
PF6clen:
4107 mario79 2460
 
223 Ghost 2461
;---------AMD
4107 mario79 2462
 
532 diamond 2463
A50     db 'K5 (PR75, PR90, PR100)',0
4107 mario79 2464
 
532 diamond 2465
A51     db '5k86 (PR120, PR133)',0
4107 mario79 2466
 
532 diamond 2467
A52     db '5k86 (PR166)',0
4107 mario79 2468
 
532 diamond 2469
A53     db '5k86 (PR200)',0
4107 mario79 2470
 
532 diamond 2471
A56     db 'K6',0
4107 mario79 2472
 
532 diamond 2473
A57     db 'K6',0
4107 mario79 2474
 
532 diamond 2475
A58     db 'K6-2',0
4107 mario79 2476
 
532 diamond 2477
A59     db 'K6-III',0
4107 mario79 2478
 
532 diamond 2479
A5D     db 'K6-2+ or K6-III+',0
4107 mario79 2480
 
223 Ghost 2481
;-------------------
4107 mario79 2482
 
532 diamond 2483
At1     db 'Athlon',0
4107 mario79 2484
 
532 diamond 2485
At2     db 'Athlon',0
4107 mario79 2486
 
532 diamond 2487
At3     db 'Duron (Spitfire)',0
4107 mario79 2488
 
532 diamond 2489
At4     db 'Athlon (Thunderbird)',0
4107 mario79 2490
 
532 diamond 2491
At6     db 'AthlonXP (Palomino)',0
4107 mario79 2492
 
532 diamond 2493
At7     db 'Duron (Morgan)',0
4107 mario79 2494
 
532 diamond 2495
At8     db 'AthlonXP (Thoroughbred)',0
4107 mario79 2496
 
532 diamond 2497
At8a    db 'Duron (Applebred)',0
4107 mario79 2498
 
532 diamond 2499
Ata     db 'AthlonXP (Barton)',0
4107 mario79 2500
 
532 diamond 2501
Atat    db 'AthlonXP (Thorton)',0
4107 mario79 2502
 
223 Ghost 2503
;-------------------
4107 mario79 2504
 
223 Ghost 2505
AF1:
4107 mario79 2506
 
223 Ghost 2507
db 'Dual-core Opteron'
4107 mario79 2508
 
223 Ghost 2509
AF1len:
4107 mario79 2510
 
223 Ghost 2511
AF3:
4107 mario79 2512
 
223 Ghost 2513
db 'Athlon 64 (Toledo)'
4107 mario79 2514
 
223 Ghost 2515
AF3len:
4107 mario79 2516
 
223 Ghost 2517
AF4:
4107 mario79 2518
 
223 Ghost 2519
db 'Athlon 64 (ClawHammer)'
4107 mario79 2520
 
223 Ghost 2521
AF4len:
4107 mario79 2522
 
223 Ghost 2523
AF5:
4107 mario79 2524
 
223 Ghost 2525
db 'Opteron/Athlon 64 FX (SledgeHammer)'
4107 mario79 2526
 
223 Ghost 2527
AF5len:
2528
 
4107 mario79 2529
 
2530
 
223 Ghost 2531
AFC:
4107 mario79 2532
 
223 Ghost 2533
db 'Athlon 64 (Newcastle)'
4107 mario79 2534
 
223 Ghost 2535
AFClen:
2536
 
4107 mario79 2537
 
2538
 
223 Ghost 2539
AFF:
4107 mario79 2540
 
223 Ghost 2541
db 'Athlon 64 (Winchester)'
4107 mario79 2542
 
223 Ghost 2543
AFFlen:
2544
 
4107 mario79 2545
 
2546
 
223 Ghost 2547
AFS:
4107 mario79 2548
 
223 Ghost 2549
db 'Athlon 64 (San Diego)'
4107 mario79 2550
 
223 Ghost 2551
AFSlen:
2552
 
4107 mario79 2553
 
2554
 
223 Ghost 2555
AFV:
4107 mario79 2556
 
223 Ghost 2557
db 'Athlon 64 (Venice)'
4107 mario79 2558
 
223 Ghost 2559
AFVlen:
2560
 
4107 mario79 2561
 
2562
 
223 Ghost 2563
AFCs:
4107 mario79 2564
 
223 Ghost 2565
db 'Sempron (Paris)'
4107 mario79 2566
 
223 Ghost 2567
AFCslen:
2568
 
4107 mario79 2569
 
2570
 
223 Ghost 2571
AFCsp:
4107 mario79 2572
 
223 Ghost 2573
db 'Sempron (Palermo)'
4107 mario79 2574
 
223 Ghost 2575
AFCsplen:
2576
 
4107 mario79 2577
 
2578
 
223 Ghost 2579
;---------Cyrix
4107 mario79 2580
 
223 Ghost 2581
C52:
4107 mario79 2582
 
223 Ghost 2583
db '6x86 M1'
4107 mario79 2584
 
223 Ghost 2585
C52len:
4107 mario79 2586
 
223 Ghost 2587
C54:
4107 mario79 2588
 
223 Ghost 2589
db 'MediaGX'
4107 mario79 2590
 
223 Ghost 2591
C54len:
4107 mario79 2592
 
223 Ghost 2593
C60:
4107 mario79 2594
 
223 Ghost 2595
db '6x86MX M2'
4107 mario79 2596
 
223 Ghost 2597
C60len:
4107 mario79 2598
 
223 Ghost 2599
C65:
4107 mario79 2600
 
223 Ghost 2601
db 'C3 (Cyrix M2)' ;?
4107 mario79 2602
 
223 Ghost 2603
C65len:
4107 mario79 2604
 
223 Ghost 2605
;--------IDT
4107 mario79 2606
 
223 Ghost 2607
V54:
4107 mario79 2608
 
223 Ghost 2609
db 'WinChip C6'
4107 mario79 2610
 
223 Ghost 2611
V54len:
4107 mario79 2612
 
223 Ghost 2613
V58:
4107 mario79 2614
 
223 Ghost 2615
db 'WinChip 2'
4107 mario79 2616
 
223 Ghost 2617
V58len:
4107 mario79 2618
 
223 Ghost 2619
V59:
4107 mario79 2620
 
223 Ghost 2621
db 'WinChip 3'
4107 mario79 2622
 
223 Ghost 2623
V59len:
4107 mario79 2624
 
223 Ghost 2625
;-------VIA
4107 mario79 2626
 
223 Ghost 2627
V66:
4107 mario79 2628
 
223 Ghost 2629
db 'C3 (Samuel)'  ; Joshua is unreleased 065
4107 mario79 2630
 
223 Ghost 2631
V66len:
4107 mario79 2632
 
223 Ghost 2633
V67:
4107 mario79 2634
 
223 Ghost 2635
db 'C3 (Samuel2/Ezra)' ; ?
4107 mario79 2636
 
223 Ghost 2637
V67len:
4107 mario79 2638
 
223 Ghost 2639
V68:
4107 mario79 2640
 
223 Ghost 2641
db 'C3 (Ezra-T/Eden)' ;?
4107 mario79 2642
 
223 Ghost 2643
V68len:
4107 mario79 2644
 
223 Ghost 2645
V69:
4107 mario79 2646
 
223 Ghost 2647
db 'C3 (Antaur/Nehemiah)' ;?
4107 mario79 2648
 
223 Ghost 2649
V69len:
4107 mario79 2650
 
223 Ghost 2651
VA:
4107 mario79 2652
 
223 Ghost 2653
db 'C7 (Esther)' ;?
4107 mario79 2654
 
223 Ghost 2655
VAlen:
4107 mario79 2656
 
223 Ghost 2657
;---------Transmeta
4107 mario79 2658
 
223 Ghost 2659
T5:
4107 mario79 2660
 
223 Ghost 2661
db 'Crusoe' ;
4107 mario79 2662
 
223 Ghost 2663
T5len:
4107 mario79 2664
 
223 Ghost 2665
TF:
4107 mario79 2666
 
223 Ghost 2667
db 'Efficeon' ;
4107 mario79 2668
 
223 Ghost 2669
TFlen:
4107 mario79 2670
 
223 Ghost 2671
;---------
4107 mario79 2672
 
223 Ghost 2673
NG:
4107 mario79 2674
 
223 Ghost 2675
    db 'Next generation CPU'
4107 mario79 2676
 
223 Ghost 2677
NGlen:
2678
 
4107 mario79 2679
 
2680
 
223 Ghost 2681
stm:
4107 mario79 2682
 
3587 fedesco 2683
if lang eq it
4107 mario79 2684
 
2685
                db 'Nome:  '
2686
 
3587 fedesco 2687
else
4107 mario79 2688
 
2689
                db 'Internal name:'
2690
 
3587 fedesco 2691
end if
2692
 
4107 mario79 2693
 
2694
 
223 Ghost 2695
stmlen:
2696
 
4107 mario79 2697
 
223 Ghost 2698
 
4107 mario79 2699
athloncoef      db      110, 115, 120, 125, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 120
2700
 
2701
                db      190, 120, 200, 130, 135, 140, 210, 150, 220, 160, 165, 170, 180, 230, 240
2702
 
2703
athlonmcoef:    db      110, 115, 120, 125, 50, 55, 60, 65,  70, 75, 80, 85, 90, 95, 100, 105
2704
 
2705
                db      30, 190, 40, 200, 130, 135, 14, 210, 150, 220, 160, 165, 170, 230, 240
2706
 
2707
athloncoef3     db      45, 50, 40, 55, 25, 30, 60, 35
2708
 
2709
p4coef          db      160, 170, 180, 190, 200, 210, 220, 230, 80, 90, 100, 110, 120, 130, 140, 150    ; Pentium 4 (Willamete)
2710
 
2711
coppercoeff     db       50, 30, 40, 20, 55, 35,  45, 25,  35, 70, 80, 60, 20, 75, 15, 65, 90, 110, 120, 20, 95, 115, 85, 25, 35, 70,  80, 100,  20, 75,  15, 105
2712
 
2713
tualatcoeff     db      120, 35, 35, 40, 55, 35, 115, 35, 160, 70, 80, 60, 40, 75, 35, 65, 90, 110,  35, 35, 95,  35, 85, 35, 35, 35, 130, 100, 140, 35, 150, 105
2714
 
2715
 
2716
 
223 Ghost 2717
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4107 mario79 2718
 
223 Ghost 2719
;
4107 mario79 2720
 
223 Ghost 2721
;  include images and unpacking- and hasharea
4107 mario79 2722
 
223 Ghost 2723
;
4107 mario79 2724
 
223 Ghost 2725
include 'logos.inc' ; include file where gif's are stored
2726
 
4107 mario79 2727
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2728
I_END:
223 Ghost 2729
 
4107 mario79 2730
img_area:          ; image is going to be unpacked to here
2731
rb 201*49*3+8      ; image resolution (bits to reserve)
2732
 
2733
img_area2:         ; image is going to be unpacked to here
2734
rb 93*24*3+8       ; image resolution (bits to reserve)
2735
 
223 Ghost 2736
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2737
 
4107 mario79 2738
; RSA test data
451 heavyiron 2739
 
532 diamond 2740
align 4
4107 mario79 2741
 
532 diamond 2742
  num1 rd 40
4107 mario79 2743
 
532 diamond 2744
  num2 rd 40
4107 mario79 2745
 
532 diamond 2746
  num3 rd 40
4107 mario79 2747
 
532 diamond 2748
  iter rd 1
4107 mario79 2749
 
532 diamond 2750
  openkey rd 1
2751
 
4107 mario79 2752
 
2753
 
552 diamond 2754
IncludeUGlobals
532 diamond 2755
 
4107 mario79 2756
 
2757
 
451 heavyiron 2758
ost dd ?
4107 mario79 2759
 
451 heavyiron 2760
sot dd ?
4107 mario79 2761
 
451 heavyiron 2762
f dd ?
4107 mario79 2763
 
451 heavyiron 2764
m dd ?
4107 mario79 2765
 
451 heavyiron 2766
s dd ?
4107 mario79 2767
 
451 heavyiron 2768
t dd ?
2769
 
4107 mario79 2770
 
2771
 
451 heavyiron 2772
ef dd ?
4107 mario79 2773
 
451 heavyiron 2774
em dd ?
2775
 
4107 mario79 2776
 
2777
 
451 heavyiron 2778
multiplier dd ?
4107 mario79 2779
 
451 heavyiron 2780
multa dd ?
4107 mario79 2781
 
451 heavyiron 2782
multb dd ?
2783
 
4107 mario79 2784
 
2785
 
451 heavyiron 2786
smallvendor dd ?
4107 mario79 2787
 
451 heavyiron 2788
L1d  dd ?
4107 mario79 2789
 
451 heavyiron 2790
L1i  dd ?
4107 mario79 2791
 
451 heavyiron 2792
L2   dd ?
4107 mario79 2793
 
451 heavyiron 2794
L3   dd ?
4107 mario79 2795
 
451 heavyiron 2796
micron dd ?
4107 mario79 2797
 
451 heavyiron 2798
brand dd ?
2799
 
4107 mario79 2800
 
2801
 
451 heavyiron 2802
ram_size_a dd ?
4107 mario79 2803
 
451 heavyiron 2804
ram_size_t dd ?
2805
 
4107 mario79 2806
 
2807
 
451 heavyiron 2808
stdc dd ?
4107 mario79 2809
 
451 heavyiron 2810
extc dd ?
2811
 
4107 mario79 2812
 
2813
 
451 heavyiron 2814
FRS dd ?
4107 mario79 2815
 
451 heavyiron 2816
freqsel db ?
4107 mario79 2817
 
532 diamond 2818
sse3sup db ?
451 heavyiron 2819
 
4107 mario79 2820
 
2821
 
451 heavyiron 2822
freqbb dd ?
4107 mario79 2823
 
451 heavyiron 2824
freqll dd ?
2825
 
4107 mario79 2826
 
2827
 
451 heavyiron 2828
wayli dd ?
4107 mario79 2829
 
451 heavyiron 2830
lineli dd ?
2831
 
4107 mario79 2832
 
2833
 
451 heavyiron 2834
wayld dd ?
4107 mario79 2835
 
451 heavyiron 2836
lineld dd ?
2837
 
4107 mario79 2838
 
2839
 
451 heavyiron 2840
wayl2 dd ?
4107 mario79 2841
 
451 heavyiron 2842
linel2 dd ?
2843
 
4107 mario79 2844
 
2845
 
451 heavyiron 2846
wayl3 dd ?
4107 mario79 2847
 
451 heavyiron 2848
linel3 dd ?
2849
 
4107 mario79 2850
 
2851
 
451 heavyiron 2852
;number_of_log_cpus dd ?
2853
 
4107 mario79 2854
 
2855
 
451 heavyiron 2856
che db ? ; numbers of calls for Intel caches detection
2857
 
4107 mario79 2858
 
2859
 
451 heavyiron 2860
myname:
4107 mario79 2861
 
451 heavyiron 2862
   rb 48
4107 mario79 2863
 
451 heavyiron 2864
mynamelen:
2865
 
4107 mario79 2866
 
2867
 
223 Ghost 2868
align 4
485 heavyiron 2869
 
4107 mario79 2870
 
2871
 
223 Ghost 2872
  thread2_stack_area rb 64
4107 mario79 2873
 
223 Ghost 2874
  thread2_esp = $
4107 mario79 2875
 
2876
U_END: