Subversion Repositories Kolibri OS

Rev

Rev 8015 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
223 Ghost 1
;******************************************************************************
7442 leency 2
; project name:  CPUID                                                        *
3
; platform:      KolibriOS, x86 (IA-32), x86-64 achitectures                  *
4
; compiler:      flat assembler 1.70.03                                       *
5
; version:       2.31                                                        *
6
; last update:   9 October 2018                                              *
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-2018 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
;-----------------------------------------------------------------------------*
7442 leency 18
; English comments                                                            *
223 Ghost 19
;------------------------------------------------------------------------------
20
use32
7442 leency 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
7442 leency 28
  dd     0x0
29
  dd     path
223 Ghost 30
 
6488 pathoswith 31
include '..\..\..\develop\libraries\box_lib\load_lib.mac'
32
include '..\..\..\macros.inc'
7442 leency 33
include '../../../gui_patterns.inc'
34
include '../../../KOSfuncs.inc'
6486 pathoswith 35
include 'lang.inc'
485 heavyiron 36
include 'draw.inc'
6486 pathoswith 37
include 'brand.inc'     ; brand ID decoding
38
include 'caches.inc'    ; L1 and L2 cashes decoding for Intel
39
include 'multipli.inc'  ; multiplier decoding
40
include 'features.inc'  ; features decoding
41
include 'logos.inc'     ; include file where gif's are stored
223 Ghost 42
include 'rsatest.inc'
43
include 'variable.inc'
6608 pathoswith 44
include 'gif_lite.inc'
223 Ghost 45
 
6483 mat1854 46
@use_library
318 heavyiron 47
 
6486 pathoswith 48
START:
7442 leency 49
        mcall   68,11
50
        mcall   66,1,1
51
        mcall   SF_STYLE_SETTINGS, SSF_GET_COLORS, sc, sizeof.system_colors
318 heavyiron 52
 
6483 mat1854 53
load_libraries l_libs_start,end_l_libs
54
;-----------------------------------------------------------------------------
55
;OpenDialog     initialisation
7442 leency 56
        push    dword OpenDialog_data
57
        call    [OpenDialog_Init]
6483 mat1854 58
 
7442 leency 59
        mov     edi,filename_area
60
        mov     esi,start_temp_file_name
61
        call    copy_file_name_path
6483 mat1854 62
;-----------------------------------------------------------------------------
7442 leency 63
        mcall   68,12,4096*8 ; 16 Kb - I hope this will be enough for store of data
64
        mov     [store_text_area_start],eax
6483 mat1854 65
 
66
 
223 Ghost 67
;------------
68
CYCLES:
6483 mat1854 69
;   CPU speed
7442 leency 70
        mov eax, 18
71
        mov ebx,5
72
        mcall
73
        mov [total1],eax  ;in Hz,  example 1600490000
74
        xor  edx,edx
75
        mov  ebx,1000000
76
        div  ebx
77
        mov [total], eax  ; in Mhz,  example 1600
78
        xor edx, edx
79
        mov eax, [total1]
80
        mov ebx, 10000
81
        div ebx
82
        mov [ost], eax    ; example 160049
83
        mov ecx, [total]
84
        imul ecx, 100
85
        neg  ecx
86
        add  ecx, eax
87
        mov [sot], ecx    ; example 49
223 Ghost 88
;------------
7442 leency 89
cpu:                  ;is CPUID supported?
90
        pushfd              ;push original EFLAGS
91
        pop eax             ;get original EFLAGS
92
        mov ebx, eax        ;save original EFLAGS
93
        xor eax, 00200000h  ;flip 21th bit in EFLAGS
94
        push eax            ;save new EFLAGS value on stack
95
        popfd               ;replace current EFLAGS value
96
        pushfd              ;get new EFLAGS
97
        pop eax             ;store new EFLAGS in EAX
98
        cmp eax, ebx        ;compare values of 21th bit
99
        jz NO_CPUID         ;CPUID isn't supported
223 Ghost 100
;------------
7442 leency 101
CPUNAME:              ; VENDOR
102
        mov   eax,0       ; eax=0
103
        cpuid
223 Ghost 104
 
7442 leency 105
        mov [stdc], eax   ; number of calls
106
        mov   [cpuname+ 12],ebx
107
        mov   [cpuname+ 16],edx
108
        mov   [cpuname+ 20],ecx
109
        mov   [smallvendor],ecx
223 Ghost 110
 
111
; for various vendors we should later use different methods
112
 
113
;Decoding cache L1 and L2 for Intel
114
 
7442 leency 115
        cmp ecx, 'ntel'
116
        jne cpu1     ;is not Intel
223 Ghost 117
 
118
;Starting L1, L2, L3 caches detection (Intel made it VERY HARD)
119
 
7442 leency 120
        mov eax, 2
121
        cpuid
223 Ghost 122
 
7442 leency 123
        mov [che], al        ; number of calls
223 Ghost 124
multik:
125
 
126
.eaxl:
7442 leency 127
        test  eax, eax       ;    Test bit 31
128
        js    .ebxl          ;    <> 0 =>invalid values
129
        call decodecache24
223 Ghost 130
.ebxl:
7442 leency 131
        test  ebx, ebx
132
        js    .ecxl
133
        mov eax, ebx
134
        call decodecache32
223 Ghost 135
.ecxl:
7442 leency 136
        test  ecx, ecx
137
        js    .edxl
138
        mov eax, ecx
139
        call decodecache32
223 Ghost 140
.edxl:
7442 leency 141
        test  edx, edx
142
        js    cpu1
143
        mov eax, edx
144
        call decodecache32
223 Ghost 145
 
7442 leency 146
        dec [che]    ; we made all calls
147
        je cpu1
223 Ghost 148
 
149
multi: ; not yet
150
 
7442 leency 151
        mov eax, 2  ; so we made call again
152
        cpuid
223 Ghost 153
 
7442 leency 154
        jmp multik
223 Ghost 155
 
156
;  FAMILY MODEL STEPPING
157
cpu1:
7442 leency 158
        xor eax, eax
159
        inc eax   ; eax=1
160
        cpuid
223 Ghost 161
 
7442 leency 162
        mov ecx, eax
163
        shr ecx,8         ;   shift it to the correct position
164
        and ecx,0000000Fh ;   get CPU family
165
        mov dword[f],ecx
223 Ghost 166
 
7442 leency 167
        mov ecx, eax
168
        shr ecx,4
169
        and ecx,0000000Fh ;    get CPU model
170
        mov dword[m],ecx
223 Ghost 171
 
7442 leency 172
        mov ecx, eax
173
        and ecx,0000000Fh ;   get CPU stepping
174
        mov dword[s],ecx
223 Ghost 175
 
7442 leency 176
        ;-
177
        mov ecx, eax      ; get Type
178
        shl ecx, 18
179
        shr ecx,30
180
        ;and ecx, 0000000Fh ; only two lower bits can be nonzero
181
        mov dword[t], ecx
223 Ghost 182
;=======================================================
183
 
7442 leency 184
        cmp dword[smallvendor], 'cAMD'
185
        jz maybe_athlon
186
        cmp dword[smallvendor], 'ntel'
187
        jnz no_full   ; if not AMD or Intel
223 Ghost 188
 
4107 mario79 189
;detect_it:
190
;cmp [f], 0Fh
191
;jne no_full   fixed calculation of extended model for Intel
223 Ghost 192
 
193
full:
194
 
7442 leency 195
        mov ecx, eax          ; get Extended model
196
        shr ecx,16            ;shift it to the correct position
197
        and ecx, 0000000Fh
198
        shl ecx, 4
199
        mov dword[newpc],ecx     ;  this value for old pc=0 and for new pc>0
200
        add ecx, [m]
201
        mov dword[em],ecx     ;  effective    model
223 Ghost 202
 
7442 leency 203
        mov ecx, eax          ; get Extended family
204
        shr ecx, 20           ;shift it to the correct position
205
        and ecx, 000000FFh
206
        add ecx, [f]
207
        mov dword[ef],ecx     ; effective family
223 Ghost 208
 
209
 
7442 leency 210
        jmp fut
223 Ghost 211
 
212
no_full:
213
 
7442 leency 214
        mov ecx, [m]
215
        mov [em], ecx
223 Ghost 216
 
7442 leency 217
        mov ecx, [f]
218
        mov [ef], ecx
223 Ghost 219
 
7442 leency 220
        jmp fut
223 Ghost 221
 
222
maybe_athlon:
7442 leency 223
        mov eax, 0x80000001               ; CPUID ext. function 0x80000001
224
        cpuid
225
        mov ecx, eax
226
        shr ecx,8         ;   shift it to the correct position
227
        and ecx,0000000Fh ;   get CPU family
228
        mov dword[ef],ecx
223 Ghost 229
 
7442 leency 230
        mov ecx, eax
231
        shr ecx,4
232
        and ecx,0000000Fh ;    get CPU model
233
        mov dword[em],ecx
223 Ghost 234
 
235
fut:
236
 
7442 leency 237
        call decode_sse3_5
6483 mat1854 238
 
239
 
240
 
7442 leency 241
        ;call decode_sse3_5
242
        ;-
243
        call decode_extended
223 Ghost 244
 
7442 leency 245
        mov   eax,$80000000
246
        cpuid
223 Ghost 247
 
7442 leency 248
        mov   [extc], eax  ; max number of calls
223 Ghost 249
 
7442 leency 250
        test  eax, $80000000 ;// Test bit 31
251
        jz .noname
6483 mat1854 252
 
7442 leency 253
        cmp  eax,$80000003
254
        ja .mynameis
255
        jmp .noname
6483 mat1854 256
 
257
.mynameis:
7442 leency 258
        mov       eax,$80000002
259
        cpuid
260
        mov   [myname],eax
261
        mov   [myname+4],ebx
262
        mov   [myname+8],ecx
263
        mov   [myname+12],edx
264
        mov   eax,$80000003
265
        cpuid
266
        mov   [myname+16],eax
267
        mov   [myname+20],ebx
268
        mov   [myname+24],ecx
269
        mov   [myname+28],edx
270
        mov   eax,$80000004
271
        cpuid
272
        mov   [myname+32],eax
273
        mov   [myname+36],ebx
274
        mov   [myname+40],ecx
275
        mov   [myname+44],edx
276
        jmp   red
223 Ghost 277
 
278
.noname:
7442 leency 279
 
6483 mat1854 280
red:
223 Ghost 281
 
7442 leency 282
        ;mov byte [multiplier], 115;     ; for testing
223 Ghost 283
 
7442 leency 284
        call decode_sse3
6483 mat1854 285
 
7442 leency 286
        call multipl                          ; get multiplier
287
        mov byte [multiplier], cl
223 Ghost 288
 
7442 leency 289
        mov   dword [freqbb], 0
290
        mov   dword [freqll], 0
223 Ghost 291
 
7442 leency 292
        mov   ebx, dword [multiplier]
293
        test  ebx, ebx
294
        jz output
6486 pathoswith 295
 
7442 leency 296
        calc:
223 Ghost 297
 
7442 leency 298
        mov eax,dword [ost]   ; example 166474
299
        imul eax, 10          ; example 1664740
300
        xor edx,edx
301
        div ebx               ; get system clock (if multiplier detected)
223 Ghost 302
 
7442 leency 303
        xor edx, edx                    ; example eax=16647
304
        mov ebx, 100
305
        div ebx
306
        mov dword [freqbb], eax         ; example 166
307
        mov dword [freqll], edx         ; example 47
223 Ghost 308
 
7442 leency 309
        xor edx, edx
310
        mov eax,dword[multiplier]  ; example 115
311
        mov  ebx,10
312
        div  ebx
313
        mov dword[multb], eax  ;   example 11
314
        mov dword[multa], edx    ; example 5
223 Ghost 315
 
316
output:
317
 
7442 leency 318
        call draw_window    ;     Draw window
223 Ghost 319
 
6483 mat1854 320
;HRERE
223 Ghost 321
 
322
PROCCORE:    ;   Who are you?
323
; Intel - "GenuineIntel"           +
324
; AMD - "AuthenticAMD"             +
325
; Cyrix - "CyrixInstead"           +
326
; UMC - "UMC UMC UMC "
327
; NexGen - "NexGenDriven"
328
; Centaur - "CentaurHauls"         +
329
; Rise Technology - "RiseRiseRise"
330
; SiS - "SiS SiS SiS "
331
; Transmeta - "GenuineTMx86"       +
332
; National Semiconductor - "Geode by NSC"
4107 mario79 333
; Vortex - "Vortex86 SoC"       + initial support
7442 leency 334
        cmp dword[smallvendor], 'ntel'   ;1
335
        jz Intel
336
        cmp dword[smallvendor], 'cAMD'   ;2
337
        jz AMD
338
        cmp dword[smallvendor], 'tead'   ;3
339
        jz Cyrix
340
        cmp dword[smallvendor], 'auls'    ;4
341
        jz Centaur
342
        cmp dword[smallvendor], 'Mx86'    ;5
343
        jz Transmeta
344
        cmp dword[smallvendor], ' SoC'    ;6
345
        jz Vortex
223 Ghost 346
 
347
; cmp ecx, 'UMC '
348
; jz .UMC
349
; cmp ecx, 'iven'
350
; jz .NexGen
351
; cmp ecx, 'Rise'
352
;  jz .Rise
353
; cmp ecx, 'SiS '
354
; jz .SiS
355
; cmp ecx, ' NSC'
356
; jz .NSC
532 diamond 357
; jmp Other   ;  I don't know what to do with you...
223 Ghost 358
Other:
7442 leency 359
        Text 75,70,0x00000000,other, otherlen-other
6483 mat1854 360
 
7442 leency 361
        mov esi, other
362
        mov edi, [saveproc]
363
        call concatname
6483 mat1854 364
 
7442 leency 365
        jmp MMXtest
223 Ghost 366
;-------------------------
367
 
368
AMD:
369
 
6483 mat1854 370
;-------------------------------------------------------------------------------
371
 
7442 leency 372
        Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 373
 
7442 leency 374
        Text 75,70,,AMDn, AMDnlen-AMDn
375
        mov esi, AMDnNew
376
        mov edi, saveproc
377
        call concatname
378
        mov     esi, amd
379
        call    load_gif
380
        PutImage 135,107,201,49,img_area+8
381
        MOV [codeN], 2
318 heavyiron 382
;         place   size
223 Ghost 383
 
384
; Relax, man. AMD made PRETTY SIMPLE cache detection routine
385
;CACHE1:
7442 leency 386
        mov eax, 80000005h
387
        cpuid
318 heavyiron 388
 
7442 leency 389
        movzx eax, cl
390
        mov [lineld], eax
318 heavyiron 391
 
7442 leency 392
        mov eax, ecx
393
        ;shl eax, 8
394
        ;shr eax, 24
318 heavyiron 395
 
7442 leency 396
        and eax,00FF0000h
397
        shr eax, 16
398
        mov [wayld], eax
318 heavyiron 399
 
7442 leency 400
        shr ecx, 24
401
        mov [L1d], ecx
318 heavyiron 402
 
403
 
7442 leency 404
        movzx eax, dl
405
        mov [lineli], eax
318 heavyiron 406
 
7442 leency 407
        mov eax, edx
408
        ;shl eax, 8
409
        ;shr eax, 24
318 heavyiron 410
 
7442 leency 411
        and eax,00FF0000h
412
        shr eax, 16
413
        mov [wayli], eax
318 heavyiron 414
 
415
 
7442 leency 416
        shr edx, 24
417
        mov [L1i], edx
318 heavyiron 418
 
419
 
223 Ghost 420
;CACHE2:
7442 leency 421
        mov eax, 80000006h
422
        cpuid
318 heavyiron 423
 
7442 leency 424
        movzx eax, cl
425
        mov dword[linel2], eax
318 heavyiron 426
 
7442 leency 427
        push ecx
428
        shr ecx, 12+1
429
        and ecx, 0x7
430
        mov eax, 1
431
        shl eax, cl
432
        mov dword [wayl2], eax
433
        pop ecx
318 heavyiron 434
 
7442 leency 435
        shr ecx, 16
436
        mov [L2],ecx
318 heavyiron 437
 
6486 pathoswith 438
;CACHE3: edx provides l3
6483 mat1854 439
 
7442 leency 440
        mov eax, 80000006h
441
        cpuid
6486 pathoswith 442
 
7442 leency 443
        movzx eax, cl       ;mov cl to eax, zero extend; cl is counter reg for loop,shifts
444
        mov dword[linel3], eax
6483 mat1854 445
 
7442 leency 446
        push edx
447
        shr edx, 12+1
448
        and edx, 0x7
449
        mov eax, 1
450
        shl eax, cl
451
        mov dword [wayl3], eax
452
        pop edx
6483 mat1854 453
 
7442 leency 454
        shr edx, 18
455
        mov [L3],ecx
6483 mat1854 456
 
7442 leency 457
        cmp [f], $5
458
        jz .fiv
459
        cmp [f], $6
460
        jz .si
461
        cmp [f], $F
462
        jz fif
463
        cmp [f], $10   ;family 16, 010h,
464
        jz ten
6483 mat1854 465
 
6486 pathoswith 466
 
7442 leency 467
.fiv:    ;     Family=5
468
        mov     [micron], 50
469
        mov     edx, A50
470
        cmp     [m], $0
471
        jz      @f
472
        mov     [micron], 35
473
        mov     edx, A51
474
        cmp     [m], $1
475
        jz      @f
476
        mov     edx, A52
477
        cmp     [m], $2
478
        jz      @f
479
        mov     edx, A53
480
        cmp     [m], $3
481
        jz      @f
482
        mov     [micron], 30
483
        mov     edx, A56
484
        cmp     [m], $6
485
        jz      @f
486
        mov     [micron], 25
487
        mov     edx, A57
488
        cmp     [m], $7
489
        jz      @f
490
        mov     edx, A58
491
        cmp     [m], $8
492
        jz      @f
493
        mov     edx, A59
494
        cmp     [m], $9
495
        jz      @f
496
        mov     [micron], 18
497
        mov     edx, A5D
532 diamond 498
@@:
7442 leency 499
        jmp     @f
532 diamond 500
 
223 Ghost 501
.si:   ;    Family=6
7442 leency 502
        mov     [micron], 25
503
        mov     edx, At1
504
        cmp     [m], $1
505
        jz      @f
506
        mov     [micron], 18
507
        mov     edx, At2
508
        cmp     [m], $2
509
        jz      @f
510
        mov     edx, At3
511
        cmp     [m], $3
512
        jz      @f
513
        mov     edx, At4
514
        cmp     [m], $4
515
        jz      @f
516
        cmp     [m], $6
517
        jz      A6
518
        mov     [micron], 13
519
        mov     edx, At7
520
        cmp     [m], $7
521
        jz      @f
522
        cmp     [m], $8
523
        jz      A8
524
        jmp     AA
532 diamond 525
@@:
7442 leency 526
        mov     [cname], edx
527
        jmp     MMXtest
223 Ghost 528
A6:
6483 mat1854 529
;mov     [FRS], 266  ;!!!!!!
530
;Number  315,90,0,3,dword [FRS],0x000000; MHz
223 Ghost 531
 
7442 leency 532
        call    newrating; !!!!
223 Ghost 533
 
7442 leency 534
        Text    245,70,0x00000000,pr, prlen-pr
535
        Number  310,70,0,4,dword [rating],0x000000
536
        mov     edx, At6
537
        jmp     @b
223 Ghost 538
 
539
A8:
540
 
6483 mat1854 541
;mov     [FRS], 266     ;!!!!!!
542
;Number  315,90,0,3,dword [FRS],0x000000; MHz
223 Ghost 543
 
7442 leency 544
        cmp     [L2], 256
545
        jl      .App  ; Applebred
223 Ghost 546
 
7442 leency 547
        call    newrating;!!!!
223 Ghost 548
 
7442 leency 549
        Text    245,70,0x00000000,pr, prlen-pr
550
        Number  310,70,0,4,dword [rating],0x000000
551
        mov     edx, At8
552
        jmp     @b
223 Ghost 553
 
532 diamond 554
.App:
7442 leency 555
        mov     edx, At8a
556
        jmp     @b
223 Ghost 557
 
558
AA:
559
 
4107 mario79 560
;        mov     [FRS], 333; !!!!
7442 leency 561
        Text    245,70,0x00000000,pr, prlen-pr
223 Ghost 562
 
