Subversion Repositories Kolibri OS

Rev

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