Subversion Repositories Kolibri OS

Rev

Rev 3587 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3587 Rev 4107
1
;******************************************************************************
1
;******************************************************************************
2
; project name:    CPUID                                                      *
2
; project name:  CPUID                                                        *
3
; target platform: KolibriOS, x86 (IA-32), x86-64 achitectures                *
3
; platform:      KolibriOS, x86 (IA-32), x86-64 achitectures                  *
4
; compiler:        flat assembler 1.67.21                                     *
4
; compiler:      flat assembler 1.70.03                                       *
5
; version:         2.21                                                        *
5
; version:       2.28                                                         *
6
; last update:     18th May 2007         1st 2nd 3rd 4th 5th 6th 7th 8th 9th  *
6
; last update:   23rd October 2013                                            *
7
; maintained by:   Sergey Kuzmin aka Wildwest                                 *
7
; maintained by: Sergey Kuzmin aka Wildwest                                   *
8
; e-mail:          kuzmin_serg@list.ru                                        *
8
; e-mail:        kuzmin_serg@list.ru                                          *
9
; site:            http://coolthemes.narod.ru/files.html                      *
9
; site:          http://coolthemes.narod.ru/files.html                        *
10
; license:         Copyright 2004-2007 Sergey Kuzmin and co-authors           *
10
; license:       Copyright 2004-2013 Sergey Kuzmin and co-authors             *
11
;                  Rules:                                                     *
11
;                Rules:                                                       *
12
;                  1)you can use pieces of code in your project, but should   *
12
;                1)you can use pieces of code in your project, but should     *
13
;                    mention the original author (include copyright notice);  *
13
;                mention the original author (include copyright notice);      *
14
;                  2)if you modify CPUID (improve, port, translate, etc) send *
14
;                2)if you modify CPUID (improve, port, translate, etc) send   *
15
;                    your changes to the maintainer or make about post changes*
15
;                your changes to the maintainer or make about post changes    *
16
;                    at forum  http://meos.sysbin.com                         *
16
;                at forum  http://board.kolibrios.org/viewtopic.php?f=42&t=594*
17
;-----------------------------------------------------------------------------*
17
;-----------------------------------------------------------------------------*
18
; English comments                                                            *
18
; English comments                                                            *
19
;------------------------------------------------------------------------------
19
;------------------------------------------------------------------------------
20
use32
20
use32
21
  org	 0x0
21
  org	 0x0
22
  db	 'MENUET01'
22
  db	 'MENUET01'
23
  dd	 0x01
23
  dd	 0x01
24
  dd	 START
24
  dd	 START
25
  dd	 I_END
25
  dd	 I_END
26
  dd U_END+4096
26
  dd U_END+4096
27
  dd U_END+4096
27
  dd U_END+4096
28
  dd	 0x0
28
  dd	 0x0
29
  dd	 0x0
29
  dd	 0x0
30
 
30
 
31
include 'lang.inc'				; language support
31
include 'lang.inc'                              ; language support
32
 
-
 
33
include '..\..\..\macros.inc' ; useful macroses
32
include '..\..\..\macros.inc' ; useful macroses
34
include 'draw.inc'
33
include 'draw.inc'
35
include 'brand.inc'           ;Brand ID decoding
34
include 'brand.inc'           ;Brand ID decoding
36
include 'caches.inc'          ;(L1 and L2 cashes decoding for Intel)
35
include 'caches.inc'          ;(L1 and L2 cashes decoding for Intel)
37
include 'multipli.inc'        ;(multiplier decoding)
36
include 'multipli.inc'        ;(multiplier decoding)
38
include 'features.inc'        ;(features decoding)
37
include 'features.inc'        ;(features decoding)
39
 
38
 
40
include 'rsatest.inc'
39
include 'rsatest.inc'
41
include 'variable.inc'
40
include 'variable.inc'
42
 
41
 
43
 
42
 
44
 
43
 
45
START:			;   LET'S GO!!!
44
START:			;   LET'S GO!!!
46
;------------
45
;------------
47
CYCLES:
46
CYCLES:
48
;    CPU speed
47
;    CPU speed
49
    mov eax, 18
48
    mov eax, 18
50
    mov ebx,5
49
    mov ebx,5
51
    mcall
50
    mcall
52
    mov [total1],eax  ;in Hz,  example 1600490000
51
    mov [total1],eax  ;in Hz,  example 1600490000
53
    xor  edx,edx
52
    xor  edx,edx
54
    mov  ebx,1000000
53
    mov  ebx,1000000
55
    div  ebx
54
    div  ebx
56
    mov [total], eax  ; in Mhz,  example 1600
55
    mov [total], eax  ; in Mhz,  example 1600
57
    xor edx, edx
56
    xor edx, edx
58
    mov eax, [total1]
57
    mov eax, [total1]
59
    mov ebx, 10000
58
    mov ebx, 10000
60
    div ebx
59
    div ebx
61
    mov [ost], eax    ; example 160049
60
    mov [ost], eax    ; example 160049
62
    mov ecx, [total]
61
    mov ecx, [total]
63
    imul ecx, 100
62
    imul ecx, 100
64
    neg  ecx
63
    neg  ecx
65
    add  ecx, eax
64
    add  ecx, eax
66
    mov [sot], ecx    ; example 49
65
    mov [sot], ecx    ; example 49
67
;------------
66
;------------
68
cpu:		      ;is CPUID supported?
67
cpu:		      ;is CPUID supported?
69
  pushfd	      ;push original EFLAGS
68
  pushfd	      ;push original EFLAGS
70
  pop eax	      ;get original EFLAGS
69
  pop eax	      ;get original EFLAGS
71
  mov ebx, eax	      ;save original EFLAGS
70
  mov ebx, eax	      ;save original EFLAGS
72
  xor eax, 00200000h  ;flip 21th bit in EFLAGS
71
  xor eax, 00200000h  ;flip 21th bit in EFLAGS
73
  push eax	      ;save new EFLAGS value on stack
72
  push eax	      ;save new EFLAGS value on stack
74
  popfd 	      ;replace current EFLAGS value
73
  popfd 	      ;replace current EFLAGS value
75
  pushfd	      ;get new EFLAGS
74
  pushfd	      ;get new EFLAGS
76
  pop eax	      ;store new EFLAGS in EAX
75
  pop eax	      ;store new EFLAGS in EAX
77
  cmp eax, ebx	      ;compare values of 21th bit
76
  cmp eax, ebx	      ;compare values of 21th bit
78
  jz NO_CPUID	      ;CPUID isn't supported
77
  jz NO_CPUID	      ;CPUID isn't supported
79
;------------
78
;------------
80
CPUNAME:	      ; VENDOR
79
CPUNAME:	      ; VENDOR
81
    mov   eax,0       ; eax=0
80
    mov   eax,0       ; eax=0
82
    cpuid
81
    cpuid
83
 
82
 
84
    mov [stdc], eax   ; number of calls
83
    mov [stdc], eax   ; number of calls
85
    mov   [cpuname+ 12],ebx
84
    mov   [cpuname+ 12],ebx
86
    mov   [cpuname+ 16],edx
85
    mov   [cpuname+ 16],edx
87
    mov   [cpuname+ 20],ecx
86
    mov   [cpuname+ 20],ecx
88
    mov   [smallvendor],ecx
87
    mov   [smallvendor],ecx
89
 
88
 
90
; for various vendors we should later use different methods
89
; for various vendors we should later use different methods
91
 
90
 
92
;Decoding cache L1 and L2 for Intel
91
;Decoding cache L1 and L2 for Intel
93
 
92
 
94
  cmp ecx, 'ntel'
93
  cmp ecx, 'ntel'
95
  jne cpu1     ;is not Intel
94
  jne cpu1     ;is not Intel
96
 
95
 
97
;Starting L1, L2, L3 caches detection (Intel made it VERY HARD)
96
;Starting L1, L2, L3 caches detection (Intel made it VERY HARD)
98
 
97
 
99
mov eax, 2
98
mov eax, 2
100
cpuid
99
cpuid
101
 
100
 
102
mov [che], al	     ; number of calls
101
mov [che], al	     ; number of calls
103
multik:
102
multik:
104
 
103
 
105
.eaxl:
104
.eaxl:
106
test  eax, eax       ;    Test bit 31
105
test  eax, eax       ;    Test bit 31
107
js    .ebxl	     ;    <> 0 =>invalid values
106
js    .ebxl	     ;    <> 0 =>invalid values
108
call decodecache24
107
call decodecache24
109
.ebxl:
108
.ebxl:
110
test  ebx, ebx
109
test  ebx, ebx
111
js    .ecxl
110
js    .ecxl
112
mov eax, ebx
111
mov eax, ebx
113
call decodecache32
112
call decodecache32
114
.ecxl:
113
.ecxl:
115
test  ecx, ecx
114
test  ecx, ecx
116
js    .edxl
115
js    .edxl
117
mov eax, ecx
116
mov eax, ecx
118
call decodecache32
117
call decodecache32
119
.edxl:
118
.edxl:
120
test  edx, edx
119
test  edx, edx
121
js    cpu1
120
js    cpu1
122
mov eax, edx
121
mov eax, edx
123
call decodecache32
122
call decodecache32
124
 
123
 
125
dec [che]    ; we made all calls
124
dec [che]    ; we made all calls
126
je cpu1
125
je cpu1
127
 
126
 
128
multi: ; not yet
127
multi: ; not yet
129
 
128
 
130
mov eax, 2  ; so we made call again
129
mov eax, 2  ; so we made call again
131
cpuid
130
cpuid
132
 
131
 
133
jmp multik
132
jmp multik
134
 
133
 
135
;  FAMILY MODEL STEPPING
134
;  FAMILY MODEL STEPPING
136
cpu1:
135
cpu1:
137
    xor eax, eax
136
    xor eax, eax
138
    inc eax	  ; eax=1
137
    inc eax	  ; eax=1
139
    cpuid
138
    cpuid
140
 
139
 
141
mov ecx, eax
140
mov ecx, eax
142
shr ecx,8	  ;   shift it to the correct position
141
shr ecx,8	  ;   shift it to the correct position
143
and ecx,0000000Fh ;   get CPU family
142
and ecx,0000000Fh ;   get CPU family
144
mov dword[f],ecx
143
mov dword[f],ecx
145
 
144
 
146
mov ecx, eax
145
mov ecx, eax
147
shr ecx,4
146
shr ecx,4
148
and ecx,0000000Fh ;    get CPU model
147
and ecx,0000000Fh ;    get CPU model
149
mov dword[m],ecx
148
mov dword[m],ecx
150
 
149
 
151
mov ecx, eax
150
mov ecx, eax
152
and ecx,0000000Fh ;   get CPU stepping
151
and ecx,0000000Fh ;   get CPU stepping
153
mov dword[s],ecx
152
mov dword[s],ecx
154
 
153
 
155
;-
154
;-
156
mov ecx, eax	  ; get Type
155
mov ecx, eax	  ; get Type
157
shl ecx, 18
156
shl ecx, 18
158
shr ecx,30
157
shr ecx,30
159
;and ecx, 0000000Fh ; only two lower bits can be nonzero
158
;and ecx, 0000000Fh ; only two lower bits can be nonzero
160
mov dword[t], ecx
159
mov dword[t], ecx
161
;=======================================================
160
;=======================================================
162
 
161
 
163
cmp dword[smallvendor], 'cAMD'
162
cmp dword[smallvendor], 'cAMD'
164
jz maybe_athlon
163
jz maybe_athlon
165
cmp dword[smallvendor], 'ntel'
164
cmp dword[smallvendor], 'ntel'
166
jnz no_full   ; if not AMD or Intel
165
jnz no_full   ; if not AMD or Intel
167
 
166
 
168
detect_it:
167
;detect_it:
169
cmp [f], 0Fh
168
;cmp [f], 0Fh
170
jne no_full
169
;jne no_full   fixed calculation of extended model for Intel
171
 
170
 
172
full:
171
full:
173
 
172
 
174
mov ecx, eax	      ; get Extended model
173
mov ecx, eax	      ; get Extended model
175
shr ecx,16	      ;shift it to the correct position
174
shr ecx,16	      ;shift it to the correct position
176
and ecx, 0000000Fh
175
and ecx, 0000000Fh 
177
shl ecx, 4
176
shl ecx, 4
178
add ecx, [m]
177
add ecx, [m]
179
mov dword[em],ecx     ;  effective    model
178
mov dword[em],ecx     ;  effective    model
180
 
179
 
181
mov ecx, eax	      ; get Extended family
180
mov ecx, eax	      ; get Extended family
182
shr ecx, 20	      ;shift it to the correct position
181
shr ecx, 20	      ;shift it to the correct position
183
and ecx, 000000FFh
182
and ecx, 000000FFh
184
add ecx, [f]
183
add ecx, [f]
185
mov dword[ef],ecx     ; effective family
184
mov dword[ef],ecx     ; effective family
186
 
185
 
187
 
186
 
188
jmp fut
187
jmp fut
189
 
188
 
190
no_full:
189
no_full:
191
 
190
 
192
mov ecx, [m]
191
mov ecx, [m]
193
mov [em], ecx
192
mov [em], ecx
194
 
193
 
195
mov ecx, [f]
194
mov ecx, [f]
196
mov [ef], ecx
195
mov [ef], ecx
197
 
196
 
198
jmp fut
197
jmp fut
199
 
198
 
200
maybe_athlon:
199
maybe_athlon:
201
mov eax, 0x80000001		  ; CPUID ext. function 0x80000001
200
mov eax, 0x80000001		  ; CPUID ext. function 0x80000001
202
cpuid
201
cpuid				    
203
mov ecx, eax
202
mov ecx, eax
204
shr ecx,8	  ;   shift it to the correct position
203
shr ecx,8	  ;   shift it to the correct position
205
and ecx,0000000Fh ;   get CPU family
204
and ecx,0000000Fh ;   get CPU family
206
mov dword[ef],ecx
205
mov dword[ef],ecx
207
 
206
 
208
mov ecx, eax
207
mov ecx, eax
209
shr ecx,4
208
shr ecx,4
210
and ecx,0000000Fh ;    get CPU model
209
and ecx,0000000Fh ;    get CPU model
211
mov dword[em],ecx
210
mov dword[em],ecx
212
 
211
 
213
fut:
212
fut:
214
 
213
 
215
call decode_sse3
214
call decode_sse3
216
;-
215
;-
217
    call decode_extended
216
    call decode_extended
218
 
217
 
219
mov  dword [myname], $612F6E
218
mov  dword [myname], $612F6E
220
 
219
 
221
        cmp     [extc], $80000003
220
        cmp     [extc], $80000003
222
        jbe     .noname
221
        jbe     .noname
223
 
222
 
224
    mov       eax,$80000002
223
    mov       eax,$80000002
225
    cpuid
224
    cpuid
226
    mov   [myname],eax
225
    mov   [myname],eax
227
    mov   [myname+4],ebx
226
    mov   [myname+4],ebx
228
    mov   [myname+8],ecx
227
    mov   [myname+8],ecx
229
    mov   [myname+12],edx
228
    mov   [myname+12],edx
230
    mov   eax,$80000003
229
    mov   eax,$80000003
231
    cpuid
230
    cpuid
232
    mov   [myname+16],eax
231
    mov   [myname+16],eax
233
    mov   [myname+20],ebx
232
    mov   [myname+20],ebx
234
    mov   [myname+24],ecx
233
    mov   [myname+24],ecx
235
    mov   [myname+28],edx
234
    mov   [myname+28],edx
236
    mov   eax,$80000004
235
    mov   eax,$80000004
237
    cpuid
236
    cpuid
238
    mov   [myname+32],eax
237
    mov   [myname+32],eax
239
    mov   [myname+36],ebx
238
    mov   [myname+36],ebx
240
    mov   [myname+40],ecx
239
    mov   [myname+40],ecx
241
    mov   [myname+44],edx
240
    mov   [myname+44],edx
242
 
241
 
243
.noname:
242
.noname:
244
red:
243
red:			
245
 
244
 
246
;mov byte [multiplier], 115;     ; for testing
245
;mov byte [multiplier], 115;     ; for testing
247
 
246
 
248
call multipl			      ; get multiplier
247
call multipl			      ; get multiplier 
249
mov byte [multiplier], cl
248
mov byte [multiplier], cl
250
 
249
 
251
mov   dword [freqbb], 0
250
mov   dword [freqbb], 0
252
mov   dword [freqll], 0
251
mov   dword [freqll], 0 
253
 
252
 
254
mov   ebx, dword [multiplier]
253
mov   ebx, dword [multiplier]
255
test  ebx, ebx
254
test  ebx, ebx
256
jz output
255
jz output
257
 
256
 
258
calc:
257
calc:
259
 
258
 
260
mov eax,dword [ost]   ; example 166474
259
mov eax,dword [ost]   ; example 166474
261
imul eax, 10	      ; example 1664740
260
imul eax, 10	      ; example 1664740
262
xor edx,edx
261
xor edx,edx
263
div ebx               ; get system clock (if multiplier detected)
262
div ebx               ; get system clock (if multiplier detected)
264
 
263
 
265
xor edx, edx                    ; example eax=16647
264
xor edx, edx                    ; example eax=16647
266
mov ebx, 100
265
mov ebx, 100
267
div ebx
266
div ebx
268
mov dword [freqbb], eax         ; example 166
267
mov dword [freqbb], eax         ; example 166
269
mov dword [freqll], edx         ; example 47
268
mov dword [freqll], edx         ; example 47
270
 
269
 
271
xor edx, edx
270
xor edx, edx
272
    mov eax,dword[multiplier]  ; example 115
271
    mov eax,dword[multiplier]  ; example 115
273
    mov  ebx,10
272
    mov  ebx,10
274
    div  ebx
273
    div  ebx
275
    mov dword[multb], eax  ;   example 11
274
    mov dword[multb], eax  ;   example 11
276
    mov dword[multa], edx    ; example 5
275
    mov dword[multa], edx    ; example 5
277
 
276
 
278
output:
277
output:
279
 
278
 
280
   call draw_window    ;     Draw window
279
   call draw_window    ;     Draw window
281
 
280
 
282
typedetect:
281
typedetect:
283
        mov     edx, t1
282
        mov     edx, t1
284
        cmp     [t], 00b
283
        cmp     [t], 00b
285
        jz      @f
284
        jz      @f
286
        mov     edx, t2
285
        mov     edx, t2
287
        cmp     [t], 01b
286
        cmp     [t], 01b
288
        jz      @f
287
        jz      @f
289
        mov     edx, t3
288
        mov     edx, t3
290
        cmp     [t], 11b
289
        cmp     [t], 11b
291
        jz      @f
290
        jz      @f
292
        mov     edx, t4
291
        mov     edx, t4
293
@@:
292
@@:
294
        mov     ebx, 290*65536 + 250
293
        mov     ebx, 290*65536 + 250
295
        mov     ecx, 0x80000000
294
        mov     ecx, 0x80000000
296
        mcall   4
295
        mcall   4
297
 
296
 
298
PROCCORE:    ;   Who are you?
297
PROCCORE:    ;   Who are you?
299
; Intel - "GenuineIntel"           +
298
; Intel - "GenuineIntel"           +
300
; AMD - "AuthenticAMD"             +
299
; AMD - "AuthenticAMD"             +
301
; Cyrix - "CyrixInstead"           +
300
; Cyrix - "CyrixInstead"           +
302
; UMC - "UMC UMC UMC "
301
; UMC - "UMC UMC UMC "
303
; NexGen - "NexGenDriven"
302
; NexGen - "NexGenDriven"
304
; Centaur - "CentaurHauls"         +
303
; Centaur - "CentaurHauls"         +
305
; Rise Technology - "RiseRiseRise"
304
; Rise Technology - "RiseRiseRise"
306
; SiS - "SiS SiS SiS "
305
; SiS - "SiS SiS SiS "
307
; Transmeta - "GenuineTMx86"       +
306
; Transmeta - "GenuineTMx86"       +
308
; National Semiconductor - "Geode by NSC"
307
; National Semiconductor - "Geode by NSC"
309
 
