Subversion Repositories Kolibri OS

Rev

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

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