| version 1.13, 2003/11/12 00:55:38 | version 1.25, 2004/01/22 04:59:48 | 
| Line 28 | Line 28 | 
 | #include        "s98.h" | #include        "s98.h" | 
 | #include        "diskdrv.h" | #include        "diskdrv.h" | 
 | #include        "fddfile.h" | #include        "fddfile.h" | 
 | #include        "statsave.h" |  | 
 |  |  | 
 |  |  | 
 | #define USE_RESUME | #define USE_RESUME | 
 |  |  | 
 |  |  | 
| NP2OSCFG        np2oscfg = {100, 100, 0, 2, 0, 0,  0, 0, 0}; | NP2OSCFG        np2oscfg = {100, 100,  0, 0, 0, 0,  0, 0, 0, 0, 0}; | 
 |  |  | 
 | WindowPtr       hWndMain; | WindowPtr       hWndMain; | 
 | BOOL            np2running; | BOOL            np2running; | 
| Line 119  static void MenuBarInit(void) { | Line 118  static void MenuBarInit(void) { | 
 | #if TARGET_API_MAC_CARBON | #if TARGET_API_MAC_CARBON | 
 | hmenu = GetMenuHandle(IDM_FDD2); | hmenu = GetMenuHandle(IDM_FDD2); | 
 | SetItemCmd(hmenu, LoWord(IDM_FDD2OPEN), 'D'); | SetItemCmd(hmenu, LoWord(IDM_FDD2OPEN), 'D'); | 
| SetMenuItemModifiers(hmenu, LoWord(IDM_FDD2OPEN), kMenuOptionModifier); | SetMenuItemModifiers(hmenu, LoWord(IDM_FDD2OPEN), kMenuShiftModifier); | 
 | SetItemCmd(hmenu, LoWord(IDM_FDD2EJECT), 'E'); | SetItemCmd(hmenu, LoWord(IDM_FDD2EJECT), 'E'); | 
| SetMenuItemModifiers(hmenu, LoWord(IDM_FDD2EJECT), kMenuOptionModifier); | SetMenuItemModifiers(hmenu, LoWord(IDM_FDD2EJECT), kMenuShiftModifier); | 
 | hmenu = GetMenuHandle(IDM_SASI2); | hmenu = GetMenuHandle(IDM_SASI2); | 
| SetItemCmd(hmenu, LoWord(IDM_FDD2OPEN), 'O'); | SetItemCmd(hmenu, LoWord(IDM_SASI2OPEN), 'O'); | 
| SetMenuItemModifiers(hmenu, LoWord(IDM_SASI2OPEN), kMenuOptionModifier); | SetMenuItemModifiers(hmenu, LoWord(IDM_SASI2OPEN), kMenuShiftModifier); | 
 | #else | #else | 
 | EnableItem(GetMenuHandle(IDM_DEVICE), LoWord(IDM_MOUSE)); | EnableItem(GetMenuHandle(IDM_DEVICE), LoWord(IDM_MOUSE)); | 
 | EnableItem(GetMenuHandle(IDM_KEYBOARD), LoWord(IDM_F12MOUSE)); | EnableItem(GetMenuHandle(IDM_KEYBOARD), LoWord(IDM_F12MOUSE)); | 
| Line 277  static void HandleMenuChoice(long wParam | Line 276  static void HandleMenuChoice(long wParam | 
 | case IDM_KEY: | case IDM_KEY: | 
 | menu_setkey(0); | menu_setkey(0); | 
 | keystat_resetjoykey(); | keystat_resetjoykey(); | 
 |  | update |= SYS_UPDATECFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_JOY1: | case IDM_JOY1: | 
 | menu_setkey(1); | menu_setkey(1); | 
 | keystat_resetjoykey(); | keystat_resetjoykey(); | 
 |  | update |= SYS_UPDATECFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_JOY2: | case IDM_JOY2: | 
 | menu_setkey(2); | menu_setkey(2); | 
 | keystat_resetjoykey(); | keystat_resetjoykey(); | 
 |  | update |= SYS_UPDATECFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_MOUSEKEY: | case IDM_MOUSEKEY: | 
 | menu_setkey(3); | menu_setkey(3); | 
 | keystat_resetjoykey(); | keystat_resetjoykey(); | 
 |  | update |= SYS_UPDATECFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_XSHIFT: | case IDM_XSHIFT: | 
 | menu_setxshift(np2cfg.XSHIFT ^ 1); | menu_setxshift(np2cfg.XSHIFT ^ 1); | 
 | keystat_forcerelease(0x70); | keystat_forcerelease(0x70); | 
 |  | update |= SYS_UPDATECFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_XCTRL: | case IDM_XCTRL: | 
 | menu_setxshift(np2cfg.XSHIFT ^ 2); | menu_setxshift(np2cfg.XSHIFT ^ 2); | 
 | keystat_forcerelease(0x74); | keystat_forcerelease(0x74); | 
 |  | update |= SYS_UPDATECFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_XGRPH: | case IDM_XGRPH: | 
 | menu_setxshift(np2cfg.XSHIFT ^ 4); | menu_setxshift(np2cfg.XSHIFT ^ 4); | 
 | keystat_forcerelease(0x73); | 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; | break; | 
 |  |  | 
 | case IDM_F12MOUSE: | case IDM_F12MOUSE: | 
| menu_setf12copy(0); | menu_setf12key(0); | 
| keystat_resetcopyhelp(); | mackbd_resetf12(); | 
| update |= SYS_UPDATECFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_F12COPY: | case IDM_F12COPY: | 
| menu_setf12copy(1); | menu_setf12key(1); | 
| keystat_resetcopyhelp(); | mackbd_resetf12(); | 
| update |= SYS_UPDATECFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
| case IDM_F12STOP: | case IDM_F12XFER: | 
| menu_setf12copy(2); | menu_setf12key(3); | 
| keystat_resetcopyhelp(); | mackbd_resetf12(); | 
| update |= SYS_UPDATECFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_BEEPOFF: | case IDM_BEEPOFF: | 
| Line 396  static void HandleMenuChoice(long wParam | Line 420  static void HandleMenuChoice(long wParam | 
 | update |= SYS_UPDATECFG; | update |= SYS_UPDATECFG; | 
 | break; | 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: | case IDM_SEEKSND: | 
 | menu_setmotorflg(np2cfg.MOTOR ^ 1); | menu_setmotorflg(np2cfg.MOTOR ^ 1); | 
 | update |= SYS_UPDATECFG; | update |= SYS_UPDATECFG; | 
| Line 542  static void eventproc(EventRecord *event | Line 576  static void eventproc(EventRecord *event | 
 | break; | break; | 
 | } | } | 
 | #if !TARGET_API_MAC_CARBON | #if !TARGET_API_MAC_CARBON | 
| if ((keycode == 0x6f) && (np2oscfg.F12COPY == 0)) { | if ((keycode == 0x6f) && (np2oscfg.F12KEY == 0)) { | 
 | HandleMenuChoice(IDM_MOUSE); | HandleMenuChoice(IDM_MOUSE); | 
 | break; | break; | 
 | } | } | 
 | #endif | #endif | 
 | if (event->modifiers & cmdKey) { | if (event->modifiers & cmdKey) { | 
 |  | #if !TARGET_API_MAC_CARBON | 
 |  | if (mackbd_keydown(keycode, TRUE)) { | 
 |  | break; | 
 |  | } | 
 |  | #endif | 
 | soundmng_stop(); | soundmng_stop(); | 
 | mousemng_disable(MOUSEPROC_MACUI); | mousemng_disable(MOUSEPROC_MACUI); | 
 |  | #if TARGET_API_MAC_CARBON | 
 |  | HandleMenuChoice(MenuEvent(event)); | 
 |  | #else | 
 | HandleMenuChoice(MenuKey(event->message & charCodeMask)); | HandleMenuChoice(MenuKey(event->message & charCodeMask)); | 
 |  | #endif | 
 | mousemng_enable(MOUSEPROC_MACUI); | mousemng_enable(MOUSEPROC_MACUI); | 
 | soundmng_play(); | soundmng_play(); | 
 | } | } | 
 | else { | else { | 
| mackbd_keydown(keycode); | mackbd_keydown(keycode, FALSE); | 
 | } | } | 
 | break; | break; | 
 |  |  | 
| Line 567  static void eventproc(EventRecord *event | Line 610  static void eventproc(EventRecord *event | 
 | mousemng_buttonevent(MOUSEMNG_LEFTUP); | mousemng_buttonevent(MOUSEMNG_LEFTUP); | 
 | mousemng_buttonevent(MOUSEMNG_RIGHTUP); | mousemng_buttonevent(MOUSEMNG_RIGHTUP); | 
 | break; | break; | 
 |  |  | 
 |  | case activateEvt: | 
 |  | mackbd_activate((event->modifiers & activeFlag)?TRUE:FALSE); | 
 |  | break; | 
 | } | } | 
 | } | } | 
 |  |  | 
| Line 675  int main(int argc, char *argv[]) { | Line 722  int main(int argc, char *argv[]) { | 
 | menu_setframe(np2oscfg.DRAW_SKIP); | menu_setframe(np2oscfg.DRAW_SKIP); | 
 | menu_setkey(0); | menu_setkey(0); | 
 | menu_setxshift(0); | menu_setxshift(0); | 
| menu_setf12copy(np2oscfg.F12COPY); | menu_setf11key(np2oscfg.F11KEY); | 
|  | menu_setf12key(np2oscfg.F12KEY); | 
 | menu_setbeepvol(np2cfg.BEEP_VOL); | menu_setbeepvol(np2cfg.BEEP_VOL); | 
 | menu_setsound(np2cfg.SOUND_SW); | menu_setsound(np2cfg.SOUND_SW); | 
 |  | menu_setjastsnd(np2oscfg.jastsnd); | 
 | menu_setmotorflg(np2cfg.MOTOR); | menu_setmotorflg(np2cfg.MOTOR); | 
 | menu_setextmem(np2cfg.EXTMEM); | menu_setextmem(np2cfg.EXTMEM); | 
 | menu_setdispclk(np2oscfg.DISPCLK); | menu_setdispclk(np2oscfg.DISPCLK); |