]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1600b17.zip
authorToni Wilen <twilen@winuae.net>
Sun, 15 Mar 2009 12:38:46 +0000 (14:38 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:45:16 +0000 (21:45 +0200)
19 files changed:
catweasel.c
cfgfile.c
filesys.asm
filesys.c
filesys_bootrom.c
include/options.h
include/sysdeps.h
inputdevice.c
memory.c
moduleripper.c
od-win32/bsdsock.c
od-win32/posixemu.c
od-win32/registry.c
od-win32/unicode.c
od-win32/win32.c
od-win32/win32.h
od-win32/win32gui.c
od-win32/winuaechangelog.txt
od-win32/writelog.c

index d3ffef0cb8d705a351965b97c3a0aca6d46a8459..7778bd6ba87ba7b07e83fea1061aff1d32c35e02 100644 (file)
@@ -400,9 +400,9 @@ static int catweasel4_configure (void)
 #include <setupapi.h>
 #include <cfgmgr32.h>
 
-#define PCI_CW_MK3 "PCI\\VEN_E159&DEV_0001&SUBSYS_00021212"
-#define PCI_CW_MK4 "PCI\\VEN_E159&DEV_0001&SUBSYS_00035213"
-#define PCI_CW_MK4_BUG "PCI\\VEN_E159&DEV_0001&SUBSYS_00025213"
+#define PCI_CW_MK3 L"PCI\\VEN_E159&DEV_0001&SUBSYS_00021212"
+#define PCI_CW_MK4 L"PCI\\VEN_E159&DEV_0001&SUBSYS_00035213"
+#define PCI_CW_MK4_BUG L"PCI\\VEN_E159&DEV_0001&SUBSYS_00025213"
 
 extern int os_winnt;
 int force_direct_catweasel;
@@ -426,13 +426,13 @@ static int direct_detect(void)
            TCHAR devID[MAX_DEVICE_ID_LEN];
            if(CM_Get_Device_ID_Ex(devInfo.DevInst,devID,MAX_DEVICE_ID_LEN,0,devInfoListDetail.RemoteMachineHandle)!=CR_SUCCESS)
                devID[0] = TEXT('\0');
-           if (!memcmp (devID, PCI_CW_MK3, strlen (PCI_CW_MK3))) {
+           if (!_tcsncmp (devID, PCI_CW_MK3, _tcslen (PCI_CW_MK3))) {
                if (cw > 3)
                    break;
                cw = 3;
            }
-           if (!memcmp (devID, PCI_CW_MK4, strlen (PCI_CW_MK4)) ||
-               !memcmp (devID, PCI_CW_MK4_BUG, strlen (PCI_CW_MK4_BUG)))
+           if (!_tcsncmp (devID, PCI_CW_MK4, _tcslen (PCI_CW_MK4)) ||
+               !_tcsncmp (devID, PCI_CW_MK4_BUG, _tcslen (PCI_CW_MK4_BUG)))
                cw = 4;
            if (cw) {
                SP_DEVINFO_LIST_DETAIL_DATA devInfoListDetail;
@@ -521,7 +521,7 @@ static int detected;
 
 int catweasel_init(void)
 {
-    TCHAR name[32], tmp[1000];
+    TCHAR name[32], tmp[1000], *s;
     int i, len;
     uae_u8 buffer[10000];
     uae_u32 model, base;
@@ -586,12 +586,14 @@ int catweasel_init(void)
 
     if (!cwc.direct_type) {
        if (!DeviceIoControl (handle, CW_GET_VERSION, 0, 0, buffer, sizeof (buffer), &len, 0)) {
-           write_log (L"CW: CW_GET_VERSION failed %d\n", GetLastError());
+           write_log (L"CW: CW_GET_VERSION failed %d\n", GetLastError ());
            goto fail;
        }
-       write_log (L"CW driver version string '%s'\n", buffer);
+       s = au (buffer);
+       write_log (L"CW driver version string '%s'\n", s);
+       xfree (s);
        if (!DeviceIoControl (handle, CW_GET_HWVERSION, 0, 0, buffer, sizeof (buffer), &len, 0)) {
-           write_log (L"CW: CW_GET_HWVERSION failed %d\n", GetLastError());
+           write_log (L"CW: CW_GET_HWVERSION failed %d\n", GetLastError ());
            goto fail;
        }
        write_log (L"CW: v=%d 14=%d 28=%d 56=%d joy=%d dpm=%d sid=%d kb=%d sidfifo=%d\n",
@@ -638,7 +640,7 @@ int catweasel_init(void)
 
     //catweasel_init_controller(&cwc);
     _stprintf (tmp, L"CW: Catweasel MK%d @%p (%s) enabled. %s.",
-       cwc.type, (uae_u8*)cwc.iobase, name, cwc.direct_access ? "DIRECTIO": "API");
+       cwc.type, (uae_u8*)cwc.iobase, name, cwc.direct_access ? L"DIRECTIO": L"API");
     if (cwc.direct_access) {
        if (cwc.can_sid) {
            TCHAR *p = tmp + _tcslen (tmp);
index 17db9b78d80fd630246f6b4f82cfb2e21037f2a6..4d924f49d2b31d2775d3f7a3f9c3a9df211e2e96 100644 (file)
--- a/cfgfile.c
+++ b/cfgfile.c
@@ -231,63 +231,104 @@ static size_t cfg_write (void *b, struct zfile *z)
 {
     size_t v;
     if (unicode_config) {
+       TCHAR lf = 10;
        v = zfile_fwrite (b, _tcslen (b), sizeof (TCHAR), z);
+       zfile_fwrite (&lf, 1, 1, z);
     } else {
+       char lf = 10;
        char *s = ua (b);
        v = zfile_fwrite (s, strlen(s), 1, z);
+       zfile_fwrite (&lf, 1, 1, z);
        xfree (s);
     }
     return v;
 }
 
+static void cfg_dowrite (struct zfile *f, const TCHAR *option, const TCHAR *value, int d, int target)
+{
+    TCHAR tmp[CONFIG_BLEN];
+
+    if (target)
+       _stprintf (tmp, L"%s.%s=%s", TARGET_NAME, option, value);
+    else
+       _stprintf (tmp, L"%s=%s", option, value);
+    if (d && isdefault (tmp))
+       return;
+    cfg_write (tmp, f);
+}
+
+void cfgfile_write_bool (struct zfile *f, TCHAR *option, int b)
+{
+    cfg_dowrite (f, option, b ? L"true" : L"false", 0, 0);
+}
+void cfgfile_dwrite_bool (struct zfile *f, TCHAR *option, int b)
+{
+    cfg_dowrite (f, option, b ? L"true" : L"false", 1, 0);
+}
+void cfgfile_write_str (struct zfile *f, TCHAR *option, const TCHAR *value)
+{
+    cfg_dowrite (f, option, value, 0, 0);
+}
+void cfgfile_dwrite_str (struct zfile *f, TCHAR *option, const TCHAR *value)
+{
+    cfg_dowrite (f, option, value, 1, 0);
+}
+
+void cfgfile_target_write_bool (struct zfile *f, TCHAR *option, int b)
+{
+    cfg_dowrite (f, option, b ? L"true" : L"false", 0, 1);
+}
+void cfgfile_target_dwrite_bool (struct zfile *f, TCHAR *option, int b)
+{
+    cfg_dowrite (f, option, b ? L"true" : L"false", 1, 1);
+}
+void cfgfile_target_write_str (struct zfile *f, TCHAR *option, const TCHAR *value)
+{
+    cfg_dowrite (f, option, value, 0, 1);
+}
+void cfgfile_target_dwrite_str (struct zfile *f, TCHAR *option, const TCHAR *value)
+{
+    cfg_dowrite (f, option, value, 1, 1);
+}
 
-void cfgfile_write (struct zfile *f, TCHAR *format,...)
+void cfgfile_write (struct zfile *f, TCHAR *option, TCHAR *format,...)
 {
     va_list parms;
     TCHAR tmp[CONFIG_BLEN];
 
     va_start (parms, format);
     _vstprintf (tmp, format, parms);
-    cfg_write (tmp, f);
+    cfg_dowrite (f, option, tmp, 0, 0);
     va_end (parms);
 }
-
-void cfgfile_dwrite (struct zfile *f, TCHAR *format,...)
+void cfgfile_dwrite (struct zfile *f, TCHAR *option, TCHAR *format,...)
 {
     va_list parms;
     TCHAR tmp[CONFIG_BLEN];
 
     va_start (parms, format);
     _vstprintf (tmp, format, parms);
-    if (!isdefault (tmp))
-       cfg_write (tmp, f);
+    cfg_dowrite (f, option, tmp, 1, 0);
     va_end (parms);
 }
-
-void cfgfile_target_write (struct zfile *f, TCHAR *format,...)
+void cfgfile_target_write (struct zfile *f, TCHAR *option, TCHAR *format,...)
 {
     va_list parms;
     TCHAR tmp[CONFIG_BLEN];
 
     va_start (parms, format);
-    _vstprintf (tmp + _tcslen (TARGET_NAME) + 1, format, parms);
-    memcpy (tmp, TARGET_NAME, _tcslen (TARGET_NAME) * sizeof (TCHAR));
-    tmp[_tcslen (TARGET_NAME)] = '.';
-    cfg_write (tmp, f);
+    _vstprintf (tmp, format, parms);
+    cfg_dowrite (f, option, tmp, 0, 1);
     va_end (parms);
 }
-
-void cfgfile_target_dwrite (struct zfile *f, TCHAR *format,...)
+void cfgfile_target_dwrite (struct zfile *f, TCHAR *option, TCHAR *format,...)
 {
     va_list parms;
     TCHAR tmp[CONFIG_BLEN];
 
     va_start (parms, format);
-    _vstprintf (tmp + _tcslen (TARGET_NAME) + 1, format, parms);
-    memcpy (tmp, TARGET_NAME, _tcslen (TARGET_NAME) * sizeof (TCHAR));
-    tmp[_tcslen (TARGET_NAME)] = '.';
-    if (!isdefault (tmp))
-       cfg_write (tmp, f);
+    _vstprintf (tmp, format, parms);
+    cfg_dowrite (f, option, tmp, 1, 1);
     va_end (parms);
 }
 
@@ -312,32 +353,30 @@ static void write_filesys_config (struct uae_prefs *p, const TCHAR *unexpanded,
            bp = -129;
        str = cfgfile_subst_path (default_path, unexpanded, uci->rootdir);
        if (!uci->ishdf) {
-           _stprintf (tmp, L"%s,%s:%s:%s,%d\n", uci->readonly ? L"ro" : L"rw",
+           _stprintf (tmp, L"%s,%s:%s:%s,%d", uci->readonly ? L"ro" : L"rw",
                uci->devname ? uci->devname : L"", uci->volname, str, bp);
-           _stprintf (tmp2, L"filesystem2=%s", tmp);
-           zfile_fputs (f, tmp2);
+           cfgfile_write_str (f, L"filesystem2", tmp);
 #if 0
-           _stprintf (tmp2, L"filesystem=%s,%s:%s\n", uci->readonly ? L"ro" : L"rw",
+           _stprintf (tmp2, L"filesystem=%s,%s:%s", uci->readonly ? L"ro" : L"rw",
                uci->volname, str);
            zfile_fputs (f, tmp2);
 #endif
        } else {
-           _stprintf (tmp, L"%s,%s:%s,%d,%d,%d,%d,%d,%s,%s\n",
+           _stprintf (tmp, L"%s,%s:%s,%d,%d,%d,%d,%d,%s,%s",
                     uci->readonly ? L"ro" : L"rw",
                     uci->devname ? uci->devname : L"", str,
                     uci->sectors, uci->surfaces, uci->reserved, uci->blocksize,
                     bp, uci->filesys ? uci->filesys : L"", hdcontrollers[uci->controller]);
-           _stprintf (tmp2, L"hardfile2=%s", tmp);
-           zfile_fputs (f, tmp2);
+           cfgfile_write_str (f, L"hardfile2", tmp);
 #if 0
-           _stprintf (tmp2, L"hardfile=%s,%d,%d,%d,%d,%s\n",
+           _stprintf (tmp2, L"hardfile=%s,%d,%d,%d,%d,%s",
                     uci->readonly ? "ro" : "rw", uci->sectors,
                     uci->surfaces, uci->reserved, uci->blocksize, str);
            zfile_fputs (f, tmp2);
 #endif
        }
-       _stprintf (tmp2, L"uaehf%d=%s,%s", i, uci->ishdf ? L"hdf" : L"dir", tmp);
-       zfile_fputs (f, tmp2);
+       _stprintf (tmp2, L"uaehf%d", i);
+       cfgfile_write (f, tmp2, L"%s,%s", uci->ishdf ? L"hdf" : L"dir", tmp);
        xfree (str);
     }
 }
@@ -358,130 +397,139 @@ static void write_compatibility_cpu (struct zfile *f, struct uae_prefs *p)
        _stprintf (tmp, L"%d", model);
     if (model == 68020 && (p->fpu_model == 68881 || p->fpu_model == 68882))
        _tcscat (tmp, L"/68881");
-    cfgfile_write (f, L"cpu_type=%s\n", tmp);
+    cfgfile_write (f, L"cpu_type", tmp);
 }
 
 void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
 {
     struct strlist *sl;
-    TCHAR *str;
+    TCHAR *str, tmp[MAX_DPATH];
     int i;
 
-    cfgfile_write (f, L"config_description=%s\n", p->description);
-    cfgfile_write (f, L"config_hardware=%s\n", (type & CONFIG_TYPE_HARDWARE) ? L"true" : L"false");
-    cfgfile_write (f, L"config_host=%s\n", (type & CONFIG_TYPE_HOST) ? L"true" : L"false");
+    cfgfile_write_str (f, L"config_description", p->description);
+    cfgfile_write_bool (f, L"config_hardware", type & CONFIG_TYPE_HARDWARE);
+    cfgfile_write_bool (f, L"config_host", type & CONFIG_TYPE_HOST);
     if (p->info[0])
-       cfgfile_write (f, L"config_info=%s\n", p->info);
-    cfgfile_write (f, L"config_version=%d.%d.%d\n", UAEMAJOR, UAEMINOR, UAESUBREV);
-    cfgfile_write (f, L"config_hardware_path=%s\n", p->config_hardware_path);
-    cfgfile_write (f, L"config_host_path=%s\n", p->config_host_path);
+       cfgfile_write (f, L"config_info", p->info);
+    cfgfile_write (f, L"config_version", L"%d.%d.%d", UAEMAJOR, UAEMINOR, UAESUBREV);
+    cfgfile_write_str (f, L"config_hardware_path", p->config_hardware_path);
+    cfgfile_write_str (f, L"config_host_path", p->config_host_path);
 
     for (sl = p->all_lines; sl; sl = sl->next) {
        if (sl->unknown)
-           cfgfile_write (f, L"%s=%s\n", sl->option, sl->value);
+           cfgfile_write_str (f, sl->option, sl->value);
     }
 
-    cfgfile_write (f, L"%s.rom_path=%s\n", TARGET_NAME, p->path_rom);
-    cfgfile_write (f, L"%s.floppy_path=%s\n", TARGET_NAME, p->path_floppy);
-    cfgfile_write (f, L"%s.hardfile_path=%s\n", TARGET_NAME, p->path_hardfile);
+    _stprintf (tmp, L"%s.rom_path", TARGET_NAME);
+    cfgfile_write_str (f, tmp, p->path_rom);
+    _stprintf (tmp, L"%s.floppy_path", TARGET_NAME);
+    cfgfile_write_str (f, tmp, p->path_floppy);
+    _stprintf (tmp, L"%s.hardfile_path", TARGET_NAME);
+    cfgfile_write_str (f, tmp, p->path_hardfile);
 
-    cfgfile_write (f, L"; host-specific\n");
+    cfg_write (L"; host-specific", f);
 
     target_save_options (f, p);
 
-    cfgfile_write (f, L"; common\n");
+    cfg_write (L"; common", f);
 
-    cfgfile_write (f, L"use_gui=%s\n", guimode1[p->start_gui]);
-    cfgfile_write (f, L"use_debugger=%s\n", p->start_debugger ? L"true" : L"false");
+    cfgfile_write_str (f, L"use_gui", guimode1[p->start_gui]);
+    cfgfile_write_bool (f, L"use_debugger", p->start_debugger);
     str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->romfile);
-    cfgfile_write (f, L"kickstart_rom_file=%s\n", str);
-    free (str);
+    cfgfile_write_str (f, L"kickstart_rom_file", str);
+    xfree (str);
     if (p->romident[0])
-       cfgfile_dwrite (f, L"kickstart_rom=%s\n", p->romident);
+       cfgfile_dwrite_str (f, L"kickstart_rom", p->romident);
     str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->romextfile);
-    cfgfile_write (f, L"kickstart_ext_rom_file=%s\n", str);
-    free (str);
+    cfgfile_write_str (f, L"kickstart_ext_rom_file", str);
+    xfree (str);
     if (p->romextident[0])
-       cfgfile_write (f, L"kickstart_ext_rom=%s\n", p->romextident);
+       cfgfile_write_str (f, L"kickstart_ext_rom=", p->romextident);
     str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->flashfile);
-    cfgfile_write (f, L"flash_file=%s\n", str);
-    free (str);
+    cfgfile_write_str (f, L"flash_file", str);
+    xfree (str);
     str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->cartfile);
-    cfgfile_write (f, L"cart_file=%s\n", str);
-    free (str);
+    cfgfile_write_str (f, L"cart_file", str);
+    xfree (str);
     if (p->cartident[0])
-       cfgfile_write (f, L"cart=%s\n", p->cartident);
-    //cfgfile_write (f, L"cart_internal=%s\n", cartsmode[p->cart_internal]);
+       cfgfile_write_str (f, L"cart", p->cartident);
     if (p->amaxromfile[0]) {
        str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->amaxromfile);
-       cfgfile_write (f, L"amax_rom_file=%s\n", str);
-       free (str);
+       cfgfile_write_str (f, L"amax_rom_file", str);
+       xfree (str);
     }
 
-    cfgfile_write (f, L"kickshifter=%s\n", p->kickshifter ? L"true" : L"false");
+    cfgfile_write_bool (f, L"kickshifter", p->kickshifter);
 
     p->nr_floppies = 4;
     for (i = 0; i < 4; i++) {
        str = cfgfile_subst_path (p->path_floppy, UNEXPANDED, p->df[i]);
-       cfgfile_write (f, L"floppy%d=%s\n", i, str);
-       free (str);
-       cfgfile_dwrite (f, L"floppy%dtype=%d\n", i, p->dfxtype[i]);
-       cfgfile_dwrite (f, L"floppy%dsound=%d\n", i, p->dfxclick[i]);
-       if (p->dfxclick[i] < 0 && p->dfxclickexternal[i][0])
-           cfgfile_dwrite (f, L"floppy%dsoundext=%s\n", i, p->dfxclickexternal[i]);
+       _stprintf (tmp, L"floppy%d", i);
+       cfgfile_write_str (f, tmp, str);
+       xfree (str);
+       _stprintf (tmp, L"floppy%dtype", i);
+       cfgfile_dwrite (f, tmp, L"%d", p->dfxtype[i]);
+       _stprintf (tmp, L"floppy%dsound", i);
+       cfgfile_dwrite (f, tmp, L"%d", p->dfxclick[i]);
+       if (p->dfxclick[i] < 0 && p->dfxclickexternal[i][0]) {
+           _stprintf (tmp, L"floppy%dsoundext", i);
+           cfgfile_dwrite (f, tmp, p->dfxclickexternal[i]);
+       }
        if (p->dfxtype[i] < 0 && p->nr_floppies > i)
            p->nr_floppies = i;
     }
     for (i = 0; i < MAX_SPARE_DRIVES; i++) {
-       if (p->dfxlist[i][0])
-           cfgfile_dwrite (f, L"diskimage%d=%s\n", i, p->dfxlist[i]);
-    }
-
-    cfgfile_write (f, L"nr_floppies=%d\n", p->nr_floppies);
-    cfgfile_write (f, L"floppy_speed=%d\n", p->floppy_speed);
-    cfgfile_write (f, L"floppy_volume=%d\n", p->dfxclickvolume);
-    cfgfile_write (f, L"parallel_on_demand=%s\n", p->parallel_demand ? L"true" : L"false");
-    cfgfile_write (f, L"serial_on_demand=%s\n", p->serial_demand ? L"true" : L"false");
-    cfgfile_write (f, L"serial_hardware_ctsrts=%s\n", p->serial_hwctsrts ? L"true" : L"false");
-    cfgfile_write (f, L"serial_direct=%s\n", p->serial_direct ? L"true" : L"false");
-    cfgfile_write (f, L"scsi=%s\n", scsimode[p->scsi]);
-    cfgfile_write (f, L"uaeserial=%s\n", p->uaeserial ? L"true" : L"false");
-    cfgfile_write (f, L"sana2=%s\n", p->sana2 ? L"true" : L"false");
-
-    cfgfile_write (f, L"sound_output=%s\n", soundmode1[p->produce_sound]);
-    cfgfile_write (f, L"sound_channels=%s\n", stereomode[p->sound_stereo]);
-    cfgfile_write (f, L"sound_stereo_separation=%d\n", p->sound_stereo_separation);
-    cfgfile_write (f, L"sound_stereo_mixing_delay=%d\n", p->sound_mixed_stereo_delay >= 0 ? p->sound_mixed_stereo_delay : 0);
-    cfgfile_write (f, L"sound_max_buff=%d\n", p->sound_maxbsiz);
-    cfgfile_write (f, L"sound_frequency=%d\n", p->sound_freq);
-    cfgfile_write (f, L"sound_latency=%d\n", p->sound_latency);
-    cfgfile_write (f, L"sound_interpol=%s\n", interpolmode[p->sound_interpol]);
-    cfgfile_write (f, L"sound_filter=%s\n", soundfiltermode1[p->sound_filter]);
-    cfgfile_write (f, L"sound_filter_type=%s\n", soundfiltermode2[p->sound_filter_type]);
-    cfgfile_write (f, L"sound_volume=%d\n", p->sound_volume);
-    cfgfile_write (f, L"sound_auto=%s\n", p->sound_auto ? L"yes" : L"no");
-    cfgfile_write (f, L"sound_stereo_swap_paula=%s\n", p->sound_stereo_swap_paula ? L"yes" : L"no");
-    cfgfile_write (f, L"sound_stereo_swap_ahi=%s\n", p->sound_stereo_swap_ahi ? L"yes" : L"no");
-
-    cfgfile_write (f, L"comp_trustbyte=%s\n", compmode[p->comptrustbyte]);
-    cfgfile_write (f, L"comp_trustword=%s\n", compmode[p->comptrustword]);
-    cfgfile_write (f, L"comp_trustlong=%s\n", compmode[p->comptrustlong]);
-    cfgfile_write (f, L"comp_trustnaddr=%s\n", compmode[p->comptrustnaddr]);
-    cfgfile_write (f, L"comp_nf=%s\n", p->compnf ? L"true" : L"false");
-    cfgfile_write (f, L"comp_constjump=%s\n", p->comp_constjump ? L"true" : L"false");
-    cfgfile_write (f, L"comp_oldsegv=%s\n", p->comp_oldsegv ? L"true" : L"false");
-
-    cfgfile_write (f, L"comp_flushmode=%s\n", flushmode[p->comp_hardflush]);
-    cfgfile_write (f, L"compfpu=%s\n", p->compfpu ? L"true" : L"false");
-    cfgfile_write (f, L"fpu_strict=%s\n", p->fpu_strict ? L"true" : L"false");
-    cfgfile_write (f, L"comp_midopt=%s\n", p->comp_midopt ? L"true" : L"false");
-    cfgfile_write (f, L"comp_lowopt=%s\n", p->comp_lowopt ? L"true" : L"false");
-    cfgfile_write (f, L"avoid_cmov=%s\n", p->avoid_cmov ? L"true" : L"false" );
-    cfgfile_write (f, L"avoid_dga=%s\n", p->avoid_dga ? L"true" : L"false" );
-    cfgfile_write (f, L"avoid_vid=%s\n", p->avoid_vid ? L"true" : L"false" );
-    cfgfile_write (f, L"cachesize=%d\n", p->cachesize);
+       if (p->dfxlist[i][0]) {
+           _stprintf (tmp, L"diskimage%d", i);
+           cfgfile_dwrite_str (f, tmp, p->dfxlist[i]);
+       }
+    }
+
+    cfgfile_write (f, L"nr_floppies", L"%d", p->nr_floppies);
+    cfgfile_write (f, L"floppy_speed", L"%d", p->floppy_speed);
+    cfgfile_write (f, L"floppy_volume", L"%d", p->dfxclickvolume);
+    cfgfile_write_bool (f, L"parallel_on_demand", p->parallel_demand);
+    cfgfile_write_bool (f, L"serial_on_demand", p->serial_demand);
+    cfgfile_write_bool (f, L"serial_hardware_ctsrts", p->serial_hwctsrts);
+    cfgfile_write_bool (f, L"serial_direct", p->serial_direct);
+    cfgfile_write_str (f, L"scsi", scsimode[p->scsi]);
+    cfgfile_write_bool (f, L"uaeserial", p->uaeserial);
+    cfgfile_write_bool (f, L"sana2", p->sana2);
+
+    cfgfile_write_str (f, L"sound_output", soundmode1[p->produce_sound]);
+    cfgfile_write_str (f, L"sound_channels", stereomode[p->sound_stereo]);
+    cfgfile_write (f, L"sound_stereo_separation", L"%d", p->sound_stereo_separation);
+    cfgfile_write (f, L"sound_stereo_mixing_delay", L"%d", p->sound_mixed_stereo_delay >= 0 ? p->sound_mixed_stereo_delay : 0);
+    cfgfile_write (f, L"sound_max_buff", L"%d", p->sound_maxbsiz);
+    cfgfile_write (f, L"sound_frequency", L"%d", p->sound_freq);
+    cfgfile_write (f, L"sound_latency", L"%d", p->sound_latency);
+    cfgfile_write_str (f, L"sound_interpol", interpolmode[p->sound_interpol]);
+    cfgfile_write_str (f, L"sound_filter", soundfiltermode1[p->sound_filter]);
+    cfgfile_write_str (f, L"sound_filter_type", soundfiltermode2[p->sound_filter_type]);
+    cfgfile_write (f, L"sound_volume", L"%d", p->sound_volume);
+    cfgfile_write_bool (f, L"sound_auto", p->sound_auto);
+    cfgfile_write_bool (f, L"sound_stereo_swap_paula", p->sound_stereo_swap_paula);
+    cfgfile_write_bool (f, L"sound_stereo_swap_ahi", p->sound_stereo_swap_ahi);
+
+    cfgfile_write_str (f, L"comp_trustbyte", compmode[p->comptrustbyte]);
+    cfgfile_write_str (f, L"comp_trustword", compmode[p->comptrustword]);
+    cfgfile_write_str (f, L"comp_trustlong", compmode[p->comptrustlong]);
+    cfgfile_write_str (f, L"comp_trustnaddr", compmode[p->comptrustnaddr]);
+    cfgfile_write_bool (f, L"comp_nf", p->compnf);
+    cfgfile_write_bool (f, L"comp_constjump", p->comp_constjump);
+    cfgfile_write_bool (f, L"comp_oldsegv", p->comp_oldsegv);
+
+    cfgfile_write_str (f, L"comp_flushmode", flushmode[p->comp_hardflush]);
+    cfgfile_write_bool (f, L"compfpu", p->compfpu);
+    cfgfile_write_bool (f, L"fpu_strict", p->fpu_strict);
+    cfgfile_write_bool (f, L"comp_midopt", p->comp_midopt);
+    cfgfile_write_bool (f, L"comp_lowopt", p->comp_lowopt);
+    cfgfile_write_bool (f, L"avoid_cmov", p->avoid_cmov);
+    cfgfile_write_bool (f, L"avoid_dga", p->avoid_dga);
+    cfgfile_write_bool (f, L"avoid_vid", p->avoid_vid);
+    cfgfile_write (f, L"cachesize", L"%d", p->cachesize);
     if (p->override_dga_address)
-       cfgfile_write (f, L"override_dga_address=0x%08x\n", p->override_dga_address);
+       cfgfile_write (f, L"override_dga_address", L"0x%08x", p->override_dga_address);
 
     for (i = 0; i < 2; i++) {
        struct jport *jp = &p->jports[i];
@@ -498,57 +546,57 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
            if (v - JSEM_MICE > 0)
                _stprintf (tmp2, L"mouse%d", v - JSEM_MICE);
        }
-       _stprintf (tmp1, L"joyport%d=%s\n", i, tmp2);
-       cfgfile_write (f, tmp1);
+       _stprintf (tmp1, L"joyport%d", i);
+       cfgfile_write (f, tmp1, tmp2);
        if (jp->name) {
-           _stprintf (tmp1, L"joyportfriendlyname%d=%s\n", i, jp->name);
-           cfgfile_write (f, tmp1);
+           _stprintf (tmp1, L"joyportfriendlyname%d", i);
+           cfgfile_write (f, tmp1, jp->name);
        }
        if (jp->configname) {
-           _stprintf (tmp1, L"joyportname%d=%s\n", i, jp->configname);
-           cfgfile_write (f, tmp1);
+           _stprintf (tmp1, L"joyportname%d", i);
+           cfgfile_write (f, tmp1, jp->configname);
        }
     }
 
-    cfgfile_write (f, L"bsdsocket_emu=%s\n", p->socket_emu ? L"true" : L"false");
-
-    cfgfile_write (f, L"synchronize_clock=%s\n", p->tod_hack ? L"yes" : L"no");
-    cfgfile_write (f, L"maprom=0x%x\n", p->maprom);
-    cfgfile_write (f, L"parallel_postscript_emulation=%s\n", p->parallel_postscript_emulation ? L"yes" : L"no");
-    cfgfile_write (f, L"parallel_postscript_detection=%s\n", p->parallel_postscript_detection ? L"yes" : L"no");
-    cfgfile_write (f, L"ghostscript_parameters=%s\n", p->ghostscript_parameters);
-    cfgfile_write (f, L"parallel_autoflush=%d\n", p->parallel_autoflush_time);
-    cfgfile_dwrite (f, L"uae_hide=%d\n", p->uae_hide);
-    cfgfile_dwrite (f, L"magic_mouse=%s\n", p->input_magic_mouse ? L"true" : L"false");
-    cfgfile_dwrite (f, L"magic_mousecursor=%s\n", magiccursors[p->input_magic_mouse_cursor]);
-    cfgfile_dwrite (f, L"absolute_mouse=%s\n", abspointers[p->input_tablet]);
-
-    cfgfile_write (f, L"gfx_display=%d\n", p->gfx_display);
-    cfgfile_write (f, L"gfx_display_name=%s\n", p->gfx_display_name);
-    cfgfile_write (f, L"gfx_framerate=%d\n", p->gfx_framerate);
-    cfgfile_write (f, L"gfx_width=%d\n", p->gfx_size_win.width); /* compatibility with old versions */
-    cfgfile_write (f, L"gfx_height=%d\n", p->gfx_size_win.height); /* compatibility with old versions */
-    cfgfile_write (f, L"gfx_top_windowed=%d\n", p->gfx_size_win.x);
-    cfgfile_write (f, L"gfx_left_windowed=%d\n", p->gfx_size_win.y);
-    cfgfile_write (f, L"gfx_width_windowed=%d\n", p->gfx_size_win.width);
-    cfgfile_write (f, L"gfx_height_windowed=%d\n", p->gfx_size_win.height);
-    cfgfile_write (f, L"gfx_width_fullscreen=%d\n", p->gfx_size_fs.width);
-    cfgfile_write (f, L"gfx_height_fullscreen=%d\n", p->gfx_size_fs.height);
-    cfgfile_write (f, L"gfx_refreshrate=%d\n", p->gfx_refreshrate);
-    cfgfile_write (f, L"gfx_autoresolution=%d\n", p->gfx_autoresolution);
-    cfgfile_write (f, L"gfx_vsync=%s\n", p->gfx_avsync ? L"true" : L"false");
-    cfgfile_write (f, L"gfx_vsync_picasso=%s\n", p->gfx_pvsync ? L"true" : L"false");
-    cfgfile_write (f, L"gfx_lores=%s\n", p->gfx_resolution == 0 ? L"true" : L"false");
-    cfgfile_write (f, L"gfx_resolution=%s\n", lorestype1[p->gfx_resolution]);
-    cfgfile_write (f, L"gfx_lores_mode=%s\n", loresmode[p->gfx_lores_mode]);
-    cfgfile_write (f, L"gfx_flickerfixer=%s\n", p->gfx_scandoubler ? L"true" : L"false");
-    cfgfile_write (f, L"gfx_linemode=%s\n", linemode1[p->gfx_linedbl]);
-    cfgfile_write (f, L"gfx_fullscreen_amiga=%s\n", fullmodes[p->gfx_afullscreen]);
-    cfgfile_write (f, L"gfx_fullscreen_picasso=%s\n", fullmodes[p->gfx_pfullscreen]);
-    cfgfile_write (f, L"gfx_center_horizontal=%s\n", centermode1[p->gfx_xcenter]);
-    cfgfile_write (f, L"gfx_center_vertical=%s\n", centermode1[p->gfx_ycenter]);
-    cfgfile_write (f, L"gfx_colour_mode=%s\n", colormode1[p->color_mode]);
-    cfgfile_write (f, L"gfx_blacker_than_black=%s\n", p->gfx_blackerthanblack ? L"true" : L"false");
+    cfgfile_write_bool (f, L"bsdsocket_emu", p->socket_emu);
+
+    cfgfile_write_bool (f, L"synchronize_clock", p->tod_hack);
+    cfgfile_write (f, L"maprom", L"0x%x", p->maprom);
+    cfgfile_write_bool (f, L"parallel_postscript_emulation", p->parallel_postscript_emulation);
+    cfgfile_write_bool (f, L"parallel_postscript_detection", p->parallel_postscript_detection);
+    cfgfile_write_str (f, L"ghostscript_parameters", p->ghostscript_parameters);
+    cfgfile_write (f, L"parallel_autoflush", L"%d", p->parallel_autoflush_time);
+    cfgfile_dwrite (f, L"uae_hide", L"%d", p->uae_hide);
+    cfgfile_dwrite_bool (f, L"magic_mouse", p->input_magic_mouse);
+    cfgfile_dwrite_str (f, L"magic_mousecursor", magiccursors[p->input_magic_mouse_cursor]);
+    cfgfile_dwrite_str (f, L"absolute_mouse", abspointers[p->input_tablet]);
+
+    cfgfile_write (f, L"gfx_display", L"%d", p->gfx_display);
+    cfgfile_write_str (f, L"gfx_display_name", p->gfx_display_name);
+    cfgfile_write (f, L"gfx_framerate", L"%d", p->gfx_framerate);
+    cfgfile_write (f, L"gfx_width", L"%d", p->gfx_size_win.width); /* compatibility with old versions */
+    cfgfile_write (f, L"gfx_height", L"%d", p->gfx_size_win.height); /* compatibility with old versions */
+    cfgfile_write (f, L"gfx_top_windowed", L"%d", p->gfx_size_win.x);
+    cfgfile_write (f, L"gfx_left_windowed", L"%d", p->gfx_size_win.y);
+    cfgfile_write (f, L"gfx_width_windowed", L"%d", p->gfx_size_win.width);
+    cfgfile_write (f, L"gfx_height_windowed", L"%d", p->gfx_size_win.height);
+    cfgfile_write (f, L"gfx_width_fullscreen", L"%d", p->gfx_size_fs.width);
+    cfgfile_write (f, L"gfx_height_fullscreen", L"%d", p->gfx_size_fs.height);
+    cfgfile_write (f, L"gfx_refreshrate", L"%d", p->gfx_refreshrate);
+    cfgfile_write (f, L"gfx_autoresolution", L"%d", p->gfx_autoresolution);
+    cfgfile_write_bool (f, L"gfx_vsync", p->gfx_avsync);
+    cfgfile_write_bool (f, L"gfx_vsync_picasso", p->gfx_pvsync);
+    cfgfile_write_bool (f, L"gfx_lores", p->gfx_resolution == 0);
+    cfgfile_write_str (f, L"gfx_resolution", lorestype1[p->gfx_resolution]);
+    cfgfile_write_str (f, L"gfx_lores_mode", loresmode[p->gfx_lores_mode]);
+    cfgfile_write_bool (f, L"gfx_flickerfixer", p->gfx_scandoubler);
+    cfgfile_write_str (f, L"gfx_linemode", linemode1[p->gfx_linedbl]);
+    cfgfile_write_str (f, L"gfx_fullscreen_amiga", fullmodes[p->gfx_afullscreen]);
+    cfgfile_write_str (f, L"gfx_fullscreen_picasso", fullmodes[p->gfx_pfullscreen]);
+    cfgfile_write_str (f, L"gfx_center_horizontal", centermode1[p->gfx_xcenter]);
+    cfgfile_write_str (f, L"gfx_center_vertical", centermode1[p->gfx_ycenter]);
+    cfgfile_write_str (f, L"gfx_colour_mode", colormode1[p->color_mode]);
+    cfgfile_write_bool (f, L"gfx_blacker_than_black", p->gfx_blackerthanblack);
 
 #ifdef GFXFILTER
     if (p->gfx_filter > 0) {
@@ -558,12 +606,12 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
            uf = &uaefilters[i];
            if (uf->type == p->gfx_filter) {
                if (p->gfx_filtershader[0])
-                   cfgfile_dwrite (f, L"gfx_filter=%s:%s\n", uf->cfgname, p->gfx_filtershader);
+                   cfgfile_dwrite (f, L"gfx_filter", L"%s:%s", uf->cfgname, p->gfx_filtershader);
                else
-                   cfgfile_dwrite (f, L"gfx_filter=%s\n", uf->cfgname);
+                   cfgfile_dwrite_str (f, L"gfx_filter", uf->cfgname);
                if (uf->type == p->gfx_filter) {
                    if (uf->x[0]) {
-                       cfgfile_dwrite (f, L"gfx_filter_mode=%s\n", filtermode1[p->gfx_filter_filtermode]);
+                       cfgfile_dwrite_str (f, L"gfx_filter_mode", filtermode1[p->gfx_filter_filtermode]);
                    } else {
                        int mt[4], i = 0;
                        if (uf->x[1])
@@ -574,122 +622,122 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
                            mt[i++] = 3;
                        if (uf->x[4])
                            mt[i++] = 4;
-                       cfgfile_dwrite (f, L"gfx_filter_mode=%dx\n", mt[p->gfx_filter_filtermode]);
+                       cfgfile_dwrite (f, L"gfx_filter_mode", L"%dx", mt[p->gfx_filter_filtermode]);
                    }
                }
            }
            i++;
        }
     } else {
-       cfgfile_dwrite (f, L"gfx_filter=no\n");
-    }
-
-    cfgfile_dwrite (f, L"gfx_filter_vert_zoom=%d\n", p->gfx_filter_vert_zoom);
-    cfgfile_dwrite (f, L"gfx_filter_horiz_zoom=%d\n", p->gfx_filter_horiz_zoom);
-    cfgfile_dwrite (f, L"gfx_filter_vert_zoom_mult=%d\n", p->gfx_filter_vert_zoom_mult);
-    cfgfile_dwrite (f, L"gfx_filter_horiz_zoom_mult=%d\n", p->gfx_filter_horiz_zoom_mult);
-    cfgfile_dwrite (f, L"gfx_filter_vert_offset=%d\n", p->gfx_filter_vert_offset);
-    cfgfile_dwrite (f, L"gfx_filter_horiz_offset=%d\n", p->gfx_filter_horiz_offset);
-    cfgfile_dwrite (f, L"gfx_filter_scanlines=%d\n", p->gfx_filter_scanlines);
-    cfgfile_dwrite (f, L"gfx_filter_scanlinelevel=%d\n", p->gfx_filter_scanlinelevel);
-    cfgfile_dwrite (f, L"gfx_filter_scanlineratio=%d\n", p->gfx_filter_scanlineratio);
-    cfgfile_dwrite (f, L"gfx_filter_luminance=%d\n", p->gfx_filter_luminance);
-    cfgfile_dwrite (f, L"gfx_filter_contrast=%d\n", p->gfx_filter_contrast);
-    cfgfile_dwrite (f, L"gfx_filter_saturation=%d\n", p->gfx_filter_saturation);
-    cfgfile_dwrite (f, L"gfx_filter_gamma=%d\n", p->gfx_filter_gamma);
-    cfgfile_dwrite (f, L"gfx_filter_blur=%d\n", p->gfx_filter_blur);
-    cfgfile_dwrite (f, L"gfx_filter_noise=%d\n", p->gfx_filter_noise);
-    cfgfile_dwrite (f, L"gfx_filter_keep_aspect=%s\n", p->gfx_filter_keep_aspect ? L"true" : L"false");
-    cfgfile_dwrite (f, L"gfx_filter_autoscale=%s\n", autoscale[p->gfx_filter_autoscale]);
-    cfgfile_dwrite (f, L"gfx_filter_aspect_ratio=%d:%d\n",
+       cfgfile_dwrite (f, L"gfx_filter", L"no");
+    }
+
+    cfgfile_dwrite (f, L"gfx_filter_vert_zoom", L"%d", p->gfx_filter_vert_zoom);
+    cfgfile_dwrite (f, L"gfx_filter_horiz_zoom", L"%d", p->gfx_filter_horiz_zoom);
+    cfgfile_dwrite (f, L"gfx_filter_vert_zoom_mult", L"%d", p->gfx_filter_vert_zoom_mult);
+    cfgfile_dwrite (f, L"gfx_filter_horiz_zoom_mult", L"%d", p->gfx_filter_horiz_zoom_mult);
+    cfgfile_dwrite (f, L"gfx_filter_vert_offset", L"%d", p->gfx_filter_vert_offset);
+    cfgfile_dwrite (f, L"gfx_filter_horiz_offset", L"%d", p->gfx_filter_horiz_offset);
+    cfgfile_dwrite (f, L"gfx_filter_scanlines", L"%d", p->gfx_filter_scanlines);
+    cfgfile_dwrite (f, L"gfx_filter_scanlinelevel", L"%d", p->gfx_filter_scanlinelevel);
+    cfgfile_dwrite (f, L"gfx_filter_scanlineratio", L"%d", p->gfx_filter_scanlineratio);
+    cfgfile_dwrite (f, L"gfx_filter_luminance", L"%d", p->gfx_filter_luminance);
+    cfgfile_dwrite (f, L"gfx_filter_contrast", L"%d", p->gfx_filter_contrast);
+    cfgfile_dwrite (f, L"gfx_filter_saturation", L"%d", p->gfx_filter_saturation);
+    cfgfile_dwrite (f, L"gfx_filter_gamma", L"%d", p->gfx_filter_gamma);
+    cfgfile_dwrite (f, L"gfx_filter_blur", L"%d", p->gfx_filter_blur);
+    cfgfile_dwrite (f, L"gfx_filter_noise", L"%d", p->gfx_filter_noise);
+    cfgfile_dwrite_bool (f, L"gfx_filter_keep_aspect", p->gfx_filter_keep_aspect);
+    cfgfile_dwrite_str (f, L"gfx_filter_autoscale", autoscale[p->gfx_filter_autoscale]);
+    cfgfile_dwrite (f, L"gfx_filter_aspect_ratio", L"%d:%d",
        p->gfx_filter_aspect >= 0 ? (p->gfx_filter_aspect >> 8) : -1,
        p->gfx_filter_aspect >= 0 ? (p->gfx_filter_aspect & 0xff) : -1);
-    cfgfile_dwrite (f, L"gfx_luminance=%d\n", p->gfx_luminance);
-    cfgfile_dwrite (f, L"gfx_contrast=%d\n", p->gfx_contrast);
-    cfgfile_dwrite (f, L"gfx_gamma=%d\n", p->gfx_gamma);
+    cfgfile_dwrite (f, L"gfx_luminance", L"%d", p->gfx_luminance);
+    cfgfile_dwrite (f, L"gfx_contrast", L"%d", p->gfx_contrast);
+    cfgfile_dwrite (f, L"gfx_gamma", L"%d", p->gfx_gamma);
 #endif
 
-    cfgfile_write (f, L"immediate_blits=%s\n", p->immediate_blits ? L"true" : L"false");
-    cfgfile_write (f, L"ntsc=%s\n", p->ntscmode ? L"true" : L"false");
-    cfgfile_write (f, L"genlock=%s\n", p->genlock ? L"true" : L"false");
-    cfgfile_dwrite (f, L"show_leds=%s\n", (p->leds_on_screen & STATUSLINE_CHIPSET) ? L"true" : L"false");
-    cfgfile_dwrite (f, L"keyboard_leds=numlock:%s,capslock:%s,scrolllock:%s\n",
+    cfgfile_write_bool (f, L"immediate_blits", p->immediate_blits);
+    cfgfile_write_bool (f, L"ntsc", p->ntscmode);
+    cfgfile_write_bool (f, L"genlock", p->genlock);
+    cfgfile_dwrite_bool (f, L"show_leds", p->leds_on_screen & STATUSLINE_CHIPSET);
+    cfgfile_dwrite (f, L"keyboard_leds", L"numlock:%s,capslock:%s,scrolllock:%s",
        kbleds[p->keyboard_leds[0]], kbleds[p->keyboard_leds[1]], kbleds[p->keyboard_leds[2]]);
     if (p->chipset_mask & CSMASK_AGA)
-       cfgfile_dwrite (f, L"chipset=aga\n");
+       cfgfile_dwrite (f, L"chipset",L"aga");
     else if ((p->chipset_mask & CSMASK_ECS_AGNUS) && (p->chipset_mask & CSMASK_ECS_DENISE))
-       cfgfile_dwrite (f, L"chipset=ecs\n");
+       cfgfile_dwrite (f, L"chipset",L"ecs");
     else if (p->chipset_mask & CSMASK_ECS_AGNUS)
-       cfgfile_dwrite (f, L"chipset=ecs_agnus\n");
+       cfgfile_dwrite (f, L"chipset",L"ecs_agnus");
     else if (p->chipset_mask & CSMASK_ECS_DENISE)
-       cfgfile_dwrite (f, L"chipset=ecs_denise\n");
+       cfgfile_dwrite (f, L"chipset",L"ecs_denise");
     else
-       cfgfile_dwrite (f, L"chipset=ocs\n");
-    cfgfile_write (f, L"chipset_refreshrate=%d\n", p->chipset_refreshrate);
-    cfgfile_write (f, L"collision_level=%s\n", collmode[p->collision_level]);
-
-    cfgfile_write (f, L"chipset_compatible=%s\n", cscompa[p->cs_compatible]);
-    cfgfile_dwrite (f, L"ciaatod=%s\n", ciaatodmode[p->cs_ciaatod]);
-    cfgfile_dwrite (f, L"rtc=%s\n", rtctype[p->cs_rtc]);
-    //cfgfile_dwrite (f, L"chipset_rtc_adjust=%d\n", p->cs_rtc_adjust);
-    cfgfile_dwrite (f, L"ksmirror_e0=%s\n", p->cs_ksmirror_e0 ? L"true" : L"false");
-    cfgfile_dwrite (f, L"ksmirror_a8=%s\n", p->cs_ksmirror_a8 ? L"true" : L"false");
-    cfgfile_dwrite (f, L"cd32cd=%s\n", p->cs_cd32cd ? L"true" : L"false");
-    cfgfile_dwrite (f, L"cd32c2p=%s\n", p->cs_cd32c2p ? L"true" : L"false");
-    cfgfile_dwrite (f, L"cd32nvram=%s\n", p->cs_cd32nvram ? L"true" : L"false");
-    cfgfile_dwrite (f, L"cdtvcd=%s\n", p->cs_cdtvcd ? L"true" : L"false");
-    cfgfile_dwrite (f, L"cdtvram=%s\n", p->cs_cdtvram ? L"true" : L"false");
-    cfgfile_dwrite (f, L"cdtvramcard=%d\n", p->cs_cdtvcard);
-    cfgfile_dwrite (f, L"ide=%s\n", p->cs_ide == 1 ? L"a600/a1200" : (p->cs_ide == 2 ? L"a4000" : L"none"));
-    cfgfile_dwrite (f, L"a1000ram=%s\n", p->cs_a1000ram ? L"true" : L"false");
-    cfgfile_dwrite (f, L"fatgary=%d\n", p->cs_fatgaryrev);
-    cfgfile_dwrite (f, L"ramsey=%d\n", p->cs_ramseyrev);
-    cfgfile_dwrite (f, L"pcmcia=%s\n", p->cs_pcmcia ? L"true" : L"false");
-    cfgfile_dwrite (f, L"scsi_cdtv=%s\n", p->cs_cdtvscsi ? L"true" : L"false");
-    cfgfile_dwrite (f, L"scsi_a2091=%s\n", p->cs_a2091 ? L"true" : L"false");
-    cfgfile_dwrite (f, L"scsi_a4091=%s\n", p->cs_a4091 ? L"true" : L"false");
-    cfgfile_dwrite (f, L"scsi_a3000=%s\n", p->cs_mbdmac == 1 ? L"true" : L"false");
-    cfgfile_dwrite (f, L"scsi_a4000t=%s\n", p->cs_mbdmac == 2 ? L"true" : L"false");
-    cfgfile_dwrite (f, L"bogomem_fast=%s\n", p->cs_slowmemisfast ? L"true" : L"false");
-    cfgfile_dwrite (f, L"resetwarning=%s\n", p->cs_resetwarning ? L"true" : L"false");
-    cfgfile_dwrite (f, L"denise_noehb=%s\n", p->cs_denisenoehb ? L"true" : L"false");
-    cfgfile_dwrite (f, L"agnus_bltbusybug=%s\n", p->cs_agnusbltbusybug ? L"true" : L"false");
-
-    cfgfile_write (f, L"fastmem_size=%d\n", p->fastmem_size / 0x100000);
-    cfgfile_write (f, L"a3000mem_size=%d\n", p->mbresmem_low_size / 0x100000);
-    cfgfile_write (f, L"mbresmem_size=%d\n", p->mbresmem_high_size / 0x100000);
-    cfgfile_write (f, L"z3mem_size=%d\n", p->z3fastmem_size / 0x100000);
-    cfgfile_write (f, L"z3mem2_size=%d\n", p->z3fastmem2_size / 0x100000);
-    cfgfile_write (f, L"z3mem_start=0x%x\n", p->z3fastmem_start);
-    cfgfile_write (f, L"bogomem_size=%d\n", p->bogomem_size / 0x40000);
-    cfgfile_write (f, L"gfxcard_size=%d\n", p->gfxmem_size / 0x100000);
-    cfgfile_write (f, L"chipmem_size=%d\n", p->chipmem_size == 0x20000 ? -1 : (p->chipmem_size == 0x40000 ? 0 : p->chipmem_size / 0x80000));
+       cfgfile_dwrite (f, L"chipset", L"ocs");
+    cfgfile_write (f, L"chipset_refreshrate", L"%d", p->chipset_refreshrate);
+    cfgfile_write_str (f, L"collision_level", collmode[p->collision_level]);
+
+    cfgfile_write_str(f, L"chipset_compatible", cscompa[p->cs_compatible]);
+    cfgfile_dwrite_str (f, L"ciaatod", ciaatodmode[p->cs_ciaatod]);
+    cfgfile_dwrite_str (f, L"rtc", rtctype[p->cs_rtc]);
+    //cfgfile_dwrite (f, L"chipset_rtc_adjust", L"%d", p->cs_rtc_adjust);
+    cfgfile_dwrite_bool (f, L"ksmirror_e0", p->cs_ksmirror_e0);
+    cfgfile_dwrite_bool (f, L"ksmirror_a8", p->cs_ksmirror_a8);
+    cfgfile_dwrite_bool (f, L"cd32cd", p->cs_cd32cd);
+    cfgfile_dwrite_bool (f, L"cd32c2p", p->cs_cd32c2p);
+    cfgfile_dwrite_bool (f, L"cd32nvram", p->cs_cd32nvram);
+    cfgfile_dwrite_bool (f, L"cdtvcd", p->cs_cdtvcd);
+    cfgfile_dwrite_bool (f, L"cdtvram", p->cs_cdtvram);
+    cfgfile_dwrite (f, L"cdtvramcard", L"%d", p->cs_cdtvcard);
+    cfgfile_dwrite_str (f, L"ide", p->cs_ide == 1 ? L"a600/a1200" : (p->cs_ide == 2 ? L"a4000" : L"none"));
+    cfgfile_dwrite_bool (f, L"a1000ram", p->cs_a1000ram);
+    cfgfile_dwrite (f, L"fatgary", L"%d", p->cs_fatgaryrev);
+    cfgfile_dwrite (f, L"ramsey", L"%d", p->cs_ramseyrev);
+    cfgfile_dwrite_bool (f, L"pcmcia", p->cs_pcmcia);
+    cfgfile_dwrite_bool (f, L"scsi_cdtv", p->cs_cdtvscsi);
+    cfgfile_dwrite_bool (f, L"scsi_a2091", p->cs_a2091);
+    cfgfile_dwrite_bool (f, L"scsi_a4091", p->cs_a4091);
+    cfgfile_dwrite_bool (f, L"scsi_a3000", p->cs_mbdmac == 1);
+    cfgfile_dwrite_bool (f, L"scsi_a4000t", p->cs_mbdmac == 2);
+    cfgfile_dwrite_bool (f, L"bogomem_fast", p->cs_slowmemisfast);
+    cfgfile_dwrite_bool (f, L"resetwarning", p->cs_resetwarning);
+    cfgfile_dwrite_bool (f, L"denise_noehb", p->cs_denisenoehb);
+    cfgfile_dwrite_bool (f, L"agnus_bltbusybug", p->cs_agnusbltbusybug);
+
+    cfgfile_write (f, L"fastmem_size", L"%d", p->fastmem_size / 0x100000);
+    cfgfile_write (f, L"a3000mem_size", L"%d", p->mbresmem_low_size / 0x100000);
+    cfgfile_write (f, L"mbresmem_size", L"%d", p->mbresmem_high_size / 0x100000);
+    cfgfile_write (f, L"z3mem_size", L"%d", p->z3fastmem_size / 0x100000);
+    cfgfile_write (f, L"z3mem2_size", L"%d", p->z3fastmem2_size / 0x100000);
+    cfgfile_write (f, L"z3mem_start", L"0x%x", p->z3fastmem_start);
+    cfgfile_write (f, L"bogomem_size", L"%d", p->bogomem_size / 0x40000);
+    cfgfile_write (f, L"gfxcard_size", L"%d", p->gfxmem_size / 0x100000);
+    cfgfile_write (f, L"chipmem_size", L"%d", p->chipmem_size == 0x20000 ? -1 : (p->chipmem_size == 0x40000 ? 0 : p->chipmem_size / 0x80000));
 
     if (p->m68k_speed > 0)
-       cfgfile_write (f, L"finegrain_cpu_speed=%d\n", p->m68k_speed);
+       cfgfile_write (f, L"finegrain_cpu_speed", L"%d", p->m68k_speed);
     else
-       cfgfile_write (f, L"cpu_speed=%s\n", p->m68k_speed == -1 ? L"max" : L"real");
+       cfgfile_write_str (f, L"cpu_speed", p->m68k_speed == -1 ? L"max" : L"real");
 
     /* do not reorder start */
     write_compatibility_cpu(f, p);
-    cfgfile_write (f, L"cpu_model=%d\n", p->cpu_model);
+    cfgfile_write (f, L"cpu_model", L"%d", p->cpu_model);
     if (p->fpu_model)
-       cfgfile_write (f, L"fpu_model=%d\n", p->fpu_model);
-    cfgfile_write (f, L"cpu_compatible=%s\n", p->cpu_compatible ? L"true" : L"false");
-    cfgfile_write (f, L"cpu_24bit_addressing=%s\n", p->address_space_24 ? L"true" : L"false");
+       cfgfile_write (f, L"fpu_model", L"%d", p->fpu_model);
+    cfgfile_write_bool (f, L"cpu_compatible", p->cpu_compatible);
+    cfgfile_write_bool (f, L"cpu_24bit_addressing", p->address_space_24);
     /* do not reorder end */
-    cfgfile_write (f, L"cpu_cycle_exact=%s\n", p->cpu_cycle_exact ? L"true" : L"false");
-    cfgfile_write (f, L"blitter_cycle_exact=%s\n", p->blitter_cycle_exact ? L"true" : L"false");
-    cfgfile_write (f, L"rtg_nocustom=%s\n", p->picasso96_nocustom ? L"true" : L"false");
-    cfgfile_write (f, L"rtg_modes=0x%x\n", p->picasso96_modeflags);
+    cfgfile_write_bool (f, L"cpu_cycle_exact", p->cpu_cycle_exact);
+    cfgfile_write_bool (f, L"blitter_cycle_exact", p->blitter_cycle_exact);
+    cfgfile_write_bool (f, L"rtg_nocustom", p->picasso96_nocustom);
+    cfgfile_write (f, L"rtg_modes", L"0x%x", p->picasso96_modeflags);
 
-    cfgfile_write (f, L"log_illegal_mem=%s\n", p->illegal_mem ? L"true" : L"false");
+    cfgfile_write_bool (f, L"log_illegal_mem", p->illegal_mem);
     if (p->catweasel >= 100)
-       cfgfile_dwrite (f, L"catweasel=0x%x\n", p->catweasel);
+       cfgfile_dwrite (f, L"catweasel", L"0x%x", p->catweasel);
     else
-       cfgfile_dwrite (f, L"catweasel=%d\n", p->catweasel);
+       cfgfile_dwrite (f, L"catweasel", L"%d", p->catweasel);
 
-    cfgfile_write (f, L"kbd_lang=%s\n", (p->keyboard_lang == KBD_LANG_DE ? L"de"
+    cfgfile_write_str (f, L"kbd_lang", (p->keyboard_lang == KBD_LANG_DE ? L"de"
                                        : p->keyboard_lang == KBD_LANG_DK ? L"dk"
                                        : p->keyboard_lang == KBD_LANG_ES ? L"es"
                                        : p->keyboard_lang == KBD_LANG_US ? L"us"
@@ -698,14 +746,14 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
                                        : p->keyboard_lang == KBD_LANG_IT ? L"it"
                                        : L"FOO"));
 
-    cfgfile_dwrite (f, L"state_replay=%s\n", p->statecapture ? L"yes" : L"no");
-    cfgfile_dwrite (f, L"state_replay_rate=%d\n", p->statecapturerate);
-    cfgfile_dwrite (f, L"state_replay_buffer=%d\n", p->statecapturebuffersize);
+    cfgfile_dwrite_str (f, L"state_replay", p->statecapture ? L"yes" : L"no");
+    cfgfile_dwrite (f, L"state_replay_rate", L"%d", p->statecapturerate);
+    cfgfile_dwrite (f, L"state_replay_buffer", L"%d", p->statecapturebuffersize);
 
 #ifdef FILESYS
     write_filesys_config (p, UNEXPANDED, p->path_hardfile, f);
     if (p->filesys_no_uaefsdb)
-       cfgfile_write (f, L"filesys_no_fsdb=%s\n", p->filesys_no_uaefsdb ? L"true" : L"false");
+       cfgfile_write_bool (f, L"filesys_no_fsdb", p->filesys_no_uaefsdb);
 #endif
     write_inputdevice_config (p, f);
 
@@ -1203,7 +1251,8 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value)
            *tmpp++= 0;
            if (num >= 0) {
                p->keyboard_leds[num] = match_string (kbleds, tmpp2);
-               if (p->keyboard_leds[num]) p->keyboard_leds_in_use = 1;
+               if (p->keyboard_leds[num])
+                   p->keyboard_leds_in_use = 1;
            }
            tmpp2 = tmpp;
        }
index 12a6ea7489d80c58ab0eef7a4cf8c54b1a443ef5..0243c1081fd8f81576ab2122a898514195424dec 100644 (file)
@@ -2193,7 +2193,16 @@ cfloop2
        jsr -$01bc(a6) ;OpenDevice
        tst.l d0
        bne.s cfloop2
-
+       move.l 20(a4),a0 ;device node
+       cmp.w #37,20(a0) ;must be at least v37
+       bcc.s cfversion
+       ;too lazy free everything..
+cfloop3
+       moveq #0,d0
+       jsr -$013e(a6)
+       bra.s cfloop3
+       
+cfversion
        move.w #$FF38,d0
        moveq #15,d1
        bsr.w getrtbase
index fa053075efa739535992b3fa1a59e0b98ba31724..5af405d9918a1730c1f7c3c8cbe3c31bdc0b08fd 100644 (file)
--- a/filesys.c
+++ b/filesys.c
@@ -1283,7 +1283,7 @@ static int fsdb_cando (Unit *unit)
 static void prepare_for_open (TCHAR *name)
 {
 #if 0
-    struct stat statbuf;
+    struct _stat64 statbuf;
     int mode;
 
     if (-1 == stat (name, &statbuf))
@@ -1558,8 +1558,8 @@ static a_inode *lookup_aino (Unit *unit, uae_u32 uniq)
 
 TCHAR *build_nname (const TCHAR *d, const TCHAR *n)
 {
-    TCHAR dsep[2] = { FSDB_DIR_SEPARATOR, '\0' };
-    TCHAR *p = xmalloc ((_tcslen (d) + _tcslen (n) + 2) * sizeof (TCHAR));
+    TCHAR dsep[2] = { FSDB_DIR_SEPARATOR, 0 };
+    TCHAR *p = xmalloc ((_tcslen (d) + 1 + _tcslen (n) + 1) * sizeof (TCHAR));
     _tcscpy (p, d);
     _tcscat (p, dsep);
     _tcscat (p, n);
@@ -1568,7 +1568,7 @@ TCHAR *build_nname (const TCHAR *d, const TCHAR *n)
 
 TCHAR *build_aname (const TCHAR *d, const TCHAR *n)
 {
-    TCHAR *p = xmalloc ((_tcslen (d) + _tcslen (n) + 2) * sizeof (TCHAR));
+    TCHAR *p = xmalloc ((_tcslen (d) + 1 + _tcslen (n) + 1) * sizeof (TCHAR));
     _tcscpy (p, d);
     _tcscat (p, L"/");
     _tcscat (p, n);
@@ -2720,7 +2720,7 @@ get_fileinfo (Unit *unit, dpacket packet, uaecptr info, a_inode *aino)
     if (unit->volflags & MYVOLUMEINFO_ARCHIVE)
        zfile_stat_archive (aino->nname, &statbuf);
     else
-       _wstat64 (aino->nname, &statbuf);
+       stat (aino->nname, &statbuf);
 
     if (aino->parent == 0) {
        /* Guru book says ST_ROOT = 1 (root directory, not currently used)
@@ -2837,11 +2837,11 @@ static int exalldo (uaecptr exalldata, uae_u32 exalldatasize, uae_u32 type, uaec
     char *x = NULL, *comment = NULL;
     int ret = 0;
 
-    memset(&statbuf, 0, sizeof statbuf);
+    memset (&statbuf, 0, sizeof statbuf);
     if (unit->volflags & MYVOLUMEINFO_ARCHIVE)
        zfile_stat_archive (aino->nname, &statbuf);
     else
-       _wstat64 (aino->nname, &statbuf);
+       stat (aino->nname, &statbuf);
 
     if (aino->parent == 0) {
        entrytype = 2;
@@ -3515,7 +3515,7 @@ action_find_write (Unit *unit, dpacket packet)
 /* change file/dir's parent dir modification time */
 static void updatedirtime (a_inode *a1, int now)
 {
-    struct stat statbuf;
+    struct _stat64 statbuf;
     struct utimbuf ut;
     long days, mins, ticks;
 
@@ -3598,7 +3598,7 @@ action_read (Unit *unit, dpacket packet)
            k->file_pos += actual;
        }
     } else {
-       TCHAR *buf;
+       uae_u8 *buf;
        off_t old, filesize;
 
        write_log (L"unixfs warning: Bad pointer passed for read: %08x, size %d\n", addr, size);
@@ -3696,8 +3696,8 @@ action_seek (Unit *unit, dpacket packet)
     Key *k = lookup_key (unit, GET_PCK_ARG1 (packet));
     long pos = (uae_s32)GET_PCK_ARG2 (packet);
     long mode = (uae_s32)GET_PCK_ARG3 (packet);
-    off_t res;
-    long old;
+    uae_s64 res;
+    uae_s64 old;
     int whence = SEEK_CUR;
 
     if (k == 0) {
@@ -3716,8 +3716,8 @@ action_seek (Unit *unit, dpacket packet)
 
     old = fs_lseek (unit, k->fd, 0, SEEK_CUR);
     {
-       uae_s32 temppos;
-       long filesize = fs_lseek (unit, k->fd, 0, SEEK_END);
+       uae_s64 temppos;
+       uae_s64 filesize = fs_lseek64 (unit, k->fd, 0, SEEK_END);
        fs_lseek (unit, k->fd, old, SEEK_SET);
 
        if (whence == SEEK_CUR)
@@ -3733,13 +3733,16 @@ action_seek (Unit *unit, dpacket packet)
            return;
        }
     }
-    res = fs_lseek (unit, k->fd, pos, whence);
+    res = fs_lseek64 (unit, k->fd, pos, whence);
 
-    if (-1 == res || res > MAXFILESIZE32) {
-       PUT_PCK_RES1 (packet, res);
+    if (-1 == res || old > MAXFILESIZE32) {
+       PUT_PCK_RES1 (packet, -1);
        PUT_PCK_RES2 (packet, ERROR_SEEK_ERROR);
-    } else
+       fs_lseek64 (unit, k->fd, old, SEEK_SET);
+       res = old;
+    } else {
        PUT_PCK_RES1 (packet, old);
+    }
     k->file_pos = res;
 }
 
@@ -4440,7 +4443,7 @@ static void action_change_file_position64 (Unit *unit, dpacket packet)
     PUT_PCK64_RES0 (packet, DP64_INIT);
 
     if (k == 0) {
-       PUT_PCK64_RES1 (packet, (uae_s64)-1);
+       PUT_PCK64_RES1 (packet, DOS_FALSE);
        PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK);
        return;
     }
@@ -4475,13 +4478,13 @@ static void action_change_file_position64 (Unit *unit, dpacket packet)
     res = fs_lseek64 (unit, k->fd, pos, whence);
 
     if (-1 == res) {
-       PUT_PCK64_RES1 (packet, res);
+       PUT_PCK64_RES1 (packet, DOS_FALSE);
        PUT_PCK64_RES2 (packet, ERROR_SEEK_ERROR);
     } else {
        PUT_PCK64_RES1 (packet, TRUE);
         PUT_PCK64_RES2 (packet, 0);
+        k->file_pos = res;
     }
-    k->file_pos = res;
 
 }
 
@@ -4492,7 +4495,7 @@ static void action_get_file_position64 (Unit *unit, dpacket packet)
     PUT_PCK64_RES0 (packet, DP64_INIT);
 
     if (k == 0) {
-       PUT_PCK64_RES1 (packet, (uae_s64)-1);
+       PUT_PCK64_RES1 (packet, DOS_FALSE);
        PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK);
        return;
     }
@@ -4519,7 +4522,7 @@ static void action_change_file_size64 (Unit *unit, dpacket packet)
 
     k = lookup_key (unit, GET_PCK64_ARG1 (packet));
     if (k == 0) {
-       PUT_PCK64_RES1 (packet, DOS_TRUE);
+       PUT_PCK64_RES1 (packet, DOS_FALSE);
        PUT_PCK64_RES2 (packet, ERROR_OBJECT_NOT_AROUND);
        return;
     }
@@ -4561,7 +4564,7 @@ static void action_get_file_size64 (Unit *unit, dpacket packet)
     PUT_PCK64_RES0 (packet, DP64_INIT);
 
     if (k == 0) {
-       PUT_PCK64_RES1 (packet, (uae_s64)-1);
+       PUT_PCK64_RES1 (packet, DOS_FALSE);
        PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK);
        return;
     }
@@ -4576,7 +4579,7 @@ static void action_get_file_size64 (Unit *unit, dpacket packet)
            return;
        }
     }
