|
|
| version 1.4, 2004/03/19 00:30:01 | version 1.8, 2005/02/07 14:46:10 |
|---|---|
| Line 4 | Line 4 |
| #include "cpucore.h" | #include "cpucore.h" |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| #include "bios.h" | |
| #include "sound.h" | #include "sound.h" |
| #include "fmboard.h" | #include "fmboard.h" |
| #include "np2info.h" | #include "np2info.h" |
| Line 17 static const char str_8MHz[] = "8MHz"; | Line 16 static const char str_8MHz[] = "8MHz"; |
| static const char str_notexist[] = "not exist"; | static const char str_notexist[] = "not exist"; |
| static const char str_disable[] = "disable"; | static const char str_disable[] = "disable"; |
| static const char str_cpu[] = | |
| "8086-2\0" \ | |
| "70116\0" \ | |
| "80286\0" \ | |
| "80386\0" \ | |
| "80486\0" \ | |
| "Pentium\0" \ | |
| "PentiumPro"; | |
| static const char str_winclr[] = | static const char str_winclr[] = |
| "256-colors\0" \ | "256-colors\0" \ |
| "65536-colors\0" \ | "65536-colors\0" \ |
| Line 30 static const char str_grcgchip[] = | Line 37 static const char str_grcgchip[] = |
| "GRCG \0" \ | "GRCG \0" \ |
| "GRCG CG-Window \0" \ | "GRCG CG-Window \0" \ |
| "EGC CG-Window "; | "EGC CG-Window "; |
| static const char str_clrmode[] = | static const char str_vrammode[] = |
| "(Digital)\0" \ | "Digital\0" \ |
| "(Analog)"; | "Analog\0" \ |
| "256colors"; | |
| static const char str_vrampage[] = | |
| " page-0\0" \ | |
| " page-1\0" \ | |
| " page-all"; | |
| static const char str_chpan[] = | static const char str_chpan[] = |
| "none\0" \ | "none\0" \ |
| "Mono-R\0" \ | "Mono-R\0" \ |
| Line 50 static const char str_fmboard[] = | Line 62 static const char str_fmboard[] = |
| "Spark board\0" \ | "Spark board\0" \ |
| "AMD-98"; | "AMD-98"; |
| static const char str_V30[] = "V30"; | |
| static const char str_i286[] = "i286"; | |
| static const char str_clockfmt[] = "%d.%1dMHz"; | static const char str_clockfmt[] = "%d.%1dMHz"; |
| static const char str_memfmt[] = "%3uKB"; | static const char str_memfmt[] = "%3uKB"; |
| static const char str_memfmt2[] = "%3uKB + %uKB"; | static const char str_memfmt2[] = "%3uKB + %uKB"; |
| static const char str_memfmt3[] = "%d.%1dMB"; | static const char str_memfmt3[] = "%d.%1dMB"; |
| static const char str_width[] = "width-%u"; | static const char str_width[] = "width-%u"; |
| static const char str_gdcpage[] = "page-%u %s"; | static const char str_dispclock[] = "%u.%.2ukHz / %u.%uHz"; |
| static const char str_pcm86a[] = " PCM: %dHz %dbit %s"; | static const char str_pcm86a[] = " PCM: %dHz %dbit %s"; |
| static const char str_pcm86b[] = " %d / %d / 32768"; | static const char str_pcm86b[] = " %d / %d / 32768"; |
| Line 76 static void info_ver(char *str, int maxl | Line 84 static void info_ver(char *str, int maxl |
| static void info_cpu(char *str, int maxlen, NP2INFOEX *ex) { | static void info_cpu(char *str, int maxlen, NP2INFOEX *ex) { |
| milstr_ncpy(str, (CPU_TYPE & CPUTYPE_V30)?str_V30:str_i286, maxlen); | UINT family; |
| #if defined(CPU_FAMILY) | |
| family = min(CPU_FAMILY, 6); | |
| #else | |
| family = (CPU_TYPE & CPUTYPE_V30)?1:2; | |
| #endif | |
| milstr_ncpy(str, milstr_list(str_cpu, family), maxlen); | |
| (void)ex; | (void)ex; |
| } | } |
| Line 167 static void info_gdc(char *str, int maxl | Line 182 static void info_gdc(char *str, int maxl |
| (void)ex; | (void)ex; |
| } | } |
| static void info_gdc2(char *str, int maxlen, NP2INFOEX *ex) { | |
| char textstr[32]; | |
| SPRINTF(textstr, str_dispclock, | |
| gdc.hclock / 1000, (gdc.hclock / 10) % 100, | |
| gdc.vclock / 10, gdc.vclock % 10); | |
| milstr_ncpy(str, textstr, maxlen); | |
| (void)ex; | |
| } | |
| static void info_text(char *str, int maxlen, NP2INFOEX *ex) { | static void info_text(char *str, int maxlen, NP2INFOEX *ex) { |
| const char *p; | const char *p; |
| Line 186 const char *p; | Line 212 const char *p; |
| static void info_grph(char *str, int maxlen, NP2INFOEX *ex) { | static void info_grph(char *str, int maxlen, NP2INFOEX *ex) { |
| const char *p; | const char *p; |
| UINT md; | |
| UINT pg; | |
| char grphstr[32]; | char grphstr[32]; |
| if (!(gdcs.grphdisp & GDCSCRN_ENABLE)) { | if (!(gdcs.grphdisp & GDCSCRN_ENABLE)) { |
| p = str_disable; | p = str_disable; |
| } | } |
| else { | else { |
| SPRINTF(grphstr, str_gdcpage, gdcs.access, | md = (gdc.analog & (1 << GDCANALOG_16))?1:0; |
| milstr_list(str_clrmode, (gdc.analog)?1:0)); | pg = gdcs.access; |
| #if defined(SUPPORT_PC9821) | |
| if (gdc.analog & (1 << (GDCANALOG_256))) { | |
| md = 2; | |
| if (gdc.analog & (1 << (GDCANALOG_256E))) { | |
| pg = 2; | |
| } | |
| } | |
| #endif | |
| milstr_ncpy(grphstr, milstr_list(str_vrammode, md), sizeof(grphstr)); | |
| milstr_ncat(grphstr, milstr_list(str_vrampage, pg), sizeof(grphstr)); | |
| p = grphstr; | p = grphstr; |
| } | } |
| milstr_ncpy(str, p, maxlen); | milstr_ncpy(str, p, maxlen); |
| Line 267 static void info_extsnd(char *str, int m | Line 305 static void info_extsnd(char *str, int m |
| static void info_bios(char *str, int maxlen, NP2INFOEX *ex) { | static void info_bios(char *str, int maxlen, NP2INFOEX *ex) { |
| str[0] = '\0'; | str[0] = '\0'; |
| if (biosrom) { | if (pccore.rom & PCROM_BIOS) { |
| milstr_ncat(str, str_biosrom, maxlen); | milstr_ncat(str, str_biosrom, maxlen); |
| } | } |
| if (soundrom.name[0]) { | if (soundrom.name[0]) { |
| Line 327 static const INFOPROC infoproc[] = { | Line 365 static const INFOPROC infoproc[] = { |
| {"MEM2", info_mem2}, | {"MEM2", info_mem2}, |
| {"MEM3", info_mem3}, | {"MEM3", info_mem3}, |
| {"GDC", info_gdc}, | {"GDC", info_gdc}, |
| {"GDC2", info_gdc2}, | |
| {"TEXT", info_text}, | {"TEXT", info_text}, |
| {"GRPH", info_grph}, | {"GRPH", info_grph}, |
| {"SND", info_sound}, | {"SND", info_sound}, |
| Line 401 const INFOPROC *infterm; | Line 440 const INFOPROC *infterm; |
| } | } |
| infwork[leng] = '\0'; | infwork[leng] = '\0'; |
| inf = infoproc; | inf = infoproc; |
| infterm = infoproc + (sizeof(infoproc) / sizeof(INFOPROC)); | infterm = infoproc + NELEMENTS(infoproc); |
| while(inf < infterm) { | while(inf < infterm) { |
| if (!milstr_cmp(infwork, inf->key)) { | if (!milstr_cmp(infwork, inf->key)) { |
| inf->proc(dst, maxlen, &statex); | inf->proc(dst, maxlen, &statex); |