Subversion Repositories Kolibri OS

Rev

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