-
 
-
 
308
; Vortex - "Vortex86 SoC"       + initial support
310
  cmp dword[smallvendor], 'ntel'
309
  cmp dword[smallvendor], 'ntel'
311
  jz Intel
310
  jz Intel
312
  cmp dword[smallvendor], 'cAMD'
311
  cmp dword[smallvendor], 'cAMD'
313
  jz AMD
312
  jz AMD
314
  cmp dword[smallvendor], 'tead'
313
  cmp dword[smallvendor], 'tead'
315
  jz Cyrix
314
  jz Cyrix
316
  cmp dword[smallvendor], 'auls'
315
  cmp dword[smallvendor], 'auls'
317
  jz Centaur
316
  jz Centaur
318
  cmp dword[smallvendor], 'Mx86'
317
  cmp dword[smallvendor], 'Mx86'
319
  jz Transmeta
318
  jz Transmeta
-
 
319
  cmp dword[smallvendor], ' SoC'
-
 
320
  jz Vortex
320
 
321
 
321
; cmp ecx, 'UMC '
322
; cmp ecx, 'UMC '
322
; jz .UMC
323
; jz .UMC
323
; cmp ecx, 'iven'
324
; cmp ecx, 'iven'
324
; jz .NexGen
325
; jz .NexGen
325
; cmp ecx, 'Rise'
326
; cmp ecx, 'Rise'
326
;  jz .Rise
327
;  jz .Rise
327
; cmp ecx, 'SiS '
328
; cmp ecx, 'SiS '
328
; jz .SiS
329
; jz .SiS
329
; cmp ecx, ' NSC'
330
; cmp ecx, ' NSC'
330
; jz .NSC
331
; jz .NSC
331
; jmp Other   ;  I don't know what to do with you...
332
; jmp Other   ;  I don't know what to do with you...
332
Other:
333
Other:
333
Text 75,70,0x00000000,other, otherlen-other
334
Text 75,70,0x00000000,other, otherlen-other
334
    jmp MMXtest
335
    jmp MMXtest
335
;-------------------------
336
;-------------------------
336
 
337
 
337
AMD:
338
AMD:
338
 
339
 
339
Text 15, 190,0x00000000,cache, cachelen-cache
340
Text 15, 190,0x00000000,cache, cachelen-cache
340
 
341
 
341
Text 75,70,,AMDn, AMDnlen-AMDn
342
Text 75,70,,AMDn, AMDnlen-AMDn
342
 
343
 
343
	mov	esi, amd
344
	mov	esi, amd
344
	call	load_gif
345
	call	load_gif
345
PutImage 135,107,201,49,img_area+8
346
PutImage 135,107,201,49,img_area+8
346
;         place   size
347
;         place   size
347
 
348
 
348
; Relax, man. AMD made PRETTY SIMPLE cache detection routine
349
; Relax, man. AMD made PRETTY SIMPLE cache detection routine
349
;CACHE1:
350
;CACHE1:
350
mov eax, 80000005h
351
mov eax, 80000005h
351
    cpuid
352
    cpuid
352
 
353
 
353
movzx eax, cl
354
movzx eax, cl
354
mov [lineld], eax
355
mov [lineld], eax
355
 
356
 
356
mov eax, ecx
357
mov eax, ecx
357
;shl eax, 8
358
;shl eax, 8
358
;shr eax, 24
359
;shr eax, 24
359
 
360
 
360
and eax,00FF0000h
361
and eax,00FF0000h
361
shr eax, 16
362
shr eax, 16
362
mov [wayld], eax
363
mov [wayld], eax
363
 
364
 
364
shr ecx, 24
365
shr ecx, 24
365
mov [L1d], ecx
366
mov [L1d], ecx
366
 
367
 
367
 
368
 
368
movzx eax, dl
369
movzx eax, dl
369
mov [lineli], eax
370
mov [lineli], eax
370
 
371
 
371
mov eax, edx
372
mov eax, edx
372
;shl eax, 8
373
;shl eax, 8
373
;shr eax, 24
374
;shr eax, 24
374
 
375
 
375
and eax,00FF0000h
376
and eax,00FF0000h
376
shr eax, 16
377
shr eax, 16
377
mov [wayli], eax
378
mov [wayli], eax
378
 
379
 
379
 
380
 
380
shr edx, 24
381
shr edx, 24
381
mov [L1i], edx
382
mov [L1i], edx
382
 
383
 
383
 
384
 
384
;CACHE2:
385
;CACHE2:
385
mov eax, 80000006h
386
mov eax, 80000006h
386
    cpuid
387
    cpuid
387
 
388
 
388
movzx eax, cl
389
movzx eax, cl
389
mov dword[linel2], eax
390
mov dword[linel2], eax
390
 
391
 
391
push ecx
392
push ecx
392
shr ecx, 12+1
393
shr ecx, 12+1
393
and ecx, 0x7
394
and ecx, 0x7
394
mov eax, 1
395
mov eax, 1
395
shl eax, cl
396
shl eax, cl
396
mov dword [wayl2], eax
397
mov dword [wayl2], eax
397
pop ecx
398
pop ecx
398
 
399
 
399
shr ecx, 16
400
shr ecx, 16
400
mov [L2],ecx
401
mov [L2],ecx
401
 
402
 
402
    cmp [f], $5
403
    cmp [f], $5
403
    jz .fiv
404
    jz .fiv
404
    cmp [f], $6
405
    cmp [f], $6
405
    jz .si
406
    jz .si
406
    cmp [f], $F
407
    cmp [f], $F
407
    jz fif
408
    jz fif
408
.fiv:	 ;     Family=5
409
.fiv:	 ;     Family=5
409
        mov     [micron], 50
410
        mov     [micron], 50
410
        mov     edx, A50
411
        mov     edx, A50
411
        cmp     [m], $0
412
        cmp     [m], $0
412
        jz      @f
413
        jz      @f
413
        mov     [micron], 35
414
        mov     [micron], 35
414
        mov     edx, A51
415
        mov     edx, A51
415
        cmp     [m], $1
416
        cmp     [m], $1
416
        jz      @f
417
        jz      @f
417
        mov     edx, A52
418
        mov     edx, A52
418
        cmp     [m], $2
419
        cmp     [m], $2
419
        jz      @f
420
        jz      @f
420
        mov     edx, A53
421
        mov     edx, A53
421
        cmp     [m], $3
422
        cmp     [m], $3
422
        jz      @f
423
        jz      @f
423
        mov     [micron], 30
424
        mov     [micron], 30
424
        mov     edx, A56
425
        mov     edx, A56
425
        cmp     [m], $6
426
        cmp     [m], $6
426
        jz      @f
427
        jz      @f
427
        mov     [micron], 25
428
        mov     [micron], 25
428
        mov     edx, A57
429
        mov     edx, A57
429
        cmp     [m], $7
430
        cmp     [m], $7
430
        jz      @f
431
        jz      @f
431
        mov     edx, A58
432
        mov     edx, A58
432
        cmp     [m], $8
433
        cmp     [m], $8
433
        jz      @f
434
        jz      @f
434
        mov     edx, A59
435
        mov     edx, A59
435
        cmp     [m], $9
436
        cmp     [m], $9
436
        jz      @f
437
        jz      @f
437
        mov     [micron], 18
438
        mov     [micron], 18
438
        mov     edx, A5D
439
        mov     edx, A5D
439
@@:
440
@@:
440
        jmp     @f
441
        jmp     @f
441
 
442
 
442
.si:   ;    Family=6
443
.si:   ;    Family=6
443
        mov     [micron], 25
444
        mov     [micron], 25
444
        mov     edx, At1
445
        mov     edx, At1
445
        cmp     [m], $1
446
        cmp     [m], $1
446
        jz      @f
447
        jz      @f
447
        mov     [micron], 18
448
        mov     [micron], 18
448
        mov     edx, At2
449
        mov     edx, At2
449
        cmp     [m], $2
450
        cmp     [m], $2
450
        jz      @f
451
        jz      @f
451
        mov     edx, At3
452
        mov     edx, At3
452
        cmp     [m], $3
453
        cmp     [m], $3
453
        jz      @f
454
        jz      @f
454
        mov     edx, At4
455
        mov     edx, At4
455
        cmp     [m], $4
456
        cmp     [m], $4
456
        jz      @f
457
        jz      @f
457
        cmp     [m], $6
458
        cmp     [m], $6
458
        jz      A6
459
        jz      A6
459
        mov     [micron], 13
460
        mov     [micron], 13
460
        mov     edx, At7
461
        mov     edx, At7
461
        cmp     [m], $7
462
        cmp     [m], $7
462
        jz      @f
463
        jz      @f
463
        cmp     [m], $8
464
        cmp     [m], $8
464
        jz      A8
465
        jz      A8
465
        jmp     AA
466
        jmp     AA
466
@@:
467
@@:
467
        Text    100,70,0x80000000
468
        Text    100,70,0x80000000
468
        jmp     MMXtest
469
        jmp     MMXtest
469
A6:
470
A6:
470
        mov     [FRS], 266  ;!!!!!!
471
;        mov     [FRS], 266  ;!!!!!!
471
 
472
 
472
        Number  315,90,0,3,dword [FRS],0x000000; MHz
473
;        Number  315,90,0,3,dword [FRS],0x000000; MHz 
473
 
474
 
474
        call    newrating; !!!!
475
        call    newrating; !!!!
475
 
476
 
476
        Text    245,70,0x00000000,pr, prlen-pr
477
        Text    245,70,0x00000000,pr, prlen-pr
477
 
478
 
478
        Number  310,70,0,4,dword [rating],0x000000
479
        Number  310,70,0,4,dword [rating],0x000000
479
        mov     edx, At6
480
        mov     edx, At6
480
        jmp     @b
481
        jmp     @b
481
 
482
 
482
A8:
483
A8:
483
 
484
 
484
        mov     [FRS], 266	;!!!!!!
485
;        mov     [FRS], 266	;!!!!!!
485
 
486
 
486
        Number  315,90,0,3,dword [FRS],0x000000; MHz
487
;        Number  315,90,0,3,dword [FRS],0x000000; MHz
487
 
488
 
488
        cmp     [L2], 256
489
        cmp     [L2], 256
489
        jl      .App  ; Applebred
490
        jl      .App  ; Applebred
490
 
491
 
491
        call    newrating;!!!!
492
        call    newrating;!!!!
492
 
493
 
493
        Text    245,70,0x00000000,pr, prlen-pr
494
        Text    245,70,0x00000000,pr, prlen-pr
494
        Number  310,70,0,4,dword [rating],0x000000
495
        Number  310,70,0,4,dword [rating],0x000000
495
        mov     edx, At8
496
        mov     edx, At8
496
        jmp     @b
497
        jmp     @b
497
 
498
 
498
.App:
499
.App:
499
        mov     edx, At8a
500
        mov     edx, At8a
500
        jmp     @b
501
        jmp     @b
501
 
502
 
502
AA:
503
AA:
503
 
504
 
504
        mov     [FRS], 333; !!!!
505
;        mov     [FRS], 333; !!!!
505
        Text    245,70,0x00000000,pr, prlen-pr
506
        Text    245,70,0x00000000,pr, prlen-pr
506
 
507
 
507
        Number  315,90,0,3,dword [FRS],0x000000; MHz
508
;        Number  315,90,0,3,dword [FRS],0x000000; MHz 
508
 
509
 
509
        mov     edx, Atat
510
        mov     edx, Atat
510
        cmp     [L2], 256
511
        cmp     [L2], 256
511
        jl      .Tho ; Thorton
512
        jl      .Tho ; Thorton
512
        mov     edx, Ata
513
        mov     edx, Ata
513
.Tho:
514
.Tho:
514
        push    edx
515
        push    edx
515
 
516
 
516
        call    newrating;!!!!!
517
        call    newrating;!!!!!
517
 
518
 
518
        Number  310,70,0,4,dword [rating],0x000000
519
        Number  310,70,0,4,dword [rating],0x000000
519
        pop     edx
520
        pop     edx
520
        jmp     @b
521
        jmp     @b
521
 
522
 
522
fif:  ;  AMD-64    Family=15
523
fif:  ;  AMD-64    Family=15
523
 
524
 
524
;here is a need to rewrite detection of AMD F-th family according to "Revision Guide for
525
;here is a need to rewrite detection of AMD F-th family according to "Revision Guide for
525
;AMD AthlonTM 64 and  AMD OpteronTM  Processors" 25759.pdf
526
;AMD AthlonTM 64 and  AMD OpteronTM  Processors" 25759.pdf
526
 
527
 
527
; checking sse3 for new AMD's is needed
528
; checking sse3 for new AMD's is needed
528
    cmp [m],$1	; Dual-core Opteron
529
    cmp [m],$1	; Dual-core Opteron      
529
    jz .AF1
530
    jz .AF1
530
    cmp [m],$3	; Toledo 1024 0.09   // Manchester     ||Windsor Dual Core not supported
531
    cmp [m],$3	; Toledo 1024 0.09   // Manchester     ||Windsor Dual Core not supported
531
    jz .AF3
532
    jz .AF3
532
    cmp [m],$4	;Athlon 64 Mobile Athlon 64 FX  ClawHammer (1024) 0.13
533
    cmp [m],$4	;Athlon 64 Mobile Athlon 64 FX  ClawHammer (1024) 0.13
533
    jz .AF4
534
    jz .AF4
534
    cmp [m],$5	; Opteron     Athlon 64 FX 0.13 (1024)
535
    cmp [m],$5	; Opteron     Athlon 64 FX 0.13 (1024)
535
    jz .AF5
536
    jz .AF5
536
    cmp [m],$7	;Athlon 64 Athlon 64 FX  Clawhammer(1024) 0.13   Sledgehammer(1024)  0.13  // SSE3+ SanDiego(1024)
537
    cmp [m],$7	;Athlon 64 Athlon 64 FX  Clawhammer(1024) 0.13   Sledgehammer(1024)  0.13  // SSE3+ SanDiego(1024)
537
    jz .AF7
538
    jz .AF7
538
   cmp [m],$8 ; Athlon 64 Mobile Athlon 64 FX ClawHammer (1024) 0.13
539
   cmp [m],$8 ; Athlon 64 Mobile Athlon 64 FX ClawHammer (1024) 0.13
539
    jz .AF8
540
    jz .AF8
540
   cmp [m],$B ; Athlon 64
541
   cmp [m],$B ; Athlon 64
541
    jz .AFB
542
    jz .AFB
542
   cmp [m],$C ;Athlon 64 Newcastle(512) 0.13  Sempron> Paris (256)   0.13  |SSE3+ Sempron >  Palermo FC0 0.09  // (Venice)
543
   cmp [m],$C ;Athlon 64 Newcastle(512) 0.13  Sempron> Paris (256)   0.13  |SSE3+ Sempron >  Palermo FC0 0.09  // (Venice)
543
    jz .AFC
544
    jz .AFC
544
   cmp [m],$E  ; Athlon 64    //
545
   cmp [m],$E  ; Athlon 64    //
545
    jz .AFE
546
    jz .AFE
546
   cmp [m],$F ; Athlon 64 Winchester(512) |SSE3+ SanDiego(1024)  Venice (512)  Palermo (256) 0.09
547
   cmp [m],$F ; Athlon 64 Winchester(512) |SSE3+ SanDiego(1024)  Venice (512)  Palermo (256) 0.09
547
    jz .AFF
548
    jz .AFF
548
    jmp next_generation
549
    jmp next_generation
549
.AF1:
550
.AF1:
550
    mov [micron], 09  ;?
551
    mov [micron], 09  ;?
551
    Text 100,70,0x00000000,AF1, AF1len-AF1
552
    Text 100,70,0x00000000,AF1, AF1len-AF1
552
    jmp MMXtest
553
    jmp MMXtest
553
.AF3:
554
.AF3:
554
    mov [micron], 09
555
    mov [micron], 09
555
    Text 100,70,0x00000000,AF3, AF3len-AF3
556
    Text 100,70,0x00000000,AF3, AF3len-AF3
556
    jmp MMXtest
557
    jmp MMXtest
557
.AF4:
558
.AF4:
558
    mov [micron], 13
559
    mov [micron], 13
559
    Text 100,70,0x00000000,AF4, AF4len-AF4
560
    Text 100,70,0x00000000,AF4, AF4len-AF4
560
    jmp MMXtest
561
    jmp MMXtest
561
.AF5:
562
.AF5:
562
    mov [micron], 13
563
    mov [micron], 13
563
    Text 100,70,0x00000000,AF5, AF5len-AF5
564
    Text 100,70,0x00000000,AF5, AF5len-AF5
564
    jmp MMXtest
565
    jmp MMXtest
565
.AF7:
566
.AF7:
566
    mov [micron], 13
567
    mov [micron], 13
567
    Text 100,70,0x00000000,AF5, AF5len-AF5
568
    Text 100,70,0x00000000,AF5, AF5len-AF5
568
    jmp MMXtest
569
    jmp MMXtest
569
.AF8:
570
.AF8:
570
   mov [micron], 13
571
   mov [micron], 13
571
   Text 100,70,0x00000000,AF4, AF4len-AF4  ; AF4, AF5len-AF4
572
   Text 100,70,0x00000000,AF4, AF4len-AF4  ; AF4, AF5len-AF4
572
   jmp MMXtest
573
   jmp MMXtest
573
.AFB:
574
.AFB:
574
    mov [micron], 13
575
    mov [micron], 13
575
Text 100,70,0x00000000,AF4, AF4len-AF4
576
Text 100,70,0x00000000,AF4, AF4len-AF4
576
 jmp MMXtest
577
 jmp MMXtest
577
 
578
 
578
.AFC:
579
.AFC:
579
cmp [L2], 512
580
cmp [L2], 512
580
je .AFCn
581
je .AFCn
581
 
582
 
582
cmp [sse3sup], 1
583
cmp [sse3sup], 1
583
je .AFCnpal
584
je .AFCnpal
584
 
585
 
585
.AFCnpar:  ; paris
586
.AFCnpar:  ; paris
586
    mov [micron], 13
587
    mov [micron], 13
587
    Text 100,70,0x00000000,AFCs, AFCslen-AFCs
588
    Text 100,70,0x00000000,AFCs, AFCslen-AFCs
588
    jmp MMXtest
589
    jmp MMXtest
589
 
590
 
590
.AFCnpal: ; palermo
591
.AFCnpal: ; palermo
591
    mov [micron], 9
592
    mov [micron], 9
592
    Text 100,70,0x00000000,AFCsp, AFCsplen-AFCsp
593
    Text 100,70,0x00000000,AFCsp, AFCsplen-AFCsp
593
    jmp MMXtest
594
    jmp MMXtest
594
 
595
 
595
.AFCn: ;newcastle
596
.AFCn: ;newcastle
596
    mov [micron], 13
597
    mov [micron], 13
597
    Text 100,70,0x00000000,AFC, AFClen-AFC
598
    Text 100,70,0x00000000,AFC, AFClen-AFC
598
    jmp MMXtest
599
    jmp MMXtest
599
 
600
 
600
.AFE:	; error in cpu
601
.AFE:	; error in cpu
601
 jmp .AFC
602
 jmp .AFC
602
 
603
 
603
.AFF:
604
.AFF:
604
 
605
 
605
cmp [sse3sup], 1
606
cmp [sse3sup], 1
606
je .AFFsse
607
je .AFFsse
607
 
608
 
608
.win:
609
.win:
609
mov [micron], 9    ; winchester
610
mov [micron], 9    ; winchester
610
jmp MMXtest
611
jmp MMXtest
611
 
612
 
612
.AFFsse:
613
.AFFsse:
613
mov [micron], 9
614
mov [micron], 9
614
cmp [L2], 1024
615
cmp [L2], 1024
615
jz .AFs
616
jz .AFs
616
cmp [L2], 512
617
cmp [L2], 512
617
jz .AFd
618
jz .AFd
618
cmp [L2], 256
619
cmp [L2], 256
619
jz .AFp
620
jz .AFp
620
 
621
 
