Subversion Repositories Kolibri OS

Rev

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

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