--- np2/macos9/ini.cpp 2003/10/23 07:20:43 1.1 +++ np2/macos9/ini.cpp 2004/03/12 18:19:58 1.16 @@ -14,6 +14,26 @@ const INITBL *tblterm; UINT count; } _INIARG, *INIARG; + +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 inirdarg8(BYTE *dst, int dsize, const char *src) { int i; @@ -77,6 +97,11 @@ const INITBL *p; *((BYTE *)p->value) = (!milstr_cmp(data, str_true))?1:0; break; + case INITYPE_BITMAP: + inisetbmp((BYTE *)p->value, p->size, + (milstr_cmp(data, str_true) == 0)); + break; + case INITYPE_BYTEARG: inirdarg8((BYTE *)p->value, p->size, data); break; @@ -207,7 +232,7 @@ const INITBL *pterm; } milstr_ncpy(work, "[", sizeof(work)); milstr_ncat(work, title, sizeof(work)); - milstr_ncat(work, "]\r\n", sizeof(work)); + milstr_ncat(work, "]\r", sizeof(work)); file_write(fh, work, strlen(work)); p = tbl; @@ -225,44 +250,50 @@ const INITBL *pterm; sizeof(work)); break; + case INITYPE_BITMAP: + milstr_ncpy(work, + (inigetbmp((BYTE *)p->value, p->size))?str_true:str_false, + sizeof(work)); + break; + case INITYPE_BYTEARG: iniwrsetarg8(work, sizeof(work), (BYTE *)p->value, p->size); break; case INITYPE_SINT8: - SPRINTF(work, "%d", *((char *)p->value)); + SPRINTF(work, str_d, *((char *)p->value)); break; case INITYPE_SINT16: - SPRINTF(work, "%d", *((SINT16 *)p->value)); + SPRINTF(work, str_d, *((SINT16 *)p->value)); break; case INITYPE_SINT32: - SPRINTF(work, "%d", *((SINT32 *)p->value)); + SPRINTF(work, str_d, *((SINT32 *)p->value)); break; case INITYPE_UINT8: - SPRINTF(work, "%u", *((BYTE *)p->value)); + SPRINTF(work, str_u, *((BYTE *)p->value)); break; case INITYPE_UINT16: - SPRINTF(work, "%u", *((UINT16 *)p->value)); + SPRINTF(work, str_u, *((UINT16 *)p->value)); break; case INITYPE_UINT32: - SPRINTF(work, "%u", *((UINT32 *)p->value)); + SPRINTF(work, str_u, *((UINT32 *)p->value)); break; case INITYPE_HEX8: - SPRINTF(work, "%x", *((BYTE *)p->value)); + SPRINTF(work, str_x, *((BYTE *)p->value)); break; case INITYPE_HEX16: - SPRINTF(work, "%x", *((UINT16 *)p->value)); + SPRINTF(work, str_x, *((UINT16 *)p->value)); break; case INITYPE_HEX32: - SPRINTF(work, "%x", *((UINT32 *)p->value)); + SPRINTF(work, str_x, *((UINT32 *)p->value)); break; default: @@ -273,7 +304,7 @@ const INITBL *pterm; file_write(fh, p->item, strlen(p->item)); file_write(fh, " = ", 3); file_write(fh, work, strlen(work)); - file_write(fh, "\r\n", 2); + file_write(fh, "\r", 1); } p++; } @@ -283,13 +314,15 @@ const INITBL *pterm; // ---- -extern int winx; -extern int winy; - static const char ini_title[] = "NekoProjectII"; static const char inifile[] = "np2.cfg"; static const INITBL iniitem[] = { + {"windposx", INITYPE_SINT32, &np2oscfg.posx, 0}, + {"windposy", INITYPE_SINT32, &np2oscfg.posy, 0}, + + {"pc_model", INITYPE_STR, &np2cfg.model, + sizeof(np2cfg.model)}, {"clk_base", INITYPE_SINT32, &np2cfg.baseclock, 0}, {"clk_mult", INITYPE_SINT32, &np2cfg.multiple, 0}, @@ -298,9 +331,18 @@ static const INITBL iniitem[] = { {"ExMemory", INITYPE_UINT8, &np2cfg.EXTMEM, 0}, {"ITF_WORK", INITYPE_BOOL, &np2cfg.ITF_WORK, 0}, - {"HDD1FILE", INITYPE_STR, np2cfg.hddfile[0], MAX_PATH}, - {"HDD2FILE", INITYPE_STR, np2cfg.hddfile[1], MAX_PATH}, + {"HDD1FILE", INITYPE_STR, np2cfg.sasihdd[0], MAX_PATH}, + {"HDD2FILE", INITYPE_STR, np2cfg.sasihdd[1], MAX_PATH}, +#if defined(SUPPORT_SCSI) + {"SCSIHDD0", INITYPE_STR, np2cfg.scsihdd[0], MAX_PATH}, + {"SCSIHDD1", INITYPE_STR, np2cfg.scsihdd[1], MAX_PATH}, + {"SCSIHDD2", INITYPE_STR, np2cfg.scsihdd[2], MAX_PATH}, + {"SCSIHDD3", INITYPE_STR, np2cfg.scsihdd[3], MAX_PATH}, +#endif {"fontfile", INITYPE_STR, np2cfg.fontfile, MAX_PATH}, + {"biospath", INITYPE_STR, np2cfg.biospath, MAX_PATH}, + {"hdrvroot", INITYPE_STR, np2cfg.hdrvroot, MAX_PATH}, + {"hdrv_acc", INITYPE_UINT8, &np2cfg.hdrvacc, 0}, {"SampleHz", INITYPE_UINT16, &np2cfg.samplingrate, 0}, {"Latencys", INITYPE_UINT16, &np2cfg.delayms, 0}, @@ -327,9 +369,11 @@ static const INITBL iniitem[] = { {"Seek_Snd", INITYPE_BOOL, &np2cfg.MOTOR, 0}, {"Seek_Vol", INITYPE_UINT8, &np2cfg.MOTORVOL, 0}, - {"F12_COPY", INITYPE_UINT8, &np2oscfg.F12COPY, 0}, + {"F11_bind", INITYPE_UINT8, &np2oscfg.F11KEY, 0}, + {"F12_bind", INITYPE_UINT8, &np2oscfg.F12KEY, 0}, {"btnRAPID", INITYPE_BOOL, &np2cfg.BTN_RAPID, 0}, {"btn_MODE", INITYPE_BOOL, &np2cfg.BTN_MODE, 0}, + {"Mouse_sw", INITYPE_BOOL, &np2oscfg.MOUSE_SW, 0}, {"MS_RAPID", INITYPE_BOOL, &np2cfg.MOUSERAPID, 0}, {"VRAMwait", INITYPE_BYTEARG, np2cfg.wait, 6}, @@ -352,6 +396,12 @@ static const INITBL iniitem[] = { {"pc9861_j", INITYPE_BYTEARG, np2cfg.pc9861jmp, 6}, {"calendar", INITYPE_BOOL, &np2cfg.calendar, 0}, {"USE144FD", INITYPE_BOOL, &np2cfg.usefd144, 0}, + {"FDDRIVE1", INITYPE_BITMAP, &np2cfg.fddequip, 0}, + {"FDDRIVE2", INITYPE_BITMAP, &np2cfg.fddequip, 1}, + {"FDDRIVE3", INITYPE_BITMAP, &np2cfg.fddequip, 2}, + {"FDDRIVE4", INITYPE_BITMAP, &np2cfg.fddequip, 3}, + {"e_resume", INITYPE_BOOL, &np2oscfg.resume, 0}, + {"jast_snd", INITYPE_BOOL, &np2oscfg.jastsnd, 0}, // ver0.73 {"I286SAVE", INITYPE_BOOL, &np2oscfg.I286SAVE, 0}}; #define INIITEMS (sizeof(iniitem) / sizeof(INITBL)) @@ -361,7 +411,7 @@ void initload(void) { char path[MAX_PATH]; - milstr_ncpy(path, file_getcd(inifile), sizeof(path)); + file_cpyname(path, file_getcd(inifile), sizeof(path)); ini_read(path, ini_title, iniitem, INIITEMS); } @@ -369,7 +419,7 @@ void initsave(void) { char path[MAX_PATH]; - milstr_ncpy(path, file_getcd(inifile), sizeof(path)); + file_cpyname(path, file_getcd(inifile), sizeof(path)); ini_write(path, ini_title, iniitem, INIITEMS); }