Diff for /np2/win9x/ini.cpp between versions 1.35 and 1.38

version 1.35, 2005/03/16 06:05:18 version 1.38, 2005/03/20 08:58:19
Line 34  static void inisetbmp(UINT8 *ptr, UINT p Line 34  static void inisetbmp(UINT8 *ptr, UINT p
         }          }
 }  }
   
 static void inirdargs16(const OEMCHAR *src, const INITBL *ini) {  static void inirdargs16(const OEMCHAR *src, const PFTBL *ini) {
   
         SINT16  *dst;          SINT16  *dst;
         int             dsize;          int             dsize;
Line 61  static void inirdargs16(const OEMCHAR *s Line 61  static void inirdargs16(const OEMCHAR *s
         }          }
 }  }
   
 static void inirdargh8(const OEMCHAR *src, const INITBL *ini) {  static void inirdargh8(const OEMCHAR *src, const PFTBL *ini) {
   
         UINT8   *dst;          UINT8   *dst;
         int             dsize;          int             dsize;
Line 106  static void inirdargh8(const OEMCHAR *sr Line 106  static void inirdargh8(const OEMCHAR *sr
         }          }
 }  }
   
 static void iniwrsetargh8(OEMCHAR *work, int size, const INITBL *ini) {  static void iniwrsetargh8(OEMCHAR *work, int size, const PFTBL *ini) {
   
         UINT    i;          UINT    i;
 const UINT8     *ptr;  const UINT8     *ptr;
Line 128  const UINT8 *ptr; Line 128  const UINT8 *ptr;
   
 // ---- user  // ---- user
   
 static void inirdbyte3(const OEMCHAR *src, const INITBL *ini) {  static void inirdbyte3(const OEMCHAR *src, const PFTBL *ini) {
   
         UINT    i;          UINT    i;
   
Line 143  static void inirdbyte3(const OEMCHAR *sr Line 143  static void inirdbyte3(const OEMCHAR *sr
         }          }
 }  }
   
 static void inirdkb(const OEMCHAR *src, const INITBL *ini) {  static void inirdkb(const OEMCHAR *src, const PFTBL *ini) {
   
         if ((!milstr_extendcmp(src, OEMTEXT("PC98"))) ||          if ((!milstr_extendcmp(src, OEMTEXT("PC98"))) ||
                 (!milstr_cmp(src, OEMTEXT("98")))) {                  (!milstr_cmp(src, OEMTEXT("98")))) {
Line 164  static void inirdkb(const OEMCHAR *src,  Line 164  static void inirdkb(const OEMCHAR *src, 
 // ----  // ----
   
 void ini_read(const OEMCHAR *path, const OEMCHAR *title,  void ini_read(const OEMCHAR *path, const OEMCHAR *title,
                                                                                         const INITBL *tbl, UINT count) {                                                                                          const PFTBL *tbl, UINT count) {
   
 const INITBL    *p;  const PFTBL     *p;
 const INITBL    *pterm;  const PFTBL     *pterm;
 #if defined(OSLANG_UCS2)          OEMCHAR work[512];
         OEMCHAR         item[10];          UINT32  val;
 #else  
 const OEMCHAR   *item;  
 #endif  
         OEMCHAR         work[512];  
         UINT32          val;  
   
         p = tbl;          p = tbl;
         pterm = tbl + count;          pterm = tbl + count;
         while(p < pterm) {          while(p < pterm) {
 #if defined(OSLANG_UCS2)                  switch(p->itemtype & PFTYPE_MASK) {
                 oemtext_sjistooem(item, NELEMENTS(item), p->item, (UINT)-1);                          case PFTYPE_STR:
 #else                                  GetPrivateProfileString(title, p->item, (OEMCHAR *)p->value,
                 item = p->item;  
 #endif  
                 switch(p->itemtype & INITYPE_MASK) {  
                         case INITYPE_STR:  
                                 GetPrivateProfileString(title, item, (OEMCHAR *)p->value,  
                                                                                         (OEMCHAR *)p->value, p->arg, path);                                                                                          (OEMCHAR *)p->value, p->arg, path);
                                 break;                                  break;
   
                         case INITYPE_BOOL:                          case PFTYPE_BOOL:
                                 GetPrivateProfileString(title, item,                                  GetPrivateProfileString(title, p->item,
                                                                         (*((UINT8 *)p->value))?str_true:str_false,                                                                          (*((UINT8 *)p->value))?str_true:str_false,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 *((UINT8 *)p->value) = (!milstr_cmp(work, str_true))?1:0;                                  *((UINT8 *)p->value) = (!milstr_cmp(work, str_true))?1:0;
                                 break;                                  break;
   
                         case INITYPE_BITMAP:                          case PFTYPE_BITMAP:
                                 GetPrivateProfileString(title, item,                                  GetPrivateProfileString(title, p->item,
                                         (inigetbmp((UINT8 *)p->value, p->arg))?str_true:str_false,                                          (inigetbmp((UINT8 *)p->value, p->arg))?str_true:str_false,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 inisetbmp((UINT8 *)p->value, p->arg,                                  inisetbmp((UINT8 *)p->value, p->arg,
                                                                                 (milstr_cmp(work, str_true) == 0));                                                                                  (milstr_cmp(work, str_true) == 0));
                                 break;                                  break;
   
                         case INITYPE_ARGS16:                          case PFTYPE_ARGS16:
                                 GetPrivateProfileString(title, item, str_null,                                  GetPrivateProfileString(title, p->item, str_null,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 inirdargs16(work, p);                                  inirdargs16(work, p);
                                 break;                                  break;
   
                         case INITYPE_ARGH8:                          case PFTYPE_BIN:
                                 GetPrivateProfileString(title, item, str_null,                                  GetPrivateProfileString(title, p->item, str_null,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 inirdargh8(work, p);                                  inirdargh8(work, p);
                                 break;                                  break;
   
                         case INITYPE_SINT8:                          case PFTYPE_SINT8:
                         case INITYPE_UINT8:                          case PFTYPE_UINT8:
                                 val = (UINT8)GetPrivateProfileInt(title, item,                                  val = (UINT8)GetPrivateProfileInt(title, p->item,
                                                                                                 *(UINT8 *)p->value, path);                                                                                                  *(UINT8 *)p->value, path);
                                 *(UINT8 *)p->value = (UINT8)val;                                  *(UINT8 *)p->value = (UINT8)val;
                                 break;                                  break;
   
                         case INITYPE_SINT16:                          case PFTYPE_SINT16:
                         case INITYPE_UINT16:                          case PFTYPE_UINT16:
                                 val = (UINT16)GetPrivateProfileInt(title, item,                                  val = (UINT16)GetPrivateProfileInt(title, p->item,
                                                                                                 *(UINT16 *)p->value, path);                                                                                                  *(UINT16 *)p->value, path);
                                 *(UINT16 *)p->value = (UINT16)val;                                  *(UINT16 *)p->value = (UINT16)val;
                                 break;                                  break;
   
                         case INITYPE_SINT32:                          case PFTYPE_SINT32:
                         case INITYPE_UINT32:                          case PFTYPE_UINT32:
                                 val = (UINT32)GetPrivateProfileInt(title, item,                                  val = (UINT32)GetPrivateProfileInt(title, p->item,
                                                                                                 *(UINT32 *)p->value, path);                                                                                                  *(UINT32 *)p->value, path);
                                 *(UINT32 *)p->value = (UINT32)val;                                  *(UINT32 *)p->value = (UINT32)val;
                                 break;                                  break;
   
                         case INITYPE_HEX8:                          case PFTYPE_HEX8:
                                 OEMSPRINTF(work, str_x, *(UINT8 *)p->value),                                  OEMSPRINTF(work, str_x, *(UINT8 *)p->value),
                                 GetPrivateProfileString(title, item, work,                                  GetPrivateProfileString(title, p->item, work,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 val = (UINT8)milstr_solveHEX(work);                                  val = (UINT8)milstr_solveHEX(work);
                                 *(UINT8 *)p->value = (UINT8)val;                                  *(UINT8 *)p->value = (UINT8)val;
                                 break;                                  break;
   
                         case INITYPE_HEX16:                          case PFTYPE_HEX16:
                                 OEMSPRINTF(work, str_x, *(UINT16 *)p->value),                                  OEMSPRINTF(work, str_x, *(UINT16 *)p->value),
                                 GetPrivateProfileString(title, item, work,                                  GetPrivateProfileString(title, p->item, work,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 val = (UINT16)milstr_solveHEX(work);                                  val = (UINT16)milstr_solveHEX(work);
                                 *(UINT16 *)p->value = (UINT16)val;                                  *(UINT16 *)p->value = (UINT16)val;
                                 break;                                  break;
   
                         case INITYPE_HEX32:                          case PFTYPE_HEX32:
                                 OEMSPRINTF(work, str_x, *(UINT32 *)p->value),                                  OEMSPRINTF(work, str_x, *(UINT32 *)p->value),
                                 GetPrivateProfileString(title, item, work,                                  GetPrivateProfileString(title, p->item, work,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 val = (UINT32)milstr_solveHEX(work);                                  val = (UINT32)milstr_solveHEX(work);
                                 *(UINT32 *)p->value = (UINT32)val;                                  *(UINT32 *)p->value = (UINT32)val;
                                 break;                                  break;
   
                         case INITYPE_BYTE3:                          case PFTYPE_BYTE3:
                                 GetPrivateProfileString(title, item, str_null,                                  GetPrivateProfileString(title, p->item, str_null,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 inirdbyte3(work, p);                                  inirdbyte3(work, p);
                                 break;                                  break;
   
                         case INITYPE_KB:                          case PFTYPE_KB:
                                 GetPrivateProfileString(title, item, str_null,                                  GetPrivateProfileString(title, p->item, str_null,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 inirdkb(work, p);                                  inirdkb(work, p);
                                 break;                                  break;
Line 279  const OEMCHAR *item; Line 269  const OEMCHAR *item;
 }  }
   
 void ini_write(const OEMCHAR *path, const OEMCHAR *title,  void ini_write(const OEMCHAR *path, const OEMCHAR *title,
                                                                                         const INITBL *tbl, UINT count) {                                                                                          const PFTBL *tbl, UINT count) {
   
 const INITBL    *p;  const PFTBL             *p;
 const INITBL    *pterm;  const PFTBL             *pterm;
 const OEMCHAR   *set;  const OEMCHAR   *set;
         OEMCHAR         work[512];          OEMCHAR         work[512];
   
         p = tbl;          p = tbl;
         pterm = tbl + count;          pterm = tbl + count;
         while(p < pterm) {          while(p < pterm) {
                 if (!(p->itemtype & INIFLAG_RO)) {                  if (!(p->itemtype & PFFLAG_RO)) {
                         work[0] = '\0';                          work[0] = '\0';
                         set = work;                          set = work;
                         switch(p->itemtype & INITYPE_MASK) {                          switch(p->itemtype & PFTYPE_MASK) {
                                 case INITYPE_STR:                                  case PFTYPE_STR:
                                         set = (OEMCHAR *)p->value;                                          set = (OEMCHAR *)p->value;
                                         break;                                          break;
   
                                 case INITYPE_BOOL:                                  case PFTYPE_BOOL:
                                         set = (*((UINT8 *)p->value))?str_true:str_false;                                          set = (*((UINT8 *)p->value))?str_true:str_false;
                                         break;                                          break;
   
                                 case INITYPE_ARGH8:                                  case PFTYPE_BIN:
                                         iniwrsetargh8(work, NELEMENTS(work), p);                                          iniwrsetargh8(work, NELEMENTS(work), p);
                                         break;                                          break;
   
                                 case INITYPE_SINT8:                                  case PFTYPE_SINT8:
                                         OEMSPRINTF(work, str_d, *((SINT8 *)p->value));                                          OEMSPRINTF(work, str_d, *((SINT8 *)p->value));
                                         break;                                          break;
   
                                 case INITYPE_SINT16:                                  case PFTYPE_SINT16:
                                         OEMSPRINTF(work, str_d, *((SINT16 *)p->value));                                          OEMSPRINTF(work, str_d, *((SINT16 *)p->value));
                                         break;                                          break;
   
                                 case INITYPE_SINT32:                                  case PFTYPE_SINT32:
                                         OEMSPRINTF(work, str_d, *((SINT32 *)p->value));                                          OEMSPRINTF(work, str_d, *((SINT32 *)p->value));
                                         break;                                          break;
   
                                 case INITYPE_UINT8:                                  case PFTYPE_UINT8:
                                         OEMSPRINTF(work, str_u, *((UINT8 *)p->value));                                          OEMSPRINTF(work, str_u, *((UINT8 *)p->value));
                                         break;                                          break;
   
                                 case INITYPE_UINT16:                                  case PFTYPE_UINT16:
                                         OEMSPRINTF(work, str_u, *((UINT16 *)p->value));                                          OEMSPRINTF(work, str_u, *((UINT16 *)p->value));
                                         break;                                          break;
   
                                 case INITYPE_UINT32:                                  case PFTYPE_UINT32:
                                         OEMSPRINTF(work, str_u, *((UINT32 *)p->value));                                          OEMSPRINTF(work, str_u, *((UINT32 *)p->value));
                                         break;                                          break;
   
                                 case INITYPE_HEX8:                                  case PFTYPE_HEX8:
                                         OEMSPRINTF(work, str_x, *((UINT8 *)p->value));                                          OEMSPRINTF(work, str_x, *((UINT8 *)p->value));
                                         break;                                          break;
   
                                 case INITYPE_HEX16:                                  case PFTYPE_HEX16:
                                         OEMSPRINTF(work, str_x, *((UINT16 *)p->value));                                          OEMSPRINTF(work, str_x, *((UINT16 *)p->value));
                                         break;                                          break;
   
                                 case INITYPE_HEX32:                                  case PFTYPE_HEX32:
                                         OEMSPRINTF(work, str_x, *((UINT32 *)p->value));                                          OEMSPRINTF(work, str_x, *((UINT32 *)p->value));
                                         break;                                          break;
   
Line 346  const OEMCHAR *set; Line 336  const OEMCHAR *set;
                                         break;                                          break;
                         }                          }
                         if (set) {                          if (set) {
 #if defined(OSLANG_UCS2)  
                                 OEMCHAR item[10];  
                                 oemtext_sjis2oem(item, NELEMENTS(item), p->item, (UINT)-1);  
                                 WritePrivateProfileString(title, item, set, path);  
 #else  
                                 WritePrivateProfileString(title, p->item, set, path);                                  WritePrivateProfileString(title, p->item, set, path);
 #endif  
                         }                          }
                 }                  }
                 p++;                  p++;
Line 369  static const OEMCHAR ini_title[] = OEMTE Line 353  static const OEMCHAR ini_title[] = OEMTE
 #endif  #endif
   
 enum {  enum {
         INIRO_STR                       = INITYPE_STR + INIFLAG_RO,          PFRO_STR                = PFFLAG_RO + PFTYPE_STR,
         INIRO_BOOL                      = INITYPE_BOOL + INIFLAG_RO,          PFRO_BOOL               = PFFLAG_RO + PFTYPE_BOOL,
         INIRO_BITMAP            = INITYPE_BITMAP + INIFLAG_RO,          PFRO_BITMAP             = PFFLAG_RO + PFTYPE_BITMAP,
         INIRO_UINT8                     = INITYPE_UINT8 + INIFLAG_RO,          PFRO_UINT8              = PFFLAG_RO + PFTYPE_UINT8,
         INIMAX_UINT8            = INITYPE_UINT8 + INIFLAG_MAX,          PFRO_SINT32             = PFFLAG_RO + PFTYPE_SINT32,
         INIAND_UINT8            = INITYPE_UINT8 + INIFLAG_AND,          PFRO_HEX32              = PFFLAG_RO + PFTYPE_HEX32,
         INIROMAX_SINT32         = INITYPE_SINT32 + INIFLAG_RO + INIFLAG_MAX,          PFRO_BYTE3              = PFFLAG_RO + PFTYPE_BYTE3,
         INIROAND_HEX32          = INITYPE_HEX32 + INIFLAG_RO + INIFLAG_AND,          PFRO_KB                 = PFFLAG_RO + PFTYPE_KB
   
         INIRO_BYTE3                     = INITYPE_BYTE3 + INIFLAG_RO,  
         INIRO_KB                        = INITYPE_KB + INIFLAG_RO  
 };  };
   
 static const INITBL iniitem[] = {  static const PFTBL iniitem[] = {
         {"np2title", INIRO_STR,                 np2oscfg.titles,          PFSTR("np2title", PFRO_STR,                     np2oscfg.titles),
                                                                                                 NELEMENTS(np2oscfg.titles)},          PFVAL("np2winid", PFRO_BYTE3,           np2oscfg.winid),
         {"np2winid", INIRO_BYTE3,               np2oscfg.winid,                 0},          PFVAL("WindposX", PFTYPE_SINT32,        &np2oscfg.winx),
         {"WindposX", INITYPE_SINT32,    &np2oscfg.winx,                 0},          PFVAL("WindposY", PFTYPE_SINT32,        &np2oscfg.winy),
         {"WindposY", INITYPE_SINT32,    &np2oscfg.winy,                 0},          PFMAX("paddingx", PFRO_SINT32,          &np2oscfg.paddingx,             32),
         {"paddingx", INIROMAX_SINT32,   &np2oscfg.paddingx,             32},          PFMAX("paddingy", PFRO_SINT32,          &np2oscfg.paddingy,             32),
         {"paddingy", INIROMAX_SINT32,   &np2oscfg.paddingy,             32},          PFVAL("Win_Snap", PFTYPE_BOOL,          &np2oscfg.WINSNAP),
         {"Win_Snap", INITYPE_BOOL,              &np2oscfg.WINSNAP,              0},  
           PFSTR("FDfolder", PFTYPE_STR,           fddfolder),
         {"FDfolder", INITYPE_STR,               fddfolder,                              MAX_PATH},          PFSTR("HDfolder", PFTYPE_STR,           hddfolder),
         {"HDfolder", INITYPE_STR,               hddfolder,                              MAX_PATH},          PFSTR("bmap_Dir", PFTYPE_STR,           bmpfilefolder),
         {"bmap_Dir", INITYPE_STR,               bmpfilefolder,                  MAX_PATH},          PFSTR("fontfile", PFTYPE_STR,           np2cfg.fontfile),
         {"fontfile", INITYPE_STR,               np2cfg.fontfile,                MAX_PATH},          PFSTR("biospath", PFRO_STR,                     np2cfg.biospath),
         {"biospath", INIRO_STR,                 np2cfg.biospath,                MAX_PATH},  
         {"hdrvroot", INIRO_STR,                 np2cfg.hdrvroot,                MAX_PATH},  #if defined(SUPPORT_HOSTDRV)
         {"hdrv_acc", INIRO_UINT8,               &np2cfg.hdrvacc,                0},          PFSTR("hdrvroot", PFRO_STR,                     np2cfg.hdrvroot),
           PFVAL("hdrv_acc", PFRO_UINT8,           &np2cfg.hdrvacc),
         {"pc_model", INITYPE_STR,               &np2cfg.model,  #endif
                                                                                                 NELEMENTS(np2cfg.model)},  
         {"clk_base", INITYPE_UINT32,    &np2cfg.baseclock,              0},  
         {"clk_mult", INITYPE_UINT32,    &np2cfg.multiple,               0},  
   
         {"DIPswtch", INITYPE_ARGH8,             np2cfg.dipsw,                   3},  
         {"MEMswtch", INITYPE_ARGH8,             np2cfg.memsw,                   8},  
         {"ExMemory", INIMAX_UINT8,              &np2cfg.EXTMEM,                 63},  
         {"ITF_WORK", INIRO_BOOL,                &np2cfg.ITF_WORK,               0},  
   
         {"HDD1FILE", INITYPE_STR,               np2cfg.sasihdd[0],              MAX_PATH},          PFSTR("pc_model", PFTYPE_STR,           &np2cfg.model),
         {"HDD2FILE", INITYPE_STR,               np2cfg.sasihdd[1],              MAX_PATH},          PFVAL("clk_base", PFTYPE_UINT32,        &np2cfg.baseclock),
           PFVAL("clk_mult", PFTYPE_UINT32,        &np2cfg.multiple),
   
           PFEXT("DIPswtch", PFTYPE_BIN,           np2cfg.dipsw,                   3),
           PFEXT("MEMswtch", PFTYPE_BIN,           np2cfg.memsw,                   8),
           PFMAX("ExMemory", PFTYPE_UINT8,         &np2cfg.EXTMEM,                 63),
           PFVAL("ITF_WORK", PFRO_BOOL,            &np2cfg.ITF_WORK),
   
           PFSTR("HDD1FILE", PFTYPE_STR,           np2cfg.sasihdd[0]),
           PFSTR("HDD2FILE", PFTYPE_STR,           np2cfg.sasihdd[1]),
 #if defined(SUPPORT_SCSI)  #if defined(SUPPORT_SCSI)
         {"SCSIHDD0", INITYPE_STR,               np2cfg.scsihdd[0],              MAX_PATH},          PFSTR("SCSIHDD0", PFTYPE_STR,           np2cfg.scsihdd[0]),
         {"SCSIHDD1", INITYPE_STR,               np2cfg.scsihdd[1],              MAX_PATH},          PFSTR("SCSIHDD1", PFTYPE_STR,           np2cfg.scsihdd[1]),
         {"SCSIHDD2", INITYPE_STR,               np2cfg.scsihdd[2],              MAX_PATH},          PFSTR("SCSIHDD2", PFTYPE_STR,           np2cfg.scsihdd[2]),
         {"SCSIHDD3", INITYPE_STR,               np2cfg.scsihdd[3],              MAX_PATH},          PFSTR("SCSIHDD3", PFTYPE_STR,           np2cfg.scsihdd[3]),
 #endif  #endif
   
         {"SampleHz", INITYPE_UINT16,    &np2cfg.samplingrate,   0},          PFVAL("SampleHz", PFTYPE_UINT16,        &np2cfg.samplingrate),
         {"Latencys", INITYPE_UINT16,    &np2cfg.delayms,                0},          PFVAL("Latencys", PFTYPE_UINT16,        &np2cfg.delayms),
         {"SNDboard", INITYPE_HEX8,              &np2cfg.SOUND_SW,               0},          PFVAL("SNDboard", PFTYPE_HEX8,          &np2cfg.SOUND_SW),
         {"BEEP_vol", INIAND_UINT8,              &np2cfg.BEEP_VOL,               3},          PFAND("BEEP_vol", PFTYPE_UINT8,         &np2cfg.BEEP_VOL,               3),
         {"xspeaker", INIRO_BOOL,                &np2cfg.snd_x,                  0},          PFVAL("xspeaker", PFRO_BOOL,            &np2cfg.snd_x),
   
         {"SND14vol", INITYPE_ARGH8,             np2cfg.vol14,                   6},          PFEXT("SND14vol", PFTYPE_BIN,           np2cfg.vol14,                   6),
 //      {"opt14BRD", INITYPE_ARGH8,             np2cfg.snd14opt,                3},  //      PFEXT("opt14BRD", PFTYPE_BIN,           np2cfg.snd14opt,                3),
         {"opt26BRD", INITYPE_HEX8,              &np2cfg.snd26opt,               0},          PFVAL("opt26BRD", PFTYPE_HEX8,          &np2cfg.snd26opt),
         {"opt86BRD", INITYPE_HEX8,              &np2cfg.snd86opt,               0},          PFVAL("opt86BRD", PFTYPE_HEX8,          &np2cfg.snd86opt),
         {"optSPBRD", INITYPE_HEX8,              &np2cfg.spbopt,                 0},          PFVAL("optSPBRD", PFTYPE_HEX8,          &np2cfg.spbopt),
         {"optSPBVR", INITYPE_HEX8,              &np2cfg.spb_vrc,                0},          PFVAL("optSPBVR", PFTYPE_HEX8,          &np2cfg.spb_vrc),
         {"optSPBVL", INIMAX_UINT8,              &np2cfg.spb_vrl,                24},          PFMAX("optSPBVL", PFTYPE_UINT8,         &np2cfg.spb_vrl,                24),
         {"optSPB_X", INITYPE_BOOL,              &np2cfg.spb_x,                  0},          PFVAL("optSPB_X", PFTYPE_BOOL,          &np2cfg.spb_x),
         {"optMPU98", INITYPE_HEX8,              &np2cfg.mpuopt,                 0},          PFVAL("optMPU98", PFTYPE_HEX8,          &np2cfg.mpuopt),
   
         {"volume_F", INIMAX_UINT8,              &np2cfg.vol_fm,                 128},          PFMAX("volume_F", PFTYPE_UINT8,         &np2cfg.vol_fm,                 128),
         {"volume_S", INIMAX_UINT8,              &np2cfg.vol_ssg,                128},          PFMAX("volume_S", PFTYPE_UINT8,         &np2cfg.vol_ssg,                128),
         {"volume_A", INIMAX_UINT8,              &np2cfg.vol_adpcm,              128},          PFMAX("volume_A", PFTYPE_UINT8,         &np2cfg.vol_adpcm,              128),
         {"volume_P", INIMAX_UINT8,              &np2cfg.vol_pcm,                128},          PFMAX("volume_P", PFTYPE_UINT8,         &np2cfg.vol_pcm,                128),
         {"volume_R", INIMAX_UINT8,              &np2cfg.vol_rhythm,             128},          PFMAX("volume_R", PFTYPE_UINT8,         &np2cfg.vol_rhythm,             128),
   
         {"Seek_Snd", INITYPE_BOOL,              &np2cfg.MOTOR,                  0},          PFVAL("Seek_Snd", PFTYPE_BOOL,          &np2cfg.MOTOR),
         {"Seek_Vol", INIMAX_UINT8,              &np2cfg.MOTORVOL,               100},          PFMAX("Seek_Vol", PFTYPE_UINT8,         &np2cfg.MOTORVOL,               100),
   
         {"btnRAPID", INITYPE_BOOL,              &np2cfg.BTN_RAPID,              0},          PFVAL("btnRAPID", PFTYPE_BOOL,          &np2cfg.BTN_RAPID),
         {"btn_MODE", INITYPE_BOOL,              &np2cfg.BTN_MODE,               0},          PFVAL("btn_MODE", PFTYPE_BOOL,          &np2cfg.BTN_MODE),
         {"Mouse_sw", INITYPE_BOOL,              &np2oscfg.MOUSE_SW,             0},          PFVAL("Mouse_sw", PFTYPE_BOOL,          &np2oscfg.MOUSE_SW),
         {"MS_RAPID", INITYPE_BOOL,              &np2cfg.MOUSERAPID,             0},          PFVAL("MS_RAPID", PFTYPE_BOOL,          &np2cfg.MOUSERAPID),
   
         {"backgrnd", INIAND_UINT8,              &np2oscfg.background,   3},          PFAND("backgrnd", PFTYPE_UINT8,         &np2oscfg.background,   3),
         {"VRAMwait", INITYPE_ARGH8,             np2cfg.wait,                    6},          PFEXT("VRAMwait", PFTYPE_BIN,           np2cfg.wait,                    6),
         {"DspClock", INIAND_UINT8,              &np2oscfg.DISPCLK,              3},          PFAND("DspClock", PFTYPE_UINT8,         &np2oscfg.DISPCLK,              3),
         {"DispSync", INITYPE_BOOL,              &np2cfg.DISPSYNC,               0},          PFVAL("DispSync", PFTYPE_BOOL,          &np2cfg.DISPSYNC),
         {"Real_Pal", INITYPE_BOOL,              &np2cfg.RASTER,                 0},          PFVAL("Real_Pal", PFTYPE_BOOL,          &np2cfg.RASTER),
         {"RPal_tim", INIMAX_UINT8,              &np2cfg.realpal,                64},          PFMAX("RPal_tim", PFTYPE_UINT8,         &np2cfg.realpal,                64),
         {"s_NOWAIT", INITYPE_BOOL,              &np2oscfg.NOWAIT,               0},          PFVAL("s_NOWAIT", PFTYPE_BOOL,          &np2oscfg.NOWAIT),
         {"SkpFrame", INITYPE_UINT8,             &np2oscfg.DRAW_SKIP,    0},          PFVAL("SkpFrame", PFTYPE_UINT8,         &np2oscfg.DRAW_SKIP),
         {"uPD72020", INITYPE_BOOL,              &np2cfg.uPD72020,               0},          PFVAL("uPD72020", PFTYPE_BOOL,          &np2cfg.uPD72020),
         {"GRCG_EGC", INIAND_UINT8,              &np2cfg.grcg,                   3},          PFAND("GRCG_EGC", PFTYPE_UINT8,         &np2cfg.grcg,                   3),
         {"color16b", INITYPE_BOOL,              &np2cfg.color16,                0},          PFVAL("color16b", PFTYPE_BOOL,          &np2cfg.color16),
         {"skipline", INITYPE_BOOL,              &np2cfg.skipline,               0},          PFVAL("skipline", PFTYPE_BOOL,          &np2cfg.skipline),
         {"skplight", INITYPE_UINT16,    &np2cfg.skiplight,              0},          PFVAL("skplight", PFTYPE_UINT16,        &np2cfg.skiplight),
         {"LCD_MODE", INIAND_UINT8,              &np2cfg.LCD_MODE,               0x03},          PFAND("LCD_MODE", PFTYPE_UINT8,         &np2cfg.LCD_MODE,               0x03),
         {"BG_COLOR", INIROAND_HEX32,    &np2cfg.BG_COLOR,               0xffffff},          PFAND("BG_COLOR", PFRO_HEX32,           &np2cfg.BG_COLOR,               0xffffff),
         {"FG_COLOR", INIROAND_HEX32,    &np2cfg.FG_COLOR,               0xffffff},          PFAND("FG_COLOR", PFRO_HEX32,           &np2cfg.FG_COLOR,               0xffffff),
   
         {"pc9861_e", INITYPE_BOOL,              &np2cfg.pc9861enable,   0},          PFVAL("pc9861_e", PFTYPE_BOOL,          &np2cfg.pc9861enable),
         {"pc9861_s", INITYPE_ARGH8,             np2cfg.pc9861sw,                3},          PFEXT("pc9861_s", PFTYPE_BIN,           np2cfg.pc9861sw,                3),
         {"pc9861_j", INITYPE_ARGH8,             np2cfg.pc9861jmp,               6},          PFEXT("pc9861_j", PFTYPE_BIN,           np2cfg.pc9861jmp,               6),
   
         {"calendar", INITYPE_BOOL,              &np2cfg.calendar,               0},          PFVAL("calendar", PFTYPE_BOOL,          &np2cfg.calendar),
         {"USE144FD", INITYPE_BOOL,              &np2cfg.usefd144,               0},          PFVAL("USE144FD", PFTYPE_BOOL,          &np2cfg.usefd144),
         {"FDDRIVE1", INIRO_BITMAP,              &np2cfg.fddequip,               0},          PFEXT("FDDRIVE1", PFRO_BITMAP,          &np2cfg.fddequip,               0),
         {"FDDRIVE2", INIRO_BITMAP,              &np2cfg.fddequip,               1},          PFEXT("FDDRIVE2", PFRO_BITMAP,          &np2cfg.fddequip,               1),
         {"FDDRIVE3", INIRO_BITMAP,              &np2cfg.fddequip,               2},          PFEXT("FDDRIVE3", PFRO_BITMAP,          &np2cfg.fddequip,               2),
         {"FDDRIVE4", INIRO_BITMAP,              &np2cfg.fddequip,               3},          PFEXT("FDDRIVE4", PFRO_BITMAP,          &np2cfg.fddequip,               3),
   
   
         // OS°Í¸¡©          // OS°Í¸¡©
         {"keyboard", INIRO_KB,                  &np2oscfg.KEYBOARD,             0},          PFVAL("keyboard", PFRO_KB,                      &np2oscfg.KEYBOARD),
         {"F12_COPY", INITYPE_UINT8,             &np2oscfg.F12COPY,              0},          PFVAL("F12_COPY", PFTYPE_UINT8,         &np2oscfg.F12COPY),
         {"Joystick", INITYPE_BOOL,              &np2oscfg.JOYPAD1,              0},          PFVAL("Joystick", PFTYPE_BOOL,          &np2oscfg.JOYPAD1),
         {"Joy1_btn", INITYPE_ARGH8,             np2oscfg.JOY1BTN,               4},          PFEXT("Joy1_btn", PFTYPE_BIN,           np2oscfg.JOY1BTN,               4),
   
         {"clocknow", INITYPE_UINT8,             &np2oscfg.clk_x,                0},          PFVAL("clocknow", PFTYPE_UINT8,         &np2oscfg.clk_x),
         {"clockfnt", INITYPE_UINT8,             &np2oscfg.clk_fnt,              0},          PFVAL("clockfnt", PFTYPE_UINT8,         &np2oscfg.clk_fnt),
         {"clock_up", INIROAND_HEX32,    &np2oscfg.clk_color1,   0xffffff},          PFAND("clock_up", PFRO_HEX32,           &np2oscfg.clk_color1,   0xffffff),
         {"clock_dn", INIROAND_HEX32,    &np2oscfg.clk_color2,   0xffffff},          PFAND("clock_dn", PFRO_HEX32,           &np2oscfg.clk_color2,   0xffffff),
   
         {"use_sstp", INITYPE_BOOL,              &np2oscfg.sstp,                 0},          PFVAL("use_sstp", PFTYPE_BOOL,          &np2oscfg.sstp),
         {"sstpport", INITYPE_UINT16,    &np2oscfg.sstpport,             0},          PFVAL("sstpport", PFTYPE_UINT16,        &np2oscfg.sstpport),
         {"comfirm_", INITYPE_BOOL,              &np2oscfg.comfirm,              0},          PFVAL("comfirm_", PFTYPE_BOOL,          &np2oscfg.comfirm),
         {"shortcut", INITYPE_HEX8,              &np2oscfg.shortcut,             0},             // ver0.30          PFVAL("shortcut", PFTYPE_HEX8,          &np2oscfg.shortcut),
   
         {"mpu98map", INITYPE_STR,               np2oscfg.mpu.mout,              MAXPNAMELEN},          PFSTR("mpu98map", PFTYPE_STR,           np2oscfg.mpu.mout),
         {"mpu98min", INITYPE_STR,               np2oscfg.mpu.min,               MAXPNAMELEN},          PFSTR("mpu98min", PFTYPE_STR,           np2oscfg.mpu.min),
         {"mpu98mdl", INITYPE_STR,               np2oscfg.mpu.mdl,               64},          PFSTR("mpu98mdl", PFTYPE_STR,           np2oscfg.mpu.mdl),
         {"mpu98def", INITYPE_STR,               np2oscfg.mpu.def,               MAX_PATH},          PFSTR("mpu98def", PFTYPE_STR,           np2oscfg.mpu.def),
   
         {"com1port", INIMAX_UINT8,              &np2oscfg.com1.port,    5},             // ver0.34          PFMAX("com1port", PFTYPE_UINT8,         &np2oscfg.com1.port,    5),
         {"com1para", INITYPE_UINT8,             &np2oscfg.com1.param,   0},          PFVAL("com1para", PFTYPE_UINT8,         &np2oscfg.com1.param),
         {"com1_bps", INITYPE_UINT32,    &np2oscfg.com1.speed,   0},          PFVAL("com1_bps", PFTYPE_UINT32,        &np2oscfg.com1.speed),
         {"com1mmap", INITYPE_STR,               np2oscfg.com1.mout,             MAXPNAMELEN},          PFSTR("com1mmap", PFTYPE_STR,           np2oscfg.com1.mout),
         {"com1mmdl", INITYPE_STR,               np2oscfg.com1.mdl,              64},          PFSTR("com1mmdl", PFTYPE_STR,           np2oscfg.com1.mdl),
         {"com1mdef", INITYPE_STR,               np2oscfg.com1.def,              MAX_PATH},          PFSTR("com1mdef", PFTYPE_STR,           np2oscfg.com1.def),
   
         {"com2port", INIMAX_UINT8,              &np2oscfg.com2.port,    5},             // ver0.34          PFMAX("com2port", PFTYPE_UINT8,         &np2oscfg.com2.port,    5),
         {"com2para", INITYPE_UINT8,             &np2oscfg.com2.param,   0},          PFVAL("com2para", PFTYPE_UINT8,         &np2oscfg.com2.param),
         {"com2_bps", INITYPE_UINT32,    &np2oscfg.com2.speed,   0},          PFVAL("com2_bps", PFTYPE_UINT32,        &np2oscfg.com2.speed),
         {"com2mmap", INITYPE_STR,               np2oscfg.com2.mout,             MAXPNAMELEN},          PFSTR("com2mmap", PFTYPE_STR,           np2oscfg.com2.mout),
         {"com2mmdl", INITYPE_STR,               np2oscfg.com2.mdl,              64},          PFSTR("com2mmdl", PFTYPE_STR,           np2oscfg.com2.mdl),
         {"com2mdef", INITYPE_STR,               np2oscfg.com2.def,              MAX_PATH},          PFSTR("com2mdef", PFTYPE_STR,           np2oscfg.com2.def),
   
         {"com3port", INIMAX_UINT8,              &np2oscfg.com3.port,    5},             // ver0.34          PFMAX("com3port", PFTYPE_UINT8,         &np2oscfg.com3.port,    5),
         {"com3para", INITYPE_UINT8,             &np2oscfg.com3.param,   0},          PFVAL("com3para", PFTYPE_UINT8,         &np2oscfg.com3.param),
         {"com3_bps", INITYPE_UINT32,    &np2oscfg.com3.speed,   0},          PFVAL("com3_bps", PFTYPE_UINT32,        &np2oscfg.com3.speed),
         {"com3mmap", INITYPE_STR,               np2oscfg.com3.mout,             MAXPNAMELEN},          PFSTR("com3mmap", PFTYPE_STR,           np2oscfg.com3.mout),
         {"com3mmdl", INITYPE_STR,               np2oscfg.com3.mdl,              64},          PFSTR("com3mmdl", PFTYPE_STR,           np2oscfg.com3.mdl),
         {"com3mdef", INITYPE_STR,               np2oscfg.com3.def,              MAX_PATH},          PFSTR("com3mdef", PFTYPE_STR,           np2oscfg.com3.def),
   
         {"force400", INIRO_BOOL,                &np2oscfg.force400,             0},          PFVAL("force400", PFRO_BOOL,            &np2oscfg.force400),
         {"e_resume", INITYPE_BOOL,              &np2oscfg.resume,               0},          PFVAL("e_resume", PFTYPE_BOOL,          &np2oscfg.resume),
         {"STATSAVE", INIRO_BOOL,                &np2oscfg.statsave,             0},          PFVAL("STATSAVE", PFRO_BOOL,            &np2oscfg.statsave),
         {"nousemmx", INITYPE_BOOL,              &np2oscfg.disablemmx,   0},             // ver0.36          PFVAL("nousemmx", PFTYPE_BOOL,          &np2oscfg.disablemmx),
         {"windtype", INITYPE_UINT8,             &np2oscfg.wintype,              0},          PFVAL("windtype", PFTYPE_UINT8,         &np2oscfg.wintype),
         {"toolwind", INITYPE_BOOL,              &np2oscfg.toolwin,              0},             // ver0.38          PFVAL("toolwind", PFTYPE_BOOL,          &np2oscfg.toolwin),
         {"keydispl", INITYPE_BOOL,              &np2oscfg.keydisp,              0},          PFVAL("keydispl", PFTYPE_BOOL,          &np2oscfg.keydisp),
         {"jast_snd", INITYPE_BOOL,              &np2oscfg.jastsnd,              0},             // ver0.73          PFVAL("jast_snd", PFTYPE_BOOL,          &np2oscfg.jastsnd),
         {"useromeo", INITYPE_BOOL,              &np2oscfg.useromeo,             0},             // ver0.74          PFVAL("useromeo", PFTYPE_BOOL,          &np2oscfg.useromeo),
         {"thickfrm", INITYPE_BOOL,              &np2oscfg.thickframe,   0},             // ver0.77          PFVAL("thickfrm", PFTYPE_BOOL,          &np2oscfg.thickframe),
         {"xrollkey", INIRO_BOOL,                &np2oscfg.xrollkey,             0},             // ver0.78          PFVAL("xrollkey", PFRO_BOOL,            &np2oscfg.xrollkey),
         {"fscrnbpp", INIRO_UINT8,               &np2oscfg.fscrnbpp,             0},          PFVAL("fscrnbpp", PFRO_UINT8,           &np2oscfg.fscrnbpp),
         {"I286SAVE", INIRO_BOOL,                &np2oscfg.I286SAVE,             0}};          PFVAL("I286SAVE", PFRO_BOOL,            &np2oscfg.I286SAVE)};
   
   
 void initgetfile(OEMCHAR *path, UINT size) {  void initgetfile(OEMCHAR *path, UINT size) {

Removed from v.1.35  
changed lines
  Added in v.1.38


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