Diff for /np2/win9x/dialog/d_serial.cpp between versions 1.11 and 1.13

version 1.11, 2005/02/07 14:46:15 version 1.13, 2005/02/09 20:11:36
Line 15 Line 15
 #include        "dipswbmp.h"  #include        "dipswbmp.h"
   
   
 static const char str_none[] = "NONE";  static const OEMCHAR str_none[] = OEMTEXT("NONE");
 static const char str_com1[] = "COM1";  static const OEMCHAR str_com1[] = OEMTEXT("COM1");
 static const char str_com2[] = "COM2";  static const OEMCHAR str_com2[] = OEMTEXT("COM2");
 static const char str_com3[] = "COM3";  static const OEMCHAR str_com3[] = OEMTEXT("COM3");
 static const char str_com4[] = "COM4";  static const OEMCHAR str_com4[] = OEMTEXT("COM4");
 static const char str_midi[] = "MIDI";  static const OEMCHAR str_midi[] = OEMTEXT("MIDI");
 static const char str_odd[] = "ODD";  static const OEMCHAR str_odd[] = OEMTEXT("ODD");
 static const char str_even[] = "EVEN";  static const OEMCHAR str_even[] = OEMTEXT("EVEN");
 static const char str_one[] = "1";  static const OEMCHAR str_one[] = OEMTEXT("1");
 static const char str_onehalf[] = "1.5";  static const OEMCHAR str_onehalf[] = OEMTEXT("1.5");
 static const char str_two[] = "2";  static const OEMCHAR str_two[] = OEMTEXT("2");
   
 static const char *rsport[] = {str_none, str_com1, str_com2, str_com3,  static const OEMCHAR *rsport[] = {str_none, str_com1, str_com2, str_com3,
                                                                 str_com4, str_midi};                                                                          str_com4, str_midi};
 static const UINT32 rscharsize[] = {5, 6, 7, 8};  static const UINT32 rscharsize[] = {5, 6, 7, 8};
 static const char *rsparity[] = {str_none, str_odd, str_even};  static const OEMCHAR *rsparity[] = {str_none, str_odd, str_even};
 static const char *rsstopbit[] = {str_one, str_onehalf, str_two};  static const OEMCHAR *rsstopbit[] = {str_one, str_onehalf, str_two};
   
 static const char str_seropt[] = "Serial option";  static const OEMCHAR str_seropt[] = OEMTEXT("Serial option");
   
   
 #ifdef __cplusplus  #ifdef __cplusplus
Line 63  enum { Line 63  enum {
 };  };
   
 typedef struct {  typedef struct {
         WORD    idc[ID_MAX];          UINT16          idc[ID_MAX];
         COMMNG  *cm;          COMMNG          *cm;
         COMCFG  *cfg;          COMCFG          *cfg;
 const WORD      *com_item;  const UINT16    *com_item;
 const WORD      *midi_item;  const UINT16    *midi_item;
         UINT    update;          UINT            update;
 } DLGCOM_P;  } DLGCOM_P;
   
   
 static const WORD com1serial[8] = {  static const UINT16 com1serial[8] = {
                         IDC_COM1STR00, IDC_COM1STR01, IDC_COM1STR02, IDC_COM1STR03,                          IDC_COM1STR00, IDC_COM1STR01, IDC_COM1STR02, IDC_COM1STR03,
                         IDC_COM1STR04, IDC_COM1STR05, IDC_COM1STR06, IDC_COM1STR07};                          IDC_COM1STR04, IDC_COM1STR05, IDC_COM1STR06, IDC_COM1STR07};
   
 static const WORD com1rsmidi[3] = {  static const UINT16 com1rsmidi[3] = {
                         IDC_COM1STR10, IDC_COM1STR11, IDC_COM1STR12};                          IDC_COM1STR10, IDC_COM1STR11, IDC_COM1STR12};
   
 static const DLGCOM_P res_com1 =  static const DLGCOM_P res_com1 =
