Diff for /np2/win9x/np2.cpp between versions 1.39 and 1.52

version 1.39, 2004/02/13 20:31:55 version 1.52, 2004/05/21 08:40:27
Line 41 Line 41
 #include        "diskdrv.h"  #include        "diskdrv.h"
 #include        "fddfile.h"  #include        "fddfile.h"
 #include        "timing.h"  #include        "timing.h"
   #include        "keystat.h"
 #include        "debugsub.h"  #include        "debugsub.h"
 #include        "keydisp.h"  #include        "subwind.h"
 #include        "kdispwin.h"  
 #include        "viewer.h"  #include        "viewer.h"
   
   
Line 60  static char  szClassName[] = "NP2-MainWi Line 60  static char  szClassName[] = "NP2-MainWi
                 BOOL            winui_en;                  BOOL            winui_en;
   
                 NP2OSCFG        np2oscfg = {                  NP2OSCFG        np2oscfg = {
                                                 "Neko Project II", "NP2",  #if !defined(SUPPORT_PC9821)
                                                   "Neko Project II",
   #else
                                                   "Neko Project 21",
   #endif
                                                   "NP2",
                                                 CW_USEDEFAULT, CW_USEDEFAULT, 1, 1, 0, 1, 0, 0,                                                  CW_USEDEFAULT, CW_USEDEFAULT, 1, 1, 0, 1, 0, 0,
                                                 0, 0, KEY_UNKNOWN, 0,                                                  0, 0, KEY_UNKNOWN, 0,
                                                 0, 0, 0, {1, 2, 2, 1},                                                  0, 0, 0, {1, 2, 2, 1},
Line 106  static void winuileave(void) { Line 111  static void winuileave(void) {
   
 WINLOCEX np2_winlocexallwin(HWND base) {  WINLOCEX np2_winlocexallwin(HWND base) {
   
         HWND    list[3];  
         UINT    i;          UINT    i;
           UINT    cnt;
           HWND    list[5];
   
         list[0] = hWndMain;          cnt = 0;
         list[1] = toolwin_gethwnd();          list[cnt++] = hWndMain;
         list[2] = kdispwin_gethwnd();          list[cnt++] = toolwin_gethwnd();
         for (i=0; i<3; i++) {          list[cnt++] = kdispwin_gethwnd();
           list[cnt++] = skbdwin_gethwnd();
           list[cnt++] = mdbgwin_gethwnd();
           for (i=0; i<cnt; i++) {
                 if (list[i] == base) {                  if (list[i] == base) {
                         list[i] = NULL;                          list[i] = NULL;
                 }                  }
Line 120  WINLOCEX np2_winlocexallwin(HWND base) { Line 129  WINLOCEX np2_winlocexallwin(HWND base) {
         if (base != hWndMain) {         // hWndMainのみ全体移動          if (base != hWndMain) {         // hWndMainのみ全体移動
                 base = NULL;                  base = NULL;
         }          }
         return(winlocex_create(base, list, 3));          return(winlocex_create(base, list, cnt));
 }  }
   
 static void changescreen(BYTE newmode) {  static void changescreen(BYTE newmode) {
Line 142  static void changescreen(BYTE newmode) { Line 151  static void changescreen(BYTE newmode) {
                 if (renewal & SCRNMODE_FULLSCREEN) {                  if (renewal & SCRNMODE_FULLSCREEN) {
                         toolwin_destroy();                          toolwin_destroy();
                         kdispwin_destroy();                          kdispwin_destroy();
                           skbdwin_destroy();
                           mdbgwin_destroy();
                 }                  }
                 else if (renewal & SCRNMODE_ROTATEMASK) {                  else if (renewal & SCRNMODE_ROTATEMASK) {
                         wlex = np2_winlocexallwin(hWndMain);                          wlex = np2_winlocexallwin(hWndMain);
Line 203  static void wincentering(HWND hWnd) { Line 214  static void wincentering(HWND hWnd) {
         MoveWindow(hWndMain, np2oscfg.winx, np2oscfg.winy, width, height, TRUE);          MoveWindow(hWndMain, np2oscfg.winx, np2oscfg.winy, width, height, TRUE);
 }  }
   
 void np2active_renewal(void) {                                                                  // ver0.30  void np2active_renewal(void) {                                                                          // ver0.30
   
         if (np2break & (~NP2BREAK_MAIN)) {          if (np2break & (~NP2BREAK_MAIN)) {
                 np2stopemulate = 2;                  np2stopemulate = 2;
Line 275  static int flagload(const char *ext, con Line 286  static int flagload(const char *ext, con
         winuienter();          winuienter();
         id = IDYES;          id = IDYES;
         ret = statsave_check(path, buf, sizeof(buf));          ret = statsave_check(path, buf, sizeof(buf));
         if (ret & (~NP2FLAG_DISKCHG)) {          if (ret & (~STATFLAG_DISKCHG)) {
                 MessageBox(hWndMain, "Couldn't restart", title, MB_OK | MB_ICONSTOP);                  MessageBox(hWndMain, "Couldn't restart", title, MB_OK | MB_ICONSTOP);
                 id = IDNO;                  id = IDNO;
         }          }
         else if ((!force) && (ret & NP2FLAG_DISKCHG)) {          else if ((!force) && (ret & STATFLAG_DISKCHG)) {
                 char buf2[1024 + 256];                  char buf2[1024 + 256];
                 wsprintf(buf2, "Conflict!\n\n%s\nContinue?", buf);                  wsprintf(buf2, "Conflict!\n\n%s\nContinue?", buf);
                 id = MessageBox(hWndMain, buf2, title,                  id = MessageBox(hWndMain, buf2, title,
Line 319  static void np2popup(HWND hWnd, LPARAM l Line 330  static void np2popup(HWND hWnd, LPARAM l
         DestroyMenu(hMenu);          DestroyMenu(hMenu);
 }  }
   
 // extern "C" void iptrace_out(void);  
   
 static void np2cmd(HWND hWnd, UINT16 cmd) {  static void np2cmd(HWND hWnd, UINT16 cmd) {
   
         UINT    update;          UINT    update;
Line 395  static void np2cmd(HWND hWnd, UINT16 cmd Line 404  static void np2cmd(HWND hWnd, UINT16 cmd
                         toolwin_setfdd(1, NULL);                          toolwin_setfdd(1, NULL);
                         break;                          break;
   
                   case IDM_FDD3OPEN:
                           winuienter();
                           dialog_changefdd(hWnd, 2);
                           winuileave();
                           break;
   
                   case IDM_FDD3EJECT:
                           diskdrv_setfdd(2, NULL, 0);
                           toolwin_setfdd(2, NULL);
                           break;
   
                   case IDM_FDD4OPEN:
                           winuienter();
                           dialog_changefdd(hWnd, 3);
                           winuileave();
                           break;
   
                   case IDM_FDD4EJECT:
                           diskdrv_setfdd(3, NULL, 0);
                           toolwin_setfdd(3, NULL);
                           break;
   
                 case IDM_SASI1OPEN:                  case IDM_SASI1OPEN:
                         winuienter();                          winuienter();
                         dialog_changehdd(hWnd, 0x00);                          dialog_changehdd(hWnd, 0x00);
Line 571  static void np2cmd(HWND hWnd, UINT16 cmd Line 602  static void np2cmd(HWND hWnd, UINT16 cmd
                 case IDM_F12MOUSE:                  case IDM_F12MOUSE:
                         xmenu_setf12copy(0);                          xmenu_setf12copy(0);
                         winkbd_resetf12();                          winkbd_resetf12();
                           winkbd_setf12(0);
                         update |= SYS_UPDATEOSCFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_F12COPY:                  case IDM_F12COPY:
                         xmenu_setf12copy(1);                          xmenu_setf12copy(1);
                         winkbd_resetf12();                          winkbd_resetf12();
                           winkbd_setf12(1);
                         update |= SYS_UPDATEOSCFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_F12STOP:                  case IDM_F12STOP:
                         xmenu_setf12copy(2);                          xmenu_setf12copy(2);
                         winkbd_resetf12();                          winkbd_resetf12();
                           winkbd_setf12(2);
                         update |= SYS_UPDATEOSCFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_F12EQU:                  case IDM_F12EQU:
                         xmenu_setf12copy(3);                          xmenu_setf12copy(3);
                         winkbd_resetf12();                          winkbd_resetf12();
                           winkbd_setf12(3);
                         update |= SYS_UPDATEOSCFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_F12COMMA:                  case IDM_F12COMMA:
                         xmenu_setf12copy(4);                          xmenu_setf12copy(4);
                         winkbd_resetf12();                          winkbd_resetf12();
                           winkbd_setf12(4);
                         update |= SYS_UPDATEOSCFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_USERKEY1:                  case IDM_USERKEY1:
                         xmenu_setf12copy(5);                          xmenu_setf12copy(5);
                         winkbd_resetf12();                          winkbd_resetf12();
                           winkbd_setf12(5);
                         update |= SYS_UPDATEOSCFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_USERKEY2:                  case IDM_USERKEY2:
                         xmenu_setf12copy(6);                          xmenu_setf12copy(6);
                         winkbd_resetf12();                          winkbd_resetf12();
                           winkbd_setf12(6);
                         update |= SYS_UPDATEOSCFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
Line 714  static void np2cmd(HWND hWnd, UINT16 cmd Line 752  static void np2cmd(HWND hWnd, UINT16 cmd
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATECFG;
                         break;                          break;
   
                   case IDM_MEM116:
                           xmenu_setextmem(11);
                           update |= SYS_UPDATECFG;
                           break;
   
                   case IDM_MEM136:
                           xmenu_setextmem(13);
                           update |= SYS_UPDATECFG;
                           break;
   
                 case IDM_MOUSE:                  case IDM_MOUSE:
                         mousemng_toggle(MOUSEPROC_SYSTEM);                          mousemng_toggle(MOUSEPROC_SYSTEM);
                         xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1);                          xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1);
Line 733  static void np2cmd(HWND hWnd, UINT16 cmd Line 781  static void np2cmd(HWND hWnd, UINT16 cmd
                         winuileave();                          winuileave();
                         break;                          break;
   
                 case IDM_MIDIPANIC:                                                                     // ver0.29                  case IDM_MIDIPANIC:
                         rs232c_midipanic();                          rs232c_midipanic();
                         mpu98ii_midipanic();                          mpu98ii_midipanic();
                         pc9861k_midipanic();                          pc9861k_midipanic();
Line 750  static void np2cmd(HWND hWnd, UINT16 cmd Line 798  static void np2cmd(HWND hWnd, UINT16 cmd
                         dialog_writebmp(hWnd);                          dialog_writebmp(hWnd);
                         winuileave();                          winuileave();
                         break;                          break;
   #if defined(SUPPPORT_S98)
                 case IDM_S98LOGGING:                  case IDM_S98LOGGING:
                         winuienter();                          winuienter();
                         dialog_s98(hWnd);                          dialog_s98(hWnd);
                         winuileave();                          winuileave();
                         break;                          break;
   #endif
   #if defined(SUPPORT_WAVEREC)
                   case IDM_WAVEREC:
                           winuienter();
                           dialog_waverec(hWnd);
                           winuileave();
                           break;
   #endif
                 case IDM_DISPCLOCK:                  case IDM_DISPCLOCK:
                         xmenu_setdispclk(np2oscfg.DISPCLK ^ 1);                          xmenu_setdispclk(np2oscfg.DISPCLK ^ 1);
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATECFG;
Line 877  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 932  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                         update |= SYS_UPDATEOSCFG;                                          update |= SYS_UPDATEOSCFG;
                                         break;                                          break;
   
   #if defined(SUPPORT_KEYDISP)
                                 case IDM_KEYDISP:                                  case IDM_KEYDISP:
                                         sysmenu_setkeydisp(np2oscfg.keydisp ^ 1);                                          sysmenu_setkeydisp(np2oscfg.keydisp ^ 1);
                                         if (np2oscfg.keydisp) {                                          if (np2oscfg.keydisp) {
Line 886  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 942  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                                 kdispwin_destroy();                                                  kdispwin_destroy();
                                         }                                          }
                                         break;                                          break;
   #endif
   #if defined(SUPPORT_SOFTKBD)
                                   case IDM_SOFTKBD:
                                           skbdwin_create();
                                           break;
   #endif
   #if defined(CPUCORE_IA32) && defined(SUPPORT_MEMDBG32)
                                   case IDM_MEMDBG32:
                                           mdbgwin_create();
                                           break;
   #endif
                                 case IDM_SCREENCENTER:                                  case IDM_SCREENCENTER:
                                         if ((!scrnmng_isfullscreen()) &&                                          if ((!scrnmng_isfullscreen()) &&
                                                 (!(GetWindowLong(hWnd, GWL_STYLE) &                                                  (!(GetWindowLong(hWnd, GWL_STYLE) &
Line 921  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 987  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                         viewer_open();                                          viewer_open();
                                         break;                                          break;
   
                                 case IDM_SCRNMUL4:                                                              // ver0.26                                  case IDM_SCRNMUL4:
                                 case IDM_SCRNMUL6:                                  case IDM_SCRNMUL6:
                                 case IDM_SCRNMUL8:                                  case IDM_SCRNMUL8:
                                 case IDM_SCRNMUL10:                                  case IDM_SCRNMUL10:
Line 949  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1015  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                         if (subwin) {                                          if (subwin) {
                                                 ShowWindow(subwin, SW_SHOWNOACTIVATE);                                                  ShowWindow(subwin, SW_SHOWNOACTIVATE);
                                         }                                          }
                                           subwin = skbdwin_gethwnd();
                                           if (subwin) {
                                                   ShowWindow(subwin, SW_SHOWNOACTIVATE);
                                           }
                                           subwin = mdbgwin_gethwnd();
                                           if (subwin) {
                                                   ShowWindow(subwin, SW_SHOWNOACTIVATE);
                                           }
                                         return(DefWindowProc(hWnd, msg, wParam, lParam));                                          return(DefWindowProc(hWnd, msg, wParam, lParam));
   
                                 default:                                  default:
Line 1141  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1215  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                         }                          }
                         break;                          break;
   
                 case WM_MBUTTONDOWN:                                                                    // ver0.26                  case WM_MBUTTONDOWN:
                         mousemng_toggle(MOUSEPROC_SYSTEM);                          mousemng_toggle(MOUSEPROC_SYSTEM);
                         xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1);                          xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1);
                         sysmng_update(SYS_UPDATECFG);                          sysmng_update(SYS_UPDATECFG);
Line 1276  static void framereset(UINT cnt) { Line 1350  static void framereset(UINT cnt) {
         framecnt = 0;          framecnt = 0;
         scrnmng_dispclock();          scrnmng_dispclock();
         kdispwin_draw((BYTE)cnt);          kdispwin_draw((BYTE)cnt);
           skbdwin_process();
           mdbgwin_process();
         toolwin_draw((BYTE)cnt);          toolwin_draw((BYTE)cnt);
         viewer_allreload(FALSE);          viewer_allreload(FALSE);
         if (np2oscfg.DISPCLK & 3) {          if (np2oscfg.DISPCLK & 3) {
Line 1317  int WINAPI WinMain(HINSTANCE hInstance,  Line 1393  int WINAPI WinMain(HINSTANCE hInstance, 
         initload();          initload();
         toolwin_readini();          toolwin_readini();
         kdispwin_readini();          kdispwin_readini();
           skbdwin_readini();
           mdbgwin_readini();
   
         rand_setseed((unsigned)time(NULL));          rand_setseed((unsigned)time(NULL));
   
Line 1336  int WINAPI WinMain(HINSTANCE hInstance,  Line 1414  int WINAPI WinMain(HINSTANCE hInstance, 
         mmxflag += (np2oscfg.disablemmx)?MMXFLAG_DISABLE:0;          mmxflag += (np2oscfg.disablemmx)?MMXFLAG_DISABLE:0;
         TRACEINIT();          TRACEINIT();
   
         if (np2oscfg.KEYBOARD >= KEY_TYPEMAX) {                                                 // ver0.28          if (np2oscfg.KEYBOARD >= KEY_TYPEMAX) {
                 int keytype = GetKeyboardType(1);                  int keytype = GetKeyboardType(1);
                 if ((keytype & 0xff00) == 0x0d00) {                  if ((keytype & 0xff00) == 0x0d00) {
                         np2oscfg.KEYBOARD = KEY_PC98;                          np2oscfg.KEYBOARD = KEY_PC98;
Line 1348  int WINAPI WinMain(HINSTANCE hInstance,  Line 1426  int WINAPI WinMain(HINSTANCE hInstance, 
                         np2oscfg.KEYBOARD = KEY_KEY106;                          np2oscfg.KEYBOARD = KEY_KEY106;
                 }                  }
         }          }
         keystat_reset();          winkbd_roll(np2oscfg.KEYBOARD != KEY_PC98);
           winkbd_setf12(np2oscfg.F12COPY);
           keystat_initialize();
   
         np2class_initialize(hInstance);          np2class_initialize(hInstance);
         if (!hPreInst) {          if (!hPreInst) {
Line 1368  int WINAPI WinMain(HINSTANCE hInstance,  Line 1448  int WINAPI WinMain(HINSTANCE hInstance, 
         }          }
         toolwin_initapp(hInstance);          toolwin_initapp(hInstance);
         kdispwin_initialize(hPreInst);          kdispwin_initialize(hPreInst);
           skbdwin_initialize(hPreInst);
           mdbgwin_initialize(hPreInst);
         viewer_init(hPreInst);          viewer_init(hPreInst);
   
         mousemng_initialize();          mousemng_initialize();
Line 1414  int WINAPI WinMain(HINSTANCE hInstance,  Line 1496  int WINAPI WinMain(HINSTANCE hInstance, 
         xmenu_initialize();          xmenu_initialize();
         DrawMenuBar(hWnd);          DrawMenuBar(hWnd);
   
         // ver0.30          if (file_attr_c(np2help) == (short)-1) {                                                // ver0.30
         if (file_attr_c(np2help) == (short)-1) {  
                 EnableMenuItem(GetMenu(hWnd), IDM_HELP, MF_GRAYED);                  EnableMenuItem(GetMenu(hWnd), IDM_HELP, MF_GRAYED);
         }          }
   
Line 1424  int WINAPI WinMain(HINSTANCE hInstance,  Line 1505  int WINAPI WinMain(HINSTANCE hInstance, 
         sysmenu_setwinsnap(np2oscfg.WINSNAP);          sysmenu_setwinsnap(np2oscfg.WINSNAP);
         sysmenu_setbackground(np2oscfg.background);          sysmenu_setbackground(np2oscfg.background);
         sysmenu_setbgsound(np2oscfg.background);          sysmenu_setbgsound(np2oscfg.background);
         sysmenu_setscrnmul(8);                                                                          // ver0.26          sysmenu_setscrnmul(8);
   
         scrnmode = 0;          scrnmode = 0;
         if (np2arg.fullscreen) {          if (np2arg.fullscreen) {
Line 1503  int WINAPI WinMain(HINSTANCE hInstance,  Line 1584  int WINAPI WinMain(HINSTANCE hInstance, 
         }          }
 #endif  #endif
   
 //      リセットしてから… コマンドラインのディスク挿入。                               // ver0.29  //      リセットしてから… コマンドラインのディスク挿入。
         for (i=0; i<4; i++) {          for (i=0; i<4; i++) {
                 if (np2arg.disk[i]) {                  if (np2arg.disk[i]) {
                         milstr_ncpy(diskdrv_fname[i], np2arg.disk[i], MAX_PATH);                          milstr_ncpy(diskdrv_fname[i], np2arg.disk[i], MAX_PATH);
Line 1610  int WINAPI WinMain(HINSTANCE hInstance,  Line 1691  int WINAPI WinMain(HINSTANCE hInstance, 
         }          }
         toolwin_destroy();          toolwin_destroy();
         kdispwin_destroy();          kdispwin_destroy();
           skbdwin_destroy();
           mdbgwin_destroy();
   
         pccore_cfgupdate();          pccore_cfgupdate();
   
Line 1639  int WINAPI WinMain(HINSTANCE hInstance,  Line 1722  int WINAPI WinMain(HINSTANCE hInstance, 
                 initsave();                  initsave();
                 toolwin_writeini();                  toolwin_writeini();
                 kdispwin_writeini();                  kdispwin_writeini();
                   skbdwin_writeini();
                   mdbgwin_writeini();
         }          }
           skbdwin_deinitialize();
   
         TRACETERM();          TRACETERM();
         _MEM_USED("report.txt");          _MEM_USED("report.txt");
         dosio_term();          dosio_term();
   
         viewer_term();                                                                                          // ver0.30          viewer_term();                                                                                                  // ver0.30
   
         return(msg.wParam);          return(msg.wParam);
 }  }

Removed from v.1.39  
changed lines
  Added in v.1.52


RetroPC.NET-CVS <cvs@retropc.net>