-    PUT_PCK64_RES1 (packet, (uae_s64)-1);
+    PUT_PCK64_RES1 (packet, DOS_FALSE);
     PUT_PCK64_RES2 (packet, ERROR_SEEK_ERROR);
 }
 
@@ -5815,7 +5818,7 @@ static a_inode *restore_filesys_get_base (Unit *u, TCHAR *npath)
     /* iterate from root to last to previous path part,
      * create ainos if not already created.
      */
-    path = xcalloc((_tcslen(npath) + 2) * sizeof (TCHAR), 1);
+    path = xcalloc((_tcslen (npath) + 2) * sizeof (TCHAR), 1);
     cnt = 1;
     for (;;) {
        _tcscpy (path, npath);
@@ -5978,7 +5981,7 @@ static uae_u8 *restore_key (UnitInfo *ui, Unit *u, uae_u8 *src)
     Key *k;
 
     missing = 0;
-    k = xcalloc (sizeof(Key), 1);
+    k = xcalloc (sizeof (Key), 1);
     k->uniq = restore_u64 ();
     k->file_pos = restore_u32 ();
     k->createmode = restore_u32 ();
index 5c8385d2f180676a856f8a07173e48d3a19115ec..1c70b4b80bfc46cdabc1dfbc215ae129de7a7291 100644 (file)
@@ -2,14 +2,14 @@
  db(0x60); db(0x00); db(0x09); db(0x8e); db(0x00); db(0x00); db(0x07); db(0x6c);
  db(0x00); db(0x00); db(0x00); db(0x30); db(0x00); db(0x00); db(0x01); db(0x8c);
  db(0x00); db(0x00); db(0x00); db(0x1c); db(0x00); db(0x00); db(0x02); db(0x48);
- db(0x00); db(0x00); db(0x0d); db(0x5c); db(0x43); db(0xfa); db(0x16); db(0x64);
+ db(0x00); db(0x00); db(0x0d); db(0x5c); db(0x43); db(0xfa); db(0x16); db(0x78);
  db(0x4e); db(0xae); db(0xff); db(0xa0); db(0x20); db(0x40); db(0x20); db(0x28);
  db(0x00); db(0x16); db(0x20); db(0x40); db(0x4e); db(0x90); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0xff); db(0xfe); db(0x2c); db(0x78); db(0x00); db(0x04);
  db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00); db(0x0b); db(0x8a);
