]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1600b18.zip
authorToni Wilen <twilen@winuae.net>
Sun, 22 Mar 2009 10:11:13 +0000 (12:11 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:45:21 +0000 (21:45 +0200)
21 files changed:
cfgfile.c
custom.c
debug.c
disk.c
filesys.asm
filesys.c
filesys_bootrom.c
fsdb.c
include/zfile.h
od-win32/ahidsound.c
od-win32/debug_win32.c
od-win32/dinput.c
od-win32/fsdb_win32.c
od-win32/resources/resource
od-win32/resources/winuae.rc
od-win32/unicode.c
od-win32/win32.c
od-win32/win32.h
od-win32/win32gui.c
od-win32/winuaechangelog.txt
zfile.c

index 4d924f49d2b31d2775d3f7a3f9c3a9df211e2e96..d1ce40f0e16f910c73a888d014ff938248075f0a 100644 (file)
--- a/cfgfile.c
+++ b/cfgfile.c
@@ -178,11 +178,11 @@ static const TCHAR *obsolete[] = {
 
 #define UNEXPANDED L"$(FILE_PATH)"
 
-static void trimws (TCHAR *s)
+static void trimwsa (char *s)
 {
     /* Delete trailing whitespace.  */
-    int len = _tcslen (s);
-    while (len > 0 && _tcscspn (s + len - 1, L"\t \r\n") == 0)
+    int len = strlen (s);
+    while (len > 0 && strcspn (s + len - 1, "\t \r\n") == 0)
         s[--len] = '\0';
 }
 
@@ -237,24 +237,49 @@ static size_t cfg_write (void *b, struct zfile *z)
     } else {
        char lf = 10;
        char *s = ua (b);
-       v = zfile_fwrite (s, strlen(s), 1, z);
+       v = zfile_fwrite (s, strlen (s), 1, z);
        zfile_fwrite (&lf, 1, 1, z);
        xfree (s);
     }
     return v;
 }
 
+#define UTF8NAME L".utf8"
+
 static void cfg_dowrite (struct zfile *f, const TCHAR *option, const TCHAR *value, int d, int target)
 {
+    char lf = 10;
     TCHAR tmp[CONFIG_BLEN];
+    char tmpa[CONFIG_BLEN];
+    char *tmp1, *tmp2;
+    int utf8;
+    
+    utf8 = 0;
+    tmp1 = ua (value);
+    tmp2 = uutf8 (value);
+    if (strcmp (tmp1, tmp2))
+       utf8 = 1;
 
     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;
+       goto end;
     cfg_write (tmp, f);
+    if (utf8 && !unicode_config) {
+       char *opt = ua (option);
+       if (target)
+           sprintf (tmpa, "%s.%s.utf8=%s", TARGET_NAME, opt, tmp2);
+       else
+           sprintf (tmpa, "%s.utf8=%s", opt, tmp2);
+       xfree (opt);
+       zfile_fwrite (tmpa, strlen (tmpa), 1, f);
+       zfile_fwrite (&lf, 1, 1, f);
+    }
+end:
+    xfree (tmp2);
+    xfree (tmp1);
 }
 
 void cfgfile_write_bool (struct zfile *f, TCHAR *option, int b)
@@ -1828,6 +1853,54 @@ int cfgfile_parse_option (struct uae_prefs *p, TCHAR *option, TCHAR *value, int
     return 0;
 }
 
+static int isutf8ext (TCHAR *s)
+{
+    if (_tcslen (s) > _tcslen (UTF8NAME) && !_tcscmp (s + _tcslen (s) - _tcslen (UTF8NAME), UTF8NAME)) {
+       s[_tcslen (s) - _tcslen (UTF8NAME)] = 0;
+       return 1;
+    }
+    return 0;
+}
+
+static int cfgfile_separate_linea (char *line, TCHAR *line1b, TCHAR *line2b)
+{
+    char *line1, *line2;
+    int i;
+
+    line1 = line;
+    line2 = strchr (line, '=');
+    if (! line2) {
+       TCHAR *s = au (line1);
+       write_log (L"CFGFILE: linea was incomplete with only %s\n", s);
+       xfree (s);
+       return 0;
+    }
+    *line2++ = '\0';
+
+    /* Get rid of whitespace.  */
+    i = strlen (line2);
+    while (i > 0 && (line2[i - 1] == '\t' || line2[i - 1] == ' '
+                    || line2[i - 1] == '\r' || line2[i - 1] == '\n'))
+       line2[--i] = '\0';
+    line2 += strspn (line2, "\t \r\n");
+
+    i = strlen (line);
+    while (i > 0 && (line[i - 1] == '\t' || line[i - 1] == ' '
+                    || line[i - 1] == '\r' || line[i - 1] == '\n'))
+       line[--i] = '\0';
+    line += strspn (line, "\t \r\n");
+    au_copy (line1b, MAX_DPATH, line);
+    if (isutf8ext (line1b)) {
+       TCHAR *s = utf8u (line2);
+       _tcscpy (line2b, s);
+       xfree (s);
+    } else {
+        au_copy (line2b, MAX_DPATH, line2);
+    }
+
+    return 1;
+}
+
 static int cfgfile_separate_line (TCHAR *line, TCHAR *line1b, TCHAR *line2b)
 {
     TCHAR *line1, *line2;
@@ -1840,8 +1913,6 @@ static int cfgfile_separate_line (TCHAR *line, TCHAR *line1b, TCHAR *line2b)
        return 0;
     }
     *line2++ = '\0';
-    _tcscpy (line1b, line1);
-    _tcscpy (line2b, line2);
 
     /* Get rid of whitespace.  */
     i = _tcslen (line2);
@@ -1856,6 +1927,8 @@ static int cfgfile_separate_line (TCHAR *line, TCHAR *line1b, TCHAR *line2b)
        line[--i] = '\0';
     line += _tcsspn (line, L"\t \r\n");
     _tcscpy (line1b, line);
+    if (isutf8ext (line1b))
+       return 0;
     return 1;
 }
 
@@ -1924,7 +1997,7 @@ static void subst (TCHAR *p, TCHAR *f, int n)
     free (str);
 }
 