Line 88  static const DLGCOM_P res_com1 = Line 88  static const DLGCOM_P res_com1 =
                         com1serial, com1rsmidi, SYS_UPDATESERIAL1};                          com1serial, com1rsmidi, SYS_UPDATESERIAL1};
   
   
 static const WORD com2serial[8] = {  static const UINT16 com2serial[8] = {
                         IDC_COM2STR00, IDC_COM2STR01, IDC_COM2STR02, IDC_COM2STR03,                          IDC_COM2STR00, IDC_COM2STR01, IDC_COM2STR02, IDC_COM2STR03,
                         IDC_COM2STR04, IDC_COM2STR05, IDC_COM2STR06, IDC_COM2STR07};                          IDC_COM2STR04, IDC_COM2STR05, IDC_COM2STR06, IDC_COM2STR07};
   
 static const WORD com2rsmidi[3] = {  static const UINT16 com2rsmidi[3] = {
                         IDC_COM2STR10, IDC_COM2STR11, IDC_COM2STR12};                          IDC_COM2STR10, IDC_COM2STR11, IDC_COM2STR12};
   
 static const DLGCOM_P res_com2 =  static const DLGCOM_P res_com2 =
Line 104  static const DLGCOM_P res_com2 = Line 104  static const DLGCOM_P res_com2 =
                         com2serial, com2rsmidi, SYS_UPDATESERIAL1};                          com2serial, com2rsmidi, SYS_UPDATESERIAL1};
   
   
 static const WORD com3serial[8] = {  static const UINT16 com3serial[8] = {
                         IDC_COM3STR00, IDC_COM3STR01, IDC_COM3STR02, IDC_COM3STR03,                          IDC_COM3STR00, IDC_COM3STR01, IDC_COM3STR02, IDC_COM3STR03,
                         IDC_COM3STR04, IDC_COM3STR05, IDC_COM3STR06, IDC_COM3STR07};                          IDC_COM3STR04, IDC_COM3STR05, IDC_COM3STR06, IDC_COM3STR07};
   
 static const WORD com3rsmidi[3] = {  static const UINT16 com3rsmidi[3] = {
                         IDC_COM3STR10, IDC_COM3STR11, IDC_COM3STR12};                          IDC_COM3STR10, IDC_COM3STR11, IDC_COM3STR12};
   
 static const DLGCOM_P res_com3 =  static const DLGCOM_P res_com3 =