621
.AFs:
622
.AFs:
622
Text 100,70,0x00000000,AFS, AFSlen-AFS
623
Text 100,70,0x00000000,AFS, AFSlen-AFS
623
 jmp MMXtest
624
 jmp MMXtest
624
 
625
 
625
.AFd:
626
.AFd:
626
Text 100,70,0x00000000,AFV, AFVlen-AFV
627
Text 100,70,0x00000000,AFV, AFVlen-AFV
627
 jmp MMXtest
628
 jmp MMXtest
628
 
629
 
629
.AFp:
630
.AFp:
630
Text 100,70,0x00000000,AFCsp, AFCsplen-AFCsp
631
Text 100,70,0x00000000,AFCsp, AFCsplen-AFCsp
631
 jmp MMXtest
632
 jmp MMXtest
632
;-----------------------------------------------
633
;-----------------------------------------------
633
Intel:
634
Intel:
634
Text 75,70,0x00000000,Inteln, Intelnlen-Inteln
635
Text 75,70,0x00000000,Inteln, Intelnlen-Inteln
635
 
636
 
636
	mov	esi, intel
637
	mov	esi, intel
637
	call	load_gif
638
	call	load_gif
638
PutImage 135,107,201,49,img_area+8
639
PutImage 135,107,201,49,img_area+8
639
;PutImage 125,107,201,49,img_area+8
640
;PutImage 125,107,201,49,img_area+8
640
;         place   size
641
;         place   size
641
 
642
 
642
det:
643
det:
643
    cmp [f], $5
644
    cmp [f], $5
644
    jz .five
645
    jz .five
645
    cmp [f], $6
646
    cmp [f], $6
646
    jz .six
647
    jz .six
647
    cmp [f], $7
648
    cmp [f], $7
648
    jz .sev
649
    jz .sev
649
    cmp [f], $F
650
    cmp [f], $F
650
    jz .fift
651
    jz .fift
651
.five:	      ;Family=5
652
.five:	      ;Family=5
652
 
653
 
653
Text 15, 190,0x00000000,cache, cachelen-cache
654
Text 15, 190,0x00000000,cache, cachelen-cache
654
 
655
 
655
    cmp [m],$0
656
    cmp [m],$0
656
    jz .I0
657
    jz .I0
657
    cmp [m],$1
658
    cmp [m],$1
658
    jz .I1
659
    jz .I1
659
    cmp [m],$2
660
    cmp [m],$2
660
    jz .I2
661
    jz .I2
661
    cmp [m],$3
662
    cmp [m],$3
662
    jz .I3
663
    jz .I3
663
    cmp [m],$4
664
    cmp [m],$4
664
    jz .I4
665
    jz .I4
665
    cmp [m],$7
666
    cmp [m],$7
666
    jz .I7
667
    jz .I7
667
    cmp [m],$8
668
    cmp [m],$8
668
    jz .I8
669
    jz .I8
669
.I0:
670
.I0:
670
Text 110,70,0x00000000,P50, P50len-P50
671
Text 110,70,0x00000000,P50, P50len-P50
671
   mov [L1d], 8
672
   mov [L1d], 8
672
   mov [L1i], 8
673
   mov [L1i], 8
673
   mov [L2], 256
674
   mov [L2], 256
674
   mov [micron], 80
675
   mov [micron], 80
675
 jmp MMXtest
676
 jmp MMXtest
676
.I1:
677
.I1:
677
Text 110,70,0x00000000,P5, P5len-P5
678
Text 110,70,0x00000000,P5, P5len-P5
678
   mov [L1d], 8
679
   mov [L1d], 8
679
   mov [L1i], 8
680
   mov [L1i], 8
680
   mov [L2], 256
681
   mov [L2], 256
681
   mov [micron], 50
682
   mov [micron], 50
682
 jmp MMXtest
683
 jmp MMXtest
683
.I2:
684
.I2:
684
Text 110,70,0x00000000,P54C, P54Clen-P54C
685
Text 110,70,0x00000000,P54C, P54Clen-P54C
685
   mov [L1d], 8
686
   mov [L1d], 8
686
   mov [L1i], 8
687
   mov [L1i], 8
687
   mov [L2], 256
688
   mov [L2], 256
688
   mov [micron], 50
689
   mov [micron], 50
689
 jmp MMXtest
690
 jmp MMXtest
690
.I3:
691
.I3:
691
Text 110,70,0x00000000,P54T, P54Tlen-P54T
692
Text 110,70,0x00000000,P54T, P54Tlen-P54T
692
   mov [L1d], 8
693
   mov [L1d], 8
693
   mov [L1i], 8
694
   mov [L1i], 8
694
   mov [L2], 256
695
   mov [L2], 256
695
   mov [micron], 50
696
   mov [micron], 50
696
 jmp MMXtest
697
 jmp MMXtest
697
.I4:
698
.I4:
698
Text 110,70,0x00000000,P55C, P55Clen-P55C
699
Text 110,70,0x00000000,P55C, P55Clen-P55C
699
   mov [L1d], 8
700
   mov [L1d], 8
700
   mov [L1i], 8
701
   mov [L1i], 8
701
   mov [L2], 256
702
   mov [L2], 256
702
   mov [micron], 35
703
   mov [micron], 35
703
 jmp MMXtest
704
 jmp MMXtest
704
.I7:
705
.I7:
705
Text 110,70,0x00000000,P54C, P54Clen-P54C
706
Text 110,70,0x00000000,P54C, P54Clen-P54C
706
   mov [L1d], 8
707
   mov [L1d], 8
707
   mov [L1i], 8
708
   mov [L1i], 8
708
   mov [L2], 256
709
   mov [L2], 256
709
   mov [micron], 35
710
   mov [micron], 35
710
 jmp MMXtest
711
 jmp MMXtest
711
.I8:
712
.I8:
712
Text 110,70,0x00000000,P55C, P55Clen-P55C
713
Text 110,70,0x00000000,P55C, P55Clen-P55C
713
   mov [L1d], 16
714
   mov [L1d], 16
714
   mov [L1i], 16
715
   mov [L1i], 16
715
   mov [L2], 256
716
   mov [L2], 256
716
   mov [micron], 35
717
   mov [micron], 35
717
 jmp MMXtest
718
 jmp MMXtest
718
.six:		   ;Family=6
719
.six:		   ;Family=6
719
 
720
 
720
Text 15, 190,0x00000000,cache, cachelen-cache
721
Text 15, 190,0x00000000,cache, cachelen-cache
721
 
722
 
722
    cmp [m],$0
723
    cmp [m],$0
723
    jz .I60
724
    jz .I60
724
    cmp [m],$1
725
    cmp [m],$1
725
    jz .I61
726
    jz .I61
726
    cmp [m],$3
727
    cmp [m],$3
727
    jz .I63
728
    jz .I63
728
    cmp [m],$5
729
    cmp [m],$5
729
    jz .I65
730
    jz .I65
730
    cmp [m],$6
731
    cmp [m],$6
731
    jz .I66
732
    jz .I66
732
    cmp [m],$7
733
    cmp [m],$7
733
    jz .I67
734
    jz .I67
734
    cmp [m],$8
735
    cmp [m],$8
735
    jz .I68
736
    jz .I68
736
    cmp [m],$9
737
    cmp [m],$9
737
    jz .I69
738
    jz .I69
738
    cmp [m],$A
739
    cmp [m],$A
739
    jz .I6A
740
    jz .I6A
740
    cmp [m],$B
741
    cmp [m],$B
741
    jz .I6B
742
    jz .I6B
742
   cmp [m],$D
743
   cmp [m],$D
743
    jz .I6D
744
    jz .I6D
744
    cmp [m],$E
745
    cmp [m],$E
745
    jz .I6E
746
    jz .I6E
746
   cmp [m],$F
747
   cmp [m],$F
747
    jz .I6F
748
    jz .I6F
748
.I60:
749
.I60:
749
    mov [micron], 50
750
    mov [micron], 50
750
Text 110,70,0x00000000,P60, P60len-P60
751
Text 110,70,0x00000000,P60, P60len-P60
751
 jmp MMXtest
752
 jmp MMXtest
752
.I61:
753
.I61:
753
    mov [micron], 35
754
    mov [micron], 35
754
Text 110,70,0x00000000,P61, P61len-P61
755
Text 110,70,0x00000000,P61, P61len-P61
755
 jmp MMXtest
756
 jmp MMXtest
756
.I63:
757
.I63:
757
    mov [micron], 28
758
    mov [micron], 28
758
Text 110,70,0x00000000,P63, P63len-P63
759
Text 110,70,0x00000000,P63, P63len-P63
759
 jmp MMXtest
760
 jmp MMXtest
760
.I65:
761
.I65:
761
    mov [micron], 25
762
    mov [micron], 25
762
    cmp [L2], 0
763
    cmp [L2], 0
763
    jne .pp65  ; Pentium
764
    jne .pp65  ; Pentium
764
Text 110,70,0x00000000,P65c, P65clen-P65c
765
Text 110,70,0x00000000,P65c, P65clen-P65c
765
    jmp MMXtest
766
    jmp MMXtest
766
.pp65:
767
.pp65:
767
Text 110,70,0x00000000,P65, P65len-P65
768
Text 110,70,0x00000000,P65, P65len-P65
768
    jmp MMXtest
769
    jmp MMXtest
769
.I66:
770
.I66:
770
    mov [micron], 25
771
    mov [micron], 25
771
Text 110,70,0x00000000,P66, P66len-P66
772
Text 110,70,0x00000000,P66, P66len-P66
772
    jmp MMXtest
773
    jmp MMXtest
773
.I67:
774
.I67:
774
    mov [micron], 25
775
    mov [micron], 25
775
Text 110,70,0x00000000,P67, P67len-P67
776
Text 110,70,0x00000000,P67, P67len-P67 ;but if SSE4.1 supported then it is Intel Core (Penryn) 
776
    jmp MMXtest
777
    jmp MMXtest
777
.I68:
778
.I68:
778
    mov [micron], 18
779
    mov [micron], 18
779
    cmp [L2], 128
780
    cmp [L2], 128
780
    jne .pp68  ; Pentium
781
    jne .pp68  ; Pentium
781
Text 110,70,0x00000000,P68c, P68clen-P68c
782
Text 110,70,0x00000000,P68c, P68clen-P68c
782
    jmp MMXtest
783
    jmp MMXtest
783
 .pp68:
784
 .pp68:
784
Text 110,70,0x00000000,P68, P68len-P68
785
Text 110,70,0x00000000,P68, P68len-P68
785
    jmp MMXtest
786
    jmp MMXtest
786
.I69:
787
.I69:
787
    mov [micron], 13
788
    mov [micron], 13
788
Text 110,70,0x00000000,P69 , P69len-P69
789
Text 110,70,0x00000000,P69 , P69len-P69
789
    jmp MMXtest
790
    jmp MMXtest
790
.I6A:
791
.I6A:
791
    mov [micron], 18
792
    mov [micron], 18
792
Text 110,70,0x00000000,P6A, P6Alen-P6A
793
Text 110,70,0x00000000,P6A, P6Alen-P6A ;but if SSE4.2 supported then it is Intel Core (Nehalem) 
793
    jmp MMXtest
794
    jmp MMXtest
794
.I6B:
795
.I6B:
795
    mov [micron], 13
796
    mov [micron], 13
796
    cmp [L2], 256
797
    cmp [L2], 256
797
    jne .pp6B  ; Pentium
798
    jne .pp6B  ; Pentium
798
Text 110,70,0x00000000,P6Bc, P6Bclen-P6Bc
799
Text 110,70,0x00000000,P6Bc, P6Bclen-P6Bc
799
    jmp MMXtest
800
    jmp MMXtest
800
.pp6B:
801
.pp6B:
801
Text 110,70,0x00000000,P6B, P6Blen-P6B
802
Text 110,70,0x00000000,P6B, P6Blen-P6B
802
    jmp MMXtest
803
    jmp MMXtest
803
.I6D:
804
.I6D:
804
    mov [micron], 9
805
    mov [micron], 9
805
Text 110,70,0x00000000,P6D, P6Dlen-P6D
806
Text 110,70,0x00000000,P6D, P6Dlen-P6D
806
    jmp MMXtest
807
    jmp MMXtest
807
.I6E:
808
.I6E:
808
    mov [micron], 6
809
    mov [micron], 6
809
Text 110,70,0x00000000,P6E, P6Elen-P6E
810
Text 110,70,0x00000000,P6E, P6Elen-P6E
810
    jmp MMXtest
811
    jmp MMXtest
811
.I6F:
812
.I6F:
812
    mov [micron], 6
813
    mov [micron], 6
813
Text 110,70,0x00000000,P6F, P6Flen-P6F
814
Text 110,70,0x00000000,P6F, P6Flen-P6F
814
    jmp MMXtest
815
    jmp MMXtest
815
 
816
 
816
;06Ex - Pentium M Yonah 0.065
817
;06Ex - Pentium M Yonah 0.065
817
;06Fx - Pentium D Conroe 0.065, Xeon Woodcrest, Celeron D AllenDale, Core 2 Kentsfield
818
;06Fx - Pentium D Conroe 0.065, Xeon Woodcrest, Celeron D AllenDale, Core 2 Kentsfield
818
 
819
 
819
.sev:	 ;Family=7
820
.sev:	 ;Family=7
820
.IS0:
821
.IS0:
821
 
822
 
822
Text 15, 190,0x00000000,cache, cachelen-cache ;?
823
Text 15, 190,0x00000000,cache, cachelen-cache ;?
823
 
824
 
824
    mov [micron], 18
825
    mov [micron], 18
825
Text 110,70,0x00000000,PS0, PS0len-PS0
826
Text 110,70,0x00000000,PS0, PS0len-PS0
826
 jmp MMXtest
827
 jmp MMXtest
827
 
828
 
828
.fift:	  ;Family=15
829
.fift:	  ;Family=15
829
 
830
 
830
Text 15, 190,0x00000000,cacheP4, cacheP4len-cacheP4
831
Text 15, 190,0x00000000,cacheP4, cacheP4len-cacheP4
831
 
832
 
832
    cmp [m],$0
833
    cmp [m],$0
833
    jz .IF0
834
    jz .IF0
834
    cmp [m],$1
835
    cmp [m],$1
835
    jz .IF1
836
    jz .IF1
836
    cmp [m],$2
837
    cmp [m],$2
837
    jz .IF2
838
    jz .IF2
838
    cmp [m],$3
839
    cmp [m],$3
839
    jz .IF3
840
    jz .IF3
840
    cmp [m],$4
841
    cmp [m],$4
841
    jz .IF3 ;identical to F3xh
842
    jz .IF3 ;identical to F3xh
842
    cmp [m],$5
843
    cmp [m],$5
843
    jz .IF5
844
    jz .IF5
844
    cmp [m],$6
845
    cmp [m],$6
845
    jz .IF6
846
    jz .IF6
846
    jmp next_generation
847
    jmp next_generation
847
.IF0:
848
.IF0:
848
    mov [micron], 18
849
    mov [micron], 18
849
    cmp [L2], 128
850
    cmp [L2], 128
850
    jne .ppF0  ; Pentium
851
    jne .ppF0  ; Pentium
851
Text 110,70,0x00000000,PF0c, PF0clen-PF0c
852
Text 110,70,0x00000000,PF0c, PF0clen-PF0c
852
    jmp MMXtest
853
    jmp MMXtest
853
.ppF0:
854
.ppF0:
854
Text 110,70,0x00000000,PF0, PF0len-PF0
855
Text 110,70,0x00000000,PF0, PF0len-PF0
855
    jmp MMXtest
856
    jmp MMXtest
856
.IF1:
857
.IF1:
857
    mov [micron], 18
858
    mov [micron], 18
858
    cmp [L2], 128
859
    cmp [L2], 128
859
    je .IF0;jne.ppF1  ; Pentium
860
    je .IF0;jne.ppF1  ; Pentium
860
  ;  mov   eax,dword 0x00000004
861
  ;  mov   eax,dword 0x00000004
861
  ;  mov   ebx,115*65536+80
862
  ;  mov   ebx,115*65536+80
862
  ;  mov   ecx,dword 0x00000000
863
  ;  mov   ecx,dword 0x00000000
863
  ;  mov   edx,PF0c
864
  ;  mov   edx,PF0c
864
  ;  mov   esi,PF0clen-PF0c
865
  ;  mov   esi,PF0clen-PF0c
865
  ;  mcall
866
  ;  mcall
866
  ;jmp MMXtest
867
  ;jmp MMXtest
867
;.ppF1:
868
;.ppF1:
868
Text 110,70,0x00000000,PF0, PF0len-PF0
869
Text 110,70,0x00000000,PF0, PF0len-PF0
869
 jmp MMXtest
870
 jmp MMXtest
870
.IF2:
871
.IF2:
871
    mov [micron], 13
872
    mov [micron], 13
872
    cmp [L2], 128
873
    cmp [L2], 128
873
    jne .ppF2  ; Pentium
874
    jne .ppF2  ; Pentium
874
Text 110,70,0x00000000,PF2c, PF2clen-PF2c
875
Text 110,70,0x00000000,PF2c, PF2clen-PF2c
875
 jmp MMXtest
876
 jmp MMXtest
876
.ppF2:
877
.ppF2:
877
Text 110,70,0x00000000,PF2, PF2len-PF2
878
Text 110,70,0x00000000,PF2, PF2len-PF2
878
 jmp MMXtest
879
 jmp MMXtest
879
.IF3:
880
.IF3:
880
    mov [micron], 09
881
    mov [micron], 09
881
    cmp [L2], 256
882
    cmp [L2], 256
882
    jne .ppF3  ; Pentium
883
    jne .ppF3  ; Pentium
883
Text 110,70,0x00000000,PF3c, PF3clen-PF3c
884
Text 110,70,0x00000000,PF3c, PF3clen-PF3c
884
 jmp MMXtest
885
 jmp MMXtest
885
.ppF3:
886
.ppF3:
886
Text 110,70,0x00000000,PF3, PF3len-PF3
887
Text 110,70,0x00000000,PF3, PF3len-PF3
887
 jmp MMXtest
888
 jmp MMXtest
888
 
889
 
889
.IF5:
890
.IF5:
890
    mov [micron], 09
891
    mov [micron], 09
891
    cmp [L2], 512
892
    cmp [L2], 512
892
    jae .ppF5  ; Pentium
893
    jae .ppF5  ; Pentium
893
Text 110,70,0x00000000,PF5c, PF5clen-PF5c
894
Text 110,70,0x00000000,PF5c, PF5clen-PF5c
894
 jmp MMXtest
895
 jmp MMXtest
895
.ppF5:
896
.ppF5:
896
Text 110,70,0x00000000,PF5, PF5len-PF5
897
Text 110,70,0x00000000,PF5, PF5len-PF5
897
 jmp MMXtest
898
 jmp MMXtest
898
 
899
 
899
 .IF6:
900
 .IF6:
900
    mov [micron], 06  ; 065
901
    mov [micron], 06  ; 065
901
    cmp [L2], 512
902
    cmp [L2], 512
902
    ja .ppF6  ; Pentium
903
    ja .ppF6  ; Pentium
903
Text 110,70,0x00000000,PF6c, PF6clen-PF6c
904
Text 110,70,0x00000000,PF6c, PF6clen-PF6c
904
 jmp MMXtest
905
 jmp MMXtest
905
.ppF6:
906
.ppF6:
906
Text 110,70,0x00000000,PF6, PF6len-PF6
907
Text 110,70,0x00000000,PF6, PF6len-PF6
907
 jmp MMXtest
908
 jmp MMXtest
908
 
909
 
909
 
910
 
910
 next_generation:
911
 next_generation:
911
Text 110,70,0x00000000,NG, NGlen-NG
912
Text 110,70,0x00000000,NG, NGlen-NG
912
  jmp MMXtest
913
  jmp MMXtest
913
;----------------------------------
914
;----------------------------------
914
Cyrix:
915
Cyrix:
915
 
916
 
916
Text 15, 190,0x00000000,cache, cachelen-cache
917
Text 15, 190,0x00000000,cache, cachelen-cache
917
 