- db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x16); db(0x6d); db(0x70); db(0x24);
+ db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x16); db(0x81); db(0x70); db(0x24);
  db(0x7a); db(0x01); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
- db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x16); db(0x5d); db(0x70); db(0x00);
+ db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x16); db(0x71); db(0x70); db(0x00);
  db(0x7a); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40);
  db(0x4a); db(0xad); db(0x01); db(0x0c); db(0x67); db(0x5a); db(0x20); db(0x3c);
  db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01);
  db(0x0a); db(0xf8); db(0x4e); db(0x90); db(0x72); db(0x03); db(0x74); db(0xf6);
  db(0x20); db(0x7c); db(0x00); db(0x20); db(0x00); db(0x00); db(0x90); db(0x88);
  db(0x65); db(0x0a); db(0x67); db(0x08); db(0x78); db(0x00); db(0x22); db(0x44);
- db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x15); db(0x68);
+ db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x15); db(0x7c);
  db(0x43); db(0xfa); db(0x00); db(0x54); db(0x70); db(0x0a); db(0x61); db(0x00);
  db(0x0b); db(0xac); db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c);
  db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0xc4); db(0x4e); db(0x90);
  db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x48); db(0xe7);
  db(0x38); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x00);
  db(0x28); db(0x01); db(0x26); db(0x09); db(0x24); db(0x48); db(0x43); db(0xfa);