Line 120  static const DLGCOM_P res_com3 = Line 120  static const DLGCOM_P res_com3 =
                         com3serial, com3rsmidi, SYS_UPDATESERIAL1};                          com3serial, com3rsmidi, SYS_UPDATESERIAL1};
   
   
 static void dlgcom_show(HWND hWnd, int ncmd, const WORD *item, int items) {  static void dlgcom_show(HWND hWnd, int ncmd, const UINT16 *item, int items) {
   
         while(items--) {          while(items--) {
                 ShowWindow(GetDlgItem(hWnd, *item++), ncmd);                  ShowWindow(GetDlgItem(hWnd, *item++), ncmd);
Line 144  static void dlgcom_items(HWND hWnd, cons Line 144  static void dlgcom_items(HWND hWnd, cons
 static LRESULT CALLBACK dlgitem_proc(HWND hWnd, UINT msg,  static LRESULT CALLBACK dlgitem_proc(HWND hWnd, UINT msg,
                                                                 WPARAM wp, LPARAM lp, const DLGCOM_P *m) {                                                                  WPARAM wp, LPARAM lp, const DLGCOM_P *m) {
   
         DWORD   d;          UINT32  d;
         BYTE    b;          UINT8   b;
         LRESULT r;          LRESULT r;
         union {          union {
                 char    mmap[MAXPNAMELEN];                  OEMCHAR mmap[MAXPNAMELEN];
                 char    mmdl[64];                  OEMCHAR mmdl[64];
                 char    mdef[MAX_PATH];                  OEMCHAR mdef[MAX_PATH];
         } str;          } str;
         COMCFG  *cfg;          COMCFG  *cfg;
         UINT    update;          UINT    update;
Line 164  static LRESULT CALLBACK dlgitem_proc(HWN Line 164  static LRESULT CALLBACK dlgitem_proc(HWN
                         SETLISTUINT32(hWnd, m->idc[ID_CHARS], rscharsize);                          SETLISTUINT32(hWnd, m->idc[ID_CHARS], rscharsize);
                         SETLISTSTR(hWnd, m->idc[ID_PARITY], rsparity);                          SETLISTSTR(hWnd, m->idc[ID_PARITY], rsparity);
                         SETLISTSTR(hWnd, m->idc[ID_SBIT], rsstopbit);                          SETLISTSTR(hWnd, m->idc[ID_SBIT], rsstopbit);
                         for (d=0; d<(sizeof(cmserial_speed)/sizeof(UINT32))-1; d++) {                          for (d=0; d<(NELEMENTS(cmserial_speed) - 1); d++) {
                                 if (cmserial_speed[d] >= cfg->speed) {                                  if (cmserial_speed[d] >= cfg->speed) {
                                         break;                                          break;
                                 }                                  }
Line 198  static LRESULT CALLBACK dlgitem_proc(HWN Line 198  static LRESULT CALLBACK dlgitem_proc(HWN
                         SetDlgItemText(hWnd, m->idc[ID_DEFF], cfg->def);                          SetDlgItemText(hWnd, m->idc[ID_DEFF], cfg->def);
   
                         d = cfg->port;                          d = cfg->port;
                         if (d >= (sizeof(rsport)/sizeof(char *))) {                          if (d >= NELEMENTS(rsport)) {
                                 d = 0;                                  d = 0;
                         }                          }
                         SendDlgItemMessage(hWnd, m->idc[ID_PORT],                          SendDlgItemMessage(hWnd, m->idc[ID_PORT],
Line 227  static LRESULT CALLBACK dlgitem_proc(HWN Line 227  static LRESULT CALLBACK dlgitem_proc(HWN
                                 r = SendDlgItemMessage(hWnd, m->idc[ID_PORT],                                  r = SendDlgItemMessage(hWnd, m->idc[ID_PORT],
                                                                                 CB_GETCURSEL, (WPARAM)0, (LPARAM)0);                                                                                  CB_GETCURSEL, (WPARAM)0, (LPARAM)0);
                                 if (r != CB_ERR) {                                  if (r != CB_ERR) {
                                         if ((UINT)r >= (sizeof(rsport)/sizeof(char *))) {                                          if ((UINT)r >= NELEMENTS(rsport)) {
                                                 r = 0;                                                  r = 0;
                                         }                                          }
                                         if (cfg->port != (BYTE)r) {                                          if (cfg->port != (UINT8)r) {
                                                 cfg->port = (BYTE)r;                                                  cfg->port = (UINT8)r;
                                                 update |= SYS_UPDATEOSCFG;                                                  update |= SYS_UPDATEOSCFG;
                                                 update |= m->update;                                                  update |= m->update;
                                         }                                          }
Line 239  static LRESULT CALLBACK dlgitem_proc(HWN Line 239  static LRESULT CALLBACK dlgitem_proc(HWN
                                 r = SendDlgItemMessage(hWnd, m->idc[ID_SPEED],                                  r = SendDlgItemMessage(hWnd, m->idc[ID_SPEED],
                                                                                 CB_GETCURSEL, (WPARAM)0, (LPARAM)0);                                                                                  CB_GETCURSEL, (WPARAM)0, (LPARAM)0);
                                 if (r != CB_ERR) {                                  if (r != CB_ERR) {
                                         if ((UINT)r >= (sizeof(cmserial_speed)/sizeof(UINT32))) {                                          if ((UINT)r >= NELEMENTS(cmserial_speed)) {
                                                 r = 0;                                                  r = 0;
                                         }                                          }
                                         if (cfg->speed != cmserial_speed[r]) {                                          if (cfg->speed != cmserial_speed[r]) {
Line 253  static LRESULT CALLBACK dlgitem_proc(HWN Line 253  static LRESULT CALLBACK dlgitem_proc(HWN
                                 r = SendDlgItemMessage(hWnd, m->idc[ID_CHARS],                                  r = SendDlgItemMessage(hWnd, m->idc[ID_CHARS],
                                                                                 CB_GETCURSEL, (WPARAM)0, (LPARAM)0);                                                                                  CB_GETCURSEL, (WPARAM)0, (LPARAM)0);
                                 if (r != CB_ERR) {                                  if (r != CB_ERR) {
                                         b |= (BYTE)(((UINT)r & 3) << 2);                                          b |= (UINT8)(((UINT)r & 3) << 2);
                                 }                                  }
                                 r = SendDlgItemMessage(hWnd, m->idc[ID_PARITY],                                  r = SendDlgItemMessage(hWnd, m->idc[ID_PARITY],
                                                                                 CB_GETCURSEL, (WPARAM)0, (LPARAM)0);                                                                                  CB_GETCURSEL, (WPARAM)0, (LPARAM)0);
                                 if (r != CB_ERR) {                                  if (r != CB_ERR) {
                                         if ((UINT)r) {                                          if ((UINT)r) {
                                                 b |= 0x10;                                                  b |= 0x10;
                                                 b |= (BYTE)((((UINT)r - 1) & 1) << 5);                                                  b |= (UINT8)((((UINT)r - 1) & 1) << 5);
                                         }                                          }
                                 }                                  }
                                 r = SendDlgItemMessage(hWnd, m->idc[ID_SBIT],                                  r = SendDlgItemMessage(hWnd, m->idc[ID_SBIT],
                                                                                 CB_GETCURSEL, (WPARAM)0, (LPARAM)0);                                                                                  CB_GETCURSEL, (WPARAM)0, (LPARAM)0);
                                 if (r != CB_ERR) {                                  if (r != CB_ERR) {
                                         b |= (BYTE)((((UINT)r + 1) & 3) << 6);                                          b |= (UINT8)((((UINT)r + 1) & 3) << 6);
                                 }                                  }
                                 if (cfg->param != b) {                                  if (cfg->param != b) {
                                         cfg->param = b;                                          cfg->param = b;
Line 275  static LRESULT CALLBACK dlgitem_proc(HWN Line 275  static LRESULT CALLBACK dlgitem_proc(HWN
                                 }                                  }
   
                                 GetDlgItemText(hWnd, m->idc[ID_MMAP],                                  GetDlgItemText(hWnd, m->idc[ID_MMAP],
                                                                                                 str.mmap, sizeof(str.mmap));                                                                                          str.mmap, NELEMENTS(str.mmap));
                                 if (milstr_cmp(cfg->mout, str.mmap)) {                                  if (milstr_cmp(cfg->mout, str.mmap)) {
                                         milstr_ncpy(cfg->mout, str.mmap, sizeof(cfg->mout));                                          milstr_ncpy(cfg->mout, str.mmap, NELEMENTS(cfg->mout));
                                         update |= SYS_UPDATEOSCFG;                                          update |= SYS_UPDATEOSCFG;
                                         update |= m->update;                                          update |= m->update;
                                 }                                  }
                                 GetDlgItemText(hWnd, m->idc[ID_MMDL],                                  GetDlgItemText(hWnd, m->idc[ID_MMDL],
                                                                                                 str.mmdl, sizeof(str.mmdl));                                                                                          str.mmdl, NELEMENTS(str.mmdl));
                                 if (milstr_cmp(cfg->mdl, str.mmdl)) {                                  if (milstr_cmp(cfg->mdl, str.mmdl)) {
                                         milstr_ncpy(cfg->mdl, str.mmdl, sizeof(cfg->mdl));                                          milstr_ncpy(cfg->mdl, str.mmdl, NELEMENTS(cfg->mdl));
                                         update |= SYS_UPDATEOSCFG;                                          update |= SYS_UPDATEOSCFG;
                                         update |= m->update;                                          update |= m->update;
                                 }                                  }
Line 295  static LRESULT CALLBACK dlgitem_proc(HWN Line 295  static LRESULT CALLBACK dlgitem_proc(HWN
                                         cm->msg(cm, COMMSG_MIMPIDEFEN, cfg->def_en);                                          cm->msg(cm, COMMSG_MIMPIDEFEN, cfg->def_en);
                                 }                                  }
                                 GetDlgItemText(hWnd, m->idc[ID_DEFF],                                  GetDlgItemText(hWnd, m->idc[ID_DEFF],
                                                                                                 str.mdef, sizeof(str.mdef));                                                                                          str.mdef, NELEMENTS(str.mdef));
                                 if (milstr_cmp(cfg->def, str.mdef)) {                                  if (milstr_cmp(cfg->def, str.mdef)) {
                                         milstr_ncpy(cfg->def, str.mdef, sizeof(cfg->def));                                          milstr_ncpy(cfg->def, str.mdef, NELEMENTS(cfg->def));
                                         update |= SYS_UPDATEOSCFG;                                          update |= SYS_UPDATEOSCFG;
                                         if (cm) {                                          if (cm) {
                                                 cm->msg(cm, COMMSG_MIMPIDEFFILE, (long)str.mdef);                                                  cm->msg(cm, COMMSG_MIMPIDEFFILE, (long)str.mdef);
Line 333  static LRESULT CALLBACK Com3Proc(HWND hW Line 333  static LRESULT CALLBACK Com3Proc(HWND hW
   
 // --------------------------------------------------------------------  // --------------------------------------------------------------------
   
 static  BYTE    pc9861_s[3];  static  UINT8   pc9861_s[3];
 static  BYTE    pc9861_j[6];  static  UINT8   pc9861_j[6];
   
 typedef struct {  typedef struct {
         int             idc_speed;          int             idc_speed;
         int             idc_int;          int             idc_int;
         int             idc_mode;          int             idc_mode;
         BYTE    *dip_mode;          UINT8   *dip_mode;
         BYTE    *dip_int;          UINT8   *dip_int;
         BYTE    sft_int;          UINT8   sft_int;
 } PC9861MODE_T;  } PC9861MODE_T;
   
 static const PC9861MODE_T pc9861mode[2] = {  static const PC9861MODE_T pc9861mode[2] = {
Line 370  enum { Line 370  enum {
 static const UINT32 pc9861kint1[] = {0, 1, 2, 3};  static const UINT32 pc9861kint1[] = {0, 1, 2, 3};
 static const UINT32 pc9861kint2[] = {0, 4, 5, 6};  static const UINT32 pc9861kint2[] = {0, 4, 5, 6};
   
 static const char sync0[] = "Start-Stop";  static const OEMCHAR sync0[] = OEMTEXT("Start-Stop");
 static const char sync1[] = "ST1";  static const OEMCHAR sync1[] = OEMTEXT("ST1");
 static const char sync2[] = "ST2";  static const OEMCHAR sync2[] = OEMTEXT("ST2");
 static const char sync3[] = "RD-Sync";  static const OEMCHAR sync3[] = OEMTEXT("RD-Sync");
 static const char *pc9861sync[] = {sync0, sync1, sync2, sync3};  static const OEMCHAR *pc9861sync[] = {sync0, sync1, sync2, sync3};
   
 static const UINT pc9861d2sync[] = {1, 2, 3, 0};  static const UINT pc9861d2sync[] = {1, 2, 3, 0};
 static const UINT pc9861d2int[] = {0, 2, 1, 3};  static const UINT pc9861d2int[] = {0, 2, 1, 3};
Line 383  static const UINT pc9861d2int[] = {0, 2, Line 383  static const UINT pc9861d2int[] = {0, 2,
 static void pc9861getspeed(HWND hWnd, const PC9861MODE_T *m) {  static void pc9861getspeed(HWND hWnd, const PC9861MODE_T *m) {
   
         LRESULT r;          LRESULT r;
         BYTE    mode;          UINT8   mode;
   
         mode = *(m->dip_mode);          mode = *(m->dip_mode);
         r = SendDlgItemMessage(hWnd, m->idc_speed, CB_GETCURSEL, 0, 0);          r = SendDlgItemMessage(hWnd, m->idc_speed, CB_GETCURSEL, 0, 0);
         if (r != CB_ERR) {          if (r != CB_ERR) {
                 DWORD speed = r;                  UINT speed = r;
                 if (speed > (NELEMENTS(pc9861k_speed) - 1)) {                  if (speed > (NELEMENTS(pc9861k_speed) - 1)) {
                         speed = NELEMENTS(pc9861k_speed) - 1;                          speed = NELEMENTS(pc9861k_speed) - 1;
                 }                  }
Line 413  static void pc9861getint(HWND hWnd, cons Line 413  static void pc9861getint(HWND hWnd, cons
   
         r = SendDlgItemMessage(hWnd, m->idc_int, CB_GETCURSEL, 0, 0);          r = SendDlgItemMessage(hWnd, m->idc_int, CB_GETCURSEL, 0, 0);
         if (r != CB_ERR) {          if (r != CB_ERR) {
                 for (i=0; i<(sizeof(pc9861d2int)/sizeof(UINT)); i++) {                  for (i=0; i<NELEMENTS(pc9861d2int); i++) {
                         if (pc9861d2int[i] == (UINT)(r & 3)) {                          if (pc9861d2int[i] == (UINT)(r & 3)) {
                                 *(m->dip_int) &= ~(0x03 << (m->sft_int));                                  *(m->dip_int) &= ~(0x03 << (m->sft_int));
                                 *(m->dip_int) |= (BYTE)(i << (m->sft_int));                                  *(m->dip_int) |= (UINT8)(i << (m->sft_int));
                                 break;                                  break;
                         }                          }
                 }                  }
Line 426  static void pc9861getint(HWND hWnd, cons Line 426  static void pc9861getint(HWND hWnd, cons
 static void pc9861getmode(HWND hWnd, const PC9861MODE_T *m) {  static void pc9861getmode(HWND hWnd, const PC9861MODE_T *m) {
   
         LRESULT r;          LRESULT r;
         BYTE    i;          UINT8   i;
   
         r = SendDlgItemMessage(hWnd, m->idc_mode, CB_GETCURSEL, 0, 0);          r = SendDlgItemMessage(hWnd, m->idc_mode, CB_GETCURSEL, 0, 0);
         if (r != CB_ERR) {          if (r != CB_ERR) {
                 for (i=0; i<(sizeof(pc9861d2sync)/sizeof(UINT)); i++) {                  for (i=0; i<NELEMENTS(pc9861d2sync); i++) {
                         if (pc9861d2sync[i] == (UINT)(r & 3)) {                          if (pc9861d2sync[i] == (UINT)(r & 3)) {
                                 *(m->dip_mode) &= (~3);                                  *(m->dip_mode) &= (~3);
                                 *(m->dip_mode) |= i;                                  *(m->dip_mode) |= i;
Line 442  static void pc9861getmode(HWND hWnd, con Line 442  static void pc9861getmode(HWND hWnd, con
   
 static void pc9861setmode(HWND hWnd, const PC9861MODE_T *m) {  static void pc9861setmode(HWND hWnd, const PC9861MODE_T *m) {
   
         DWORD   speed;          UINT    speed;
         DWORD   mode;          UINT    mode;
         DWORD   intnum;          UINT    intnum;
         BYTE    modedip;          UINT8   modedip;
   
         modedip = *(m->dip_mode);          modedip = *(m->dip_mode);
         speed = (((~modedip) >> 2) & 0x0f) + 1;          speed = (((~modedip) >> 2) & 0x0f) + 1;
Line 478  static void pc9861cmddipsw(HWND hWnd) { Line 478  static void pc9861cmddipsw(HWND hWnd) {
         RECT    rect1;          RECT    rect1;
         RECT    rect2;          RECT    rect2;
         POINT   p;          POINT   p;
         BYTE    bit;          UINT8   bit;
   
         GetWindowRect(GetDlgItem(hWnd, IDC_PC9861DIP), &rect1);          GetWindowRect(GetDlgItem(hWnd, IDC_PC9861DIP), &rect1);
         GetClientRect(GetDlgItem(hWnd, IDC_PC9861DIP), &rect2);          GetClientRect(GetDlgItem(hWnd, IDC_PC9861DIP), &rect2);
Line 534  static LRESULT CALLBACK pc9861mainProc(H Line 534  static LRESULT CALLBACK pc9861mainProc(H
                                                                                                         WPARAM wp, LPARAM lp) {                                                                                                          WPARAM wp, LPARAM lp) {
   
         HWND    sub;          HWND    sub;
         BYTE    r;          UINT8   r;
         UINT    update;          UINT    update;
   
         switch (msg) {          switch (msg) {

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


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