6483 mat1854 563
;        Number  315,90,0,3,dword [FRS],0x000000; MHz
223 Ghost 564
 
7442 leency 565
        mov     edx, Atat
566
        cmp     [L2], 256
567
        jl      .Tho ; Thorton
568
        mov     edx, Ata
532 diamond 569
.Tho:
7442 leency 570
        push    edx
223 Ghost 571
 
7442 leency 572
        call    newrating;!!!!!
223 Ghost 573
 
7442 leency 574
        Number  310,70,0,4,dword [rating],0x000000
575
        pop     edx
576
        jmp     @b
223 Ghost 577
 
578
fif:  ;  AMD-64    Family=15
579
 
580
;here is a need to rewrite detection of AMD F-th family according to "Revision Guide for
581
;AMD AthlonTM 64 and  AMD OpteronTM  Processors" 25759.pdf
582
 
6483 mat1854 583
 
7442 leency 584
        cmp [m],$1   ;Dual-core Opteron
585
        jz   AF1.
586
        cmp [m],$3   ;Toledo 1024 0.09
587
        jz  AF3.
588
        cmp [m],$4   ;Athlon 64 Mobile Athlon 64 FX  ClawHammer (1024) 0.13
589
        jz AF4.
590
        cmp [m],$5   ;Opteron Athlon 64 FX 0.13 (1024)
591
        jz AF5.
592
        cmp [m],$7   ;Athlon 64 Athlon 64 FX  Clawhammer(1024) 0.13   Sledgehammer(1024)  0.13  // SSE3+ SanDiego(1024)
593
        jz AF7.
594
        cmp [m],$8   ;Athlon 64 Mobile Athlon 64 FX ClawHammer (1024) 0.13
595
        jz AF8.
596
        cmp [m],$B   ;Athlon 64
597
        jz AFB.
598
        cmp [m],$C   ;Athlon 64 Newcastle(512) 0.13  Sempron> Paris (256)   0.13  |SSE3+ Sempron >  Palermo FC0 0.09  // (Venice)
599
        jz AFC.
600
        cmp [m],$E   ;Athlon 64
601
        jz AFE.
602
        cmp [m],$F   ;Athlon 64 Winchester(512) |SSE3+ SanDiego(1024)  Venice (512)  Palermo (256) 0.09
603
        jz AFF.
604
        jmp next_generation
6486 pathoswith 605
 
6483 mat1854 606
ten:      ;family = 10h
607
 
7442 leency 608
        cmp [m],$2
609
        jz AB23.
610
        cmp [m], $8
611
        jz AB83.
612
        cmp [m], $9
613
        jz AB9.
614
        cmp [m], $2
615
        jz AB8check2.
6486 pathoswith 616
 
6483 mat1854 617
AB8check2.:
7442 leency 618
        cmp [s],03h
619
        jz AB8right2.
620
        cmp [m],$2
621
        jz athlonCheck
6486 pathoswith 622
 
623
athlonCheck:
7442 leency 624
        cmp [s],03h
625
        jz athlonKuma
6486 pathoswith 626
 
7442 leency 627
        cmp [m], $5
628
        jz AB4.
629
        cmp [m],$1
630
        jz AB1.
631
        cmp [m],$4
632
        jz AB8check.
6486 pathoswith 633
 
6483 mat1854 634
AB8check.:
7442 leency 635
        cmp [s],02h
636
        jz ABC2.
637
        cmp [s],01h
638
        jz ABC3.
639
        cmp [m], $9
640
        jz AB6.
641
        cmp [m], $2
642
        jz AB8check.
643
        cmp [m], 06h
644
        jz ABM.
6486 pathoswith 645
 
6483 mat1854 646
athlonKuma:
7442 leency 647
        mov [micron], 65
648
        Text 100,70,0x00000000,AthlonKuma, AthlonKumalen-AthlonKuma
649
        mov esi, AthlonKuma
650
        mov edi, saveproc + 0x4
651
        call concatname
652
        jmp MMXtest
6486 pathoswith 653
 
6483 mat1854 654
AB23.:
7442 leency 655
        mov [micron], 65
656
        Text 100,70,0x00000000,AB23, AB23len-AB23
657
        mov esi, AB23
658
        mov edi, saveproc + 0x4
659
        call concatname
660
        jmp MMXtest
6486 pathoswith 661
 
6483 mat1854 662
AB83.:
7442 leency 663
        mov [micron], 65
664
        Text 100,70,0x00000000,AB83, AB83len-AB83
665
        mov esi, AB83
666
        mov edi, saveproc + 0x4
667
        call concatname
668
        jmp MMXtest
6486 pathoswith 669
 
6483 mat1854 670
AB9.:
7442 leency 671
        mov [micron], 65
672
        Text 100,70,0x00000000,AB9, AB9len-AB9
673
        mov esi, AB9
674
        mov edi, saveproc + 0x4
675
        call concatname
676
        jmp MMXtest
6486 pathoswith 677
 
6483 mat1854 678
AB8right2.:
7442 leency 679
        mov [micron], 65
680
        Text 100,70,0x00000000,AB8right2, AB8right2len-AB8right2
681
        mov esi, AB8right2
682
        mov edi, saveproc + 0x4
683
        call concatname
684
        jmp MMXtest
6483 mat1854 685
 
686
AB4.:
7442 leency 687
        mov [micron], 45
688
        Text 100,70,0x00000000,AB4, AB4len-AB4
689
        mov esi, AB4
690
        mov edi, saveproc + 0x4
691
        call concatname
692
        jmp MMXtest
6486 pathoswith 693
 
6483 mat1854 694
AB1.:
7442 leency 695
        mov [micron], 65
696
        Text 100,70,0x00000000,AB1, AB1len-AB1
697
        mov esi, AB1
698
        mov edi, saveproc + 0x4
699
        call concatname
700
        jmp MMXtest
6486 pathoswith 701
 
6483 mat1854 702
ABC2.:
7442 leency 703
        mov [micron], 45
704
        Text 100,70,0x00000000,ABC2, ABC2len-ABC2
705
        mov esi, ABC2
706
        mov edi, saveproc + 0x4
707
        call concatname
708
        jmp MMXtest
6486 pathoswith 709
 
6483 mat1854 710
AB6.:
7442 leency 711
        mov [micron], 45
712
        Text 100,70,0x00000000,AB6, AB6len-AB6
713
        mov esi, AB6
714
        mov edi, saveproc + 0x4
715
        call concatname
716
        jmp MMXtest
6486 pathoswith 717
 
6483 mat1854 718
ABC3.:
7442 leency 719
        mov [micron], 45
720
        Text 100,70,0x00000000,ABC3, ABC3len-ABC3
721
        mov esi, ABC3
722
        mov edi, saveproc + 0x4
723
        call concatname
724
        jmp MMXtest
6486 pathoswith 725
 
6483 mat1854 726
ABM.:
7442 leency 727
        mov [micron], 45
728
        Text 100,70,0x00000000,ABM2, ABM2len-ABM
729
        mov esi, ABM2
730
        mov edi, saveproc + 0x4
731
        call concatname
732
        jmp MMXtest
6483 mat1854 733
 
734
AF1.:
7442 leency 735
        mov [micron], 09  ;?
736
        Text 100,70,0x00000000,AF1, AF1len-AF1
737
        mov esi, AF1
738
        mov edi, saveproc + 0x4
739
        call concatname
740
        jmp MMXtest
6483 mat1854 741
AF3.:
7442 leency 742
        mov [micron], 09
743
        Text 100,70,0x00000000,AF3, AF3len-AF3
744
        mov esi, AF3
745
        mov edi, saveproc + 0x4
746
        call concatname
747
        jmp MMXtest
6483 mat1854 748
AF4.:
7442 leency 749
        mov [micron], 13
750
        Text 100,70,0x00000000,AF4, AF4len-AF4
751
        mov esi, AF4
752
        mov edi, saveproc + 0x4
753
        call concatname
754
        jmp MMXtest
6483 mat1854 755
AF5.:
7442 leency 756
        mov [micron], 13
757
        Text 100,70,0x00000000,AF5, AF5len-AF5
758
        jmp MMXtest
6486 pathoswith 759
 
6483 mat1854 760
AF7.:
7442 leency 761
        mov [micron], 13
762
        Text 100,70,0x00000000,AF5, AF5len-AF5
763
        mov esi, AF5
764
        mov edi, saveproc + 0x4
765
        call concatname
766
        jmp MMXtest
6486 pathoswith 767
 
6483 mat1854 768
AF8.:
7442 leency 769
        mov [micron], 13
770
        Text 100,70,0x00000000,AF4, AF4len-AF4
771
        mov esi, AF4
772
        mov edi, saveproc + 0x4
773
        call concatname
774
        jmp MMXtest
6486 pathoswith 775
 
6483 mat1854 776
AFB.:
7442 leency 777
        mov [micron], 13
778
        Text 100,70,0x00000000,AF4, AF4len-AF4
779
        mov esi, AF4
780
        mov edi, saveproc + 0x4
781
        call concatname
782
        jmp MMXtest
223 Ghost 783
 
6483 mat1854 784
AFC.:
7442 leency 785
        cmp [L2], 512
786
        je AFC.n
223 Ghost 787
 
7442 leency 788
        cmp [sse3sup], 1
789
        je AFC.npal
223 Ghost 790
 
6483 mat1854 791
AFC.npar:  ; paris
7442 leency 792
        mov [micron], 13
793
        Text 100,70,0x00000000,AFCs, AFCslen-AFCs
794
        mov esi, AFCs
795
        mov edi, saveproc + 0x4
796
        call concatname
797
        jmp MMXtest
223 Ghost 798
 
6483 mat1854 799
AFC.npal: ; palermo
7442 leency 800
        mov [micron], 9
801
        Text 100,70,0x00000000,AFCsp, AFCsplen-AFCsp
802
        mov esi, AFCsp
803
        mov edi, saveproc + 0x4
804
        call concatname
805
        jmp MMXtest
223 Ghost 806
 
6483 mat1854 807
AFC.n: ;newcastle
7442 leency 808
        mov [micron], 13
809
        Text 100,70,0x00000000,AFC, AFClen-AFC
810
        mov esi, AFC
811
        mov edi, saveproc + 0x4
812
        call concatname
813
        jmp MMXtest
223 Ghost 814
 
7442 leency 815
AFE.:   ; error in cpu
816
        jmp AFC.
223 Ghost 817
 
6483 mat1854 818
AFF.:
223 Ghost 819
 
7442 leency 820
        cmp [sse3sup], 1
821
        je .AFFsse
223 Ghost 822
 
823
.win:
7442 leency 824
        mov [micron], 9    ; winchester
825
        jmp MMXtest
223 Ghost 826
 
827
.AFFsse:
7442 leency 828
        mov [micron], 9
829
        cmp [L2], 1024
830
        jz .AFs
831
        cmp [L2], 512
832
        jz .AFd
833
        cmp [L2], 256
834
        jz .AFp
223 Ghost 835
 
836
.AFs:
7442 leency 837
        Text 100,70,0x00000000,AFS, AFSlen-AFS
838
        mov esi, AFS
839
        mov edi, saveproc + 0x4
840
        call concatname
841
        jmp MMXtest
223 Ghost 842
 
843
.AFd:
7442 leency 844
        Text 100,70,0x00000000,AFV, AFVlen-AFV
845
        mov esi, AFV
846
        mov edi, saveproc + 0x4
847
        call concatname
848
        jmp MMXtest
223 Ghost 849
 
850
.AFp:
7442 leency 851
        Text 100,70,0x00000000,AFCsp, AFCsplen-AFCsp
852
        mov esi, AFCsp
853
        mov edi, saveproc + 0x4
854
        call concatname
855
        jmp MMXtest
223 Ghost 856
;-----------------------------------------------
857
Intel:
7442 leency 858
        mov [codeN], $1
859
        Text 75,70,0x00000000,Inteln, Intelnlen-Inteln
860
        mov esi, IntelnNew
861
        mov edi, saveproc
862
        call concatname
863
        mov     esi, intel
864
        call    load_gif
865
        PutImage 135,107,201,49,img_area+8
223 Ghost 866
 
867
det:
7442 leency 868
        cmp [f], $5
869
        jz five
870
        cmp [f], $6
871
        jz six
872
        cmp [f], $7
873
        jz sev
874
        cmp [f], $F
875
        jz fift
876
five:        ;Family=5
223 Ghost 877
 
7442 leency 878
        Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 879
 
7442 leency 880
        cmp [m],$0
881
        jz .I0
882
        cmp [m],$1
883
        jz .I1
884
        cmp [m],$2
885
        jz .I2
886
        cmp [m],$3
887
        jz .I3
888
        cmp [m],$4
889
        jz .I4
890
        cmp [m],$7
891
        jz .I7
892
        cmp [m],$8
893
        jz .I8
223 Ghost 894
.I0:
7442 leency 895
        mov [cname], P50
896
        mov esi, P50
897
        mov edi, saveproc + 0x6
898
        call concatname
899
        mov [L1d], 8
900
        mov [L1i], 8
901
        mov [L2], 256
902
        mov [micron], 80
903
        jmp MMXtest
223 Ghost 904
.I1:
7442 leency 905
        mov [cname], P5
906
        mov esi, P5
907
        mov edi, saveproc + 0x6
908
        call concatname
909
        mov [L1d], 8
910
        mov [L1i], 8
911
        mov [L2], 256
912
        mov [micron], 50
913
        jmp MMXtest
6486 pathoswith 914
 
223 Ghost 915
.I2:
7442 leency 916
        mov [cname], P54C
917
        mov esi, P54C
918
        mov edi, saveproc + 0x6
919
        call concatname
920
        mov [L1d], 8
921
        mov [L1i], 8
922
        mov [L2], 256
923
        mov [micron], 50
924
        jmp MMXtest
6486 pathoswith 925
 
223 Ghost 926
.I3:
7442 leency 927
        mov [cname], P54T
928
        mov esi, P54T
929
        mov edi, saveproc + 0x6
930
        call concatname
931
        mov [L1d], 8
932
        mov [L1i], 8
933
        mov [L2], 256
934
        mov [micron], 50
935
        jmp MMXtest
6486 pathoswith 936
 
223 Ghost 937
.I4:
7442 leency 938
        mov [cname], P55C
939
        mov esi, P55C
940
        mov edi, saveproc + 0x6
941
        call concatname
942
        mov [L1d], 8
943
        mov [L1i], 8
944
        mov [L2], 256
945
        mov [micron], 35
946
        jmp MMXtest
6486 pathoswith 947
 
948
 
223 Ghost 949
.I7:
7442 leency 950
        mov [cname], P54C
951
        mov esi, P54C
952
        mov edi, saveproc + 0x6
953
        call concatname
954
        mov [L1d], 8
955
        mov [L1i], 8
956
        mov [L2], 256
957
        mov [micron], 35
958
        jmp MMXtest
6486 pathoswith 959
 
223 Ghost 960
.I8:
7442 leency 961
        mov [cname], P55C
962
        mov esi, P55C
963
        mov edi, saveproc + 0x6
964
        call concatname
965
        mov [L1d], 16
966
        mov [L1i], 16
967
        mov [L2], 256
968
        mov [micron], 35
969
        jmp MMXtest
6486 pathoswith 970
 
7442 leency 971
six:              ;Family=6
223 Ghost 972
 
7442 leency 973
        Text 15, 190,0x00000000,cache, cachelen-cache
974
        cmp [newpc],$0
975
        jnz NEWintel
223 Ghost 976
 
7442 leency 977
        cmp [m],$0
978
        jz .I60
979
        cmp [m],$1
980
        jz .I61
981
        cmp [m],$3
982
        jz .I63
983
        cmp [m],$5
984
        jz .I65
985
        cmp [m],$6
986
        jz .I66
987
        cmp [m],$7
988
        jz .I67
989
        cmp [m],$8
990
        jz .I68
991
        cmp [m],$9
992
        jz .I69
993
        cmp [m],$A
994
        jz .I6A
995
        cmp [m],$B
996
        jz .I6B
997
        cmp [m],$D
998
        jz .I6D
999
        cmp [m],$E
1000
        jz .I6E
1001
        cmp [m],$F
1002
        jz .I6F
223 Ghost 1003
.I60:
7442 leency 1004
        mov [micron], 50
1005
        mov [cname], P60
1006
        mov esi, P60
1007
        mov edi, saveproc + 0x6
1008
        call concatname
1009
        jmp MMXtest
6486 pathoswith 1010
 
223 Ghost 1011
.I61:
7442 leency 1012
        mov [micron], 35
1013
        mov [cname], P61
1014
        mov esi, P61
1015
        mov edi, saveproc + 0x6
1016
        call concatname
1017
        jmp MMXtest
6486 pathoswith 1018
 
223 Ghost 1019
.I63:
7442 leency 1020
        mov [micron], 28
1021
        mov [cname], P63
1022
        mov esi, P63
1023
        mov edi, saveproc + 0x6
1024
        call concatname
1025
        jmp MMXtest
6486 pathoswith 1026
 
223 Ghost 1027
.I65:
7442 leency 1028
        mov [micron], 25
1029
        cmp [L2], 0
1030
        jne .pp65  ; Pentium
1031
        mov [cname], P65c
1032
        mov esi, P65c
1033
        mov edi, saveproc + 0x6
1034
        call concatname
1035
        jmp MMXtest
6486 pathoswith 1036
 
223 Ghost 1037
.pp65:
7442 leency 1038
        mov [cname], P65
1039
        mov esi, P65
1040
        mov edi, saveproc + 0x6
1041
        call concatname
1042
        jmp MMXtest
223 Ghost 1043
.I66:
7442 leency 1044
        mov [micron], 25
1045
        mov [cname], P66
1046
        mov esi, P66
1047
        mov edi, saveproc + 0x6
1048
        call concatname
1049
        jmp MMXtest
223 Ghost 1050
.I67:
7442 leency 1051
        mov [micron], 25
1052
        ;but if SSE4.1 supported then it is Intel Core (Penryn)
1053
        mov [cname], P67
1054
        mov esi, P67
1055
        mov edi, saveproc + 0x6
1056
        call concatname
1057
        jmp MMXtest
6486 pathoswith 1058
 
223 Ghost 1059
.I68:
7442 leency 1060
        mov [micron], 18
1061
        cmp [L2], 128
1062
        jne .pp68  ; Pentium
1063
        mov [cname], P68c
1064
        mov esi, P68c
1065
        mov edi, saveproc + 0x6
1066
        call concatname
1067
        jmp MMXtest
6486 pathoswith 1068
 
223 Ghost 1069
 .pp68:
7442 leency 1070
        mov [cname], P68
1071
        mov esi, P68
1072
        mov edi, saveproc + 0x6
1073
        call concatname
1074
        jmp MMXtest
6486 pathoswith 1075
 
223 Ghost 1076
.I69:
7442 leency 1077
        mov [micron], 13
1078
        mov [cname], P69
1079
        mov esi, P69
1080
        mov edi, saveproc + 0x6
1081
        call concatname
1082
        jmp MMXtest
6486 pathoswith 1083
 
223 Ghost 1084
.I6A:
7442 leency 1085
        mov [micron], 18
1086
        ;but if SSE4.2 supported then it is Intel Core (Nehalem)
1087
        mov [cname], P6A
1088
        mov esi, P6A
1089
        mov edi, saveproc + 0x6
1090
        call concatname
1091
        jmp MMXtest
6486 pathoswith 1092
 
223 Ghost 1093
.I6B:
7442 leency 1094
        mov [micron], 13
1095
        cmp [L2], 256
1096
        jne .pp6B  ; Pentium
1097
        mov [cname], P6Bc
1098
        mov esi, P6Bc
1099
        mov edi, saveproc + 0x6
1100
        call concatname
1101
        jmp MMXtest
6486 pathoswith 1102
 
223 Ghost 1103
.pp6B:
7442 leency 1104
        mov [cname], P6B
1105
        mov esi, P6B
1106
        mov edi, saveproc + 0x6
1107
        call concatname
1108
        jmp MMXtest
6486 pathoswith 1109
 
223 Ghost 1110
.I6D:
7442 leency 1111
        mov [micron], 9
1112
        mov [cname], P6D
1113
        mov esi, P6D
1114
        mov edi, saveproc + 0x6
1115
        call concatname
1116
        jmp MMXtest
6486 pathoswith 1117
 
223 Ghost 1118
.I6E:
7442 leency 1119
        mov [micron], 6
1120
        mov [cname], P6E
