; CPUINFO - the code name of the core and its process technology by the ; vendor, the family, the model and the stepping, as CPU-Z shows them. ; ==================================================================== ; The line under the name of the CPU: the vendor, then the code name and ; the technology of the first row of cpu_names for the CPU. name_init: mov edi, vendor_line mov esi, vendor call fmt_str ; the rows differ in length by their strings: walked here, not by ; cpu_find mov esi, cpu_names .row: cmp word [esi + CPU_IDS.vendors], 0 je .done call cpu_match jnc .found ; past the row, its code name, technology and product add esi, sizeof.CPU_IDS call str_skip call str_skip call str_skip jmp .row ; ", the code name, the technology" .found: add esi, sizeof.CPU_IDS mov word [edi], ", " add edi, 2 call fmt_str mov word [edi], ", " add edi, 2 call fmt_str ; without a brand string: the product, the Brand ID of Intel ; family 6 tells it better cmp [brand], 0 jne .done cmp byte [esi], 0 ; esi -> the product, past the technology je .brand_id mov [brand_ptr], esi .brand_id: cmp [vendor_id], INTEL jne .done cmp [family], 6 jne .done mov eax, [brand_id] cmp eax, BRAND_IDS jae .done ; BRAND_P3_XEON of the Tualatin, model 0Bh stepping 1, is a Celeron cmp [model], 0xB jne .product cmp [stepping], 1 jne .product cmp eax, BRAND_P3_XEON jne .product movi eax, BRAND_CELERON .product: mov eax, [brand_ids + eax * 4] test eax, eax jz .done mov [brand_ptr], eax .done: ret ; ==================================================================== ; a row of cpu_names: the CPUs, the code name, the technology and the ; product for the CPUs without a brand string, none if it is empty macro name_row vendors, first_family, last_family, first_model, last_model, first_step, last_step, name, tech, product { CPU_IDS vendors, first_family, last_family, first_model, last_model, first_step, last_step db name, 0 db tech, 0 if product eq db 0 else db product, 0 end if } ; the first row for the CPU counts cpu_names: ; vendors family model stepping name technology product ; Intel Pentium name_row BY_INTEL, 5, 5, 1, 1, 0, 0xF, "P5", "800 nm", "Intel Pentium" name_row BY_INTEL, 5, 5, 2, 2, 0, 0xF, "P54C", "600 nm", "Intel Pentium" name_row BY_INTEL, 5, 5, 3, 3, 0, 0xF, "P24T", "600 nm", "Intel Pentium OverDrive" name_row BY_INTEL, 5, 5, 4, 4, 0, 0xF, "P55C", "350 nm", "Intel Pentium MMX" name_row BY_INTEL, 5, 5, 7, 7, 0, 0xF, "P54C", "350 nm", "Intel Pentium" name_row BY_INTEL, 5, 5, 8, 8, 0, 0xF, "Tillamook", "250 nm", "Intel Pentium MMX" name_row BY_INTEL, 5, 5, 9, 9, 0, 0xF, "Lakemont", "32 nm" ; Intel P6 to Pentium M name_row BY_INTEL, 6, 6, 1, 1, 0, 0xF, "P6", "350 nm", "Intel Pentium Pro" name_row BY_INTEL, 6, 6, 3, 3, 0, 0xF, "Klamath", "350 nm", "Intel Pentium II" name_row BY_INTEL, 6, 6, 5, 5, 0, 0xF, "Deschutes", "250 nm", "Intel Pentium II" name_row BY_INTEL, 6, 6, 6, 6, 0, 0xF, "Mendocino", "250 nm", "Intel Celeron" name_row BY_INTEL, 6, 6, 7, 7, 0, 0xF, "Katmai", "250 nm", "Intel Pentium III" name_row BY_INTEL, 6, 6, 8, 8, 0, 0xF, "Coppermine", "180 nm", "Intel Pentium III" name_row BY_INTEL, 6, 6, 9, 9, 0, 0xF, "Banias", "130 nm" name_row BY_INTEL, 6, 6, 0xA, 0xA, 0, 0xF, "Cascades", "180 nm", "Intel Pentium III Xeon" name_row BY_INTEL, 6, 6, 0xB, 0xB, 0, 0xF, "Tualatin", "130 nm", "Intel Pentium III" name_row BY_INTEL, 6, 6, 0xD, 0xD, 0, 0xF, "Dothan", "90 nm" name_row BY_INTEL, 6, 6, 0xE, 0xE, 0, 0xF, "Yonah", "65 nm" ; Intel Core 2 to Westmere name_row BY_INTEL, 6, 6, 0xF, 0xF, 0, 0xF, "Conroe", "65 nm" name_row BY_INTEL, 6, 6, 0x16, 0x16, 0, 0xF, "Conroe-L", "65 nm" name_row BY_INTEL, 6, 6, 0x17, 0x17, 0, 0xF, "Penryn", "45 nm" name_row BY_INTEL, 6, 6, 0x1A, 0x1A, 0, 0xF, "Bloomfield", "45 nm" name_row BY_INTEL, 6, 6, 0x1D, 0x1D, 0, 0xF, "Dunnington", "45 nm" name_row BY_INTEL, 6, 6, 0x1E, 0x1E, 0, 0xF, "Lynnfield", "45 nm" name_row BY_INTEL, 6, 6, 0x25, 0x25, 0, 0xF, "Clarkdale", "32 nm" name_row BY_INTEL, 6, 6, 0x2C, 0x2C, 0, 0xF, "Gulftown", "32 nm" name_row BY_INTEL, 6, 6, 0x2E, 0x2E, 0, 0xF, "Beckton", "45 nm" name_row BY_INTEL, 6, 6, 0x2F, 0x2F, 0, 0xF, "Westmere-EX", "32 nm" ; Intel Core from Sandy Bridge name_row BY_INTEL, 6, 6, 0x2A, 0x2A, 0, 0xF, "Sandy Bridge", "32 nm" name_row BY_INTEL, 6, 6, 0x2D, 0x2D, 0, 0xF, "Sandy Bridge-E", "32 nm" name_row BY_INTEL, 6, 6, 0x3A, 0x3A, 0, 0xF, "Ivy Bridge", "22 nm" name_row BY_INTEL, 6, 6, 0x3E, 0x3E, 0, 0xF, "Ivy Bridge-E", "22 nm" name_row BY_INTEL, 6, 6, 0x3C, 0x3C, 0, 0xF, "Haswell", "22 nm" name_row BY_INTEL, 6, 6, 0x3F, 0x3F, 0, 0xF, "Haswell-E", "22 nm" name_row BY_INTEL, 6, 6, 0x45, 0x45, 0, 0xF, "Haswell", "22 nm" name_row BY_INTEL, 6, 6, 0x46, 0x46, 0, 0xF, "Crystal Well", "22 nm" name_row BY_INTEL, 6, 6, 0x3D, 0x3D, 0, 0xF, "Broadwell", "14 nm" name_row BY_INTEL, 6, 6, 0x47, 0x47, 0, 0xF, "Broadwell", "14 nm" name_row BY_INTEL, 6, 6, 0x4F, 0x4F, 0, 0xF, "Broadwell-E", "14 nm" name_row BY_INTEL, 6, 6, 0x56, 0x56, 0, 0xF, "Broadwell-DE", "14 nm" name_row BY_INTEL, 6, 6, 0x4E, 0x4E, 0, 0xF, "Skylake", "14 nm" name_row BY_INTEL, 6, 6, 0x5E, 0x5E, 0, 0xF, "Skylake", "14 nm" name_row BY_INTEL, 6, 6, 0x55, 0x55, 0, 4, "Skylake-SP", "14 nm" name_row BY_INTEL, 6, 6, 0x55, 0x55, 5, 7, "Cascade Lake", "14 nm" name_row BY_INTEL, 6, 6, 0x55, 0x55, 8, 0xF, "Cooper Lake", "14 nm" name_row BY_INTEL, 6, 6, 0x8E, 0x8E, 0, 9, "Kaby Lake", "14 nm" name_row BY_INTEL, 6, 6, 0x8E, 0x8E, 0xA, 0xA, "Kaby Lake-R", "14 nm" name_row BY_INTEL, 6, 6, 0x8E, 0x8E, 0xB, 0xB, "Whiskey Lake", "14 nm" name_row BY_INTEL, 6, 6, 0x8E, 0x8E, 0xC, 0xF, "Comet Lake", "14 nm" name_row BY_INTEL, 6, 6, 0x9E, 0x9E, 0, 9, "Kaby Lake", "14 nm" name_row BY_INTEL, 6, 6, 0x9E, 0x9E, 0xA, 0xF, "Coffee Lake", "14 nm" name_row BY_INTEL, 6, 6, 0xA5, 0xA6, 0, 0xF, "Comet Lake", "14 nm" name_row BY_INTEL, 6, 6, 0xA7, 0xA7, 0, 0xF, "Rocket Lake", "14 nm" name_row BY_INTEL, 6, 6, 0x66, 0x66, 0, 0xF, "Cannon Lake", "10 nm" name_row BY_INTEL, 6, 6, 0x7D, 0x7E, 0, 0xF, "Ice Lake", "10 nm" name_row BY_INTEL, 6, 6, 0x6A, 0x6A, 0, 0xF, "Ice Lake-SP", "10 nm" name_row BY_INTEL, 6, 6, 0x6C, 0x6C, 0, 0xF, "Ice Lake-D", "10 nm" name_row BY_INTEL, 6, 6, 0x8A, 0x8A, 0, 0xF, "Lakefield", "10 nm" name_row BY_INTEL, 6, 6, 0x8C, 0x8D, 0, 0xF, "Tiger Lake", "10 nm" name_row BY_INTEL, 6, 6, 0x97, 0x97, 0, 0xF, "Alder Lake", "Intel 7" name_row BY_INTEL, 6, 6, 0x9A, 0x9A, 0, 0xF, "Alder Lake", "Intel 7" name_row BY_INTEL, 6, 6, 0xBE, 0xBE, 0, 0xF, "Alder Lake-N", "Intel 7" name_row BY_INTEL, 6, 6, 0xB7, 0xB7, 0, 0xF, "Raptor Lake", "Intel 7" name_row BY_INTEL, 6, 6, 0xBA, 0xBA, 0, 0xF, "Raptor Lake", "Intel 7" name_row BY_INTEL, 6, 6, 0xBF, 0xBF, 0, 0xF, "Raptor Lake", "Intel 7" name_row BY_INTEL, 6, 6, 0x8F, 0x8F, 0, 0xF, "Sapphire Rapids", "Intel 7" name_row BY_INTEL, 6, 6, 0xCF, 0xCF, 0, 0xF, "Emerald Rapids", "Intel 7" name_row BY_INTEL, 6, 6, 0xAA, 0xAA, 0, 0xF, "Meteor Lake", "Intel 4" name_row BY_INTEL, 6, 6, 0xAD, 0xAD, 0, 0xF, "Granite Rapids", "Intel 3" name_row BY_INTEL, 6, 6, 0xAF, 0xAF, 0, 0xF, "Sierra Forest", "Intel 3" name_row BY_INTEL, 6, 6, 0xBD, 0xBD, 0, 0xF, "Lunar Lake", "TSMC N3B" name_row BY_INTEL, 6, 6, 0xC5, 0xC6, 0, 0xF, "Arrow Lake", "TSMC N3B" ; Intel Atom and Xeon Phi name_row BY_INTEL, 6, 6, 0x1C, 0x1C, 0xA, 0xA, "Pineview", "45 nm" name_row BY_INTEL, 6, 6, 0x1C, 0x1C, 0, 0xF, "Diamondville", "45 nm" name_row BY_INTEL, 6, 6, 0x26, 0x26, 0, 0xF, "Lincroft", "45 nm" name_row BY_INTEL, 6, 6, 0x27, 0x27, 0, 0xF, "Penwell", "32 nm" name_row BY_INTEL, 6, 6, 0x35, 0x35, 0, 0xF, "Cloverview", "32 nm" name_row BY_INTEL, 6, 6, 0x36, 0x36, 0, 0xF, "Cedarview", "32 nm" name_row BY_INTEL, 6, 6, 0x37, 0x37, 0, 0xF, "Bay Trail", "22 nm" name_row BY_INTEL, 6, 6, 0x4A, 0x4A, 0, 0xF, "Merrifield", "22 nm" name_row BY_INTEL, 6, 6, 0x4D, 0x4D, 0, 0xF, "Avoton", "22 nm" name_row BY_INTEL, 6, 6, 0x5A, 0x5A, 0, 0xF, "Moorefield", "22 nm" name_row BY_INTEL, 6, 6, 0x4C, 0x4C, 0, 0xF, "Cherry Trail", "14 nm" name_row BY_INTEL, 6, 6, 0x5C, 0x5C, 0, 0xF, "Apollo Lake", "14 nm" name_row BY_INTEL, 6, 6, 0x5F, 0x5F, 0, 0xF, "Denverton", "14 nm" name_row BY_INTEL, 6, 6, 0x7A, 0x7A, 0, 0xF, "Gemini Lake", "14 nm" name_row BY_INTEL, 6, 6, 0x86, 0x86, 0, 0xF, "Snow Ridge", "10 nm" name_row BY_INTEL, 6, 6, 0x96, 0x96, 0, 0xF, "Elkhart Lake", "10 nm" name_row BY_INTEL, 6, 6, 0x9C, 0x9C, 0, 0xF, "Jasper Lake", "10 nm" name_row BY_INTEL, 6, 6, 0x57, 0x57, 0, 0xF, "Knights Landing", "14 nm" name_row BY_INTEL, 6, 6, 0x85, 0x85, 0, 0xF, "Knights Mill", "14 nm" ; Intel Pentium 4 name_row BY_INTEL, 0xF, 0xF, 0, 1, 0, 0xF, "Willamette", "180 nm" name_row BY_INTEL, 0xF, 0xF, 2, 2, 0, 0xF, "Northwood", "130 nm" name_row BY_INTEL, 0xF, 0xF, 3, 4, 0, 0xF, "Prescott", "90 nm" name_row BY_INTEL, 0xF, 0xF, 6, 6, 0, 0xF, "Cedar Mill", "65 nm" ; AMD K5, K6 name_row BY_AMD, 5, 5, 0, 3, 0, 0xF, "K5", "350 nm", "AMD K5" name_row BY_AMD, 5, 5, 6, 6, 0, 0xF, "K6", "350 nm", "AMD K6" name_row BY_AMD, 5, 5, 7, 7, 0, 0xF, "Little Foot", "250 nm", "AMD K6" name_row BY_AMD, 5, 5, 8, 8, 0, 0xF, "Chomper", "250 nm", "AMD K6-2" name_row BY_AMD, 5, 5, 9, 9, 0, 0xF, "Sharptooth", "250 nm", "AMD K6-III" name_row BY_AMD, 5, 5, 0xA, 0xA, 0, 0xF, "Geode LX", "130 nm" name_row BY_AMD, 5, 5, 0xD, 0xD, 0, 0xF, "Sharptooth", "180 nm", "AMD K6-2+" ; AMD K7 name_row BY_AMD, 6, 6, 1, 1, 0, 0xF, "Argon", "250 nm" name_row BY_AMD, 6, 6, 2, 2, 0, 0xF, "Pluto", "180 nm" name_row BY_AMD, 6, 6, 3, 3, 0, 0xF, "Spitfire", "180 nm" name_row BY_AMD, 6, 6, 4, 4, 0, 0xF, "Thunderbird", "180 nm" name_row BY_AMD, 6, 6, 6, 6, 0, 0xF, "Palomino", "180 nm" name_row BY_AMD, 6, 6, 7, 7, 0, 0xF, "Morgan", "180 nm" name_row BY_AMD, 6, 6, 8, 8, 0, 0xF, "Thoroughbred", "130 nm" name_row BY_AMD, 6, 6, 0xA, 0xA, 0, 0xF, "Barton", "130 nm" ; AMD K8: the known models, then their revisions name_row BY_AMD, 0xF, 0xF, 4, 4, 0, 0xF, "ClawHammer", "130 nm" name_row BY_AMD, 0xF, 0xF, 5, 5, 0, 0xF, "SledgeHammer", "130 nm" name_row BY_AMD, 0xF, 0xF, 7, 8, 0, 0xF, "ClawHammer", "130 nm" name_row BY_AMD, 0xF, 0xF, 0, 0xF, 0, 0xF, "Newcastle", "130 nm" name_row BY_AMD, 0xF, 0xF, 0x14, 0x14, 0, 0xF, "Oakville", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x10, 0x1F, 0, 0xF, "Winchester", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x21, 0x21, 0, 0xF, "Italy", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x23, 0x23, 0, 0xF, "Toledo", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x24, 0x24, 0, 0xF, "Newark", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x25, 0x25, 0, 0xF, "Troy", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x27, 0x27, 0, 0xF, "San Diego", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x2B, 0x2B, 0, 0xF, "Manchester", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x2C, 0x2C, 0, 0xF, "Palermo", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x20, 0x2F, 0, 0xF, "Venice", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x41, 0x41, 0, 0xF, "Santa Rosa", "90 nm" name_row BY_AMD, 0xF, 0xF, 0xC1, 0xC1, 0, 0xF, "Santa Rosa", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x48, 0x48, 0, 0xF, "Taylor", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x4C, 0x4C, 0, 0xF, "Keene", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x4F, 0x4F, 0, 0xF, "Orleans", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x5F, 0x5F, 0, 0xF, "Orleans", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x40, 0x5F, 0, 0xF, "Windsor", "90 nm" name_row BY_AMD, 0xF, 0xF, 0x68, 0x68, 0, 0xF, "Tyler", "65 nm" name_row BY_AMD, 0xF, 0xF, 0x6C, 0x6C, 0, 0xF, "Sherman", "65 nm" name_row BY_AMD, 0xF, 0xF, 0x7C, 0x7C, 0, 0xF, "Sherman", "65 nm" name_row BY_AMD, 0xF, 0xF, 0x6F, 0x6F, 0, 0xF, "Lima", "65 nm" name_row BY_AMD, 0xF, 0xF, 0x7F, 0x7F, 0, 0xF, "Lima", "65 nm" name_row BY_AMD, 0xF, 0xF, 0x60, 0x7F, 0, 0xF, "Brisbane", "65 nm" ; AMD K10 to Jaguar name_row BY_AMD, 0x10, 0x10, 2, 2, 0, 0xF, "Agena", "65 nm" name_row BY_AMD, 0x10, 0x10, 4, 4, 0, 0xF, "Deneb", "45 nm" name_row BY_AMD, 0x10, 0x10, 5, 5, 0, 0xF, "Propus", "45 nm" name_row BY_AMD, 0x10, 0x10, 6, 6, 0, 0xF, "Regor", "45 nm" name_row BY_AMD, 0x10, 0x10, 8, 8, 0, 0xF, "Istanbul", "45 nm" name_row BY_AMD, 0x10, 0x10, 9, 9, 0, 0xF, "Magny-Cours", "45 nm" name_row BY_AMD, 0x10, 0x10, 0xA, 0xA, 0, 0xF, "Thuban", "45 nm" name_row BY_AMD, 0x11, 0x11, 3, 3, 0, 0xF, "Griffin", "65 nm" name_row BY_AMD, 0x12, 0x12, 1, 1, 0, 0xF, "Llano", "32 nm" name_row BY_AMD, 0x14, 0x14, 0, 0xF, 0, 0xF, "Zacate", "40 nm" name_row BY_AMD, 0x15, 0x15, 1, 1, 0, 0xF, "Zambezi", "32 nm" name_row BY_AMD, 0x15, 0x15, 2, 2, 0, 0xF, "Vishera", "32 nm" name_row BY_AMD, 0x15, 0x15, 0x10, 0x1F, 0, 0xF, "Trinity", "32 nm" name_row BY_AMD, 0x15, 0x15, 0x30, 0x3F, 0, 0xF, "Kaveri", "28 nm" name_row BY_AMD, 0x15, 0x15, 0x60, 0x6F, 0, 0xF, "Carrizo", "28 nm" name_row BY_AMD, 0x15, 0x15, 0x70, 0x7F, 0, 0xF, "Stoney Ridge", "28 nm" name_row BY_AMD, 0x16, 0x16, 0, 0xF, 0, 0xF, "Kabini", "28 nm" name_row BY_AMD, 0x16, 0x16, 0x30, 0x3F, 0, 0xF, "Beema", "28 nm" ; AMD Zen name_row BY_AMD, 0x17, 0x17, 1, 1, 0, 0xF, "Summit Ridge", "14 nm" name_row BY_AMD, 0x17, 0x17, 8, 8, 0, 0xF, "Pinnacle Ridge", "12 nm" name_row BY_AMD, 0x17, 0x17, 0x11, 0x11, 0, 0xF, "Raven Ridge", "14 nm" name_row BY_AMD, 0x17, 0x17, 0x18, 0x18, 0, 0xF, "Picasso", "12 nm" name_row BY_AMD, 0x17, 0x17, 0x20, 0x20, 0, 0xF, "Dali", "14 nm" name_row BY_AMD, 0x17, 0x17, 0x31, 0x31, 0, 0xF, "Rome", "7 nm" name_row BY_AMD, 0x17, 0x17, 0x60, 0x60, 0, 0xF, "Renoir", "7 nm" name_row BY_AMD, 0x17, 0x17, 0x68, 0x68, 0, 0xF, "Lucienne", "7 nm" name_row BY_AMD, 0x17, 0x17, 0x71, 0x71, 0, 0xF, "Matisse", "7 nm" name_row BY_AMD, 0x17, 0x17, 0x90, 0x90, 0, 0xF, "Van Gogh", "7 nm" name_row BY_AMD, 0x17, 0x17, 0xA0, 0xA0, 0, 0xF, "Mendocino", "6 nm" name_row BY_AMD, 0x19, 0x19, 1, 1, 0, 0xF, "Milan", "7 nm" name_row BY_AMD, 0x19, 0x19, 8, 8, 0, 0xF, "Chagall", "7 nm" name_row BY_AMD, 0x19, 0x19, 0x10, 0x11, 0, 0xF, "Genoa", "5 nm" name_row BY_AMD, 0x19, 0x19, 0x18, 0x18, 0, 0xF, "Storm Peak", "5 nm" name_row BY_AMD, 0x19, 0x19, 0x21, 0x21, 0, 0xF, "Vermeer", "7 nm" name_row BY_AMD, 0x19, 0x19, 0x40, 0x44, 0, 0xF, "Rembrandt", "6 nm" name_row BY_AMD, 0x19, 0x19, 0x50, 0x50, 0, 0xF, "Cezanne", "7 nm" name_row BY_AMD, 0x19, 0x19, 0x61, 0x61, 0, 0xF, "Raphael", "5 nm" name_row BY_AMD, 0x19, 0x19, 0x70, 0x7F, 0, 0xF, "Phoenix", "4 nm" name_row BY_AMD, 0x19, 0x19, 0xA0, 0xAF, 0, 0xF, "Bergamo", "5 nm" name_row BY_AMD, 0x1A, 0x1A, 0, 0xF, 0, 0xF, "Turin", "4 nm" name_row BY_AMD, 0x1A, 0x1A, 0x10, 0x1F, 0, 0xF, "Turin Dense", "3 nm" name_row BY_AMD, 0x1A, 0x1A, 0x20, 0x2F, 0, 0xF, "Strix Point", "4 nm" name_row BY_AMD, 0x1A, 0x1A, 0x40, 0x4F, 0, 0xF, "Granite Ridge", "4 nm" name_row BY_AMD, 0x1A, 0x1A, 0x60, 0x6F, 0, 0xF, "Krackan Point", "4 nm" name_row BY_AMD, 0x1A, 0x1A, 0x70, 0x7F, 0, 0xF, "Strix Halo", "4 nm" name_row BY_HYGON, 0x18, 0x18, 0, 0xFF, 0, 0xF, "Dhyana", "14 nm" ; IDT, VIA, Zhaoxin name_row BY_CENTAUR, 5, 5, 4, 4, 0, 0xF, "C6", "350 nm", "IDT WinChip C6" name_row BY_CENTAUR, 5, 5, 8, 8, 0, 0xF, "WinChip 2", "350 nm", "IDT WinChip 2" name_row BY_CENTAUR, 5, 5, 9, 9, 0, 0xF, "WinChip 3", "250 nm", "IDT WinChip 3" name_row BY_CENTAUR, 6, 6, 6, 6, 0, 0xF, "Samuel", "180 nm" name_row BY_CENTAUR, 6, 6, 7, 7, 0, 7, "Samuel 2", "150 nm" name_row BY_CENTAUR, 6, 6, 7, 7, 8, 0xF, "Ezra", "130 nm" name_row BY_CENTAUR, 6, 6, 8, 8, 0, 0xF, "Ezra-T", "130 nm" name_row BY_CENTAUR, 6, 6, 9, 9, 0, 0xF, "Nehemiah", "130 nm" name_row BY_CENTAUR, 6, 6, 0xA, 0xA, 0, 0xF, "Esther", "90 nm" name_row BY_CENTAUR, 6, 6, 0xD, 0xD, 0, 0xF, "Esther", "90 nm" name_row BY_CENTAUR, 6, 6, 0xF, 0xF, 0, 0xF, "Isaiah", "65 nm" name_row BY_ZHAOXIN, 7, 7, 0x1B, 0x1B, 0, 0xF, "WuDaoKou", "28 nm" name_row BY_ZHAOXIN, 7, 7, 0x3B, 0x3B, 0, 0xF, "LuJiaZui", "16 nm" ; Cyrix, Transmeta name_row BY_CYRIX, 5, 5, 2, 2, 0, 0xF, "M1", "600 nm", "Cyrix 6x86" name_row BY_CYRIX, 5, 5, 4, 4, 0, 0xF, "GXm", "350 nm", "Cyrix MediaGX" name_row BY_CYRIX, 6, 6, 0, 0, 0, 0xF, "M2", "350 nm", "Cyrix 6x86MX" name_row BY_CYRIX, 6, 6, 5, 5, 0, 0xF, "Joshua", "180 nm", "VIA Cyrix III" name_row BY_TRANSMETA, 5, 5, 0, 0xF, 0, 0xF, "Crusoe", "130 nm" name_row BY_TRANSMETA, 0xF, 0xF, 0, 0xF, 0, 0xF, "Efficeon", "130 nm" dw 0 ; the end ; the products of Intel family 6 by the Brand ID in leaf 1, 0: none BRAND_CELERON = 1 BRAND_P3_XEON = 3 brand_ids: dd 0 ; 0 dd sz_celeron ; 1, BRAND_CELERON dd sz_pentium3 ; 2 dd sz_pentium3_xeon ; 3, BRAND_P3_XEON dd sz_pentium3 ; 4 dd 0 ; 5 dd sz_pentium3_m ; 6 dd sz_celeron_mobile ; 7 BRAND_IDS = ($ - brand_ids) / 4 sz_celeron db "Intel Celeron", 0 sz_pentium3 db "Intel Pentium III", 0 sz_pentium3_xeon db "Intel Pentium III Xeon", 0 sz_pentium3_m db "Mobile Intel Pentium III-M", 0 sz_celeron_mobile db "Mobile Intel Celeron", 0 ; ==================================================================== uglobal vendor_line rb 64 ; the vendor, the code name, the technology endg