Subversion Repositories Kolibri OS

Rev

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

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