1121
        mov esi, P6E
1122
        mov edi, saveproc + 0x6
1123
        call concatname
1124
        jmp MMXtest
6486 pathoswith 1125
 
223 Ghost 1126
.I6F:
7442 leency 1127
        mov [micron], 6
1128
        mov [cname], P6F
1129
        mov esi, P6F
1130
        mov edi, saveproc + 0x6
1131
        call concatname
1132
        jmp MMXtest
223 Ghost 1133
 
1134
;06Ex - Pentium M Yonah 0.065
318 heavyiron 1135
;06Fx - Pentium D Conroe 0.065, Xeon Woodcrest, Celeron D AllenDale, Core 2 Kentsfield
223 Ghost 1136
 
6486 pathoswith 1137
NEWintel:
6483 mat1854 1138
 
7442 leency 1139
        cmp [em],$3A   ;IvyBridge
1140
        jz I3A
1141
        cmp [em],$2A   ;SandyBridge
1142
        jz I2A
1143
        cmp [em],$2D  ;SandyBridge-E/EN/EP
1144
        jz I2D
1145
        cmp [em],$25   ;Arrandale/Clarksdale
1146
        jz I25
1147
        cmp [em],$2C   ;Gulftown/Westmere-EP
1148
        jz I2C        ;westmere-EP stepping B1 -> micron 0.032
1149
        cmp [em],$2F   ;Westmere-EX
1150
        jz I2F
1151
        cmp [em],$1E   ;Clarksfield/Lynnfield/Jasper Forest
1152
        jz I1E
1153
        cmp [em],$1A   ;Bloomfield/Nehalem-EP
1154
        jz I1A
1155
        cmp [em],$2E   ;Nehalem-EX
1156
        jz I2E
1157
        cmp [em],$17   ;Yorkfield/Wolfdale/Penryn/Harpertown (DP)
1158
        jz I17
1159
        cmp [em],$1D   ;Dunnington (MP)
1160
        jz I1D
1161
        cmp [em],$0F   ;Clovertown/Kentsfield/Conroe/Merom/Woodcrest
1162
        jz I0F
1163
        cmp [em],$16   ;Merom Conroe
1164
        jz I16
1165
        cmp [em],$06   ;Cedar Mill/Presler
1166
        jz I06
1167
        cmp [em],$03   ;Nocona Irwindale / Prescott
1168
        jz I03
1169
        cmp [em],$04   ;NoconaIrwindale / Prescott
1170
        jz I03
1171
        cmp [em],$0D   ;Dothan
1172
        jz I0D
1173
        cmp [em],$36   ;Cedarview
1174
        jz I36
1175
        cmp [em],$26   ;Lincroft
1176
        jz I26
1177
        cmp [em],$1C   ;Pineview/Silverthorne
1178
        jz I1C
7445 leency 1179
        mov [cname], no_known
6483 mat1854 1180
 
1181
Inewunknown:
7442 leency 1182
        jmp MMXtest
6483 mat1854 1183
 
1184
I3A:
7442 leency 1185
        mov [micron], 32
1186
        mov [cname], P3A
1187
        mov esi, P3A
1188
        mov edi, saveproc + 0x10
1189
        call concatname
1190
        jmp MMXtest
6483 mat1854 1191
 
1192
I2A:
7442 leency 1193
        mov [micron], 32
1194
        mov [cname], P2A
1195
        mov esi, P2A
1196
        mov edi, saveproc + 0x10
1197
        call concatname
1198
        jmp MMXtest
6483 mat1854 1199
 
1200
I2D:
7442 leency 1201
        mov [micron], 32
1202
        mov [cname], P2D
1203
        mov esi, P2D
1204
        mov edi,saveproc + 0x10
1205
        call concatname
1206
        jmp MMXtest
6483 mat1854 1207
 
1208
I25:
7442 leency 1209
        mov [micron], 32
1210
        mov [cname], P25  ;P25
1211
        mov esi, P25
1212
        mov edi, saveproc + 0x10  ;12
1213
        call concatname
1214
        jmp MMXtest
6483 mat1854 1215
 
1216
I2C:
7442 leency 1217
        mov [micron], 32
1218
        mov [cname], P2C
1219
        mov esi, P2C
1220
        mov edi,saveproc + 0x10
1221
        call concatname
1222
        jmp MMXtest
6483 mat1854 1223
 
1224
I2F:
7442 leency 1225
        mov [micron], 32
1226
        mov [cname], P2F
1227
        mov esi, P2F
1228
        mov edi, saveproc + 0x10
1229
        call concatname
1230
        jmp MMXtest
6483 mat1854 1231
 
1232
I1E:
7442 leency 1233
        mov [micron], 32
1234
        mov [cname], P1E
1235
        mov esi, P1E
1236
        mov edi, saveproc + 0x10
1237
        call concatname
1238
        jmp MMXtest
6483 mat1854 1239
 
1240
I1A:
7442 leency 1241
        mov [micron], 45
1242
        mov [cname], P1A
1243
        mov esi, P1A
1244
        mov edi, saveproc + 0x10
1245
        call concatname
1246
        jmp MMXtest
6483 mat1854 1247
 
1248
I2E:
7442 leency 1249
        mov [micron], 45
1250
        mov [cname], P2E
1251
        mov esi, P2E
1252
        mov edi, saveproc + 0x10
1253
        call concatname
1254
        jmp MMXtest
6483 mat1854 1255
 
1256
I17:
7442 leency 1257
        mov [micron], 45
1258
        mov [cname], P17
1259
        mov esi, P17
1260
        mov edi, saveproc + 0x10
1261
        call concatname
1262
        jmp MMXtest
6486 pathoswith 1263
 
6483 mat1854 1264
I1D:
7442 leency 1265
        mov [micron], 45
1266
        mov [cname], P1D
1267
        mov esi, P1D
1268
        mov edi, saveproc + 0x10
1269
        call concatname
1270
        jmp MMXtest
6486 pathoswith 1271
 
6483 mat1854 1272
I0F:
7442 leency 1273
        mov [micron], 65
1274
        mov [cname], P0F
1275
        mov esi, P0F
1276
        mov edi, saveproc + 0x10
1277
        call concatname
1278
        jmp MMXtest
6486 pathoswith 1279
 
6483 mat1854 1280
I16:
7442 leency 1281
        mov [micron], 65
1282
        mov [cname], P16
1283
        mov esi, P16
1284
        mov edi, saveproc + 0x10
1285
        call concatname
1286
        jmp MMXtest
6483 mat1854 1287
 
1288
I06:
7442 leency 1289
        mov [micron], 32
1290
        mov [cname], P06
1291
        mov esi, P06
1292
        mov edi, saveproc + 0x10
1293
        call concatname
1294
        jmp MMXtest
6486 pathoswith 1295
 
6483 mat1854 1296
I03:
7442 leency 1297
        mov [micron], 32
1298
        mov [cname], P03
1299
        mov esi, P03
1300
        mov edi, saveproc + 0x10
1301
        call concatname
1302
        jmp MMXtest
6486 pathoswith 1303
 
6483 mat1854 1304
I0D:
7442 leency 1305
        mov [micron], 32
1306
        mov [cname], P0D
1307
        mov esi, P0D
1308
        mov edi, saveproc + 0x10
1309
        call concatname
1310
        jmp MMXtest
6483 mat1854 1311
 
1312
I36:
7442 leency 1313
        mov [micron], 32
1314
        mov [cname], P36
1315
        mov esi, P36
1316
        mov edi, saveproc + 0x10
1317
        call concatname
1318
        jmp MMXtest
6483 mat1854 1319
 
1320
I26:
7442 leency 1321
        mov [micron], 32
1322
        mov [cname], P26
1323
        mov esi, P26
1324
        mov edi, saveproc + 0x10
1325
        call concatname
1326
        jmp MMXtest
6486 pathoswith 1327
 
6483 mat1854 1328
I1C:
7442 leency 1329
        mov [micron], 32
1330
        mov [cname], P1C
1331
        mov esi, P1C
1332
        mov edi, saveproc + 0x10
1333
        call concatname
1334
        jmp MMXtest
6483 mat1854 1335
 
6486 pathoswith 1336
 
6483 mat1854 1337
;;;;;;;;;;;;;;;;;;;
7442 leency 1338
sev:    ;Family=7
223 Ghost 1339
.IS0:
1340
 
7442 leency 1341
        Text 15, 190,0x00000000,cache, cachelen-cache
1342
        mov [micron], 18
1343
        mov [cname], PS0
1344
        mov esi, PS0
1345
        mov edi, saveproc + 0x6
1346
        call concatname
1347
        jmp MMXtest
6486 pathoswith 1348
 
7442 leency 1349
fift:    ;Family=15
223 Ghost 1350
 
7442 leency 1351
        Text 15, 190,0x00000000,cacheP4, cacheP4len-cacheP4
223 Ghost 1352
 
7442 leency 1353
        cmp [m],$0
1354
        jz .IF0
1355
        cmp [m],$1
1356
        jz .IF1
1357
        cmp [m],$2
1358
        jz .IF2
1359
        cmp [m],$3
1360
        jz .IF3
1361
        cmp [m],$4
1362
        jz .IF3 ;identical to F3xh
1363
        cmp [m],$5
1364
        jz .IF5
1365
        cmp [m],$6
1366
        jz .IF6
1367
        jmp next_generation
223 Ghost 1368
.IF0:
7442 leency 1369
        mov [micron], 18
1370
        cmp [L2], 128
1371
        jne .ppF0  ; Pentium
1372
        mov [cname], PF0c
1373
        mov esi, PF0c
1374
        mov edi, saveproc + 0x6
1375
        call concatname
1376
        jmp MMXtest
223 Ghost 1377
.ppF0:
7442 leency 1378
        mov [cname], PF0
1379
        mov esi, PF0
1380
        mov edi, saveproc + 0x6
1381
        call concatname
1382
        jmp MMXtest
223 Ghost 1383
.IF1:
7442 leency 1384
        mov [micron], 18
1385
        cmp [L2], 128
1386
        je .IF0;jne.ppF1  ; Pentium
1387
        ;  mov   eax,dword 0x00000004
1388
        ;  mov   ebx,115*65536+80
1389
        ;  mov   ecx,dword 0x00000000
1390
        ;  mov   edx,PF0c
1391
        ;  mov   esi,PF0clen-PF0c
1392
        ;  mcall
1393
        ;jmp MMXtest
223 Ghost 1394
;.ppF1:
7442 leency 1395
        mov [cname], PF0
1396
        mov esi, PF0
1397
        mov edi, saveproc + 0x6
1398
        call concatname
1399
        jmp MMXtest
223 Ghost 1400
.IF2:
7442 leency 1401
        mov [micron], 13
1402
        cmp [L2], 128
1403
        jne .ppF2  ; Pentium
1404
        mov [cname], PF2c
1405
        mov esi, PF2c
1406
        mov edi, saveproc + 0x6
1407
        call concatname
1408
        jmp MMXtest
223 Ghost 1409
.ppF2:
7442 leency 1410
        mov [cname], PF2
1411
        mov esi, PF2
1412
        mov edi, saveproc + 0x6
1413
        call concatname
1414
        jmp MMXtest
223 Ghost 1415
.IF3:
7442 leency 1416
        mov [micron], 09
1417
        cmp [L2], 256
1418
        jne .ppF3  ; Pentium
1419
        mov [cname], PF3c
1420
        mov esi, PF3c
1421
        mov edi, saveproc + 0x6
1422
        call concatname
1423
        jmp MMXtest
223 Ghost 1424
.ppF3:
7442 leency 1425
        mov [cname], PF3
1426
        mov esi, PF3
1427
        mov edi, saveproc + 0x6
1428
        call concatname
1429
        jmp MMXtest
223 Ghost 1430
 
1431
.IF5:
7442 leency 1432
        mov [micron], 09
1433
        cmp [L2], 512
1434
        jae .ppF5  ; Pentium
1435
        mov [cname], PF5c
1436
        mov esi, PF5c
1437
        mov edi, saveproc + 0x6
1438
        call concatname
1439
        jmp MMXtest
223 Ghost 1440
.ppF5:
7442 leency 1441
        mov [cname], PF5
1442
        mov esi, PF5
1443
        mov edi, saveproc + 0x6
1444
        call concatname
1445
        jmp MMXtest
223 Ghost 1446
 
1447
 .IF6:
7442 leency 1448
        mov [micron], 06  ; 065
1449
        cmp [L2], 512
1450
        ja .ppF6  ; Pentium
1451
        mov [cname], PF6c
1452
        mov esi, PF6c
1453
        mov edi, saveproc + 0x6
1454
        call concatname
1455
        jmp MMXtest
223 Ghost 1456
.ppF6:
7442 leency 1457
        mov [cname], PF6
1458
        mov esi, PF6
1459
        mov edi, saveproc + 0x6
1460
        call concatname
1461
        jmp MMXtest
223 Ghost 1462
 
1463
 
1464
 next_generation:
7442 leency 1465
        mov [cname], NG
1466
        mov esi, NG
1467
        mov edi, saveproc + 0x6
1468
        call concatname
1469
        jmp MMXtest
223 Ghost 1470
;----------------------------------
1471
Cyrix:
1472
 
7442 leency 1473
        mov [codeN], 3
1474
        Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 1475
 
7442 leency 1476
        mov     esi, cyrix
1477
        call    load_gif
1478
        PutImage 135,107,201,49,img_area+8
223 Ghost 1479
 
6483 mat1854 1480
 
7442 leency 1481
        cmp [f], $5
1482
        jz .fivv
1483
        cmp [f], $6
1484
        jz .sixx
1485
.fivv:    ;Family=5
1486
        cmp [m],$2
1487
        jz .C52
1488
        cmp [m],$4
1489
        jz .C54
223 Ghost 1490
.C52:
7442 leency 1491
        mov [micron], 50 ;35?
1492
        mov [L1i], 8
1493
        mov [L1d], 8
1494
        mov [L2], 512
1495
        Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
1496
        mov esi, Cyrixn
1497
        mov edi, saveproc
1498
        call concatname
1499
        mov [cname], C52
1500
        mov esi, C52
1501
        mov edi, saveproc + 0x6
1502
        call concatname
1503
        jmp MMXtest
223 Ghost 1504
.C54:
7442 leency 1505
        mov [micron], 50
1506
        mov [L1i], 8
1507
        mov [L1d], 8
1508
        mov [L2], 512
1509
        Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
1510
        mov esi, Cyrixn
1511
        mov edi, saveproc
1512
        call concatname
1513
        mov [cname], C54
1514
        mov esi, C54
1515
        mov edi, saveproc + 0x6
1516
        call concatname
1517
        jmp MMXtest
223 Ghost 1518
 
7442 leency 1519
.sixx:     ;Family=6
1520
       cmp [m],$0
1521
       jz .C60
1522
       cmp [m],$5
1523
       jz .C65
223 Ghost 1524
.C60:
7442 leency 1525
        mov [micron], 25
1526
        mov [L1i], 32
1527
        mov [L1d], 32
1528
        mov [L2], 512
1529
        Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
1530
        mov esi, Cyrixn
1531
        mov edi, saveproc
1532
        call concatname
1533
        mov [cname], C60
1534
        mov esi, C60
1535
        mov edi, saveproc + 0x6
1536
        call concatname
1537
        jmp MMXtest
223 Ghost 1538
.C65:
7442 leency 1539
        mov [micron], 25 ;35?
1540
        mov [L1i], 32
1541
        mov [L1d], 32
1542
        mov [L2], 512
1543
        Text 75,70,0x00000000,Centaurn, Centaurnlen-Centaurn
1544
        mov esi, Centaurn
1545
        mov edi, saveproc
1546
        call concatname
1547
        mov edx,C65
1548
        mov esi,C65len-C65
1549
        jmp OutProcName
223 Ghost 1550
;---------------------
1551
Centaur:
1552
 
7442 leency 1553
        Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 1554
 
1555
;CACHE1:
7442 leency 1556
        mov eax, 80000005h
1557
                cpuid
1558
        shr ecx, 24
1559
        mov [L1d], ecx
1560
        shr edx, 24
1561
        mov [L1i], edx
318 heavyiron 1562
 
1563
; cache detection routine
1564
;CACHE1:
7442 leency 1565
        mov eax, 80000005h
1566
                cpuid
318 heavyiron 1567
 
7442 leency 1568
        movzx eax, cl
1569
        mov [lineld], eax
318 heavyiron 1570
 
7442 leency 1571
        mov eax, ecx
1572
        shr eax, 16
1573
        and eax,000000FFh
1574
        mov [wayld], eax
318 heavyiron 1575
 
7442 leency 1576
        shr ecx, 24
1577
        mov [L1d], ecx
318 heavyiron 1578
 
7442 leency 1579
        movzx eax, dl
1580
        mov [lineli], eax
318 heavyiron 1581
 
7442 leency 1582
        mov eax, edx
318 heavyiron 1583
 
7442 leency 1584
        shr eax, 16
1585
        and eax,000000FFh
1586
        mov [wayli], eax
318 heavyiron 1587
 
7442 leency 1588
        shr edx, 24
1589
        mov [L1i], edx
318 heavyiron 1590
 
1591
 
223 Ghost 1592
;CACHE2:
7442 leency 1593
        mov eax, 80000006h
1594
        cpuid
318 heavyiron 1595
 
7442 leency 1596
        cmp [f], $6
1597
        jz vn
1598
        jmp vl2old      ; if not then old identification
318 heavyiron 1599
vn:
7442 leency 1600
        cmp [m],$9
1601
        jl vl2old
1602
        ; else  new
1603
        movzx eax, cl
1604
        mov dword[linel2], eax
318 heavyiron 1605
 
7442 leency 1606
        mov eax, ecx
1607
        shl eax, 16
1608
        shr eax, 28
318 heavyiron 1609
 
7442 leency 1610
        mov dword[wayl2], eax
318 heavyiron 1611
 
7442 leency 1612
        shr ecx, 16  ; it is 16 bits now
1613
        mov [L2],ecx
223 Ghost 1614
 
318 heavyiron 1615
 
1616
 
1617
vl2old:
7442 leency 1618
        movzx eax, cl
1619
        mov dword[linel2], eax
318 heavyiron 1620
 
7442 leency 1621
        mov eax, ecx
1622
        shl eax, 8
1623
        shr eax, 24
318 heavyiron 1624
 
7442 leency 1625
        mov dword[wayl2], eax
318 heavyiron 1626
 
7442 leency 1627
        shr ecx, 24  ; it was 8 bits earlier
1628
        mov [L2],ecx
318 heavyiron 1629
 
1630
 
7442 leency 1631
        cmp [f], $5
1632
        jz fivC
1633
        cmp [f], $6
1634
        jz sixC
223 Ghost 1635
 
7442 leency 1636
fivC:              ;Family=5
223 Ghost 1637
 
7442 leency 1638
        mov     esi, idt
1639
        call    load_gif
1640
        PutImage 135,107,201,49,img_area+8
1641
        ;PutImage 125,107,201,49,img_area+8
1642
        ;         place   size
223 Ghost 1643
 
7442 leency 1644
        Text 75,70,0x00000000,IDTn, IDTnlen-IDTn
1645
        mov esi, IDTn
1646
        mov edi, saveproc + 0x4
1647
        call concatname
1648
        cmp [m],$4
1649
        jz .V54
1650
        cmp [m],$8
1651
        jz .V58
1652
        cmp [m],$9
1653
        jz .V59
223 Ghost 1654
.V54:
7442 leency 1655
        mov [micron], 35
1656
        mov edx,V54
1657
        mov esi,V54len-V54
1658
        jmp OutProcName
223 Ghost 1659
.V58:
7442 leency 1660
        mov [micron], 25
1661
        mov edx,V58
1662
        mov esi,V58len-V58
1663
        jmp OutProcName
223 Ghost 1664
.V59:
7442 leency 1665
        mov [micron], 25
1666
        mov edx,V59
1667
        mov esi,V59len-V59
1668
        jmp OutProcName
223 Ghost 1669
 
7442 leency 1670
sixC:   ;Family=6
223 Ghost 1671
 
7442 leency 1672
        mov     esi, via
1673
        call    load_gif
1674
        PutImage 135,107,201,49,img_area+8
223 Ghost 1675
 
6483 mat1854 1676
 
7442 leency 1677
        Text 75,70,0x00000000,Centaurn, Centaurnlen-Centaurn
1678
        mov esi, Centaurn
1679
        mov edi, saveproc
