| version 1.14, 2004/03/07 07:51:26 | version 1.22, 2005/03/23 08:07:48 | 
| Line 23  void menu_addmenubar(HMENU popup, HMENU | Line 23  void menu_addmenubar(HMENU popup, HMENU | 
 | UINT                    pos; | UINT                    pos; | 
 | UINT                    i; | UINT                    i; | 
 | MENUITEMINFO    mii; | MENUITEMINFO    mii; | 
| char                    str[128]; | TCHAR                   str[128]; | 
 | HMENU                   hSubMenu; | HMENU                   hSubMenu; | 
 |  |  | 
 | cnt = GetMenuItemCount(menubar); | cnt = GetMenuItemCount(menubar); | 
| Line 34  void menu_addmenubar(HMENU popup, HMENU | Line 34  void menu_addmenubar(HMENU popup, HMENU | 
 | mii.fMask = MIIM_TYPE | MIIM_STATE | MIIM_ID | MIIM_SUBMENU | | mii.fMask = MIIM_TYPE | MIIM_STATE | MIIM_ID | MIIM_SUBMENU | | 
 | MIIM_DATA; | MIIM_DATA; | 
 | mii.dwTypeData = str; | mii.dwTypeData = str; | 
| mii.cch = sizeof(str); | mii.cch = NELEMENTS(str); | 
 | if (GetMenuItemInfo(menubar, i, TRUE, &mii)) { | if (GetMenuItemInfo(menubar, i, TRUE, &mii)) { | 
 | if (mii.hSubMenu) { | if (mii.hSubMenu) { | 
 | hSubMenu = CreatePopupMenu(); | hSubMenu = CreatePopupMenu(); | 
| Line 50  void menu_addmenubar(HMENU popup, HMENU | Line 50  void menu_addmenubar(HMENU popup, HMENU | 
 | static void insertresmenu(HMENU menu, UINT pos, UINT flag, | static void insertresmenu(HMENU menu, UINT pos, UINT flag, | 
 | UINT item, UINT str) { | UINT item, UINT str) { | 
 |  |  | 
| char    tmp[128]; | TCHAR   tmp[128]; | 
 |  |  | 
| if (LoadString(hInst, str, tmp, sizeof(tmp))) { | if (LoadString(hInst, str, tmp, NELEMENTS(tmp))) { | 
 | InsertMenu(menu, pos, flag, item, tmp); | InsertMenu(menu, pos, flag, item, tmp); | 
 | } | } | 
 | } | } | 
| Line 81  const MENUITEMS *iterm; | Line 81  const MENUITEMS *iterm; | 
 |  |  | 
 | static const MENUITEMS smenuitem[] = { | static const MENUITEMS smenuitem[] = { | 
 | {IDM_TOOLWIN,           IDS_TOOLWIN}, | {IDM_TOOLWIN,           IDS_TOOLWIN}, | 
 |  | #if defined(SUPPORT_KEYDISP) | 
 | {IDM_KEYDISP,           IDS_KEYDISP}, | {IDM_KEYDISP,           IDS_KEYDISP}, | 
 |  | #endif | 
 |  | #if defined(SUPPORT_SOFTKBD) | 
 |  | {IDM_SOFTKBD,           IDS_SOFTKBD}, | 
 |  | #endif | 
 | {0,                                     0}, | {0,                                     0}, | 
 | {IDM_SCREENCENTER,      IDS_SCREENCENTER}, | {IDM_SCREENCENTER,      IDS_SCREENCENTER}, | 
 | {IDM_SNAPENABLE,        IDS_SNAPENABLE}, | {IDM_SNAPENABLE,        IDS_SNAPENABLE}, | 
| Line 97  static const MENUITEMS smenuitem[] = { | Line 102  static const MENUITEMS smenuitem[] = { | 
 | {0,                                     0}}; | {0,                                     0}}; | 
 |  |  | 
 | static const MENUITEMS smenuitem2[] = { | static const MENUITEMS smenuitem2[] = { | 
 |  | #if defined(CPUCORE_IA32) && defined(SUPPORT_MEMDBG32) | 
 |  | {IDM_MEMDBG32,          IDS_MEMDBG32}, | 
 |  | #endif | 
 | {IDM_MEMORYDUMP,        IDS_MEMORYDUMP}, | {IDM_MEMORYDUMP,        IDS_MEMORYDUMP}, | 
| {IDM_DEBUGUTY,          IDS_DEBUGUTY}}; | {IDM_DEBUGUTY,          IDS_DEBUGUTY}, | 
|  | {0,                                     0}}; | 
 |  |  | 
 |  |  | 
 | void sysmenu_initialize(void) { | void sysmenu_initialize(void) { | 
| Line 106  void sysmenu_initialize(void) { | Line 115  void sysmenu_initialize(void) { | 
 | HMENU   hMenu; | HMENU   hMenu; | 
 |  |  | 
 | hMenu = GetSystemMenu(hWndMain, FALSE); | hMenu = GetSystemMenu(hWndMain, FALSE); | 
| insertresmenus(hMenu, 0, smenuitem, sizeof(smenuitem)/sizeof(MENUITEMS)); | insertresmenus(hMenu, 0, smenuitem, NELEMENTS(smenuitem)); | 
 | if (np2oscfg.I286SAVE) { | if (np2oscfg.I286SAVE) { | 
| insertresmenus(hMenu, 7, smenuitem2, | insertresmenus(hMenu, 0, smenuitem2, NELEMENTS(smenuitem2)); | 
| sizeof(smenuitem2)/sizeof(MENUITEMS)); |  | 
 | } | } | 
 | } | } | 
 |  |  | 
| void sysmenu_settoolwin(BYTE value) { | void sysmenu_settoolwin(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2oscfg.toolwin = value; | np2oscfg.toolwin = value; | 
| Line 121  void sysmenu_settoolwin(BYTE value) { | Line 129  void sysmenu_settoolwin(BYTE value) { | 
 | IDM_TOOLWIN, MFCHECK(value)); | IDM_TOOLWIN, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void sysmenu_setkeydisp(BYTE value) { | void sysmenu_setkeydisp(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2oscfg.keydisp = value; | np2oscfg.keydisp = value; | 
| Line 129  void sysmenu_setkeydisp(BYTE value) { | Line 137  void sysmenu_setkeydisp(BYTE value) { | 
 | IDM_KEYDISP, MFCHECK(value)); | IDM_KEYDISP, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void sysmenu_setwinsnap(BYTE value) { | void sysmenu_setwinsnap(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2oscfg.WINSNAP = value; | np2oscfg.WINSNAP = value; | 
| Line 137  void sysmenu_setwinsnap(BYTE value) { | Line 145  void sysmenu_setwinsnap(BYTE value) { | 
 | IDM_SNAPENABLE, MFCHECK(value)); | IDM_SNAPENABLE, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void sysmenu_setbackground(BYTE value) { | void sysmenu_setbackground(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 154  void sysmenu_setbackground(BYTE value) { | Line 162  void sysmenu_setbackground(BYTE value) { | 
 | } | } | 
 | } | } | 
 |  |  | 
| void sysmenu_setbgsound(BYTE value) { | void sysmenu_setbgsound(UINT8 value) { | 
 |  |  | 
 | np2oscfg.background &= 1; | np2oscfg.background &= 1; | 
 | np2oscfg.background |= (value & 2); | np2oscfg.background |= (value & 2); | 
| Line 162  void sysmenu_setbgsound(BYTE value) { | Line 170  void sysmenu_setbgsound(BYTE value) { | 
 | IDM_BGSOUND, MFCHECK((value & 2) ^ 2)); | IDM_BGSOUND, MFCHECK((value & 2) ^ 2)); | 
 | } | } | 
 |  |  | 
| void sysmenu_setscrnmul(BYTE value) { | void sysmenu_setscrnmul(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 225  static const DISKMENU scsimenu[4] = { | Line 233  static const DISKMENU scsimenu[4] = { | 
 | #endif | #endif | 
 |  |  | 
 | #if defined(SUPPORT_STATSAVE) | #if defined(SUPPORT_STATSAVE) | 
| static const char xmenu_stat[] = "S&tat"; | static const TCHAR xmenu_stat[] = _T("S&tat"); | 
| static const char xmenu_statsave[] = "Save %u"; | static const TCHAR xmenu_statsave[] = _T("Save %u"); | 
| static const char xmenu_statload[] = "Load %u"; | static const TCHAR xmenu_statload[] = _T("Load %u"); | 
 |  |  | 
 | static void addstatsavemenu(HMENU hMenu, UINT pos) { | static void addstatsavemenu(HMENU hMenu, UINT pos) { | 
 |  |  | 
 | HMENU   hSubMenu; | HMENU   hSubMenu; | 
 | UINT    i; | UINT    i; | 
| char    buf[16]; | TCHAR   buf[16]; | 
 |  |  | 
 | hSubMenu = CreatePopupMenu(); | hSubMenu = CreatePopupMenu(); | 
 | for (i=0; i<SUPPORT_STATSAVE; i++) { | for (i=0; i<SUPPORT_STATSAVE; i++) { | 
| SPRINTF(buf, xmenu_statsave, i); | wsprintf(buf, xmenu_statsave, i); | 
 | AppendMenu(hSubMenu, MF_STRING, IDM_FLAGSAVE + i, buf); | AppendMenu(hSubMenu, MF_STRING, IDM_FLAGSAVE + i, buf); | 
 | } | } | 
 | AppendMenu(hSubMenu, MF_MENUBARBREAK, 0, NULL); | AppendMenu(hSubMenu, MF_MENUBARBREAK, 0, NULL); | 
 | for (i=0; i<SUPPORT_STATSAVE; i++) { | for (i=0; i<SUPPORT_STATSAVE; i++) { | 
| SPRINTF(buf, xmenu_statload, i); | wsprintf(buf, xmenu_statload, i); | 
 | AppendMenu(hSubMenu, MF_STRING, IDM_FLAGLOAD + i, buf); | AppendMenu(hSubMenu, MF_STRING, IDM_FLAGLOAD + i, buf); | 
 | } | } | 
 | InsertMenu(hMenu, pos, MF_BYPOSITION | MF_POPUP, | InsertMenu(hMenu, pos, MF_BYPOSITION | MF_POPUP, | 
| Line 260  void xmenu_initialize(void) { | Line 268  void xmenu_initialize(void) { | 
 | if (np2oscfg.I286SAVE) { | if (np2oscfg.I286SAVE) { | 
 | hSubMenu = GetSubMenu(hMenu, 4); | hSubMenu = GetSubMenu(hMenu, 4); | 
 | insertresmenu(hSubMenu, 10, MF_BYPOSITION | MF_STRING, | insertresmenu(hSubMenu, 10, MF_BYPOSITION | MF_STRING, | 
| IDM_I286SAVE, IDS_I286SAVE); | IDM_CPUSAVE, IDS_CPUSAVE); | 
 | } | } | 
 |  | #if defined(SUPPORT_WAVEREC) | 
 |  | hSubMenu = GetSubMenu(hMenu, 4); | 
 |  | insertresmenu(hSubMenu, 2, MF_BYPOSITION | MF_STRING, | 
 |  | IDM_WAVEREC, IDS_WAVEREC); | 
 |  | #endif | 
 |  |  | 
 | #if defined(SUPPORT_SCSI) | #if defined(SUPPORT_SCSI) | 
 | hSubMenu = GetSubMenu(hMenu, 1); | hSubMenu = GetSubMenu(hMenu, 1); | 
| Line 293  void xmenu_disablewindow(void) { | Line 306  void xmenu_disablewindow(void) { | 
 | EnableMenuItem(hmenu, IDM_FULLSCREEN, MF_GRAYED); | EnableMenuItem(hmenu, IDM_FULLSCREEN, MF_GRAYED); | 
 | } | } | 
 |  |  | 
| void xmenu_setroltate(BYTE value) { | void xmenu_setroltate(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 303  void xmenu_setroltate(BYTE value) { | Line 316  void xmenu_setroltate(BYTE value) { | 
 | CheckMenuItem(hmenu, IDM_ROLRIGHT, MFCHECK(value == 2)); | CheckMenuItem(hmenu, IDM_ROLRIGHT, MFCHECK(value == 2)); | 
 | } | } | 
 |  |  | 
| void xmenu_setdispmode(BYTE value) { | void xmenu_setdispmode(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2cfg.DISPSYNC = value; | np2cfg.DISPSYNC = value; | 
 | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_DISPSYNC, MFCHECK(value)); | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_DISPSYNC, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setraster(BYTE value) { | void xmenu_setraster(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2cfg.RASTER = value; | np2cfg.RASTER = value; | 
 | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_RASTER, MFCHECK(value)); | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_RASTER, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setwaitflg(BYTE value) { | void xmenu_setwaitflg(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2oscfg.NOWAIT = value; | np2oscfg.NOWAIT = value; | 
 | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_NOWAIT, MFCHECK(value)); | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_NOWAIT, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setframe(BYTE value) { | void xmenu_setframe(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 337  void xmenu_setframe(BYTE value) { | Line 350  void xmenu_setframe(BYTE value) { | 
 | CheckMenuItem(hmenu, IDM_15FPS, MFCHECK(value == 4)); | CheckMenuItem(hmenu, IDM_15FPS, MFCHECK(value == 4)); | 
 | } | } | 
 |  |  | 
| void xmenu_setkey(BYTE value) { | void xmenu_setkey(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 351  void xmenu_setkey(BYTE value) { | Line 364  void xmenu_setkey(BYTE value) { | 
 | CheckMenuItem(hmenu, IDM_JOY2, MFCHECK(value == 2)); | CheckMenuItem(hmenu, IDM_JOY2, MFCHECK(value == 2)); | 
 | } | } | 
 |  |  | 
| void xmenu_setxshift(BYTE value) { | void xmenu_setxshift(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 362  void xmenu_setxshift(BYTE value) { | Line 375  void xmenu_setxshift(BYTE value) { | 
 | CheckMenuItem(hmenu, IDM_XGRPH, MFCHECK(value & 4)); | CheckMenuItem(hmenu, IDM_XGRPH, MFCHECK(value & 4)); | 
 | } | } | 
 |  |  | 
| void xmenu_setf12copy(BYTE value) { | void xmenu_setf12copy(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 380  void xmenu_setf12copy(BYTE value) { | Line 393  void xmenu_setf12copy(BYTE value) { | 
 | CheckMenuItem(hmenu, IDM_USERKEY2, MFCHECK(value == 6)); | CheckMenuItem(hmenu, IDM_USERKEY2, MFCHECK(value == 6)); | 
 | } | } | 
 |  |  | 
| void xmenu_setbeepvol(BYTE value) { | void xmenu_setbeepvol(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 393  void xmenu_setbeepvol(BYTE value) { | Line 406  void xmenu_setbeepvol(BYTE value) { | 
 | CheckMenuItem(hmenu, IDM_BEEPHIGH, MFCHECK(value == 3)); | CheckMenuItem(hmenu, IDM_BEEPHIGH, MFCHECK(value == 3)); | 
 | } | } | 
 |  |  | 
| void xmenu_setsound(BYTE value) { | void xmenu_setsound(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 412  void xmenu_setsound(BYTE value) { | Line 425  void xmenu_setsound(BYTE value) { | 
 | CheckMenuItem(hmenu, IDM_AMD98, MFCHECK(value == 0x80)); | CheckMenuItem(hmenu, IDM_AMD98, MFCHECK(value == 0x80)); | 
 | } | } | 
 |  |  | 
| void xmenu_setjastsound(BYTE value) { | void xmenu_setjastsound(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2oscfg.jastsnd = value; | np2oscfg.jastsnd = value; | 
 | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_JASTSOUND, MFCHECK(value)); | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_JASTSOUND, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setmotorflg(BYTE value) { | void xmenu_setmotorflg(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2cfg.MOTOR = value; | np2cfg.MOTOR = value; | 
 | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_SEEKSND, MFCHECK(value)); | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_SEEKSND, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setextmem(BYTE value) { | void xmenu_setextmem(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 437  void xmenu_setextmem(BYTE value) { | Line 450  void xmenu_setextmem(BYTE value) { | 
 | CheckMenuItem(hmenu, IDM_MEM16, MFCHECK(value == 1)); | CheckMenuItem(hmenu, IDM_MEM16, MFCHECK(value == 1)); | 
 | CheckMenuItem(hmenu, IDM_MEM36, MFCHECK(value == 3)); | CheckMenuItem(hmenu, IDM_MEM36, MFCHECK(value == 3)); | 
 | CheckMenuItem(hmenu, IDM_MEM76, MFCHECK(value == 7)); | CheckMenuItem(hmenu, IDM_MEM76, MFCHECK(value == 7)); | 
 |  | CheckMenuItem(hmenu, IDM_MEM116, MFCHECK(value == 11)); | 
 |  | CheckMenuItem(hmenu, IDM_MEM136, MFCHECK(value == 13)); | 
 | } | } | 
 |  |  | 
| void xmenu_setmouse(BYTE value) { | void xmenu_setmouse(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2oscfg.MOUSE_SW = value; | np2oscfg.MOUSE_SW = value; | 
 | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_MOUSE, MFCHECK(value)); | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_MOUSE, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_sets98logging(BYTE value) { | #if defined(SUPPORT_S98) | 
|  | void xmenu_sets98logging(UINT8 value) { | 
 |  |  | 
 | CheckMenuItem(np2class_gethmenu(hWndMain), | CheckMenuItem(np2class_gethmenu(hWndMain), | 
 | IDM_S98LOGGING, MFCHECK(value)); | IDM_S98LOGGING, MFCHECK(value)); | 
 | } | } | 
 |  | #endif | 
 |  |  | 
 |  | #if defined(SUPPORT_WAVEREC) | 
 |  | void xmenu_setwaverec(UINT8 value) { | 
 |  |  | 
 |  | CheckMenuItem(np2class_gethmenu(hWndMain), | 
 |  | IDM_WAVEREC, MFCHECK(value)); | 
 |  | } | 
 |  | #endif | 
 |  |  | 
| void xmenu_setshortcut(BYTE value) { | void xmenu_setshortcut(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 462  void xmenu_setshortcut(BYTE value) { | Line 487  void xmenu_setshortcut(BYTE value) { | 
 | CheckMenuItem(hmenu, IDM_ALTF4, MFCHECK(value & 2)); | CheckMenuItem(hmenu, IDM_ALTF4, MFCHECK(value & 2)); | 
 | } | } | 
 |  |  | 
| void xmenu_setdispclk(BYTE value) { | void xmenu_setdispclk(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 475  void xmenu_setdispclk(BYTE value) { | Line 500  void xmenu_setdispclk(BYTE value) { | 
 | sysmng_updatecaption(3); | sysmng_updatecaption(3); | 
 | } | } | 
 |  |  | 
| void xmenu_setbtnmode(BYTE value) { | void xmenu_setbtnmode(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2cfg.BTN_MODE = value; | np2cfg.BTN_MODE = value; | 
 | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_JOYX, MFCHECK(value)); | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_JOYX, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setbtnrapid(BYTE value) { | void xmenu_setbtnrapid(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2cfg.BTN_RAPID = value; | np2cfg.BTN_RAPID = value; | 
 | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_RAPID, MFCHECK(value)); | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_RAPID, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setmsrapid(BYTE value) { | void xmenu_setmsrapid(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2cfg.MOUSERAPID = value; | np2cfg.MOUSERAPID = value; | 
 | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_MSRAPID, MFCHECK(value)); | CheckMenuItem(np2class_gethmenu(hWndMain), IDM_MSRAPID, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setsstp(BYTE value) { | void xmenu_setsstp(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | np2oscfg.sstp = value; | np2oscfg.sstp = value; |