- db(0x15); db(0x62); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x15); db(0x76); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
  db(0x4a); db(0x80); db(0x67); db(0x14); db(0x2c); db(0x40); db(0x22); db(0x0a);
  db(0xe4); db(0x8b); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x22); db(0x4e);
  db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62);
  db(0x4c); db(0xdf); db(0x44); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x78);
  db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
- db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x15); db(0x13);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x15); db(0x27);
  db(0x43); db(0xfa); db(0x00); db(0x16); db(0x70); db(0x0f); db(0x22); db(0x3c);
  db(0x00); db(0x00); db(0x1f); db(0x40); db(0x61); db(0x00); db(0xff); db(0xa8);
  db(0x60); db(0xdc); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
@@ -74,7 +74,7 @@
  db(0x70); db(0x01); db(0x4c); db(0xdf); db(0x04); db(0x00); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0xc0); db(0xc0); db(0x70); db(0x1a); db(0x22); db(0x3c);
  db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x22); db(0x40); db(0x41); db(0xfa); db(0x13); db(0xeb); db(0x23); db(0x48);
+ db(0x22); db(0x40); db(0x41); db(0xfa); db(0x13); db(0xff); db(0x23); db(0x48);
  db(0x00); db(0x0a); db(0x41); db(0xfa); db(0xff); db(0x28); db(0x23); db(0x48);
  db(0x00); db(0x0e); db(0x41); db(0xfa); db(0xff); db(0x20); db(0x23); db(0x48);
  db(0x00); db(0x12); db(0x33); db(0x7c); db(0x02); db(0x14); db(0x00); db(0x08);