1680
        call concatname
1681
        cmp [m],$6
1682
        jz .V66
1683
        cmp [m],$7
1684
        jz .V67
1685
        cmp [m],$8
1686
        jz .V68
1687
        cmp [m],$9
1688
        jz .V69
1689
        cmp [m],$A
1690
        jz .V6A
223 Ghost 1691
.V66:
7442 leency 1692
        mov [micron], 18 ; 25?
1693
        mov edx,V66
1694
        mov esi,V66len-V66
1695
        jmp OutProcName
223 Ghost 1696
.V67:
7442 leency 1697
        mov [micron], 15
1698
        mov edx,V67
1699
        mov esi,V67len-V67
1700
        jmp OutProcName
223 Ghost 1701
.V68:
7442 leency 1702
        mov [micron], 13
1703
        mov edx,V68
1704
        mov esi,V68len-V68
1705
        jmp OutProcName
223 Ghost 1706
.V69:
7442 leency 1707
        mov [micron], 13
1708
        mov edx,V69
1709
        mov esi,V69len-V69
1710
        jmp OutProcName
223 Ghost 1711
.V6A:
7442 leency 1712
        mov [micron], 9
1713
        mov edx,VA
1714
        mov esi,VAlen-VA
1715
        jmp OutProcName
223 Ghost 1716
;-----------
1717
Transmeta:
1718
 
7442 leency 1719
        Text 15, 190,0x00000000,cache, cachelen-cache
223 Ghost 1720
 
7442 leency 1721
        Text 75,70,,Tranmsmetan, Tranmsmetanlen-Tranmsmetan
1722
        mov esi, Tranmsmetan
1723
        mov edi, saveproc
1724
        call concatname
223 Ghost 1725
 
7442 leency 1726
        mov     esi, transmeta
1727
        call    load_gif
1728
        PutImage 135,107,201,49,img_area+8
223 Ghost 1729
 
318 heavyiron 1730
; cache detection routine - it is the same as for AMD (almost)
223 Ghost 1731
;CACHE1:
7442 leency 1732
        mov eax, 80000005h
1733
        cpuid
318 heavyiron 1734
 
7442 leency 1735
        movzx eax, cl
1736
        mov [lineld], eax
318 heavyiron 1737
 
7442 leency 1738
        mov eax, ecx
318 heavyiron 1739
 
7442 leency 1740
        shr eax,16
1741
        and eax,000000FFh
1742
        mov [wayld], eax
318 heavyiron 1743
 
7442 leency 1744
        shr ecx, 24
1745
        mov [L1d], ecx
318 heavyiron 1746
 
7442 leency 1747
        movzx eax, dl
1748
        mov [lineli], eax
318 heavyiron 1749
 
7442 leency 1750
        mov eax, edx
318 heavyiron 1751
 
7442 leency 1752
        shr eax, 16
1753
        and eax,000000FFh
1754
        mov [wayli], eax
318 heavyiron 1755
 
7442 leency 1756
        shr edx, 24
1757
        mov [L1i], edx
318 heavyiron 1758
 
1759
 
223 Ghost 1760
;CACHE2:
7442 leency 1761
        mov eax, 80000006h
1762
        cpuid
318 heavyiron 1763
 
7442 leency 1764
        movzx eax, cl
1765
        mov dword[linel2], eax
318 heavyiron 1766
 
7442 leency 1767
        mov eax, ecx
1768
        shl eax, 16
1769
        shr eax, 28
318 heavyiron 1770
 
7442 leency 1771
        mov dword[wayl2], eax
318 heavyiron 1772
 
7442 leency 1773
        shr ecx, 16
1774
        mov [L2],ecx
223 Ghost 1775
 
318 heavyiron 1776
 
7442 leency 1777
        cmp [f], $5
1778
        jz .fivt
1779
        cmp [f], $F
1780
        jz .fift
1781
.fivt:    ;     Family=5
223 Ghost 1782
 
7442 leency 1783
        mov edx,T5
1784
        mov esi,T5len-T5
1785
        jmp @f
223 Ghost 1786
 
7442 leency 1787
.fift:    ;     Family=F
1788
        mov edx,TF
1789
        mov esi,TFlen-TF
532 diamond 1790
@@:
7442 leency 1791
        mov [micron], 13 ;
1792
        Text 140,70,0
1793
        jmp MMXtest
223 Ghost 1794
 
532 diamond 1795
OutProcName:
7442 leency 1796
        Text    100,70,0
532 diamond 1797
 
223 Ghost 1798
;----
6483 mat1854 1799
;---------------------------------- new
4107 mario79 1800
Vortex:
1801
 
7442 leency 1802
        Text 15, 190,0x00000000,cache, cachelen-cache
4107 mario79 1803
 
7442 leency 1804
        mov     esi, vortex
1805
        call    load_gif
1806
        PutImage 135,107,201,49,img_area+8
1807
        ;PutImage 130,127,201,49,img_area+8
1808
        ;         place   size
4107 mario79 1809
 
7442 leency 1810
        cmp [f], $5
1811
        jz .V54 ;fivvtx
6483 mat1854 1812
;.fivvtx:         ;Family=5
7442 leency 1813
;       cmp [m],$4
1814
;       jz .V54
4107 mario79 1815
.V54:
7442 leency 1816
        mov [micron], 13
1817
        mov [L1i], 16
1818
        mov [L1d], 16
1819
        mov [L2], 256
1820
        mov [wayl2], 4
1821
        mov [wayli], 4
1822
        mov [wayld], 4
1823
        Text 75,70,0x00000000,Vortexn, Vortexnlen-Vortexn
1824
        mov esi, Vortexn
1825
        mov edi, saveproc
1826
        call concatname
1827
        jmp MMXtest
4107 mario79 1828
 
1829
;---------------------
1830
 
1831
 
1832
 
7442 leency 1833
MMXtest:             ; MMX test and Brand ID decoding
223 Ghost 1834
 
7442 leency 1835
        call decodebrand  ; get Brand ID
223 Ghost 1836
 
7442 leency 1837
        call decode_standard_features
223 Ghost 1838
 
7442 leency 1839
        call decode_extended_features
1840
 
1841
        xor eax,eax
1842
        inc eax
1843
        cpuid
223 Ghost 1844
HTTtest:
7442 leency 1845
        test  edx, $10000000; ;Test bit 28
1846
        jz .ELN
223 Ghost 1847
 
532 diamond 1848
.EL:   ;HTT technology is supported
7442 leency 1849
        and ebx,00FF0000h ; numbers of logical processors
1850
        cmp ebx, 1 shl 16
1851
        ;   mov [number_of_log_cpus], ebx
1852
        je .ELN  ; HHT not enabled (Celeron)
223 Ghost 1853
 
7442 leency 1854
        mov  dword [HTTn+9], $736579
1855
        mov  dword [HTT+ 6], $736579
1856
        jmp TEXTOUT
223 Ghost 1857
.ELN:
1858
 
7442 leency 1859
        mov  dword [HTTn+ 9],  $6F6E
1860
        mov  dword [HTT+ 6],  $6F6E
223 Ghost 1861
 
1862
TEXTOUT:
1863
 
7442 leency 1864
        Text 275,290,0x00000000,HTT, HTTlen-HTT
1865
        Text 275,310,,sse3, sse3len-sse3
1866
        Text 15,290,,MMXs, MMXslen-MMXs
1867
        Text 15,310,,SSE, SSElen-SSE
1868
        Text 95,310,,SSE2, SSE2len-SSE2
223 Ghost 1869
 
6483 mat1854 1870
;-------------------
1871
TEST3DNOW:
318 heavyiron 1872
 
7442 leency 1873
        xor edx, edx
1874
        cmp [smallvendor], 'ntel'
1875
        ;  je @f  ;recent change
1876
        jne .t
318 heavyiron 1877
 
6483 mat1854 1878
.t:
318 heavyiron 1879
 
7442 leency 1880
        mov   eax, $80000001 ;// Setup extended function 8000_0001h
1881
        cpuid
318 heavyiron 1882
 
7442 leency 1883
        test  edx, $80000000 ;// Test bit 31
1884
        jnz   .XIT
223 Ghost 1885
 
6483 mat1854 1886
.NOEXTENDED: ;// 3DNow! technology is supported
7442 leency 1887
        mov  dword [now+ 9], $6F6E
1888
        jmp TEST3DNOWP
6483 mat1854 1889
.XIT:
7442 leency 1890
        mov  dword [now+ 9],  $736579
1891
        jmp TEST3DNOWP
6483 mat1854 1892
 
1893
TEST3DNOWP:
1894
 
7442 leency 1895
        cmp [smallvendor], 'ntel'
1896
        je .NOEXTENDEDP
223 Ghost 1897
 
6483 mat1854 1898
.tp:
1899
 
7442 leency 1900
        mov   eax, $80000001 ;// Setup extended function 8000_0001h
1901
        cpuid
223 Ghost 1902
 
7442 leency 1903
        test    edx, $40000000 ;// Test bit 30
1904
        jnz   .XITP  ;// 3DNow! technology is supported
223 Ghost 1905
 
6483 mat1854 1906
.NOEXTENDEDP:
7442 leency 1907
        mov  dword [nowp+ 9], $6F6E
1908
        jmp TESTMMXP
6483 mat1854 1909
.XITP:
7442 leency 1910
        mov  dword [nowp+ 9],  $736579
1911
        jmp TESTMMXP
223 Ghost 1912
 
6486 pathoswith 1913
 
223 Ghost 1914
TESTMMXP:
1915
 
7442 leency 1916
        mov   eax,$80000000
1917
        cpuid
223 Ghost 1918
 
7442 leency 1919
        test eax, 80000000h
1920
        jna NOEXTENDEDM
6486 pathoswith 1921
 
7442 leency 1922
        ;cmp   eax, $80000000 ;// Is 800_0001h supported?
1923
        ;jz   .NOEXTENDEDM    ;// If not, 3DNow! technology is not supported
1924
        mov   eax, $80000001 ;// Setup extended function 8000_0001h
1925
        cpuid
1926
        cmp [smallvendor], 'tead'
1927
        jne noCyr
223 Ghost 1928
Cyrmx:
7442 leency 1929
        test  edx, $01000000 ;// Test bit 24
1930
        jnz   XITM  ;// 3DNow! technology is supported
1931
        jz NOEXTENDEDM
223 Ghost 1932
noCyr:
7442 leency 1933
        test  edx, $00400000 ;// Test bit 22
1934
        jnz   XITM  ;// 3DNow! technology is supported
1935
        ;jz   .NOEXTENDEDM
223 Ghost 1936
 
1937
NOEXTENDEDM:
7442 leency 1938
        mov  dword [mmxp+ 7], $6F6E
1939
        mov  dword [MMXPi+ 8], $6F6E
1940
        jmp text3d
223 Ghost 1941
XITM:
7442 leency 1942
        mov  dword [mmxp+ 7],  $736579
1943
        mov  dword [MMXPi+ 8],  $736579
223 Ghost 1944
 
1945
text3d:
1946
 
7442 leency 1947
        Text 15,330,0x00000000,now, nowlen-now
1948
        Text 95,330,,nowp, nowplen-nowp
1949
        Text 95,290,,mmxp, mmxplen-mmxp
1950
        Text 110,70,0x80000000,dword[cname]
223 Ghost 1951
 
7442 leency 1952
        jmp still
223 Ghost 1953
 
1954
;--------------------------
1955
NO_CPUID:
7442 leency 1956
        mov [nocpuid], 1
1957
        Text 15,50,0x00000000,oblom, oblomlen-oblom
223 Ghost 1958
 
1959
FREEZE:
7442 leency 1960
        nop
1961
        jmp FREEZE ; maybe we should close application or just made some Warning and jump to still:
223 Ghost 1962
;----------------
450 Ghost 1963
still:
1964
 
4107 mario79 1965
; waiting for events
450 Ghost 1966
event_wait:
1967
 
7442 leency 1968
        mov     eax,23       ; function 23 - event wait
1969
        mov     ebx,50       ; wait for 0.5 second
1970
        mcall
450 Ghost 1971
 
7442 leency 1972
        cmp  eax,1              ;
1973
        je       red            ;  redraw
1974
        cmp  eax,2              ;
1975
        je       key            ;  key
1976
        cmp  eax,3              ;
1977
        je       button         ;  button
1978
        jmp  still              ;
1979
  key:                  ;
1980
        mcall           ;
1981
        jmp  still              ;
1982
  button:               ;
1983
        mov  eax,17     ;
1984
        mcall           ;
1985
        cmp  ah,1               ;  = 1 ?
1986
        je      close           ; close
450 Ghost 1987
 
7442 leency 1988
        cmp  ah,2               ;  = 2 ?
1989
        je      thread_start    ;
450 Ghost 1990
 
7442 leency 1991
        cmp  ah, 3
1992
        je call_OpenDialog
450 Ghost 1993
 
7442 leency 1994
         mov    eax,11       ; function 23 - event wait
1995
        mov  ebx,1
1996
        mcall
450 Ghost 1997
 
7442 leency 1998
        mov  eax,15       ; function 23 - event wait
1999
        mov  ebx,3
2000
        mcall
450 Ghost 2001
 
6483 mat1854 2002
;    cmp  ah,3          ;  = 3 ?
7442 leency 2003
        jne  still
223 Ghost 2004
 
2005
close:
7442 leency 2006
        mov   eax,-1
2007
        mcall
223 Ghost 2008
 
2009
;**************************** THREAD-SECOND WINDOW
2010
thread_start:
2011
 
7442 leency 2012
        cmp  [num_win2],0
2013
        jne  still
223 Ghost 2014
 
2015
;================================================RSA test
2016
 
2017
;test rsa coding speed
7442 leency 2018
        call    init_test
223 Ghost 2019
;length of module - 256 bit
7442 leency 2020
        mov  eax,26
2021
        mov  ebx,9
2022
        mcall
2023
        add  eax,100 ;test lasts 1 second.
2024
        push eax
223 Ghost 2025
.loop:
7442 leency 2026
        push 4     ;do 4 iterations - this reduces number of calls mcall.
223 Ghost 2027
.loop1:
7442 leency 2028
        call rsa_test   ;this procedure change all registers
2029
        dec  dword [esp]
2030
        jnz  .loop1
2031
        pop  ecx
2032
        mov  eax,26
2033
        mov  ebx,9
2034
        mcall
2035
        cmp  eax,dword [esp]   ;Is time changed?
2036
        jl   .loop
2037
        pop  eax
2038
        shr  dword [iter],4 ;[iter] - speed in Kb/sec. (every iteration codes 64 bytes)
2039
        CreateTread window_2,thread2_esp
2040
        jmp  still
223 Ghost 2041
 
2042
window_2:
7442 leency 2043
        mov  [num_win2],1
2044
        call draw_window_2
223 Ghost 2045
 
6483 mat1854 2046
still_2:
223 Ghost 2047
 
7442 leency 2048
        mov  eax,10
2049
        mcall
223 Ghost 2050
 
7442 leency 2051
        cmp  eax,1
2052
        je       window_2       ;  window_2
2053
        cmp  eax,2              ;
2054
        je       key_2          ;  key_2
2055
        cmp  eax,3              ;
2056
        je       button_2       ;  button_2
223 Ghost 2057
 
7442 leency 2058
        jmp  still_2    ;
223 Ghost 2059
 
7442 leency 2060
  key_2:                ;
2061
        mcall           ;
2062
        jmp  still_2    ;
223 Ghost 2063
 
7442 leency 2064
  button_2:             ;
2065
        mov  eax,17     ; 17
2066
        mcall           ;
223 Ghost 2067
 
7442 leency 2068
        cmp  ah,1               ; = 1 ?
2069
        jne  still_2    ; noclose
223 Ghost 2070
 
7442 leency 2071
        mov  [num_win2],0       ;
223 Ghost 2072
 
7442 leency 2073
        or       eax,-1         ;
2074
        mcall
223 Ghost 2075
 
6483 mat1854 2076
 
223 Ghost 2077
draw_window_2:
6483 mat1854 2078
 
7442 leency 2079
        ;call prepare_text_area
6483 mat1854 2080
 
7442 leency 2081
        mov  eax,12                ; function 12:tell os about windowdraw
2082
        mov  ebx,1h                 ; 1, start of draw
2083
        mcall
223 Ghost 2084
 
2085
 
7442 leency 2086
        Window 250,250,420,520, 0x33FFFFFF, 0x805080d0, standard  ;460
2087
        ; place size
318 heavyiron 2088
 
6483 mat1854 2089
 
7442 leency 2090
        Text 15, 10,0x00000000, STDCA, STDCAlen-STDCA
2091
        Text 215, 10,, EXTCA, EXTCAlen-EXTCA
318 heavyiron 2092
 
7442 leency 2093
        Text 15, 30,0x00000000, FPU, FPUlen-FPU
2094
        Text 115, 30,, VME, VMElen-VME
2095
        Text 215, 30,, DE,  DElen-DE
2096
        Text 315, 30,, PSE, PSElen-PSE
223 Ghost 2097
 
7442 leency 2098
        Text 15, 50,,TSC, TSClen-TSC
2099
        Text 115,50,,MSR, MSRlen-MSR
2100
        Text 215,50,,PAE, PAElen-PAE
2101
        Text 315,50,,MCE, MCElen-MCE
223 Ghost 2102
 
7442 leency 2103
        Text 15,70,,CX8, CX8len-CX8
2104
        Text 115,70,,APIC, APIClen-APIC
2105
        Text 215,70,,Res, Reslen-Res
2106
        Text 315,70,,SEP, SEPlen-SEP
223 Ghost 2107
 
7442 leency 2108
        Text 15,90,,MTRR, MTRRlen-MTRR
2109
        Text 115,90,,PGE, PGElen-PGE
2110
        Text 215,90,,MCA, MCAlen-MCA
2111
        Text 315,90,,CMOV, CMOVlen-CMOV
223 Ghost 2112
 
7442 leency 2113
        Text 15,110,,PAT, PATlen-PAT
2114
        Text 115,110,,PSE36, PSE36len-PSE36
2115
        Text 215,110,,PSNUM, PSNUMlen-PSNUM
2116
        Text 315,110,,CLFLUSHn, CLFLUSHnlen-CLFLUSHn
223 Ghost 2117
 
7442 leency 2118
        Text 15,130,,Res, Reslen-Res
2119
        Text 115,130,,DTS, DTSlen-DTS
2120
        Text 215,130,,ACPI, ACPIlen-ACPI
2121
        Text 315,130,,MMX, MMXlen-MMX
223 Ghost 2122
 
7442 leency 2123
        Text 15,150,,FXSR, FXSRlen-FXSR
2124
        Text 115,150,,SSE, SSElen-SSE
2125
        Text  215,150,,SSE2, SSE2len-SSE2
2126
        Text 315,150,,SSn, SSnlen-SSn
223 Ghost 2127
 
7442 leency 2128
        Text 15,170,,HTT, HTTnlen-HTTn
2129
        Text 115,170,,TM, TMlen-TM
2130
        Text 215,170,,IA64, IA64len-IA64
2131
        Text 315,170,,PBE, PBElen-PBE
2132
        ;---------------
2133
        DrawLine 0,  410, 185,185,0x8080FF  ;10
223 Ghost 2134
 
7442 leency 2135
        mov   eax,$80000000
2136
        cpuid
2137
        ;mov eax, $03020101  \A0for test of reaction
2138
        test eax, eax
2139
        js  goooddd
223 Ghost 2140
 
2141
baaadd:
7442 leency 2142
        Text 95,235,0x00000000,NEF, NEFlen-NEF
2143
        jmp too
223 Ghost 2144
 
2145
goooddd:
7442 leency 2146
        Text 15,195,0x00000000,SS3, SS3len-SS3
2147
        Text 15,215,,MON, MONlen-MON
2148
        Text 15,235,,DS_CPL, DS_CPLlen-DS_CPL
2149
        Text 15,255,,EST, ESTlen-EST
2150
        Text 15,275,,TM2, TM2len-TM2
2151
        Text 15,295,,VMX, VMXlen-VMX
2152
        Text 15,315,,SVM, SVMlen-SVM
223 Ghost 2153
 
7442 leency 2154
        Text 15,355,0x00000000,SMX, SMXlen-SMX
2155
        Text 15,335,0x00000000,PAGE, PAGElen-PAGE
2156
        Text 15,375,0x00000000,MIS, MISlen-MIS
