From 75db71c6aa06d312b21bccc1f8aa264f8de9a6ee Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 22 Mar 2009 12:11:13 +0200 Subject: [PATCH] imported winuaesrc1600b18.zip --- cfgfile.c | 102 ++++++++++++-- custom.c | 4 +- debug.c | 6 +- disk.c | 101 +++++++------- filesys.asm | 46 ++++++- filesys.c | 7 +- filesys_bootrom.c | 256 ++++++++++++++++++----------------- fsdb.c | 14 +- include/zfile.h | 3 +- od-win32/ahidsound.c | 3 +- od-win32/debug_win32.c | 34 +++-- od-win32/dinput.c | 5 + od-win32/fsdb_win32.c | 1 - od-win32/resources/resource | 3 +- od-win32/resources/winuae.rc | 14 +- od-win32/unicode.c | 4 +- od-win32/win32.c | 5 +- od-win32/win32.h | 4 +- od-win32/win32gui.c | 10 +- od-win32/winuaechangelog.txt | 15 ++ zfile.c | 25 ++++ 21 files changed, 422 insertions(+), 240 deletions(-) diff --git a/cfgfile.c b/cfgfile.c index 4d924f49..d1ce40f0 100644 --- 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) || diff --git a/custom.c b/custom.c index 95cce1e2..7b0a5f83 100644 --- 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 e4491caf..df3a550b 100644 --- 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 7a3c5ccd..e7e4457e 100644 --- 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); } diff --git a/filesys.asm b/filesys.asm index 0243c108..b5193137 100644 --- a/filesys.asm +++ b/filesys.asm @@ -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 diff --git a/filesys.c b/filesys.c index 5af405d9..c7febfe8 100644 --- 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) diff --git a/filesys_bootrom.c b/filesys_bootrom.c index 1c70b4b8..08a8026c 100644 --- a/filesys_bootrom.c +++ b/filesys_bootrom.c @@ -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); @@ -28,20 +28,20 @@ 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); @@ -127,13 +127,13 @@ 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); @@ -285,16 +285,16 @@ 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); @@ -307,16 +307,16 @@ 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); @@ -415,7 +415,7 @@ 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); @@ -470,7 +470,7 @@ 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); @@ -478,25 +478,25 @@ 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); @@ -572,81 +572,84 @@ 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); @@ -654,11 +657,11 @@ 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); @@ -685,7 +688,7 @@ 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); @@ -700,37 +703,38 @@ 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 6129ab4f..c1741050 100644 --- 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); } diff --git a/include/zfile.h b/include/zfile.h index 7aeca076..c3d85a3f 100644 --- a/include/zfile.h +++ b/include/zfile.h @@ -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); diff --git a/od-win32/ahidsound.c b/od-win32/ahidsound.c index 0127f396..67206fdb 100644 --- a/od-win32/ahidsound.c +++ b/od-win32/ahidsound.c @@ -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); diff --git a/od-win32/debug_win32.c b/od-win32/debug_win32.c index 7c4e0b43..6f9e9181 100644 --- a/od-win32/debug_win32.c +++ b/od-win32/debug_win32.c @@ -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(®s, 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(®s, 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 (®s, 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 diff --git a/od-win32/dinput.c b/od-win32/dinput.c index 754979e5..5ed5854b 100644 --- a/od-win32/dinput.c +++ b/od-win32/dinput.c @@ -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); diff --git a/od-win32/fsdb_win32.c b/od-win32/fsdb_win32.c index 47383e9e..7ef69d06 100644 --- a/od-win32/fsdb_win32.c +++ b/od-win32/fsdb_win32.c @@ -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) diff --git a/od-win32/resources/resource b/od-win32/resources/resource index 83a41ad2..1cfb6a19 100644 --- a/od-win32/resources/resource +++ b/od-win32/resources/resource @@ -294,6 +294,8 @@ #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 @@ -331,7 +333,6 @@ #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 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index 8cfb0d16..ce35a260 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -239,9 +239,9 @@ BEGIN PUSHBUTTON "Eject",IDC_EJECT3,253,110,30,15 PUSHBUTTON "...",IDC_DF3,287,109,10,15 GROUPBOX "New Floppy Disk Image",IDC_SETTINGSTEXT,5,183,289,49 - COMBOBOX IDC_FLOPPYTYPE,16,197,51,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Create Standard Disk [] Creates a standard 880 or 1760 KB ADF disk image.",IDC_CREATE,77,196,97,15 - 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 + COMBOBOX IDC_FLOPPYTYPE,12,197,64,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Create Standard Disk [] Creates a standard 880 or 1760 KB ADF disk image.",IDC_CREATE,81,196,97,15 + 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 GROUPBOX "Floppy Drive Emulation Speed",IDC_SETTINGSTEXT2,5,144,289,35 CONTROL "",IDC_FLOPPYSPD,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,32,154,116,20 EDITTEXT IDC_FLOPPYSPDTEXT,183,157,101,12,ES_CENTER | ES_READONLY @@ -249,7 +249,7 @@ BEGIN PUSHBUTTON "Delete save image",IDC_SAVEIMAGE1,43,40,70,15,NOT WS_VISIBLE PUSHBUTTON "Delete save image",IDC_SAVEIMAGE2,43,75,70,15,NOT WS_VISIBLE PUSHBUTTON "Delete save image",IDC_SAVEIMAGE3,43,110,70,15,NOT WS_VISIBLE - EDITTEXT IDC_CREATE_NAME,77,215,97,13,ES_AUTOHSCROLL + EDITTEXT IDC_CREATE_NAME,81,215,97,13,ES_AUTOHSCROLL RTEXT "Disk label:",IDC_STATIC,15,216,52,10,SS_CENTERIMAGE CONTROL "DF0:",IDC_DF0ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,6,34,15 CONTROL "DF1:",IDC_DF1ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,41,34,15 @@ -1425,6 +1425,12 @@ BEGIN IDS_QS_MODEL_A4000T "A4000T (test)\nA4000T" END +STRINGTABLE +BEGIN + IDS_FLOPPYTYPE35DDPC "3.5"" DD (PC)" + IDS_FLOPPYTYPE35HDPC "3.5"" HD (PC)" +END + #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/od-win32/unicode.c b/od-win32/unicode.c index 4cef6683..743e5d9c 100644 --- a/od-win32/unicode.c +++ b/od-win32/unicode.c @@ -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; } diff --git a/od-win32/win32.c b/od-win32/win32.c index 577207e3..1f7c8d6a 100644 --- a/od-win32/win32.c +++ b/od-win32/win32.c @@ -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; diff --git a/od-win32/win32.h b/od-win32/win32.h index 2001b5a3..35259ea6 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -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"" diff --git a/od-win32/win32gui.c b/od-win32/win32gui.c index bdabc4b1..475b1f5b 100644 --- a/od-win32/win32gui.c +++ b/od-win32/win32gui.c @@ -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--; diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 64376848..8e4b8238 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -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 + .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 5ef4581b..8cc0caec 100644 --- 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) { -- 2.47.3