一応調べた範囲でできたので載せます。Intel以外未対応。
#module mod_getcpubrand
#deffunc getcpubrand
dim cdat, 4
prm = varptr(cdat)
tmp = callfunc( prm, varptr(fn_getcpuinfo), 1 )
sign = (cdat(0) << 12) | (cdat(1) << 8) | (cdat(2) << 4) | cdat(3)
switch cdat(3)
case 0x01 : return "Intel(R) Celeron(R) processor"
case 0x02 : return "Intel(R) Pentium(R) III processsor"
case 0x03
if sign ! 0x000006B1 {
return "Intel(R) Pentium(R) III Xeon(TM) processor"
} else {
return "Intel(R) Celeron(R) proessor"
}
case 0x04
return "Intel(R) Pentium(R) III processor"
case 0x06
return "Mobile Intel(R) Pentium(R) III Processor-M"
case 0x07
return "Mobile Intel(R) Celeron(R) processor"
case 0x08
if 0x00000F13 <= sign {
return "Intel(R) Genuine processor"
} else {
return "Intel(R) Pentium(R) 4 processor"
}
case 0x09
return "Intel(R) Pentium(R) 4 processor"
case 0x0A
return "Intel(R) Celeron(R) Processor"
case 0x0B
if 0x00000F13 <= sign {
return "Intel(R) Xeon(TM) processor"
} else {
return "Intel(R) Xeon(TM) processor MP"
}
case 0x0C
return "Intel(R) Xeon(TM) processor MP"
case 0x0E
if 0x00000F13 <= sign {
return "Mobile Intel(R) Pentium(R) 4 processor-M"
} else {
return "Intel(R) Xeon(TM) processor"
}
case 0x0F
return "Mobile Intel(R) Celeron(R) Processor"
case 0x00
default
return "不明"
swend
return
#deffunc _init_gcb
dim fn_getcpuinfo, 19
fn_getcpuinfo(0) = $53ec8b55, $b8087d8b, $00000000, $f883a20f
fn_getcpuinfo(4) = $b82f7c01, $00000001, $d08ba20f, $830cfac1
fn_getcpuinfo(8) = $17890fe2, $fac1d08b, $0fe28308, $8b045789
fn_getcpuinfo(12) = $04fac1d0, $890fe283, $e0830857, $0c47890f
fn_getcpuinfo(16) = $ffb805eb, $5bffffff, $0000c3c9
return
#global
_init_gcb
getcpubrand : mes refstr