| version 1.1, 2003/11/21 06:51:10 | version 1.8, 2005/02/11 21:17:22 | 
| Line 15  enum { | Line 15  enum { | 
 | DID_MULTIPLE, | DID_MULTIPLE, | 
 | DID_MULSTR, | DID_MULSTR, | 
 | DID_CLOCKSTR, | DID_CLOCKSTR, | 
 |  | DID_MODELVM, | 
 |  | DID_MODELVX, | 
 |  | DID_MODELEPSON, | 
 | DID_RATE11, | DID_RATE11, | 
 | DID_RATE22, | DID_RATE22, | 
 | DID_RATE44, | DID_RATE44, | 
| Line 23  enum { | Line 26  enum { | 
 | DID_RESUME | DID_RESUME | 
 | }; | }; | 
 |  |  | 
 |  | static const OEMCHAR str_cpu[] = OEMTEXT("CPU"); | 
 |  | static const OEMCHAR str_base[] = OEMTEXT("Base"); | 
 |  | static const OEMCHAR str_2mhz[] = OEMTEXT("1.9968MHz"); | 
 |  | static const OEMCHAR str_2halfmhz[] = OEMTEXT("2.4576MHz"); | 
 |  | static const OEMCHAR str_mul[] = OEMTEXT("Multiple"); | 
 |  | static const OEMCHAR str_arch[] = OEMTEXT("Architecture"); | 
 |  | static const OEMCHAR str_vm[] = OEMTEXT("PC-9801VM"); | 
 |  | static const OEMCHAR str_vx[] = OEMTEXT("PC-9801VX"); | 
 |  | static const OEMCHAR str_epson[] = OEMTEXT("EPSON"); | 
 |  | static const OEMCHAR str_sound[] = OEMTEXT("Sound"); | 
 |  | static const OEMCHAR str_rate[] = OEMTEXT("Rate"); | 
 |  | static const OEMCHAR str_11khz[] = OEMTEXT("11KHz"); | 
 |  | static const OEMCHAR str_22khz[] = OEMTEXT("22KHz"); | 
 |  | static const OEMCHAR str_44khz[] = OEMTEXT("44KHz"); | 
 |  | static const OEMCHAR str_buffer[] = OEMTEXT("Buffer"); | 
 |  |  | 
 |  |  | 
 | #if defined(SIZE_QVGA) | #if defined(SIZE_QVGA) | 
 | static const MENUPRM res_cfg[] = { | static const MENUPRM res_cfg[] = { | 
 | {DLGTYPE_FRAME,         DID_STATIC,             0, | {DLGTYPE_FRAME,         DID_STATIC,             0, | 
| "CPU",                                                                    6,   6, 185,  58}, | str_cpu,                                                                  6,   6, 185,  58}, | 
 | {DLGTYPE_LTEXT,         DID_STATIC,             0, | {DLGTYPE_LTEXT,         DID_STATIC,             0, | 
| "Base",                                                                  16,  21,  38,  11}, | str_base,                                                                16,  21,  38,  11}, | 
 | {DLGTYPE_RADIO,         DID_CLOCK1,             MENU_TABSTOP, | {DLGTYPE_RADIO,         DID_CLOCK1,             MENU_TABSTOP, | 
| "1.9968MHz",                                                     54,  21,  64,  11}, | str_2mhz,                                                                54,  21,  64,  11}, | 
 | {DLGTYPE_RADIO,         DID_CLOCK2,             0, | {DLGTYPE_RADIO,         DID_CLOCK2,             0, | 
| "2.4576MHz",                                                    119,  21,  64,  11}, | str_2halfmhz,                                                   119,  21,  64,  11}, | 
 | {DLGTYPE_LTEXT,         DID_STATIC,             0, | {DLGTYPE_LTEXT,         DID_STATIC,             0, | 
| "Multiple",                                                              16,  39,  63,  11}, | str_mul,                                                                 16,  39,  63,  11}, | 
 | {DLGTYPE_SLIDER,        DID_MULTIPLE,   MSS_BOTH | MENU_TABSTOP, | {DLGTYPE_SLIDER,        DID_MULTIPLE,   MSS_BOTH | MENU_TABSTOP, | 
 | (void *)SLIDERPOS(1, 16),                                80,  38,  63,  13}, | (void *)SLIDERPOS(1, 16),                                80,  38,  63,  13}, | 
 | {DLGTYPE_LTEXT,         DID_MULSTR,             0, | {DLGTYPE_LTEXT,         DID_MULSTR,             0, | 
| Line 42  static const MENUPRM res_cfg[] = { | Line 62  static const MENUPRM res_cfg[] = { | 
 | {DLGTYPE_RTEXT,         DID_CLOCKSTR,   0, | {DLGTYPE_RTEXT,         DID_CLOCKSTR,   0, | 
 | NULL,                                                                   105,  51,  80,  11}, | NULL,                                                                   105,  51,  80,  11}, | 
 | {DLGTYPE_FRAME,         DID_STATIC,             0, | {DLGTYPE_FRAME,         DID_STATIC,             0, | 
| "Sound",                                                                  6,  70, 244,  52}, | str_arch,                                                                 6,  70, 244,  30}, | 
|  | {DLGTYPE_RADIO,         DID_MODELVM,    MENU_TABSTOP, | 
|  | str_vm,                                                                  16,  84,  78,  11}, | 
|  | {DLGTYPE_RADIO,         DID_MODELVX,    0, | 
|  | str_vx,                                                                  96,  84,  78,  11}, | 
|  | {DLGTYPE_RADIO,         DID_MODELEPSON, 0, | 
|  | str_epson,                                                              176,  84,  60,  11}, | 
|  | {DLGTYPE_FRAME,         DID_STATIC,             0, | 
|  | str_sound,                                                                6, 106, 244,  52}, | 
 | {DLGTYPE_LTEXT,         DID_STATIC,             0, | {DLGTYPE_LTEXT,         DID_STATIC,             0, | 
| "Rate",                                                                  16,  85,  40,  11}, | str_rate,                                                                16, 121,  40,  11}, | 
 | {DLGTYPE_RADIO,         DID_RATE11,             MENU_TABSTOP, | {DLGTYPE_RADIO,         DID_RATE11,             MENU_TABSTOP, | 
| "11KHz",                                                                 60,  85,  60,  11}, | str_11khz,                                                               60, 121,  60,  11}, | 
 | {DLGTYPE_RADIO,         DID_RATE22,             0, | {DLGTYPE_RADIO,         DID_RATE22,             0, | 
| "22KHz",                                                                120,  85,  60,  11}, | str_22khz,                                                              120, 121,  60,  11}, | 
 | {DLGTYPE_RADIO,         DID_RATE44,             0, | {DLGTYPE_RADIO,         DID_RATE44,             0, | 
| "44KHz",                                                                180,  85,  60,  11}, | str_44khz,                                                              180, 121,  60,  11}, | 
 | {DLGTYPE_LTEXT,         DID_STATIC,             0, | {DLGTYPE_LTEXT,         DID_STATIC,             0, | 
| "Buffer",                                                                16, 103,  40,  11}, | str_buffer,                                                              16, 139,  40,  11}, | 
 | {DLGTYPE_SLIDER,        DID_BUFFER,             MSS_BOTH | MENU_TABSTOP, | {DLGTYPE_SLIDER,        DID_BUFFER,             MSS_BOTH | MENU_TABSTOP, | 
| (void *)SLIDERPOS(100, 1000),                    60, 102, 140,  13}, | (void *)SLIDERPOS(100, 1000),                    60, 138, 140,  13}, | 
 | {DLGTYPE_RTEXT,         DID_BUFSTR,             0, | {DLGTYPE_RTEXT,         DID_BUFSTR,             0, | 
| NULL,                                                                   200, 103,  44,  11}, | NULL,                                                                   200, 139,  44,  11}, | 
 | {DLGTYPE_CHECK,         DID_RESUME,             MENU_TABSTOP, | {DLGTYPE_CHECK,         DID_RESUME,             MENU_TABSTOP, | 
| str_resume,                                                               6, 128, 128,  11}, | str_resume,                                                               6, 164, 128,  11}, | 
 | {DLGTYPE_BUTTON,        DID_OK,                 MENU_TABSTOP, | {DLGTYPE_BUTTON,        DID_OK,                 MENU_TABSTOP, | 
 | mstr_ok,                                                                197,  11,  52,  15}, | mstr_ok,                                                                197,  11,  52,  15}, | 
 | {DLGTYPE_BUTTON,        DID_CANCEL,             MENU_TABSTOP, | {DLGTYPE_BUTTON,        DID_CANCEL,             MENU_TABSTOP, | 
| Line 66  static const MENUPRM res_cfg[] = { | Line 94  static const MENUPRM res_cfg[] = { | 
 | #else | #else | 
 | static const MENUPRM res_cfg[] = { | static const MENUPRM res_cfg[] = { | 
 | {DLGTYPE_FRAME,         DID_STATIC,             0, | {DLGTYPE_FRAME,         DID_STATIC,             0, | 
| "CPU",                                                                    8,   7, 202,  69}, | str_cpu,                                                                  8,   7, 202,  69}, | 
 | {DLGTYPE_LTEXT,         DID_STATIC,             0, | {DLGTYPE_LTEXT,         DID_STATIC,             0, | 
| "Base",                                                                  20,  24,  28,  13}, | str_base,                                                                20,  24,  28,  13}, | 
 | {DLGTYPE_RADIO,         DID_CLOCK1,             MENU_TABSTOP, | {DLGTYPE_RADIO,         DID_CLOCK1,             MENU_TABSTOP, | 
| "1.9968MHz",                                                     52,  24,  78,  13}, | str_2mhz,                                                                52,  24,  78,  13}, | 
 | {DLGTYPE_RADIO,         DID_CLOCK2,             0, | {DLGTYPE_RADIO,         DID_CLOCK2,             0, | 
| "2.4576MHz",                                                    130,  24,  78,  13}, | str_2halfmhz,                                                   130,  24,  78,  13}, | 
 | {DLGTYPE_LTEXT,         DID_STATIC,             0, | {DLGTYPE_LTEXT,         DID_STATIC,             0, | 
| "Multiple",                                                              20,  45,  64,  13}, | str_mul,                                                                 20,  45,  64,  13}, | 
 | {DLGTYPE_SLIDER,        DID_MULTIPLE,   MSS_BOTH | MENU_TABSTOP, | {DLGTYPE_SLIDER,        DID_MULTIPLE,   MSS_BOTH | MENU_TABSTOP, | 
 | (void *)SLIDERPOS(1, 16),                                84,  45,  80,  13}, | (void *)SLIDERPOS(1, 16),                                84,  45,  80,  13}, | 
 | {DLGTYPE_LTEXT,         DID_MULSTR,             0, | {DLGTYPE_LTEXT,         DID_MULSTR,             0, | 
| Line 82  static const MENUPRM res_cfg[] = { | Line 110  static const MENUPRM res_cfg[] = { | 
 | {DLGTYPE_RTEXT,         DID_CLOCKSTR,   0, | {DLGTYPE_RTEXT,         DID_CLOCKSTR,   0, | 
 | NULL,                                                                   124,  59,  80,  13}, | NULL,                                                                   124,  59,  80,  13}, | 
 | {DLGTYPE_FRAME,         DID_STATIC,             0, | {DLGTYPE_FRAME,         DID_STATIC,             0, | 
| "Sound",                                                                  8,  83, 288,  60}, | str_arch,                                                                 8,  83, 288,  38}, | 
|  | {DLGTYPE_RADIO,         DID_MODELVM,    MENU_TABSTOP, | 
|  | str_vm,                                                                  20, 100,  98,  13}, | 
|  | {DLGTYPE_RADIO,         DID_MODELVX,    0, | 
|  | str_vx,                                                                 120, 100,  98,  13}, | 
|  | {DLGTYPE_RADIO,         DID_MODELEPSON, 0, | 
|  | str_epson,                                                              220, 100,  60,  13}, | 
|  | {DLGTYPE_FRAME,         DID_STATIC,             0, | 
|  | str_sound,                                                                8, 128, 288,  60}, | 
 | {DLGTYPE_LTEXT,         DID_STATIC,             0, | {DLGTYPE_LTEXT,         DID_STATIC,             0, | 
| "Rate",                                                                  20, 100,  48,  13}, | str_rate,                                                                20, 145,  48,  13}, | 
 | {DLGTYPE_RADIO,         DID_RATE11,             MENU_TABSTOP, | {DLGTYPE_RADIO,         DID_RATE11,             MENU_TABSTOP, | 
| "11KHz",                                                                 68, 100,  66,  13}, | str_11khz,                                                               68, 145,  66,  13}, | 
 | {DLGTYPE_RADIO,         DID_RATE22,             0, | {DLGTYPE_RADIO,         DID_RATE22,             0, | 
| "22KHz",                                                                134, 100,  66,  13}, | str_22khz,                                                              134, 145,  66,  13}, | 
 | {DLGTYPE_RADIO,         DID_RATE44,             0, | {DLGTYPE_RADIO,         DID_RATE44,             0, | 
| "44KHz",                                                                200, 100,  66,  13}, | str_44khz,                                                              200, 145,  66,  13}, | 
 | {DLGTYPE_LTEXT,         DID_STATIC,             0, | {DLGTYPE_LTEXT,         DID_STATIC,             0, | 
| "Buffer",                                                                20, 120,  48,  13}, | str_buffer,                                                              20, 165,  48,  13}, | 
 | {DLGTYPE_SLIDER,        DID_BUFFER,             MSS_BOTH | MENU_TABSTOP, | {DLGTYPE_SLIDER,        DID_BUFFER,             MSS_BOTH | MENU_TABSTOP, | 
| (void *)SLIDERPOS(100, 1000),                    68, 120, 160,  13}, | (void *)SLIDERPOS(100, 1000),                    68, 165, 160,  13}, | 
 | {DLGTYPE_RTEXT,         DID_BUFSTR,             0, | {DLGTYPE_RTEXT,         DID_BUFSTR,             0, | 
| NULL,                                                                   228, 120,  48,  13}, | NULL,                                                                   228, 165,  48,  13}, | 
 | {DLGTYPE_CHECK,         DID_RESUME,             MENU_TABSTOP, | {DLGTYPE_CHECK,         DID_RESUME,             MENU_TABSTOP, | 
| "Resume",                                                                 8, 152, 288,  13}, | str_resume,                                                               8, 197, 288,  13}, | 
 | {DLGTYPE_BUTTON,        DID_OK,                 MENU_TABSTOP, | {DLGTYPE_BUTTON,        DID_OK,                 MENU_TABSTOP, | 
 | mstr_ok,                                                                218,  13,  77,  21}, | mstr_ok,                                                                218,  13,  77,  21}, | 
 | {DLGTYPE_BUTTON,        DID_CANCEL,             MENU_TABSTOP, | {DLGTYPE_BUTTON,        DID_CANCEL,             MENU_TABSTOP, | 
| Line 108  static const MENUPRM res_cfg[] = { | Line 144  static const MENUPRM res_cfg[] = { | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
| static const char str_mulfmt[] = "x%u"; | static const OEMCHAR str_mulfmt[] = OEMTEXT("x%u"); | 
| static const char str_clockfmt[] = "%2u.%.4uMHz"; | static const OEMCHAR str_clockfmt[] = OEMTEXT("%2u.%.4uMHz"); | 
| static const char str_buffmt[] = "%ums"; | static const OEMCHAR str_buffmt[] = OEMTEXT("%ums"); | 
 |  |  | 
 | static void setmulstr(void) { | static void setmulstr(void) { | 
 |  |  | 
 | UINT    multiple; | UINT    multiple; | 
| char    work[32]; | OEMCHAR work[32]; | 
 |  |  | 
 | multiple = menudlg_getval(DID_MULTIPLE); | multiple = menudlg_getval(DID_MULTIPLE); | 
 | if (multiple < 1) { | if (multiple < 1) { | 
| Line 124  static void setmulstr(void) { | Line 160  static void setmulstr(void) { | 
 | else if (multiple > 32) { | else if (multiple > 32) { | 
 | multiple = 32; | multiple = 32; | 
 | } | } | 
| SPRINTF(work, str_mulfmt, multiple); | OEMSPRINTF(work, str_mulfmt, multiple); | 
 | menudlg_settext(DID_MULSTR, work); | menudlg_settext(DID_MULSTR, work); | 
 | } | } | 
 |  |  | 
| Line 132  static void setclockstr(void) { | Line 168  static void setclockstr(void) { | 
 |  |  | 
 | UINT32  clock; | UINT32  clock; | 
 | UINT    multiple; | UINT    multiple; | 
| char    work[32]; | OEMCHAR work[32]; | 
 |  |  | 
 | if (menudlg_getval(DID_CLOCK1)) { | if (menudlg_getval(DID_CLOCK1)) { | 
 | clock = PCBASECLOCK20 / 100; | clock = PCBASECLOCK20 / 100; | 
| Line 148  static void setclockstr(void) { | Line 184  static void setclockstr(void) { | 
 | multiple = 32; | multiple = 32; | 
 | } | } | 
 | clock *= multiple; | clock *= multiple; | 
| SPRINTF(work, str_clockfmt, clock / 10000, clock % 10000); | OEMSPRINTF(work, str_clockfmt, clock / 10000, clock % 10000); | 
 | menudlg_settext(DID_CLOCKSTR, work); | menudlg_settext(DID_CLOCKSTR, work); | 
 | } | } | 
 |  |  | 
 | static void setbufstr(void) { | static void setbufstr(void) { | 
 |  |  | 
 | UINT    val; | UINT    val; | 
| char    work[32]; | OEMCHAR work[32]; | 
 |  |  | 
 | val = menudlg_getval(DID_BUFFER); | val = menudlg_getval(DID_BUFFER); | 
 | if (val < 100) { | if (val < 100) { | 
| Line 164  static void setbufstr(void) { | Line 200  static void setbufstr(void) { | 
 | else if (val > 1000) { | else if (val > 1000) { | 
 | val = 1000; | val = 1000; | 
 | } | } | 
| SPRINTF(work, str_buffmt, val); | OEMSPRINTF(work, str_buffmt, val); | 
 | menudlg_settext(DID_BUFSTR, work); | menudlg_settext(DID_BUFSTR, work); | 
 | } | } | 
 |  |  | 
| Line 172  static void dlginit(void) { | Line 208  static void dlginit(void) { | 
 |  |  | 
 | MENUID  id; | MENUID  id; | 
 |  |  | 
| menudlg_appends(res_cfg, sizeof(res_cfg)/sizeof(MENUPRM)); | menudlg_appends(res_cfg, NELEMENTS(res_cfg)); | 
 | if (np2cfg.baseclock < ((PCBASECLOCK25 + PCBASECLOCK20) / 2)) { | if (np2cfg.baseclock < ((PCBASECLOCK25 + PCBASECLOCK20) / 2)) { | 
 | id = DID_CLOCK1; | id = DID_CLOCK1; | 
 | } | } | 
| Line 181  static void dlginit(void) { | Line 217  static void dlginit(void) { | 
 | } | } | 
 | menudlg_setval(id, 1); | menudlg_setval(id, 1); | 
 | menudlg_setval(DID_MULTIPLE, np2cfg.multiple); | menudlg_setval(DID_MULTIPLE, np2cfg.multiple); | 
 |  |  | 
 |  | if (!milstr_cmp(np2cfg.model, str_VM)) { | 
 |  | id = DID_MODELVM; | 
 |  | } | 
 |  | else if (!milstr_cmp(np2cfg.model, str_EPSON)) { | 
 |  | id = DID_MODELEPSON; | 
 |  | } | 
 |  | else { | 
 |  | id = DID_MODELVX; | 
 |  | } | 
 |  | menudlg_setval(id, 1); | 
 |  |  | 
 | if (np2cfg.samplingrate < ((11025 + 22050) / 2)) { | if (np2cfg.samplingrate < ((11025 + 22050) / 2)) { | 
 | id = DID_RATE11; | id = DID_RATE11; | 
 | } | } | 
| Line 192  static void dlginit(void) { | Line 240  static void dlginit(void) { | 
 | } | } | 
 | menudlg_setval(id, 1); | menudlg_setval(id, 1); | 
 | menudlg_setval(DID_BUFFER, np2cfg.delayms); | menudlg_setval(DID_BUFFER, np2cfg.delayms); | 
 |  |  | 
 | menudlg_setval(DID_RESUME, np2oscfg.resume); | menudlg_setval(DID_RESUME, np2oscfg.resume); | 
 |  |  | 
 | setmulstr(); | setmulstr(); | 
 | setclockstr(); | setclockstr(); | 
 | setbufstr(); | setbufstr(); | 
 |  |  | 
 |  | #if defined(DISABLE_SOUND) | 
 |  | menudlg_setenable(DID_RATE11, FALSE); | 
 |  | menudlg_setenable(DID_RATE22, FALSE); | 
 |  | menudlg_setenable(DID_RATE44, FALSE); | 
 |  | menudlg_setenable(DID_BUFFER, FALSE); | 
 |  | #endif | 
 | } | } | 
 |  |  | 
 | static void dlgupdate(void) { | static void dlgupdate(void) { | 
 |  |  | 
| UINT    update; | UINT            update; | 
| UINT    val; | UINT            val; | 
|  | const OEMCHAR   *str; | 
 |  |  | 
 | update = 0; | update = 0; | 
 | if (menudlg_getval(DID_CLOCK1)) { | if (menudlg_getval(DID_CLOCK1)) { | 
| Line 241  static void dlgupdate(void) { | Line 298  static void dlgupdate(void) { | 
 | update |= SYS_UPDATECFG | SYS_UPDATERATE; | update |= SYS_UPDATECFG | SYS_UPDATERATE; | 
 | soundrenewal = 1; | soundrenewal = 1; | 
 | } | } | 
 |  |  | 
 |  | if (menudlg_getval(DID_MODELVM)) { | 
 |  | str = str_VM; | 
 |  | } | 
 |  | else if (menudlg_getval(DID_MODELEPSON)) { | 
 |  | str = str_EPSON; | 
 |  | } | 
 |  | else { | 
 |  | str = str_VX; | 
 |  | } | 
 |  | if (milstr_cmp(np2cfg.model, str)) { | 
 |  | milstr_ncpy(np2cfg.model, str, NELEMENTS(np2cfg.model)); | 
 |  | update |= SYS_UPDATECFG; | 
 |  | } | 
 |  |  | 
 |  | if (menudlg_getval(DID_RATE11)) { | 
 |  | val = 11025; | 
 |  | } | 
 |  | else if (menudlg_getval(DID_RATE44)) { | 
 |  | val = 44100; | 
 |  | } | 
 |  | else { | 
 |  | val = 22050; | 
 |  | } | 
 |  | if (np2cfg.samplingrate != (UINT16)val) { | 
 |  | np2cfg.samplingrate = (UINT16)val; | 
 |  | update |= SYS_UPDATECFG | SYS_UPDATERATE; | 
 |  | soundrenewal = 1; | 
 |  | } | 
 | val = menudlg_getval(DID_BUFFER); | val = menudlg_getval(DID_BUFFER); | 
 | if (val < 100) { | if (val < 100) { | 
 | val = 100; | val = 100; |