918
 
918
	mov	esi, cyrix
919
	mov	esi, cyrix
919
	call	load_gif
920
	call	load_gif
920
PutImage 135,107,201,49,img_area+8
921
PutImage 135,107,201,49,img_area+8
921
;PutImage 130,127,201,49,img_area+8
922
;PutImage 130,127,201,49,img_area+8
922
;         place   size
923
;         place   size
923
 
924
 
924
    cmp [f], $5
925
    cmp [f], $5
925
    jz .fivv
926
    jz .fivv
926
    cmp [f], $6
927
    cmp [f], $6
927
    jz .sixx
928
    jz .sixx
928
.fivv:	  ;Family=5
929
.fivv:	  ;Family=5
929
    cmp [m],$2
930
    cmp [m],$2
930
    jz .C52
931
    jz .C52
931
    cmp [m],$4
932
    cmp [m],$4
932
    jz .C54
933
    jz .C54
933
.C52:
934
.C52:
934
    mov [micron], 50 ;35?
935
    mov [micron], 50 ;35?
935
    mov [L1i], 8
936
    mov [L1i], 8
936
    mov [L1d], 8
937
    mov [L1d], 8
937
    mov [L2], 512
938
    mov [L2], 512
938
Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
939
Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
939
Text 110,70,0x00000000,C52, C52len-C52
940
Text 110,70,0x00000000,C52, C52len-C52
940
    jmp MMXtest
941
    jmp MMXtest
941
.C54:
942
.C54:
942
    mov [micron], 50
943
    mov [micron], 50
943
    mov [L1i], 8
944
    mov [L1i], 8
944
    mov [L1d], 8
945
    mov [L1d], 8
945
    mov [L2], 512
946
    mov [L2], 512
946
Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
947
Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
947
Text 110,70,0x00000000,C54, C54len-C54
948
Text 110,70,0x00000000,C54, C54len-C54
948
    jmp MMXtest
949
    jmp MMXtest
949
 
950
 
950
.sixx:	   ;Family=6
951
.sixx:	   ;Family=6
951
   cmp [m],$0
952
   cmp [m],$0
952
   jz .C60
953
   jz .C60
953
   cmp [m],$5
954
   cmp [m],$5
954
   jz .C65
955
   jz .C65
955
.C60:
956
.C60:
956
    mov [micron], 25
957
    mov [micron], 25
957
    mov [L1i], 32
958
    mov [L1i], 32
958
    mov [L1d], 32
959
    mov [L1d], 32
959
    mov [L2], 512
960
    mov [L2], 512
960
Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
961
Text 75,70,0x00000000,Cyrixn, Cyrixnlen-Cyrixn
961
Text 110,70,0x00000000,C60, C60len-C60
962
Text 110,70,0x00000000,C60, C60len-C60
962
    jmp MMXtest
963
    jmp MMXtest
963
.C65:
964
.C65:
964
    mov [micron], 25 ;35?
965
    mov [micron], 25 ;35?
965
    mov [L1i], 32
966
    mov [L1i], 32
966
    mov [L1d], 32
967
    mov [L1d], 32
967
    mov [L2], 512
968
    mov [L2], 512
968
Text 75,70,0x00000000,Centaurn, Centaurnlen-Centaurn
969
Text 75,70,0x00000000,Centaurn, Centaurnlen-Centaurn
969
    mov edx,C65
970
    mov edx,C65
970
    mov esi,C65len-C65
971
    mov esi,C65len-C65
971
    jmp OutProcName
972
    jmp OutProcName
972
;---------------------
973
;---------------------
973
Centaur:
974
Centaur:
974
 
975
 
975
Text 15, 190,0x00000000,cache, cachelen-cache
976
Text 15, 190,0x00000000,cache, cachelen-cache
976
 
977
 
977
;CACHE1:
978
;CACHE1:
978
mov eax, 80000005h
979
mov eax, 80000005h
979
    cpuid
980
    cpuid
980
shr ecx, 24
981
shr ecx, 24
981
mov [L1d], ecx
982
mov [L1d], ecx
982
shr edx, 24
983
shr edx, 24
983
mov [L1i], edx
984
mov [L1i], edx
984
 
985
 
985
 
986
 
986
 
987
 
987
; cache detection routine
988
; cache detection routine
988
;CACHE1:
989
;CACHE1:
989
mov eax, 80000005h
990
mov eax, 80000005h
990
    cpuid
991
    cpuid
991
 
992
 
992
movzx eax, cl
993
movzx eax, cl
993
mov [lineld], eax
994
mov [lineld], eax
994
 
995
 
995
mov eax, ecx
996
mov eax, ecx
996
shr eax, 16
997
shr eax, 16
997
and eax,000000FFh
998
and eax,000000FFh
998
mov [wayld], eax
999
mov [wayld], eax
999
 
1000
 
1000
shr ecx, 24
1001
shr ecx, 24
1001
mov [L1d], ecx
1002
mov [L1d], ecx
1002
 
1003
 
1003
movzx eax, dl
1004
movzx eax, dl
1004
mov [lineli], eax
1005
mov [lineli], eax
1005
 
1006
 
1006
mov eax, edx
1007
mov eax, edx
1007
 
1008
 
1008
shr eax, 16
1009
shr eax, 16
1009
and eax,000000FFh
1010
and eax,000000FFh
1010
mov [wayli], eax
1011
mov [wayli], eax
1011
 
1012
 
1012
shr edx, 24
1013
shr edx, 24
1013
mov [L1i], edx
1014
mov [L1i], edx
1014
 
1015
 
1015
 
1016
 
1016
;CACHE2:
1017
;CACHE2:
1017
mov eax, 80000006h
1018
mov eax, 80000006h
1018
    cpuid
1019
    cpuid
1019
 
1020
 
1020
cmp [f], $6
1021
cmp [f], $6
1021
    jz vn
1022
    jz vn
1022
    jmp vl2old	; if not then old identification
1023
    jmp vl2old	; if not then old identification
1023
vn:
1024
vn:
1024
    cmp [m],$9
1025
    cmp [m],$9
1025
    jl vl2old
1026
    jl vl2old
1026
; else  new
1027
; else  new
1027
movzx eax, cl
1028
movzx eax, cl
1028
mov dword[linel2], eax
1029
mov dword[linel2], eax
1029
 
1030
 
1030
mov eax, ecx
1031
mov eax, ecx
1031
shl eax, 16
1032
shl eax, 16
1032
shr eax, 28
1033
shr eax, 28
1033
 
1034
 
1034
mov dword[wayl2], eax
1035
mov dword[wayl2], eax
1035
 
1036
 
1036
shr ecx, 16  ; it is 16 bits now
1037
shr ecx, 16  ; it is 16 bits now
1037
mov [L2],ecx
1038
mov [L2],ecx
1038
 
1039
 
1039
 
1040
 
1040
 
1041
 
1041
vl2old:
1042
vl2old:
1042
movzx eax, cl
1043
movzx eax, cl
1043
mov dword[linel2], eax
1044
mov dword[linel2], eax
1044
 
1045
 
1045
mov eax, ecx
1046
mov eax, ecx
1046
shl eax, 8
1047
shl eax, 8
1047
shr eax, 24
1048
shr eax, 24
1048
 
1049
 
1049
mov dword[wayl2], eax
1050
mov dword[wayl2], eax
1050
 
1051
 
1051
shr ecx, 24  ; it was 8 bits earlier
1052
shr ecx, 24  ; it was 8 bits earlier
1052
mov [L2],ecx
1053
mov [L2],ecx
1053
 
1054
 
1054
 
1055
 
1055
    cmp [f], $5
1056
    cmp [f], $5
1056
    jz fivC
1057
    jz fivC
1057
    cmp [f], $6
1058
    cmp [f], $6
1058
    jz sixC
1059
    jz sixC
1059
 
1060
 
1060
fivC:		   ;Family=5
1061
fivC:		   ;Family=5
1061
 
1062
 
1062
	mov	esi, idt
1063
	mov	esi, idt
1063
	call	load_gif
1064
	call	load_gif
1064
PutImage 135,107,201,49,img_area+8
1065
PutImage 135,107,201,49,img_area+8
1065
;PutImage 125,107,201,49,img_area+8
1066
;PutImage 125,107,201,49,img_area+8
1066
;         place   size
1067
;         place   size
1067
 
1068
 
1068
Text 75,70,0x00000000,IDTn, IDTnlen-IDTn
1069
Text 75,70,0x00000000,IDTn, IDTnlen-IDTn
1069
    cmp [m],$4
1070
    cmp [m],$4
1070
    jz .V54
1071
    jz .V54
1071
    cmp [m],$8
1072
    cmp [m],$8
1072
    jz .V58
1073
    jz .V58
1073
    cmp [m],$9
1074
    cmp [m],$9
1074
    jz .V59
1075
    jz .V59
1075
.V54:
1076
.V54:
1076
   mov [micron], 35
1077
   mov [micron], 35
1077
   mov edx,V54
1078
   mov edx,V54
1078
   mov esi,V54len-V54
1079
   mov esi,V54len-V54
1079
    jmp OutProcName
1080
    jmp OutProcName
1080
.V58:
1081
.V58:
1081
    mov [micron], 25
1082
    mov [micron], 25
1082
    mov edx,V58
1083
    mov edx,V58
1083
    mov esi,V58len-V58
1084
    mov esi,V58len-V58
1084
    jmp OutProcName
1085
    jmp OutProcName
1085
.V59:
1086
.V59:
1086
    mov [micron], 25
1087
    mov [micron], 25
1087
    mov edx,V59
1088
    mov edx,V59
1088
    mov esi,V59len-V59
1089
    mov esi,V59len-V59
1089
    jmp OutProcName
1090
    jmp OutProcName
1090
 
1091
 
1091
sixC:	;Family=6
1092
sixC:	;Family=6
1092
 
1093
 
1093
	mov	esi, via
1094
	mov	esi, via
1094
	call	load_gif
1095
	call	load_gif
1095
PutImage 135,107,201,49,img_area+8
1096
PutImage 135,107,201,49,img_area+8
1096
;PutImage 125,107,201,49,img_area+8
1097
;PutImage 125,107,201,49,img_area+8
1097
;         place   size
1098
;         place   size
1098
 
1099
 
1099
Text 75,70,0x00000000,Centaurn, Centaurnlen-Centaurn
1100
Text 75,70,0x00000000,Centaurn, Centaurnlen-Centaurn
1100
    cmp [m],$6
1101
    cmp [m],$6
1101
    jz .V66
1102
    jz .V66
1102
    cmp [m],$7
1103
    cmp [m],$7
1103
    jz .V67
1104
    jz .V67
1104
    cmp [m],$8
1105
    cmp [m],$8
1105
    jz .V68
1106
    jz .V68
1106
    cmp [m],$9
1107
    cmp [m],$9
1107
    jz .V69
1108
    jz .V69
1108
    cmp [m],$A
1109
    cmp [m],$A
1109
    jz .V6A
1110
    jz .V6A
1110
.V66:
1111
.V66:
1111
   mov [micron], 18 ; 25?
1112
   mov [micron], 18 ; 25?
1112
   mov edx,V66
1113
   mov edx,V66
1113
   mov esi,V66len-V66
1114
   mov esi,V66len-V66
1114
    jmp OutProcName
1115
    jmp OutProcName
1115
.V67:
1116
.V67:
1116
    mov [micron], 15
1117
    mov [micron], 15
1117
    mov edx,V67
1118
    mov edx,V67
1118
    mov esi,V67len-V67
1119
    mov esi,V67len-V67
1119
    jmp OutProcName
1120
    jmp OutProcName
1120
.V68:
1121
.V68:
1121
    mov [micron], 13
1122
    mov [micron], 13
1122
    mov edx,V68
1123
    mov edx,V68
1123
    mov esi,V68len-V68
1124
    mov esi,V68len-V68
1124
    jmp OutProcName
1125
    jmp OutProcName
1125
.V69:
1126
.V69:
1126
   mov [micron], 13
1127
   mov [micron], 13
1127
   mov edx,V69
1128
   mov edx,V69
1128
   mov esi,V69len-V69
1129
   mov esi,V69len-V69
1129
   jmp OutProcName
1130
   jmp OutProcName
1130
.V6A:
1131
.V6A:
1131
   mov [micron], 9
1132
   mov [micron], 9
1132
   mov edx,VA
1133
   mov edx,VA
1133
   mov esi,VAlen-VA
1134
   mov esi,VAlen-VA
1134
   jmp OutProcName
1135
   jmp OutProcName
1135
;-----------
1136
;-----------
1136
Transmeta:
1137
Transmeta:
1137
 
1138
 
1138
Text 15, 190,0x00000000,cache, cachelen-cache
1139
Text 15, 190,0x00000000,cache, cachelen-cache
1139
 
1140
 
1140
Text 75,70,,Tranmsmetan, Tranmsmetanlen-Tranmsmetan
1141
Text 75,70,,Tranmsmetan, Tranmsmetanlen-Tranmsmetan
1141
 
1142
 
1142
	mov	esi, transmeta
1143
	mov	esi, transmeta
1143
	call	load_gif
1144
	call	load_gif
1144
PutImage 135,107,201,49,img_area+8
1145
PutImage 135,107,201,49,img_area+8
1145
;PutImage 125,107,201,49,img_area+8
1146
;PutImage 125,107,201,49,img_area+8
1146
;         place   size
1147
;         place   size
1147
 
1148
 
1148
; cache detection routine - it is the same as for AMD (almost)
1149
; cache detection routine - it is the same as for AMD (almost)
1149
;CACHE1:
1150
;CACHE1:
1150
mov eax, 80000005h
1151
mov eax, 80000005h
1151
    cpuid
1152
    cpuid
1152
 
1153
 
1153
movzx eax, cl
1154
movzx eax, cl
1154
mov [lineld], eax
1155
mov [lineld], eax
1155
 
1156
 
1156
mov eax, ecx
1157
mov eax, ecx
1157
 
1158
 
1158
shr eax,16
1159
shr eax,16
1159
and eax,000000FFh
1160
and eax,000000FFh
1160
mov [wayld], eax
1161
mov [wayld], eax
1161
 
1162
 
1162
shr ecx, 24
1163
shr ecx, 24
1163
mov [L1d], ecx
1164
mov [L1d], ecx
1164
 
1165
 
1165
movzx eax, dl
1166
movzx eax, dl
1166
mov [lineli], eax
1167
mov [lineli], eax
1167
 
1168
 
1168
mov eax, edx
1169
mov eax, edx
1169
 
1170
 
1170
shr eax, 16
1171
shr eax, 16
1171
and eax,000000FFh
1172
and eax,000000FFh
1172
mov [wayli], eax
1173
mov [wayli], eax
1173
 
1174
 
1174
shr edx, 24
1175
shr edx, 24
1175
mov [L1i], edx
1176
mov [L1i], edx
1176
 
1177
 
1177
 
1178
 
1178
;CACHE2:
1179
;CACHE2:
1179
mov eax, 80000006h
1180
mov eax, 80000006h
1180
    cpuid
1181
    cpuid
1181
 
1182
 
1182
movzx eax, cl
1183
movzx eax, cl
1183
mov dword[linel2], eax
1184
mov dword[linel2], eax
1184
 
1185
 
1185
mov eax, ecx
1186
mov eax, ecx
1186
shl eax, 16
1187
shl eax, 16
1187
shr eax, 28
1188
shr eax, 28
1188
 
1189
 
1189
mov dword[wayl2], eax
1190
mov dword[wayl2], eax
1190
 
1191
 
1191
shr ecx, 16
1192
shr ecx, 16
1192
mov [L2],ecx
1193
mov [L2],ecx
1193
 
1194
 
1194
 
1195
 
1195
    cmp [f], $5
1196
    cmp [f], $5
1196
    jz .fivt
1197
    jz .fivt
1197
    cmp [f], $F
1198
    cmp [f], $F
1198
    jz .fift
1199
    jz .fift
1199
.fivt:	  ;     Family=5
1200
.fivt:	  ;     Family=5
1200
 
1201
 
1201
    mov edx,T5
1202
    mov edx,T5
1202
    mov esi,T5len-T5
1203
    mov esi,T5len-T5
1203
    jmp @f
1204
    jmp @f
1204
 
1205
 
1205
.fift:	  ;     Family=F
1206
.fift:	  ;     Family=F
1206
    mov edx,TF
1207
    mov edx,TF
1207
    mov esi,TFlen-TF
1208
    mov esi,TFlen-TF
1208
@@:
1209
@@:
1209
    mov [micron], 13 ;
1210
    mov [micron], 13 ;
1210
    Text 140,70,0
1211
    Text 140,70,0
1211
    jmp MMXtest
1212
    jmp MMXtest
1212
 
1213
 
1213
OutProcName:
1214
OutProcName:
1214
        Text    100,70,0
1215
        Text    100,70,0
1215
 
1216
 
1216
;----
1217
;----
-
 
1218
;---------------------------------- new 
-
 
1219
Vortex:
-
 
1220
 
-
 
1221
Text 15, 190,0x00000000,cache, cachelen-cache
-
 
1222
 
-
 
1223
	mov	esi, vortex
-
 
1224
	call	load_gif
-
 
1225
PutImage 135,107,201,49,img_area+8
-
 
1226
;PutImage 130,127,201,49,img_area+8
-
 
1227
;         place   size
-
 
1228
 
-
 
1229
    cmp [f], $5
-
 
1230
    jz .V54 ;fivvtx
-
 
1231
;.fivvtx:	  ;Family=5
-
 
1232
;    cmp [m],$4
-
 
1233
;    jz .V54
-
 
1234
.V54:
-
 
1235
    mov [micron], 13
-
 
1236
    mov [L1i], 16
-
 
1237
    mov [L1d], 16
-
 
1238
    mov [L2], 256
-
 
1239
    mov [wayl2], 4
-
 
1240
    mov [wayli], 4
-
 
1241
    mov [wayld], 4
-
 
1242
Text 75,70,0x00000000,Vortexn, Vortexnlen-Vortexn
-
 
1243
;Text 110,70,0x00000000,V54, V54len-V54
-
 
1244
    jmp MMXtest
-
 
1245
 
-
 
1246
;---------------------
-
 
1247
 
-
 
1248
 
-
 
1249
 
1217
MMXtest:	     ; MMX test and Brand ID decoding
1250
MMXtest:	     ; MMX test and Brand ID decoding
1218
 
1251
 
1219
call decodebrand  ; get Brand ID
1252
call decodebrand  ; get Brand ID
1220
 
1253
 
1221
call decode_standard_features
1254
call decode_standard_features
1222
 
1255
 
1223
call decode_extended_features
1256
call decode_extended_features
1224
      xor eax,eax
1257
      xor eax,eax
1225
      inc eax
1258
      inc eax
1226
      cpuid
1259
      cpuid
1227
HTTtest:
1260
HTTtest:
1228
  test	edx, $10000000; ;Test bit 28
1261
  test	edx, $10000000; ;Test bit 28
1229
  jz .ELN
1262
  jz .ELN
1230
 
1263
 
1231
.EL:   ;HTT technology is supported
1264
.EL:   ;HTT technology is supported
1232
   and ebx,00FF0000h ; numbers of logical processors
1265
   and ebx,00FF0000h ; numbers of logical processors
1233
   cmp ebx, 1 shl 16
1266
   cmp ebx, 1 shl 16
1234
   ;   mov [number_of_log_cpus], ebx
1267
   ;   mov [number_of_log_cpus], ebx
1235
   je .ELN  ; HHT not enabled (Celeron)
1268
   je .ELN  ; HHT not enabled (Celeron)
1236
 
1269
 
1237
   mov	dword [HTTn+9], $736579
1270
   mov	dword [HTTn+9], $736579
1238
   mov	dword [HTT+ 6], $736579
1271
   mov	dword [HTT+ 6], $736579
1239
   jmp TEXTOUT
1272
   jmp TEXTOUT
1240
.ELN:
1273
.ELN:
1241
 
1274
 
1242
   mov	dword [HTTn+ 9],  $6F6E