2157
        Text 115,355,0x00000000,WDT, WDTlen-WDT
6483 mat1854 2158
 
7442 leency 2159
        Text 115,195,,CNXT_ID, CNXT_IDlen-CNXT_ID
2160
        Text 115,215,,CX16, CX16len-CX16
2161
        Text 115,235,,ETPRD, ETPRDlen-ETPRD
2162
        Text 115,255,,SYS, SYSlen-SYS
2163
        Text 115,275,,LAF, LAFlen-LAF
2164
        Text 115,295,,SSSE3, SSSE3len-SSSE3
2165
        Text 115,315,,MCR8, MCR8len-MCR8
223 Ghost 2166
 
6483 mat1854 2167
 
7442 leency 2168
        Text 115,335,0x00000000,EAS, EASlen-EAS
6483 mat1854 2169
 
7442 leency 2170
        Text 115,375,0x00000000,DNP, DNPlen-DNP
6483 mat1854 2171
 
2172
 
7442 leency 2173
        Text 315,375,0x00000000,SSE5, SSE5len-SSE5
6483 mat1854 2174
 
7442 leency 2175
        Text 215,195,,MP, MPlen-MP
2176
        Text 215,215,,NX, NXlen-NX
2177
        Text 215,235,,MMXPi, MMXPilen-MMXPi
2178
        Text 215,255,,MMXn, MMXnlen-MMXn
2179
        Text 215,275,,FXSRn, FXSRnlen-FXSRn
2180
        Text 215,295,,DCA,DCAlen-DCA
223 Ghost 2181
 
7442 leency 2182
        Text 315,295,0x00000000,SSE41,SSE41len-SSE41
2183
        Text 215,335,0x00000000,x2APIC,x2APIClen-x2APIC
2184
        Text 215,355,0x00000000,ABM,ABMlen-ABM
2185
        Text 215,375,0x00000000,OSVW,OSVWlen-OSVW
6483 mat1854 2186
 
7442 leency 2187
        Text 315,195,,FFXSR, FFXSRlen-FFXSR
2188
        Text 315,215,,TSCP, TSCPlen-TSCP
2189
        Text 315,235,,LM, LMlen-LM
2190
        Text 315,255,,DNo, DNolen-DNo
2191
        Text 315,275,,DN, DNlen-DN
2192
        Text 215,315,,CMPL, CMPLlen-CMPL
2193
        Text 315,315,0x00000000,SS42,SS42len-SS42
2194
        Text 315,335,0x00000000,PPCNT,PPCNTlen-PPCNT
2195
        Text 315,295,0x00000000,SSE4A,SSE4Alen-SSE4A
2196
        Text 315,355,0x00000000,SKINIT_,SKINIT_len-SKINIT_
318 heavyiron 2197
 
223 Ghost 2198
too:
7442 leency 2199
        DrawLine 10,  400, 430,430,0x8080FF  ;10
223 Ghost 2200
 
7442 leency 2201
        Text 15,415,0x00000000,speed, speedlen-speed
2202
        Text 130,415,,kbpersec, kbperseclen-kbpersec
223 Ghost 2203
 
7442 leency 2204
        DrawLine 10, 80, 400, 400, 0x8080FF
223 Ghost 2205
 
7442 leency 2206
        Text 90,400,0x80000000,performancestr, 0
2207
        DrawLine 322, 400, 400, 400, 0x8080FF
2208
        DrawLine 10, 10, 400, 490, 0x8080FF
2209
        DrawLine 400, 400, 400, 490, 0x8080FF
6483 mat1854 2210
 
7442 leency 2211
        DrawLine 10, 400, 490, 490, 0x8080FF
6483 mat1854 2212
 
7442 leency 2213
          ; your proc
2214
        Text 20,415,0x808080FF,currentcpu, 0
2215
        Number 170,415,0,5,dword [iter],0x000000       ; + 15
2216
        ;Text 115,370,,kbpersec, kbperseclen-kbpersec  ;+ 355
2217
        mov eax, dword[iter]
2218
        ;mov ebx, 100
2219
        ;mul ebx
2220
        add eax, 215
2221
        mov word[linelen], ax   ; need to store it as drawline corrupts eax
2222
        DrawLine 215,  [linelen], 416,416,0x8080FF  ;10 + 355 , 357
2223
        DrawLine 215,  [linelen], 417,417,0x8080FF  ;10
2224
        DrawLine 215,  [linelen], 418,418,0x8080FF  ;10
2225
;;;     DrawLine 20,  390, 371,371,0x8080FF  ;10
6483 mat1854 2226
 
7442 leency 2227
        ; sample proc 1
2228
        Text 20,435,0x80000000,samplename1,0       ; 10 + 40 + 40 +40 + 380
2229
        Number 170,435,0,5,dword [samplespeed1],0x000000;   ; 25 + 40 + 40 +40 + 380
2230
        ;Text 115,470,0,kbpersec, kbperseclen-kbpersec  ; 25 + 40 + 40 +40 + 380
2231
        mov eax, dword[samplespeed1]
2232
        add eax, 215
2233
        mov dword[linelen], eax   ; need to store it as drawline corrupts eax
2234
        DrawLine 215,  [linelen], 436,436,0x8080FF  ;27+40 + 40 +40  + 380
2235
        DrawLine 215,  [linelen], 437,437,0x8080FF  ;10
2236
        DrawLine 215,  [linelen], 438,438,0x8080FF  ;10
6483 mat1854 2237
 
7442 leency 2238
        ; sample proc 2
2239
        Text 20,455,0x80000000,samplename2,0     ; 10 + 40 + 350
2240
        Number 170,455,0,5,dword [samplespeed2],0x000000;   ; 25 + 40 + 350
2241
        ;Text 115,410,0,kbpersec, kbperseclen-kbpersec  ; 25 + 40 + 350
2242
        mov eax, dword[samplespeed2]
2243
        add eax, 215
2244
        mov dword[linelen], eax   ; need to store it as drawline corrupts eax
2245
        DrawLine 215,  [linelen], 456,456,0x8080FF  ;27+40 + 355
2246
        DrawLine 215,  [linelen], 457,457,0x8080FF  ;10
2247
        DrawLine 215,  [linelen], 458,458,0x8080FF  ;10
6483 mat1854 2248
 
7442 leency 2249
           ; sample proc 3
2250
        Text 20,475,0x80000000,samplename3,0     ; 10 + 40 + 40 + 38
2251
        Number 170,475,0,5,dword [samplespeed3],0x000000;   ; 25 + 40 + 40 + 355
2252
        ;Text 115,440,0,kbpersec, kbperseclen-kbpersec  ; 25 + 40 + 40 + 380
2253
        mov eax, dword[samplespeed3]
2254
        add eax, 215
2255
        mov dword[linelen], eax   ; need to store it as drawline corrupts eax
2256
        DrawLine 215,  [linelen], 476,476,0x8080FF  ;27+40 + 40
2257
        DrawLine 215,  [linelen], 477,477,0x8080FF  ;10
2258
        DrawLine 215,  [linelen], 478,478,0x8080FF  ;10
6483 mat1854 2259
 
7442 leency 2260
        mov  eax,12
2261
        mov  ebx,2h
2262
        mcall
223 Ghost 2263
 
7442 leency 2264
        ret
223 Ghost 2265
 
6486 pathoswith 2266
linelen  dd 0
6483 mat1854 2267
currentcpu db 'Current CPU',0
2268
samplename1 db 'Intel Core i5 CPU', 0x000000    ; not real results!
2269
samplespeed1 dd 62
2270
samplename2 db 'Intel Core i3 CPU', 0
2271
samplespeed2 dd 48
2272
samplename3 db 'Intel Pentium Dual CPU', 0
2273
samplespeed3 dd 35
2274
performancestr db 'PERFORMANCE (KB/S in RSA test 256 bit)',0
2275
ptsstring db ''
223 Ghost 2276
num_win2 db 0
2277
 
2278
draw_window:
7442 leency 2279
        mcall SF_REDRAW, SSF_BEGIN_DRAW
223 Ghost 2280
 
7442 leency 2281
        Window 150, 150, 350, 405, 0x34FFFFFF, 0x805080d0, title
223 Ghost 2282
 
7442 leency 2283
        mov   esi, [sc.work_button]
9472 leency 2284
        mcall SF_DEFINE_BUTTON, <138,92>, <345,24>, 2
2285
        mcall SF_DEFINE_BUTTON, <238,92>, <345,24>, 3
223 Ghost 2286
 
7442 leency 2287
        mov   ecx, [sc.work_button_text]
2288
        or    ecx, 0x90000000
2289
        mov   edx, btn_more_cap
2290
        mcall SF_DRAW_TEXT, (138 + (92 - 7 * 8) / 2) shl 16 + 350
2291
        mov   edx, btn_save_cap
2292
        mcall SF_DRAW_TEXT, (238 + (92 - 4 * 8) / 2) shl 16 + 350
6483 mat1854 2293
 
7442 leency 2294
        Text 130,270,0x00000000,instruct, instructlen-instruct
2295
        DrawLine  10,  330, 340,340,0x8080FF
2296
        DrawLine 330,  330, 275,340;,0x8080FF
2297
        DrawLine  10,   10, 275,340;,0x8080FF
2298
        DrawLine  10,  125, 275,275;,0x8080FF
2299
        DrawLine 230,  330, 275,275;,0x8080FF
6483 mat1854 2300
 
7442 leency 2301
        cmp dword[smallvendor], 'cAMD'
2302
        jne cont
2303
        cmp [f], $6
2304
        jne cont
6483 mat1854 2305
 
7442 leency 2306
;       Button 240,85,69,15,3,0x030000FF  ;  button for rating
2307
;       Text 245,90,0x00FFFFFF,FR, FRlen-FR ; text at button
223 Ghost 2308
 
7442 leency 2309
        call newrating; !!!!
223 Ghost 2310
 
7442 leency 2311
cont:
2312
        ;Number 82,50,0,4,dword [total],0x000000; MHz
2313
        mov esi, total
2314
        mov edi, tsum + 0xB  ;0xA
2315
        call savenumber
223 Ghost 2316
 
7442 leency 2317
        ;Number 110,50,0,2,dword [sot]; KHz
2318
        mov esi, sot
2319
        mov edi, tsum + 0x10
2320
        call savenumber
223 Ghost 2321
 
7442 leency 2322
        ;Number 75,110,1*256,1,dword [f],0x000000 ;
2323
        mov esi, f
2324
        mov edi, fam + 0x8     ;0x9
2325
        call savenumber
223 Ghost 2326
 
7442 leency 2327
        ;Number 75,130,,,dword [m]
2328
        mov esi, m
2329
        mov edi, mode + 0x7
2330
        call savenumber
223 Ghost 2331
 
7442 leency 2332
        ;Number 75,150,,,dword [s]
2333
        mov esi, s
2334
        mov edi, step + 0xa   ;0x9
2335
        call savenumber
223 Ghost 2336
 
7442 leency 2337
        ;Number 110,110,1*256,2,dword [ef]
2338
        mov esi, ef
2339
        mov edi, fam + 0xE    ;0x9
2340
        call savenumber
223 Ghost 2341
 
7442 leency 2342
        ;Number 110,130,,,dword [em]
2343
        mov esi, em
2344
        mov edi, mode + 0xE   ;0xD
2345
        call savenumber
223 Ghost 2346
 
7442 leency 2347
        mov esi, multb
2348
        mov edi, multil + 0xB
2349
        call savenumber
318 heavyiron 2350
 
7442 leency 2351
        ;Number 105,30,0,1,dword [multa]
2352
        mov esi, multa
2353
        mov edi, multil + 0xf
2354
        call savenumber
318 heavyiron 2355
 
7442 leency 2356
        ;Number 140,170,0,2,dword [wayld],0x000000
2357
        mov esi, wayld
2358
        mov edi, cache2 + 0x14   ;0x14
2359
        call savenumber
318 heavyiron 2360
 
7442 leency 2361
        ;Number 218,170,,,dword [lineld]
2362
        mov esi, lineld
2363
        mov edi, cache2 + 0x21
2364
        call savenumber
223 Ghost 2365
 
7442 leency 2366
        ;Number 140,190,,,dword [wayli]
2367
        mov esi, wayli
2368
        mov edi, cache + 0x14
2369
        call savenumber
2370
        ;Number 218,190,,,dword [lineli]
2371
        mov esi, lineli
2372
        mov edi, cache + 0x21
2373
        call savenumber
223 Ghost 2374
 
7442 leency 2375
        ;Number 140,210,,,dword [wayl2]
2376
        mov esi, wayl2
2377
        mov edi, cache3 + 0x14
2378
        call savenumber
2379
        ;Number 218,210,,,dword [linel2]
2380
        mov esi, linel2
2381
        mov edi, cache3 + 0x21
2382
        call savenumber
6483 mat1854 2383
 
7442 leency 2384
        ;Number 140,230,,,dword [wayl3]
2385
        mov esi, wayl3
2386
        mov edi, cache4 + 0x14
2387
        call savenumber
2388
        ;Number 218,230,,,dword [linel3]
2389
        mov esi, linel3
2390
        mov edi, cache4 + 0x21
2391
        call savenumber
6483 mat1854 2392
 
7442 leency 2393
        mov esi, L1d
2394
        mov edi, cache2 + 0xa
2395
        call savenumber
6483 mat1854 2396
 
7442 leency 2397
        ;Number 75,190,,,dword [ L1i]
2398
        mov esi, L1i
2399
        mov edi, cache + 0xa
2400
        call savenumber
6483 mat1854 2401
 
7442 leency 2402
        ;Number 41,210,0,4,dword[L2]
2403
        mov esi, L2
2404
        mov edi, cache3 + 0x4    ;0x3
2405
        call savenumber
6483 mat1854 2406
 
7442 leency 2407
        ;Number 35,230,0,5,dword[L3]
2408
        mov esi, L3
2409
        mov edi, cache4 + 0x4   ;0x3
2410
        call savenumber
6483 mat1854 2411
 
7442 leency 2412
        ;-----------Features
2413
        ;Number 258,50,0,2,dword [micron]  ; micron
2414
        mov esi, micron
2415
        mov edi, tech + 0xE
2416
        call savenumber
6483 mat1854 2417
 
7442 leency 2418
        mov esi, stdc
2419
        mov edi, STDCA + 0x14
2420
        call savenumber
6486 pathoswith 2421
 
7442 leency 2422
        ;Number 335,10,,,dword [extc],
2423
        mov esi, extc
2424
        mov edi, EXTCA + 0x14
2425
        call savenumber
6483 mat1854 2426
 
7442 leency 2427
        Text 15,90,,cpuname, cpunamelen-cpuname;
2428
        Text 255,250,,typen, typenlen-typen
2429
        Text 175, 50,,tech, techlen-tech;
6483 mat1854 2430
 
2431
   red2:
6486 pathoswith 2432
 
6483 mat1854 2433
    ;;;;;;;;;;;;;;;;;;;;;;;;
6486 pathoswith 2434
    goon:
2435
 
7442 leency 2436
        call decodebrand
6486 pathoswith 2437
 
6483 mat1854 2438
   typedetect:
7442 leency 2439
        mov     edx, t1
2440
        cmp     [t], 00b
2441
        jz      @f
2442
        mov     edx, t2
2443
        cmp     [t], 01b
2444
        jz      @f
2445
        mov     edx, t3
2446
        cmp     [t], 11b
2447
        jz      @f
2448
        mov     edx, t4
6483 mat1854 2449
@@:
7442 leency 2450
        mov     ebx, 290*65536 + 250
2451
        mov     ecx, 0x80000000
2452
        mcall   4
6486 pathoswith 2453
 
7442 leency 2454
        Text 15,250,,brandid, brandidlen-brandid
6483 mat1854 2455
 
7442 leency 2456
        Text 15,50,0x00000000,tsum, tsumlen-tsum
2457
        Text 15,110,0x00000000,fam, famlen-fam
2458
        Text 15,130,0x00000000,mode, modelen-mode
2459
        Text 15,150,0x00000000,step, steplen-step
6486 pathoswith 2460
 
7442 leency 2461
        Text 275,290,0x00000000,HTT, HTTlen-HTT
2462
        Text 275,310,,sse3, sse3len-sse3
6486 pathoswith 2463
 
7442 leency 2464
        Text 175,290,0x00000000,SSE41, SSE41len-SSE41
2465
        Text 175,310,0x00000000,SSE42, SSE42len-SSE42
2466
        Text 175,330,0x00000000,SSE5, SSE5len-SSE5
6483 mat1854 2467
 
6486 pathoswith 2468
 
7442 leency 2469
        Text 15,70,,name, namelen-name
2470
        Text 15,290,,MMXs, MMXslen-MMXs
2471
        Text 15,310,,SSE, SSElen-SSE
2472
        Text 95,310,,SSE2, SSE2len-SSE2
6486 pathoswith 2473
 
7442 leency 2474
        Text 95,290,,mmxp, mmxplen-mmxp
2475
        Text 15,330,0x00000000,now, nowlen-now
2476
        Text 95,330,,nowp, nowplen-nowp
6486 pathoswith 2477
 
7442 leency 2478
        Text 15, 190,0x00000000,cache, cachelen-cache
2479
        Text 15,170,0x00000000,cache2, cache2len-cache2
2480
        Text 15,210,,cache3, cache3len-cache3
2481
        Text 15,230,,cache4, cache4len-cache4
2482
        call    load_gif
6486 pathoswith 2483
 
7442 leency 2484
        cmp [nomultiplier], $1
2485
        je nomultip
2486
        Text   15,30,0x00000000,multil2, multil2len-multil2
2487
        Text   175,30,0x00000000,freql2, freql2len-freql2
2488
        Number 85,30,0,2,dword [multb],0x000000;
2489
        Number 105,30,0,1,dword [multa]
2490
        Number 259,30,0,4,dword [freqbb]
2491
        Number 289,30,0,2,dword [freqll]
6486 pathoswith 2492
 
7442 leency 2493
JumpForCodename:
2494
        cmp [codeN], $1
2495
        je codeNIntel
2496
        cmp [codeN], $2
2497
        je codeNAMD
2498
        cmp [codeN], $3
2499
        je codeNCyrix
2500
        cmp [codeN], $4
2501
        je codeNCentaur
2502
        cmp [codeN],$5
2503
        je codeNTransmeta
2504
        cmp [codeN], $6
2505
        je codeNVortex
2506
        jmp nnn
6486 pathoswith 2507
 
6483 mat1854 2508
codeNIntel:
7442 leency 2509
        Text 75,70,0x00000000,Inteln, Intelnlen-Inteln
2510
        mov     esi, intel
2511
        call    load_gif
2512
        PutImage 135,107,201,49,img_area+8
2513
        jmp nnn
6483 mat1854 2514
 
2515
codeNAMD:
7442 leency 2516
        Text 75,70,,AMDn, AMDnlen-AMDn
2517
        mov     esi, amd
2518
        call    load_gif
2519
        PutImage 135,107,201,49,img_area+8
2520
        jmp nnn
6483 mat1854 2521
 
2522
codeNCyrix:
7442 leency 2523
        Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
2524
        mov     esi, cyrix
2525
        call    load_gif
2526
        PutImage 135,107,201,49,img_area+8
2527
        jmp nnn
6483 mat1854 2528
 
2529
codeNCentaur:
7442 leency 2530
        Text 75,70,0x00000000,IDTn, IDTnlen-IDTn
2531
        mov     esi, idt
2532
        call    load_gif
2533
        PutImage 135,107,201,49,img_area+8
2534
        jmp nnn
6483 mat1854 2535
 
2536
codeNTransmeta:
7442 leency 2537
        Text 75,70,,Tranmsmetan, Tranmsmetanlen-Tranmsmetan
2538
        mov     esi, transmeta
2539
        call    load_gif
2540
        PutImage 135,107,201,49,img_area+8
2541
        jmp nnn
6483 mat1854 2542
 
2543
codeNVortex:
7442 leency 2544
        Text 75,70,0x00000000,Vortexn, Vortexnlen-Vortexn
2545
        mov     esi, vortex
2546
        call    load_gif
2547
        PutImage 135,107,201,49,img_area+8
2548
        jmp nnn
6486 pathoswith 2549
 
6483 mat1854 2550
nomultip:
7442 leency 2551
        Text   15,30,0x00000000,multi3, multi3len-multi3
2552
        Text   175,30,0x00000000,freql3, freql3len-freql3
