Subversion Repositories Kolibri OS

Rev

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

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