1275
   mov	dword [HTTn+ 9],  $6F6E
1243
   mov	dword [HTT+ 6],  $6F6E
1276
   mov	dword [HTT+ 6],  $6F6E
1244
 
1277
 
1245
TEXTOUT:
1278
TEXTOUT:
1246
 
1279
 
1247
Text 15,110,0x00000000,fam, famlen-fam
1280
Text 15,110,0x00000000,fam, famlen-fam
1248
Text 15,130,,mode, modelen-mode
1281
Text 15,130,,mode, modelen-mode
1249
Text 15,150,,step, steplen-step
1282
Text 15,150,,step, steplen-step
1250
;--------L1  L2
1283
;--------L1  L2
1251
Number 75,170,0,3,dword [L1d],0x000000;
1284
Number 75,170,0,3,dword [L1d],0x000000;
1252
Number 75,190,,,dword [L1i]
1285
Number 75,190,,,dword [L1i]
1253
Number 41,210,0,4,dword[L2]
1286
Number 41,210,0,4,dword[L2]
1254
Number 35,230,0,5,dword[L3]
1287
Number 35,230,0,5,dword[L3]
1255
;-----------Features
1288
;-----------Features
1256
Number 258,50,0,2,dword [micron]  ; micron
1289
Number 258,50,0,2,dword [micron]  ; micron
1257
 
1290
 
1258
Text 275,290,0x00000000,HTT, HTTlen-HTT
1291
Text 275,290,0x00000000,HTT, HTTlen-HTT
1259
Text 275,310,,sse3, sse3len-sse3
1292
Text 275,310,,sse3, sse3len-sse3
1260
 
1293
 
1261
Text 15,70,,name, namelen-name
1294
Text 15,70,,name, namelen-name
1262
 
1295
 
1263
Text 15,290,,MMXs, MMXslen-MMXs
1296
Text 15,290,,MMXs, MMXslen-MMXs
1264
Text 15,310,,SSE, SSElen-SSE
1297
Text 15,310,,SSE, SSElen-SSE
1265
Text 95,310,,SSE2, SSE2len-SSE2
1298
Text 95,310,,SSE2, SSE2len-SSE2
1266
 
1299
 
1267
    Number 140,170,0,2,dword [wayld],0x000000
1300
    Number 140,170,0,2,dword [wayld],0x000000
1268
    Number 218,170,,,dword [lineld]
1301
    Number 218,170,,,dword [lineld]
1269
 
1302
 
1270
    Number 140,190,,,dword [wayli]
1303
    Number 140,190,,,dword [wayli]
1271
    Number 218,190,,,dword [lineli]
1304
    Number 218,190,,,dword [lineli]
1272
 
1305
 
1273
    Number 140,210,,,dword [wayl2]
1306
    Number 140,210,,,dword [wayl2]
1274
    Number 218,210,,,dword [linel2]
1307
    Number 218,210,,,dword [linel2]
1275
 
1308
 
1276
    Number 140,230,,,dword [wayl3]
1309
    Number 140,230,,,dword [wayl3]
1277
    Number 218,230,,,dword [linel3]
1310
    Number 218,230,,,dword [linel3]
1278
 
1311
 
1279
;-------------------
1312
;-------------------
1280
TEST3DNOW:
1313
TEST3DNOW:
1281
 
1314
 
1282
  xor edx, edx
1315
  xor edx, edx
1283
  cmp [smallvendor], 'ntel'
1316
  cmp [smallvendor], 'ntel'
1284
  je @f
1317
  je @f
1285
 
1318
 
1286
  mov	eax, $80000001 ;// Setup extended function 8000_0001h
1319
  mov	eax, $80000001 ;// Setup extended function 8000_0001h
1287
  cpuid
1320
  cpuid
1288
 
1321
 
1289
@@:
1322
@@:
1290
  mov   eax, now+9
1323
  mov   eax, now+9
1291
  add   edx, edx
1324
  add   edx, edx
1292
  call  write_yes_no_cf
1325
  call  write_yes_no_cf
1293
 
1326
 
1294
  mov   eax, nowp+9
1327
  mov   eax, nowp+9
1295
  add   edx, edx
1328
  add   edx, edx
1296
  call  write_yes_no_cf
1329
  call  write_yes_no_cf
1297
 
1330
 
1298
TESTMMXP:
1331
TESTMMXP:
1299
 
1332
 
1300
    mov   eax,$80000000
1333
    mov   eax,$80000000
1301
    cpuid
1334
    cpuid
1302
 
1335
 
1303
    test eax, eax
1336
    test eax, eax
1304
    jns NOEXTENDEDM
1337
    jns NOEXTENDEDM
1305
 
1338
 
1306
  ;cmp   eax, $80000000 ;// Is 800_0001h supported?
1339
  ;cmp   eax, $80000000 ;// Is 800_0001h supported?
1307
  ;jz   .NOEXTENDEDM    ;// If not, 3DNow! technology is not supported
1340
  ;jz   .NOEXTENDEDM    ;// If not, 3DNow! technology is not supported
1308
  mov	eax, $80000001 ;// Setup extended function 8000_0001h
1341
  mov	eax, $80000001 ;// Setup extended function 8000_0001h
1309
  cpuid
1342
  cpuid
1310
  cmp [smallvendor], 'tead'
1343
  cmp [smallvendor], 'tead'
1311
  jne noCyr
1344
  jne noCyr
1312
Cyrmx:
1345
Cyrmx:
1313
  test	edx, $01000000 ;// Test bit 24
1346
  test	edx, $01000000 ;// Test bit 24
1314
  jnz	XITM  ;// 3DNow! technology is supported
1347
  jnz	XITM  ;// 3DNow! technology is supported
1315
  jz NOEXTENDEDM
1348
  jz NOEXTENDEDM
1316
noCyr:
1349
noCyr:
1317
  test	edx, $00400000 ;// Test bit 22
1350
  test	edx, $00400000 ;// Test bit 22
1318
  jnz	XITM  ;// 3DNow! technology is supported
1351
  jnz	XITM  ;// 3DNow! technology is supported
1319
  ;jz   .NOEXTENDEDM
1352
  ;jz   .NOEXTENDEDM
1320
 
1353
 
1321
NOEXTENDEDM:
1354
NOEXTENDEDM:
1322
   mov	dword [mmxp+ 7], $6F6E
1355
   mov	dword [mmxp+ 7], $6F6E
1323
   mov	dword [MMXPi+ 8], $6F6E
1356
   mov	dword [MMXPi+ 8], $6F6E
1324
   jmp text3d
1357
   jmp text3d
1325
XITM:
1358
XITM:
1326
   mov	dword [mmxp+ 7],  $736579
1359
   mov	dword [mmxp+ 7],  $736579
1327
   mov	dword [MMXPi+ 8],  $736579
1360
   mov	dword [MMXPi+ 8],  $736579
1328
 
1361
 
1329
text3d:
1362
text3d:
1330
 
1363
 
1331
Text 175,290,0x00000000,now, nowlen-now
1364
Text 175,290,0x00000000,now, nowlen-now
1332
Text 175,310,,nowp, nowplen-nowp
1365
Text 175,310,,nowp, nowplen-nowp
1333
Text 95,290,,mmxp, mmxplen-mmxp
1366
Text 95,290,,mmxp, mmxplen-mmxp
1334
 
1367
 
1335
jmp still
1368
jmp still
1336
 
1369
 
1337
;--------------------------
1370
;--------------------------
1338
NO_CPUID:
1371
NO_CPUID:
1339
 Text 15,50,0x00000000,oblom, oblomlen-oblom
1372
 Text 15,50,0x00000000,oblom, oblomlen-oblom
1340
 
1373
 
1341
FREEZE:
1374
FREEZE:
1342
nop
1375
nop
1343
jmp FREEZE ; maybe we should close application or just made some Warning and jump to still:
1376
jmp FREEZE ; maybe we should close application or just made some Warning and jump to still:
1344
;----------------
1377
;----------------
1345
still:
1378
still:
1346
 
1379
 
1347
; çàòåì ïåðåõîäèì â öèêë îæèäàíèÿ ñîáûòèé
1380
; waiting for events
1348
event_wait:
1381
event_wait:
1349
 
1382
 
1350
    ;================_RAM_==============
1383
    ;================_RAM_==============
1351
  Number 200,340,0,4,dword [ram_size_a],0xFFFFFF
1384
  Number 200,340,0,4,dword [ram_size_a],0xFFFFFF
1352
 
1385
 
1353
  mov eax, 18
1386
  mov eax, 18
1354
  mov ebx, 16
1387
  mov ebx, 16
1355
  mcall
1388
  mcall
1356
 
1389
 
1357
  shr eax, 10
1390
  shr eax, 10
1358
 
1391
 
1359
  mov [ram_size_a], eax
1392
  mov [ram_size_a], eax
1360
 
1393
 
1361
  mov eax, 18
1394
  mov eax, 18
1362
  mov ebx, 17
1395
  mov ebx, 17
1363
  mcall
1396
  mcall
1364
 
1397
 
1365
  shr eax, 10
1398
  shr eax, 10
1366
 
1399
 
1367
  mov [ram_size_t], eax
1400
  mov [ram_size_t], eax
1368
 
1401
 
1369
  Text 115,340,0x00000000,ram, ramlen-ram
1402
  Text 115,340,0x00000000,ram, ramlen-ram
1370
  Text 300,340,,mb, mblen-mb
1403
  Text 300,340,,mb, mblen-mb
1371
 
1404
 
1372
  Number 200,340,0,4,dword [ram_size_a],0x000000
1405
  Number 200,340,0,4,dword [ram_size_a],0x000000
1373
 
1406
 
1374
  Number 270,340,,,dword [ram_size_t]
1407
  Number 270,340,,,dword [ram_size_t]
1375
 
1408
 
1376
;==============================
1409
;==============================
1377
 
1410
 
1378
	mov	eax,23	     ; ôóíêöèÿ 23: îæèäàíèå ñîáûòèÿ
1411
	mov	eax,23	     ; function 23 - event wait
1379
	mov	ebx,50	     ; æäåìñ 0.5 ñåê
1412
	mov	ebx,50	     ; wait for 0.5 second
1380
	mcall
1413
	mcall
1381
 
1414
 
1382
    cmp  eax,1		;
1415
    cmp  eax,1		; 
1383
    je	 red		;  redraw
1416
    je	 red		;  redraw
1384
    cmp  eax,2		;
1417
    cmp  eax,2		; 
1385
    je	 key		;  key
1418
    je	 key		;  key
1386
    cmp  eax,3		;
1419
    cmp  eax,3		; 
1387
    je	 button 	;  button
1420
    je	 button 	;  button
1388
    jmp  still		;
1421
    jmp  still		; 
1389
  key:			;
1422
  key:			; 
1390
    mcall		;
1423
    mcall		; 
1391
    jmp  still		;
1424
    jmp  still		; 
1392
  button:		;
1425
  button:		; 
1393
    mov  eax,17 	;
1426
    mov  eax,17 	; 
1394
    mcall		;
1427
    mcall		; 
1395
    cmp  ah,1		;  = 1 ?
1428
    cmp  ah,1		;  = 1 ?
1396
    je	close		; close
1429
    je	close		; close
1397
 
1430
 
1398
    cmp  ah,2		;  = 2 ?
1431
    cmp  ah,2		;  = 2 ?
1399
    je	thread_start	;
1432
    je	thread_start	; 
1400
			;
1433
			; 
1401
    cmp  ah,3		;  = 3 ?
1434
;    cmp  ah,3		;  = 3 ?
1402
    jne  still
1435
    jne  still
1403
 
-
 
1404
vybor:
1436
 
1405
 
1437
 
1406
 Number 310,70,0,4,dword [rating],0xFFFFFF ;
-
 
1407
 
-
 
1408
 Number 315,90,0,3,dword [FRS]; MHz
-
 
1409
 
-
 
1410
cmp [FRS], 266
-
 
1411
jz .s1
-
 
1412
cmp [FRS], 333
-
 
1413
jz .s2
-
 
1414
cmp [FRS], 400
-
 
1415
jz .s3
-
 
1416
 
-
 
1417
.s1:
1438
;vybor:
1418
mov [FRS], 333
1439
 
1419
.rating:
1440
; Number 310,70,0,4,dword [rating],0xFFFFFF ;
-
 
1441
 
-
 
1442
; Number 315,90,0,3,dword [FRS]; MHz 
-
 
1443
 
-
 
1444
;cmp [FRS], 266
-
 
1445
;jz .s1
-
 
1446
;cmp [FRS], 333
-
 
1447
;jz .s2
-
 
1448
;cmp [FRS], 400
-
 
1449
;jz .s3
-
 
1450
 
-
 
1451
;.s1:
-
 
1452
;mov [FRS], 333
-
 
1453
;.rating:;
1420
call newrating
1454
;call newrating
1421
 Number 310,70,0,4,dword [rating],0x000000
1455
; Number 310,70,0,4,dword [rating],0x000000
1422
 
1456
 
1423
 Number 315,90,0,3,dword [FRS]; MHz
1457
; Number 315,90,0,3,dword [FRS]; MHz 
1424
jmp  still
1458
;jmp  still
1425
 
1459
;
1426
.s2:
1460
;.s2:
1427
mov [FRS], 400
1461
;mov [FRS], 400
1428
jmp .rating
1462
;jmp .rating
1429
 
1463
;
1430
.s3:
1464
;.s3:
1431
mov [FRS], 266
1465
;mov [FRS], 266
1432
jmp .rating
1466
;jmp .rating
1433
 
1467
 
1434
close:
1468
close:
1435
    mov   eax,-1
1469
    mov   eax,-1	
1436
    mcall
1470
    mcall	       
1437
 
1471
 
1438
;**************************** THREAD-SECOND WINDOW
1472
;**************************** THREAD-SECOND WINDOW
1439
thread_start:
1473
thread_start:
1440
 
1474
 
1441
    cmp  [num_win2],0
1475
    cmp  [num_win2],0	
1442
 
1476
 
1443
    jne  still
1477
    jne  still		
1444
 
1478
 
1445
;================================================RSA test
1479
;================================================RSA test
1446
 
1480
 
1447
;test rsa coding speed
1481
;test rsa coding speed
1448
        call    init_test
1482
        call    init_test
1449
;length of module - 256 bit
1483
;length of module - 256 bit
1450
  mov  eax,26
1484
  mov  eax,26
1451
  mov  ebx,9
1485
  mov  ebx,9
1452
  mcall
1486
  mcall
1453
  add  eax,100 ;test lasts 1 second.
1487
  add  eax,100 ;test lasts 1 second.
1454
  push eax
1488
  push eax
1455
.loop:
1489
.loop:
1456
  push 4     ;do 4 iterations - this reduces number of calls mcall.
1490
  push 4     ;do 4 iterations - this reduces number of calls mcall.
1457
.loop1:
1491
.loop1:
1458
  call rsa_test   ;this procedure change all registers
1492
  call rsa_test   ;this procedure change all registers
1459
  dec  dword [esp]
1493
  dec  dword [esp]
1460
  jnz  .loop1
1494
  jnz  .loop1
1461
  pop  ecx
1495
  pop  ecx
1462
  mov  eax,26
1496
  mov  eax,26
1463
  mov  ebx,9
1497
  mov  ebx,9
1464
  mcall
1498
  mcall
1465
  cmp  eax,dword [esp]	 ;Is time changed?
1499
  cmp  eax,dword [esp]	 ;Is time changed?
1466
  jl   .loop
1500
  jl   .loop
1467
  pop  eax
1501
  pop  eax
1468
  shr  dword [iter],4 ;[iter] - speed in Kb/sec. (every iteration codes 64 bytes)
1502
  shr  dword [iter],4 ;[iter] - speed in Kb/sec. (every iteration codes 64 bytes)
1469
CreateTread window_2,thread2_esp
1503
CreateTread window_2,thread2_esp
1470
  jmp  still
1504
  jmp  still
1471
 
1505
 
1472
window_2:
1506
window_2:
1473
    mov  [num_win2],1
1507
    mov  [num_win2],1	
1474
    call draw_window_2
1508
    call draw_window_2	
1475
 
1509
 
1476
still_2:
1510
still_2:		
1477
 
1511
 
1478
    mov  eax,10
1512
    mov  eax,10 	
1479
    mcall
1513
    mcall		
1480
 
1514
 
1481
    cmp  eax,1
1515
    cmp  eax,1		
1482
    je	 window_2	;  window_2
1516
    je	 window_2	;  window_2
1483
    cmp  eax,2		;
1517
    cmp  eax,2		; 
1484
    je	 key_2		;  key_2
1518
    je	 key_2		;  key_2
1485
    cmp  eax,3		;
1519
    cmp  eax,3		; 
1486
    je	 button_2	;  button_2
1520
    je	 button_2	;  button_2
1487
 
1521
 
1488
    jmp  still_2	;
1522
    jmp  still_2	; 
1489
 
1523
 
1490
  key_2:		;
1524
  key_2:		; 
1491
    mcall		;
1525
    mcall		; 
1492
    jmp  still_2	;
1526
    jmp  still_2	; 
1493
 
1527
 
1494
  button_2:		;
1528
  button_2:		; 
1495
    mov  eax,17 	; 17
1529
    mov  eax,17 	; 17 
1496
    mcall		;
1530
    mcall		; 
1497
 
1531
 
1498
    cmp  ah,1		; = 1 ?
1532
    cmp  ah,1		; = 1 ?
1499
    jne  still_2	; noclose
1533
    jne  still_2	; noclose
1500
 
1534
 
1501
    mov  [num_win2],0	;
1535
    mov  [num_win2],0	; 
1502
 
1536
 
1503
    or	 eax,-1 	;
1537
    or	 eax,-1 	; 
1504
    mcall
1538
    mcall
1505
 
1539
 
1506
draw_window_2:
1540
draw_window_2:
1507
    mov  eax,12 		   ; function 12:tell os about windowdraw
1541
    mov  eax,12 		   ; function 12:tell os about windowdraw
1508
    mov  ebx,1h 		    ; 1, start of draw
1542
    mov  ebx,1h 		    ; 1, start of draw
1509
    mcall
1543
    mcall
1510
 
1544
 
1511
 
1545
 
1512
  Window 250,250,420,390, 0x33FFFFFF, 0x805080d0, standard
1546
  Window 250,250,420,390, 0x33FFFFFF, 0x805080d0, standard
1513
	  ; place size
1547
	  ; place size
1514
 
1548
 
1515
Text 15, 10,0x00000000, STDCA, STDCAlen-STDCA
1549
Text 15, 10,0x00000000, STDCA, STDCAlen-STDCA
1516
Text 215, 10,, EXTCA, EXTCAlen-EXTCA
1550
Text 215, 10,, EXTCA, EXTCAlen-EXTCA
1517
 
1551
 
1518
Number 135,10,1*256,8,dword [stdc],0x000000
1552
Number 135,10,1*256,8,dword [stdc],0x000000
1519
Number 335,10,,,dword [extc],
1553
Number 335,10,,,dword [extc],
1520
 
1554
 
1521
Text 15, 30,0x00000000, FPU, FPUlen-FPU
1555
Text 15, 30,0x00000000, FPU, FPUlen-FPU
1522
Text 115, 30,, VME, VMElen-VME
1556
Text 115, 30,, VME, VMElen-VME
1523
Text 215, 30,, DE,  DElen-DE
1557
Text 215, 30,, DE,  DElen-DE
1524
Text 315, 30,, PSE, PSElen-PSE
1558
Text 315, 30,, PSE, PSElen-PSE
1525
 
1559
 
1526
Text 15, 50,,TSC, TSClen-TSC
1560
Text 15, 50,,TSC, TSClen-TSC
1527
Text 115,50,,MSR, MSRlen-MSR
1561
Text 115,50,,MSR, MSRlen-MSR
1528
Text 215,50,,PAE, PAElen-PAE
1562
Text 215,50,,PAE, PAElen-PAE
1529
Text 315,50,,MCE, MCElen-MCE
1563
Text 315,50,,MCE, MCElen-MCE
1530
 