@@ -90,7 +90,7 @@
  db(0x00); db(0x00); db(0x00); db(0x0e); db(0x52); db(0x40); db(0x0c); db(0x40);
  db(0x00); db(0x8c); db(0x66); db(0xf2); db(0x20); db(0x0a); db(0xe4); db(0x88);
  db(0x21); db(0x40); db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa);
- db(0x13); db(0x6f); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b);
+ db(0x13); db(0x83); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b);
  db(0x01); db(0x98); db(0x41); db(0xe8); db(0x00); db(0x12); db(0x4e); db(0xae);
  db(0xff); db(0x10); db(0x4c); db(0xdf); db(0x4f); db(0x03); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0x7f); db(0x7e); db(0x2c); db(0x78); db(0x00); db(0x04);
  db(0x60); db(0xf4); db(0x48); db(0xe7); db(0x40); db(0xe2); db(0x2c); db(0x78);
  db(0x00); db(0x04); db(0x41); db(0xee); db(0x01); db(0x50); db(0x20); db(0x50);
  db(0x4a); db(0x90); db(0x67); db(0x1a); db(0x22); db(0x68); db(0x00); db(0x0a);
- db(0x45); db(0xfa); db(0x12); db(0xc1); db(0x10); db(0x19); db(0x12); db(0x1a);
+ db(0x45); db(0xfa); db(0x12); db(0xd5); db(0x10); db(0x19); db(0x12); db(0x1a);
  db(0xb0); db(0x01); db(0x66); db(0x06); db(0x4a); db(0x00); db(0x67); db(0x42);
  db(0x60); db(0xf2); db(0x20); db(0x50); db(0x60); db(0xe2); db(0x70); db(0x20);
  db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
  db(0xff); db(0x3a); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08);
- db(0x00); db(0x08); db(0x41); db(0xfa); db(0x12); db(0x97); db(0x25); db(0x48);
- db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x12); db(0x13); db(0x25); db(0x48);
+ db(0x00); db(0x08); db(0x41); db(0xfa); db(0x12); db(0xab); db(0x25); db(0x48);
+ db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x12); db(0x27); db(0x25); db(0x48);
  db(0x00); db(0x0e); db(0x41); db(0xea); db(0x00); db(0x12); db(0x20); db(0x88);
  db(0x58); db(0x90); db(0x21); db(0x48); db(0x00); db(0x08); db(0x41); db(0xee);
  db(0x01); db(0x50); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xff); db(0x0a);
  db(0x67); db(0x3a); db(0x20); db(0x52); db(0x24); db(0x40); db(0x22); db(0x4a);
  db(0x12); db(0xd8); db(0x66); db(0xfc); db(0x13); db(0x7c); db(0x00); db(0x3a);
  db(0xff); db(0xff); db(0x42); db(0x11); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x43); db(0xfa); db(0x0d); db(0x90); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0x43); db(0xfa); db(0x0d); db(0xa4); db(0x70); db(0x00); db(0x4e); db(0xae);
  db(0xfd); db(0xd8); db(0x2c); db(0x40); db(0x22); db(0x0a); db(0x4e); db(0xae);
  db(0xff); db(0x52); db(0x22); db(0x4e); db(0x2c); db(0x78); db(0x00); db(0x04);
  db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4a); db(0x20); db(0x02);
  db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2c); db(0x01); db(0x7e); db(0x06);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0d); db(0x8b);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0d); db(0x9f);
  db(0x70); db(0x24); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
  db(0x66); db(0x0e); db(0x08); db(0x87); db(0x00); db(0x02); db(0x43); db(0xfa);
- db(0x0d); db(0x79); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x0d); db(0x8d); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
  db(0x28); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c);
  db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
  db(0xff); db(0x3a); db(0x20); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x2c);
  db(0xfe); db(0x62); db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x4e); db(0x75);
  db(0x2c); db(0x78); db(0x00); db(0x04); db(0x93); db(0xc9); db(0x4e); db(0xae);
  db(0xfe); db(0xda); db(0x20); db(0x40); db(0x4b); db(0xe8); db(0x00); db(0x5c);
- db(0x43); db(0xfa); db(0x0c); db(0xe0); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0x43); db(0xfa); db(0x0c); db(0xf4); db(0x70); db(0x00); db(0x4e); db(0xae);
  db(0xfd); db(0xd8); db(0x24); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00);
  db(0x00); db(0xb9); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
  db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x26); db(0x40); db(0x7c); db(0x00);
  db(0x26); db(0x86); db(0x27); db(0x46); db(0x00); db(0x04); db(0x27); db(0x46);
  db(0x00); db(0x08); db(0x27); db(0x4a); db(0x00); db(0xa0); db(0x50); db(0xeb);
  db(0x00); db(0x9e); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
- db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0b); db(0xdc);
+ db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0b); db(0xf0);
  db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x84);
- db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0b); db(0xd9);
+ db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0b); db(0xed);
  db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x74);
  db(0x27); db(0x40); db(0x00); db(0xa8); db(0x7a); db(0x00); db(0x20); db(0x4d);
  db(0x4e); db(0xae); db(0xfe); db(0x80); db(0x20); db(0x4d); db(0x4e); db(0xae);
  db(0x25); db(0x4b); db(0x00); db(0x36); db(0x22); db(0x4a); db(0x24); db(0x43);
  db(0x97); db(0xcb); db(0x24); db(0x09); db(0x4e); db(0xae); db(0xfe); db(0xe6);
  db(0x20); db(0x02); db(0x4c); db(0xdf); db(0x4c); db(0x1c); db(0x4e); db(0x75);
- db(0x41); db(0xfa); db(0x09); db(0x34); db(0x43); db(0xfa); db(0x01); db(0x5c);
+ db(0x41); db(0xfa); db(0x09); db(0x48); db(0x43); db(0xfa); db(0x01); db(0x5c);
  db(0x70); db(0x13); db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75);
  db(0x22); db(0x6d); db(0x02); db(0x0c); db(0x33); db(0x7c); db(0x00); db(0x0a);
  db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
  db(0x00); db(0x08); db(0x27); db(0x46); db(0x00); db(0x0c); db(0x70); db(0xff);
  db(0x37); db(0x40); db(0x00); db(0x00); db(0x43); db(0xed); db(0x00); db(0x00);
  db(0x13); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x08); db(0x13); db(0x7c);
- db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x07); db(0x78);
+ db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x07); db(0x8c);
  db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x02); db(0xda);
  db(0x23); db(0x48); db(0x00); db(0x12); db(0x23); db(0x4d); db(0x00); db(0x0e);
  db(0x70); db(0x05); db(0x4e); db(0xae); db(0xff); db(0x58); db(0x20); db(0x06);
  db(0x00); db(0x1c); db(0x6a); db(0x06); db(0x70); db(0x0a); db(0x27); db(0x40);
  db(0x00); db(0x1c); db(0x4a); db(0xab); db(0x00); db(0x14); db(0x66); db(0x16);
  db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xe0); db(0x43); db(0xfa);
- db(0x07); db(0x96); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x07); db(0xaa); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
  db(0x27); db(0x40); db(0x00); db(0x14); db(0x67); db(0xd0); db(0x4a); db(0xab);
  db(0x00); db(0x18); db(0x66); db(0x18); db(0x4a); db(0xab); db(0x00); db(0x1c);
- db(0x66); db(0xc4); db(0x43); db(0xfa); db(0x07); db(0x8c); db(0x70); db(0x00);
+ db(0x66); db(0xc4); db(0x43); db(0xfa); db(0x07); db(0xa0); db(0x70); db(0x00);
  db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x18);
  db(0x67); db(0x00); db(0xff); db(0xb4); db(0x4a); db(0xad); db(0x02); db(0x08);
  db(0x66); db(0x38); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xa6);
  db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e);
- db(0x43); db(0xfa); db(0x06); db(0x80); db(0x4e); db(0xae); db(0xfe); db(0xec);
+ db(0x43); db(0xfa); db(0x06); db(0x94); db(0x4e); db(0xae); db(0xfe); db(0xec);
  db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82);
- db(0x67); db(0x8c); db(0x41); db(0xfa); db(0x06); db(0x6e); db(0x70); db(0x00);
+ db(0x67); db(0x8c); db(0x41); db(0xfa); db(0x06); db(0x82); db(0x70); db(0x00);
  db(0x72); db(0x00); db(0x61); db(0x00); db(0xfd); db(0x16); db(0x2b); db(0x40);
  db(0x02); db(0x08); db(0x67); db(0x00); db(0x02); db(0x42); db(0x60); db(0x00);
  db(0xff); db(0x76); db(0x4a); db(0xad); db(0x02); db(0x0c); db(0x66); db(0x48);
  db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0x00); db(0xff); db(0x68);
  db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e);
- db(0x43); db(0xfa); db(0x06); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0xec);
+ db(0x43); db(0xfa); db(0x06); db(0x61); db(0x4e); db(0xae); db(0xfe); db(0xec);
  db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82);
- db(0x67); db(0x00); db(0xff); db(0x4c); db(0x41); db(0xfa); db(0x06); db(0x39);
+ db(0x67); db(0x00); db(0xff); db(0x4c); db(0x41); db(0xfa); db(0x06); db(0x4d);
  db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0xd4);
  db(0x2b); db(0x40); db(0x02); db(0x0c); db(0x67); db(0x00); db(0x02); db(0x00);
  db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x00); db(0x61); db(0x00);
  db(0x33); db(0x7c); db(0x00); db(0x32); db(0x00); db(0x46); db(0x30); db(0x3c);
  db(0xff); db(0x38); db(0x72); db(0x02); db(0x61); db(0x00); db(0xf9); db(0xea);
  db(0x4e); db(0x90); db(0x41); db(0xf9); db(0x00); db(0xdf); db(0xf0); db(0x00);
- db(0x70); db(0x00); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x04); db(0x32);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x04); db(0x46);
  db(0x43); db(0xfa); db(0x00); db(0x0a); db(0x70); db(0xf6); db(0x61); db(0x00);
  db(0xfa); db(0xac); db(0x4e); db(0x75); db(0x9b); db(0xcd); db(0x2c); db(0x78);
  db(0x00); db(0x04); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x88);
  db(0x20); db(0x0d); db(0x4e); db(0x90); db(0x70); db(0x00); db(0x08); db(0xc0);
  db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x4e); db(0xae);
  db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x7a); db(0x43); db(0xfa);
- db(0x04); db(0x3a); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
+ db(0x04); db(0x4e); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
  db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0xdc);
- db(0x42); db(0xad); db(0x00); db(0x08); db(0x41); db(0xfa); db(0x03); db(0xc2);
+ db(0x42); db(0xad); db(0x00); db(0x08); db(0x41); db(0xfa); db(0x03); db(0xd6);
  db(0x43); db(0xfa); db(0x01); db(0x0a); db(0x70); db(0xf6); db(0x22); db(0x3c);
  db(0x00); db(0x00); db(0x27); db(0x10); db(0x61); db(0x00); db(0xee); db(0xa0);
  db(0x70); db(0x00); db(0x4e); db(0x75); db(0x30); db(0x3c); db(0xff); db(0x38);
  db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4d); db(0x20); db(0x3c);
  db(0x00); db(0x00); db(0x00); db(0x88); db(0x4e); db(0xae); db(0xff); db(0x2e);
  db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x3e);
- db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x41); db(0xfa); db(0x03); db(0x58);
+ db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x41); db(0xfa); db(0x03); db(0x6c);
  db(0x22); db(0x08); db(0x24); db(0x3c); db(0x00); db(0x00); db(0x03); db(0xed);
  db(0x4e); db(0xae); db(0xff); db(0xe2); db(0x28); db(0x00); db(0x67); db(0x4c);
  db(0x45); db(0xed); db(0x00); db(0x68); db(0x42); db(0x92); db(0x34); db(0xaa);
  db(0xf8); db(0xc0); db(0x4e); db(0x90); db(0x22); db(0x04); db(0x67); db(0x04);
  db(0x4e); db(0xae); db(0xff); db(0xdc); db(0x4c); db(0xdf); db(0x7c); db(0x1c);
  db(0x4e); db(0x75); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x41); db(0xfa);
- db(0x02); db(0xd0); db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae);
+ db(0x02); db(0xe4); db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae);
  db(0xff); db(0xac); db(0x22); db(0x00); db(0x67); db(0x34); db(0x4e); db(0xae);
  db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x45); db(0xed);
  db(0x00); db(0x38); db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6);