-static TCHAR *cfg_fgets (TCHAR *line, int max, struct zfile *fh)
+static char *cfg_fgets (char *line, int max, struct zfile *fh)
 {
 #ifdef SINGLEFILE
     extern TCHAR singlefile_config[];
@@ -1933,7 +2006,7 @@ static TCHAR *cfg_fgets (TCHAR *line, int max, struct zfile *fh)
 #endif
 
     if (fh)
-       return zfile_fgets (line, max, fh);
+       return zfile_fgetsa (line, max, fh);
 #ifdef SINGLEFILE
     if (sfile_ptr == 0) {
        sfile_ptr = singlefile_config;
@@ -1964,6 +2037,7 @@ static int cfgfile_load_2 (struct uae_prefs *p, const TCHAR *filename, int real,
 {
     int i;
     struct zfile *fh;
+    char linea[CONFIG_BLEN];
     TCHAR line[CONFIG_BLEN], line1b[CONFIG_BLEN], line2b[CONFIG_BLEN];
     struct strlist *sl;
     int type1 = 0, type2 = 0, askedtype = 0;
@@ -1984,12 +2058,12 @@ static int cfgfile_load_2 (struct uae_prefs *p, const TCHAR *filename, int real,
        return 0;
 #endif
 
-    while (cfg_fgets (line, sizeof (line) / sizeof (TCHAR), fh) != 0) {
-       trimws (line);
-       if (_tcslen (line) > 0) {
-           if (line[0] == '#' || line[0] == ';')
+    while (cfg_fgets (linea, sizeof (linea), fh) != 0) {
+       trimwsa (linea);
+       if (strlen (linea) > 0) {
+           if (linea[0] == '#' || linea[0] == ';')
                continue;
-           if (!cfgfile_separate_line (line, line1b, line2b))
+           if (!cfgfile_separate_linea (linea, line1b, line2b))
                continue;
            type1 = type2 = 0;
            if (cfgfile_yesno (line1b, line2b, L"config_hardware", &type1) ||
index 95cce1e2da1d85fb6a49b093254a39464214628e..7b0a5f83e752c397a901b963e4efb98a63806a34 100644 (file)
--- a/custom.c
+++ b/custom.c
@@ -3205,10 +3205,10 @@ static void BPLxPTL (int hpos, uae_u16 v, int num)
     decide_fetch (hpos);
     /* fix for "bitplane dma fetch at the same time while updating BPLxPTL" */
     /* fixes "3v Demo" by Cave and "New Year Demo" by Phoenix */
-    if (is_bitplane_dma (hpos) == num + 1 || is_bitplane_dma (hpos - 1) == num + 1) {
+    if (is_bitplane_dma (hpos) == num + 1 || is_bitplane_dma (hpos - 1) == num + 1 || is_bitplane_dma (hpos + 1) == num + 1) {
        delta = 2 << f_fetchmode;
     }
-    bplpt[num] = (bplpt[num] & 0xffff0000) | ((v + delta) & 0x0000fffe);
+    f_bplpt[num] = bplpt[num] = (bplpt[num] & 0xffff0000) | ((v + delta) & 0x0000fffe);
     bplptx[num] = (bplptx[num] & 0xffff0000) | ((v + delta) & 0x0000fffe);
     //write_log (L"%d:%d:BPL%dPTL %08X COP=%08x\n", hpos, vpos, num, bplpt[num], cop_state.ip);
 }
diff --git a/debug.c b/debug.c
index e4491caf072fb049a8d79962f55805cb07627e10..df3a550be53eb7a429b72e44dc4b935b272b9706 100644 (file)
--- a/debug.c
+++ b/debug.c
@@ -629,14 +629,12 @@ static void dump_vectors (uaecptr addr)
 
     while (int_labels[i].name || trap_labels[j].name) {
        if (int_labels[i].name) {
-           console_out_f (L"$%08X: %s  \t $%08X\t", int_labels[i].adr + addr,
+           console_out_f (L"$%08X %02d: %12s $%08X  ", int_labels[i].adr + addr, int_labels[i].adr / 4,
                int_labels[i].name, get_long (int_labels[i].adr + addr));
            i++;
-       } else {
-           console_out (L"\t\t\t\t");
        }
        if (trap_labels[j].name) {
-           console_out_f (L"$%08X: %s  \t $%08X", trap_labels[j].adr + addr,
+           console_out_f (L"$%08X %02d: %12s $%08X", trap_labels[j].adr + addr, trap_labels[j].adr / 4,
               trap_labels[j].name, get_long (trap_labels[j].adr + addr));
            j++;
        }
diff --git a/disk.c b/disk.c
index 7a3c5ccdc4dd0d9e012136b38d6f2288fafbb52b..e7e4457ea50e70c4e7ad3117ba5908f0d0888e8d 100644 (file)
--- a/disk.c
+++ b/disk.c
@@ -226,7 +226,7 @@ static void disk_checksum(uae_u8 *p, uae_u8 *c)
     c[0] = cs >> 24; c[1] = cs >> 16; c[2] = cs >> 8; c[3] = cs >> 0;
 }
 
-static int dirhash (const unsigned char *name)
+static int dirhash (const uae_char *name)
 {
     unsigned long hash;
     int i;
@@ -250,15 +250,15 @@ static void disk_date (uae_u8 *p)
 
     time (&t);
     today = localtime( &t );
-    _tcsftime (tmp, sizeof (tmp), L"%Y", today);
+    _tcsftime (tmp, sizeof (tmp) / sizeof (TCHAR), L"%Y", today);
     year = _tstoi (tmp);
-    _tcsftime (tmp, sizeof (tmp), L"%j", today);
+    _tcsftime (tmp, sizeof (tmp) / sizeof (TCHAR), L"%j", today);
     days = _tstoi (tmp) - 1;
-    _tcsftime (tmp, sizeof (tmp), L"%H", today);
+    _tcsftime (tmp, sizeof (tmp) / sizeof (TCHAR), L"%H", today);
     minutes = _tstoi (tmp) * 60;
-    _tcsftime (tmp, sizeof (tmp), L"%M", today);
+    _tcsftime (tmp, sizeof (tmp) / sizeof (TCHAR), L"%M", today);
     minutes += _tstoi (tmp);
-    _tcsftime (tmp, sizeof (tmp), L"%S", today);
+    _tcsftime (tmp, sizeof (tmp) / sizeof (TCHAR), L"%S", today);
     ticks = _tstoi (tmp) * 50;
     while (year > 1978) {
        if ( !(year % 100) ? !(year % 400) : !(year % 4) ) days++;
@@ -1859,11 +1859,11 @@ void DISK_ersatz_read (int tr, int sec, uaecptr dest)
 }
 
 /* type: 0=regular, 1=ext2adf */
-/* adftype: 0=DD,1=HD,2=525SD */
+/* adftype: 0=DD,1=HD,2=DD PC,3=HD PC,4=525SD */
 void disk_creatediskfile (TCHAR *name, int type, drive_type adftype, TCHAR *disk_name)
 {
     struct zfile *f;
-    int i, l, file_size, tracks, track_len;
+    int i, l, file_size, tracks, track_len, sectors;
     uae_u8 *chunk = NULL;
     uae_u8 tmp[3*4];
     uae_char *s;
@@ -1876,51 +1876,58 @@ void disk_creatediskfile (TCHAR *name, int type, drive_type adftype, TCHAR *disk
     else
        tracks = 2 * 80;
     file_size = 880 * 1024;
+    sectors = 11;
+    if (adftype == 2 || adftype == 3) {
+       file_size = 720 * 1024;
+       sectors = 9;
+    }
     track_len = FLOPPY_WRITE_LEN * 2;
-    if (adftype == 1) {
+    if (adftype == 1 || adftype == 3) {
        file_size *= 2;
        track_len *= 2;
-    } else if (adftype == 2) {
+    } else if (adftype == 4) {
        file_size /= 2;
        tracks /= 2;
     }
 
     f = zfile_fopen (name, L"wb");
-    chunk = xmalloc (16384);
+    chunk = xmalloc (32768);
     if (f && chunk) {
-       memset(chunk,0,16384);
-       if (type == 0 && adftype < 2) {
-           for (i = 0; i < file_size; i += 11264) {
-               memset(chunk, 0, 11264);
-               if (i == 0) {
-                   /* boot block */
-                   strcpy (chunk, "DOS");
-               } else if (i == file_size / 2) {
-                   int block = file_size / 1024;
-                   /* root block */
-                   chunk[0+3] = 2;
-                   chunk[12+3] = 0x48;
-                   chunk[312] = chunk[313] = chunk[314] = chunk[315] = (uae_u8)0xff;
-                   chunk[316+2] = (block + 1) >> 8; chunk[316+3] = (block + 1) & 255;
-                   s = ua (disk_name);
-                   chunk[432] = strlen (s);
-                   strcpy (chunk + 433, s);
-                   xfree (s);
-                   chunk[508 + 3] = 1;
-                   disk_date (chunk + 420);
-                   memcpy (chunk + 472, chunk + 420, 3 * 4);
-                   memcpy (chunk + 484, chunk + 420, 3 * 4);
-                   disk_checksum(chunk, chunk + 20);
-                   /* bitmap block */
-                   memset (chunk + 512 + 4, 0xff, 2 * file_size / (1024 * 8));
-                   if (adftype == 0)
-                       chunk[512 + 0x72] = 0x3f;
-                   else
-                       chunk[512 + 0xdc] = 0x3f;
-                   disk_checksum(chunk + 512, chunk + 512);
-
+       int cylsize = sectors * 2 * 512;
+       memset (chunk, 0, 32768);
+       if (type == 0) {
+           for (i = 0; i < file_size; i += cylsize) {
+               memset(chunk, 0, cylsize);
+               if (adftype <= 1) {
+                   if (i == 0) {
+                       /* boot block */
+                       strcpy (chunk, "DOS");
+                   } else if (i == file_size / 2) {
+                       int block = file_size / 1024;
+                       /* root block */
+                       chunk[0+3] = 2;
+                       chunk[12+3] = 0x48;
+                       chunk[312] = chunk[313] = chunk[314] = chunk[315] = (uae_u8)0xff;
+                       chunk[316+2] = (block + 1) >> 8; chunk[316+3] = (block + 1) & 255;
+                       s = ua (disk_name);
+                       chunk[432] = strlen (s);
+                       strcpy (chunk + 433, s);
+                       xfree (s);
+                       chunk[508 + 3] = 1;
+                       disk_date (chunk + 420);
+                       memcpy (chunk + 472, chunk + 420, 3 * 4);
+                       memcpy (chunk + 484, chunk + 420, 3 * 4);
+                       disk_checksum(chunk, chunk + 20);
+                       /* bitmap block */
+                       memset (chunk + 512 + 4, 0xff, 2 * file_size / (1024 * 8));
+                       if (adftype == 0)
+                           chunk[512 + 0x72] = 0x3f;
+                       else
+                           chunk[512 + 0xdc] = 0x3f;
+                       disk_checksum(chunk + 512, chunk + 512);
+                   }
                }
-               zfile_fwrite (chunk, 11264, 1, f);
+               zfile_fwrite (chunk, cylsize, 1, f);
            }
        } else {
            l = track_len;
@@ -1932,11 +1939,13 @@ void disk_creatediskfile (TCHAR *name, int type, drive_type adftype, TCHAR *disk
            tmp[2] = 0; tmp[3] = 1; /* track type */
            tmp[4] = 0; tmp[5] = 0; tmp[6]=(uae_u8)(l >> 8); tmp[7] = (uae_u8)l;
            tmp[8] = 0; tmp[9] = 0; tmp[10] = 0; tmp[11] = 0;
-           for (i = 0; i < tracks; i++) zfile_fwrite (tmp, sizeof (tmp), 1, f);
-           for (i = 0; i < tracks; i++) zfile_fwrite (chunk, l, 1, f);
+           for (i = 0; i < tracks; i++)
+               zfile_fwrite (tmp, sizeof (tmp), 1, f);
+           for (i = 0; i < tracks; i++)
+               zfile_fwrite (chunk, l, 1, f);
        }
     }
-    free (chunk);
+    xfree (chunk);
     zfile_fclose (f);
 }
 
index 0243c1081fd8f81576ab2122a898514195424dec..b519313766bf5354f4c06517307ec336bcc00391 100644 (file)
@@ -1991,7 +1991,7 @@ clipboard_task:
        move.l #$10001,d1
        jsr AllocMem(a6)
        tst.l d0
-       beq.s clipdie
+       beq.w clipdie
        move.l d0,a5
 
        move.l a6,CLIP_EXEC(a5)
@@ -2006,17 +2006,44 @@ clipboard_task:
        move.l a5,d0
        jsr (a0)
 
+       moveq #0,d4
+       moveq #0,d5
+
+       ;move.l d0,$100.w
+
 .wait
        moveq #0,d0
        bset #13,d0
        jsr -$013e(a6) ;Wait
+
        jsr -$0084(a6) ;Forbid
+
+       tst.l d4
+       bne.s .wait2
        lea 378(a6),a0 ;LibList
        lea doslibname(pc),a1
        jsr -$114(a6) ;FindName
-       move.l d0,d2
+       move.l d0,d4
+       bra.s .wait3
+.wait2
+
+       moveq #1,d5
+;      exg d4,a6
+;      moveq #(1<<0)+(1<<4),d1 ;LDF_READ | LDF_ASSIGNS
+;      jsr -$28E(a6) ;LockDosList
+;      move.l d0,d1
+;      lea devsn_name(pc),a0
+;      move.l a0,d2
+;      moveq #(1<<4),d3 ;LDF_ASSIGNS
+;      jsr -$2AC(a6) ;FindDosEntry
+;      move.l d0,d5
+;      moveq #(1<<0)+(1<<4),d1 ;LDF_READ | LDF_ASSIGNS
+;      jsr -$294(a6) ;UnLockDosList
+;      exg d4,a6
+
+.wait3
        jsr -$008a(a6) ;Permit
-       tst.l d2
+       tst.l d5
        beq.s .wait
 
        clr.l CLIP_TASK(a5)
@@ -2031,11 +2058,15 @@ clipboard_task:
        moveq #0,d0
        rts
 
-clipdie:
+clipkill
        move.w #$FF38,d0
        moveq #10,d1
        bsr.w getrtbase
        jsr (a0)
+       rts
+
+clipdie:
+       bsr.s clipkill
        move.l a5,d0
        beq.s .cd1
        move.l CLIP_EXEC(a5),a6
@@ -2152,6 +2183,7 @@ clipboard_proc:
 .devsloop
        moveq #50,d1
        jsr -$00c6(a6) ;Delay
+       ;move.l d0,$104.w
        lea devs_name(pc),a0
        move.l a0,d1
        moveq #-2,d2
@@ -2196,10 +2228,11 @@ 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..
+       ;too lazy to free everything..
+       bsr.w clipkill
 cfloop3
        moveq #0,d0
-       jsr -$013e(a6)
+       jsr -$013e(a6) ;Wait
        bra.s cfloop3
        
 cfversion
@@ -2350,6 +2383,7 @@ cliphook:
 
 inp_dev: dc.b 'input.device',0
 tim_dev: dc.b 'timer.device',0
+devsn_name: dc.b 'DEVS',0
 devs_name: dc.b 'DEVS:',0
 clip_name: dc.b 'DEVS:clipboard.device',0
 ram_name: dc.b 'RAM:',0
index 5af405d9918a1730c1f7c3c8cbe3c31bdc0b08fd..c7febfe8dbfe9f2b9204d8a1923f5f2f17e01a0c 100644 (file)
--- a/filesys.c
+++ b/filesys.c
@@ -4941,7 +4941,7 @@ void filesys_cleanup (void)
     free_mountinfo ();
 }
 
-void filesys_free_handles(void)
+void filesys_free_handles (void)
 {
     Unit *u, *u1;
     for (u = units; u; u = u1) {
@@ -4954,6 +4954,9 @@ void filesys_free_handles(void)
            xfree (k1);
        }
        u->keys = NULL;
+       free_all_ainos (u, &u->rootnode);
+       u->rootnode.next = u->rootnode.prev = &u->rootnode;
+       u->aino_cache_size = 0;
        xfree (u->newrootdir);
        xfree (u->newvolume);
        u->newrootdir = NULL;
@@ -5007,6 +5010,7 @@ static void filesys_prepare_reset2 (void)
     }
 #endif
     filesys_free_handles();
+#if 0
     u = units;
     while (u != 0) {
        free_all_ainos (u, &u->rootnode);
@@ -5014,6 +5018,7 @@ static void filesys_prepare_reset2 (void)
        u->aino_cache_size = 0;
        u = u->next;
     }
+#endif
 }
 
 void filesys_prepare_reset (void)
index 1c70b4b80bfc46cdabc1dfbc215ae129de7a7291..08a8026c52aac3f4bacd2246c8c744189e56f46c 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(0x78);
+ db(0x00); db(0x00); db(0x0d); db(0x5c); db(0x43); db(0xfa); db(0x16); db(0x95);
  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(0x81); db(0x70); db(0x24);
+ db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x16); db(0x9e); 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(0x71); db(0x70); db(0x00);
+ db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x16); db(0x8e); 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(0x7c);
+ db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x15); db(0x99);
  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(0x76); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x15); db(0x93); 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(0x27);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x15); db(0x44);
  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(0xff); db(0x23); db(0x48);
+ db(0x22); db(0x40); db(0x41); db(0xfa); db(0x14); db(0x1c); 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(0x83); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b);
+ db(0x13); db(0xa0); 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(0xd5); db(0x10); db(0x19); db(0x12); db(0x1a);
+ db(0x45); db(0xfa); db(0x12); db(0xf2); 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(0xab); db(0x25); db(0x48);
- db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x12); db(0x27); db(0x25); db(0x48);
+ db(0x00); db(0x08); db(0x41); db(0xfa); db(0x12); db(0xc8); db(0x25); db(0x48);
+ db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x12); db(0x44); 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(0xa4); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0x43); db(0xfa); db(0x0d); db(0xc1); 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(0x9f);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0d); db(0xbc);
  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(0x8d); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x0d); db(0xaa); 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(0xf4); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0x43); db(0xfa); db(0x0d); db(0x11); 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(0xf0);
+ db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0c); db(0x08);
  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(0xed);
+ db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0c); db(0x05);
  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(0x48); db(0x43); db(0xfa); db(0x01); db(0x5c);
+ db(0x41); db(0xfa); db(0x09); db(0x65); 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(0x8c);
+ db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x07); db(0xa9);
  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(0xaa); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x07); db(0xc7); 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(0xa0); db(0x70); db(0x00);
+ db(0x66); db(0xc4); db(0x43); db(0xfa); db(0x07); db(0xbd); 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(0x94); db(0x4e); db(0xae); db(0xfe); db(0xec);
+ db(0x43); db(0xfa); db(0x06); db(0xac); 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(0x82); db(0x70); db(0x00);
+ db(0x67); db(0x8c); db(0x41); db(0xfa); db(0x06); db(0x9a); 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(0x61); db(0x4e); db(0xae); db(0xfe); db(0xec);
+ db(0x43); db(0xfa); db(0x06); db(0x79); 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(0x4d);
+ db(0x67); db(0x00); db(0xff); db(0x4c); db(0x41); db(0xfa); db(0x06); db(0x65);
  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(0x46);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x04); db(0x63);
  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(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x5e); db(0x2a); db(0x40);