1564
 
1531
Text 15,70,,CX8, CX8len-CX8
1565
Text 15,70,,CX8, CX8len-CX8
1532
Text 115,70,,APIC, APIClen-APIC
1566
Text 115,70,,APIC, APIClen-APIC
1533
Text 215,70,,Res, Reslen-Res
1567
Text 215,70,,Res, Reslen-Res
1534
Text 315,70,,SEP, SEPlen-SEP
1568
Text 315,70,,SEP, SEPlen-SEP
1535
 
1569
 
1536
Text 15,90,,MTRR, MTRRlen-MTRR
1570
Text 15,90,,MTRR, MTRRlen-MTRR
1537
Text 115,90,,PGE, PGElen-PGE
1571
Text 115,90,,PGE, PGElen-PGE
1538
Text 215,90,,MCA, MCAlen-MCA
1572
Text 215,90,,MCA, MCAlen-MCA
1539
Text 315,90,,CMOV, CMOVlen-CMOV
1573
Text 315,90,,CMOV, CMOVlen-CMOV
1540
 
1574
 
1541
Text 15,110,,PAT, PATlen-PAT
1575
Text 15,110,,PAT, PATlen-PAT
1542
Text 115,110,,PSE36, PSE36len-PSE36
1576
Text 115,110,,PSE36, PSE36len-PSE36
1543
Text 215,110,,PSNUM, PSNUMlen-PSNUM
1577
Text 215,110,,PSNUM, PSNUMlen-PSNUM
1544
Text 315,110,,CLFLUSHn, CLFLUSHnlen-CLFLUSHn
1578
Text 315,110,,CLFLUSHn, CLFLUSHnlen-CLFLUSHn
1545
 
1579
 
1546
Text 15,130,,Res, Reslen-Res
1580
Text 15,130,,Res, Reslen-Res
1547
Text 115,130,,DTS, DTSlen-DTS
1581
Text 115,130,,DTS, DTSlen-DTS
1548
Text 215,130,,ACPI, ACPIlen-ACPI
1582
Text 215,130,,ACPI, ACPIlen-ACPI
1549
Text 315,130,,MMX, MMXlen-MMX
1583
Text 315,130,,MMX, MMXlen-MMX
1550
 
1584
 
1551
Text 15,150,,FXSR, FXSRlen-FXSR
1585
Text 15,150,,FXSR, FXSRlen-FXSR
1552
Text 115,150,,SSE, SSElen-SSE
1586
Text 115,150,,SSE, SSElen-SSE
1553
Text  215,150,,SSE2, SSE2len-SSE2
1587
Text  215,150,,SSE2, SSE2len-SSE2
1554
Text 315,150,,SSn, SSnlen-SSn
1588
Text 315,150,,SSn, SSnlen-SSn
1555
 
1589
 
1556
Text 15,170,,HTT, HTTnlen-HTTn
1590
Text 15,170,,HTT, HTTnlen-HTTn
1557
Text 115,170,,TM, TMlen-TM
1591
Text 115,170,,TM, TMlen-TM
1558
Text 215,170,,IA64, IA64len-IA64
1592
Text 215,170,,IA64, IA64len-IA64
1559
Text 315,170,,PBE, PBElen-PBE
1593
Text 315,170,,PBE, PBElen-PBE
1560
;---------------
1594
;---------------
1561
DrawLine 0,  410, 185,185,0x8080FF  ;10
1595
DrawLine 0,  410, 185,185,0x8080FF  ;10
1562
 
1596
 
1563
mov   eax,$80000000
1597
mov   eax,$80000000
1564
cpuid
1598
cpuid
1565
;mov eax, $03020101   for test of reaction
1599
;mov eax, $03020101   for test of reaction
1566
test eax, eax
1600
test eax, eax
1567
js  goooddd
1601
js  goooddd
1568
 
1602
 
1569
baaadd:
1603
baaadd:
1570
Text 95,235,0x00000000,NEF, NEFlen-NEF
1604
Text 95,235,0x00000000,NEF, NEFlen-NEF
1571
jmp too
1605
jmp too
1572
 
1606
 
1573
goooddd:
1607
goooddd:
1574
Text 15,195,0x00000000,SS3, SS3len-SS3
1608
Text 15,195,0x00000000,SS3, SS3len-SS3
1575
Text 15,215,,MON, MONlen-MON
1609
Text 15,215,,MON, MONlen-MON
1576
Text 15,235,,DS_CPL, DS_CPLlen-DS_CPL
1610
Text 15,235,,DS_CPL, DS_CPLlen-DS_CPL
1577
Text 15,255,,EST, ESTlen-EST
1611
Text 15,255,,EST, ESTlen-EST
1578
Text 15,275,,TM2, TM2len-TM2
1612
Text 15,275,,TM2, TM2len-TM2
1579
Text 15,295,,VMX, VMXlen-VMX
1613
Text 15,295,,VMX, VMXlen-VMX
1580
Text 15,315,,SVM, SVMlen-SVM
1614
Text 15,315,,SVM, SVMlen-SVM
1581
 
1615
 
1582
Text 115,195,,CNXT_ID, CNXT_IDlen-CNXT_ID
1616
Text 115,195,,CNXT_ID, CNXT_IDlen-CNXT_ID
1583
Text 115,215,,CX16, CX16len-CX16
1617
Text 115,215,,CX16, CX16len-CX16
1584
Text 115,235,,ETPRD, ETPRDlen-ETPRD
1618
Text 115,235,,ETPRD, ETPRDlen-ETPRD
1585
Text 115,255,,SYS, SYSlen-SYS
1619
Text 115,255,,SYS, SYSlen-SYS
1586
Text 115,275,,LAF, LAFlen-LAF
1620
Text 115,275,,LAF, LAFlen-LAF
1587
Text 115,295,,SSSE3, SSSE3len-SSSE3
1621
Text 115,295,,SSSE3, SSSE3len-SSSE3
1588
Text 115,315,,MCR8, MCR8len-MCR8
1622
Text 115,315,,MCR8, MCR8len-MCR8
1589
 
1623
 
1590
Text 215,195,,MP, MPlen-MP
1624
Text 215,195,,MP, MPlen-MP
1591
Text 215,215,,NX, NXlen-NX
1625
Text 215,215,,NX, NXlen-NX
1592
Text 215,235,,MMXPi, MMXPilen-MMXPi
1626
Text 215,235,,MMXPi, MMXPilen-MMXPi
1593
Text 215,255,,MMXn, MMXnlen-MMXn
1627
Text 215,255,,MMXn, MMXnlen-MMXn
1594
Text 215,275,,FXSRn, FXSRnlen-FXSRn
1628
Text 215,275,,FXSRn, FXSRnlen-FXSRn
1595
Text 215,295,,DCA,DCAlen-DCA
1629
Text 215,295,,DCA,DCAlen-DCA
1596
 
1630
 
1597
Text 315,195,,FFXSR, FFXSRlen-FFXSR
1631
Text 315,195,,FFXSR, FFXSRlen-FFXSR
1598
Text 315,215,,TSCP, TSCPlen-TSCP
1632
Text 315,215,,TSCP, TSCPlen-TSCP
1599
Text 315,235,,LM, LMlen-LM
1633
Text 315,235,,LM, LMlen-LM
1600
Text 315,255,,DNo, DNolen-DNo
1634
Text 315,255,,DNo, DNolen-DNo
1601
Text 315,275,,DN, DNlen-DN
1635
Text 315,275,,DN, DNlen-DN
1602
Text 315,295,,CMPL, CMPLlen-CMPL
1636
Text 315,295,,CMPL, CMPLlen-CMPL
1603
 
1637
 
1604
 
1638
 
1605
too:
1639
too:
1606
DrawLine 0,  410, 335,335,0x8080FF  ;10
1640
DrawLine 0,  410, 335,335,0x8080FF  ;10
1607
 
1641
 
1608
Text 15,350,0x00000000,speed, speedlen-speed
1642
Text 15,350,0x00000000,speed, speedlen-speed
1609
Text 130,350,,kbpersec, kbperseclen-kbpersec
1643
Text 130,350,,kbpersec, kbperseclen-kbpersec
1610
 
1644
 
1611
Number 95,350,0,5,dword [iter],0x000000; RSA test results
1645
Number 95,350,0,5,dword [iter],0x000000; RSA test results
1612
 
1646
 
1613
    mov  eax,12
1647
    mov  eax,12
1614
    mov  ebx,2h
1648
    mov  ebx,2h
1615
    mcall
1649
    mcall
1616
 
1650
 
1617
    ret
1651
    ret
1618
 
1652
 
1619
num_win2 db 0
1653
num_win2 db 0
1620
 
1654
 
1621
;   *******  main window *******
1655
;   *******  main window *******
1622
 
1656
 
1623
draw_window:
1657
draw_window:
1624
   mov eax,12
1658
   mov eax,12
1625
   mov	ebx,1h
1659
   mov	ebx,1h
1626
   mcall
1660
   mcall
1627
 
1661
 
1628
  Window 150,150,350,385, 0x34FFFFFF, 0x805080d0, title
1662
  Window 150,150,350,385, 0x34FFFFFF, 0x805080d0, title
1629
	  ; place size
1663
	  ; place size
1630
 
1664
 
1631
  Button 15,330,92,23,2,0x03FFFFFF   ;  button "press for more"
1665
  Button 15,330,92,23,2,0x03FFFFFF   ;  button "press for more"
1632
 
1666
 
1633
	mov	esi, knopka
1667
	mov	esi, knopka
1634
	mov	edi, img_area2
1668
	mov	edi, img_area2
1635
	call	load_gif2
1669
	call	load_gif2
1636
PutImage 15,330,93,24,img_area2+8   ; image "press for more"
1670
PutImage 15,330,93,24,img_area2+8   ; image "press for more"
1637
;         place   size
1671
;         place   size
1638
 
1672
 
1639
 
1673
 
1640
    mov  eax,12
1674
    mov  eax,12
1641
    mov  ebx,2h
1675
    mov  ebx,2h
1642
    mcall
1676
    mcall
1643
 
1677
 
1644
    Text 130,270,0x00000000,instruct, instructlen-instruct
1678
    Text 130,270,0x00000000,instruct, instructlen-instruct
1645
 
1679
 
1646
    DrawLine  10,  330, 325,325,0x8080FF
1680
    DrawLine  10,  330, 325,325,0x8080FF
1647
    DrawLine 330,  330, 275,325;,0x8080FF
1681
    DrawLine 330,  330, 275,325;,0x8080FF
1648
    DrawLine  10,   10, 275,325;,0x8080FF
1682
    DrawLine  10,   10, 275,325;,0x8080FF
1649
    DrawLine  10,  125, 275,275;,0x8080FF
1683
    DrawLine  10,  125, 275,275;,0x8080FF
1650
    DrawLine 230,  330, 275,275;,0x8080FF
1684
    DrawLine 230,  330, 275,275;,0x8080FF
1651
 
1685
 
1652
  cmp dword[smallvendor], 'cAMD'
1686
  cmp dword[smallvendor], 'cAMD'
1653
  jne cont
1687
  jne cont
1654
  cmp [f], $6
1688
  cmp [f], $6
1655
  jne cont
1689
  jne cont
1656
 
1690
 
1657
   Button 240,85,69,15,3,0x030000FF  ;  button for rating
1691
;   Button 240,85,69,15,3,0x030000FF  ;  button for rating
1658
 
1692
 
1659
    Text 245,90,0x00FFFFFF,FR, FRlen-FR
1693
;    Text 245,90,0x00FFFFFF,FR, FRlen-FR ; text at button
1660
 
1694
 
1661
   call newrating; !!!!
1695
   call newrating; !!!!
1662
 
1696
 
1663
     cont:
1697
     cont:
1664
 
1698
 
1665
 
1699
 
1666
    Text 15,50,0x00000000,tsum, tsumlen-tsum   ;
1700
    Text 15,50,0x00000000,tsum, tsumlen-tsum   ; 
1667
    Text 15,90,,cpuname, cpunamelen-cpuname;
1701
    Text 15,90,,cpuname, cpunamelen-cpuname; 
1668
    Text 255,250,,typen, typenlen-typen;
1702
    Text 255,250,,typen, typenlen-typen;
1669
    Text 175, 50,,tech, techlen-tech;
1703
    Text 175, 50,,tech, techlen-tech; 
1670
 
1704
 
1671
    Number 82,50,0,4,dword [total],0x000000; MHz
1705
    Number 82,50,0,4,dword [total],0x000000; MHz
1672
    Number 110,50,0,2,dword [sot]; KHz
1706
    Number 110,50,0,2,dword [sot]; KHz
1673
 
1707
 
1674
    Text 15,170,0x00000000,cache2, cache2len-cache2
1708
    Text 15,170,0x00000000,cache2, cache2len-cache2
1675
    Text 15,210,,cache3, cache3len-cache3
1709
    Text 15,210,,cache3, cache3len-cache3
1676
    Text 15,230,,cache4, cache4len-cache4
1710
    Text 15,230,,cache4, cache4len-cache4
1677
 
1711
 
1678
 
1712
 
1679
    Number 75,110,1*256,1,dword [f],0x000000 ;
1713
    Number 75,110,1*256,1,dword [f],0x000000 ; 
1680
    Number 75,130,,,dword [m]
1714
    Number 75,130,,,dword [m]
1681
    Number 75,150,,,dword [s]
1715
    Number 75,150,,,dword [s]
1682
 
1716
 
1683
    Number 110,110,1*256,2,dword [ef]
1717
    Number 110,110,1*256,2,dword [ef]
1684
    Number 110,130,,,dword [em]
1718
    Number 110,130,,,dword [em]
1685
 
1719
 
1686
Text   15,30,0x00000000,multil, multillen-multil
1720
Text   15,30,0x00000000,multil, multillen-multil
1687
Text   175,30,,freql, freqllen-freql
1721
Text   175,30,,freql, freqllen-freql
1688
Number 85,30,0,2,dword [multb],0x000000;
1722
Number 85,30,0,2,dword [multb],0x000000;
1689
Number 105,30,0,1,dword [multa]
1723
Number 105,30,0,1,dword [multa]
1690
Number 259,30,0,4,dword [freqbb]
1724
Number 259,30,0,4,dword [freqbb]
1691
Number 289,30,0,2,dword [freqll]
1725
Number 289,30,0,2,dword [freqll]
1692
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1726
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1693
;Text 115,280,0x00000000,logcpus, logcpuslen-logcpus
1727
;Text 115,280,0x00000000,logcpus, logcpuslen-logcpus
1694
;Number 250,280,0,2,dword [number_of_log_cpus],0x000000
1728
;Number 250,280,0,2,dword [number_of_log_cpus],0x000000
1695
 
1729
 
1696
 
1730
 
1697
    Text 15,10,0x00000000,stm, stmlen-stm
1731
    Text 15,10,0x00000000,stm, stmlen-stm
1698
;  Fix for deleting leading whitespaces
1732
;  Fix for deleting leading whitespaces
1699
;  in Intel P4's internal name
1733
;  in Intel P4's internal name
1700
;  by Madis Calme
1734
;  by Madis Calme
1701
;  23.12.2004 ver. 0.81
1735
;  23.12.2004 ver. 0.81
1702
    cld
1736
    cld
1703
    mov  edi,myname
1737
    mov  edi,myname
1704
    mov  al,20h
1738
    mov  al,20h
1705
    or	 ecx,-1
1739
    or	 ecx,-1
1706
    repe scasb
1740
    repe scasb
1707
    dec  edi
1741
    dec  edi
1708
    mov  esi,mynamelen
1742
    mov  esi,mynamelen
1709
    sub  esi,edi
1743
    sub  esi,edi
1710
    Text 105, 10, 0x00000000, edi, esi
1744
    Text 105, 10, 0x00000000, edi, esi
1711
;    Text 105,20,0x00000000,myname, mynamelen-myname
1745
;    Text 105,20,0x00000000,myname, mynamelen-myname
1712
;-
1746
;-
1713
Text 15,250,,brandid, brandidlen-brandid
1747
Text 15,250,,brandid, brandidlen-brandid
1714
 
1748
 
1715
    ret 		;
1749
    ret 		; 
1716
 
1750
 
1717
load_gif:
1751
load_gif:
1718
        mov     edi, img_area
1752
        mov     edi, img_area
1719
load_gif2:
1753
load_gif2:
1720
 
1754
 
1721
COLOR_ORDER equ MENUETOS
1755
COLOR_ORDER equ MENUETOS
1722
include 'gif_lite.inc'        ; parse GIF files
1756
include 'gif_lite.inc'        ; parse GIF files
1723
 
1757
 
1724
; DATA AREA
1758
; DATA AREA
1725
 
1759
 
-
 
1760
title	 db   'CPUID 2.28 by S.Kuzmin & the KolibriOS team',0
1726
title	 db   'CPUID 2.21 by S.Kuzmin & the KolibriOS team',0
1761
 
-
 
1762
 
1727
 
1763
tsum:
-
 
1764
 
1728
tsum:
1765
if lang eq it
-
 
1766
 
1729
if lang eq it
1767
                db 'Frequenza:     .   MHz'
-
 
1768
 
1730
		db 'Frequenza:     .   MHz'
1769
else
-
 
1770
 
1731
else
1771
                db 'Frequency:     .   MHz'
1732
		db 'Frequency:     .   MHz'
1772
 
1733
end if
1773
end if
1734
 
1774
 
-
 
1775
 
-
 
1776
 
-
 
1777
 
1735
 
1778
 
-
 
1779
tsumlen:
-
 
1780
 
1736
tsumlen:
1781
 
-
 
1782
 
1737
 
1783
total dd 0x0
-
 
1784
 
1738
total dd 0x0
1785
total1 dd 0x0
-
 
1786
 
1739
total1 dd 0x0
1787
rating dd 0x0
-
 
1788
 
-
 
1789
rat dd 0x0  ;
1740
rating dd 0x0
1790
 
-
 
1791
 
1741
rat dd 0x0  ;
1792
 
-
 
1793
ram:
1742
 
1794
 
-
 
1795
if lang eq it
1743
ram:
1796
 
-
 
1797
                db 'RAM libera:        su'
1744
if lang eq it
1798
 
-
 
1799
else
1745
		db 'RAM libera:        su'
1800
 
1746
else
1801
                db 'Available RAM:     out of'
1747
		db 'Available RAM:     out of'
1802
 
1748
end if
1803
end if
1749
 
1804
 
-
 
1805
 
-
 
1806
 
-
 
1807
 
1750
 
1808
 
-
 
1809
ramlen:
-
 
1810
 
1751
ramlen:
1811
 
-
 
1812
 
1752
 
1813
NEF:
-
 
1814
 
1753
NEF:
1815
db 'EXTENDED FEATURES ARE NOT AVAILABLE'
-
 
1816
 
-
 
1817
NEFlen:
1754
db 'EXTENDED FEATURES ARE NOT AVAILABLE'
1818
 
-
 
1819
 
1755
NEFlen:
1820
 
-
 
1821
mb :
1756
 
1822
 
-
 
1823
db 'MB'
-
 
1824
 
1757
mb :
1825
mblen:
-
 
1826
 
1758
db 'MB'
1827
 
-
 
1828
 
1759
mblen:
1829
;logcpus :
-
 
1830
 
-
 
1831
;db 'Number of logical CPU:'
1760
 
1832
 
-
 
1833
;logcpuslen:
1761
;logcpus :
1834
 
-
 
1835
 
1762
;db 'Number of logical CPU:'
1836
 
-
 
1837
speed :
1763
;logcpuslen:
1838
 
-
 
1839
if lang eq it
1764
 
1840
 
-
 
1841
                db 'Performance'
1765
speed :
1842
 
1766
if lang eq it
1843
else
1767
		db 'Performance'
1844
 
1768
else
1845
                db 'PERFORMANCE:'
1769
		db 'PERFORMANCE:'
1846
 
1770
end if
1847
end if
1771
 
1848
 
-
 
1849
 
-
 
1850
 
-
 
1851
 
1772
 