- db(0x15); db(0x40); db(0x00); db(0x14); db(0x41); db(0xfa); db(0x02); db(0xc0);
+ db(0x15); db(0x40); db(0x00); db(0x14); db(0x41); db(0xfa); db(0x02); db(0xd4);
  db(0x24); db(0x88); db(0x25); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x12);
  db(0x00); db(0x0c); db(0x25); db(0x6d); db(0x00); db(0x08); db(0x00); db(0x10);
  db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x22); db(0x0a); db(0x4e); db(0xae);
  db(0xf8); db(0x50); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x00);
  db(0xfe); db(0xf4); db(0x2a); db(0x40); db(0x2c); db(0x6d); db(0x00); db(0x14);
  db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x2b); db(0x40);
- db(0x00); db(0x08); db(0x43); db(0xfa); db(0x02); db(0xee); db(0x70); db(0x00);
+ db(0x00); db(0x08); db(0x43); db(0xfa); db(0x03); db(0x02); db(0x70); db(0x00);
  db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x2b); db(0x40); db(0x00); db(0x18);
  db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xd0); db(0x2c); db(0x40);
  db(0x72); db(0x32); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa);
- db(0x02); db(0x24); db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae);
+ db(0x02); db(0x38); db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae);
  db(0xff); db(0xac); db(0x4a); db(0x80); db(0x67); db(0xea); db(0x22); db(0x00);
  db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x72); db(0x32); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0x0e); db(0x22); db(0x08);
+ db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0x22); db(0x22); db(0x08);
  db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac); db(0x4a); db(0x80);
  db(0x67); db(0x00); db(0xfe); db(0x9a); db(0x22); db(0x00); db(0x4e); db(0xae);
  db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x61); db(0x00);
  db(0x61); db(0x00); db(0xf8); db(0x40); db(0x28); db(0x40); db(0x4a); db(0x80);
  db(0x67); db(0x00); db(0xfe); db(0x7a); db(0x70); db(0x00); db(0x08); db(0xc0);
  db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x72); db(0x00);
- db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa); db(0x01); db(0xe7);
+ db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa); db(0x01); db(0xfb);
  db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44); db(0x4a); db(0x80);
- db(0x66); db(0xe2); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0f);
- db(0x61); db(0x00); db(0xf7); db(0xa6); db(0x4e); db(0x90); db(0x61); db(0x00);
- db(0xfe); db(0xf2); db(0x41); db(0xed); db(0x00); db(0x1c); db(0x29); db(0x48);
- db(0x00); db(0x28); db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x24);
- db(0x39); db(0x7c); db(0x00); db(0x0c); db(0x00); db(0x1c); db(0x2b); db(0x4d);
- db(0x00); db(0x2c); db(0x41); db(0xfa); db(0x01); db(0x4a); db(0x2b); db(0x48);
- db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x70); db(0x00); db(0x74); db(0x00); db(0x14); db(0x2d); db(0x00); db(0x4c);
- db(0x05); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae);
- db(0xfe); db(0xc2); db(0x05); db(0x00); db(0x67); db(0x06); db(0x61); db(0x00);
- db(0xfe); db(0x3c); db(0x60); db(0xe4); db(0x20); db(0x2d); db(0x00); db(0x00);
- db(0x67); db(0x00); db(0x00); db(0x72); db(0x72); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x2b); db(0x40); db(0x00); db(0x04); db(0x30); db(0x3c);
- db(0xff); db(0x38); db(0x72); db(0x0c); db(0x61); db(0x00); db(0xf7); db(0x42);
- db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x04); db(0x67); db(0x3a);
- db(0x39); db(0x7c); db(0x00); db(0x03); db(0x00); db(0x1c); db(0x42); db(0x2c);
- db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x20); db(0x29); db(0x6d);
- db(0x00); db(0x00); db(0x00); db(0x24); db(0x29); db(0x6d); db(0x00); db(0x04);
- db(0x00); db(0x28); db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac);
- db(0x00); db(0x30); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x2b); db(0x6c); db(0x00); db(0x30); db(0x00); db(0x10); db(0x39); db(0x7c);
- db(0x00); db(0x04); db(0x00); db(0x1c); db(0x22); db(0x4c); db(0x4e); db(0xae);
- db(0xfe); db(0x38); db(0x20); db(0x2d); db(0x00); db(0x00); db(0x42); db(0xad);
- db(0x00); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x04); db(0x67); db(0x00);
- db(0xff); db(0x78); db(0x22); db(0x41); db(0x4e); db(0xae); db(0xff); db(0x2e);
- db(0x60); db(0x00); db(0xff); db(0x6e); db(0x39); db(0x7c); db(0x00); db(0x02);
- db(0x00); db(0x1c); db(0x41); db(0xed); db(0x00); db(0x30); db(0x42); db(0x90);
- db(0x42); db(0xa8); db(0x00); db(0x04); db(0x42); db(0x2c); db(0x00); db(0x1f);
- db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac); db(0x00); db(0x30);
- db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x08); db(0x29); db(0x40);
+ db(0x66); db(0xe2); db(0x20); db(0x6c); db(0x00); db(0x14); db(0x0c); db(0x68);
+ db(0x00); db(0x25); db(0x00); db(0x14); db(0x64); db(0x08); db(0x70); db(0x00);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x60); db(0xf8); db(0x30); db(0x3c);
+ db(0xff); db(0x38); db(0x72); db(0x0f); db(0x61); db(0x00); db(0xf7); db(0x92);
+ db(0x4e); db(0x90); db(0x61); db(0x00); db(0xfe); db(0xde); db(0x41); db(0xed);
+ db(0x00); db(0x1c); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01);
+ db(0x29); db(0x40); db(0x00); db(0x24); db(0x39); db(0x7c); db(0x00); db(0x0c);
+ db(0x00); db(0x1c); db(0x2b); db(0x4d); db(0x00); db(0x2c); db(0x41); db(0xfa);
+ db(0x01); db(0x4a); db(0x2b); db(0x48); db(0x00); db(0x24); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x70); db(0x00); db(0x74); db(0x00);
+ db(0x14); db(0x2d); db(0x00); db(0x4c); db(0x05); db(0xc0); db(0x08); db(0xc0);
+ db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x05); db(0x00);
+ db(0x67); db(0x06); db(0x61); db(0x00); db(0xfe); db(0x28); db(0x60); db(0xe4);
+ db(0x20); db(0x2d); db(0x00); db(0x00); db(0x67); db(0x00); db(0x00); db(0x72);
+ db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2b); db(0x40);
+ db(0x00); db(0x04); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0c);
+ db(0x61); db(0x00); db(0xf7); db(0x2e); db(0x4e); db(0x90); db(0x4a); db(0xad);
+ db(0x00); db(0x04); db(0x67); db(0x3a); db(0x39); db(0x7c); db(0x00); db(0x03);
+ db(0x00); db(0x1c); db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac);
+ db(0x00); db(0x20); db(0x29); db(0x6d); db(0x00); db(0x00); db(0x00); db(0x24);
+ db(0x29); db(0x6d); db(0x00); db(0x04); db(0x00); db(0x28); db(0x42); db(0xac);
+ db(0x00); db(0x2c); db(0x42); db(0xac); db(0x00); db(0x30); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x2b); db(0x6c); db(0x00); db(0x30);
+ db(0x00); db(0x10); db(0x39); db(0x7c); db(0x00); db(0x04); db(0x00); db(0x1c);
+ db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x20); db(0x2d);
+ db(0x00); db(0x00); db(0x42); db(0xad); db(0x00); db(0x00); db(0x22); db(0x2d);
+ db(0x00); db(0x04); db(0x67); db(0x00); db(0xff); db(0x78); db(0x22); db(0x41);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x6e);
+ db(0x39); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x1c); db(0x41); db(0xed);
+ db(0x00); db(0x30); db(0x42); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04);
+ db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x2c);
+ db(0x42); db(0xac); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28);
+ db(0x70); db(0x08); db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x0c); db(0xad); db(0x46); db(0x4f);
+ db(0x52); db(0x4d); db(0x00); db(0x30); db(0x66); db(0x52); db(0x20); db(0x2d);
+ db(0x00); db(0x34); db(0x67); db(0x4c); db(0x6b); db(0x4a); db(0x2b); db(0x6c);
+ db(0x00); db(0x30); db(0x00); db(0x10); db(0x50); db(0x80); db(0x24); db(0x00);
+ db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80);
+ db(0x67); db(0x36); db(0x24); db(0x40); db(0x20); db(0x4a); db(0x20); db(0xed);
+ db(0x00); db(0x30); db(0x20); db(0xed); db(0x00); db(0x34); db(0x29); db(0x48);
+ db(0x00); db(0x28); db(0x20); db(0x02); db(0x51); db(0x80); db(0x29); db(0x40);
  db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x0c); db(0xad); db(0x46); db(0x4f); db(0x52); db(0x4d); db(0x00); db(0x30);
- db(0x66); db(0x52); db(0x20); db(0x2d); db(0x00); db(0x34); db(0x67); db(0x4c);
- db(0x6b); db(0x4a); db(0x2b); db(0x6c); db(0x00); db(0x30); db(0x00); db(0x10);
- db(0x50); db(0x80); db(0x24); db(0x00); db(0x72); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x36); db(0x24); db(0x40);
- db(0x20); db(0x4a); db(0x20); db(0xed); db(0x00); db(0x30); db(0x20); db(0xed);
- db(0x00); db(0x34); db(0x29); db(0x48); db(0x00); db(0x28); db(0x20); db(0x02);
- db(0x51); db(0x80); db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c);
- db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x30); db(0x3c); db(0xff); db(0x38);
- db(0x72); db(0x0b); db(0x61); db(0x00); db(0xf6); db(0x6c); db(0x20); db(0x2c);
- db(0x00); db(0x20); db(0x4e); db(0x90); db(0x22); db(0x4a); db(0x20); db(0x02);
- db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4a); db(0xac); db(0x00); db(0x20);
- db(0x67); db(0x00); db(0xfe); db(0xde); db(0x41); db(0xed); db(0x00); db(0x30);
- db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01); db(0x29); db(0x40);
- db(0x00); db(0x24); db(0x42); db(0xac); db(0x00); db(0x20); db(0x22); db(0x4c);
- db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x60); db(0xde); db(0x41); db(0xe8);
- db(0xff); db(0xe4); db(0x20); db(0x29); db(0x00); db(0x08); db(0xb0); db(0xa8);
- db(0x00); db(0x10); db(0x67); db(0x1a); db(0x21); db(0x40); db(0x00); db(0x10);
- db(0x2f); db(0x0e); db(0x2c); db(0x68); db(0x00); db(0x14); db(0x22); db(0x68);
- db(0x00); db(0x08); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
- db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x2c); db(0x5f); db(0x70); db(0x00);
- db(0x4e); db(0x75); db(0x69); db(0x6e); db(0x70); db(0x75); db(0x74); db(0x2e);
- db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x74);
- db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64); db(0x65); db(0x76);
- db(0x69); db(0x63); db(0x65); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53);
- db(0x3a); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x63);
- db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64);
+ db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0b); db(0x61); db(0x00);
+ db(0xf6); db(0x58); db(0x20); db(0x2c); db(0x00); db(0x20); db(0x4e); db(0x90);
+ db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e);
+ db(0x4a); db(0xac); db(0x00); db(0x20); db(0x67); db(0x00); db(0xfe); db(0xde);
+ db(0x41); db(0xed); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28);
+ db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x24); db(0x42); db(0xac);
+ db(0x00); db(0x20); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38);
+ db(0x60); db(0xde); db(0x41); db(0xe8); db(0xff); db(0xe4); db(0x20); db(0x29);
+ db(0x00); db(0x08); db(0xb0); db(0xa8); db(0x00); db(0x10); db(0x67); db(0x1a);
+ db(0x21); db(0x40); db(0x00); db(0x10); db(0x2f); db(0x0e); db(0x2c); db(0x68);
+ db(0x00); db(0x14); db(0x22); db(0x68); db(0x00); db(0x08); db(0x70); db(0x00);
+ db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xbc);
+ db(0x2c); db(0x5f); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x69); db(0x6e);
+ db(0x70); db(0x75); db(0x74); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69);
+ db(0x63); db(0x65); db(0x00); db(0x74); db(0x69); db(0x6d); db(0x65); db(0x72);
  db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00);
- db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x00); db(0x63); db(0x6c); db(0x69);
- db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64);
- db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41);
- db(0x4d); db(0x3a); db(0x45); db(0x6e); db(0x76); db(0x2f); db(0x53); db(0x79);
- db(0x73); db(0x2f); db(0x50); db(0x6f); db(0x69); db(0x6e); db(0x74); db(0x65);
- db(0x72); db(0x2e); db(0x70); db(0x72); db(0x65); db(0x66); db(0x73); db(0x00);
- db(0x55); db(0x41); db(0x45); db(0x20); db(0x63); db(0x6c); db(0x69); db(0x70);
- db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x20); db(0x73); db(0x68);
- db(0x61); db(0x72); db(0x69); db(0x6e); db(0x67); db(0x00); db(0x55); db(0x41);
- db(0x45); db(0x20); db(0x6d); db(0x6f); db(0x75); db(0x73); db(0x65); db(0x20);
- db(0x64); db(0x72); db(0x69); db(0x76); db(0x65); db(0x72); db(0x00); db(0x55);
- db(0x41); db(0x45); db(0x20); db(0x66); db(0x69); db(0x6c); db(0x65); db(0x73);
- db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41);
- db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74);
- db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72);
- db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20);
- db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e);
- db(0x74); db(0x20); db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73);
- db(0x73); db(0x00); db(0x64); db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69);
- db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e);
- db(0x74); db(0x75); db(0x69); db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e);
- db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00);
- db(0x67); db(0x72); db(0x61); db(0x70); db(0x68); db(0x69); db(0x63); db(0x73);
- db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79);
- db(0x00); db(0x65); db(0x78); db(0x70); db(0x61); db(0x6e); db(0x73); db(0x69);
- db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61);
- db(0x72); db(0x79); db(0x00); db(0x46); db(0x69); db(0x6c); db(0x65); db(0x53);
- db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x2e); db(0x72); db(0x65);
- db(0x73); db(0x6f); db(0x75); db(0x72); db(0x63); db(0x65); db(0x00); db(0x00);
- db(0x00); db(0x00); db(0x03); db(0xf2);
+ db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x00); db(0x44); db(0x45);
+ db(0x56); db(0x53); db(0x3a); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62);
+ db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76);
+ db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a);
+ db(0x00); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61);
+ db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63);
+ db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x45); db(0x6e);
+ db(0x76); db(0x2f); db(0x53); db(0x79); db(0x73); db(0x2f); db(0x50); db(0x6f);
+ db(0x69); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x2e); db(0x70); db(0x72);
+ db(0x65); db(0x66); db(0x73); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20);
+ db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72);
+ db(0x64); db(0x20); db(0x73); db(0x68); db(0x61); db(0x72); db(0x69); db(0x6e);
+ db(0x67); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x6d); db(0x6f);
+ db(0x75); db(0x73); db(0x65); db(0x20); db(0x64); db(0x72); db(0x69); db(0x76);
+ db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66);
+ db(0x69); db(0x6c); db(0x65); db(0x73); db(0x79); db(0x73); db(0x74); db(0x65);
+ db(0x6d); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73);
+ db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75);
+ db(0x6e); db(0x74); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45);
+ db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f);
+ db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x20); db(0x70); db(0x72);
+ db(0x6f); db(0x63); db(0x65); db(0x73); db(0x73); db(0x00); db(0x64); db(0x6f);
+ db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72);
+ db(0x79); db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75); db(0x69); db(0x74);
+ db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72);
+ db(0x61); db(0x72); db(0x79); db(0x00); db(0x67); db(0x72); db(0x61); db(0x70);
+ db(0x68); db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62);
+ db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x65); db(0x78); db(0x70);
+ db(0x61); db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c);
+ db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x46);
+ db(0x69); db(0x6c); db(0x65); db(0x53); db(0x79); db(0x73); db(0x74); db(0x65);
+ db(0x6d); db(0x2e); db(0x72); db(0x65); db(0x73); db(0x6f); db(0x75); db(0x72);
+ db(0x63); db(0x65); db(0x00); db(0x00); db(0x00); db(0x00); db(0x03); db(0xf2);
 
