Diff for /np2/win9x/dialog/d_mpu98.cpp between versions 1.8 and 1.11

version 1.8, 2005/02/09 20:11:36 version 1.11, 2007/11/11 07:11:28
Line 2 Line 2
 #include        "strres.h"  #include        "strres.h"
 #include        "resource.h"  #include        "resource.h"
 #include        "np2.h"  #include        "np2.h"
   #include        "oemtext.h"
 #include        "commng.h"  #include        "commng.h"
 #include        "sysmng.h"  #include        "sysmng.h"
 #include        "dialog.h"  #include        "dialog.h"
Line 20  extern COMMNG cm_mpu98; Line 21  extern COMMNG cm_mpu98;
 }  }
 #endif  #endif
   
 static const OEMCHAR *mpuinterrupt[4] = {  static const CBPARAM cpInt[] =
                                                                         str_int0, str_int1, str_int2, str_int5};  {
           {MAKEINTRESOURCE(IDS_INT0),             0},
           {MAKEINTRESOURCE(IDS_INT1),             1},
           {MAKEINTRESOURCE(IDS_INT2),             2},
           {MAKEINTRESOURCE(IDS_INT5),             3},
   };
   
 static  UINT8   mpu = 0;  static  UINT8   mpu = 0;
   
   static void setmpuio(HWND hWnd, UINT8 cValue)
 static void setmpuiopara(HWND hWnd, UINT16 res, UINT8 value) {  {
           dlgs_setcbcur(hWnd, IDC_MPUIO, (cValue & 0xf0));
         SendDlgItemMessage(hWnd, res, CB_SETCURSEL,  
                                                                         (WPARAM)((value >> 4) & 15), (LPARAM)0);  
 }  }
   
 static UINT8 getmpuio(HWND hWnd, UINT16 res) {  static UINT8 getmpuio(HWND hWnd)
   {
         OEMCHAR work[8];          return dlgs_getcbcur(hWnd, IDC_MPUIO, 0x00);
   
         GetDlgItemText(hWnd, res, work, NELEMENTS(work));  
         return((milstr_solveHEX(work) >> 6) & 0xf0);  
 }  }
   
 static void setmpuintpara(HWND hWnd, UINT16 res, UINT8 value) {  static void setmpuint(HWND hWnd, UINT8 cValue)
   {
         SendDlgItemMessage(hWnd, res, CB_SETCURSEL,          dlgs_setcbcur(hWnd, IDC_MPUINT, (cValue & 0x03));
                                                                         (WPARAM)(value & 3), (LPARAM)0);  
 }  }
   
 static UINT8 getmpuint(HWND hWnd, UINT16 res) {  static UINT8 getmpuint(HWND hWnd)
   {
         OEMCHAR work[8];          return dlgs_getcbcur(hWnd, IDC_MPUINT, 0x00);
         UINT8   ret;  
   
         GetDlgItemText(hWnd, res, work, NELEMENTS(work));  
         ret = work[3] - '0';  
         if (ret >= 3) {  
                 ret = 3;  
         }  
         return(ret);  
 }  }
   
 static void setmpujmp(HWND hWnd, UINT8 value, UINT8 bit) {  static void setmpujmp(HWND hWnd, UINT8 cValue, UINT8 cBit)
   {
         if ((mpu ^ value) & bit) {          if ((mpu ^ cValue) & cBit)
                 mpu &= ~bit;          {
                 mpu |= value;                  mpu &= ~cBit;
                   mpu |= cValue;
                 InvalidateRect(GetDlgItem(hWnd, IDC_MPUDIP), NULL, TRUE);                  InvalidateRect(GetDlgItem(hWnd, IDC_MPUDIP), NULL, TRUE);
         }          }
 }  }
