Subversion Repositories Kolibri OS

Rev

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

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