1852
 
-
 
1853
speedlen:
-
 
1854
 
1773
speedlen:
1855
 
-
 
1856
 
1774
 
1857
kbpersec:
-
 
1858
 
1775
kbpersec:
1859
db 'KB/SEC'
-
 
1860
 
-
 
1861
kbperseclen:
1776
db 'KB/SEC'
1862
 
-
 
1863
 
1777
kbperseclen:
1864
 
-
 
1865
instruct:
1778
 
1866
 
-
 
1867
if lang eq it
1779
instruct:
1868
 
-
 
1869
                db 'Set istruzioni'
1780
if lang eq it
1870
 
-
 
1871
else
1781
		db 'Set istruzioni'
1872
 
1782
else
1873
                db 'Instruction sets'
1783
		db 'Instruction sets'
1874
 
1784
end if
1875
end if
1785
 
1876
 
-
 
1877
 
-
 
1878
 
-
 
1879
 
1786
 
1880
 
-
 
1881
instructlen:
-
 
1882
 
1787
instructlen:
1883
 
-
 
1884
 
-
 
1885
standard    db 'Standard and Extended features plus Performance test',0
1788
 
1886
 
-
 
1887
 
1789
standard    db 'Standard and Extended features plus Performance test',0
1888
 
-
 
1889
;FR:
1790
 
1890
 
-
 
1891
;    db 'Choose FSB:'
-
 
1892
 
1791
FR:
1893
;FRlen:
-
 
1894
 
1792
    db 'Choose FSB:'
1895
 
-
 
1896
 
1793
FRlen:
1897
STDCA:
-
 
1898
 
-
 
1899
    db 'Highest STD call is         '
1794
 
1900
 
-
 
1901
STDCAlen:
1795
STDCA:
1902
 
-
 
1903
 
1796
    db 'Highest STD call is         '
1904
 
-
 
1905
EXTCA:
-
 
1906
 
1797
STDCAlen:
1907
    db 'Highest EXT call is         h'
-
 
1908
 
1798
 
1909
EXTCAlen:
-
 
1910
 
1799
EXTCA:
1911
 
-
 
1912
 
-
 
1913
brandid:
1800
    db 'Highest EXT call is         h'
1914
 
-
 
1915
    db 'Brand:'
1801
EXTCAlen:
1916
 
-
 
1917
brandidlen:
1802
 
1918
 
-
 
1919
 
1803
brandid:
1920
 
-
 
1921
oblom:
1804
    db 'Brand:'
1922
 
-
 
1923
if lang eq it
1805
brandidlen:
1924
 
-
 
1925
                db 'CPUID non e disponibile'
-
 
1926
 
1806
 
1927
else
-
 
1928
 
1807
oblom:
1929
                db 'SORRY, CPUID IS NOT AVAILABLE'
-
 
1930
 
1808
if lang eq it
1931
end if
-
 
1932
 
1809
		db 'CPUID non e disponibile'
1933
 
-
 
1934
 
1810
else
1935
oblomlen:
-
 
1936
 
1811
		db 'SORRY, CPUID IS NOT AVAILABLE'
1937
other:
-
 
1938
 
1812
end if
1939
if lang eq it
-
 
1940
 
-
 
1941
                db 'Questo vendor non e supportato'
1813
 
1942
 
-
 
1943
else
-
 
1944
 
1814
oblomlen:
1945
                db 'SORRY, THIS VENDOR IS NOT SUPPORTED YET'
-
 
1946
 
1815
other:
1947
end if
-
 
1948
 
1816
if lang eq it
1949
 
-
 
1950
 
1817
		db 'Questo vendor non e supportato'
1951
otherlen:
-
 
1952
 
1818
else
1953
 
-
 
1954
 
1819
		db 'SORRY, THIS VENDOR IS NOT SUPPORTED YET'
1955
cpuname:
-
 
1956
 
-
 
1957
if lang eq it
1820
end if
1958
 
-
 
1959
                db 'Vendor CPU              '
1821
 
1960
 
-
 
1961
else
1822
otherlen:
1962
 
-
 
1963
                db 'CPU VENDOR:             '
1823
 
1964
 
-
 
1965
end if
1824
cpuname:
1966
 
-
 
1967
 
1825
if lang eq it
1968
 
-
 
1969
cpunamelen:
1826
		db 'Vendor CPU              '
1970
 
1827
else
1971
fam:
1828
		db 'CPU VENDOR:             '
1972
 
1829
end if
1973
if lang eq it
1830
 
1974
 
1831
cpunamelen:
1975
                db 'Famiglia:   std    ext'
1832
fam:
1976
 
1833
if lang eq it
1977
else
1834
		db 'Famiglia:   std    ext'
1978
 
1835
else
1979
                db 'FAMILY:     std    ext'
1836
		db 'FAMILY:     std    ext'
1980
 
1837
end if
1981
end if
1838
 
1982
 
-
 
1983
 
-
 
1984
 
-
 
1985
 
1839
 
1986
 
-
 
1987
famlen:
1840
famlen:
1988
 
-
 
1989
mode:
1841
mode:
1990
 
-
 
1991
if lang eq it
1842
if lang eq it
1992
 
-
 
1993
                db 'Modello:    std    ext'
1843
		db 'Modello:    std    ext'
1994
 
-
 
1995
else
1844
else
1996
 
-
 
1997
                db 'MODEL:      std    ext'
1845
		db 'MODEL:      std    ext'
1998
 
-
 
1999
end if
-
 
2000
 
1846
end if
2001
 
-
 
2002
 
1847
 
2003
modelen:
-
 
2004
 
1848
modelen:
2005
step:
-
 
2006
 
1849
step:
2007
if lang eq it
-
 
2008
 
1850
if lang eq it
2009
                db 'Stepping:'
-
 
2010
 
1851
		db 'Stepping:'
2011
else
-
 
2012
 
1852
else
2013
                db 'STEPPING:'
-
 
2014
 
-
 
2015
end if
1853
		db 'STEPPING:'
2016
 
-
 
2017
 
-
 
2018
 
1854
end if
2019
steplen:
-
 
2020
 
-
 
2021
 
1855
 
2022
 
-
 
2023
cache2:
1856
steplen:
2024
 
-
 
2025
 
-
 
2026
 
1857
 
2027
    db 'L1(data):     KB       -way set     -byte line size'
-
 
2028
 
1858
cache2:
2029
cache2len:
-
 
2030
 
1859
 
2031
 
-
 
2032
 
-
 
2033
cache:
1860
    db 'L1(data):     KB       -way set     -byte line size'
2034
 
-
 
2035
    db 'L1(inst):     KB       -way set     -byte line size'
-
 
2036
 
1861
cache2len:
2037
cachelen:
-
 
2038
 
1862
 
2039
 
-
 
2040
 
-
 
2041
cache3:
1863
cache:
2042
 
-
 
2043
 
1864
    db 'L1(inst):     KB       -way set     -byte line size'
2044
 
-
 
2045
    db 'L2:      KB            -way set     -byte line size'
1865
cachelen:
2046
 
-
 
2047
cache3len:
-
 
2048
 
1866
 
2049
 
-
 
2050
 
-
 
2051
cache4:
1867
cache3:
2052
 
-
 
2053
    db 'L3:      KB            -way set     -byte line size'
1868
 
2054
 
-
 
2055
cache4len:
-
 
2056
 
1869
    db 'L2:      KB            -way set     -byte line size'
2057
 
-
 
2058
 
1870
cache3len:
2059
cacheP4:
-
 
2060
 
1871
 
2061
 
-
 
2062
 
1872
cache4:
2063
    db 'L1(inst):     Kuops    -way set     -byte line size'
-
 
2064
 
1873
    db 'L3:      KB            -way set     -byte line size'
2065
cacheP4len:
-
 
2066
 
1874
cache4len:
2067
 
1875
 
2068
 
1876
cacheP4:
2069
tech:
1877
 
2070
 
1878
    db 'L1(inst):     Kuops    -way set     -byte line size'
2071
if lang eq it
1879
cacheP4len:
2072
 
1880
 
2073
                db 'Tecnologia: 0.   micron '
1881
tech:
2074
 
1882
if lang eq it
2075
else
1883
		db 'Tecnologia: 0.   micron '
2076
 
1884
else
2077
                db 'Technology: 0.   micron '
1885
		db 'Technology: 0.   micron '
2078
 
1886
end if
2079
end if
1887
 
2080
 
-
 
2081
 
-
 
2082
 
-
 
2083
 
1888
 
2084
 
-
 
2085
techlen:
-
 
2086
 
1889
techlen:
2087
 
-
 
2088
 
1890
 
2089
typen:
-
 
2090
 
1891
typen:
2091
if lang eq it
-
 
2092
 
1892
if lang eq it
2093
                db 'Tipo:'
-
 
2094
 
1893
		db 'Tipo:'
2095
else
-
 
2096
 
1894
else
2097
                db 'Type:'
-
 
2098
 
-
 
2099
end if
1895
		db 'Type:'
2100
 
-
 
2101
 
-
 
2102
 
1896
end if
2103
typenlen:
-
 
2104
 
1897
 
2105
 
-
 
2106
 
1898
typenlen:
2107
pr:
-
 
2108
 
-
 
2109
  db 'P-rating:'
1899
 
2110
 
-
 
2111
prlen:
1900
pr:
2112
 
-
 
2113
 
1901
  db 'P-rating:'
2114
 
-
 
2115
multil:
-
 
2116
 
1902
prlen:
2117
  db 'Multiplier:   .'
-
 
2118
 
1903
 
2119
multillen:
-
 
2120
 
1904
multil:
2121
 
-
 
2122
 
-
 
2123
freql:
1905
  db 'Multiplier:   .'
2124
 
-
 
2125
  db 'System clock:     .   MHz'
1906
multillen:
2126
 
-
 
2127
freqllen:
1907
 
2128
 
-
 
2129
 
1908
freql:
2130
 
-
 
2131
name:
1909
  db 'System clock:     .   MHz'
2132
 
-
 
2133
if lang eq it
1910
freqllen:
2134
 
-
 
2135
                db 'Codename:'
-
 
2136
 
1911
 
2137
else
-
 
2138
 
-
 
2139
                db 'CODENAME:'
1912
name:
2140
 
-
 
2141
end if
1913
if lang eq it
2142
 
-
 
2143
 
1914
		db 'Codename:'
2144
 
-
 
2145
namelen:
1915
else
2146
 
-
 
2147
 
1916
		db 'CODENAME:'
2148
 
-
 
2149
AMDn:
1917
end if
2150
 
-
 
2151
    db 'AMD'
1918
 
2152
 
-
 
2153
AMDnlen:
1919
namelen:
2154
 
-
 
2155
Inteln:
1920
 
2156
 
-
 
2157
    db 'Intel'
1921
AMDn:
2158
 
-
 
2159
Intelnlen:
1922
    db 'AMD'
2160
 
-
 
2161
Cyrixn:
1923
AMDnlen:
2162
 
-
 
2163
    db 'Cyrix'
1924
Inteln:
2164
 
-
 
2165
Cyrixnlen:
1925
    db 'Intel'
2166
 
-
 
2167
IDTn:
1926
Intelnlen:
2168
 
-
 
2169
     db 'IDT/Centaur'
-
 
2170
 
1927
Cyrixn:
2171
IDTnlen:
-
 
2172
 
1928
    db 'Cyrix'
2173
Centaurn:
-
 
2174
 
1929
Cyrixnlen:
2175
     db 'VIA'
-
 
2176
 
-
 
2177
Centaurnlen:
-
 
2178
 
-
 
2179
 
-
 
2180
 
-
 
2181
Tranmsmetan:
1930
IDTn:
2182
 
-
 
2183
     db 'Transmeta'
1931
     db 'IDT/Centaur'
2184
 
-
 
2185
Tranmsmetanlen:
1932
IDTnlen:
2186
 
-
 
2187
 
-
 
2188
Vortexn:
1933
Centaurn:
2189
    db 'Vortex86'
-
 
2190
Vortexnlen:
1934
     db 'VIA'
2191
 
-
 
2192
 
1935
Centaurnlen:
2193
MMXs:
-
 
2194
 
-
 
2195
    db 'MMX:         '
1936
 
2196
 
-
 
2197
MMXslen:
1937
Tranmsmetan:
2198
 
-
 
2199
 
1938
     db 'Transmeta'
2200
 
-
 
2201
mmxp:
-
 
2202
 
1939
Tranmsmetanlen:
2203
    db 'MMX+:         '
-
 
2204
 
1940
 
2205
mmxplen:
-
 
2206
 
1941
MMXs:
2207
 
-
 
2208
 
-
 
2209
HTT:
1942
    db 'MMX:         '
2210
 
-
 
2211
    db 'HTT:          '
1943
MMXslen:
2212
 
-
 
2213
HTTlen:
1944
 
2214
 
-
 
2215
 
1945
mmxp:
2216
 
-
 
2217
HTTn:
1946
    db 'MMX+:         '
2218
 
-
 
2219
    db 'HTT:         '
1947
mmxplen:
2220
 
-
 
2221
HTTnlen:
1948
 
2222
 
-
 
2223
 
1949
HTT:
2224
 
-
 
2225
sse3:
1950
    db 'HTT:          '
2226
 
-
 
2227
    db 'SSE3:         '
-
 
2228
 
1951
HTTlen:
2229
sse3len:
-
 
2230
 
-
 
2231
now:
1952
 
2232
 
-
 
2233
    db '3DNOW!:         '
1953
HTTn:
2234
 
-
 
2235
nowlen:
1954
    db 'HTT:         '
2236
 
-
 
2237
nowp:
1955
HTTnlen:
2238
 
-
 
2239
    db '3DNOW!+:         '
-
 
2240
 
1956
 
2241
nowplen:
-
 
2242
 
1957
sse3:
2243
 
-
 
2244
 
1958
    db 'SSE3:         '
2245
;-Type
-
 
2246
 
1959
sse3len:
2247
 
-
 
2248
 
1960
now:
2249
t1      db      'OEM',0
-
 
2250
 
1961
    db '3DNOW!:         '
2251
t2      db      'Overdrive',0
-
 
2252
 
1962
nowlen:
2253
t3      db      'Dual',0
-
 
2254
 
1963
nowp:
2255
t4      db      'Unknown',0
-
 
2256
 
1964
    db '3DNOW!+:         '
2257
 
-
 
2258
 
1965
nowplen:
2259
;----------Intel
-
 
2260
 
1966
 
2261
P50:
-
 
2262
 
1967
;-Type
2263
db 'P5 A-step'
-
 
2264
 
1968
 
2265
P50len:
-
 
2266
 
1969
t1      db      'OEM',0
2267
P5:
-
 
2268
 
1970
t2      db      'Overdrive',0
2269
db 'P5'
-
 
2270
 
1971
t3      db      'Dual',0
2271
P5len:
-
 
2272
 
1972
t4      db      'Unknown',0
2273
P54T:
-
 
2274
 
1973
 
2275
db 'P24T Overdrive'
-
 
2276
 
1974
;----------Intel
2277
P54Tlen:
-
 
2278
 
1975
P50:
2279
P54C:
-
 
2280
 
1976
db 'P5 A-step'
2281
db 'P54C'
-
 
2282
 
1977
P50len:
2283
P54Clen:
-
 
2284
 
1978
P5:
2285
P55C:
-
 
2286
 
1979
db 'P5'
2287
db 'P55C (with MMX)'
-
 
2288
 
1980
P5len:
2289
P55Clen:
-
 
2290
 
1981
P54T:
2291
; ---
-
 
2292
 
1982
db 'P24T Overdrive'
2293
P60:
-
 
2294
 
1983
P54Tlen:
2295
db 'Pentium Pro A-step'
-
 
2296
 
1984
P54C:
2297
P60len:
-
 
2298
 
1985
db 'P54C'
2299
P61:
-
 
2300
 
1986
P54Clen:
2301
db 'Pentium Pro'
-
 
2302
 
1987
P55C:
2303
P61len:
-
 
2304
 
1988
db 'P55C (with MMX)'
2305
P63:
-
 
2306
 
1989
P55Clen:
2307
db 'Pentium II (Klamath)'
-
 
2308
 
1990
; ---
2309
P63len:
-
 
2310
 
1991
P60:
2311
P65:
-
 
2312
 
1992
db 'Pentium Pro A-step'
2313
db 'Pentium II (Deschutes)'
-
 
2314
 
1993
P60len:
2315
P65len:
-
 
2316
 
1994
P61:
2317
P66:
-
 
2318
 
1995
db 'Pentium Pro'
2319
db 'Celeron (Medocino)'
-
 
2320
 
1996
P61len:
2321
P66len:
-
 
2322
 
1997
P63:
2323
P67:
-
 
2324
 
1998
db 'Pentium II (Klamath)'
2325
db 'Pentium III (Katmai)'
-
 
2326
 
1999
P63len:
2327
P67len:
-
 
2328
 
2000
P65:
2329
P68:
-
 
2330
 
2001
db 'Pentium II (Deschutes)'
2331
db 'Pentium III (Coppermine)'
-
 
2332
 
2002
P65len:
2333
P68len:
-
 
2334
 
2003
P66:
2335
P69:
-
 
2336
 
2004
db 'Celeron (Medocino)'
2337
db 'Pentium M (Banias)'
-
 
2338
 
2005
P66len:
2339
P69len:
-
 
2340
 
2006
P67:
2341
P6A:
-
 
2342
 
2007
db 'Pentium III (Katmai)'
2343
db 'Pentium III Xeon (Cascades)'
-
 
2344
 
2008
P67len:
2345
P6Alen:
-
 
2346
 
2009
P68:
2347
P6B:
-
 
2348
 
2010
db 'Pentium III (Coppermine)'
2349
db 'Pentium III (Tualatin)'
-
 
2350
 
2011
P68len:
2351
P6Blen:
-
 
2352
 
2012
P69:
2353
P6D:
-
 
2354
 
2013
db 'Pentium M (Banias)'
2355
db 'Pentium M (Dothan)'
-
 
2356
 
2014
P69len:
2357
P6Dlen:
-
 
2358
 
2015
P6A:
2359
P6E:
-
 
2360
 
2016
db 'Pentium III Xeon (Cascades)'
2361
db 'Pentium M (Yonah)/ Core'
-
 
2362
 
2017
P6Alen:
2363
P6Elen:
-
 
2364
 
2018
P6B:
2365
P6F:
-
 
2366
 
2019
db 'Pentium III (Tualatin)'
2367
db 'Pentium D (Conroe)/ Core 2 (Kentsfield)'
-
 
2368
 
2020
P6Blen:
2369
P6Flen:
-
 
2370
 
2021
P6D:
2371
;---
-
 
2372
 
2022
db 'Pentium M (Dothan)'
2373
PS0:
-
 
2374
 
2023
P6Dlen:
2375
db 'Itanium (IA-64)'
-
 
2376
 
2024
P6E:
2377
PS0len:
-
 
2378
 
2025
db 'Pentium M (Yonah)/ Core'
2379
;------------
-
 
2380
 
2026
P6Elen:
2381
PF0:
-
 
2382
 
2027
P6F:
2383
db 'Pentium 4 (Willamete)'
-
 
2384
 
2028
db 'Pentium D (Conroe)/ Core 2 (Kentsfield)'
2385
PF0len:
-
 
2386
 
2029
P6Flen:
2387
PF2:
-
 
2388
 
2030
;---
2389
db 'Pentium 4 (Northwood)'
-
 
2390
 
2031
PS0:
2391
PF2len:
-
 
2392
 
2032
db 'Itanium (IA-64)'
2393
PF3:
-
 
2394
 
2033
PS0len:
2395
db 'Pentium 4 (Prescott)'
-
 
2396
 
2034
;------------
2397
PF3len:
-
 
2398
 
2035
PF0:
2399
PF5:
-
 
2400
 
2036
db 'Pentium 4 (Willamete)'
2401
db 'Pentium 4 (Tejas)'
-
 
2402
 
2037
PF0len:
2403
PF5len:
-
 
2404
 
2038
PF2:
2405
PF6:
-
 