2553
        Text 259,30,0x00000000, clock0, clock0len-clock0
6483 mat1854 2554
 
7442 leency 2555
        jmp JumpForCodename
6483 mat1854 2556
 
2557
 nnn:
6486 pathoswith 2558
 
318 heavyiron 2559
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
223 Ghost 2560
 
7442 leency 2561
        Text 15,10,0x00000000,stm, stmlen-stm
2562
        ;  Fix for deleting leading whitespaces
2563
        ;  in Intel P4's internal name
2564
        ;  by Madis Calme
2565
        ;  23.12.2004 ver. 0.81
2566
        cld
2567
        mov  edi,myname
2568
        mov  al,20h
2569
        or       ecx,-1
2570
        repe scasb
2571
        dec  edi
2572
        mov  esi,mynamelen
2573
        sub  esi,edi
2574
        Text 105, 10, 0x00000000, edi, esi
223 Ghost 2575
;-
7442 leency 2576
        Text 15,250,,brandid, brandidlen-brandid
223 Ghost 2577
 
7442 leency 2578
        mcall SF_REDRAW, SSF_END_DRAW
223 Ghost 2579
 
7442 leency 2580
        ret             ;
2581
 
6483 mat1854 2582
call_OpenDialog:
223 Ghost 2583
 
7442 leency 2584
        mov     [OpenDialog_data.type],1            ; Save
6486 pathoswith 2585
 
7442 leency 2586
        push    dword OpenDialog_data
2587
        call    [OpenDialog_Start]
552 diamond 2588
 
7442 leency 2589
        cmp     [OpenDialog_data.status],2          ; OpenDialog does not start
2590
        je          .save_file_default_path
223 Ghost 2591
 
7442 leency 2592
        cmp     [OpenDialog_data.status],1
2593
        jne     still
451 heavyiron 2594
 
7442 leency 2595
        call    store_data
2596
        jmp     still
4107 mario79 2597
 
6483 mat1854 2598
.save_file_default_path:
7442 leency 2599
         mov     edi,file_name
2600
         mov     esi,file_default_path
2601
         call    copy_file_name_path
2602
         call    store_data
2603
         jmp     still
4107 mario79 2604
 
6483 mat1854 2605
copy_file_name_path:
7442 leency 2606
        xor     eax,eax
2607
        cld
6483 mat1854 2608
@@:
7442 leency 2609
        lodsb
2610
        stosb
2611
        test    eax,eax
2612
        jnz     @r
2613
        ret
2614
 
6483 mat1854 2615
;-----------------------------------------------------------------------------
2616
prepare_text_area:
7442 leency 2617
        mov     edi,[store_text_area_start]
4107 mario79 2618
 
7442 leency 2619
        push    edi
2620
        mov     ecx,4096
2621
        mov     eax,dword '    '
2622
        cld
2623
        rep     stosd
2624
        pop     edi
2625
        mov     [store_text_area_end], edi
4107 mario79 2626
 
7442 leency 2627
        mov esi,title
2628
        call addstring
4107 mario79 2629
 
7442 leency 2630
        mov esi, stm
2631
        call addstring
4107 mario79 2632
 
7442 leency 2633
        mov esi, myname
2634
        call addstring
3587 fedesco 2635
 
7442 leency 2636
        cmp [nomultiplier], $1
2637
        je noMult
2638
        jne detMulti
2639
         ;jne detFreq
6486 pathoswith 2640
 
7442 leency 2641
        detMulti:
2642
        mov esi,multil
2643
        call addstring
2644
        jmp detFreq
6486 pathoswith 2645
 
7442 leency 2646
        detFreq:
2647
        mov esi, freql
2648
        call addstring
6486 pathoswith 2649
 
7442 leency 2650
        noMult:
2651
        mov esi,multi3
2652
        call addstring
3587 fedesco 2653
 
7442 leency 2654
        mov esi,freql3
2655
        call addstring
6486 pathoswith 2656
 
7442 leency 2657
        mov esi, tech
2658
        call addstring
6486 pathoswith 2659
 
7442 leency 2660
        mov esi, saveproc
2661
        call addstring
4107 mario79 2662
 
7442 leency 2663
        mov esi, cpuname
2664
        call addstring
223 Ghost 2665
 
7442 leency 2666
        mov esi, fam
2667
        call addstring
4107 mario79 2668
 
7442 leency 2669
        mov esi, mode
2670
        call addstring
4107 mario79 2671
 
7442 leency 2672
        mov esi, step
2673
        call addstring
4107 mario79 2674
 
7442 leency 2675
        mov esi, cache2
2676
        call addstring
4107 mario79 2677
 
7442 leency 2678
        mov esi, cache
2679
        call addstring
223 Ghost 2680
 
7442 leency 2681
        mov esi, cache3
2682
        call addstring
4107 mario79 2683
 
7442 leency 2684
        mov esi, cache4
2685
        call addstring
4107 mario79 2686
 
7442 leency 2687
        mov esi, brandid
2688
        call addstring
4107 mario79 2689
 
7442 leency 2690
        mov esi, MMXs
2691
        call addstring
4107 mario79 2692
 
7442 leency 2693
        mov esi, mmxp
2694
        call addstring
4107 mario79 2695
 
7442 leency 2696
        mov esi, now
2697
        call addstring
4107 mario79 2698
 
7442 leency 2699
        mov esi, HTT
2700
        call addstring
3587 fedesco 2701
 
7442 leency 2702
        mov esi, SSE
2703
        call addstring
6486 pathoswith 2704
 
7442 leency 2705
        mov esi, SSE41
2706
        call addstring
6486 pathoswith 2707
 
7442 leency 2708
        mov esi, SSE42
2709
        call addstring
6486 pathoswith 2710
 
7442 leency 2711
        mov esi, SSE5
2712
        call addstring
3587 fedesco 2713
 
7442 leency 2714
        mov esi, SSE2
2715
        call addstring
4107 mario79 2716
 
7442 leency 2717
        mov esi, nowp
2718
        call addstring
223 Ghost 2719
 
7442 leency 2720
        mov esi, sse3
2721
        call addstring
4107 mario79 2722
 
7442 leency 2723
        mov esi, standard
2724
        call addstring
4107 mario79 2725
 
7442 leency 2726
        mov esi, STDCA
2727
        call addstring
4107 mario79 2728
 
7442 leency 2729
        mov esi, EXTCA
2730
        call addstring
223 Ghost 2731
 
7442 leency 2732
        mov esi, FPU
2733
        call addstring
4107 mario79 2734
 
7442 leency 2735
        mov esi, VME
2736
        call addstring
4107 mario79 2737
 
7442 leency 2738
        mov esi, DE
2739
        call addstring
4107 mario79 2740
 
7442 leency 2741
        mov esi, PSE
2742
        call addstring
223 Ghost 2743
 
7442 leency 2744
        mov esi, TSC
2745
        call addstring
4107 mario79 2746
 
7442 leency 2747
        mov esi, MSR
2748
        call addstring
4107 mario79 2749
 
7442 leency 2750
        mov esi, PAE
2751
        call addstring
4107 mario79 2752
 
7442 leency 2753
        mov esi, MCE
2754
        call addstring
318 heavyiron 2755
 
7442 leency 2756
        mov esi, CX8
2757
        call addstring
4107 mario79 2758
 
7442 leency 2759
        mov esi, APIC
2760
        call addstring
4107 mario79 2761
 
7442 leency 2762
        mov esi, Res
2763
        call addstring
4107 mario79 2764
 
7442 leency 2765
        mov esi, SEP
2766
        call addstring
4107 mario79 2767
 
7442 leency 2768
        mov esi, MTRR
2769
        call addstring
4107 mario79 2770
 
7442 leency 2771
        mov esi, PGE
2772
        call addstring
4107 mario79 2773
 
7442 leency 2774
        mov esi, MCA
2775
        call addstring
3587 fedesco 2776
 
7442 leency 2777
        mov esi, CMOV
2778
        call addstring
3587 fedesco 2779
 
7442 leency 2780
        mov esi, PAT
2781
        call addstring
4107 mario79 2782
 
7442 leency 2783
        mov esi, PSE36
2784
        call addstring
223 Ghost 2785
 
7442 leency 2786
        mov esi, PSNUM
2787
        call addstring
4107 mario79 2788
 
7442 leency 2789
        mov esi, CLFLUSHn
2790
        call addstring
4107 mario79 2791
 
7442 leency 2792
        mov esi, Res
2793
        call addstring
4107 mario79 2794
 
7442 leency 2795
        mov esi, DTS
2796
        call addstring
223 Ghost 2797
 
7442 leency 2798
        mov esi, ACPI
2799
        call addstring
4107 mario79 2800
 
7442 leency 2801
        mov esi, MMX
2802
        call addstring
4107 mario79 2803
 
7442 leency 2804
        mov esi, FXSR
2805
        call addstring
4107 mario79 2806
 
7442 leency 2807
        mov esi, SSE
2808
        call addstring
4107 mario79 2809
 
2810
 
7442 leency 2811
        mov esi, SSn
2812
        call addstring
4107 mario79 2813
 
7442 leency 2814
        mov esi, HTT
2815
        call addstring
3587 fedesco 2816
 
7442 leency 2817
        mov esi, TM
2818
        call addstring
3587 fedesco 2819
 
7442 leency 2820
        mov esi, IA64
2821
        call addstring
4107 mario79 2822
 
7442 leency 2823
        mov esi, PBE
2824
        call addstring
223 Ghost 2825
 
7442 leency 2826
        mov esi, SS3
2827
        call addstring
4107 mario79 2828
 
7442 leency 2829
        mov esi, CNXT_ID
2830
        call addstring
223 Ghost 2831
 
7442 leency 2832
        mov esi, MP
2833
        call addstring
223 Ghost 2834
 
7442 leency 2835
        mov esi, FFXSR
2836
        call addstring
4107 mario79 2837
 
7442 leency 2838
        mov esi, MON
2839
        call addstring
4107 mario79 2840
 
7442 leency 2841
        mov esi, CX16
2842
        call addstring
4107 mario79 2843
 
7442 leency 2844
        mov esi, NX
2845
        call addstring
4107 mario79 2846
 
7442 leency 2847
        mov esi, TSCP
2848
        call addstring
4107 mario79 2849
 
7442 leency 2850
        mov esi, DS_CPL
2851
        call addstring
4107 mario79 2852
 
7442 leency 2853
        mov esi, ETPRD
2854
        call addstring
223 Ghost 2855
 
7442 leency 2856
        mov esi, MMXPi
2857
        call addstring
4107 mario79 2858
 
7442 leency 2859
        mov esi, LM
2860
        call addstring
4107 mario79 2861
 
7442 leency 2862
        mov esi, EST
2863
        call addstring
4107 mario79 2864
 
7442 leency 2865
        mov esi, SYS
2866
        call addstring
223 Ghost 2867
 
7442 leency 2868
        mov esi, MMXn
2869
        call addstring
4107 mario79 2870
 
7442 leency 2871
        mov esi, DNo
2872
        call addstring
4107 mario79 2873
 
7442 leency 2874
        mov esi, TM2
2875
        call addstring
4107 mario79 2876
 
7442 leency 2877
        mov esi, LAF
2878
        call addstring
223 Ghost 2879
 
7442 leency 2880
        mov esi, FFXSR
2881
        call addstring
6483 mat1854 2882
 
7442 leency 2883
        mov esi, DN
2884
        call addstring
6483 mat1854 2885
 
7442 leency 2886
        mov esi, VMX
2887
        call addstring
6483 mat1854 2888
 
7442 leency 2889
        mov esi, SSSE3
2890
        call addstring
6483 mat1854 2891
 
7442 leency 2892
        mov esi, DCA
2893
        call addstring
6483 mat1854 2894
 
7442 leency 2895
        mov esi, CMPL
2896
        call addstring
6483 mat1854 2897
 
7442 leency 2898
        mov esi, SVM
2899
        call addstring
6483 mat1854 2900
 
7442 leency 2901
        mov esi, MCR8
2902
        call addstring
6486 pathoswith 2903
 
7442 leency 2904
        mov esi, SMX
2905
        call addstring
6486 pathoswith 2906
 
7442 leency 2907
        mov esi, x2APIC
2908
        call addstring
6486 pathoswith 2909
 
7442 leency 2910
        mov esi, PPCNT
2911
        call addstring
6486 pathoswith 2912
 
7442 leency 2913
        mov esi, PAGE
2914
        call addstring
6486 pathoswith 2915
 
7442 leency 2916
        mov esi, EAS
2917
        call addstring
6486 pathoswith 2918
 
7442 leency 2919
        mov esi, ABM
2920
        call addstring
6486 pathoswith 2921
 
7442 leency 2922
        mov esi, MIS
2923
        call addstring
6486 pathoswith 2924
 
7442 leency 2925
        mov  esi,OSVW
2926
        call addstring
6486 pathoswith 2927
 
7442 leency 2928
        mov esi,SKINIT_
2929
        call addstring
6486 pathoswith 2930
 
7442 leency 2931
        mov esi, WDT
2932
        call addstring
6486 pathoswith 2933
 
7442 leency 2934
        ret
6486 pathoswith 2935
 
6483 mat1854 2936
addstring:
7442 leency 2937
        mov edi, [store_text_area_end]
2938
        xor eax, eax
2939
        xor ecx, ecx
2940
        cld
6483 mat1854 2941
@@:
7442 leency 2942
        lodsb
2943
        stosb
2944
        inc     [store_text_area_end]
2945
        cmp     [esi], byte 0x0
2946
        jnz     @r
2947
        mov     al,0Ah
2948
        stosb
6483 mat1854 2949
 
7442 leency 2950
        mov     [store_text_area_end],edi
2951
        xor     edi,edi
2952
        xor     esi, esi
2953
        ret
6483 mat1854 2954
 
2955
savenumber:
7442 leency 2956
        xor eax, eax
2957
        cld
2958
        lodsw
2959
        call numbertostring
2960
        xor esi, esi
2961
        xor edi, edi
6483 mat1854 2962
 
7442 leency 2963
        ret
6483 mat1854 2964
 
2965
savestring:
7442 leency 2966
        xor eax, eax
2967
        cld
2968
        lodsw
2969
        ;call numbertostring
2970
        xor esi, esi
2971
        xor edi, edi
6483 mat1854 2972
 
7442 leency 2973
        ret
6483 mat1854 2974
 
2975
numbertostring:
7442 leency 2976
        mov bx, 10
2977
        xor ecx, ecx
6483 mat1854 2978
@@m1:
7442 leency 2979
        xor dx, dx
2980
        div bx
2981
        push dx
2982
        inc cx
2983
        test ax, ax
2984
        jnz @@m1
6483 mat1854 2985
@@m2:
7442 leency 2986
        pop ax
2987
        add al, '0'
2988
        stosb
2989
        loop @@m2
2990
        ret
6483 mat1854 2991
 
2992
concatname:
7442 leency 2993
        ;mov edi, [saveproc]
2994
        xor eax, eax
2995
        xor ecx, ecx
2996
        cld
6483 mat1854 2997
@@:
7442 leency 2998
        lodsb
2999
        stosb
3000
        cmp     [esi], byte 0x0
3001
        jnz     @r
6483 mat1854 3002
 
7442 leency 3003
        xor     edi,edi
3004
        xor     esi, esi
3005
        ret
6483 mat1854 3006
 
3007
store_data:
7442 leency 3008
        call prepare_text_area
3009
        mov     eax,[store_text_area_start]
3010
        mov     [fileinfo.return],eax
3011
        mov     ebx,[store_text_area_end]
3012
        sub     ebx,eax
3013
        inc     ebx
3014
        mov     [fileinfo.size],ebx
3015
        mcall   70,fileinfo
3016
        ret
6483 mat1854 3017
 
3018
load_gif:
7442 leency 3019
        mov     edi, img_area
6608 pathoswith 3020
        jmp     ReadGIF
6486 pathoswith 3021
 
4107 mario79 3022
 
6483 mat1854 3023
; DATA AREA
4107 mario79 3024
 
8015 leency 3025
title    db   'CPUID 2.31 by S.Kuzmin & KolibriOS Team',0
6483 mat1854 3026
 
3027
stm:
6486 pathoswith 3028
   db 'Internal name:', 0
6483 mat1854 3029
 
3030
stmlen:
3031
 
3032
SS42:
7442 leency 3033
        db 'SSE4.2:       ',0
6483 mat1854 3034
SS42len:
3035
 
3036
SMX:
7442 leency 3037
        db 'SMX:       ',0
6483 mat1854 3038
SMXlen:
3039
 
3040
x2APIC:
7442 leency 3041
        db 'x2APIC:       '
6483 mat1854 3042
x2APIClen:
3043
 
3044
PPCNT:
7442 leency 3045
        db 'POPCNT:          '
6483 mat1854 3046
PPCNTlen:
3047
 
3048
PAGE:
7442 leency 3049
        db 'Page1Gb:     '
6483 mat1854 3050
PAGElen:
3051
 
3052
EAS:
7442 leency 3053
        db 'EAS:                       ',0
6483 mat1854 3054
EASlen:
3055
 
3056
newLabel:
7442 leency 3057
        db '3DNP:                       ',0
6483 mat1854 3058
newLabellen:
3059
 
3060
 
3061
ABM:
7442 leency 3062
        db 'ABM:      '
6483 mat1854 3063
ABMlen:
3064
 
3065
SSE4A:
7442 leency 3066
        db 'SSE4A:       '
6483 mat1854 3067
SSE4Alen:
3068
 
3069
MIS:
7442 leency 3070
        db 'MIS:      ',0
6483 mat1854 3071
MISlen:
3072
 
3073
DNP:
7442 leency 3074
        db '3DNP:       '
6483 mat1854 3075
DNPlen:
3076
 
3077
OSVW:
7442 leency 3078
        db 'OSVW:       ',0
6483 mat1854 3079
OSVWlen:
3080
 
3081
SKINIT_:
7442 leency 3082
        db 'SKINIT:          ',0
6483 mat1854 3083
SKINIT_len:
3084
 
3085
WDT:
7442 leency 3086
        db 'WDT:            ',0
6483 mat1854 3087
WDTlen:
3088
 
3089
 
3090
saveproc:
3091
   db '                                                   ',0
3092
 
3093
multil:
7442 leency 3094
  db 'Multiplier:   .  ', 0
6483 mat1854 3095
 
3096
multillen:
3097
 
3098
multil2:
3099
 
7442 leency 3100
  db 'Multiplier:   .  '
6483 mat1854 3101
 
3102
multil2len:
3103
 
3104
multi3:
3105
 
3106
  db 'Multiplier: n/a',0
3107
 
3108
multi3len:
3109
 
3110
freql:
3111
 
3112
  db 'System clock:     .   MHz', 0
3113
freqllen:
3114
 
3115
freql2:
3116
 
7442 leency 3117
  db 'System clock:     .   MHz'
6483 mat1854 3118
 
3119
 
3120
freql2len:
3121
 
3122
freql3:
3123
 
3124
  db 'System clock: n/a '
3125
 
3126
 
3127
freql3len:
3128
 
3129
tsum:
3130
 
7442 leency 3131
        db 'Frequency:     .    MHz  ',0
6483 mat1854 3132
 
3133
tsumlen:
3134
 
3135
tech:
3136
 
7442 leency 3137
        db 'Technology: 0.   micron ', 0
6483 mat1854 3138
 
3139
techlen:
3140
 
3141
name:
3142
 
3587 fedesco 3143
if lang eq it
4107 mario79 3144
 
7442 leency 3145
        db 'Codename:',0
4107 mario79 3146
 
3587 fedesco 3147
else
4107 mario79 3148
 
7442 leency 3149
        db 'CODENAME:',0
4107 mario79 3150
 
6483 mat1854 3151
 
3587 fedesco 3152
end if
3153
 
6483 mat1854 3154
namelen:
4107 mario79 3155
 
6483 mat1854 3156
vendorname:
4107 mario79 3157
 
3587 fedesco 3158
if lang eq it
4107 mario79 3159
 
7442 leency 3160
         db 'Vendor CPU              ', 0
4107 mario79 3161
 
3587 fedesco 3162
else
4107 mario79 3163
 
7442 leency 3164
         db 'CPU VENDOR:             ', 0
4107 mario79 3165
 
3587 fedesco 3166
end if
3167
 
6483 mat1854 3168
vendornamelen:
4107 mario79 3169
 
223 Ghost 3170
cpuname:
4107 mario79 3171
 