index 4c99af7e0819f250e5894af9c188f99091916070..3dc0257e0e215cbed5aed205fa8e1b3f91e15055 100644 (file)
@@ -369,10 +369,22 @@ struct uae_prefs {
 /* Contains the filename of .uaerc */
 extern TCHAR optionsfile[];
 extern void save_options (struct zfile *, struct uae_prefs *, int);
-extern void cfgfile_write (struct zfile *, TCHAR *format,...);
-extern void cfgfile_dwrite (struct zfile *, TCHAR *format,...);
-extern void cfgfile_target_write (struct zfile *, TCHAR *format,...);
-extern void cfgfile_target_dwrite (struct zfile *, TCHAR *format,...);
+
+extern void cfgfile_write (struct zfile *, TCHAR *option, TCHAR *format,...);
+extern void cfgfile_dwrite (struct zfile *, TCHAR *option, TCHAR *format,...);
+extern void cfgfile_target_write (struct zfile *, TCHAR *option, TCHAR *format,...);
+extern void cfgfile_target_dwrite (struct zfile *, TCHAR *option, TCHAR *format,...);
+
+extern void cfgfile_write_bool (struct zfile *f, TCHAR *option, int b);
+extern void cfgfile_dwrite_bool (struct zfile *f, TCHAR *option, int b);
+extern void cfgfile_target_write_bool (struct zfile *f, TCHAR *option, int b);
+extern void cfgfile_target_dwrite_bool (struct zfile *f, TCHAR *option, int b);
+
+extern void cfgfile_write_str (struct zfile *f, TCHAR *option, const TCHAR *value);
+extern void cfgfile_dwrite_str (struct zfile *f, TCHAR *option, const TCHAR *value);
+extern void cfgfile_target_write_str (struct zfile *f, TCHAR *option, const TCHAR *value);
+extern void cfgfile_target_dwrite_str (struct zfile *f, TCHAR *option, const TCHAR *value);
+
 extern void cfgfile_backup (const TCHAR *path);
 extern struct uaedev_config_info *add_filesys_config (struct uae_prefs *p, int index,
                        TCHAR *devname, TCHAR *volname, TCHAR *rootdir, int readonly,
index 8f2aef0644e794dbc986c0f29eeee424baadf395..65ce6e7ce418fbd8c187c05940fe5d6948dfbf36 100644 (file)
@@ -238,6 +238,8 @@ extern char *ua_copy (char *dst, int maxlen, const TCHAR *src);
 extern TCHAR *au_copy (TCHAR *dst, int maxlen, const char *src);
 extern char *uacp_copy (char *dst, int maxlen, const TCHAR *src, unsigned int cp);
 extern TCHAR *aucp_copy (TCHAR *dst, int maxlen, const char *src, unsigned int cp);
+extern char *uutf8 (const TCHAR *s);
+extern TCHAR *utf8u (const char *s);
 
 extern void *xmalloc (size_t);
 extern void *xcalloc (size_t, size_t);
@@ -350,13 +352,12 @@ struct direct
 /* These are prototypes for functions from the Win32 posixemu file */
 extern void get_time (time_t t, long* days, long* mins, long* ticks);
 extern time_t put_time (long days, long mins, long ticks);
-extern DWORD getattr (const TCHAR *name, LPFILETIME lpft, size_t *size);
 
 /* #define DONT_HAVE_POSIX - don't need all of Mathias' posixemu_functions, just a subset (below) */
 #define chmod(a,b) posixemu_chmod ((a), (b))
 extern int posixemu_chmod (const TCHAR *, int);
 #define stat(a,b) posixemu_stat ((a), (b))
-extern int posixemu_stat (const TCHAR *, struct stat *);
+extern int posixemu_stat (const TCHAR *, struct _stat64 *);
 #define mkdir(x,y) mkdir(x)
 #define truncate posixemu_truncate
 extern int posixemu_truncate (const TCHAR *, long int);
index 50c6a5f7017eb00a3eebf723ec2c648331dc7a3b..24f36b049e5d1e86863d6e412fdc006c6df8495a 100644 (file)
@@ -436,12 +436,14 @@ static void copyjport (const struct uae_prefs *src, struct uae_prefs *dst, int n
 
 static void out_config (struct zfile *f, int id, int num, TCHAR *s1, TCHAR *s2)
 {
-    cfgfile_write (f, L"input.%d.%s%d=%s\n", id, s1, num, s2);
+    TCHAR tmp[MAX_DPATH];
+    _stprintf (tmp, L"input.%d.%s%d", id, s1, num);
+    cfgfile_write_str (f, tmp, s2);
 }
 
 static void write_config2 (struct zfile *f, int idnum, int i, int offset, TCHAR *tmp1, struct uae_input_device *id)
 {
-    TCHAR tmp2[200], *p;
+    TCHAR tmp2[200], tmp3[200], *p;
     int evt, got, j, k;
     TCHAR *custom;
 
@@ -470,41 +472,53 @@ static void write_config2 (struct zfile *f, int idnum, int i, int offset, TCHAR
            _stprintf (p, L"%s.%d", events[evt].confname, id->flags[i + offset][j]);
        p += _tcslen (p);
     }
-    if (p > tmp2)
-       cfgfile_write (f, L"input.%d.%s%d=%s\n", idnum, tmp1, i, tmp2);
+    if (p > tmp2) {
+       _stprintf (tmp3, L"input.%d.%s%d", idnum, tmp1, i);
+       cfgfile_write_str (f, tmp3, tmp2);
+    }
 }
 
 static struct inputdevice_functions *getidf (int devnum);
 
 static void write_config (struct zfile *f, int idnum, int devnum, TCHAR *name, struct uae_input_device *id, struct uae_input_device2 *id2, struct inputdevice_functions *idf)
 {
-    TCHAR tmp1[MAX_DPATH], *s;
+    TCHAR tmp1[MAX_DPATH], tmp2[MAX_DPATH], *s;
     int i;
 
     if (!isdevice (id)) {
-       cfgfile_write (f, L"input.%d.%s.%d.empty=true\n", idnum, name, devnum);
-       if (id->enabled)
-           cfgfile_write (f, L"input.%d.%s.%d.disabled=%d\n", idnum, name, devnum, id->enabled ? 0 : 1);
+       _stprintf (tmp2, L"input.%d.%s.%d.empty", idnum, name, devnum);
+       cfgfile_write_bool (f, tmp2, 1);
+       if (id->enabled) {
+           _stprintf (tmp2, L"input.%d.%s.%d.disabled", idnum, name, devnum);
+           cfgfile_write (f, tmp2, L"%d", id->enabled ? 0 : 1);
+       }
        return;
     }
-    cfgfile_write (f, L"input.%d.%s.%d.empty=false\n", idnum, name, devnum);
-    cfgfile_write (f, L"input.%d.%s.%d.disabled=%d\n", idnum, name, devnum, id->enabled ? 0 : 1);
+
+    _stprintf (tmp2, L"input.%d.%s.%d.empty", idnum, name, devnum);
+    cfgfile_write_bool (f, tmp2, 0);
+    _stprintf (tmp2, L"input.%d.%s.%d.disabled", idnum, name, devnum);
+    cfgfile_write (f, tmp2, L"%d", id->enabled ? 0 : 1);
 
     s = NULL;
     if (id->name)
        s = id->name;
     else if (devnum < idf->get_num ())
        s = idf->get_friendlyname (devnum);
-    if (s)
-        cfgfile_write (f, L"input.%d.%s.%d.friendlyname=%s\n", idnum, name, devnum, s);
+    if (s) {
+       _stprintf (tmp2, L"input.%d.%s.%d.friendlyname", idnum, name, devnum);
+        cfgfile_write_str (f, tmp2, s);
+    }
 
     s = NULL;
     if (id->configname)
         s = id->configname;
     else if (devnum < idf->get_num ())
        s = idf->get_uniquename (devnum);
-    if (s)
-        cfgfile_write (f, L"input.%d.%s.%d.name=%s\n", idnum, name, devnum, s);
+    if (s) {
+       _stprintf (tmp2, L"input.%d.%s.%d.name", idnum, name, devnum);
+        cfgfile_write_str (f, tmp2, s);
+    }
 
     _stprintf (tmp1, L"%s.%d.axis.", name, devnum);
     for (i = 0; i < ID_AXIS_TOTAL; i++)
@@ -525,7 +539,7 @@ static void kbrlabel (TCHAR *s)
 
 static void write_kbr_config (struct zfile *f, int idnum, int devnum, struct uae_input_device *kbr, struct inputdevice_functions *idf)
 {
-    TCHAR tmp1[200], tmp2[200], tmp3[200], *p;
+    TCHAR tmp1[200], tmp2[200], tmp3[200], tmp4[200], *p;
     int i, j, k, evt, skip;
 
     if (!keyboard_default)
@@ -580,7 +594,8 @@ static void write_kbr_config (struct zfile *f, int idnum, int devnum, struct uae
        _stprintf (tmp3, L"%d", kbr->extra[i][0]);
        kbrlabel (tmp3);
        _stprintf (tmp1, L"keyboard.%d.button.%s", devnum, tmp3);
-       cfgfile_write (f, L"input.%d.%s=%s\n", idnum, tmp1, tmp2[0] ? tmp2 : L"NULL");
+       _stprintf (tmp4, L"input.%d.%s", idnum, tmp1);
+       cfgfile_write_str (f, tmp4, tmp2[0] ? tmp2 : L"NULL");
        i++;
     }
 }
@@ -589,15 +604,15 @@ void write_inputdevice_config (struct uae_prefs *p, struct zfile *f)
 {
     int i, id;
 
-    cfgfile_write (f, L"input.config=%d\n", p->input_selected_setting);
-    cfgfile_write (f, L"input.joymouse_speed_analog=%d\n", p->input_joymouse_multiplier);
-    cfgfile_write (f, L"input.joymouse_speed_digital=%d\n", p->input_joymouse_speed);
-    cfgfile_write (f, L"input.joymouse_deadzone=%d\n", p->input_joymouse_deadzone);
-    cfgfile_write (f, L"input.joystick_deadzone=%d\n", p->input_joystick_deadzone);
-    cfgfile_write (f, L"input.analog_joystick_multiplier=%d\n", p->input_analog_joystick_mult);
-    cfgfile_write (f, L"input.analog_joystick_offset=%d\n", p->input_analog_joystick_offset);
-    cfgfile_write (f, L"input.mouse_speed=%d\n", p->input_mouse_speed);
-    cfgfile_write (f, L"input.autofire=%d\n", p->input_autofire_framecnt);
+    cfgfile_write (f, L"input.config", L"%d", p->input_selected_setting);
+    cfgfile_write (f, L"input.joymouse_speed_analog", L"%d", p->input_joymouse_multiplier);
+    cfgfile_write (f, L"input.joymouse_speed_digital", L"%d", p->input_joymouse_speed);
+    cfgfile_write (f, L"input.joymouse_deadzone", L"%d", p->input_joymouse_deadzone);
+    cfgfile_write (f, L"input.joystick_deadzone", L"%d", p->input_joystick_deadzone);
+    cfgfile_write (f, L"input.analog_joystick_multiplier", L"%d", p->input_analog_joystick_mult);
+    cfgfile_write (f, L"input.analog_joystick_offset", L"%d", p->input_analog_joystick_offset);
+    cfgfile_write (f, L"input.mouse_speed", L"%d", p->input_mouse_speed);
+    cfgfile_write (f, L"input.autofire", L"%d", p->input_autofire_framecnt);
     for (id = 1; id <= MAX_INPUT_SETTINGS; id++) {
        for (i = 0; i < MAX_INPUT_DEVICES; i++)
            write_config (f, id, i, L"joystick", &p->joystick_settings[id][i], &joysticks2[i], &idev[IDTYPE_JOYSTICK]);
index 630ae8ddb3bec4917cd4a2c0257b530fcb68921d..179dfb826871ef2eb1d29673bae67782da853f4d 100644 (file)
--- a/memory.c
+++ b/memory.c
@@ -2770,9 +2770,10 @@ static int load_extendedkickstart (void)
        extendedkickmem_type = EXTENDED_ROM_CDTV;
     } else if (size > 300000) {
        extendedkickmem_type = EXTENDED_ROM_CD32;
-    } else {
+    } else if (need_uae_boot_rom () != 0xf00000) {
        extendedkickmem_type = EXTENDED_ROM_CDTV;
-    }
+    } else
+       return 0;
 
     zfile_fseek (f, off, SEEK_SET);
     switch (extendedkickmem_type) {
index aa87ac1d2817f79629d61a6ed5bc1328bc20e892..e487440f783583a9a2a490e5ebadccf72112cd21 100644 (file)
@@ -82,34 +82,37 @@ void moduleripper (void)
     xfree (buf);
 }
 
-FILE *moduleripper_fopen (const char *name, const char *mode)
+FILE *moduleripper_fopen (const char *aname, const char *amode)
 {
     TCHAR tmp2[MAX_DPATH];
     TCHAR tmp[MAX_DPATH];
-    TCHAR *ufn, *umode;
+    TCHAR *name, *mode;
     FILE *f;
 
     fetch_ripperpath (tmp, sizeof tmp);
-    ufn = au (name);
-    umode = au (mode);
-    _stprintf (tmp2, L"%s%s", tmp, ufn);
-    f = _tfopen (tmp2, umode);
-    xfree (umode);
-    xfree (ufn);
+    name = au (aname);
+    mode = au (amode);
+    _stprintf (tmp2, L"%s%s", tmp, name);
+    f = _tfopen (tmp2, mode);
+    xfree (mode);
+    xfree (name);
     return f;
 }
 
-FILE *moduleripper2_fopen (const char *name, const char *mode, const char *id, int addr, int size)
+FILE *moduleripper2_fopen (const char *name, const char *mode, const char *aid, int addr, int size)
 {
     TCHAR msg[MAX_DPATH], msg2[MAX_DPATH];
+    TCHAR *id;
     int ret;
 
     if (canceled)
        return NULL;
     got++;
     translate_message (NUMSG_MODRIP_SAVE, msg);
+    id = au (aid);
     _stprintf (msg2, msg, id, addr, size);
     ret = gui_message_multibutton (2, msg2);
+    xfree (id);
     if (ret < 0)
        canceled = 1;
     if (ret < 0 || ret != 1)
index c6895e0fe31cad76eca63d0dd74619d63d1b1c06..e01e6a569271ebbd101a9d0525db6a239becfff2 100644 (file)
@@ -2268,7 +2268,7 @@ kludge:
                if (!sb->hostent) {
                        write_log (L"BSDSOCK: WARNING - gethostby%s() ran out of Amiga memory "
                                L"(couldn't allocate %ld bytes) while returning result of lookup for '%s'\n",
-                               addrtype == -1 ? "name" : "addr", size, name_rp);
+                               addrtype == -1 ? L"name" : L"addr", size, name_rp);
                        bsdsocklib_seterrno(sb, 12); // ENOMEM
                        return;
                }
index 58e0ec842e4251e560de20cb31d28544c5562ecb..0834386a4f5b2c396f1e69f7531cd773b279a116 100644 (file)
@@ -58,7 +58,7 @@ void gettimeofday (struct timeval *tv, void *blah)
 #define secs_per_day (24 * 60 * 60)
 #define diff ((8 * 365 + 2) * secs_per_day)
 
-static void get_time(time_t t, long *days, long *mins, long *ticks)
+static void get_time (time_t t, long *days, long *mins, long *ticks)
 {
     /* time_t is secs since 1-1-1970 */
     /* days since 1-1-1978 */
@@ -73,12 +73,12 @@ static void get_time(time_t t, long *days, long *mins, long *ticks)
     *ticks = t * 50;
 }
 
-static DWORD getattr(const TCHAR *name, LPFILETIME lpft, size_t *size)
+static DWORD getattr (const TCHAR *name, LPFILETIME lpft, uae_u64 *size)
 {
     HANDLE hFind;
     WIN32_FIND_DATA fd;
 
-    if ((hFind = FindFirstFile (name,&fd)) == INVALID_HANDLE_VALUE) {
+    if ((hFind = FindFirstFile (name, &fd)) == INVALID_HANDLE_VALUE) {
        fd.dwFileAttributes = GetFileAttributes (name);
        return fd.dwFileAttributes;
     }
@@ -87,17 +87,17 @@ static DWORD getattr(const TCHAR *name, LPFILETIME lpft, size_t *size)
     if (lpft)
        *lpft = fd.ftLastWriteTime;
     if (size)
-       *size = fd.nFileSizeLow;
+       *size = (((uae_u64)fd.nFileSizeHigh) << 32) | fd.nFileSizeLow;
 
     return fd.dwFileAttributes;
 }
 
-int posixemu_stat(const TCHAR *name, struct stat *statbuf)
+int posixemu_stat (const TCHAR *name, struct _stat64 *statbuf)
 {
     DWORD attr;
     FILETIME ft, lft;
 
-    if ((attr = getattr (name,&ft,(size_t*)&statbuf->st_size)) == (DWORD)~0) {
+    if ((attr = getattr (name, &ft, &statbuf->st_size)) == (DWORD)~0) {
        return -1;
     } else {
        statbuf->st_mode = (attr & FILE_ATTRIBUTE_READONLY) ? FILEFLAG_READ : FILEFLAG_READ | FILEFLAG_WRITE;
@@ -111,19 +111,19 @@ int posixemu_stat(const TCHAR *name, struct stat *statbuf)
     return 0;
 }
 
-int posixemu_chmod(const TCHAR *name, int mode)
+int posixemu_chmod (const TCHAR *name, int mode)
 {
     DWORD attr = FILE_ATTRIBUTE_NORMAL;
     if (!(mode & FILEFLAG_WRITE))
        attr |= FILE_ATTRIBUTE_READONLY;
     if (mode & FILEFLAG_ARCHIVE)
        attr |= FILE_ATTRIBUTE_ARCHIVE;
-    if (SetFileAttributes(name,attr))
+    if (SetFileAttributes (name,attr))
        return 1;
     return -1;
 }
 
-static void tmToSystemTime(struct tm *tmtime, LPSYSTEMTIME systime)
+static void tmToSystemTime (struct tm *tmtime, LPSYSTEMTIME systime)
 {
     if (tmtime == NULL) {
        GetSystemTime (systime);
index 5f2f3338ae0c5d2155c1d81abd1e0877ae3d766a..826c787f41a8e7b2e4801e30fb12fb6c62a31b70 100644 (file)
@@ -364,6 +364,7 @@ int reginitializeinit (const TCHAR *ppath)
     uae_u8 crc[20];
     int s, v1, v2, v3;
     TCHAR path[MAX_DPATH], fpath[MAX_PATH];
+    FILE *f;
 
     if (!ppath) {
        int ok = 0;
@@ -425,6 +426,12 @@ fail:
        DeleteFile (path);
     if (GetFileAttributes (path) != INVALID_FILE_ATTRIBUTES)
        goto end;
+    f = _tfopen (path, L"wb");
+    if (f) {
+       uae_u8 bom[3] = { 0xef, 0xbb, 0xbf };
+       fwrite (bom, sizeof (bom), 1, f);
+       fclose (f);
+    }
     r = regcreatetree (NULL, L"Warning");
     if (!r)
        goto end;
index 6e56b820a59276590562a9268a3281f2a9b9246a..4cef6683e422a1ab2dfc8e601e8d051b9fa5b02c 100644 (file)
@@ -4,6 +4,35 @@
 #include "sysconfig.h"
 #include "sysdeps.h"
 
+char *uutf8 (const WCHAR *s)
+{
+    char *d;
+    int len;
+
+    if (s == NULL)
+       return NULL;
+    len = WideCharToMultiByte (CP_UTF8, 0, s, -1, NULL, 0, 0, FALSE);
+    if (!len)
+       return strdup ("");
+    d = xmalloc (len + 1);
+    WideCharToMultiByte (CP_UTF8, 0, s, -1, d, len, 0, FALSE);
+    return d;
+}
+WCHAR *utf8u (const char *s)
+{
+    WCHAR *d;
+    int len;
+
+    if (s == NULL)
+       return NULL;
+    len = MultiByteToWideChar (CP_UTF8, MB_PRECOMPOSED, s, -1, NULL, 0);
+    if (!len)
+       return xcalloc (2, 1);
+    d = xmalloc ((len + 1) * sizeof (WCHAR));
+    MultiByteToWideChar (CP_UTF8, MB_PRECOMPOSED, s, -1, d, len);
+    return d;
+}
+
 static char *ua_2 (const WCHAR *s, UINT cp)
 {
     char *d;
index aa3dfa6f1eba536fc3e64d3c3c103eeec462036f..577207e335a3fb2527c218b3b326c057cfc3feef 100644 (file)
@@ -1848,7 +1848,7 @@ void toggle_mousegrab (void)
 #define LOG_BOOT L"winuaebootlog.txt"
 #define LOG_NORMAL L"winuaelog.txt"
 
-void logging_open(int bootlog, int append)
+void logging_open (int bootlog, int append)
 {
     TCHAR debugfilename[MAX_DPATH];
 
@@ -1867,7 +1867,7 @@ void logging_open(int bootlog, int append)
 
 typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
 
-void logging_init(void)
+void logging_init (void)
 {
     LPFN_ISWOW64PROCESS fnIsWow64Process;
     int wow64 = 0;
@@ -2089,54 +2089,54 @@ static const TCHAR *scsimode[] = { L"none", L"SPTI", L"SPTI+SCSISCAN", L"Adaptec
 
 void target_save_options (struct zfile *f, struct uae_prefs *p)
 {
-    cfgfile_target_dwrite (f, L"middle_mouse=%s\n", p->win32_middle_mouse ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"logfile=%s\n", p->win32_logfile ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"map_drives=%s\n", p->win32_automount_drives ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"map_drives_auto=%s\n", p->win32_automount_removable ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"map_cd_drives=%s\n", p->win32_automount_cddrives ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"map_net_drives=%s\n", p->win32_automount_netdrives ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"map_removable_drives=%s\n", p->win32_automount_removabledrives ? L"true" : L"false");
+    cfgfile_target_dwrite_bool (f, L"middle_mouse", p->win32_middle_mouse);
+    cfgfile_target_dwrite_bool (f, L"logfile", p->win32_logfile);
+    cfgfile_target_dwrite_bool (f, L"map_drives", p->win32_automount_drives);
+    cfgfile_target_dwrite_bool (f, L"map_drives_auto", p->win32_automount_removable);
+    cfgfile_target_dwrite_bool (f, L"map_cd_drives", p->win32_automount_cddrives);
+    cfgfile_target_dwrite_bool (f, L"map_net_drives", p->win32_automount_netdrives);
+    cfgfile_target_dwrite_bool (f, L"map_removable_drives", p->win32_automount_removabledrives);
     serdevtoname (p->sername);
-    cfgfile_target_dwrite (f, L"serial_port=%s\n", p->sername[0] ? p->sername : L"none");
+    cfgfile_target_dwrite_str (f, L"serial_port", p->sername[0] ? p->sername : L"none");
     sernametodev (p->sername);
-    cfgfile_target_dwrite (f, L"parallel_port=%s\n", p->prtname[0] ? p->prtname : L"none");
-
-    cfgfile_target_dwrite (f, L"active_priority=%d\n", priorities[p->win32_active_priority].value);
-    cfgfile_target_dwrite (f, L"inactive_priority=%d\n", priorities[p->win32_inactive_priority].value);
-    cfgfile_target_dwrite (f, L"inactive_nosound=%s\n", p->win32_inactive_nosound ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"inactive_pause=%s\n", p->win32_inactive_pause ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"iconified_priority=%d\n", priorities[p->win32_iconified_priority].value);
-    cfgfile_target_dwrite (f, L"iconified_nosound=%s\n", p->win32_iconified_nosound ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"iconified_pause=%s\n", p->win32_iconified_pause ? L"true" : L"false");
-
-    cfgfile_target_dwrite (f, L"ctrl_f11_is_quit=%s\n", p->win32_ctrl_F11_is_quit ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"midiout_device=%d\n", p->win32_midioutdev);
-    cfgfile_target_dwrite (f, L"midiin_device=%d\n", p->win32_midiindev);
-    cfgfile_target_dwrite (f, L"rtg_match_depth=%s\n", p->win32_rtgmatchdepth ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"rtg_scale_small=%s\n", p->win32_rtgscaleifsmall ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"rtg_scale_allow=%s\n", p->win32_rtgallowscaling ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"rtg_scale_aspect_ratio=%d:%d\n",
+    cfgfile_target_dwrite_str (f, L"parallel_port", p->prtname[0] ? p->prtname : L"none");
+
+    cfgfile_target_dwrite (f, L"active_priority", L"%d", priorities[p->win32_active_priority].value);
+    cfgfile_target_dwrite (f, L"inactive_priority", L"%d", priorities[p->win32_inactive_priority].value);
+    cfgfile_target_dwrite_bool (f, L"inactive_nosound", p->win32_inactive_nosound);
+    cfgfile_target_dwrite_bool (f, L"inactive_pause", p->win32_inactive_pause);
+    cfgfile_target_dwrite (f, L"iconified_priority", L"%d", priorities[p->win32_iconified_priority].value);
+    cfgfile_target_dwrite_bool (f, L"iconified_nosound", p->win32_iconified_nosound);
+    cfgfile_target_dwrite_bool (f, L"iconified_pause", p->win32_iconified_pause);
+
+    cfgfile_target_dwrite_bool (f, L"ctrl_f11_is_quit", p->win32_ctrl_F11_is_quit);
+    cfgfile_target_dwrite (f, L"midiout_device", L"%d", p->win32_midioutdev);
+    cfgfile_target_dwrite (f, L"midiin_device", L"%d", p->win32_midiindev);
+    cfgfile_target_dwrite_bool (f, L"rtg_match_depth", p->win32_rtgmatchdepth);
+    cfgfile_target_dwrite_bool (f, L"rtg_scale_small", p->win32_rtgscaleifsmall);
+    cfgfile_target_dwrite_bool (f, L"rtg_scale_allow", p->win32_rtgallowscaling);
+    cfgfile_target_dwrite (f, L"rtg_scale_aspect_ratio", L"%d:%d",
        p->win32_rtgscaleaspectratio >= 0 ? (p->win32_rtgscaleaspectratio >> 8) : -1,
        p->win32_rtgscaleaspectratio >= 0 ? (p->win32_rtgscaleaspectratio & 0xff) : -1);
     if (p->win32_rtgvblankrate <= 0)
-       cfgfile_target_dwrite (f, L"rtg_vblank=%s\n", p->win32_rtgvblankrate == -1 ? L"real" : (p->win32_rtgvblankrate == -2 ? L"disabled" : L"chipset"));
+       cfgfile_target_dwrite_str (f, L"rtg_vblank", p->win32_rtgvblankrate == -1 ? L"real" : (p->win32_rtgvblankrate == -2 ? L"disabled" : L"chipset"));
     else
-       cfgfile_target_dwrite (f, L"rtg_vblank=%d\n", p->win32_rtgvblankrate);
-    cfgfile_target_dwrite (f, L"borderless=%s\n", p->win32_borderless ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"uaescsimode=%s\n", scsimode[p->win32_uaescsimode]);
-    cfgfile_target_dwrite (f, L"soundcard=%d\n", p->win32_soundcard);
+       cfgfile_target_dwrite (f, L"rtg_vblank", L"%d", p->win32_rtgvblankrate);
+    cfgfile_target_dwrite_bool (f, L"borderless", p->win32_borderless);
+    cfgfile_target_dwrite_str (f, L"uaescsimode", scsimode[p->win32_uaescsimode]);
+    cfgfile_target_dwrite (f, L"soundcard", L"%d", p->win32_soundcard);
     if (sound_devices[p->win32_soundcard].cfgname)
-       cfgfile_target_dwrite (f, L"soundcardname=%s\n", sound_devices[p->win32_soundcard].cfgname);
-    cfgfile_target_dwrite (f, L"cpu_idle=%d\n", p->cpu_idle);
-    cfgfile_target_dwrite (f, L"notaskbarbutton=%s\n", p->win32_notaskbarbutton ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"always_on_top=%s\n", p->win32_alwaysontop ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"no_recyclebin=%s\n", p->win32_norecyclebin ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"specialkey=0x%x\n", p->win32_specialkey);
+       cfgfile_target_dwrite_str (f, L"soundcardname", sound_devices[p->win32_soundcard].cfgname);
+    cfgfile_target_dwrite (f, L"cpu_idle", L"%d", p->cpu_idle);
+    cfgfile_target_dwrite_bool (f, L"notaskbarbutton", p->win32_notaskbarbutton);
+    cfgfile_target_dwrite_bool (f, L"always_on_top", p->win32_alwaysontop);
+    cfgfile_target_dwrite_bool (f, L"no_recyclebin", p->win32_norecyclebin);
+    cfgfile_target_dwrite (f, L"specialkey", L"0x%x", p->win32_specialkey);
     if (p->win32_guikey >= 0)
-       cfgfile_target_dwrite (f, L"guikey=0x%x\n", p->win32_guikey);
-    cfgfile_target_dwrite (f, L"kbledmode=%d\n", p->win32_kbledmode);
-    cfgfile_target_dwrite (f, L"powersavedisabled=%s\n", p->win32_powersavedisabled ? L"true" : L"false");
-    cfgfile_target_dwrite (f, L"filesystem_codepage=%d\n", p->win32_fscodepage);
+       cfgfile_target_dwrite (f, L"guikey", L"0x%x", p->win32_guikey);
+    cfgfile_target_dwrite (f, L"kbledmode", L"%d", p->win32_kbledmode);
+    cfgfile_target_dwrite_bool (f, L"powersavedisabled", p->win32_powersavedisabled);
+    cfgfile_target_dwrite (f, L"filesystem_codepage", L"%d", p->win32_fscodepage);
 
 }
 
@@ -2234,7 +2234,7 @@ int target_parse_option (struct uae_prefs *p, TCHAR *option, TCHAR *value)
        return 1;
     }
 
-    if (cfgfile_string (option, value, L"rtg_scale_aspect_ratio", tmpbuf, sizeof tmpbuf) / sizeof (TCHAR)) {
+    if (cfgfile_string (option, value, L"rtg_scale_aspect_ratio", tmpbuf, sizeof tmpbuf / sizeof (TCHAR))) {
        int v1, v2;
        TCHAR *s;
        
@@ -3942,6 +3942,7 @@ LONG WINAPI WIN32_ExceptionFilter (struct _EXCEPTION_POINTERS *pExceptionPointer
        __time64_t now;
 
        if (os_winnt && GetModuleFileName (NULL, path, MAX_DPATH)) {
+           TCHAR beta[100];
            TCHAR *slash = _tcsrchr (path, '\\');
            _time64 (&now);
            when = *_localtime64 (&now);
@@ -3955,8 +3956,11 @@ LONG WINAPI WIN32_ExceptionFilter (struct _EXCEPTION_POINTERS *pExceptionPointer
                p = slash + 1;
            else
                p = path2;
-           _stprintf (p, L"winuae_%d%d%d%d_%d%02d%02d_%02d%02d%02d.dmp",
-               UAEMAJOR, UAEMINOR, UAESUBREV, WINUAEBETA,
+           beta[0] = 0;
+           if (WINUAEPUBLICBETA > 0)
+               _stprintf (beta, L"b%s", WINUAEBETA);
+           _stprintf (p, L"winuae_%d%d%d%s_%d%02d%02d_%02d%02d%02d.dmp",
+               UAEMAJOR, UAEMINOR, UAESUBREV, beta,
                when.tm_year + 1900, when.tm_mon + 1, when.tm_mday, when.tm_hour, when.tm_min, when.tm_sec);
            if (dll == NULL)
                dll = WIN32_LoadLibrary (L"DBGHELP.DLL");
index 7abf82a771b04e9124eb06c80ea5093de14fed32..2001b5a326dd4f0ef390632bc7476a634de8959a 100644 (file)
@@ -17,8 +17,8 @@
 
 #define WINUAEPUBLICBETA 1
 
-#define WINUAEBETA L"16"
-#define WINUAEDATE MAKEBD(2009, 3, 9)
+#define WINUAEBETA L"17"
+#define WINUAEDATE MAKEBD(2009, 3, 15)
 #define WINUAEEXTRA L""
 #define WINUAEREV L""
 
index 1fecef03a1699931e165d823a579d0ccea804060..bdabc4b137e32f6239c5b290eb8f155ef6ac8f51 100644 (file)
@@ -6209,9 +6209,9 @@ static void misc_scsi(HWND hDlg)
     SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_RESETCONTENT, 0, 0);
     SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)L"SPTI");
     SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)L"SPTI + SCSI SCAN");
-    SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(0)) ? "AdaptecASPI" : "(AdaptecASPI)"));
-    SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(1)) ? "NeroASPI" : "(NeroASPI)"));
-    SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(2)) ? "FrogASPI" : "(FrogASPI)"));
+    SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(0)) ? L"AdaptecASPI" : L"(AdaptecASPI)"));
+    SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(1)) ? L"NeroASPI" : L"(NeroASPI)"));
+    SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(2)) ? L"FrogASPI" : L"(FrogASPI)"));
     SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_SETCURSEL, workprefs.win32_uaescsimode - 1, 0);
 }
 
