| version 1.23, 2004/02/11 17:39:59 | version 1.30, 2004/06/14 13:35:40 | 
| Line 11 | Line 11 | 
 | #include        "pccore.h" | #include        "pccore.h" | 
 |  |  | 
 |  |  | 
 |  |  | 
 |  | static BOOL inigetbmp(const BYTE *ptr, UINT pos) { | 
 |  |  | 
 |  | return((ptr[pos >> 3] >> (pos & 7)) & 1); | 
 |  | } | 
 |  |  | 
 |  | static void inisetbmp(BYTE *ptr, UINT pos, BOOL set) { | 
 |  |  | 
 |  | UINT8   bit; | 
 |  |  | 
 |  | ptr += (pos >> 3); | 
 |  | bit = 1 << (pos & 7); | 
 |  | if (set) { | 
 |  | *ptr |= bit; | 
 |  | } | 
 |  | else { | 
 |  | *ptr &= ~bit; | 
 |  | } | 
 |  | } | 
 |  |  | 
 | static void inirdargs16(const char *src, const INITBL *ini) { | static void inirdargs16(const char *src, const INITBL *ini) { | 
 |  |  | 
 | SINT16  *dst; | SINT16  *dst; | 
| Line 164  const INITBL *pterm; | Line 184  const INITBL *pterm; | 
 | *((BYTE *)p->value) = (!milstr_cmp(work, str_true))?1:0; | *((BYTE *)p->value) = (!milstr_cmp(work, str_true))?1:0; | 
 | break; | break; | 
 |  |  | 
 |  | case INITYPE_BITMAP: | 
 |  | GetPrivateProfileString(title, p->item, | 
 |  | (inigetbmp((BYTE *)p->value, p->arg))?str_true:str_false, | 
 |  | work, sizeof(work), path); | 
 |  | inisetbmp((BYTE *)p->value, p->arg, | 
 |  | (milstr_cmp(work, str_true) == 0)); | 
 |  | break; | 
 |  |  | 
 | case INITYPE_ARGS16: | case INITYPE_ARGS16: | 
 | GetPrivateProfileString(title, p->item, str_null, | GetPrivateProfileString(title, p->item, str_null, | 
 | work, sizeof(work), path); | work, sizeof(work), path); | 
| Line 218  const INITBL *pterm; | Line 246  const INITBL *pterm; | 
 | GetPrivateProfileString(title, p->item, work, | GetPrivateProfileString(title, p->item, work, | 
 | work, sizeof(work), path); | work, sizeof(work), path); | 
 | val = (UINT32)milstr_solveHEX(work); | val = (UINT32)milstr_solveHEX(work); | 
| *(UINT16 *)p->value = (UINT32)val; | *(UINT32 *)p->value = (UINT32)val; | 
 | break; | break; | 
 |  |  | 
 | case INITYPE_BYTE3: | case INITYPE_BYTE3: | 
| Line 227  const INITBL *pterm; | Line 255  const INITBL *pterm; | 
 | inirdbyte3(work, p); | inirdbyte3(work, p); | 
 | break; | break; | 
 |  |  | 
 | case INITYPE_USERKEY: |  | 
 | GetPrivateProfileString(title, p->item, str_null, |  | 
 | work, sizeof(work), path); |  | 
 | ((UINT8 *)p->value)[0] = (UINT8)profile_setkeys(work, |  | 
 | ((UINT8 *)p->value) + 1, 15); |  | 
 | break; |  | 
 |  |  | 
 | case INITYPE_KB: | case INITYPE_KB: | 
 | GetPrivateProfileString(title, p->item, str_null, | GetPrivateProfileString(title, p->item, str_null, | 
 | work, sizeof(work), path); | work, sizeof(work), path); | 
| Line 307  const char  *set; | Line 328  const char  *set; | 
 | SPRINTF(work, str_x, *((UINT32 *)p->value)); | SPRINTF(work, str_x, *((UINT32 *)p->value)); | 
 | break; | break; | 
 |  |  | 
 | case INITYPE_USERKEY: |  | 
 | profile_getkeys(work, sizeof(work), |  | 
 | ((UINT8 *)p->value) + 1, ((UINT8 *)p->value)[0]); |  | 
 | break; |  | 
 |  |  | 
 | default: | default: | 
 | set = NULL; | set = NULL; | 
 | break; | break; | 
| Line 327  const char  *set; | Line 343  const char  *set; | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
 |  | #if !defined(SUPPORT_PC9821) | 
 | static const char ini_title[] = "NekoProjectII"; | static const char ini_title[] = "NekoProjectII"; | 
 |  | #else | 
 |  | static const char ini_title[] = "NekoProject21"; | 
 |  | #endif | 
 |  |  | 
 | enum { | enum { | 
 | INIRO_STR                       = INITYPE_STR + INIFLAG_RO, | INIRO_STR                       = INITYPE_STR + INIFLAG_RO, | 
 | INIRO_BOOL                      = INITYPE_BOOL + INIFLAG_RO, | INIRO_BOOL                      = INITYPE_BOOL + INIFLAG_RO, | 
 |  | INIRO_BITMAP            = INITYPE_BITMAP + INIFLAG_RO, | 
 | INIRO_UINT8                     = INITYPE_UINT8 + INIFLAG_RO, | INIRO_UINT8                     = INITYPE_UINT8 + INIFLAG_RO, | 
 | INIMAX_UINT8            = INITYPE_UINT8 + INIFLAG_MAX, | INIMAX_UINT8            = INITYPE_UINT8 + INIFLAG_MAX, | 
 | INIAND_UINT8            = INITYPE_UINT8 + INIFLAG_AND, | INIAND_UINT8            = INITYPE_UINT8 + INIFLAG_AND, | 
| Line 393  static const INITBL iniitem[] = { | Line 414  static const INITBL iniitem[] = { | 
 | {"optSPBVR", INITYPE_HEX8,              &np2cfg.spb_vrc,                0}, | {"optSPBVR", INITYPE_HEX8,              &np2cfg.spb_vrc,                0}, | 
 | {"optSPBVL", INIMAX_UINT8,              &np2cfg.spb_vrl,                24}, | {"optSPBVL", INIMAX_UINT8,              &np2cfg.spb_vrl,                24}, | 
 | {"optSPB_X", INITYPE_BOOL,              &np2cfg.spb_x,                  0}, | {"optSPB_X", INITYPE_BOOL,              &np2cfg.spb_x,                  0}, | 
| {"optMPU98", INITYPE_HEX8               &np2cfg.mpuopt,                 0}, | {"optMPU98", INITYPE_HEX8,              &np2cfg.mpuopt,                 0}, | 
 |  |  | 
 | {"volume_F", INIMAX_UINT8,              &np2cfg.vol_fm,                 128}, | {"volume_F", INIMAX_UINT8,              &np2cfg.vol_fm,                 128}, | 
 | {"volume_S", INIMAX_UINT8,              &np2cfg.vol_ssg,                128}, | {"volume_S", INIMAX_UINT8,              &np2cfg.vol_ssg,                128}, | 
| Line 432  static const INITBL iniitem[] = { | Line 453  static const INITBL iniitem[] = { | 
 |  |  | 
 | {"calendar", INITYPE_BOOL,              &np2cfg.calendar,               0}, | {"calendar", INITYPE_BOOL,              &np2cfg.calendar,               0}, | 
 | {"USE144FD", INITYPE_BOOL,              &np2cfg.usefd144,               0}, | {"USE144FD", INITYPE_BOOL,              &np2cfg.usefd144,               0}, | 
| {"userkey1", INITYPE_USERKEY,   np2cfg.userkey[0],              16}, | {"FDDRIVE1", INIRO_BITMAP,              &np2cfg.fddequip,               0}, | 
| {"userkey2", INITYPE_USERKEY,   np2cfg.userkey[1],              16}, | {"FDDRIVE2", INIRO_BITMAP,              &np2cfg.fddequip,               1}, | 
|  | {"FDDRIVE3", INIRO_BITMAP,              &np2cfg.fddequip,               2}, | 
|  | {"FDDRIVE4", INIRO_BITMAP,              &np2cfg.fddequip,               3}, | 
 |  |  | 
 |  |  | 
 | // OS°Í¸¡© | // OS°Í¸¡© | 
| Line 487  static const INITBL iniitem[] = { | Line 510  static const INITBL iniitem[] = { | 
 | {"keydispl", INITYPE_BOOL,              &np2oscfg.keydisp,              0}, | {"keydispl", INITYPE_BOOL,              &np2oscfg.keydisp,              0}, | 
 | {"jast_snd", INITYPE_BOOL,              &np2oscfg.jastsnd,              0},             // ver0.73 | {"jast_snd", INITYPE_BOOL,              &np2oscfg.jastsnd,              0},             // ver0.73 | 
 | {"useromeo", INITYPE_BOOL,              &np2oscfg.useromeo,             0},             // ver0.74 | {"useromeo", INITYPE_BOOL,              &np2oscfg.useromeo,             0},             // ver0.74 | 
 |  | {"thickfrm", INITYPE_BOOL,              &np2oscfg.thickframe,   0},             // ver0.77 | 
 |  | {"xrollkey", INIRO_BOOL,                &np2oscfg.xrollkey,             0},             // ver0.78 | 
 | {"I286SAVE", INIRO_BOOL,                &np2oscfg.I286SAVE,             0}}; | {"I286SAVE", INIRO_BOOL,                &np2oscfg.I286SAVE,             0}}; | 
 |  |  | 
 |  |  |