3587 fedesco 3172
if lang eq it
4107 mario79 3173
 
7442 leency 3174
         db 'Vendor CPU              ', 0
4107 mario79 3175
 
3587 fedesco 3176
else
4107 mario79 3177
 
7442 leency 3178
         db 'CPU VENDOR:             ', 0
4107 mario79 3179
 
3587 fedesco 3180
end if
3181
 
223 Ghost 3182
cpunamelen:
4107 mario79 3183
 
6483 mat1854 3184
 
223 Ghost 3185
fam:
4107 mario79 3186
 
3587 fedesco 3187
if lang eq it
4107 mario79 3188
 
7442 leency 3189
         db 'Famiglia:   std   ext', 0
4107 mario79 3190
 
3587 fedesco 3191
else
4107 mario79 3192
 
7442 leency 3193
         db 'FAMILY:   std   ext', 0
4107 mario79 3194
 
3587 fedesco 3195
end if
3196
 
223 Ghost 3197
famlen:
4107 mario79 3198
 
223 Ghost 3199
mode:
4107 mario79 3200
 
3587 fedesco 3201
if lang eq it
4107 mario79 3202
 
7442 leency 3203
          db 'Modello:    std    ext', 0
4107 mario79 3204
 
3587 fedesco 3205
else
4107 mario79 3206
 
7442 leency 3207
          db 'MODEL:    std    ext', 0
4107 mario79 3208
 
3587 fedesco 3209
end if
3210
 
223 Ghost 3211
modelen:
4107 mario79 3212
 
223 Ghost 3213
step:
4107 mario79 3214
 
3587 fedesco 3215
if lang eq it
4107 mario79 3216
 
7442 leency 3217
           db 'Stepping:        ', 0
4107 mario79 3218
 
3587 fedesco 3219
else
4107 mario79 3220
 
7442 leency 3221
           db 'STEPPING:        ', 0
4107 mario79 3222
 
3587 fedesco 3223
end if
3224
 
223 Ghost 3225
steplen:
318 heavyiron 3226
 
6483 mat1854 3227
cache:
4107 mario79 3228
 
7442 leency 3229
        db 'L1(inst):     KB       -way set     -byte line size',0
6483 mat1854 3230
 
3231
cachelen:
3232
 
223 Ghost 3233
cache2:
3234
 
7442 leency 3235
         db 'L1(data):     KB       -way set     -byte line size',0
4107 mario79 3236
 
223 Ghost 3237
cache2len:
3238
 
4107 mario79 3239
 
6483 mat1854 3240
cache3:
4107 mario79 3241
 
7442 leency 3242
        db 'L2:      KB            -way set     -byte line size',0
4107 mario79 3243
 
6483 mat1854 3244
cache3len:
223 Ghost 3245
 
6483 mat1854 3246
cache4:
4107 mario79 3247
 
6483 mat1854 3248
   db 'L3:      KB            -way set     -byte line size',0
318 heavyiron 3249
 
6483 mat1854 3250
cache4len:
4107 mario79 3251
 
6483 mat1854 3252
brandid:
4107 mario79 3253
 
7442 leency 3254
        db 'Brand:', 0
318 heavyiron 3255
 
6483 mat1854 3256
brandidlen:
4107 mario79 3257
 
6483 mat1854 3258
MMXs:
4107 mario79 3259
 
7442 leency 3260
        db 'MMX:         ',0
4107 mario79 3261
 
6483 mat1854 3262
MMXslen:
318 heavyiron 3263
 
4107 mario79 3264
 
6483 mat1854 3265
total dd 0x0
223 Ghost 3266
 
6483 mat1854 3267
total1 dd 0x0
4107 mario79 3268
 
6483 mat1854 3269
rating dd 0x0
4107 mario79 3270
 
6483 mat1854 3271
rat dd 0x0  ;
223 Ghost 3272
 
6483 mat1854 3273
NEF:
3274
 
3275
db 'EXTENDED FEATURES ARE NOT AVAILABLE',0
3276
 
3277
NEFlen:
3278
 
3279
 
3280
 
3281
mb :
3282
 
3283
db 'MB'
3284
 
3285
mblen:
3286
 
3287
 
3288
 
3289
logcpus :
3290
 
3291
db 'Number of logical CPU:'
3292
 
3293
logcpuslen:
3294
 
3295
 
3296
 
3297
speed :
3298
 
3587 fedesco 3299
if lang eq it
4107 mario79 3300
 
7442 leency 3301
;               db 'Performance',0
4107 mario79 3302
 
3587 fedesco 3303
else
4107 mario79 3304
 
7442 leency 3305
;               db 'PERFORMANCE:',0
4107 mario79 3306
 
3587 fedesco 3307
end if
3308
 
6483 mat1854 3309
speedlen:
4107 mario79 3310
 
223 Ghost 3311
 
4107 mario79 3312
 
6483 mat1854 3313
kbpersec:
4107 mario79 3314
 
6483 mat1854 3315
db 'KB/SEC'
4107 mario79 3316
 
6483 mat1854 3317
kbperseclen:
223 Ghost 3318
 
4107 mario79 3319
 
3320
 
6483 mat1854 3321
instruct:
4107 mario79 3322
 
6483 mat1854 3323
if lang eq it
223 Ghost 3324
 
7442 leency 3325
                db 'Set istruzioni'
4107 mario79 3326
 
6483 mat1854 3327
else
4107 mario79 3328
 
7442 leency 3329
                db 'Instruction sets'
4107 mario79 3330
 
6483 mat1854 3331
end if
223 Ghost 3332
 
6483 mat1854 3333
instructlen:
4107 mario79 3334
 
3335
 
6483 mat1854 3336
 
3337
standard    db 'Standard and Extended features plus Performance test',0
3338
 
3339
 
3340
STDCA:
3341
 
7442 leency 3342
        db 'Highest STD call is         ',0
6483 mat1854 3343
 
3344
STDCAlen:
3345
 
3346
 
3347
 
3348
EXTCA:
3349
 
7442 leency 3350
        db 'Highest EXT call is         h',0
6483 mat1854 3351
 
3352
EXTCAlen:
3353
 
3354
 
3355
oblom:
3356
 
3587 fedesco 3357
if lang eq it
4107 mario79 3358
 
7442 leency 3359
                db 'CPUID non e disponibile'
4107 mario79 3360
 
3587 fedesco 3361
else
4107 mario79 3362
 
7442 leency 3363
                db 'SORRY, CPUID IS NOT AVAILABLE'
4107 mario79 3364
 
3587 fedesco 3365
end if
3366
 
6483 mat1854 3367
oblomlen:
4107 mario79 3368
 
318 heavyiron 3369
 
6483 mat1854 3370
other:
4107 mario79 3371
 
6483 mat1854 3372
if lang eq it
3373
 
7442 leency 3374
                db 'Questo vendor non e supportato'
6483 mat1854 3375
 
3376
else
3377
 
7442 leency 3378
                db 'SORRY, THIS VENDOR IS NOT SUPPORTED YET'
6483 mat1854 3379
 
3380
end if
3381
 
3382
otherlen:
3383
 
3384
cacheP4:
3385
 
7442 leency 3386
        db 'L1(inst):     Kuops    -way set     -byte line size'
6483 mat1854 3387
 
3388
cacheP4len:
3389
 
3390
 
3391
 
3392
 
3393
typen:
3394
 
3395
if lang eq it
3396
 
7442 leency 3397
                db 'Tipo:'
6483 mat1854 3398
 
3399
else
3400
 
7442 leency 3401
                db 'Type:'
6483 mat1854 3402
 
3403
end if
3404
 
3405
 
3406
 
3407
typenlen:
3408
 
3409
 
3410
 
3411
pr:
3412
 
3413
  db 'P-rating:'
3414
 
3415
prlen:
3416
 
3417
 
3418
 
3419
 
223 Ghost 3420
AMDn:
4107 mario79 3421
 
7442 leency 3422
        db 'AMD',0
4107 mario79 3423
 
223 Ghost 3424
AMDnlen:
4107 mario79 3425
 
6483 mat1854 3426
AMDnNew:
3427
 
7442 leency 3428
        db 'CODENAME: AMD',0
6483 mat1854 3429
 
3430
AMDnNewlen:
3431
 
223 Ghost 3432
Inteln:
4107 mario79 3433
 
7442 leency 3434
        db 'Intel',0
4107 mario79 3435
 
223 Ghost 3436
Intelnlen:
4107 mario79 3437
 
6483 mat1854 3438
IntelnNew:
3439
 db 'CODENAME: Intel',0
3440
 
3441
IntelnNewlen:
3442
 
3443
 
223 Ghost 3444
Cyrixn:
4107 mario79 3445
 
7442 leency 3446
        db 'Cyrix',0
4107 mario79 3447
 
223 Ghost 3448
Cyrixnlen:
4107 mario79 3449
 
223 Ghost 3450
IDTn:
4107 mario79 3451
 
7442 leency 3452
         db 'IDT/Centaur',0
4107 mario79 3453
 
223 Ghost 3454
IDTnlen:
4107 mario79 3455
 
223 Ghost 3456
Centaurn:
4107 mario79 3457
 
7442 leency 3458
         db 'VIA',0
4107 mario79 3459
 
223 Ghost 3460
Centaurnlen:
3461
 
4107 mario79 3462
 
6483 mat1854 3463
 
223 Ghost 3464
Tranmsmetan:
4107 mario79 3465
 
7442 leency 3466
         db 'Transmeta',0
4107 mario79 3467
 
223 Ghost 3468
Tranmsmetanlen:
3469
 
4107 mario79 3470
 
3471
Vortexn:
7442 leency 3472
        db 'Vortex86',0
4107 mario79 3473
Vortexnlen:
3474
 
3475
 
223 Ghost 3476
mmxp:
4107 mario79 3477
 
7442 leency 3478
        db 'MMX+:         ',0
4107 mario79 3479
 
223 Ghost 3480
mmxplen:
3481
 
4107 mario79 3482
 
6483 mat1854 3483
 
223 Ghost 3484
HTT:
4107 mario79 3485
 
7442 leency 3486
        db 'HTT:          ',0
4107 mario79 3487
 
223 Ghost 3488
HTTlen:
3489
 
4107 mario79 3490
 
223 Ghost 3491
HTTn:
4107 mario79 3492
 
7442 leency 3493
        db 'HTT:         ',0
4107 mario79 3494
 
223 Ghost 3495
HTTnlen:
3496
 
4107 mario79 3497
 
223 Ghost 3498
sse3:
4107 mario79 3499
 
7442 leency 3500
        db 'SSE3:         ',0
4107 mario79 3501
 
223 Ghost 3502
sse3len:
4107 mario79 3503
 
6483 mat1854 3504
SSE41:
7442 leency 3505
        db 'SSE4.1:          ',0
6483 mat1854 3506
SSE41len:
3507
 
3508
SSE42:
7442 leency 3509
        db 'SSE4.2:             ',0
6483 mat1854 3510
SSE42len:
3511
 
3512
SSE5:
7442 leency 3513
        db 'SSE5:               ',0
6483 mat1854 3514
SSE5len:
3515
 
223 Ghost 3516
now:
4107 mario79 3517
 
7442 leency 3518
        db '3DNOW!:         ',0
4107 mario79 3519
 
223 Ghost 3520
nowlen:
4107 mario79 3521
 
223 Ghost 3522
nowp:
4107 mario79 3523
 
7442 leency 3524
        db '3DNOW!+:         ',0
4107 mario79 3525
 
223 Ghost 3526
nowplen:
3527
 
3528
;-Type
3529
 
7442 leency 3530
t1      db      'OEM',0
4107 mario79 3531
 
7442 leency 3532
t2      db      'Overdrive',0
4107 mario79 3533
 
7442 leency 3534
t3      db      'Dual',0
4107 mario79 3535
 
7442 leency 3536
t4      db      'Unknown',0
4107 mario79 3537
 
223 Ghost 3538
 
4107 mario79 3539
 
223 Ghost 3540
;----------Intel
4107 mario79 3541
 
223 Ghost 3542
P50:
4107 mario79 3543
 
6483 mat1854 3544
db 'P5 A-step',0
4107 mario79 3545
 
223 Ghost 3546
P50len:
4107 mario79 3547
 
223 Ghost 3548
P5:
4107 mario79 3549
 
6483 mat1854 3550
db 'P5',0
4107 mario79 3551
 
223 Ghost 3552
P5len:
4107 mario79 3553
 
223 Ghost 3554
P54T:
4107 mario79 3555
 
6483 mat1854 3556
db 'P24T Overdrive',0
4107 mario79 3557
 
223 Ghost 3558
P54Tlen:
4107 mario79 3559
 
223 Ghost 3560
P54C:
4107 mario79 3561
 
6483 mat1854 3562
db 'P54C',0
4107 mario79 3563
 
223 Ghost 3564
P54Clen:
4107 mario79 3565
 
223 Ghost 3566
P55C:
4107 mario79 3567
 
6483 mat1854 3568
db 'P55C (with MMX)',0
4107 mario79 3569
 
223 Ghost 3570
P55Clen:
4107 mario79 3571
 
223 Ghost 3572
; ---
4107 mario79 3573
 
223 Ghost 3574
P60:
4107 mario79 3575
 
6483 mat1854 3576
db 'Pentium Pro A-step',0
4107 mario79 3577
 
223 Ghost 3578
P60len:
4107 mario79 3579
 
223 Ghost 3580
P61:
4107 mario79 3581
 
6483 mat1854 3582
db 'Pentium Pro',0
4107 mario79 3583
 
223 Ghost 3584
P61len:
4107 mario79 3585
 
223 Ghost 3586
P63:
4107 mario79 3587
 
6483 mat1854 3588
db 'Pentium II (Klamath)',0
4107 mario79 3589
 
223 Ghost 3590
P63len:
4107 mario79 3591
 
223 Ghost 3592
P65:
4107 mario79 3593
 
6483 mat1854 3594
db 'Pentium II (Deschutes)',0
4107 mario79 3595
 
223 Ghost 3596
P65len:
4107 mario79 3597
 
223 Ghost 3598
P66:
4107 mario79 3599
 
6483 mat1854 3600
db 'Celeron (Medocino)',0
4107 mario79 3601
 
223 Ghost 3602
P66len:
4107 mario79 3603
 
223 Ghost 3604
P67:
4107 mario79 3605
 
6483 mat1854 3606
db 'Pentium III (Katmai)',0
4107 mario79 3607
 
223 Ghost 3608
P67len:
4107 mario79 3609
 
223 Ghost 3610
P68:
4107 mario79 3611
 
6483 mat1854 3612
db 'Pentium III (Coppermine)',0
4107 mario79 3613
 
223 Ghost 3614
P68len:
4107 mario79 3615
 
223 Ghost 3616
P69:
4107 mario79 3617
 
6483 mat1854 3618
db 'Pentium M (Banias)',0
4107 mario79 3619
 
223 Ghost 3620
P69len:
4107 mario79 3621
 
223 Ghost 3622
P6A:
4107 mario79 3623
 
6483 mat1854 3624
db 'Pentium III Xeon (Cascades)',0
4107 mario79 3625
 
223 Ghost 3626
P6Alen:
4107 mario79 3627
 
223 Ghost 3628
P6B:
4107 mario79 3629
 
6483 mat1854 3630
db 'Pentium III (Tualatin)',0
4107 mario79 3631
 
223 Ghost 3632
P6Blen:
4107 mario79 3633
 
223 Ghost 3634
P6D:
4107 mario79 3635
 
6483 mat1854 3636
db 'Pentium M (Dothan)',0
4107 mario79 3637
 
223 Ghost 3638
P6Dlen:
4107 mario79 3639
 
223 Ghost 3640
P6E:
4107 mario79 3641
 
6483 mat1854 3642
db 'Pentium M (Yonah)/ Core',0
4107 mario79 3643
 
223 Ghost 3644
P6Elen:
4107 mario79 3645
 
223 Ghost 3646
P6F:
4107 mario79 3647
 
6483 mat1854 3648
db 'Pentium D (Conroe)/ Core 2 (Kentsfield)',0
4107 mario79 3649
 
223 Ghost 3650
P6Flen:
4107 mario79 3651
 
223 Ghost 3652
;---
4107 mario79 3653
 
223 Ghost 3654
PS0:
4107 mario79 3655
 
6483 mat1854 3656
db 'Itanium (IA-64)',0
4107 mario79 3657
 
223 Ghost 3658
PS0len:
4107 mario79 3659
 
223 Ghost 3660
;------------
4107 mario79 3661
 
223 Ghost 3662
PF0:
4107 mario79 3663
 
6483 mat1854 3664
db 'Pentium 4 (Willamete)',0
4107 mario79 3665
 
223 Ghost 3666
PF0len:
4107 mario79 3667
 
223 Ghost 3668
PF2:
4107 mario79 3669
 
6483 mat1854 3670
db 'Pentium 4 (Northwood)',0
4107 mario79 3671
 
223 Ghost 3672
PF2len:
4107 mario79 3673
 
223 Ghost 3674
PF3:
4107 mario79 3675
 
6483 mat1854 3676
db 'Pentium 4 (Prescott)',0
4107 mario79 3677
 
223 Ghost 3678
PF3len:
4107 mario79 3679
 
223 Ghost 3680
PF5:
4107 mario79 3681
 
6483 mat1854 3682
db 'Pentium 4 (Tejas)',0
4107 mario79 3683
 
223 Ghost 3684
PF5len:
4107 mario79 3685
 
223 Ghost 3686
PF6:
4107 mario79 3687
 
6483 mat1854 3688
db 'Pentium 4 (Presler)',0
4107 mario79 3689
 
223 Ghost 3690
PF6len:
4107 mario79 3691
 
223 Ghost 3692
;----------------Intel Celerons
4107 mario79 3693
 
223 Ghost 3694
P65c:
4107 mario79 3695
 
6483 mat1854 3696
db 'Celeron (Covington)',0
4107 mario79 3697
 
223 Ghost 3698
P65clen:
4107 mario79 3699
 
223 Ghost 3700
P68c:
4107 mario79 3701
 
6483 mat1854 3702
db 'Celeron (Coppermine)',0
4107 mario79 3703
 
223 Ghost 3704
P68clen:
4107 mario79 3705
 
223 Ghost 3706
P6Bc:
4107 mario79 3707
 
6483 mat1854 3708
db 'Celeron (Tualatin)',0
4107 mario79 3709
 
223 Ghost 3710
P6Bclen:
4107 mario79 3711
 
223 Ghost 3712
PF0c:
4107 mario79 3713
 
6483 mat1854 3714
db 'Celeron (Willamete)',0
4107 mario79 3715
 
223 Ghost 3716
PF0clen:
4107 mario79 3717
 
223 Ghost 3718
PF2c:
4107 mario79 3719
 
6483 mat1854 3720
db 'Celeron (Northwood)',0
4107 mario79 3721
 
223 Ghost 3722
PF2clen:
4107 mario79 3723
 
223 Ghost 3724
PF3c:
4107 mario79 3725
 
6483 mat1854 3726
db 'Celeron (Prescott)',0
4107 mario79 3727
 
223 Ghost 3728
PF3clen:
4107 mario79 3729
 
223 Ghost 3730
PF5c:
4107 mario79 3731
 
6483 mat1854 3732
db 'Celeron D (Texas)',0
4107 mario79 3733
 
223 Ghost 3734
PF5clen:
4107 mario79 3735
 
223 Ghost 3736
PF6c:
4107 mario79 3737
 
6483 mat1854 3738
db 'Celeron D (Presler)',0
4107 mario79 3739
 
223 Ghost 3740
PF6clen:
4107 mario79 3741
 
6483 mat1854 3742
;---------New Intel
3743
P3A:
3744
 
3745
db 'IvyBridge',0
3746
 
3747
P3Alen:
3748
 
3749
P2A:
3750
 
3751
db 'Sandy Bridge',0
3752
 
3753
P2Alen:
3754
 
3755
P2D:
6486 pathoswith 3756
db 'Sandy bridge-E',0
6483 mat1854 3757
 
3758
P2Dlen:
3759
 
3760
 
3761
P25:
3762
db 'Arrandale',0
3763
P25len:
3764
 
3765
P2C:
3766
db 'Gulftown',0
3767
P2Clen:
3768
 
3769
P2F:
3770
db 'Westmere-EX',0
3771
P2Flen:
3772
 
3773
P1E:
3774
db 'Clarksfield',0
3775
P1Elen:
3776
 