- db(0x2b); db(0x4e); 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(0x30); db(0x3c);
- db(0xff); db(0x38); db(0x72); db(0x0e); db(0x61); db(0x00); db(0xf9); db(0x9a);
- 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(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(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(0x72); db(0x0a); db(0x61); db(0x00); db(0xf9); db(0x4c); db(0x4e); db(0x90);
- db(0x20); db(0x0d); db(0x67); db(0x1c); db(0x2c); db(0x6d); db(0x00); db(0x14);
- db(0x20); db(0x2d); db(0x00); db(0x18); db(0x67); db(0x06); db(0x22); db(0x40);
- 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(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(0x00); db(0x02); db(0x24); db(0x0a); db(0x54); db(0x82); db(0x76); db(0x02);
- db(0x22); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xd6); db(0xb6); db(0x80);
- db(0x66); db(0x32); db(0x0c); db(0x92); db(0x50); db(0x4e); db(0x54); db(0x52);
- db(0x66); db(0xe4); db(0x24); db(0x0a); db(0x76); db(0x04); db(0x22); db(0x04);
- db(0x4e); db(0xae); db(0xff); db(0xd6); db(0x24); db(0x0a); db(0x76); db(0x20);
- db(0x22); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xd6); db(0xb6); db(0x80);
- db(0x66); db(0x12); db(0x4a); db(0x6a); db(0x00); db(0x10); db(0x66); db(0xc4);
- db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x10); db(0x61); db(0x00);
- 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(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(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(0xfc); db(0x88); db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x4e); db(0x75);
- db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
- db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0d); db(0x61); db(0x00);
- 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(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(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(0x22); db(0x22); db(0x08);
+ db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0x7a);
+ db(0x2a); db(0x40); db(0x2b); db(0x4e); 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(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0e); db(0x61); db(0x00);
+ db(0xf9); db(0x98); db(0x20); db(0x0d); db(0x4e); db(0x90); db(0x78); db(0x00);
+ db(0x7a); db(0x00); 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(0x4a); db(0x84); db(0x66); db(0x10); db(0x41); db(0xee); db(0x01); db(0x7a);
+ db(0x43); db(0xfa); db(0x04); db(0x61); db(0x4e); db(0xae); db(0xfe); db(0xec);
+ db(0x28); db(0x00); db(0x60); db(0x02); db(0x7a); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x76); db(0x4a); db(0x85); db(0x67); db(0xd4); db(0x42); db(0xad);
+ db(0x00); db(0x08); db(0x41); db(0xfa); db(0x03); db(0xe5); db(0x43); db(0xfa);
+ db(0x01); db(0x10); db(0x70); db(0xf6); db(0x22); db(0x3c); db(0x00); db(0x00);
+ db(0x27); db(0x10); db(0x61); db(0x00); db(0xee); db(0x92); db(0x70); db(0x00);
+ db(0x4e); db(0x75); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0a);
+ db(0x61); db(0x00); db(0xf9); db(0x3e); db(0x4e); db(0x90); db(0x4e); db(0x75);
+ db(0x61); db(0xf0); db(0x20); db(0x0d); db(0x67); db(0x1c); db(0x2c); db(0x6d);
+ db(0x00); db(0x14); db(0x20); db(0x2d); db(0x00); db(0x18); db(0x67); db(0x06);
+ db(0x22); db(0x40); 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(0x77); 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(0x00); db(0x02); db(0x24); db(0x0a); db(0x54); db(0x82);
+ db(0x76); db(0x02); db(0x22); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xd6);
+ db(0xb6); db(0x80); db(0x66); db(0x32); db(0x0c); db(0x92); db(0x50); db(0x4e);
+ db(0x54); db(0x52); db(0x66); db(0xe4); db(0x24); db(0x0a); db(0x76); db(0x04);
+ db(0x22); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xd6); db(0x24); db(0x0a);
+ db(0x76); db(0x20); db(0x22); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xd6);
+ db(0xb6); db(0x80); db(0x66); db(0x12); db(0x4a); db(0x6a); db(0x00); db(0x10);
+ db(0x66); db(0xc4); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x10);
+ db(0x61); db(0x00); db(0xf8); db(0xae); 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(0xef); 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(0xdf); 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(0xfc); db(0x88); db(0x2c); db(0x6d); db(0x00); db(0x14);
+ db(0x4e); db(0x75); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
+ db(0x00); db(0x00); db(0x00); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x38);
+ db(0x72); db(0x0d); db(0x61); db(0x00); db(0xf8); db(0x3c); db(0x4e); db(0x90);
+ db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xfc); 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(0x03); db(0x0b); 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(0xd8); db(0x2c); db(0x40); db(0x72); db(0x32); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0x41); 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(0xf7); db(0xfc); db(0x72); db(0x00); db(0x32); db(0x3c); db(0x00); db(0x34);
- 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(0xfb);
- db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44); db(0x4a); db(0x80);
- 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(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(0x2b); 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(0xa2);
+ 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(0xf7); db(0xe8); db(0x72); db(0x00);
+ db(0x32); db(0x3c); db(0x00); db(0x34); db(0x61); db(0x00); db(0xf8); db(0x2c);
+ db(0x28); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0x82);
+ 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(0x02); db(0x04); db(0x22); db(0x4c); db(0x4e); db(0xae);
+ db(0xfe); db(0x44); db(0x4a); db(0x80); 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(0x0c); db(0x61); db(0x00); db(0xfe); db(0x46); 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(0xff); db(0x38); db(0x72); db(0x0f); db(0x61); db(0x00); db(0xf7); db(0x7a);
+ db(0x4e); db(0x90); db(0x61); db(0x00); db(0xfe); db(0xd8); 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(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(0x67); db(0x06); db(0x61); db(0x00); db(0xfe); db(0x22); 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(0x61); db(0x00); db(0xf7); db(0x16); 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(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(0x58); db(0x20); db(0x2c); db(0x00); db(0x20); db(0x4e); db(0x90);
+ db(0xf6); db(0x40); 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(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(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(0x44); db(0x45); db(0x56); db(0x53); 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(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(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(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(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(0x69); db(0x6e); db(0x74); db(0x75); db(0x69); db(0x74);
+ 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(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(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(0x03); db(0xf2);
 
diff --git a/fsdb.c b/fsdb.c
index 6129ab4f131ffcabc4a279591127ae481be03b55..c1741050ba8fbb326d1c860d536dda55a256b20a 100644 (file)
--- a/fsdb.c
+++ b/fsdb.c
@@ -80,7 +80,7 @@ static FILE *get_fsdb (a_inode *dir, const TCHAR *mode)
 
     n = build_nname (dir->nname, FSDB_FILE);
     f = _tfopen (n, mode);
-    free (n);
+    xfree (n);
     return f;
 }
 
@@ -101,13 +101,13 @@ static void fsdb_fixup (FILE *f, TCHAR *buf, int size, a_inode *base)
     nname = build_nname (base->nname, buf + 5 + 257);
     ret = fsdb_exists (nname);
     if (ret) {
-       free (nname);
+       xfree (nname);
        return;
     }
     TRACE ((L"uaefsdb '%s' deleted\n", nname));
     /* someone deleted this file/dir outside of emulation.. */
     buf[0] = 0;
-    free (nname);
+    xfree (nname);
 }
 
 /* Prune the db file the first time this directory is opened in a session.  */
@@ -121,7 +121,7 @@ void fsdb_clean_dir (a_inode *dir)
     n = build_nname (dir->nname, FSDB_FILE);
     f = _tfopen (n, L"r+b");
     if (f == 0) {
-       free (n);
+       xfree (n);
        return;
     }
     for (;;) {
@@ -140,7 +140,7 @@ void fsdb_clean_dir (a_inode *dir)
     }
     fclose (f);
     my_truncate (n, pos1);
-    free (n);
+    xfree (n);
 }
 
 static a_inode *aino_from_buf (a_inode *base, uae_u8 *buf, long off)
@@ -267,7 +267,7 @@ static int needs_dbentry (a_inode *aino)
 
 static void write_aino (FILE *f, a_inode *aino)
 {
-    uae_u8 buf[1 + 4 + 257 + 257 + 81];
+    uae_u8 buf[1 + 4 + 257 + 257 + 81] = { 0 };
 
     buf[0] = aino->needs_dbentry;
     do_put_mem_long ((uae_u32 *)(buf + 1), aino->amigaos_mode);
@@ -378,5 +378,5 @@ void fsdb_dir_writeback (a_inode *dir)
     }
     TRACE ((L"end\n"));
     fclose (f);
-    free (tmpbuf);
+    xfree (tmpbuf);
 }
index 7aeca076658c09f0ae5bdd50e7d1189d797a7c3f..c3d85a3f26072a58c5846ae1134e2b832309a5db 100644 (file)
@@ -21,7 +21,8 @@ extern uae_s64 zfile_fseek (struct zfile *z, uae_s64 offset, int mode);
 extern uae_s64 zfile_ftell (struct zfile *z);
 extern size_t zfile_fread  (void *b, size_t l1, size_t l2, struct zfile *z);
 extern size_t zfile_fwrite  (void *b, size_t l1, size_t l2, struct zfile *z);
-extern TCHAR *zfile_fgets(TCHAR *s, int size, struct zfile *z);
+extern TCHAR *zfile_fgets (TCHAR *s, int size, struct zfile *z);
+extern char *zfile_fgetsa (char *s, int size, struct zfile *z);
 extern size_t zfile_fputs (struct zfile *z, TCHAR *s);
 extern int zfile_getc (struct zfile *z);
 extern int zfile_putc (int c, struct zfile *z);
index 0127f3962acefc759d3c0cdb6241fe2e7da5ec69..67206fdb79d1ad9d84d190abd219a42933a85a52 100644 (file)
@@ -642,7 +642,7 @@ uae_u32 REGPARAM2 ahi_demux (TrapContext *context)
            TCHAR *filepart;
 
            dllptr = m68k_areg (&context->regs, 0);
-           dllname = (TCHAR *)get_real_address (dllptr);
+           dllname = au ((uae_char*)get_real_address (dllptr));
            dpath[0] = 0;
            GetFullPathName (dllname, sizeof dpath / sizeof (TCHAR), dpath, &filepart);
            if (_tcslen (dpath) > _tcslen (start_path_data) && !_tcsncmp (dpath, start_path_data, _tcslen (start_path_data))) {
@@ -664,6 +664,7 @@ uae_u32 REGPARAM2 ahi_demux (TrapContext *context)
            } else {
                write_log (L"native open outside of installation dir '%s'!\n", dpath);
            }
+           xfree (dllname);
 #if 0
            if (h == NULL) {
                h = LoadLibrary (filepart);
index 7c4e0b4345957656466450aaa64d3c402c0acc4f..6f9e91814b3be77f58dbccf4cbe16c456e3a713a 100644 (file)
@@ -101,7 +101,7 @@ static void OutputCurrHistNode(HWND hWnd)
 
     if (currhist->command) {
        txtlen = GetWindowTextLength(hWnd);
-       buf = malloc(txtlen + 1);
+       buf = xmalloc((txtlen + 1) * sizeof (TCHAR));
        GetWindowText(hWnd, buf, txtlen + 1);
        if (_tcscmp(buf, currhist->command)) {
            SetWindowText(hWnd, currhist->command);
@@ -241,9 +241,8 @@ void WriteOutput(const TCHAR *out, int len)
            pos = p - tmp + 1;
            if (pos > (MAX_LINEWIDTH + 1))
                pos = MAX_LINEWIDTH + 1;
-           buf = xmalloc(pos + 2);
-           memset(buf, 0, pos + 2);
-           _tcsncmp(buf, tmp, pos - 1);
+           buf = xcalloc(pos + 2, sizeof (TCHAR));
+           _tcsncpy(buf, tmp, pos - 1);
            _tcscat(buf, linebreak);
        } else if (_tcslen(tmp) == 0) {
            leave = 1;
@@ -252,9 +251,8 @@ void WriteOutput(const TCHAR *out, int len)
            index = SendMessage(hOutput, EM_LINEINDEX, count - 1, 0);
            txtlen = SendMessage(hOutput, EM_LINELENGTH, index, 0);
            if (_tcslen(tmp) + txtlen > MAX_LINEWIDTH) {
-               buf = xmalloc(MAX_LINEWIDTH + 3 - txtlen);
-               memset(buf, 0, MAX_LINEWIDTH + 3 - txtlen);
-               _tcsncmp(buf, tmp, MAX_LINEWIDTH - txtlen);
+               buf = xcalloc(MAX_LINEWIDTH + 3 - txtlen, sizeof (TCHAR));
+               _tcsncpy(buf, tmp, MAX_LINEWIDTH - txtlen);
                _tcscat(buf, linebreak);
            }
            leave = 1;
@@ -1020,12 +1018,12 @@ static void ListboxEndEdit(HWND hwnd, BOOL acceptinput)
        if (acceptinput) {
                int index = dbgpage[currpage].selection, id = GetDlgCtrlID(hwnd);
                if (id == IDC_DBG_DREG) {
-                       _tcsncmp(hexstr + 2, txt, 8);
+                       _tcsncpy(hexstr + 2, txt, 8);
                        hexstr[10] = '\0';
                        m68k_dreg(&regs, index) = _tcstoul(hexstr, NULL, 0);
                }
                else if (id == IDC_DBG_AREG) {
-                       _tcsncmp(hexstr + 2, txt, 8);
+                       _tcsncpy(hexstr + 2, txt, 8);
                        hexstr[10] = '\0';
                        m68k_areg(&regs, index) = _tcstoul(hexstr, NULL, 0);
                }
@@ -1048,14 +1046,14 @@ static void ListboxEndEdit(HWND hwnd, BOOL acceptinput)
                                bytes = 16;
                        }
                        else if (id == IDC_DBG_MEM || id == IDC_DBG_MEM2) {
-                               _tcsncmp(hexstr + 2, tmp, 8);
+                               _tcsncpy(hexstr + 2, tmp, 8);
                                hexstr[10] = '\0';
                                addr = _tcstoul(hexstr, NULL, 0);
                                offset = 9;
                                bytes = 16;
                        }
                        else if (id == IDC_DBG_DASM || id == IDC_DBG_DASM2) {
-                               _tcsncmp(hexstr + 2, tmp, 8);
+                               _tcsncpy(hexstr + 2, tmp, 8);
                                hexstr[10] = '\0';
                                addr = _tcstoul(hexstr, NULL, 0);
                                bytes = 0;
@@ -1235,7 +1233,7 @@ static void ListboxEdit(HWND hwnd, int x, int y)
                        ListboxEndEdit(hwnd, FALSE);
                        return;
                }
-               _tcsncmp(tmp, txt + offset, length);
+               _tcsncpy(tmp, txt + offset, length);
                tmp[length] = '\0';
                radjust = GetTextSize(hwnd, tmp, TRUE);
        }
@@ -1243,7 +1241,7 @@ static void ListboxEdit(HWND hwnd, int x, int y)
                length = 20;
        else
                length = _tcslen(txt + offset);
-       _tcsncmp(tmp, txt, offset);
+       _tcsncpy(tmp, txt, offset);
        tmp[offset] = '\0';
        ri.left += GetTextSize(hwnd, tmp, TRUE);
        if (radjust)
@@ -1947,7 +1945,7 @@ static LRESULT CALLBACK DebuggerProc (HWND hDlg, UINT message, WPARAM wParam, LP
                if (wParam == IDC_DBG_DASM || wParam == IDC_DBG_DASM2) {
                        TCHAR addrstr[11] = { '0', 'x', '\0'}, *btemp;
                        int i, j, size = rc.bottom - rc.top;
-                       _tcsncmp(addrstr + 2, text, 8);
+                       _tcsncpy(addrstr + 2, text, 8);
                        addrstr[10] = 0;
                        addr = _tcstoul(addrstr, NULL, 0);
                        for (i = 0; i < BREAKPOINT_TOTAL; i++) {
@@ -1967,11 +1965,11 @@ static LRESULT CALLBACK DebuggerProc (HWND hDlg, UINT message, WPARAM wParam, LP
                                if (!_tcsncmp(text + 34, ucbranch[i], _tcslen(ucbranch[i]))) {
                                        btemp = _tcschr(text + 34, '=');
                                        if (btemp)
-                                               _tcsncmp(addrstr + 2, btemp + 4, 8);
+                                               _tcsncpy(addrstr + 2, btemp + 4, 8);
                                        else {
                                                int pos = 34 + _tcslen(ucbranch[i]) + 3;
                                                if (text[pos] == '$')   //absolute addressing
-                                                       _tcsncmp(addrstr + 2, text + pos + 1, 8);
+                                                       _tcsncpy(addrstr + 2, text + pos + 1, 8);
                                                else if (text[pos] == '(' && _istdigit(text[pos + 2])) { //address register indirect
                                                        int reg = _tstoi(text + pos + 2);
                                                        uae_u32 loc = m68k_areg (&regs, reg);
@@ -1990,7 +1988,7 @@ static LRESULT CALLBACK DebuggerProc (HWND hDlg, UINT message, WPARAM wParam, LP
                                                if (!_tcsncmp(text + 34 + _tcslen(cbranch[i]), ccode[j], _tcslen(ccode[j]))) {
                                                        btemp = _tcschr(text + 34, '=');
                                                        if (btemp)
-                                                               _tcsncmp(addrstr + 2, btemp + 4, 8);
+                                                               _tcsncpy(addrstr + 2, btemp + 4, 8);
                                                        break;
                                                }
                                                j++;
@@ -2102,7 +2100,7 @@ int console_get_gui (TCHAR *out, int maxlen)
                        console_out(L"\n");
                        console_out(internalcmd);
                        console_out(L"\n");
-                       _tcsncmp(out, internalcmd, maxlen);
+                       _tcsncpy(out, internalcmd, maxlen);
                        return _tcslen(out);
                }
                else
index 754979e57fe2b5cfce2030c490266c7044f5b329..5ed5854b7a30cf697fa836e580adf0092130c26d 100644 (file)
@@ -448,6 +448,7 @@ void *open_tablet (HWND hwnd)
     LOGCONTEXT lc;
     AXIS tx = { 0 }, ty = { 0 }, tz = { 0 };
     AXIS pres = { 0 };
+    int xm, ym, zm;
 
     if (!tablet)
        return 0;
@@ -458,6 +459,9 @@ void *open_tablet (HWND hwnd)
     WTInfo (WTI_DEVICES, DVC_X, &tx);
     WTInfo (WTI_DEVICES, DVC_Y, &ty);
     WTInfo (WTI_DEVICES, DVC_NPRESSURE, &pres);
+    WTInfo (WTI_DEVICES, DVC_XMARGIN, &xm);
+    WTInfo (WTI_DEVICES, DVC_YMARGIN, &ym);
+    WTInfo (WTI_DEVICES, DVC_ZMARGIN, &zm);
     xmax = tx.axMax;
     ymax = ty.axMax;
     if (WTInfo (WTI_DEVICES, DVC_Z, &tz))
@@ -518,6 +522,7 @@ static int initialize_tablet (void)
        write_log (L"Tablet: WTInfo() returned failure\n");
        return 0;
     }
+    name[0] = 0;
     WTInfo (WTI_DEVICES, DVC_NAME, name);
     axmax = aymax = azmax = -1;
     tilt = WTInfo (WTI_DEVICES, DVC_ORIENTATION, &ori);
index 47383e9e48e240ab1cd9b3fd4bd8ffc5be78f7b1..7ef69d06b081241f4fcd99b799ee5857edac9ec7 100644 (file)
@@ -222,7 +222,6 @@ static void create_uaefsdb (a_inode *aino, uae_u8 *buf, int winmode)
     _tcsncpy ((TCHAR*)(buf + 604), aino->nname, 256);
     _tcsncpy ((TCHAR*)(buf + 1118), nn, 256);
     aino->has_dbentry = 0;
-    aino->dirty = 0;
 }
 
 static a_inode *aino_from_buf (a_inode *base, uae_u8 *buf, int *winmode)
index 83a41ad293fb3c5ac698b2d1825f6cc4b7e276eb..1cfb6a198766766142a072046ffe9481c554c419 100644 (file)
 #define IDS_SB_FAVORITENAME             334
 #define IDD_DBGMEMINPUT                 335
 #define IDS_SB_CUSTOMEVENT              335
+#define IDS_FLOPPYTYPE35DDPC            336
+#define IDS_FLOPPYTYPE35HDPC            337
 #define IDS_QS_MODELS                   1000
 #define IDS_QS_MODEL_A500               1001
 #define IDS_QS_MODEL_A500P              1002
 #define IDC_PORT1_JOYS                  1027
 #define IDC_SCREENMODE_RTG              1027
 #define IDC_MBMEM1                      1028
-#define IDC_PORT_TABLE_CURSOR           1028
 #define IDC_PORT_TABLET_CURSOR          1028
 #define IDC_SLOWMEM                     1030
 #define IDC_MBMEM2                      1031
index 8cfb0d16a6ae73544ee12db4ab9eca56dae1a025..ce35a260b9460a14309ee5dc60c71c44124a50fb 100644 (file)
@@ -239,9 +239,9 @@ BEGIN
     PUSHBUTTON      "Eject",IDC_EJECT3,253,110,30,15\r
     PUSHBUTTON      "...",IDC_DF3,287,109,10,15\r
     GROUPBOX        "New Floppy Disk Image",IDC_SETTINGSTEXT,5,183,289,49\r
-    COMBOBOX        IDC_FLOPPYTYPE,16,197,51,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Create Standard Disk [] Creates a standard 880 or 1760 KB ADF disk image.",IDC_CREATE,77,196,97,15\r
-    PUSHBUTTON      "Create Custom Disk [] Creates a low level (MFM) ADF disk image (about 2MB). Useful for programs that use non-standard disk formats (for example some save disks or DOS-formatted floppies)",IDC_CREATE_RAW,183,196,101,15\r
+    COMBOBOX        IDC_FLOPPYTYPE,12,197,64,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+    PUSHBUTTON      "Create Standard Disk [] Creates a standard 880 or 1760 KB ADF disk image.",IDC_CREATE,81,196,97,15\r
+    PUSHBUTTON      "Create Custom Disk [] Creates a low level (MFM) ADF disk image (about 2MB). Useful for programs that use non-standard disk formats (for example some save disks or DOS-formatted floppies)",IDC_CREATE_RAW,187,196,101,15\r
     GROUPBOX        "Floppy Drive Emulation Speed",IDC_SETTINGSTEXT2,5,144,289,35\r
     CONTROL         "",IDC_FLOPPYSPD,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,32,154,116,20\r
     EDITTEXT        IDC_FLOPPYSPDTEXT,183,157,101,12,ES_CENTER | ES_READONLY\r
@@ -249,7 +249,7 @@ BEGIN
     PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE1,43,40,70,15,NOT WS_VISIBLE\r
     PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE2,43,75,70,15,NOT WS_VISIBLE\r
     PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE3,43,110,70,15,NOT WS_VISIBLE\r
-    EDITTEXT        IDC_CREATE_NAME,77,215,97,13,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_CREATE_NAME,81,215,97,13,ES_AUTOHSCROLL\r
     RTEXT           "Disk label:",IDC_STATIC,15,216,52,10,SS_CENTERIMAGE\r
     CONTROL         "DF0:",IDC_DF0ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,6,34,15\r
     CONTROL         "DF1:",IDC_DF1ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,41,34,15\r
@@ -1425,6 +1425,12 @@ BEGIN
     IDS_QS_MODEL_A4000T     "A4000T (test)\nA4000T"\r
 END\r
 \r
+STRINGTABLE \r
+BEGIN\r
+    IDS_FLOPPYTYPE35DDPC    "3.5"" DD (PC)"\r
+    IDS_FLOPPYTYPE35HDPC    "3.5"" HD (PC)"\r
+END\r
+\r
 #endif    // English (U.S.) resources\r
 /////////////////////////////////////////////////////////////////////////////\r
 \r
index 4cef6683e422a1ab2dfc8e601e8d051b9fa5b02c..743e5d9cc8759a38cab0bc62ec946c2445b8fb5e 100644 (file)
@@ -25,11 +25,11 @@ WCHAR *utf8u (const char *s)
 
     if (s == NULL)
        return NULL;
-    len = MultiByteToWideChar (CP_UTF8, MB_PRECOMPOSED, s, -1, NULL, 0);
+    len = MultiByteToWideChar (CP_UTF8, 0, 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);
+    MultiByteToWideChar (CP_UTF8, 0, s, -1, d, len);
     return d;
 }
 
index 577207e335a3fb2527c218b3b326c057cfc3feef..1f7c8d6ade034b02ce4fbff695234ef31e37dc50 100644 (file)
@@ -793,7 +793,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
     return 0;
     case WM_LBUTTONDOWN:
     case WM_LBUTTONDBLCLK:
-       if (!mouseactive && isfullscreen() <= 0 && !gui_active && !mousehack_alive ()) {
+       if (!mouseactive && isfullscreen() <= 0 && !gui_active && (!mousehack_alive () || currprefs.input_tablet != TABLET_MOUSEHACK)) {
            setmouseactive (1);
        } else if (dinput_winmouse () >= 0 && isfocus ()) {
            setmousebuttonstate (dinput_winmouse (), 0, 1);
@@ -956,10 +956,13 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
     case WM_MOUSEMOVE:
     {
        int wm = dinput_winmouse ();
+
        mx = (signed short) LOWORD (lParam);
        my = (signed short) HIWORD (lParam);
        mx -= mouseposx;
        my -= mouseposy;
+
+       //write_log(L"%d %d %d %d\n", mx, my, mouseposx, mouseposy);
        if (recapture && isfullscreen () <= 0) {
            setmouseactive (1);
            return 0;
index 2001b5a326dd4f0ef390632bc7476a634de8959a..35259ea655b89528abfbe97221e9704513e1d1b5 100644 (file)
@@ -17,8 +17,8 @@
 
 #define WINUAEPUBLICBETA 1
 
-#define WINUAEBETA L"17"
-#define WINUAEDATE MAKEBD(2009, 3, 15)
+#define WINUAEBETA L"18"
+#define WINUAEDATE MAKEBD(2009, 3, 22)
 #define WINUAEEXTRA L""
 #define WINUAEREV L""
 
index bdabc4b137e32f6239c5b290eb8f155ef6ac8f51..475b1f5bd74c34368085b97c1dce7b7c432f6cb2 100644 (file)
@@ -8467,11 +8467,13 @@ static INT_PTR CALLBACK FloppyDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA
     {
        case WM_INITDIALOG:
        {
-           TCHAR ft35dd[20], ft35hd[20], ft525sd[20], ftdis[20], ft35ddescom[20];
+           TCHAR ft35dd[20], ft35hd[20], ft35ddpc[20], ft35hdpc[20],  ft525sd[20], ftdis[20], ft35ddescom[20];
            int df0texts[] = { IDC_DF0TEXT, IDC_DF1TEXT, IDC_DF2TEXT, IDC_DF3TEXT, -1 };
 
            WIN32GUI_LoadUIString (IDS_FLOPPYTYPE35DD, ft35dd, sizeof ft35dd / sizeof (TCHAR));
            WIN32GUI_LoadUIString (IDS_FLOPPYTYPE35HD, ft35hd, sizeof ft35hd / sizeof (TCHAR));
+           WIN32GUI_LoadUIString (IDS_FLOPPYTYPE35DDPC, ft35ddpc, sizeof ft35ddpc / sizeof (TCHAR));
+           WIN32GUI_LoadUIString (IDS_FLOPPYTYPE35HDPC, ft35hdpc, sizeof ft35hdpc / sizeof (TCHAR));
            WIN32GUI_LoadUIString (IDS_FLOPPYTYPE525SD, ft525sd, sizeof ft525sd / sizeof (TCHAR));
            WIN32GUI_LoadUIString (IDS_FLOPPYTYPE35DDESCOM, ft35ddescom, sizeof ft35ddescom / sizeof (TCHAR));
            WIN32GUI_LoadUIString (IDS_FLOPPYTYPEDISABLED, ftdis, sizeof ftdis / sizeof (TCHAR));
@@ -8484,6 +8486,8 @@ static INT_PTR CALLBACK FloppyDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA
            SendDlgItemMessage (hDlg, IDC_FLOPPYTYPE, CB_RESETCONTENT, 0, 0L);
            SendDlgItemMessage (hDlg, IDC_FLOPPYTYPE, CB_ADDSTRING, 0, (LPARAM)ft35dd);
            SendDlgItemMessage (hDlg, IDC_FLOPPYTYPE, CB_ADDSTRING, 0, (LPARAM)ft35hd);
+           SendDlgItemMessage (hDlg, IDC_FLOPPYTYPE, CB_ADDSTRING, 0, (LPARAM)ft35ddpc);
+           SendDlgItemMessage (hDlg, IDC_FLOPPYTYPE, CB_ADDSTRING, 0, (LPARAM)ft35hdpc);
            SendDlgItemMessage (hDlg, IDC_FLOPPYTYPE, CB_ADDSTRING, 0, (LPARAM)ft525sd);
            SendDlgItemMessage (hDlg, IDC_FLOPPYTYPE, CB_SETCURSEL, 0, 0);
            for (i = 0; i < 4; i++) {
@@ -8641,10 +8645,10 @@ static INT_PTR CALLBACK FloppyDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA
                deletesaveimage (hDlg, 3);
                break;
            case IDC_CREATE:
-               DiskSelection(hDlg, wParam, 1, &workprefs, 0);
+               DiskSelection (hDlg, wParam, 1, &workprefs, 0);
                break;
            case IDC_CREATE_RAW:
-               DiskSelection(hDlg, wParam, 1, &workprefs, 0);
+               DiskSelection (hDlg, wParam, 1, &workprefs, 0);
                break;
            }
            recursive--;
index 6437684823c1b17c65fef11b34a64623db3c96ea..8e4b8238e1eda178910313b0b162ac4d9313725f 100644 (file)
@@ -1,4 +1,19 @@
 
+Beta 18:
+
+- gui debugger unicode conversion fixes (b15)
+- native dll call fixed (b15)
+- already existing _UAEFSDB.___ was not updated properly on NTFS
+  volumes, "dirty" _UAEFSDB.___ data was not flushed when emulator
+  was exited (old bug)
+- non-ascii configuration strings are duplicated in UTF-8 as
+  <entry name>.utf8. Now even japanese file names and paths work in
+  configuration files :) (backwards compatible, old versions will
+  ignore it)
+- clipboard sharing: accept only v37 or newer clipboard.device
+- added DD (720k) and HD (1440k) PC floppy image type to create disk
+  option (image will be unformatted)
+
 Beta 17: (even more fixes. do not use b15 or b16)
 
 - module ripper text conversion fixed
diff --git a/zfile.c b/zfile.c
index 5ef4581bb95b3f53200ee416a39fb9e80ae68c78..8cc0caec9e2f7d8a11189aebad5e008ea0c185d1 100644 (file)
--- a/zfile.c
+++ b/zfile.c
@@ -747,6 +747,31 @@ size_t zfile_fputs (struct zfile *z, TCHAR *s)
     return t;
 }
 
+char *zfile_fgetsa (char *s, int size, struct zfile *z)
+{
+    if (z->data) {
+       char *os = s;
+       int i;
+       for (i = 0; i < size - 1; i++) {
+           if (z->seek == z->size) {
+               if (i == 0)
+                   return NULL;
+               break;
+           }
+           *s = z->data[z->seek++];
+           if (*s == '\n') {
+               s++;
+               break;
+           }
+           s++;
+       }
+       *s = 0;
+       return os;
+    } else {
+       return fgets (s, size, z->f);
+    }
+}
+
 TCHAR *zfile_fgets (TCHAR *s, int size, struct zfile *z)
 {
     if (z->data) {