// // I_Init // void I_Init (void) { CheckCPUID (&CPU); DumpCPUInfo (&CPU); I_GetTime = I_GetTimeSelect; I_WaitForTic = I_WaitForTicSelect; I_FreezeTime = I_FreezeTimeSelect; atterm (I_ShutdownSound); I_InitSound (); }
void I_Init() { CheckCPUID(&CPU); CalculateCPUSpeed(); DumpCPUInfo(&CPU); I_GetTime = I_GetTimeSelect; I_WaitForTic = I_WaitForTicSelect; atterm (I_ShutdownSound); I_InitSound (); }
void InfoCPU() { if (CheckCPUID()) { char name[13] = {0}; uint32_t MaxBasicLevel = CallCPUID(0x00000000UL, 0, NULL, (uint32_t*)name, (uint32_t*)(name + 8), (uint32_t*)(name + 4)); uint32_t MaxExtendedLevel = CallCPUID(0x80000000UL, 0, NULL, NULL, NULL, NULL); ConsoleIOPrint("CPU :\n"); ConsoleIOPrintFormatted("CPU name : %s\n", name); ConsoleIOPrintFormatted("X87 : %s\n", CheckCPUIDFeature(kCPUIDFeature_X87) ? "YES" : "NO "); ConsoleIOPrintFormatted("MMX : %s\n", CheckCPUIDFeature(kCPUIDFeature_MMX) ? "YES" : "NO "); ConsoleIOPrintFormatted("SSE : %s\n", CheckCPUIDFeature(kCPUIDFeature_SSE) ? "YES" : "NO "); ConsoleIOPrintFormatted("SSE2 : %s\n", CheckCPUIDFeature(kCPUIDFeature_SSE2) ? "YES" : "NO "); ConsoleIOPrintFormatted("HTT : %s\n", CheckCPUIDFeature(kCPUIDFeature_HTT) ? "YES" : "NO "); ConsoleIOPrintFormatted("SSE3 : %s\n", CheckCPUIDFeature(kCPUIDFeature_SSE3) ? "YES" : "NO "); ConsoleIOPrintFormatted("VMX : %s\n", CheckCPUIDFeature(kCPUIDFeature_VMX) ? "YES" : "NO "); ConsoleIOPrintFormatted("SMX : %s\n", CheckCPUIDFeature(kCPUIDFeature_SMX) ? "YES" : "NO "); ConsoleIOPrintFormatted("SSSE3 : %s\n", CheckCPUIDFeature(kCPUIDFeature_SSSE3) ? "YES" : "NO "); ConsoleIOPrintFormatted("SSE4.1 : %s\n", CheckCPUIDFeature(kCPUIDFeature_SSE41) ? "YES" : "NO "); ConsoleIOPrintFormatted("SSE4.2 : %s\n", CheckCPUIDFeature(kCPUIDFeature_SSE42) ? "YES" : "NO "); ConsoleIOPrintFormatted("AESNI : %s\n", CheckCPUIDFeature(kCPUIDFeature_AESNI) ? "YES" : "NO "); ConsoleIOPrintFormatted("AVX : %s\n", CheckCPUIDFeature(kCPUIDFeature_AVX) ? "YES" : "NO "); ConsoleIOPrintFormatted("AVX2 : %s\n", CheckCPUIDFeature(kCPUIDFeature_AVX2) ? "YES" : "NO "); ConsoleIOPrintFormatted("AVX512F : %s\n", CheckCPUIDFeature(kCPUIDFeature_AVX512F) ? "YES" : "NO "); ConsoleIOPrintFormatted("AVX512PF : %s\n", CheckCPUIDFeature(kCPUIDFeature_AVX512PF) ? "YES" : "NO "); ConsoleIOPrintFormatted("AVX512ER : %s\n", CheckCPUIDFeature(kCPUIDFeature_AVX512ER) ? "YES" : "NO "); ConsoleIOPrintFormatted("AVX512CD : %s\n", CheckCPUIDFeature(kCPUIDFeature_AVX512CD) ? "YES" : "NO "); ConsoleIOPrintFormatted("SHA : %s\n", CheckCPUIDFeature(kCPUIDFeature_SHA) ? "YES" : "NO "); ConsoleIOPrintFormatted("EM64T : %s\n", CheckCPUIDFeature(kCPUIDFeature_EM64T) ? "YES" : "NO "); ConsoleIOPrintFormatted("3DNow! : %s\n", CheckCPUIDFeature(kCPUIDFeature_3DNOW) ? "YES" : "NO "); ConsoleIOPrintFormatted("3DNow!+ : %s\n", CheckCPUIDFeature(kCPUIDFeature_E3DNOW) ? "YES" : "NO "); ConsoleIOPrintFormatted("SSE4.a : %s\n", CheckCPUIDFeature(kCPUIDFeature_SSE4A) ? "YES" : "NO "); ConsoleIOPrintFormatted("XOP : %s\n", CheckCPUIDFeature(kCPUIDFeature_XOP) ? "YES" : "NO "); ConsoleIOPrintFormatted("FMA4 : %s\n", CheckCPUIDFeature(kCPUIDFeature_FMA4) ? "YES" : "NO "); ConsoleIOPrint("\n"); ConsoleIOPrintFormatted("SpeedSteep : %s\n", CheckCPUIDFeature(kCPUIDFeature_EIST) ? "YES" : "NO "); ConsoleIOPrintFormatted("TurboBoost : %s\n", CheckCPUIDFeature(kCPUIDFeature_TB) ? "YES" : "NO "); ConsoleIOPrintFormatted("CoolnQuiet : %s\n", CheckCPUIDFeature(kCPUIDFeature_FID) ? "YES" : "NO "); InfoCache(kCacheLevel_L1Code); InfoCache(kCacheLevel_L1Data); InfoCache(kCacheLevel_L2); InfoCache(kCacheLevel_L3); if (MaxBasicLevel >= 0x00000003UL && CheckCPUIDFeature(kCPUIDFeature_PSN)) { char PSN[17] = {0}; CallCPUID(0x00000003UL, 0, (uint32_t*)PSN, (uint32_t*)(PSN + 4), (uint32_t*)(PSN + 8), (uint32_t*)(PSN + 12)); ConsoleIOPrintFormatted("PSN : %s\n", PSN); } if (MaxExtendedLevel >= 0x80000001UL) { uint32_t featuresECX = 0, featuresEDX = 0; CallCPUID(0x80000001UL, 0, NULL, NULL, &featuresECX, &featuresEDX); if (MaxExtendedLevel >= 0x80000004UL) { char brand[49] = {0}; CallCPUID(0x80000002UL, 0, (uint32_t*)(brand + 0x00), (uint32_t*)(brand + 0x04), (uint32_t*)(brand + 0x08), (uint32_t*)(brand + 0x0C)); CallCPUID(0x80000003UL, 0, (uint32_t*)(brand + 0x10), (uint32_t*)(brand + 0x14), (uint32_t*)(brand + 0x18), (uint32_t*)(brand + 0x1C)); CallCPUID(0x80000004UL, 0, (uint32_t*)(brand + 0x20), (uint32_t*)(brand + 0x24), (uint32_t*)(brand + 0x28), (uint32_t*)(brand + 0x2C)); ConsoleIOPrintFormatted("CPU brand : %s\n", brand); } } ConsoleIOPrint("\n"); } else { if (Check80286()) { if (Check80386()) { ConsoleIOPrint("CPU : Intel 80386\n"); } else { ConsoleIOPrint("CPU : Intel 80286\n"); } } else { ConsoleIOPrint("CPU : Intel 8086\n"); } } }