--- np2/win9x/menu.cpp 2003/11/04 15:44:59 1.7 +++ np2/win9x/menu.cpp 2004/02/11 17:39:59 1.11 @@ -171,6 +171,62 @@ void menu_addmenubar(HMENU popup, HMENU // ---- +static const char xmenu_stat[] = "S&tat"; +static const char xmenu_statsave[] = "Save %d"; +static const char xmenu_statload[] = "Load %d"; +static const char xmenu_scsi[] = "SCSI #%d"; +static const char xmenu_open[] = "&Open..."; +static const char xmenu_remove[] = "&Remove"; + +static void addscsimenu(HMENU hMenu, UINT drv, UINT16 open, UINT16 eject) { + + HMENU hSubMenu; + char buf[16]; + + hSubMenu = CreatePopupMenu(); + AppendMenu(hSubMenu, MF_STRING, open, xmenu_open); + AppendMenu(hSubMenu, MF_SEPARATOR, 0, NULL); + AppendMenu(hSubMenu, MF_STRING, eject, xmenu_remove); + + SPRINTF(buf, xmenu_scsi, drv); + AppendMenu(hMenu, MF_POPUP, (UINT32)hSubMenu, buf); +} + +void xmenu_initialize(void) { + + HMENU hMenu; + HMENU hSubMenu; + int i; + char buf[16]; + + hMenu = np2class_gethmenu(hWndMain); + +#if defined(SUPPORT_SCSI) + hSubMenu = GetSubMenu(hMenu, 3); + AppendMenu(hSubMenu, MF_SEPARATOR, 0, NULL); + addscsimenu(hSubMenu, 0, IDM_SCSI0OPEN, IDM_SCSI0EJECT); + addscsimenu(hSubMenu, 1, IDM_SCSI1OPEN, IDM_SCSI1EJECT); + addscsimenu(hSubMenu, 2, IDM_SCSI2OPEN, IDM_SCSI2EJECT); + addscsimenu(hSubMenu, 3, IDM_SCSI3OPEN, IDM_SCSI3EJECT); +#endif + + // めにゅー追加 + if (np2oscfg.statsave) { + hSubMenu = CreatePopupMenu(); + for (i=0; i= 5) { + if (value > 6) { value = 0; } np2oscfg.F12COPY = value; @@ -263,6 +319,8 @@ void xmenu_setf12copy(BYTE value) { CheckMenuItem(hmenu, IDM_F12STOP, MFCHECK(value == 2)); CheckMenuItem(hmenu, IDM_F12EQU, MFCHECK(value == 3)); CheckMenuItem(hmenu, IDM_F12COMMA, MFCHECK(value == 4)); + CheckMenuItem(hmenu, IDM_USERKEY1, MFCHECK(value == 5)); + CheckMenuItem(hmenu, IDM_USERKEY2, MFCHECK(value == 6)); } void xmenu_setbeepvol(BYTE value) { @@ -285,15 +343,23 @@ void xmenu_setsound(BYTE value) { sysmng_update(SYS_UPDATESBOARD); np2cfg.SOUND_SW = value; hmenu = np2class_gethmenu(hWndMain); - CheckMenuItem(hmenu, IDM_NOSOUND, MFCHECK(value == 0)); - CheckMenuItem(hmenu, IDM_PC9801_14, MFCHECK(value & 1)); - CheckMenuItem(hmenu, IDM_PC9801_26K, MFCHECK(value & 2)); - CheckMenuItem(hmenu, IDM_PC9801_86, MFCHECK(value & 4)); - CheckMenuItem(hmenu, IDM_PC9801_118, MFCHECK(value & 8)); - CheckMenuItem(hmenu, IDM_CHIBIOTO, MFCHECK(value & 0x10)); - CheckMenuItem(hmenu, IDM_SPEAKBOARD, MFCHECK(value & 0x20)); - CheckMenuItem(hmenu, IDM_SPARKBOARD, MFCHECK(value & 0x40)); - CheckMenuItem(hmenu, IDM_AMD98, MFCHECK(value & 0x80)); + CheckMenuItem(hmenu, IDM_NOSOUND, MFCHECK(value == 0x00)); + CheckMenuItem(hmenu, IDM_PC9801_14, MFCHECK(value == 0x01)); + CheckMenuItem(hmenu, IDM_PC9801_26K, MFCHECK(value == 0x02)); + CheckMenuItem(hmenu, IDM_PC9801_86, MFCHECK(value == 0x04)); + CheckMenuItem(hmenu, IDM_PC9801_26_86, MFCHECK(value == 0x06)); + CheckMenuItem(hmenu, IDM_PC9801_86_CB, MFCHECK(value == 0x14)); + CheckMenuItem(hmenu, IDM_PC9801_118, MFCHECK(value == 0x08)); + CheckMenuItem(hmenu, IDM_SPEAKBOARD, MFCHECK(value == 0x20)); + CheckMenuItem(hmenu, IDM_SPARKBOARD, MFCHECK(value == 0x40)); + CheckMenuItem(hmenu, IDM_AMD98, MFCHECK(value == 0x80)); +} + +void xmenu_setjastsound(BYTE value) { + + value &= 1; + np2oscfg.jastsnd = value; + CheckMenuItem(np2class_gethmenu(hWndMain), IDM_JASTSOUND, MFCHECK(value)); } void xmenu_setmotorflg(BYTE value) {