Subversion Repositories Kolibri OS

Rev

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

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