Line 71  static void setmpujmp(HWND hWnd, UINT8 v Line 64  static void setmpujmp(HWND hWnd, UINT8 v
   
 // ----  // ----
   
 static void mpucreate(HWND hWnd) {  static void mpucreate(HWND hWnd)
   {
         UINT    i;          UINT    i;
         OEMCHAR buf[8];          TCHAR   szBuf[8];
           int             nIndex;
         HWND    sub;          HWND    sub;
   
         mpu = np2cfg.mpuopt;          mpu = np2cfg.mpuopt;
         for (i=0; i<16; i++) {          for (i=0; i<16; i++)
                 OEMSPRINTF(buf, str_4X, 0xC0D0 + (i << 10));          {
                 SendDlgItemMessage(hWnd, IDC_MPUIO,                  wsprintf(szBuf, tchar_4X, 0xC0D0 + (i << 10));
                                                                         CB_INSERTSTRING, (WPARAM)i, (LPARAM)buf);                  nIndex = SendDlgItemMessage(hWnd, IDC_MPUIO, CB_ADDSTRING,
         }                                                                                                                  0, (LPARAM)szBuf);
         setmpuiopara(hWnd, IDC_MPUIO, mpu);                  if (nIndex >= 0)
         SETLISTSTR(hWnd, IDC_MPUINT, mpuinterrupt);                  {
         setmpuintpara(hWnd, IDC_MPUINT, mpu);                          SendDlgItemMessage(hWnd, IDC_MPUIO, CB_SETITEMDATA,
                                                                                           (WPARAM)nIndex, (LPARAM)(i << 4));
                   }
           }
           setmpuio(hWnd, mpu);
   
           dlgs_setcbitem(hWnd, IDC_MPUINT, cpInt, NELEMENTS(cpInt));
           setmpuint(hWnd, mpu);
   
         dlgs_setlistmidiout(hWnd, IDC_MPU98MMAP, np2oscfg.mpu.mout);          dlgs_setlistmidiout(hWnd, IDC_MPU98MMAP, np2oscfg.mpu.mout);
         dlgs_setlistmidiin(hWnd, IDC_MPU98MDIN, np2oscfg.mpu.min);          dlgs_setlistmidiin(hWnd, IDC_MPU98MDIN, np2oscfg.mpu.min);
Line 170  static void mpucmddipsw(HWND hWnd) { Line 171  static void mpucmddipsw(HWND hWnd) {
         if ((p.x >= 2) && (p.x < 6)) {          if ((p.x >= 2) && (p.x < 6)) {
                 bit = 0x80 >> (p.x - 2);                  bit = 0x80 >> (p.x - 2);
                 mpu ^= bit;                  mpu ^= bit;
                 setmpuiopara(hWnd, IDC_MPUIO, mpu);                  setmpuio(hWnd, mpu);
                 redraw = TRUE;                  redraw = TRUE;
         }          }
         else if ((p.x >= 9) && (p.x < 13)) {          else if ((p.x >= 9) && (p.x < 13)) {
Line 178  static void mpucmddipsw(HWND hWnd) { Line 179  static void mpucmddipsw(HWND hWnd) {
                 if ((mpu ^ bit) & 3) {                  if ((mpu ^ bit) & 3) {
                         mpu &= ~0x3;                          mpu &= ~0x3;
                         mpu |= bit;                          mpu |= bit;
                         setmpuintpara(hWnd, IDC_MPUINT, mpu);                          setmpuint(hWnd, mpu);
                         redraw = TRUE;                          redraw = TRUE;
                 }                  }
         }          }
Line 206  LRESULT CALLBACK MidiDialogProc(HWND hWn Line 207  LRESULT CALLBACK MidiDialogProc(HWND hWn
                                         break;                                          break;
   
                                 case IDC_MPUIO:                                  case IDC_MPUIO:
                                         setmpujmp(hWnd, getmpuio(hWnd, IDC_MPUIO), 0xf0);                                          setmpujmp(hWnd, getmpuio(hWnd), 0xf0);
                                         return(FALSE);                                          return(FALSE);
   
                                 case IDC_MPUINT:                                  case IDC_MPUINT:
                                         setmpujmp(hWnd, getmpuint(hWnd, IDC_MPUINT), 0x03);                                          setmpujmp(hWnd, getmpuint(hWnd), 0x03);
                                         return(FALSE);                                          return(FALSE);
   
                                 case IDC_MPUDEF:                                  case IDC_MPUDEF:
                                         mpu = 0x82;                                          mpu = 0x82;
                                         setmpuiopara(hWnd, IDC_MPUIO, mpu);                                          setmpuio(hWnd, mpu);
                                         setmpuintpara(hWnd, IDC_MPUINT, mpu);                                          setmpuint(hWnd, mpu);
                                         InvalidateRect(GetDlgItem(hWnd, IDC_MPUDIP), NULL, TRUE);                                          InvalidateRect(GetDlgItem(hWnd, IDC_MPUDIP), NULL, TRUE);
                                         return(FALSE);                                          return(FALSE);
   

Removed from v.1.8  
changed lines
  Added in v.1.11


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