Diff for /np2/win9x/np2.cpp between versions 1.10 and 1.14

version 1.10, 2003/10/25 16:01:21 version 1.14, 2003/10/28 18:21:05
Line 5 Line 5
 #endif  #endif
 #include        "resource.h"  #include        "resource.h"
 #include        "strres.h"  #include        "strres.h"
   #include        "parts.h"
 #include        "np2.h"  #include        "np2.h"
 #include        "np2arg.h"  #include        "np2arg.h"
   #include        "cputype.h"
 #include        "dosio.h"  #include        "dosio.h"
 #include        "extromio.h"  #include        "extromio.h"
 #include        "commng.h"  #include        "commng.h"
Line 22 Line 24
 #include        "sstp.h"  #include        "sstp.h"
 #include        "sstpmsg.h"  #include        "sstpmsg.h"
 #include        "dclock.h"  #include        "dclock.h"
   #include        "toolwin.h"
 #ifdef USE_ROMEO  #ifdef USE_ROMEO
 #include        "juliet.h"  #include        "juliet.h"
 #endif  #endif
Line 55  static char  szClassName[] = "NP2-MainWi Line 58  static char  szClassName[] = "NP2-MainWi
                 HWND            hWndMain;                  HWND            hWndMain;
                 HINSTANCE       hInst;                  HINSTANCE       hInst;
                 HINSTANCE       hPrev;                  HINSTANCE       hPrev;
                   int                     mmxflag;
   
                 NP2OSCFG        np2oscfg = {                  NP2OSCFG        np2oscfg = {
                                                 "Neko Project II", "NP2",                                                  "Neko Project II", "NP2",
Line 66  static char  szClassName[] = "NP2-MainWi Line 70  static char  szClassName[] = "NP2-MainWi
                                                 {0, 0, 0x3e, 19200, "", "", "", ""},            // ver0.34                                                  {0, 0, 0x3e, 19200, "", "", "", ""},            // ver0.34
                                                 {0, 0, 0x3e, 19200, "", "", "", ""},            // ver0.34                                                  {0, 0, 0x3e, 19200, "", "", "", ""},            // ver0.34
                                                 0xffffff, 0xffbf6a, 0, 0,                                                  0xffffff, 0xffbf6a, 0, 0,
                                                 0, 1, 0, 9801, 0, 0, 0, 0};                                     // ver0.34                                                  0, 1, 0, 9801, 0, 0, 0, 0, 0, 0};                       // ver0.38
   
                 char    fddfolder[MAX_PATH];                  char    fddfolder[MAX_PATH];
                 char    hddfolder[MAX_PATH];                  char    hddfolder[MAX_PATH];
Line 87  static const char np2help[] = "np2.hlp"; Line 91  static const char np2help[] = "np2.hlp";
 static const char np2resume[] = "sav";  static const char np2resume[] = "sav";
   
   
 typedef struct {  
 const char      *str;  
         int             id;  
 } SYSMENU_ITEM;  
   
 static SYSMENU_ITEM smenu_item[] = {  
                         {"&Centering",                  IDM_SCREENCENTER},  
                         {"&Window Snap",                IDM_SNAPENABLE},  
                         {"&Background",                 IDM_BACKGROUND},  
                         {"Background &Sound",   IDM_BGSOUND},  
                         {"&Key display",                IDM_KEYDISP},  
                         {NULL,                                  0},  
                         {" 320x200",                    IDM_SCRNMUL4},  
                         {" 480x300",                    IDM_SCRNMUL6},  
                         {" 640x400",                    IDM_SCRNMUL8},  
                         {" 800x500",                    IDM_SCRNMUL10},  
                         {" 960x600",                    IDM_SCRNMUL12},  
                         {"1280x800",                    IDM_SCRNMUL16},  
                         {NULL,                                  0},  
                 };  
   
   
 static  BYTE    scrnmode;  static  BYTE    scrnmode;
   
 static void changescreen(BYTE newmode) {  static void changescreen(BYTE newmode) {
Line 249  static int flagload(const char *ext, con Line 231  static int flagload(const char *ext, con
         }          }
         if (id == IDYES) {          if (id == IDYES) {
                 statsave_load(path);                  statsave_load(path);
                   toolwin_setfdd(0, fdd_diskname(0));
                   toolwin_setfdd(1, fdd_diskname(1));
         }          }
         sysmng_workclockreset();          sysmng_workclockreset();
         sysmng_updatecaption(1);          sysmng_updatecaption(1);
Line 286  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 270  LRESULT CALLBACK WndProc(HWND hWnd, UINT
 #ifndef __GNUC__  #ifndef __GNUC__
                         WINNLSEnableIME(hWnd, FALSE);                          WINNLSEnableIME(hWnd, FALSE);
 #endif  #endif
 //                      DragAcceptFiles(hWnd, TRUE);  
                         break;                          break;
   
                 case WM_SYSCOMMAND:                  case WM_SYSCOMMAND:
                         update = 0;                          update = 0;
                         switch(wParam) {                          switch(wParam) {
                                 case IDM_SCREENCENTER:                                                  // ver0.26                                  case IDM_TOOLWIN:
                                           toolwin_open();
                                           break;
   
                                   case IDM_SCREENCENTER:
                                         if ((!scrnmng_isfullscreen()) &&                                          if ((!scrnmng_isfullscreen()) &&
                                                 (!(GetWindowLong(hWnd, GWL_STYLE) &                                                  (!(GetWindowLong(hWnd, GWL_STYLE) &
                                                                                         (WS_MAXIMIZE | WS_MINIMIZE)))) {                                                                                          (WS_MAXIMIZE | WS_MINIMIZE)))) {
Line 401  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 388  LRESULT CALLBACK WndProc(HWND hWnd, UINT
   
                                 case IDM_FDD1EJECT:                                  case IDM_FDD1EJECT:
                                         diskdrv_setfdd(0, NULL, 0);                                          diskdrv_setfdd(0, NULL, 0);
                                           toolwin_setfdd(0, NULL);
                                         break;                                          break;
   
                                 case IDM_FDD2OPEN:                                  case IDM_FDD2OPEN:
Line 411  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 399  LRESULT CALLBACK WndProc(HWND hWnd, UINT
   
                                 case IDM_FDD2EJECT:                                  case IDM_FDD2EJECT:
                                         diskdrv_setfdd(1, NULL, 0);                                          diskdrv_setfdd(1, NULL, 0);
                                           toolwin_setfdd(1, NULL);
                                         break;                                          break;
   
                                 case IDM_SASI1OPEN:                                  case IDM_SASI1OPEN:
Line 831  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 820  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                 case WM_PAINT:                  case WM_PAINT:
                         hdc = BeginPaint(hWnd, &ps);                          hdc = BeginPaint(hWnd, &ps);
                         if (np2opening) {                          if (np2opening) {
                                   HINSTANCE       hinst;
                             HDC                 hmdc;                                  RECT            rect;
                             HBITMAP             hbmp;                                  int                     width;
                             BITMAP              bmp;                                  int                     height;
                             HINSTANCE   hinst;                                  HBITMAP         hbmp;
                                 int                     sx = 640 + np2oscfg.paddingx;                                  BITMAP          bmp;
                                 int                     sy = 400 + np2oscfg.paddingy;                                  HDC                     hmdc;
                                   HBRUSH          hbrush;
                             hinst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);                                  hinst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
 #if 1                                  GetClientRect(hWnd, &rect);
                         hbmp = LoadBitmap(hinst, "NP2BMP");                                  width = rect.right - rect.left;
                             GetObject(hbmp, sizeof(BITMAP), &bmp);                                  height = rect.bottom - rect.top;
                             hmdc = CreateCompatibleDC(hdc);                                  hbmp = LoadBitmap(hinst, "NP2BMP");
                             SelectObject(hmdc, hbmp);                                  GetObject(hbmp, sizeof(BITMAP), &bmp);
                             BitBlt(hdc, (sx - 252) / 2, (sy - 28) / 2,                                  hbrush = (HBRUSH)SelectObject(hdc,
                                                         bmp.bmWidth, bmp.bmHeight, hmdc, 0, 0, SRCCOPY);                                                                                                  GetStockObject(BLACK_BRUSH));
                             DeleteDC(hmdc);                                  PatBlt(hdc, 0, 0, width, height, PATCOPY);
                         DeleteObject(hbmp);                                  SelectObject(hdc, hbrush);
 #else                                  hmdc = CreateCompatibleDC(hdc);
                         hbmp = LoadBitmap(hinst, "NP2EXT");                                  SelectObject(hmdc, hbmp);
                             GetObject(hbmp, sizeof(BITMAP), &bmp);                                  BitBlt(hdc, (width - bmp.bmWidth) / 2,
                             hmdc = CreateCompatibleDC(hdc);                                                  (height - bmp.bmHeight) / 2,
                             SelectObject(hmdc, hbmp);  
                             BitBlt(hdc, (sx - 160) / 2, (sy - 140) / 2,  
                                                         bmp.bmWidth, bmp.bmHeight, hmdc, 0, 0, SRCCOPY);                                                          bmp.bmWidth, bmp.bmHeight, hmdc, 0, 0, SRCCOPY);
                             DeleteDC(hmdc);                                  DeleteDC(hmdc);
                         DeleteObject(hbmp);                                  DeleteObject(hbmp);
 #endif  
                         }                          }
                         else {                          else {
 //                              scrnmng_update();  //                              scrnmng_update();
Line 872  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 858  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                         break;                          break;
   
                 case WM_MOVE:                  case WM_MOVE:
                           toolwin_movingend();
                         if ((!scrnmng_isfullscreen()) &&                          if ((!scrnmng_isfullscreen()) &&
                                 (!(GetWindowLong(hWndMain, GWL_STYLE) &                                  (!(GetWindowLong(hWndMain, GWL_STYLE) &
                                                                         (WS_MAXIMIZE | WS_MINIMIZE)))) {                                                                          (WS_MAXIMIZE | WS_MINIMIZE)))) {
Line 897  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 884  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                         soundmng_stop();                          soundmng_stop();
                         mouse_running(MOUSE_STOP);                          mouse_running(MOUSE_STOP);
                         winloc_movingstart();                          winloc_movingstart();
                           toolwin_movingstart();
                         break;                          break;
   
                 case WM_EXITSIZEMOVE:                  case WM_EXITSIZEMOVE:
Line 912  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 900  LRESULT CALLBACK WndProc(HWND hWnd, UINT
   
                 case WM_KEYDOWN:                  case WM_KEYDOWN:
                         if (wParam == VK_F11) {                          if (wParam == VK_F11) {
                                   scrnmng_enablemenubar();
                                 return(DefWindowProc(hWnd, WM_SYSKEYDOWN, VK_F10, lParam));                                  return(DefWindowProc(hWnd, WM_SYSKEYDOWN, VK_F10, lParam));
                         }                          }
                         if ((wParam == VK_F12) && (!np2oscfg.F12COPY)) {                          if ((wParam == VK_F12) && (!np2oscfg.F12COPY)) {
Line 923  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 912  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                 winkeydown106(wParam, lParam);                                  winkeydown106(wParam, lParam);
                         }                          }
                         break;                          break;
   
                 case WM_KEYUP:                  case WM_KEYUP:
                         if (wParam == VK_F11) {                          if (wParam == VK_F11) {
                                 return(DefWindowProc(hWnd, WM_SYSKEYUP, VK_F10, lParam));                                  return(DefWindowProc(hWnd, WM_SYSKEYUP, VK_F10, lParam));
Line 950  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 940  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                         winkeyup106(wParam, lParam);                          winkeyup106(wParam, lParam);
                         break;                          break;
   
                   case WM_MOUSEMOVE:
                           if (scrnmng_isfullscreen()) {
                                   POINT p;
                                   if (GetCursorPos(&p)) {
                                           scrnmng_fullscrnmenu(p.y);
                                   }
                           }
                           break;
   
                 case WM_LBUTTONDOWN:                  case WM_LBUTTONDOWN:
                         if (!mouse_btn(MOUSE_LEFTDOWN)) {                          if (!mouse_btn(MOUSE_LEFTDOWN)) {
                                 if (scrnmng_isfullscreen()) {                                  if (scrnmng_isfullscreen()) {
                                         POINT   p;                                          POINT p;
                                         if ((GetCursorPos(&p)) && (p.y >= 466)) {                                          if ((GetCursorPos(&p)) && (p.y >= 466)) {
                                                 np2oscfg.clk_x++;                                                  np2oscfg.clk_x++;
                                                 sysmng_update(SYS_UPDATEOSCFG);                                                  sysmng_update(SYS_UPDATEOSCFG);
Line 963  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 962  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                 return(DefWindowProc(hWnd, msg, wParam, lParam));                                  return(DefWindowProc(hWnd, msg, wParam, lParam));
                         }                          }
                         break;                          break;
   
                 case WM_LBUTTONUP:                  case WM_LBUTTONUP:
                         if (!mouse_btn(MOUSE_LEFTUP)) {                          if (!mouse_btn(MOUSE_LEFTUP)) {
                                 return(DefWindowProc(hWnd, msg, wParam, lParam));                                  return(DefWindowProc(hWnd, msg, wParam, lParam));
Line 1116  int WINAPI WinMain(HINSTANCE hInstance,  Line 1116  int WINAPI WinMain(HINSTANCE hInstance, 
         file_setcd(modulefile);          file_setcd(modulefile);
         np2arg_analize(lpszCmdLine);          np2arg_analize(lpszCmdLine);
         initload();          initload();
           toolwin_readini();
   
         srand((unsigned)time(NULL));          rand_setseed((unsigned)time(NULL));
   
         CopyMemory(szClassName, np2oscfg.winid, 3);          CopyMemory(szClassName, np2oscfg.winid, 3);
   
Line 1131  int WINAPI WinMain(HINSTANCE hInstance,  Line 1132  int WINAPI WinMain(HINSTANCE hInstance, 
   
         hInst = hInstance;          hInst = hInstance;
         hPrev = hPreInst;          hPrev = hPreInst;
           mmxflag = (havemmx())?0:MMXFLAG_NOTSUPPORT;
           mmxflag += (np2oscfg.disablemmx)?MMXFLAG_DISABLE:0;
         TRACEINIT();          TRACEINIT();
   
         if (np2oscfg.KEYBOARD >= KEY_TYPEMAX) {                                                 // ver0.28          if (np2oscfg.KEYBOARD >= KEY_TYPEMAX) {                                                 // ver0.28
Line 1155  int WINAPI WinMain(HINSTANCE hInstance,  Line 1158  int WINAPI WinMain(HINSTANCE hInstance, 
                 np2.hInstance = hInstance;                  np2.hInstance = hInstance;
                 np2.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));                  np2.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
                 np2.hCursor = LoadCursor(NULL, IDC_ARROW);                  np2.hCursor = LoadCursor(NULL, IDC_ARROW);
                 np2.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);                  np2.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);
                 np2.lpszMenuName = MAKEINTRESOURCE(IDM_MAIN);                  np2.lpszMenuName = MAKEINTRESOURCE(IDM_MAIN);
                 np2.lpszClassName = szClassName;                  np2.lpszClassName = szClassName;
                 if (!RegisterClass(&np2)) {                  if (!RegisterClass(&np2)) {
                         return(FALSE);                          return(FALSE);
                 }                  }
                   toolwin_initapp(hInstance);
         }          }
         keydisp_initialize(hPreInst);          keydisp_initialize(hPreInst);
         viewer_init(hPreInst);                                                                          // ver0.30          viewer_init(hPreInst);                                                                          // ver0.30
Line 1216  int WINAPI WinMain(HINSTANCE hInstance,  Line 1220  int WINAPI WinMain(HINSTANCE hInstance, 
                 }                  }
                 InsertMenu(hMenu, 1, MF_BYPOSITION | MF_POPUP, (UINT)hStat, "S&tat");                  InsertMenu(hMenu, 1, MF_BYPOSITION | MF_POPUP, (UINT)hStat, "S&tat");
         }          }
           sysmenu_init();
         hMenu = GetSystemMenu(hWndMain, FALSE);                                         // ver0.26  
         for (i=0; i<(sizeof(smenu_item)/sizeof(SYSMENU_ITEM)); i++) {  
                 if (smenu_item[i].str) {  
                         InsertMenu(hMenu, i, MF_BYPOSITION | MF_STRING,  
                                                         smenu_item[i].id, smenu_item[i].str);  
                 }  
                 else {  
                         InsertMenu(hMenu, i, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);  
                 }  
         }  
   
         if (np2oscfg.I286SAVE) {  
                 InsertMenu(hMenu, 5, MF_BYPOSITION | MF_STRING, IDM_MEMORYDUMP,  
                                                         "&Memory Dump");  
                 InsertMenu(hMenu, 6, MF_BYPOSITION | MF_STRING, IDM_DEBUGUTY,  
                                                         "&Debug Utility");  
         }  
         DrawMenuBar(hWndMain);          DrawMenuBar(hWndMain);
   
         // ver0.30          // ver0.30
Line 1418  int WINAPI WinMain(HINSTANCE hInstance,  Line 1405  int WINAPI WinMain(HINSTANCE hInstance, 
                         DispatchMessage(&msg);                          DispatchMessage(&msg);
                 }                  }
         }          }
           toolwin_close();
   
         pccore_cfgupdate();          pccore_cfgupdate();
   
Line 1447  int WINAPI WinMain(HINSTANCE hInstance,  Line 1435  int WINAPI WinMain(HINSTANCE hInstance, 
   
         if (sys_updates & (SYS_UPDATECFG | SYS_UPDATEOSCFG)) {          if (sys_updates & (SYS_UPDATECFG | SYS_UPDATEOSCFG)) {
                 initsave();                  initsave();
                   toolwin_writeini();
         }          }
   
         TRACETERM();          TRACETERM();

Removed from v.1.10  
changed lines
  Added in v.1.14


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