2406
 
2039
db 'Pentium 4 (Northwood)'
2407
db 'Pentium 4 (Presler)'
-
 
2408
 
2040
PF2len:
2409
PF6len:
-
 
2410
 
2041
PF3:
2411
;----------------Intel Celerons
-
 
2412
 
2042
db 'Pentium 4 (Prescott)'
2413
P65c:
-
 
2414
 
2043
PF3len:
2415
db 'Celeron (Covington)'
-
 
2416
 
2044
PF5:
2417
P65clen:
-
 
2418
 
2045
db 'Pentium 4 (Tejas)'
2419
P68c:
-
 
2420
 
2046
PF5len:
2421
db 'Celeron (Coppermine)'
-
 
2422
 
2047
PF6:
2423
P68clen:
-
 
2424
 
2048
db 'Pentium 4 (Presler)'
2425
P6Bc:
-
 
2426
 
2049
PF6len:
2427
db 'Celeron (Tualatin)'
-
 
2428
 
2050
;----------------Intel Celerons
2429
P6Bclen:
-
 
2430
 
2051
P65c:
2431
PF0c:
-
 
2432
 
2052
db 'Celeron (Covington)'
2433
db 'Celeron (Willamete)'
-
 
2434
 
2053
P65clen:
2435
PF0clen:
-
 
2436
 
2054
P68c:
2437
PF2c:
-
 
2438
 
2055
db 'Celeron (Coppermine)'
2439
db 'Celeron (Northwood)'
-
 
2440
 
2056
P68clen:
2441
PF2clen:
-
 
2442
 
2057
P6Bc:
2443
PF3c:
-
 
2444
 
2058
db 'Celeron (Tualatin)'
2445
db 'Celeron (Prescott)'
-
 
2446
 
2059
P6Bclen:
2447
PF3clen:
-
 
2448
 
2060
PF0c:
2449
PF5c:
-
 
2450
 
2061
db 'Celeron (Willamete)'
2451
db 'Celeron D (Texas)'
-
 
2452
 
2062
PF0clen:
2453
PF5clen:
-
 
2454
 
2063
PF2c:
2455
PF6c:
-
 
2456
 
2064
db 'Celeron (Northwood)'
2457
db 'Celeron D (Presler)'
-
 
2458
 
2065
PF2clen:
2459
PF6clen:
-
 
2460
 
2066
PF3c:
2461
;---------AMD
-
 
2462
 
2067
db 'Celeron (Prescott)'
2463
A50     db 'K5 (PR75, PR90, PR100)',0
-
 
2464
 
2068
PF3clen:
2465
A51     db '5k86 (PR120, PR133)',0
-
 
2466
 
2069
PF5c:
2467
A52     db '5k86 (PR166)',0
-
 
2468
 
2070
db 'Celeron D (Texas)'
2469
A53     db '5k86 (PR200)',0
-
 
2470
 
2071
PF5clen:
2471
A56     db 'K6',0
-
 
2472
 
2072
PF6c:
2473
A57     db 'K6',0
-
 
2474
 
2073
db 'Celeron D (Presler)'
2475
A58     db 'K6-2',0
-
 
2476
 
2074
PF6clen:
2477
A59     db 'K6-III',0
-
 
2478
 
2075
;---------AMD
2479
A5D     db 'K6-2+ or K6-III+',0
-
 
2480
 
2076
A50     db 'K5 (PR75, PR90, PR100)',0
2481
;-------------------
-
 
2482
 
2077
A51     db '5k86 (PR120, PR133)',0
2483
At1     db 'Athlon',0
-
 
2484
 
2078
A52     db '5k86 (PR166)',0
2485
At2     db 'Athlon',0
-
 
2486
 
2079
A53     db '5k86 (PR200)',0
2487
At3     db 'Duron (Spitfire)',0
-
 
2488
 
2080
A56     db 'K6',0
2489
At4     db 'Athlon (Thunderbird)',0
-
 
2490
 
2081
A57     db 'K6',0
2491
At6     db 'AthlonXP (Palomino)',0
-
 
2492
 
2082
A58     db 'K6-2',0
2493
At7     db 'Duron (Morgan)',0
-
 
2494
 
2083
A59     db 'K6-III',0
2495
At8     db 'AthlonXP (Thoroughbred)',0
-
 
2496
 
2084
A5D     db 'K6-2+ or K6-III+',0
2497
At8a    db 'Duron (Applebred)',0
-
 
2498
 
2085
;-------------------
2499
Ata     db 'AthlonXP (Barton)',0
-
 
2500
 
2086
At1     db 'Athlon',0
2501
Atat    db 'AthlonXP (Thorton)',0
-
 
2502
 
2087
At2     db 'Athlon',0
2503
;-------------------
-
 
2504
 
2088
At3     db 'Duron (Spitfire)',0
2505
AF1:
-
 
2506
 
2089
At4     db 'Athlon (Thunderbird)',0
2507
db 'Dual-core Opteron'
-
 
2508
 
2090
At6     db 'AthlonXP (Palomino)',0
2509
AF1len:
-
 
2510
 
-
 
2511
AF3:
2091
At7     db 'Duron (Morgan)',0
2512
 
-
 
2513
db 'Athlon 64 (Toledo)'
2092
At8     db 'AthlonXP (Thoroughbred)',0
2514
 
-
 
2515
AF3len:
2093
At8a    db 'Duron (Applebred)',0
2516
 
-
 
2517
AF4:
-
 
2518
 
2094
Ata     db 'AthlonXP (Barton)',0
2519
db 'Athlon 64 (ClawHammer)'
-
 
2520
 
2095
Atat    db 'AthlonXP (Thorton)',0
2521
AF4len:
-
 
2522
 
2096
;-------------------
2523
AF5:
-
 
2524
 
-
 
2525
db 'Opteron/Athlon 64 FX (SledgeHammer)'
2097
AF1:
2526
 
-
 
2527
AF5len:
2098
db 'Dual-core Opteron'
2528
 
-
 
2529
 
2099
AF1len:
2530
 
-
 
2531
AFC:
-
 
2532
 
2100
AF3:
2533
db 'Athlon 64 (Newcastle)'
-
 
2534
 
2101
db 'Athlon 64 (Toledo)'
2535
AFClen:
-
 
2536
 
2102
AF3len:
2537
 
-
 
2538
 
-
 
2539
AFF:
2103
AF4:
2540
 
-
 
2541
db 'Athlon 64 (Winchester)'
2104
db 'Athlon 64 (ClawHammer)'
2542
 
-
 
2543
AFFlen:
2105
AF4len:
2544
 
-
 
2545
 
-
 
2546
 
2106
AF5:
2547
AFS:
-
 
2548
 
2107
db 'Opteron/Athlon 64 FX (SledgeHammer)'
2549
db 'Athlon 64 (San Diego)'
-
 
2550
 
2108
AF5len:
2551
AFSlen:
-
 
2552
 
-
 
2553
 
2109
 
2554
 
-
 
2555
AFV:
2110
AFC:
2556
 
-
 
2557
db 'Athlon 64 (Venice)'
2111
db 'Athlon 64 (Newcastle)'
2558
 
-
 
2559
AFVlen:
2112
AFClen:
2560
 
-
 
2561
 
2113
 
2562
 
-
 
2563
AFCs:
2114
AFF:
2564
 
-
 
2565
db 'Sempron (Paris)'
2115
db 'Athlon 64 (Winchester)'
2566
 
-
 
2567
AFCslen:
2116
AFFlen:
2568
 
-
 
2569
 
2117
 
2570
 
-
 
2571
AFCsp:
2118
AFS:
2572
 
-
 
2573
db 'Sempron (Palermo)'
2119
db 'Athlon 64 (San Diego)'
2574
 
-
 
2575
AFCsplen:
2120
AFSlen:
2576
 
-
 
2577
 
2121
 
2578
 
-
 
2579
;---------Cyrix
2122
AFV:
2580
 
-
 
2581
C52:
2123
db 'Athlon 64 (Venice)'
2582
 
-
 
2583
db '6x86 M1'
2124
AFVlen:
2584
 
-
 
2585
C52len:
2125
 
2586
 
-
 
2587
C54:
2126
AFCs:
2588
 
-
 
2589
db 'MediaGX'
2127
db 'Sempron (Paris)'
2590
 
-
 
2591
C54len:
2128
AFCslen:
2592
 
-
 
2593
C60:
2129
 
2594
 
-
 
2595
db '6x86MX M2'
2130
AFCsp:
2596
 
-
 
2597
C60len:
2131
db 'Sempron (Palermo)'
2598
 
-
 
2599
C65:
2132
AFCsplen:
2600
 
-
 
2601
db 'C3 (Cyrix M2)' ;?
2133
 
2602
 
-
 
2603
C65len:
2134
;---------Cyrix
2604
 
-
 
2605
;--------IDT
2135
C52:
2606
 
-
 
2607
V54:
2136
db '6x86 M1'
2608
 
-
 
2609
db 'WinChip C6'
2137
C52len:
2610
 
-
 
2611
V54len:
2138
C54:
2612
 
-
 
2613
V58:
2139
db 'MediaGX'
2614
 
-
 
2615
db 'WinChip 2'
2140
C54len:
2616
 
-
 
2617
V58len:
2141
C60:
2618
 
-
 
2619
V59:
2142
db '6x86MX M2'
2620
 
-
 
2621
db 'WinChip 3'
2143
C60len:
2622
 
-
 
2623
V59len:
2144
C65:
2624
 
-
 
2625
;-------VIA
2145
db 'C3 (Cyrix M2)' ;?
2626
 
-
 
2627
V66:
2146
C65len:
2628
 
-
 
2629
db 'C3 (Samuel)'  ; Joshua is unreleased 065
2147
;--------IDT
2630
 
-
 
2631
V66len:
2148
V54:
2632
 
-
 
2633
V67:
2149
db 'WinChip C6'
2634
 
-
 
2635
db 'C3 (Samuel2/Ezra)' ; ?
2150
V54len:
2636
 
-
 
2637
V67len:
2151
V58:
2638
 
-
 
2639
V68:
2152
db 'WinChip 2'
2640
 
-
 
2641
db 'C3 (Ezra-T/Eden)' ;?
2153
V58len:
2642
 
-
 
2643
V68len:
2154
V59:
2644
 
-
 
2645
V69:
2155
db 'WinChip 3'
2646
 
-
 
2647
db 'C3 (Antaur/Nehemiah)' ;?
2156
V59len:
2648
 
-
 
2649
V69len:
2157
;-------VIA
2650
 
-
 
2651
VA:
2158
V66:
2652
 
-
 
2653
db 'C7 (Esther)' ;?
-
 
2654
 
2159
db 'C3 (Samuel)'  ; Joshua is unreleased 065
2655
VAlen:
-
 
2656
 
2160
V66len:
2657
;---------Transmeta
-
 
2658
 
2161
V67:
2659
T5:
-
 
2660
 
2162
db 'C3 (Samuel2/Ezra)' ; ?
2661
db 'Crusoe' ;
-
 
2662
 
2163
V67len:
2663
T5len:
-
 
2664
 
2164
V68:
2665
TF:
-
 
2666
 
-
 
2667
db 'Efficeon' ;
2165
db 'C3 (Ezra-T/Eden)' ;?
2668
 
-
 
2669
TFlen:
-
 
2670
 
2166
V68len:
2671
;---------
-
 
2672
 
2167
V69:
2673
NG:
-
 
2674
 
2168
db 'C3 (Antaur/Nehemiah)' ;?
2675
    db 'Next generation CPU'
-
 
2676
 
2169
V69len:
2677
NGlen:
-
 
2678
 
2170
VA:
2679
 
-
 
2680
 
2171
db 'C7 (Esther)' ;?
2681
stm:
-
 
2682
 
2172
VAlen:
2683
if lang eq it
-
 
2684
 
2173
;---------Transmeta
2685
                db 'Nome:  '
-
 
2686
 
-
 
2687
else
2174
T5:
2688
 
-
 
2689
                db 'Internal name:'
2175
db 'Crusoe' ;
2690
 
-
 
2691
end if
2176
T5len:
2692
 
-
 
2693
 
2177
TF:
2694
 
-
 
2695
stmlen:
2178
db 'Efficeon' ;
2696
 
-
 
2697
 
-
 
2698
 
-
 
2699
athloncoef      db      110, 115, 120, 125, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 120
-
 
2700
 
2179
TFlen:
2701
                db      190, 120, 200, 130, 135, 140, 210, 150, 220, 160, 165, 170, 180, 230, 240
2180
;---------
2702
 
2181
NG:
2703
athlonmcoef:    db      110, 115, 120, 125, 50, 55, 60, 65,  70, 75, 80, 85, 90, 95, 100, 105
2182
    db 'Next generation CPU'
2704
 
2183
NGlen:
2705
                db      30, 190, 40, 200, 130, 135, 14, 210, 150, 220, 160, 165, 170, 230, 240
2184
 
2706
 
2185
stm:
2707
athloncoef3     db      45, 50, 40, 55, 25, 30, 60, 35
2186
if lang eq it
2708
 
2187
		db 'Nome:  '
2709
p4coef          db      160, 170, 180, 190, 200, 210, 220, 230, 80, 90, 100, 110, 120, 130, 140, 150    ; Pentium 4 (Willamete)
2188
else
2710
 
2189
		db 'Internal name:'
2711
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
2190
end if
2712
 
2191
 
2713
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
2192
stmlen:
2714
 
2193
 
2715
 
2194
athloncoef	db	110, 115, 120, 125, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 120
2716
 
2195
		db	190, 120, 200, 130, 135, 140, 210, 150, 220, 160, 165, 170, 180, 230, 240
2717
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2196
athlonmcoef:	db	110, 115, 120, 125, 50, 55, 60, 65,  70, 75, 80, 85, 90, 95, 100, 105
2718
 
2197
		db	30, 190, 40, 200, 130, 135, 14, 210, 150, 220, 160, 165, 170, 230, 240
2719
;
2198
athloncoef3	db	45, 50, 40, 55, 25, 30, 60, 35
2720
 
2199
p4coef		db	160, 170, 180, 190, 200, 210, 220, 230, 80, 90, 100, 110, 120, 130, 140, 150	; Pentium 4 (Willamete)
2721
;  include images and unpacking- and hasharea
2200
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
2722
 
2201
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
2723
;
2202
 
2724
 
2203
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2725
include 'logos.inc' ; include file where gif's are stored
2204
;
2726
 
2205
;  include images and unpacking- and hasharea
2727
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2206
;
2728
I_END:
2207
include 'logos.inc' ; include file where gif's are stored
2729
 
2208
img_area:	   ; image is going to be unpacked to here
2730
img_area:          ; image is going to be unpacked to here
2209
rb 201*49*3+8	   ; image resolution (bits to reserve)
2731
rb 201*49*3+8      ; image resolution (bits to reserve)
2210
 
2732
 
2211
img_area2:	   ; image is going to be unpacked to here
2733
img_area2:         ; image is going to be unpacked to here
2212
rb 93*24*3+8	   ; image resolution (bits to reserve)
2734
rb 93*24*3+8       ; image resolution (bits to reserve)
2213
 
2735
 
2214
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2736
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2215
 
-
 
2216
I_END:
-
 
2217
 
2737
 
-
 
2738
; RSA test data
2218
; RSA test data
2739
 
-
 
2740
align 4
2219
align 4
2741
 
-
 
2742
  num1 rd 40
2220
  num1 rd 40
2743
 
-
 
2744
  num2 rd 40
2221
  num2 rd 40
2745
 
-
 
2746
  num3 rd 40
2222
  num3 rd 40
2747
 
-
 
2748
  iter rd 1
2223
  iter rd 1
2749
 
-
 
2750
  openkey rd 1
-
 
2751
 
2224
  openkey rd 1
2752
 
-
 
2753
 
-
 
2754
IncludeUGlobals
2225
 
2755
 
-
 
2756
 
2226
IncludeUGlobals
2757
 
-
 
2758
ost dd ?
2227
 
2759
 
-
 
2760
sot dd ?
2228
ost dd ?
2761
 
-
 
2762
f dd ?
2229
sot dd ?
2763
 
-
 
2764
m dd ?
2230
f dd ?
2765
 
-
 
2766
s dd ?
-
 
2767
 
2231
m dd ?
2768
t dd ?
-
 
2769
 
2232
s dd ?
2770
 
-
 
2771
 
-
 
2772
ef dd ?
2233
t dd ?
2773
 
-
 
2774
em dd ?
2234
 
2775
 
-
 
2776
 
2235
ef dd ?
2777
 
-
 
2778
multiplier dd ?
-
 
2779
 
2236
em dd ?
2780
multa dd ?
-
 
2781
 
2237
 
2782
multb dd ?
-
 
2783
 
2238
multiplier dd ?
2784
 
-
 
2785
 
2239
multa dd ?
2786
smallvendor dd ?
-
 
2787
 
2240
multb dd ?
2788
L1d  dd ?
-
 
2789
 
2241
 
2790
L1i  dd ?
-
 
2791
 
2242
smallvendor dd ?
2792
L2   dd ?
-
 
2793
 
-
 
2794
L3   dd ?
2243
L1d  dd ?
2795
 
-
 
2796
micron dd ?
2244
L1i  dd ?
2797
 
-
 
2798
brand dd ?
-
 
2799
 
2245
L2   dd ?
2800
 
-
 
2801
 
2246
L3   dd ?
2802
ram_size_a dd ?
-
 
2803
 
-
 
2804
ram_size_t dd ?
2247
micron dd ?
2805
 
-
 
2806
 
2248
brand dd ?
2807
 
-
 
2808
stdc dd ?
2249
 
2809
 
-
 
2810
extc dd ?
-
 
2811
 
2250
ram_size_a dd ?
2812
 
-
 
2813
 
2251
ram_size_t dd ?
2814
FRS dd ?
-
 
2815
 
-
 
2816
freqsel db ?
2252
 
2817
 
-
 
2818
sse3sup db ?
2253
stdc dd ?
2819
 
-
 
2820
 
-
 
2821
 
2254
extc dd ?
2822
freqbb dd ?
-
 
2823
 
2255
 
2824
freqll dd ?
-
 
2825
 
-
 
2826
 
2256
FRS dd ?
2827
 
-
 
2828
wayli dd ?
2257
freqsel db ?
2829
 
-
 
2830
lineli dd ?
-
 
2831
 
2258
sse3sup db ?
2832
 
-
 
2833
 
2259
 
2834
wayld dd ?
-
 
2835
 
-
 
2836
lineld dd ?
2260
freqbb dd ?
2837
 
-
 
2838
 
-
 
2839
 
2261
freqll dd ?
2840
wayl2 dd ?
-
 
2841
 
-
 
2842
linel2 dd ?
2262
 
2843
 
-
 
2844
 
2263
wayli dd ?
2845
 
-
 
2846
wayl3 dd ?
2264
lineli dd ?
2847
 
-
 
2848
linel3 dd ?
-
 
2849
 
2265
 
2850
 
-
 
2851
 
-
 
2852
;number_of_log_cpus dd ?
2266
wayld dd ?
2853
 
-
 
2854
 
2267
lineld dd ?
2855
 
-
 
2856
che db ? ; numbers of calls for Intel caches detection
2268
 
2857
 
2269
wayl2 dd ?
2858
 
2270
linel2 dd ?
2859
 
2271
 
2860
myname:
2272
wayl3 dd ?
2861
 
2273
linel3 dd ?
2862
   rb 48
2274
 
2863
 
2275
;number_of_log_cpus dd ?
2864
mynamelen:
2276
 
2865
 
2277
che db ? ; numbers of calls for Intel caches detection
2866
 
2278
 
2867
 
2279
myname:
2868
align 4
2280
   rb 48
2869
 
2281
mynamelen:
2870
 
2282
 
2871
 
2283
align 4
2872
  thread2_stack_area rb 64
2284
 
2873
 
2285
  thread2_stack_area rb 64
2874
  thread2_esp = $
2286
  thread2_esp = $
2875
 
2287
U_END:
2876
U_END: