|
|
| version 1.23, 2004/02/11 17:39:59 | version 1.31, 2005/02/07 14:46:14 |
|---|---|
| Line 11 | Line 11 |
| #include "pccore.h" | #include "pccore.h" |
| static BOOL inigetbmp(const UINT8 *ptr, UINT pos) { | |
| return((ptr[pos >> 3] >> (pos & 7)) & 1); | |
| } | |
| static void inisetbmp(UINT8 *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 40 static void inirdargs16(const char *src, | Line 60 static void inirdargs16(const char *src, |
| static void inirdargh8(const char *src, const INITBL *ini) { | static void inirdargh8(const char *src, const INITBL *ini) { |
| BYTE *dst; | UINT8 *dst; |
| int dsize; | int dsize; |
| int i; | int i; |
| BYTE val; | UINT8 val; |
| BOOL set; | BOOL set; |
| char c; | char c; |
| dst = (BYTE *)ini->value; | dst = (UINT8 *)ini->value; |
| dsize = ini->arg; | dsize = ini->arg; |
| for (i=0; i<dsize; i++) { | for (i=0; i<dsize; i++) { |
| Line 86 static void inirdargh8(const char *src, | Line 106 static void inirdargh8(const char *src, |
| static void iniwrsetargh8(char *work, int size, const INITBL *ini) { | static void iniwrsetargh8(char *work, int size, const INITBL *ini) { |
| UINT i; | UINT i; |
| const BYTE *ptr; | const UINT8 *ptr; |
| UINT arg; | UINT arg; |
| char tmp[8]; | char tmp[8]; |
| ptr = (BYTE *)ini->value; | ptr = (UINT8 *)ini->value; |
| arg = ini->arg; | arg = ini->arg; |
| if (arg > 0) { | if (arg > 0) { |
| SPRINTF(tmp, "%.2x", ptr[0]); | SPRINTF(tmp, "%.2x", ptr[0]); |
| Line 115 static void inirdbyte3(const char *src, | Line 135 static void inirdbyte3(const char *src, |
| } | } |
| if ((((src[i] - '0') & 0xff) < 9) || | if ((((src[i] - '0') & 0xff) < 9) || |
| (((src[i] - 'A') & 0xdf) < 26)) { | (((src[i] - 'A') & 0xdf) < 26)) { |
| ((BYTE *)ini->value)[i] = src[i]; | ((UINT8 *)ini->value)[i] = src[i]; |
| } | } |
| } | } |
| } | } |
| Line 124 static void inirdkb(const char *src, con | Line 144 static void inirdkb(const char *src, con |
| if ((!milstr_extendcmp(src, "PC98")) || | if ((!milstr_extendcmp(src, "PC98")) || |
| (!milstr_cmp(src, "98"))) { | (!milstr_cmp(src, "98"))) { |
| *(BYTE *)ini->value = KEY_PC98; | *(UINT8 *)ini->value = KEY_PC98; |
| } | } |
| else if ((!milstr_extendcmp(src, "DOS")) || | else if ((!milstr_extendcmp(src, "DOS")) || |
| (!milstr_cmp(src, "PCAT")) || | (!milstr_cmp(src, "PCAT")) || |
| (!milstr_cmp(src, "AT"))) { | (!milstr_cmp(src, "AT"))) { |
| *(BYTE *)ini->value = KEY_KEY106; | *(UINT8 *)ini->value = KEY_KEY106; |
| } | } |
| else if ((!milstr_extendcmp(src, "KEY101")) || | else if ((!milstr_extendcmp(src, "KEY101")) || |
| (!milstr_cmp(src, "101"))) { | (!milstr_cmp(src, "101"))) { |
| *(BYTE *)ini->value = KEY_KEY101; | *(UINT8 *)ini->value = KEY_KEY101; |
| } | } |
| } | } |
| Line 159 const INITBL *pterm; | Line 179 const INITBL *pterm; |
| case INITYPE_BOOL: | case INITYPE_BOOL: |
| GetPrivateProfileString(title, p->item, | GetPrivateProfileString(title, p->item, |
| (*((BYTE *)p->value))?str_true:str_false, | (*((UINT8 *)p->value))?str_true:str_false, |
| work, sizeof(work), path); | work, sizeof(work), path); |
| *((BYTE *)p->value) = (!milstr_cmp(work, str_true))?1:0; | *((UINT8 *)p->value) = (!milstr_cmp(work, str_true))?1:0; |
| break; | |
| case INITYPE_BITMAP: | |
| GetPrivateProfileString(title, p->item, | |
| (inigetbmp((UINT8 *)p->value, p->arg))?str_true:str_false, | |
| work, sizeof(work), path); | |
| inisetbmp((UINT8 *)p->value, p->arg, | |
| (milstr_cmp(work, str_true) == 0)); | |
| break; | break; |
| case INITYPE_ARGS16: | case INITYPE_ARGS16: |
| Line 178 const INITBL *pterm; | Line 206 const INITBL *pterm; |
| case INITYPE_SINT8: | case INITYPE_SINT8: |
| case INITYPE_UINT8: | case INITYPE_UINT8: |
| val = (BYTE)GetPrivateProfileInt(title, p->item, | val = (UINT8)GetPrivateProfileInt(title, p->item, |
| *(BYTE *)p->value, path); | *(UINT8 *)p->value, path); |
| *(UINT8 *)p->value = (UINT8)val; | *(UINT8 *)p->value = (UINT8)val; |
| break; | break; |
| Line 198 const INITBL *pterm; | Line 226 const INITBL *pterm; |
| break; | break; |
| case INITYPE_HEX8: | case INITYPE_HEX8: |
| SPRINTF(work, str_x, *(BYTE *)p->value), | SPRINTF(work, str_x, *(UINT8 *)p->value), |
| GetPrivateProfileString(title, p->item, work, | GetPrivateProfileString(title, p->item, work, |
| work, sizeof(work), path); | work, sizeof(work), path); |
| val = (BYTE)milstr_solveHEX(work); | val = (UINT8)milstr_solveHEX(work); |
| *(UINT8 *)p->value = (UINT8)val; | *(UINT8 *)p->value = (UINT8)val; |
| break; | break; |
| 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 264 const char *set; | Line 285 const char *set; |
| break; | break; |
| case INITYPE_BOOL: | case INITYPE_BOOL: |
| set = (*((BYTE *)p->value))?str_true:str_false; | set = (*((UINT8 *)p->value))?str_true:str_false; |
| break; | break; |
| case INITYPE_ARGH8: | case INITYPE_ARGH8: |
| 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}}; |
| Line 519 void initload(void) { | Line 544 void initload(void) { |
| char path[MAX_PATH]; | char path[MAX_PATH]; |
| initgetfile(path, sizeof(path)); | initgetfile(path, sizeof(path)); |
| ini_read(path, ini_title, iniitem, sizeof(iniitem)/sizeof(INITBL)); | ini_read(path, ini_title, iniitem, NELEMENTS(iniitem)); |
| } | } |
| void initsave(void) { | void initsave(void) { |
| Line 527 void initsave(void) { | Line 552 void initsave(void) { |
| char path[MAX_PATH]; | char path[MAX_PATH]; |
| initgetfile(path, sizeof(path)); | initgetfile(path, sizeof(path)); |
| ini_write(path, ini_title, iniitem, sizeof(iniitem)/sizeof(INITBL)); | ini_write(path, ini_title, iniitem, NELEMENTS(iniitem)); |
| } | } |