index 9f5b3bc4315a502fe7f988b0cc0c93bfcb60d8a7..6437684823c1b17c65fef11b34a64623db3c96ea 100644 (file)
@@ -1,4 +1,15 @@
 
+Beta 17: (even more fixes. do not use b15 or b16)
+
+- module ripper text conversion fixed
+- winuae.ini UTF-8 support (only new ones are created in UTF-8)
+- ACTION_READ with "illegal" length or address crashed (b15)
+- catweasel log information string wrong encoding fixed
+- ACTION_SEEK 2G limit and 64-bit filesystem packet fixes
+- configuration file handling bugs fixed (b15)
+- directory filesystem date field ignored timezone (b15)
+- crash dump file naming fixed (old bug)
+
 Beta 16:
 
 - multiple unicode conversion issues fixed, hardfile/drive issues,
index 597227d1a68b80a6b3bb2ffab885fdedbe853d49..06821ca57198a7cf5b380ddea9dd52811e38cfe2 100644 (file)
@@ -155,7 +155,7 @@ static void writeconsole (const TCHAR *buffer)
     if (!consoleopen)
        openconsole();
     if (consoleopen > 0)
-       WriteOutput (buffer, _tcslen(buffer));
+       WriteOutput (buffer, _tcslen (buffer));
     else if (consoleopen < 0)
        WriteConsole (stdoutput, buffer, _tcslen (buffer), &temp,0);
 }
@@ -280,7 +280,7 @@ void write_log (const TCHAR *format, ...)
     va_list parms;
 
     EnterCriticalSection (&cs);
-    va_start(parms, format);
+    va_start (parms, format);
     bufp = buffer;
     for (;;) {
        count = _vsntprintf (bufp, bufsize - 1, format, parms);
@@ -288,7 +288,7 @@ void write_log (const TCHAR *format, ...)
            bufsize *= 10;
            if (bufp != buffer)
                xfree (bufp);
-           bufp = xmalloc (bufsize);
+           bufp = xmalloc (bufsize * sizeof (TCHAR));
            continue;
        }
        break;