static void np2cmd(HWND hWnd, UINT16 cmd) { UINT update; update = 0; switch(cmd) { case IDM_RESET: pccore_cfgupdate(); pccore_reset(); break; case IDM_CONFIG: winuienter(); DialogBox(hInst, MAKEINTRESOURCE(IDD_CONFIG), hWnd, (DLGPROC)CfgDialogProc); winuileave(); break; case IDM_NEWDISK: winuienter(); dialog_newdisk(hWnd); winuileave(); break; case IDM_CHANGEFONT: winuienter(); dialog_font(hWnd); winuileave(); break; case IDM_EXIT: SendMessage(hWnd, WM_CLOSE, 0, 0L); break; case IDM_FDD1OPEN: winuienter(); dialog_changefdd(hWnd, 0); winuileave(); break; case IDM_FDD1EJECT: diskdrv_setfdd(0, NULL, 0); break; case IDM_FDD2OPEN: winuienter(); dialog_changefdd(hWnd, 1); winuileave(); break; case IDM_FDD2EJECT: diskdrv_setfdd(1, NULL, 0); break; case IDM_SASI1OPEN: winuienter(); dialog_changehdd(hWnd, 0); winuileave(); break; case IDM_SASI1EJECT: diskdrv_sethdd(0, NULL); break; case IDM_SASI2OPEN: winuienter(); dialog_changehdd(hWnd, 1); winuileave(); break; case IDM_SASI2EJECT: diskdrv_sethdd(1, NULL); break; case IDM_WINDOW: changescreen(scrnmode & (~SCRNMODE_FULLSCREEN)); break; case IDM_FULLSCREEN: changescreen(scrnmode | SCRNMODE_FULLSCREEN); break; case IDM_ROLNORMAL: xmenu_setroltate(0); changescreen(scrnmode & (~SCRNMODE_ROTATEMASK)); break; case IDM_ROLLEFT: xmenu_setroltate(1); changescreen((scrnmode & (~SCRNMODE_ROTATEMASK)) | SCRNMODE_ROTATELEFT); break; case IDM_ROLRIGHT: xmenu_setroltate(2); changescreen((scrnmode & (~SCRNMODE_ROTATEMASK)) | SCRNMODE_ROTATERIGHT); break; case IDM_DISPSYNC: xmenu_setdispmode(np2cfg.DISPSYNC ^ 1); update |= SYS_UPDATECFG; break; case IDM_RASTER: xmenu_setraster(np2cfg.RASTER ^ 1); if (np2cfg.RASTER) { changescreen(scrnmode | SCRNMODE_HIGHCOLOR); } else { changescreen(scrnmode & (~SCRNMODE_HIGHCOLOR)); } update |= SYS_UPDATECFG; break; case IDM_NOWAIT: xmenu_setwaitflg(np2oscfg.NOWAIT ^ 1); update |= SYS_UPDATECFG; break; case IDM_AUTOFPS: xmenu_setframe(0); update |= SYS_UPDATECFG; break; case IDM_60FPS: xmenu_setframe(1); update |= SYS_UPDATECFG; break; case IDM_30FPS: xmenu_setframe(2); update |= SYS_UPDATECFG; break; case IDM_20FPS: xmenu_setframe(3); update |= SYS_UPDATECFG; break; case IDM_15FPS: xmenu_setframe(4); update |= SYS_UPDATECFG; break; case IDM_SCREENOPT: winuienter(); dialog_scropt(hWnd); winuileave(); break; case IDM_KEY: xmenu_setkey(0); update |= SYS_UPDATECFG; break; case IDM_JOY1: xmenu_setkey(1); update |= SYS_UPDATECFG; break; case IDM_JOY2: xmenu_setkey(2); update |= SYS_UPDATECFG; break; case IDM_XSHIFT: xmenu_setxshift(np2cfg.XSHIFT ^ 1); keystat_forcerelease(0x70); update |= SYS_UPDATECFG; break; case IDM_XCTRL: xmenu_setxshift(np2cfg.XSHIFT ^ 2); keystat_forcerelease(0x74); update |= SYS_UPDATECFG; break; case IDM_XGRPH: xmenu_setxshift(np2cfg.XSHIFT ^ 4); keystat_forcerelease(0x73); update |= SYS_UPDATECFG; break; case IDM_F12MOUSE: xmenu_setf12copy(0); winkbd_resetf12(); update |= SYS_UPDATEOSCFG; break; case IDM_F12COPY: xmenu_setf12copy(1); winkbd_resetf12(); update |= SYS_UPDATEOSCFG; break; case IDM_F12STOP: xmenu_setf12copy(2); winkbd_resetf12(); update |= SYS_UPDATEOSCFG; break; case IDM_F12EQU: xmenu_setf12copy(3); winkbd_resetf12(); update |= SYS_UPDATEOSCFG; break; case IDM_F12COMMA: xmenu_setf12copy(4); winkbd_resetf12(); update |= SYS_UPDATEOSCFG; break; case IDM_BEEPOFF: xmenu_setbeepvol(0); beep_setvol(0); update |= SYS_UPDATECFG; break; case IDM_BEEPLOW: xmenu_setbeepvol(1); beep_setvol(1); update |= SYS_UPDATECFG; break; case IDM_BEEPMID: xmenu_setbeepvol(2); beep_setvol(2); update |= SYS_UPDATECFG; break; case IDM_BEEPHIGH: xmenu_setbeepvol(3); beep_setvol(3); update |= SYS_UPDATECFG; break; case IDM_NOSOUND: xmenu_setsound(0x00); update |= SYS_UPDATECFG; break; case IDM_PC9801_14: xmenu_setsound(0x01); update |= SYS_UPDATECFG; break; case IDM_PC9801_26K: xmenu_setsound(0x02); update |= SYS_UPDATECFG; break; case IDM_PC9801_86: xmenu_setsound(0x04); update |= SYS_UPDATECFG; break; case IDM_PC9801_26_86: xmenu_setsound(0x06); update |= SYS_UPDATECFG; break; case IDM_PC9801_86_CB: xmenu_setsound(0x14); update |= SYS_UPDATECFG; break; case IDM_PC9801_118: xmenu_setsound(0x08); update |= SYS_UPDATECFG; break; case IDM_SPEAKBOARD: xmenu_setsound(0x20); update |= SYS_UPDATECFG; break; case IDM_SPARKBOARD: xmenu_setsound(0x40); update |= SYS_UPDATECFG; break; case IDM_AMD98: xmenu_setsound(0x80); update |= SYS_UPDATECFG; break; case IDM_JASTSOUND: xmenu_setjastsound(np2oscfg.jastsnd ^ 1); update |= SYS_UPDATEOSCFG; break; case IDM_SEEKSND: xmenu_setmotorflg(np2cfg.MOTOR ^ 1); update |= SYS_UPDATECFG; break; case IDM_MEM640: xmenu_setextmem(0); update |= SYS_UPDATECFG; break; case IDM_MEM16: xmenu_setextmem(1); update |= SYS_UPDATECFG; break; case IDM_MEM36: xmenu_setextmem(3); update |= SYS_UPDATECFG; break; case IDM_MEM76: xmenu_setextmem(7); update |= SYS_UPDATECFG; break; case IDM_MEM116: xmenu_setextmem(11); update |= SYS_UPDATECFG; break; case IDM_MEM136: xmenu_setextmem(13); update |= SYS_UPDATECFG; break; case IDM_MOUSE: mousemng_toggle(MOUSEPROC_SYSTEM); xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1); update |= SYS_UPDATECFG; break; case IDM_MPUPC98: winuienter(); DialogBox(hInst, MAKEINTRESOURCE(IDD_MPUPC98), hWnd, (DLGPROC)MidiDialogProc); winuileave(); break; case IDM_MIDIPANIC: // ver0.29 rs232c_midipanic(); mpu98ii_midipanic(); pc9861k_midipanic(); break; case IDM_SNDOPT: winuienter(); dialog_sndopt(hWnd); winuileave(); break; case IDM_BMPSAVE: winuienter(); dialog_writebmp(hWnd); winuileave(); break; #if defined(SUPPPORT_S98) case IDM_S98LOGGING: winuienter(); dialog_s98(hWnd); winuileave(); break; #endif #if defined(SUPPORT_WAVEREC) case IDM_WAVEREC: winuienter(); dialog_waverec(hWnd); winuileave(); break; #endif case IDM_CALENDAR: winuienter(); DialogBox(hInst, MAKEINTRESOURCE(IDD_CALENDAR), hWnd, (DLGPROC)ClndDialogProc); winuileave(); break; case IDM_JOYX: xmenu_setbtnmode(np2cfg.BTN_MODE ^ 1); update |= SYS_UPDATECFG; break; case IDM_RAPID: xmenu_setbtnrapid(np2cfg.BTN_RAPID ^ 1); update |= SYS_UPDATECFG; break; case IDM_MSRAPID: xmenu_setmsrapid(np2cfg.MOUSERAPID ^ 1); update |= SYS_UPDATECFG; break; case IDM_I286SAVE: debugsub_status(); break; case IDM_HELP: ShellExecute(hWnd, NULL, file_getcd(np2help), NULL, NULL, SW_SHOWNORMAL); break; case IDM_ABOUT: winuienter(); DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUT), hWnd, (DLGPROC)AboutDialogProc); winuileave(); break; } sysmng_update(update); }
static void HandleMenuChoice(long wParam) { UINT update; Str255 applname; #if defined(SUPPORT_STATSAVE) UINT num; char ext[16]; #endif update = 0; switch(wParam) { case IDM_ABOUT: AboutDialogProc(); break; case IDM_RESET: pccore_cfgupdate(); pccore_reset(); break; case IDM_CONFIGURE: ConfigDialogProc(); break; case IDM_NEWDISK: dialog_newdisk(); break; case IDM_FONT: dialog_font(); break; case IDM_EXIT: np2running = FALSE; break; case IDM_FDD1OPEN: dialog_changefdd(0); break; case IDM_FDD1EJECT: diskdrv_setfdd(0, NULL, 0); break; case IDM_FDD2OPEN: dialog_changefdd(1); break; case IDM_FDD2EJECT: diskdrv_setfdd(1, NULL, 0); break; case IDM_FDD3OPEN: dialog_changefdd(2); break; case IDM_FDD3EJECT: diskdrv_setfdd(2, NULL, 0); break; case IDM_FDD4OPEN: dialog_changefdd(3); break; case IDM_FDD4EJECT: diskdrv_setfdd(3, NULL, 0); break; case IDM_SASI1OPEN: dialog_changehdd(0x00); break; case IDM_SASI1REMOVE: diskdrv_sethdd(0x00, NULL); break; case IDM_SASI2OPEN: dialog_changehdd(0x01); break; case IDM_SASI2REMOVE: diskdrv_sethdd(0x01, NULL); break; case IDM_SCSI0OPEN: dialog_changehdd(0x20); break; case IDM_SCSI0REMOVE: diskdrv_sethdd(0x20, NULL); break; case IDM_SCSI1OPEN: dialog_changehdd(0x21); break; case IDM_SCSI1REMOVE: diskdrv_sethdd(0x21, NULL); break; case IDM_SCSI2OPEN: dialog_changehdd(0x22); break; case IDM_SCSI2REMOVE: diskdrv_sethdd(0x22, NULL); break; case IDM_SCSI3OPEN: dialog_changehdd(0x23); break; case IDM_SCSI3REMOVE: diskdrv_sethdd(0x23, NULL); break; case IDM_ROLNORMAL: menu_setrotate(0); changescreen(scrnmode & (~SCRNMODE_ROTATEMASK)); break; case IDM_ROLLEFT: menu_setrotate(1); changescreen((scrnmode & (~SCRNMODE_ROTATEMASK)) | SCRNMODE_ROTATELEFT); break; case IDM_ROLRIGHT: menu_setrotate(2); changescreen((scrnmode & (~SCRNMODE_ROTATEMASK)) | SCRNMODE_ROTATERIGHT); break; case IDM_DISPSYNC: menu_setdispmode(np2cfg.DISPSYNC ^ 1); update |= SYS_UPDATECFG; break; case IDM_RASTER: menu_setraster(np2cfg.RASTER ^ 1); update |= SYS_UPDATECFG; break; case IDM_NOWAIT: menu_setwaitflg(np2oscfg.NOWAIT ^ 1); update |= SYS_UPDATECFG; break; case IDM_AUTOFPS: menu_setframe(0); update |= SYS_UPDATECFG; break; case IDM_60FPS: menu_setframe(1); update |= SYS_UPDATECFG; break; case IDM_30FPS: menu_setframe(2); update |= SYS_UPDATECFG; break; case IDM_20FPS: menu_setframe(3); update |= SYS_UPDATECFG; break; case IDM_15FPS: menu_setframe(4); update |= SYS_UPDATECFG; break; case IDM_SCREENOPT: dialog_scropt(); break; case IDM_MOUSE: mousemng_toggle(MOUSEPROC_SYSTEM); menu_setmouse(np2oscfg.MOUSE_SW ^ 1); update |= SYS_UPDATECFG; break; case IDM_MIDIOPT: MPU98DialogProc(); break; case IDM_MIDIPANIC: rs232c_midipanic(); mpu98ii_midipanic(); pc9861k_midipanic(); break; case IDM_KEY: menu_setkey(0); keystat_resetjoykey(); update |= SYS_UPDATECFG; break; case IDM_JOY1: menu_setkey(1); keystat_resetjoykey(); update |= SYS_UPDATECFG; break; case IDM_JOY2: menu_setkey(2); keystat_resetjoykey(); update |= SYS_UPDATECFG; break; case IDM_MOUSEKEY: menu_setkey(3); keystat_resetjoykey(); update |= SYS_UPDATECFG; break; case IDM_XSHIFT: menu_setxshift(np2cfg.XSHIFT ^ 1); keystat_forcerelease(0x70); update |= SYS_UPDATECFG; break; case IDM_XCTRL: menu_setxshift(np2cfg.XSHIFT ^ 2); keystat_forcerelease(0x74); update |= SYS_UPDATECFG; break; case IDM_XGRPH: menu_setxshift(np2cfg.XSHIFT ^ 4); keystat_forcerelease(0x73); update |= SYS_UPDATECFG; break; case IDM_F11KANA: menu_setf11key(0); mackbd_resetf11(); update |= SYS_UPDATEOSCFG; break; case IDM_F11STOP: menu_setf11key(1); mackbd_resetf11(); update |= SYS_UPDATEOSCFG; break; case IDM_F11NFER: menu_setf11key(3); mackbd_resetf11(); update |= SYS_UPDATEOSCFG; break; case IDM_F11USER: menu_setf11key(4); mackbd_resetf11(); update |= SYS_UPDATEOSCFG; break; case IDM_F12MOUSE: menu_setf12key(0); mackbd_resetf12(); update |= SYS_UPDATEOSCFG; break; case IDM_F12COPY: menu_setf12key(1); mackbd_resetf12(); update |= SYS_UPDATEOSCFG; break; case IDM_F12XFER: menu_setf12key(3); mackbd_resetf12(); update |= SYS_UPDATEOSCFG; break; case IDM_F12USER: menu_setf12key(4); mackbd_resetf12(); update |= SYS_UPDATEOSCFG; break; case IDM_BEEPOFF: menu_setbeepvol(0); beep_setvol(0); update |= SYS_UPDATECFG; break; case IDM_BEEPLOW: menu_setbeepvol(1); beep_setvol(1); update |= SYS_UPDATECFG; break; case IDM_BEEPMID: menu_setbeepvol(2); beep_setvol(2); update |= SYS_UPDATECFG; break; case IDM_BEEPHIGH: menu_setbeepvol(3); beep_setvol(3); update |= SYS_UPDATECFG; break; case IDM_NOSOUND: menu_setsound(0); update |= SYS_UPDATECFG; break; case IDM_PC9801_14: menu_setsound(0x01); update |= SYS_UPDATECFG; break; case IDM_PC9801_26K: menu_setsound(0x02); update |= SYS_UPDATECFG; break; case IDM_PC9801_86: menu_setsound(0x04); update |= SYS_UPDATECFG; break; case IDM_PC9801_26_86: menu_setsound(0x06); update |= SYS_UPDATECFG; break; case IDM_PC9801_86_CB: menu_setsound(0x14); update |= SYS_UPDATECFG; break; case IDM_PC9801_118: menu_setsound(0x08); update |= SYS_UPDATECFG; break; case IDM_SPEAKBOARD: menu_setsound(0x20); update |= SYS_UPDATECFG; break; case IDM_SPARKBOARD: menu_setsound(0x40); update |= SYS_UPDATECFG; break; case IDM_AMD98: menu_setsound(0x80); update |= SYS_UPDATECFG; break; case IDM_JASTSND: menu_setjastsnd(np2oscfg.jastsnd ^ 1); update |= SYS_UPDATEOSCFG; break; case IDM_SEEKSND: menu_setmotorflg(np2cfg.MOTOR ^ 1); update |= SYS_UPDATECFG; break; case IDM_MEM640: menu_setextmem(0); update |= SYS_UPDATECFG; break; case IDM_MEM16: menu_setextmem(1); update |= SYS_UPDATECFG; break; case IDM_MEM36: menu_setextmem(3); update |= SYS_UPDATECFG; break; case IDM_MEM76: menu_setextmem(7); update |= SYS_UPDATECFG; break; case IDM_MEM116: menu_setextmem(11); update |= SYS_UPDATECFG; break; case IDM_MEM136: menu_setextmem(13); update |= SYS_UPDATECFG; break; case IDM_BMPSAVE: dialog_writebmp(); break; case IDM_CALENDAR: CalendarDialogProc(); break; case IDM_DISPCLOCK: menu_setdispclk(np2oscfg.DISPCLK ^ 1); update |= SYS_UPDATECFG; break; case IDM_DISPFLAME: menu_setdispclk(np2oscfg.DISPCLK ^ 2); update |= SYS_UPDATECFG; break; case IDM_JOYX: menu_setbtnmode(np2cfg.BTN_MODE ^ 1); update |= SYS_UPDATECFG; break; case IDM_RAPID: menu_setbtnrapid(np2cfg.BTN_RAPID ^ 1); update |= SYS_UPDATECFG; break; case IDM_I286SAVE: debugsub_status(); break; default: if (HiWord(wParam) == IDM_APPLE) { GetMenuItemText(GetMenuHandle(IDM_APPLE), LoWord(wParam), applname); #if !TARGET_API_MAC_CARBON (void)OpenDeskAcc(applname); #endif } #if defined(SUPPORT_STATSAVE) else if (HiWord(wParam) == IDM_STATSAVE) { num = LoWord(wParam); if ((num >= 1) && (num < (1 + 10))) { SPRINTF(ext, np2flagext, num - 1); flagsave(ext); } else if ((num >= 12) && (num < (12 + 10))) { SPRINTF(ext, np2flagext, num - 12); flagload(ext, TRUE); } } #endif break; } sysmng_update(update); HiliteMenu(0); }