Rev 318 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 318 | Rev 532 | ||
---|---|---|---|
Line 66... | Line 66... | ||
66 | LAHF_FLAG equ 0001h ; LAHF 0 |
66 | LAHF_FLAG equ 0001h ; LAHF 0 |
67 | CMPL_FLAG equ 0002h ; core multi-processing legacy mode 1 |
67 | CMPL_FLAG equ 0002h ; core multi-processing legacy mode 1 |
68 | SVM_FLAG equ 0004h ; secure virtual machine 2 |
68 | SVM_FLAG equ 0004h ; secure virtual machine 2 |
69 | MOVCR8_FLAG equ 0010h ;AltMovCr8 4 |
69 | MOVCR8_FLAG equ 0010h ;AltMovCr8 4 |
Line -... | Line 70... | ||
- | 70 | ||
- | 71 | ;////////////////////////////////////////////// |
|
- | 72 | decode_sse3: ; is SS3 supported |
|
- | 73 | xor eax, eax |
|
- | 74 | inc eax |
|
- | 75 | cpuid |
|
- | 76 | test ecx, 1 |
|
- | 77 | setnz [sse3sup] |
|
- | 78 | mov eax, sse3+6 |
|
- | 79 | ||
- | 80 | write_yes_no: |
|
- | 81 | mov dword [eax], 'no' |
|
- | 82 | jz @f |
|
- | 83 | mov dword [eax], 'yes' |
|
- | 84 | @@: |
|
- | 85 | ret |
|
- | 86 | ||
- | 87 | show_next_bit: |
|
- | 88 | shr edx, 1 |
|
- | 89 | write_yes_no_cf: |
|
- | 90 | mov dword [eax], 'no' |
|
- | 91 | jnc @f |
|
- | 92 | mov dword [eax], 'yes' |
|
- | 93 | @@: |
|
Line 70... | Line 94... | ||
70 | 94 | ret |
|
Line 71... | Line 95... | ||
71 | 95 | ||
Line 72... | Line 96... | ||
72 | ;decoding standard features |
96 | ;decoding standard features |
73 | 97 | ||
74 | decode_standard_features: |
98 | decode_standard_features: |
Line 75... | Line -... | ||
75 | - | ||
76 | xor eax,eax |
- | |
77 | inc eax |
- | |
78 | cpuid |
- | |
79 | - | ||
80 | Test0: |
- | |
81 | test edx, FPU_FLAG |
- | |
82 | jnz Test0e |
- | |
83 | - | ||
84 | mov dword [FPU+6], $6F6E |
- | |
85 | jmp Test1 |
- | |
86 | - | ||
87 | Test0e: |
- | |
88 | mov dword [FPU+6], $736579 |
- | |
89 | - | ||
90 | ;;;;;; |
- | |
91 | Test1: |
- | |
92 | test edx, VME_FLAG |
- | |
93 | jnz Test1e |
- | |
94 | - | ||
95 | mov dword [VME+ 7], $6F6E |
- | |
96 | jmp Test2 |
- | |
97 | - | ||
98 | Test1e: |
- | |
99 | mov dword [VME+ 7], $736579 |
- | |
100 | - | ||
101 | ;;;;;; |
99 | |
102 | Test2: |
- | |
103 | test edx, DE_FLAG |
- | |
104 | jnz Test2e |
- | |
105 | - | ||
106 | mov dword [DE+ 7], $6F6E |
- | |
107 | jmp Test3 |
- | |
108 | - | ||
109 | Test2e: |
- | |
110 | mov dword [DE+ 7], $736579 |
- | |
111 | ;;;;;; |
- | |
112 | - | ||
113 | Test3: |
- | |
114 | test edx, PSE_FLAG |
- | |
115 | jnz Test3e |
- | |
116 | - | ||
117 | mov dword [PSE+ 8], $6F6E |
- | |
118 | jmp Test4 |
- | |
119 | - | ||
120 | Test3e: |
- | |
121 | mov dword [PSE+ 8], $736579 |
- | |
122 | - | ||
123 | ;;;; |
- | |
124 | Test4: |
- | |
125 | test edx, TSC_FLAG |
- | |
126 | jnz Test4e |
- | |
127 | - | ||
128 | mov dword [TSC+ 6], $6F6E |
- | |
129 | jmp Test5 |
- | |
130 | - | ||
131 | Test4e: |
- | |
132 | mov dword [TSC+ 6], $736579 |
- | |
133 | - | ||
134 | ;;;; |
- | |
135 | Test5: |
- | |
136 | test edx, MSR_FLAG |
- | |
137 | jnz Test5e |
- | |
138 | - | ||
139 | mov dword [MSR+ 7], $6F6E |
- | |
140 | jmp Test6 |
- | |
141 | - | ||
142 | Test5e: |
- | |
143 | mov dword [MSR+ 7], $736579 |
- | |
144 | - | ||
145 | ;;;; |
- | |
146 | Test6: |
- | |
147 | test edx, PAE_FLAG |
- | |
148 | jnz Test6e |
- | |
149 | - | ||
150 | mov dword [PAE+ 7], $6F6E |
- | |
151 | jmp Test7 |
- | |
152 | - | ||
153 | Test6e: |
- | |
154 | mov dword [PAE+ 7], $736579 |
- | |
155 | - | ||
156 | ;;;; |
- | |
157 | Test7: |
- | |
158 | test edx, MCE_FLAG |
- | |
159 | jnz Test7e |
- | |
160 | - | ||
161 | mov dword [MCE+ 8], $6F6E |
- | |
162 | jmp Test8 |
- | |
163 | - | ||
164 | Test7e: |
- | |
165 | mov dword [MCE+ 8], $736579 |
- | |
166 | - | ||
167 | ;;;; |
- | |
168 | Test8: |
- | |
169 | test edx, CX8_FLAG |
- | |
170 | jnz Test8e |
- | |
171 | - | ||
172 | mov dword [CX8+ 6], $6F6E |
- | |
173 | jmp Test9 |
- | |
174 | - | ||
175 | Test8e: |
- | |
176 | mov dword [CX8+ 6], $736579 |
- | |
177 | ;;;; |
- | |
178 | 100 | xor eax,eax |
|
179 | Test9: |
- | |
180 | test edx, APIC_FLAG |
- | |
181 | jnz Test9e |
- | |
182 | - | ||
183 | mov dword [APIC+ 7], $6F6E |
- | |
184 | jmp Test11 |
- | |
185 | - | ||
186 | Test9e: |
- | |
187 | mov dword [APIC+ 7], $736579 |
- | |
188 | ;;;;; |
- | |
189 | - | ||
190 | Test11: |
- | |
Line 191... | Line 101... | ||
191 | test edx, SEP_FLAG |
101 | inc eax |
192 | jnz Test11e |
102 | cpuid |
193 | - | ||
Line 194... | Line -... | ||
194 | mov dword [SEP+ 8], $6F6E |
- | |
195 | jmp Test12 |
103 | |
196 | 104 | mov eax, FPU+6 |
|
Line 197... | Line 105... | ||
197 | Test11e: |
105 | call show_next_bit |
198 | mov dword [SEP+ 8], $736579 |
106 | |
Line 199... | Line 107... | ||
199 | ;;;; |
107 | mov eax, VME+7 |
200 | 108 | call show_next_bit |
|
201 | Test12: |
- | |
Line 202... | Line -... | ||
202 | test edx, MTRR_FLAG |
- | |
203 | jnz Test12e |
109 | |
204 | 110 | mov eax, DE+7 |
|
Line 205... | Line 111... | ||
205 | mov dword [MTRR+ 6], $6F6E |
111 | call show_next_bit |
206 | jmp Test13 |
112 | |
Line 207... | Line 113... | ||
207 | 113 | mov eax, PSE+8 |
|
208 | Test12e: |
114 | call show_next_bit |
209 | mov dword [MTRR+ 6], $736579 |
- | |
Line 210... | Line -... | ||
210 | ;;;; |
- | |
211 | 115 | ||
212 | Test13: |
116 | mov eax, TSC+6 |
Line 213... | Line 117... | ||
213 | test edx, PGE_FLAG |
117 | call show_next_bit |
214 | jnz Test13e |
118 | |
Line 215... | Line -... | ||
215 | - | ||
216 | mov dword [PGE+ 7], $6F6E |
119 | mov eax, MSR+7 |
217 | jmp Test14 |
- | |
Line 218... | Line -... | ||
218 | - | ||
219 | Test13e: |
120 | call show_next_bit |
220 | mov dword [PGE+ 7], $736579 |
121 | |
Line 221... | Line 122... | ||
221 | ;;;;; |
122 | mov eax, PAE+7 |
222 | 123 | call show_next_bit |
|
Line 223... | Line 124... | ||
223 | Test14: |
124 | |
224 | test edx, MCA_FLAG |
125 | mov eax, MCE+8 |
225 | jnz Test14e |
- | |
Line 226... | Line -... | ||
226 | - | ||
227 | mov dword [MCA+ 7], $6F6E |
126 | call show_next_bit |
228 | jmp Test15 |
127 | |
Line 229... | Line 128... | ||
229 | 128 | mov eax, CX8+6 |
|
230 | Test14e: |
129 | call show_next_bit |
Line 231... | Line 130... | ||
231 | mov dword [MCA+ 7], $736579 |
130 | |
232 | ;;;; |
131 | mov eax, APIC+7 |
233 | - | ||
Line 234... | Line -... | ||
234 | Test15: |
- | |
235 | test edx, CMOV_FLAG |
132 | call show_next_bit |
236 | jnz Test15e |
133 | |
Line 237... | Line 134... | ||
237 | 134 | shr edx, 1 ; skip reserved bit |
|
238 | mov dword [CMOV+ 8], $6F6E |
135 | |
Line 239... | Line 136... | ||
239 | jmp Test16 |
136 | mov eax, SEP+8 |
240 | 137 | call show_next_bit |
|
241 | Test15e: |
- | |
Line 242... | Line -... | ||
242 | mov dword [CMOV+ 8], $736579 |
- | |
243 | ;;;; |
138 | |
244 | - | ||
Line 245... | Line 139... | ||
245 | Test16: |
139 | mov eax, MTRR+6 |
246 | test edx, PAT_FLAG |
140 | call show_next_bit |
Line 247... | Line 141... | ||
247 | jnz Test16e |
141 | |
248 | 142 | mov eax, PGE+7 |
|
249 | mov dword [PAT+ 6], $6F6E |
- | |
Line 250... | Line 143... | ||
250 | jmp Test17 |
143 | call show_next_bit |
251 | 144 | ||
252 | Test16e: |
145 | mov eax, MCA+7 |
- | 146 | call show_next_bit |
|
Line 253... | Line 147... | ||
253 | mov dword [PAT+ 6], $736579 |
147 | |
254 | ;;;; |
148 | mov eax, CMOV+8 |
Line 255... | Line 149... | ||
255 | 149 | call show_next_bit |
|
256 | Test17: |
150 | |
257 | test edx, PSE36_FLAG |
- | |
Line 258... | Line -... | ||
258 | jnz Test17e |
- | |
259 | 151 | mov eax, PAT+6 |
|
260 | mov dword [PSE36+ 7], $6F6E |
152 | call show_next_bit |
Line 261... | Line 153... | ||
261 | jmp Test18 |
153 | |
262 | 154 | mov eax, PSE36+7 |
|
Line 263... | Line -... | ||
263 | Test17e: |
- | |
264 | mov dword [PSE36+ 7], $736579 |
- | |
265 | ;;;; |
- | |
266 | - | ||
267 | Test18: |
- | |
268 | test edx, PSNUM_FLAG |
- | |
269 | jnz Test18e |
- | |
270 | - | ||
271 | mov dword [PSNUM+ 7], $6F6E |
- | |
272 | jmp Test19 |
- | |
273 | - | ||
274 | Test18e: |
- | |
275 | mov dword [PSNUM+ 7], $736579 |
- | |
276 | ;;;; |
- | |
277 | - | ||
278 | Test19: |
- | |
279 | test edx, CLFLUSH_FLAG |
- | |
280 | jnz Test19e |
- | |
281 | - | ||
282 | mov dword [CLFLUSHn + 8], $6F6E |
- | |
283 | jmp Test21 |
- | |
284 | - | ||
285 | Test19e: |
- | |
286 | mov dword [CLFLUSHn + 8], $736579 |
- | |
287 | ;;;; |
- | |
288 | - | ||
289 | Test21: |
- | |
290 | test edx, DTS_FLAG |
- | |
291 | jnz Test21e |
- | |
292 | - | ||
293 | mov dword [DTS+ 7], $6F6E |
- | |
294 | jmp Test22 |
- | |
295 | - | ||
296 | Test21e: |
- | |
297 | mov dword [DTS+ 7], $736579 |
- | |
298 | ;;;; |
- | |
299 | - | ||
300 | Test22: |
- | |
301 | test edx, ACPI_FLAG |
- | |
302 | jnz Test22e |
- | |
303 | - | ||
304 | mov dword [ACPI+ 7], $6F6E |
- | |
305 | jmp Test23 |
- | |
306 | 155 | call show_next_bit |
|
307 | Test22e: |
- | |
308 | mov dword [ACPI+ 7], $736579 |
- | |
309 | ;;;;; |
- | |
310 | - | ||
311 | Test23: |
- | |
312 | test edx, MMX_FLAG |
- | |
313 | jnz Test23e |
- | |
314 | - | ||
315 | mov dword [MMX+ 8], $6F6E |
- | |
316 | mov dword [MMXs+ 7], $6F6E |
- | |
317 | jmp Test24 |
- | |
318 | - | ||
319 | Test23e: |
- | |
320 | mov dword [MMX+ 8], $736579 |
- | |
321 | mov dword [MMXs+ 7], $736579 |
- | |
322 | ;;;;; |
- | |
323 | - | ||
324 | Test24: |
- | |
325 | test edx, FXSR_FLAG |
- | |
326 | jnz Test24e |
- | |
327 | - | ||
328 | mov dword [FXSR+ 6], $6F6E |
- | |
329 | jmp Test25 |
156 | |
330 | - | ||
331 | Test24e: |
- | |
332 | mov dword [FXSR+ 6], $736579 |
- | |
333 | ;;;;; |
- | |
334 | - | ||
335 | Test25: |
- | |
336 | test edx, SSE_FLAG |
- | |
337 | jnz Test25e |
- | |
338 | 157 | mov eax, PSNUM+7 |
|
339 | mov dword [SSE+ 7], $6F6E |
- | |
340 | jmp Test26 |
- | |
341 | 158 | call show_next_bit |
|
342 | Test25e: |
- | |
343 | mov dword [SSE+ 7], $736579 |
- | |
344 | - | ||
345 | ;;;; |
- | |
346 | Test26: |
- | |
347 | test edx, SSE2_FLAG |
- | |
348 | jnz Test26e |
- | |
349 | - | ||
350 | mov dword [SSE2+ 7], $6F6E |
- | |
351 | jmp Test27 |
- | |
352 | - | ||
353 | Test26e: |
- | |
354 | mov dword [SSE2+ 7], $736579 |
- | |
355 | - | ||
356 | ;;;; |
- | |
357 | - | ||
358 | Test27: |
- | |
359 | test edx, SS_FLAG |
- | |
360 | jnz Test27e |
- | |
361 | - | ||
362 | mov dword [SSn+ 8], $6F6E |
- | |
363 | jmp Test29;28 |
- | |
364 | - | ||
365 | Test27e: |
- | |
366 | mov dword [SSn+ 8], $736579 |
- | |
367 | - | ||
368 | ;;;; |
- | |
369 | - | ||
Line 370... | Line -... | ||
370 | ;Test28: |
- | |
371 | ;test edx, HTT_FLAG |
- | |
372 | ;jnz Test28e |
159 | |
373 | ; |
160 | mov eax, CLFLUSHn+8 |
Line 374... | Line 161... | ||
374 | ;mov dword [HTT+ 8], $6F6E |
161 | call show_next_bit |
375 | ;jmp Test29 |
162 | |
Line 376... | Line -... | ||
376 | ; |
- | |
377 | ;Test28e: |
163 | shr edx, 1 ; skip reserved bit |
378 | ;mov dword [HTT+ 8], $736579 |
- | |
379 | 164 | ||
Line 380... | Line 165... | ||
380 | ;;;; |
165 | mov eax, DTS+7 |
381 | - | ||
382 | Test29: |
- | |
383 | test edx, TM_FLAG |
- | |
384 | jnz Test29e |
- | |
385 | - | ||
386 | mov dword [TM+ 7], $6F6E |
- | |
387 | jmp Test30 |
- | |
388 | - | ||
389 | Test29e: |
- | |
390 | mov dword [TM+ 7], $736579 |
- | |
391 | - | ||
392 | ;;;; |
- | |
393 | - | ||
394 | Test30: |
- | |
395 | test edx, IA64_FLAG |
- | |
396 | jnz Test30e |
- | |
397 | - | ||
398 | mov dword [IA64+ 7], $6F6E |
- | |
Line 399... | Line -... | ||
399 | jmp Test31 |
- | |
400 | 166 | call show_next_bit |
|
401 | Test30e: |
167 | |
- | 168 | mov eax, ACPI+7 |
|
402 | mov dword [IA64+ 7], $736579 |
169 | call show_next_bit |
403 | 170 | ||
404 | ;;;; |
171 | mov eax, MMX+8 |
405 | Test31: |
- | |
406 | test edx, PBE_FLAG |
- | |
407 | jnz Test31e |
- | |
408 | - | ||
409 | mov dword [PBE+ 8], $6F6E |
- | |
410 | jmp Standart_out |
- | |
411 | - | ||
412 | Test31e: |
- | |
413 | mov dword [PBE+ 8], $736579 |
- | |
Line -... | Line 172... | ||
- | 172 | call show_next_bit |
|
- | 173 | mov eax, [eax] |
|
- | 174 | mov [MMXs+7], eax |
|
Line 414... | Line 175... | ||
414 | 175 | ||
415 | Standart_out: |
176 | mov eax, FXSR+6 |
416 | - | ||
417 | ret |
- | |
418 | ;////////////////////////////////////////////// |
177 | call show_next_bit |
419 | decode_sse3: ; is SS3 supported |
- | |
420 | xor eax,eax |
- | |
421 | inc eax |
- | |
422 | cpuid |
- | |
Line 423... | Line -... | ||
423 | test ecx, $1 ; Test bit 1 |
- | |
424 | jnz .EX; SSE3 technology is supported |
178 | |
425 | jz .EXN |
179 | mov eax, SSE+7 |
426 | - | ||
427 | .EX: |
- | |
428 | mov dword [sse3+ 6], $736579 |
180 | call show_next_bit |
429 | mov [sse3sup], 1 |
- | |
Line 430... | Line -... | ||
430 | jmp exitter |
- | |
431 | .EXN: |
181 | |
432 | mov dword [sse3+ 6], $6F6E |
- | |
433 | mov [sse3sup],0 |
- | |
434 | 182 | mov eax, SSE2+7 |
|
435 | exitter: |
- | |
436 | - | ||
437 | ret |
183 | call show_next_bit |
438 | ;////////////////////////////////////////////// |
- | |
439 | decode_extended_features: |
- | |
440 | xor eax,eax |
- | |
441 | inc eax |
- | |
Line 442... | Line -... | ||
442 | cpuid |
- | |
443 | Tes1: |
184 | |
444 | test ecx, SSE3_FLAG |
185 | mov eax, SSn+8 |
445 | jnz Tes1e |
- | |
446 | - | ||
447 | mov dword [SS3+ 8], $6F6E |
186 | call show_next_bit |
448 | jmp Tes2 |
- | |
Line 449... | Line -... | ||
449 | - | ||
450 | Tes1e: |
187 | |
451 | mov dword [SS3+ 8], $736579 |
- | |
452 | - | ||
453 | - | ||
454 | Tes2: |
188 | shr edx, 1 |
455 | test ecx, MON_FLAG |
- | |
456 | jnz Tes2e |
- | |
457 | 189 | ; mov eax, HTT+8 |
|
458 | mov dword [MON+ 8], $6F6E |
- | |
459 | jmp Tes3 |
- | |
460 | - | ||
461 | Tes2e: |
- | |
462 | mov dword [MON+ 8], $736579 |
- | |
Line 463... | Line 190... | ||
463 | 190 | ; test edx, HTT_FLAG |
|
464 | 191 | ; call write_yes_no |
|
465 | Tes3: |
192 | |
Line 466... | Line -... | ||
466 | test ecx, DS_CPL_FLAG |
- | |
467 | jnz Tes3e |
- | |
468 | - | ||
469 | mov dword [DS_CPL+ 8], $6F6E |
- | |
470 | jmp Tes4 |
193 | mov eax, TM+7 |
471 | - | ||
472 | Tes3e: |
- | |
473 | mov dword [DS_CPL+ 8], $736579 |
- | |
474 | 194 | call show_next_bit |
|
475 | Tes4: |
- | |
476 | test ecx, EST_FLAG |
- | |
477 | jnz Tes4e |
- | |
478 | - | ||
479 | mov dword [EST+ 8], $6F6E |
- | |
480 | jmp Tes5 |
- | |
481 | 195 | ||
Line 482... | Line 196... | ||
482 | Tes4e: |
196 | mov eax, IA64+7 |
483 | mov dword [EST+ 8], $736579 |
197 | call show_next_bit |
484 | 198 | ||
Line 485... | Line -... | ||
485 | - | ||
486 | Tes5: |
- | |
487 | test ecx, TM2_FLAG |
- | |
488 | jnz Tes5e |
- | |
489 | 199 | mov eax, PBE+8 |
|
490 | mov dword [TM2+ 8], $6F6E |
- | |
491 | jmp Tes6 |
- | |
492 | 200 | call show_next_bit |
|
493 | Tes5e: |
- | |
494 | mov dword [TM2+ 8], $736579 |
- | |
495 | 201 | ||
496 | - | ||
Line 497... | Line -... | ||
497 | Tes6: |
- | |
498 | test ecx, CNXT_ID_FLAG |
202 | ret |
499 | jnz Tes6e |
- | |
500 | - | ||
501 | mov dword [CNXT_ID+ 12], $6F6E |
203 | |
502 | jmp Tes7 |
- | |
503 | - | ||
504 | Tes6e: |
204 | ;////////////////////////////////////////////// |
505 | mov dword [CNXT_ID+ 12], $736579 |
- | |
506 | - | ||
507 | - | ||
508 | Tes7: |
- | |
509 | test ecx, CX16_FLAG |
- | |
510 | jnz Tes7e |
205 | decode_extended_features: |
511 | - | ||
512 | mov dword [CX16+ 12], $6F6E |
- | |
513 | jmp Tes8 |
206 | ; is called immediately after decode_standard_features |
Line 514... | Line 207... | ||
514 | 207 | ; xor eax, eax |
|
515 | Tes7e: |
208 | ; inc eax |
516 | mov dword [CX16+ 12], $736579 |
- | |
517 | 209 | ; cpuid |
|
518 | 210 | ||
- | 211 | mov eax, SS3+8 |
|
- | 212 | test ecx, SSE3_FLAG |
|
- | 213 | call write_yes_no |
|
Line 519... | Line -... | ||
519 | Tes8: |
- | |
520 | test ecx, ETPRD_FLAG |
- | |
521 | jnz Tes8e |
- | |
522 | - | ||
523 | mov dword [ETPRD+ 12], $6F6E |
- | |
524 | jmp Tes9 |
- | |
525 | - | ||
526 | Tes8e: |
- | |
527 | mov dword [ETPRD+ 12], $736579 |
- | |
528 | - | ||
529 | Tes9: |
- | |
530 | test ecx, VMX_FLAG |
- | |
531 | jnz Tes9e |
214 | |
532 | 215 | mov eax, MON+8 |
|
Line 533... | Line 216... | ||
533 | mov dword [VMX+ 8], $6F6E |
216 | test ecx, MON_FLAG |
534 | jmp Tes10 |
217 | call write_yes_no |
535 | - | ||
536 | Tes9e: |
- | |
537 | mov dword [VMX+ 8], $736579 |
218 | |
538 | - | ||
Line 539... | Line -... | ||
539 | Tes10: |
- | |
540 | test ecx, SSSE3_FLAG |
219 | mov eax, DS_CPL+8 |
541 | jnz Tes10e |
- | |
542 | - | ||
543 | mov dword [SSSE3+ 12], $6F6E |
220 | test ecx, DS_CPL_FLAG |
544 | jmp Tes11 |
221 | call write_yes_no |
Line 545... | Line -... | ||
545 | - | ||
546 | Tes10e: |
- | |
547 | mov dword [SSSE3+ 12], $736579 |
222 | |
548 | - | ||
549 | Tes11: |
- | |
550 | test ecx, DCA_FLAG |
223 | mov eax, EST+8 |
551 | jnz Tes11e |
- | |
552 | - | ||
553 | mov dword [DCA+ 8], $6F6E |
224 | test ecx, EST_FLAG |
554 | jmp Tes12 |
- | |
555 | - | ||
556 | Tes11e: |
225 | call write_yes_no |
557 | mov dword [DCA+ 8], $736579 |
- | |
558 | - | ||
Line 559... | Line -... | ||
559 | Tes12: |
- | |
560 | 226 | ||
561 | - | ||
562 | ret |
- | |
563 | 227 | mov eax, TM2+8 |
|
564 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
- | |
565 | decode_extended: |
- | |
566 | xor eax, eax |
228 | test ecx, TM2_FLAG |
567 | mov eax,$80000000 |
- | |
Line 568... | Line -... | ||
568 | cpuid |
- | |
569 | 229 | call write_yes_no |
|
570 | test eax, 80000000h |
- | |
571 | jnz gooodd |
- | |
572 | 230 | ||
573 | jmp baaad |
- | |
574 | - | ||
575 | baaad: |
231 | mov eax, CNXT_ID+12 |
576 | - | ||
577 | - | ||
578 | jmp Tez13 |
- | |
579 | - | ||
Line 580... | Line 232... | ||
580 | gooodd: |
232 | test ecx, CNXT_ID_FLAG |
581 | xor eax, eax |
233 | call write_yes_no |
582 | mov eax, $80000001 ;// Setup extended function 8000_0001h |
- | |
583 | cpuid |
- | |
584 | - | ||
585 | Tez1: |
- | |
586 | test edx, MP_FLAG |
- | |
587 | jnz Tez1e |
- | |
588 | 234 | ||
Line 589... | Line 235... | ||
589 | mov dword [MP+8], $6F6E |
235 | mov eax, CX16+12 |
590 | jmp Tez2 |
236 | test ecx, CX16_FLAG |
591 | 237 | call write_yes_no |
|
Line 592... | Line 238... | ||
592 | Tez1e: |
238 | |
593 | mov dword [MP+ 8], $736579 |
- | |
594 | - | ||
595 | Tez2: |
- | |
596 | test edx, NX_FLAG |
- | |
597 | jnz Tez2e |
- | |
598 | - | ||
599 | mov dword [NX+ 8], $6F6E |
- | |
600 | jmp Tez4 |
239 | mov eax, ETPRD+12 |
601 | ;jmp Tez3 we do detection in another place, because of Cyrix specific MMX+ detection |
- | |
602 | - | ||
603 | Tez2e: |
240 | test ecx, ETPRD_FLAG |
604 | mov dword [NX+ 8], $736579 |
- | |
Line 605... | Line -... | ||
605 | - | ||
606 | ;Tez3: |
241 | call write_yes_no |
607 | ;test edx, MMXPi_FLAG |
- | |
608 | ;jnz Tez3e |
- | |
609 | 242 | ||
610 | ;mov dword [MMXPi+ 8], $6F6E |
- | |
611 | ;jmp Tez4 |
- | |
612 | 243 | mov eax, VMX+8 |
|
613 | - | ||
614 | ;Tez3e: |
- | |
615 | ;mov dword [MMXPi+ 8], $736579 |
- | |
616 | - | ||
Line 617... | Line -... | ||
617 | Tez4: |
- | |
618 | test edx, MMXn_FLAG |
244 | test ecx, VMX_FLAG |
619 | jnz Tez4e |
245 | call write_yes_no |
620 | - | ||
621 | mov dword [MMXn+ 8], $6F6E |
- | |
622 | jmp Tez5 |
246 | |
623 | - | ||
624 | Tez4e: |
- | |
625 | mov dword [MMXn+ 8], $736579 |
- | |
626 | - | ||
Line 627... | Line 247... | ||
627 | Tez5: |
247 | mov eax, SSSE3+12 |
628 | test edx, FXSRn_FLAG |
- | |
629 | jnz Tez5e |
248 | test ecx, SSSE3_FLAG |
630 | 249 | call write_yes_no |
|
631 | mov dword [FXSRn+ 8], $6F6E |
- | |
632 | jmp Tez6 |
- | |
633 | 250 | ||
634 | Tez5e: |
- | |
635 | mov dword [FXSRn+ 8], $736579 |
- | |
636 | - | ||
637 | Tez6: |
- | |
638 | test edx, FFXSR_FLAG |
- | |
Line 639... | Line 251... | ||
639 | jnz Tez6e |
251 | mov eax, DCA+8 |
640 | 252 | test ecx, DCA_FLAG |
|
641 | mov dword [FFXSR+ 12], $6F6E |
253 | call write_yes_no |
Line 642... | Line -... | ||
642 | jmp Tez7 |
- | |
643 | - | ||
644 | Tez6e: |
- | |
645 | mov dword [FFXSR+ 12], $736579 |
- | |
646 | 254 | @@: |
|
647 | Tez7: |
- | |
648 | test edx, TSCP_FLAG |
- | |
649 | jnz Tez7e |
255 | ret |
650 | - | ||
651 | mov dword [TSCP+ 12], $6F6E |
- | |
652 | jmp Tez8 |
256 | |
653 | - | ||
Line 654... | Line -... | ||
654 | Tez7e: |
- | |
655 | mov dword [TSCP+ 12], $736579 |
257 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
656 | - | ||
657 | - | ||
658 | Tez8: |
258 | decode_extended: |
659 | test edx, LM_FLAG |
- | |
660 | jnz Tez8e |
- | |
661 | 259 | mov eax, $80000000 |
|
662 | mov dword [LM+ 12], $6F6E |
- | |
Line 663... | Line -... | ||
663 | jmp Tez9 |
- | |
664 | 260 | cpuid |
|
665 | Tez8e: |
- | |
666 | mov dword [LM+ 12], $736579 |
- | |
667 | 261 | mov [extc], eax ; max number of calls |
|
668 | Tez9: |
- | |
669 | test edx, DNo_FLAG |
- | |
670 | jnz Tez9e |
262 | test eax, eax |
671 | - | ||
672 | mov dword [DNo+ 12], $6F6E |
- | |
673 | jmp Tez10 |
- | |
674 | - | ||
675 | Tez9e: |
- | |
676 | mov dword [DNo+ 12], $736579 |
- | |
Line 677... | Line 263... | ||
677 | 263 | jns @b |
|
678 | 264 |