3777
P1A:
3778
db 'Bloomfield',0
3779
P1Alen:
3780
 
3781
P2E:
3782
db 'Nehalem-EX',0
3783
P2Elen:
3784
 
3785
P17:
3786
db 'Yorkfield',0
3787
P17len:
3788
 
3789
P1D:
3790
db 'Dunnington',0
3791
P1Dlen:
3792
 
3793
P0F:
3794
db 'Clovertown',0
3795
P0Flen:
3796
 
3797
P16:
3798
db 'Merom Conroe',0
3799
P16len:
3800
 
3801
P06:
3802
db 'Cedar Mill',0
3803
P06len:
3804
 
3805
P03:
3806
db 'Nocona Irwindale',0
3807
P03len:
3808
 
3809
P04:
3810
db 'NoconaIrwindale',0
3811
P04len:
3812
 
3813
P0D:
3814
db 'Dothan',0
3815
P0Dlen:
3816
 
3817
P36:
3818
db 'Cedarview',0
3819
P36len:
3820
 
3821
P26:
3822
db 'Lincroft',0
3823
P26len:
3824
 
3825
P1C:
3826
db 'Pineview',0
3827
P1Clen:
3828
 
6484 mat1854 3829
no_known:
7445 leency 3830
db 'SORRY, CODENAME IS NOT SUPPORTED YET ', 0
6483 mat1854 3831
 
223 Ghost 3832
;---------AMD
4107 mario79 3833
 
7442 leency 3834
A50     db 'K5 (PR75, PR90, PR100)',0
4107 mario79 3835
 
7442 leency 3836
A51     db '5k86 (PR120, PR133)',0
4107 mario79 3837
 
7442 leency 3838
A52     db '5k86 (PR166)',0
4107 mario79 3839
 
7442 leency 3840
A53     db '5k86 (PR200)',0
4107 mario79 3841
 
7442 leency 3842
A56     db 'K6',0
4107 mario79 3843
 
7442 leency 3844
A57     db 'K6',0
4107 mario79 3845
 
7442 leency 3846
A58     db 'K6-2',0
4107 mario79 3847
 
7442 leency 3848
A59     db 'K6-III',0
4107 mario79 3849
 
7442 leency 3850
A5D     db 'K6-2+ or K6-III+',0
4107 mario79 3851
 
223 Ghost 3852
;-------------------
4107 mario79 3853
 
7442 leency 3854
At1     db 'Athlon',0
4107 mario79 3855
 
7442 leency 3856
At2     db 'Athlon',0
4107 mario79 3857
 
7442 leency 3858
At3     db 'Duron (Spitfire)',0
4107 mario79 3859
 
7442 leency 3860
At4     db 'Athlon (Thunderbird)',0
4107 mario79 3861
 
7442 leency 3862
At6     db 'AthlonXP (Palomino)',0
4107 mario79 3863
 
7442 leency 3864
At7     db 'Duron (Morgan)',0
4107 mario79 3865
 
7442 leency 3866
At8     db 'AthlonXP (Thoroughbred)',0
4107 mario79 3867
 
7442 leency 3868
At8a    db 'Duron (Applebred)',0
4107 mario79 3869
 
7442 leency 3870
Ata     db 'AthlonXP (Barton)',0
4107 mario79 3871
 
7442 leency 3872
Atat    db 'AthlonXP (Thorton)',0
4107 mario79 3873
 
223 Ghost 3874
;-------------------
6483 mat1854 3875
AthlonKuma:
4107 mario79 3876
 
6483 mat1854 3877
db 'AMD Athlon 7750 Black Edition',0
3878
 
6486 pathoswith 3879
AthlonKumalen:
6483 mat1854 3880
 
3881
AB23:
3882
 
3883
db 'Opteron 2300-series',0
3884
 
3885
AB23len:
3886
 
3887
AB83:
3888
 
3889
db 'Opteron 8300-series',0
3890
 
3891
AB83len:
3892
 
3893
AB9:
3894
db 'Phenom X4',0
3895
 
3896
AB9len:
3897
 
3898
AB8right2:
3899
 
3900
db 'Phenom X3',0
3901
 
3902
AB8right2len:
3903
 
3904
AB4:
3905
 
3906
db 'Athlon X2',0
3907
 
3908
AB4len:
3909
 
3910
AB1:
3911
 
3912
db 'Sempron',0
3913
 
3914
AB1len:
3915
 
3916
ABC2:
3917
 
3918
db 'Opteron (Shanghai) 2387',0
3919
 
3920
ABC2len:
3921
 
3922
AB6:
3923
 
3924
db 'Opteron (Magny-Cours)',0
3925
 
3926
AB6len:
3927
 
3928
ABC3:
3929
 
3930
db 'Opteron (Shanghai) 8300 series',0
3931
 
3932
ABC3len:
3933
 
3934
ABM2:
3935
 
3936
db 'Turion II ',0
3937
 
3938
ABM2len:
3939
 
3940
;---
3941
 
223 Ghost 3942
AF1:
4107 mario79 3943
 
6483 mat1854 3944
db 'Dual-core Opteron',0
4107 mario79 3945
 
223 Ghost 3946
AF1len:
4107 mario79 3947
 
223 Ghost 3948
AF3:
4107 mario79 3949
 
6483 mat1854 3950
db 'Athlon 64 (Toledo)',0
4107 mario79 3951
 
223 Ghost 3952
AF3len:
4107 mario79 3953
 
223 Ghost 3954
AF4:
4107 mario79 3955
 
6483 mat1854 3956
db 'Athlon 64 (ClawHammer)',0
4107 mario79 3957
 
223 Ghost 3958
AF4len:
4107 mario79 3959
 
223 Ghost 3960
AF5:
4107 mario79 3961
 
6483 mat1854 3962
db 'Opteron/Athlon 64 FX (SledgeHammer)',0
4107 mario79 3963
 
223 Ghost 3964
AF5len:
3965
 
4107 mario79 3966
 
223 Ghost 3967
AFC:
4107 mario79 3968
 
6483 mat1854 3969
db 'Athlon 64 (Newcastle)',0
4107 mario79 3970
 
223 Ghost 3971
AFClen:
3972
 
4107 mario79 3973
 
223 Ghost 3974
AFF:
4107 mario79 3975
 
6483 mat1854 3976
db 'Athlon 64 (Winchester)',0
4107 mario79 3977
 
223 Ghost 3978
AFFlen:
3979
 
4107 mario79 3980
 
223 Ghost 3981
AFS:
4107 mario79 3982
 
6483 mat1854 3983
db 'Athlon 64 (San Diego)',0
4107 mario79 3984
 
223 Ghost 3985
AFSlen:
3986
 
4107 mario79 3987
 
223 Ghost 3988
AFV:
4107 mario79 3989
 
6483 mat1854 3990
db 'Athlon 64 (Venice)',0
4107 mario79 3991
 
223 Ghost 3992
AFVlen:
3993
 
4107 mario79 3994
 
223 Ghost 3995
AFCs:
4107 mario79 3996
 
6483 mat1854 3997
db 'Sempron (Paris)',0
4107 mario79 3998
 
223 Ghost 3999
AFCslen:
4000
 
4107 mario79 4001
 
6483 mat1854 4002
 
223 Ghost 4003
AFCsp:
4107 mario79 4004
 
6483 mat1854 4005
db 'Sempron (Palermo)',0
4107 mario79 4006
 
223 Ghost 4007
AFCsplen:
4008
 
4107 mario79 4009
 
6483 mat1854 4010
 
223 Ghost 4011
;---------Cyrix
4107 mario79 4012
 
223 Ghost 4013
C52:
4107 mario79 4014
 
6483 mat1854 4015
db '6x86 M1',0
4107 mario79 4016
 
223 Ghost 4017
C52len:
4107 mario79 4018
 
223 Ghost 4019
C54:
4107 mario79 4020
 
6483 mat1854 4021
db 'MediaGX',0
4107 mario79 4022
 
223 Ghost 4023
C54len:
4107 mario79 4024
 
223 Ghost 4025
C60:
4107 mario79 4026
 
6483 mat1854 4027
db '6x86MX M2',0
4107 mario79 4028
 
223 Ghost 4029
C60len:
4107 mario79 4030
 
223 Ghost 4031
C65:
4107 mario79 4032
 
6483 mat1854 4033
db 'C3 (Cyrix M2)',0 ;?
4107 mario79 4034
 
223 Ghost 4035
C65len:
4107 mario79 4036
 
223 Ghost 4037
;--------IDT
4107 mario79 4038
 
223 Ghost 4039
V54:
4107 mario79 4040
 
6483 mat1854 4041
db 'WinChip C6',0
4107 mario79 4042
 
223 Ghost 4043
V54len:
4107 mario79 4044
 
223 Ghost 4045
V58:
4107 mario79 4046
 
6483 mat1854 4047
db 'WinChip 2',0
4107 mario79 4048
 
223 Ghost 4049
V58len:
4107 mario79 4050
 
223 Ghost 4051
V59:
4107 mario79 4052
 
6483 mat1854 4053
db 'WinChip 3',0
4107 mario79 4054
 
223 Ghost 4055
V59len:
4107 mario79 4056
 
223 Ghost 4057
;-------VIA
4107 mario79 4058
 
223 Ghost 4059
V66:
4107 mario79 4060
 
6483 mat1854 4061
db 'C3 (Samuel)',0  ; Joshua is unreleased 065
4107 mario79 4062
 
223 Ghost 4063
V66len:
4107 mario79 4064
 
223 Ghost 4065
V67:
4107 mario79 4066
 
6483 mat1854 4067
db 'C3 (Samuel2/Ezra)',0 ; ?
4107 mario79 4068
 
223 Ghost 4069
V67len:
4107 mario79 4070
 
223 Ghost 4071
V68:
4107 mario79 4072
 
6483 mat1854 4073
db 'C3 (Ezra-T/Eden)',0 ;?
4107 mario79 4074
 
223 Ghost 4075
V68len:
4107 mario79 4076
 
223 Ghost 4077
V69:
4107 mario79 4078
 
6483 mat1854 4079
db 'C3 (Antaur/Nehemiah)',0 ;?
4107 mario79 4080
 
223 Ghost 4081
V69len:
4107 mario79 4082
 
223 Ghost 4083
VA:
4107 mario79 4084
 
6483 mat1854 4085
db 'C7 (Esther)',0 ;?
4107 mario79 4086
 
223 Ghost 4087
VAlen:
4107 mario79 4088
 
223 Ghost 4089
;---------Transmeta
4107 mario79 4090
 
223 Ghost 4091
T5:
4107 mario79 4092
 
6483 mat1854 4093
db 'Crusoe',0 ;
4107 mario79 4094
 
223 Ghost 4095
T5len:
4107 mario79 4096
 
223 Ghost 4097
TF:
4107 mario79 4098
 
6483 mat1854 4099
db 'Efficeon',0 ;
4107 mario79 4100
 
223 Ghost 4101
TFlen:
4107 mario79 4102
 
223 Ghost 4103
;---------
4107 mario79 4104
 
223 Ghost 4105
NG:
4107 mario79 4106
 
7442 leency 4107
        db 'Next generation CPU',0
4107 mario79 4108
 
223 Ghost 4109
NGlen:
4110
 
4107 mario79 4111
 
7442 leency 4112
athloncoef      db      110, 115, 120, 125, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 120
4107 mario79 4113
 
7442 leency 4114
                db      190, 120, 200, 130, 135, 140, 210, 150, 220, 160, 165, 170, 180, 230, 240
4107 mario79 4115
 
7442 leency 4116
athlonmcoef:    db      110, 115, 120, 125, 50, 55, 60, 65,  70, 75, 80, 85, 90, 95, 100, 105
4107 mario79 4117
 
7442 leency 4118
                db      30, 190, 40, 200, 130, 135, 14, 210, 150, 220, 160, 165, 170, 230, 240
4107 mario79 4119
 
7442 leency 4120
athloncoef3     db      45, 50, 40, 55, 25, 30, 60, 35
4107 mario79 4121
 
7442 leency 4122
p4coef          db      160, 170, 180, 190, 200, 210, 220, 230, 80, 90, 100, 110, 120, 130, 140, 150    ; Pentium 4 (Willamete)
3587 fedesco 4123
 
7442 leency 4124
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
4107 mario79 4125
 
7442 leency 4126
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
223 Ghost 4127
 
6483 mat1854 4128
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4129
I_END:
4107 mario79 4130
 
7442 leency 4131
img_area:          ; image is going to be unpacked to here
4132
rb 201*49*3+8      ; image resolution (bits to reserve)
4107 mario79 4133
 
7442 leency 4134
img_area2:         ; image is going to be unpacked to here
4135
rb 93*24*3+8       ; image resolution (bits to reserve)
4107 mario79 4136
 
7442 leency 4137
img_area3:         ; image is going to be unpacked to here
4138
rb 93*24*3+8       ; image resolution (bits to reserve)
4107 mario79 4139
 
6483 mat1854 4140
gif_hash_area:
7442 leency 4141
rd 4096+1          ;hash area size for unpacking gif
223 Ghost 4142
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4107 mario79 4143
 
7442 leency 4144
system_dir_ProcLib      db '/sys/lib/proc_lib.obj',0
4107 mario79 4145
 
7442 leency 4146
err_message_found_lib2  db 'proc_lib.obj - Not found!',0
4107 mario79 4147
 
7442 leency 4148
err_message_import2     db 'proc_lib.obj - Wrong import!',0
4107 mario79 4149
 
6483 mat1854 4150
head_f_i:
7442 leency 4151
head_f_l        db 'error',0
6483 mat1854 4152
;---------------------------------------------------------------------
4153
l_libs_start:
223 Ghost 4154
 
6483 mat1854 4155
library02  l_libs system_dir_ProcLib+9, path, library_path, system_dir_ProcLib, \
4156
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
223 Ghost 4157
 
6483 mat1854 4158
end_l_libs:
4159
;---------------------------------------------------------------------
4160
align 4
4161
ProcLib_import:
7442 leency 4162
OpenDialog_Init         dd aOpenDialog_Init
4163
OpenDialog_Start        dd aOpenDialog_Start
6483 mat1854 4164
;OpenDialog__Version    dd aOpenDialog_Version
7442 leency 4165
        dd      0
4166
        dd      0
4167
aOpenDialog_Init        db 'OpenDialog_init',0
4168
aOpenDialog_Start       db 'OpenDialog_start',0
6483 mat1854 4169
;aOpenDialog_Version    db 'Version_OpenDialog',0
4170
;---------------------------------------------------------------------
4171
align 4
4172
OpenDialog_data:
7442 leency 4173
.type                   dd 0
4174
.procinfo               dd Proc_Info    ;+4
4175
.com_area_name          dd communication_area_name      ;+8
4176
.com_area               dd 0    ;+12
4177
.opendir_pach           dd temp_dir_pach        ;+16
4178
.dir_default_pach       dd communication_area_default_pach      ;+20
4179
.start_path             dd open_dialog_path     ;+24
4180
.draw_window            dd draw_window  ;+28
4181
.status                 dd 0    ;+32
4182
.openfile_pach          dd file_name    ;+36
4183
.filename_area          dd filename_area        ;+40
4184
.filter_area            dd Filter
6483 mat1854 4185
.x:
7442 leency 4186
.x_size                 dw 420 ;+48 ; Window X size
4187
.x_start                dw 10 ;+50 ; Window X position
6483 mat1854 4188
.y:
7442 leency 4189
.y_size                 dw 320 ;+52 ; Window y size
4190
.y_start                dw 10 ;+54 ; Window Y position
4107 mario79 4191
 
6483 mat1854 4192
communication_area_name:
7442 leency 4193
        db 'FFFFFFFF_open_dialog',0
6483 mat1854 4194
open_dialog_path:
7442 leency 4195
        db '/sys/File Managers/opendial',0
6483 mat1854 4196
communication_area_default_pach:
7442 leency 4197
        db '/sys',0
6483 mat1854 4198
Filter:
7442 leency 4199
dd      Filter.end - Filter.1
6483 mat1854 4200
.1:
7442 leency 4201
db      'TXT',0
4202
db      'LOG',0
6483 mat1854 4203
.end:
7442 leency 4204
dd      0
4107 mario79 4205
 
6483 mat1854 4206
file_default_path:
7442 leency 4207
        db '/sys/'
6483 mat1854 4208
start_temp_file_name:
7442 leency 4209
        db 'CPUID.txt',0
4210
btn_more_cap:
4211
        db 'Details', 0
4212
btn_save_cap:
4213
        db 'Save', 0
6483 mat1854 4214
;---------------------------------------------------------------------
7442 leency 4215
align   4
6483 mat1854 4216
fileinfo:
7442 leency 4217
.subfunction    dd 2
4218
.Offset         dd 0
4219
.Offset_1       dd 0
4220
.size           dd 4096
4221
.return         dd 0
4222
                db 0
4223
.name:          dd file_name
6483 mat1854 4224
 
7442 leency 4225
align 4
4226
sc system_colors
6483 mat1854 4227
 
7442 leency 4228
store_text_area_start   dd ?
4229
store_text_area_end     dd ?
4230
store_text_size         dd ?
4231
 
6483 mat1854 4232
;---------------------------------------------------------------------
4233
library_path:
7442 leency 4234
        rb 4096
6483 mat1854 4235
;---------------------------------------------------------------------
4236
path:
7442 leency 4237
        rb 4096
6483 mat1854 4238
;---------------------------------------------------------------------
4239
temp_dir_pach:
7442 leency 4240
        rb 4096
6483 mat1854 4241
;---------------------------------------------------------------------
4242
file_name:
7442 leency 4243
        rb 4096
6483 mat1854 4244
;---------------------------------------------------------------------
4245
file_name_1:
7442 leency 4246
        rb 4096
6483 mat1854 4247
;---------------------------------------------------------------------
4248
filename_area:
7442 leency 4249
        rb 256
6483 mat1854 4250
;---------------------------------------------------------------------
7442 leency 4251
        rb 4096
6483 mat1854 4252
stacktop:
4253
;---------------------------------------------------------------------
7442 leency 4254
Proc_Info       process_information
4107 mario79 4255
; RSA test data
532 diamond 4256
align 4
4257
  num1 rd 40
4258
  num2 rd 40
4259
  num3 rd 40
4260
  iter rd 1
4261
  openkey rd 1
4262
 
4107 mario79 4263
 
552 diamond 4264
IncludeUGlobals
532 diamond 4265
 
6608 pathoswith 4266
nocpuid db ?
451 heavyiron 4267
ost dd ?
4268
sot dd ?
4269
f dd ?
4270
m dd ?
4271
s dd ?
4272
t dd ?
4273
 
4274
ef dd ?
4275
em dd ?
4276
 
4277
multiplier dd ?
4278
multa dd ?
4279
multb dd ?
4280
smallvendor dd ?
4281
L1d  dd ?
4282
L1i  dd ?
4283
L2   dd ?
4284
L3   dd ?
4285
micron dd ?
6608 pathoswith 4286
brand  dd ?
6483 mat1854 4287
newpc  dd ?
6608 pathoswith 4288
nomultiplier dd ?
451 heavyiron 4289
ram_size_a dd ?
4290
ram_size_t dd ?
4291
 
4292
stdc dd ?
4293
extc dd ?
4294
 
4295
FRS dd ?
4296
freqsel db ?
532 diamond 4297
sse3sup db ?
6483 mat1854 4298
sse41sup dd ?
4299
sse42sup dd ?
4300
sse5sup dd ?
4107 mario79 4301
 
451 heavyiron 4302
freqbb dd ?
4303
freqll dd ?
4304
 
4305
wayli dd ?
4306
lineli dd ?
4307
 
4308
wayld dd ?
4309
lineld dd ?
4310
 
4311
wayl2 dd ?
4312
linel2 dd ?
4313
 
4314
wayl3 dd ?
4315
linel3 dd ?
6483 mat1854 4316
che db ? ; numbers of calls for Intel caches detection
6486 pathoswith 4317
cname dd ?
4318
codeN dd ?
4107 mario79 4319
 
451 heavyiron 4320
myname:
4321
   rb 48
4107 mario79 4322
 
451 heavyiron 4323
mynamelen:
6608 pathoswith 4324
   db ?
451 heavyiron 4325
 
223 Ghost 4326
align 4
4327
  thread2_stack_area rb 64
4328
  thread2_esp = $
6483 mat1854 4329
U_END: