From 6bef91842b3746603fa6a803e70412e29e2633a9 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 12 Apr 2009 14:51:41 +0300 Subject: [PATCH] imported winuaesrc1600b24.zip --- cfgfile.c | 2 +- custom.c | 2 +- debug.c | 48 ++++++- disk.c | 3 + filesys.asm | 22 ++-- filesys_bootrom.c | 238 +++++++++++++++++------------------ include/native2amiga.h | 2 + jit/compemu_fpp.c | 2 +- main.c | 2 +- native2amiga.c | 8 ++ od-win32/clipboard_win32.c | 50 +++++--- od-win32/win32.c | 3 +- od-win32/win32.h | 4 +- od-win32/win32gui.c | 10 +- od-win32/winuaechangelog.txt | 17 ++- od-win32/writelog.c | 2 +- traps.c | 16 ++- uaeunp.c | 5 +- zfile_archive.c | 55 +++++--- 19 files changed, 309 insertions(+), 182 deletions(-) diff --git a/cfgfile.c b/cfgfile.c index 9c2ea492..c5a5d844 100644 --- a/cfgfile.c +++ b/cfgfile.c @@ -173,7 +173,7 @@ static const TCHAR *obsolete[] = { L"gfx_test_speed", L"gfxlib_replacement", L"enforcer", L"catweasel_io", L"kickstart_key_file", L"fast_copper", L"sound_adjust", L"serial_hardware_dtrdsr", L"gfx_filter_upscale", - L"gfx_correct_aspect", + L"gfx_correct_aspect", L"gfx_autoscale", NULL }; diff --git a/custom.c b/custom.c index 1b59e6ea..0bb7c542 100644 --- a/custom.c +++ b/custom.c @@ -5259,6 +5259,7 @@ void customreset (int hardreset) int i; int zero = 0; + target_reset (); reset_all_systems (); write_log (L"Reset at %08X\n", m68k_getpc (®s)); memory_map_dump(); @@ -5427,7 +5428,6 @@ void customreset (int hardreset) rtc_hardreset(); picasso_reset (); - target_reset (); } void dumpcustom (void) diff --git a/debug.c b/debug.c index 662414fe..a96d4198 100644 --- a/debug.c +++ b/debug.c @@ -122,7 +122,8 @@ static TCHAR help[] = { L" S Save a block of Amiga memory\n" L" s \"\"/ [] []\n" L" Search for string/bytes\n" - L" T Show exec tasks and their PCs\n" + L" T or Tt Show exec tasks and their PCs\n" + L" Td,Tl,Tr Show devices, libraries or resources\n" L" b Step to previous state capture position\n" L" M Enable or disable audio channels, bitplanes or sprites\n" L" sp [] Dump sprite information\n" @@ -2002,9 +2003,13 @@ static TCHAR *BSTR2CSTR (uae_u8 *bstr) static void print_task_info (uaecptr node) { + TCHAR *s; int process = get_byte (node + 8) == 13 ? 1 : 0; - console_out_f (L"%08X: %08X", node, 0); - console_out_f (process ? L" PROCESS '%s'" : L" TASK '%s'\n", get_real_address (get_long (node + 10))); + + console_out_f (L"%08X: ", node); + s = au (get_real_address (get_long (node + 10))); + console_out_f (process ? L" PROCESS '%s'" : L" TASK '%s'\n", s); + xfree (s); if (process) { uaecptr cli = BPTR2APTR (get_long (node + 172)); int tasknum = get_long (node + 140); @@ -2025,7 +2030,7 @@ static void show_exec_tasks (void) uaecptr taskready = get_long (execbase + 406); uaecptr taskwait = get_long (execbase + 420); uaecptr node, end; - console_out_f (L"Execbase at 0x%08X\n", (unsigned long) execbase); + console_out_f (L"Execbase at 0x%08X\n", execbase); console_out (L"Current:\n"); node = get_long (execbase + 276); print_task_info (node); @@ -2045,6 +2050,34 @@ static void show_exec_tasks (void) } } +static void show_exec_lists (TCHAR t) +{ + uaecptr execbase = get_long (4); + uaecptr list = 0, node; + + switch (_totupper (t)) + { + case 'R': + list = execbase + 336; + break; + case 'D': + list = execbase + 350; + break; + case 'L': + list = execbase + 378; + break; + } + if (list == 0) + return; + node = get_long (list); + while (get_long (node)) { + TCHAR *name = au (get_real_address (get_long (node + 10))); + console_out_f (L"%08x %s\n", node, name); + xfree (name); + node = get_long (node); + } +} + #if 0 static int trace_same_insn_count; static uae_u8 trace_insn_copy[10]; @@ -2732,7 +2765,12 @@ static void debug_1 (void) } } break; - case 'T': show_exec_tasks (); break; + case 'T': + if (inptr[0] == 't' || inptr[0] == 0) + show_exec_tasks (); + else + show_exec_lists (inptr[0]); + break; case 't': if (more_params (&inptr)) skipaddr_doskip = readint (&inptr); diff --git a/disk.c b/disk.c index e976b9ee..47fcce47 100644 --- a/disk.c +++ b/disk.c @@ -2065,6 +2065,9 @@ void disk_creatediskfile (TCHAR *name, int type, drive_type adftype, TCHAR *disk } xfree (chunk); zfile_fclose (f); + if (f) + DISK_history_add (name, -1); + } int disk_getwriteprotect (const TCHAR *name) diff --git a/filesys.asm b/filesys.asm index 0081a0c3..b63c4a6f 100644 --- a/filesys.asm +++ b/filesys.asm @@ -73,7 +73,7 @@ residenthack bcs.s .rsh moveq #residentcodeend-residentcodestart,d0 move.l d0,d2 - move.l #65536+1,d1 + moveq #1,d1 jsr AllocMem(a6) tst.l d0 beq.s .rsh @@ -86,7 +86,7 @@ residenthack subq.l #4,d2 bne.s .cp1 - jsr -$0078(a6) + jsr -$0078(a6) ;Disable move.l a6,a1 move.w #-$48,a0 ;InitCode move.l a2,d0 @@ -95,7 +95,7 @@ residenthack lea myafterdos(pc),a0 move.l a0,residentcodejump1-residentcodestart+2(a2) jsr -$27C(a6) ;CacheClearU - jsr -$007e(a6) + jsr -$007e(a6) ;Enable .rsh movem.l (sp)+,d0-d2/a0-a2/a6 rts @@ -2241,11 +2241,6 @@ cfloop3 bra.s cfloop3 cfversion - move.w #$FF38,d0 - moveq #15,d1 - bsr.w getrtbase - jsr (a0) - bsr.w prefshook lea CLIP_HOOK(a5),a0 @@ -2259,6 +2254,13 @@ cfversion move.l a4,a1 jsr -$01c8(a6) ;DoIO + move.w #$FF38,d0 + moveq #15,d1 + bsr.w getrtbase + jsr (a0) + tst.l CLIP_WRITE_SIZE(a5) + bne.s clipsignal + cfloop moveq #0,d0 moveq #0,d2 @@ -2267,11 +2269,11 @@ cfloop bset #13,d0 jsr -$013e(a6) ;Wait btst d2,d0 - beq.s .clipsignal + beq.s clipsignal bsr.w prefsread bra.s cfloop -.clipsignal +clipsignal move.l CLIP_WRITE_SIZE(a5),d0 beq.w clipread ;allocate amiga-side space diff --git a/filesys_bootrom.c b/filesys_bootrom.c index 5c5e475e..0fc55a03 100644 --- a/filesys_bootrom.c +++ b/filesys_bootrom.c @@ -3,7 +3,7 @@ db(0x00); db(0x00); db(0x08); db(0x04); db(0x00); db(0x00); db(0x00); db(0xd0); db(0x00); db(0x00); db(0x02); db(0x2c); db(0x00); db(0x00); db(0x00); db(0x24); db(0x00); db(0x00); db(0x02); db(0xe8); db(0x00); db(0x00); db(0x0d); db(0xf4); - db(0x00); db(0x00); db(0x12); db(0x84); db(0x43); db(0xfa); db(0x16); db(0xdb); + db(0x00); db(0x00); db(0x12); db(0x84); db(0x43); db(0xfa); db(0x16); db(0xe1); 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(0xe0); db(0xe2); db(0x2c); db(0x78); db(0x00); db(0x04); @@ -27,9 +27,9 @@ db(0x4e); db(0xf9); db(0x00); db(0xf0); db(0x00); db(0x00); db(0x00); db(0x00); 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(0x82); - db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x16); db(0x4c); db(0x70); db(0x24); + db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x16); db(0x52); 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(0x3c); db(0x70); db(0x00); + db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x16); db(0x42); 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); @@ -48,20 +48,20 @@ db(0x0a); db(0xf0); 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(0x47); + db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x15); db(0x4d); db(0x43); db(0xfa); db(0x00); db(0x54); db(0x70); db(0x0a); db(0x61); db(0x00); db(0x0b); db(0xa4); db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c); db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0xbc); 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(0x41); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); + db(0x15); db(0x47); 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(0x14); db(0xf2); + db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x14); db(0xf8); 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); @@ -95,7 +95,7 @@ db(0x48); db(0xe7); db(0xc0); db(0xc0); db(0x61); db(0x00); db(0xfd); db(0x4a); 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(0xc6); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); + db(0x13); db(0xcc); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); db(0xff); db(0x24); db(0x23); db(0x48); db(0x00); db(0x0e); db(0x41); db(0xfa); db(0xff); db(0x1c); db(0x23); db(0x48); db(0x00); db(0x12); db(0x33); db(0x7c); db(0x02); db(0x14); db(0x00); db(0x08); db(0x70); db(0x03); db(0x4e); db(0xae); @@ -109,7 +109,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(0x56); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b); + db(0x13); db(0x5c); 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); @@ -146,13 +146,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(0xa8); db(0x10); db(0x19); db(0x12); db(0x1a); + db(0x45); db(0xfa); db(0x12); db(0xae); 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(0x7e); db(0x25); db(0x48); - db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x11); db(0xfa); db(0x25); db(0x48); + db(0x00); db(0x08); db(0x41); db(0xfa); db(0x12); db(0x84); db(0x25); db(0x48); + db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x12); db(0x00); 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); @@ -304,16 +304,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(0x77); db(0x70); db(0x00); db(0x4e); db(0xae); + db(0x43); db(0xfa); db(0x0d); db(0x7d); 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(0x72); + db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0d); db(0x78); 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(0x60); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); + db(0x0d); db(0x66); 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); @@ -326,16 +326,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(0xc7); db(0x70); db(0x00); db(0x4e); db(0xae); + db(0x43); db(0xfa); db(0x0c); db(0xcd); 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(0xbe); + db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0b); db(0xc4); 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(0xbb); + db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0b); db(0xc1); 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); @@ -434,7 +434,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(0x1b); db(0x43); db(0xfa); db(0x01); db(0x5c); + db(0x41); db(0xfa); db(0x09); db(0x21); 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); @@ -489,7 +489,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(0x5f); + db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x07); db(0x65); 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); @@ -497,25 +497,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(0x7d); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); + db(0x07); db(0x83); 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(0x73); db(0x70); db(0x00); + db(0x66); db(0xc4); db(0x43); db(0xfa); db(0x07); db(0x79); 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(0x62); db(0x4e); db(0xae); db(0xfe); db(0xec); + db(0x43); db(0xfa); db(0x06); db(0x68); 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(0x50); db(0x70); db(0x00); + db(0x67); db(0x8c); db(0x41); db(0xfa); db(0x06); db(0x56); 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(0x2f); db(0x4e); db(0xae); db(0xfe); db(0xec); + db(0x43); db(0xfa); db(0x06); db(0x35); 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(0x1b); + db(0x67); db(0x00); db(0xff); db(0x4c); db(0x41); db(0xfa); db(0x06); db(0x21); 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); @@ -598,7 +598,7 @@ db(0x00); db(0x40); db(0x2a); db(0x40); db(0x2b); db(0x4e); db(0x00); db(0x14); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0e); db(0x61); db(0x00); db(0xf9); db(0xb0); db(0x20); db(0x0d); db(0x4e); db(0x90); db(0x41); db(0xfa); - db(0x03); db(0xe7); db(0x43); db(0xfa); db(0x01); db(0x14); db(0x70); db(0xf6); + db(0x03); db(0xed); db(0x43); db(0xfa); db(0x01); db(0x14); db(0x70); db(0xf6); db(0x22); db(0x3c); db(0x00); db(0x00); db(0x27); db(0x10); db(0x61); db(0x00); db(0xee); db(0xe6); db(0x70); db(0x00); db(0x4c); db(0xdf); db(0x60); db(0x00); db(0x4e); db(0x75); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0a); @@ -609,7 +609,7 @@ 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(0x75); db(0x22); db(0x08); db(0x24); db(0x3c); db(0x00); db(0x00); + db(0x03); db(0x7b); 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); @@ -623,12 +623,12 @@ db(0x61); db(0x00); db(0xf8); db(0xf6); 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(0xed); db(0x22); db(0x08); db(0x74); db(0xfe); + db(0x41); db(0xfa); db(0x02); db(0xf3); 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(0xdd); db(0x24); db(0x88); db(0x25); db(0x7c); db(0x00); db(0x00); + db(0x02); db(0xe3); 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); @@ -638,13 +638,13 @@ 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(0x09); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); + db(0x03); db(0x0f); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x2b); db(0x40); db(0x00); db(0x18); db(0x67); db(0x00); db(0xfe); db(0xda); 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(0x41); db(0xfa); db(0x02); db(0x47); 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(0x2b); + db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0x31); 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(0xa4); db(0x22); db(0x00); db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14); @@ -653,98 +653,98 @@ db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0x84); 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(0x02); db(0x0a); 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(0x48); 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(0xc4); db(0x4e); db(0x90); - db(0x61); db(0x00); db(0xfe); db(0xda); db(0x41); db(0xed); db(0x00); db(0x1c); - db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01); db(0x29); db(0x40); - db(0x00); db(0x24); db(0x39); db(0x7c); db(0x00); db(0x0c); db(0x00); db(0x1c); - db(0x2b); db(0x4d); db(0x00); db(0x2c); db(0x41); db(0xfa); db(0x01); db(0x4a); - db(0x2b); db(0x48); db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae); - db(0xfe); db(0x38); db(0x70); db(0x00); db(0x74); db(0x00); db(0x14); db(0x2d); - db(0x00); db(0x4c); db(0x05); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x0d); - db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x05); db(0x00); db(0x67); db(0x06); - db(0x61); db(0x00); db(0xfe); db(0x24); 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(0x60); db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x04); - db(0x67); db(0x3a); db(0x39); db(0x7c); db(0x00); db(0x03); db(0x00); db(0x1c); - db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x20); - db(0x29); db(0x6d); db(0x00); db(0x00); db(0x00); db(0x24); db(0x29); db(0x6d); - db(0x00); db(0x04); db(0x00); db(0x28); db(0x42); db(0xac); db(0x00); db(0x2c); - db(0x42); db(0xac); db(0x00); db(0x30); db(0x22); db(0x4c); db(0x4e); db(0xae); - db(0xfe); db(0x38); db(0x2b); db(0x6c); db(0x00); db(0x30); db(0x00); db(0x10); - db(0x39); db(0x7c); db(0x00); db(0x04); db(0x00); db(0x1c); db(0x22); db(0x4c); - db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x20); db(0x2d); db(0x00); db(0x00); - db(0x42); db(0xad); db(0x00); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x04); - db(0x67); db(0x00); db(0xff); db(0x78); db(0x22); db(0x41); db(0x4e); db(0xae); - db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x6e); db(0x39); db(0x7c); - db(0x00); db(0x02); db(0x00); db(0x1c); db(0x41); db(0xed); db(0x00); db(0x30); - db(0x42); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04); db(0x42); db(0x2c); - db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac); - db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x08); - db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae); - db(0xfe); db(0x38); db(0x0c); db(0xad); db(0x46); db(0x4f); db(0x52); db(0x4d); - db(0x00); db(0x30); db(0x66); db(0x52); db(0x20); db(0x2d); db(0x00); db(0x34); - db(0x67); db(0x4c); db(0x6b); db(0x4a); db(0x2b); db(0x6c); db(0x00); db(0x30); - db(0x00); db(0x10); db(0x50); db(0x80); db(0x24); db(0x00); db(0x72); db(0x01); - db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x36); - db(0x24); db(0x40); db(0x20); db(0x4a); db(0x20); db(0xed); db(0x00); db(0x30); - db(0x20); db(0xed); db(0x00); db(0x34); db(0x29); db(0x48); db(0x00); db(0x28); - db(0x20); db(0x02); db(0x51); db(0x80); db(0x29); db(0x40); db(0x00); db(0x24); + db(0xfe); db(0xc2); db(0x60); db(0xf8); db(0x61); db(0x00); db(0xfe); db(0xe6); + db(0x41); db(0xed); db(0x00); db(0x1c); db(0x29); db(0x48); db(0x00); db(0x28); + db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x24); db(0x39); db(0x7c); + db(0x00); db(0x0c); db(0x00); db(0x1c); db(0x2b); db(0x4d); db(0x00); db(0x2c); + db(0x41); db(0xfa); db(0x01); db(0x5c); db(0x2b); db(0x48); 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(0x8a); - db(0x20); db(0x2c); db(0x00); db(0x20); db(0x4e); db(0x90); db(0x22); db(0x4a); - db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4a); db(0xac); - db(0x00); db(0x20); db(0x67); db(0x00); db(0xfe); db(0xde); db(0x41); db(0xed); - db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01); - db(0x29); db(0x40); db(0x00); db(0x24); db(0x42); db(0xac); db(0x00); db(0x20); - db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x60); db(0xde); - db(0x41); db(0xe8); db(0xff); db(0xe4); db(0x20); db(0x29); db(0x00); db(0x08); - db(0xb0); db(0xa8); db(0x00); db(0x10); db(0x67); db(0x1a); db(0x21); db(0x40); - db(0x00); db(0x10); db(0x2f); db(0x0e); db(0x2c); db(0x68); db(0x00); db(0x14); - db(0x22); db(0x68); db(0x00); db(0x08); db(0x70); db(0x00); db(0x08); db(0xc0); - db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x2c); db(0x5f); - db(0x70); db(0x00); db(0x4e); db(0x75); db(0x69); db(0x6e); db(0x70); db(0x75); - db(0x74); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); - db(0x00); db(0x74); db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64); - db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x44); db(0x45); - db(0x56); db(0x53); db(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(0xff); db(0x38); db(0x72); db(0x0f); db(0x61); db(0x00); db(0xf7); db(0x9a); + db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x00); db(0x66); db(0x1c); + 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(0x1e); 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(0x5a); + db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x04); db(0x67); db(0x3a); + db(0x39); db(0x7c); db(0x00); db(0x03); db(0x00); db(0x1c); db(0x42); db(0x2c); + db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x20); db(0x29); db(0x6d); + db(0x00); db(0x00); db(0x00); db(0x24); db(0x29); db(0x6d); db(0x00); db(0x04); + db(0x00); db(0x28); db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac); + db(0x00); db(0x30); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); + db(0x2b); db(0x6c); db(0x00); db(0x30); db(0x00); db(0x10); db(0x39); db(0x7c); + db(0x00); db(0x04); db(0x00); db(0x1c); db(0x22); db(0x4c); db(0x4e); db(0xae); + db(0xfe); db(0x38); db(0x20); db(0x2d); db(0x00); db(0x00); db(0x42); db(0xad); + db(0x00); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x04); db(0x67); db(0x00); + db(0xff); db(0x78); db(0x22); db(0x41); db(0x4e); db(0xae); db(0xff); db(0x2e); + db(0x60); db(0x00); db(0xff); db(0x6e); db(0x39); db(0x7c); db(0x00); db(0x02); + db(0x00); db(0x1c); db(0x41); db(0xed); db(0x00); db(0x30); db(0x42); db(0x90); + db(0x42); db(0xa8); db(0x00); db(0x04); db(0x42); db(0x2c); db(0x00); db(0x1f); + db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac); db(0x00); db(0x30); + db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x08); db(0x29); db(0x40); + db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); + db(0x0c); db(0xad); db(0x46); db(0x4f); db(0x52); db(0x4d); db(0x00); db(0x30); + db(0x66); db(0x52); db(0x20); db(0x2d); db(0x00); db(0x34); db(0x67); db(0x4c); + db(0x6b); db(0x4a); db(0x2b); db(0x6c); db(0x00); db(0x30); db(0x00); db(0x10); + db(0x50); db(0x80); db(0x24); db(0x00); db(0x72); db(0x01); db(0x4e); db(0xae); + db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x36); db(0x24); db(0x40); + db(0x20); db(0x4a); db(0x20); db(0xed); db(0x00); db(0x30); db(0x20); db(0xed); + db(0x00); db(0x34); db(0x29); db(0x48); db(0x00); db(0x28); db(0x20); db(0x02); + db(0x51); db(0x80); db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c); + db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x30); db(0x3c); db(0xff); db(0x38); + db(0x72); db(0x0b); db(0x61); db(0x00); db(0xf6); db(0x84); db(0x20); db(0x2c); + db(0x00); db(0x20); db(0x4e); db(0x90); db(0x22); db(0x4a); db(0x20); db(0x02); + db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4a); db(0xac); db(0x00); db(0x20); + db(0x67); db(0x00); db(0xfe); db(0xde); db(0x41); db(0xed); db(0x00); db(0x30); + db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01); db(0x29); db(0x40); + db(0x00); db(0x24); db(0x42); db(0xac); db(0x00); db(0x20); db(0x22); db(0x4c); + db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x60); db(0xde); db(0x41); db(0xe8); + db(0xff); db(0xe4); db(0x20); db(0x29); db(0x00); db(0x08); db(0xb0); db(0xa8); + db(0x00); db(0x10); db(0x67); db(0x1a); db(0x21); db(0x40); db(0x00); db(0x10); + db(0x2f); db(0x0e); db(0x2c); db(0x68); db(0x00); db(0x14); db(0x22); db(0x68); + db(0x00); db(0x08); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d); + db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x2c); db(0x5f); db(0x70); db(0x00); + db(0x4e); db(0x75); db(0x69); db(0x6e); db(0x70); db(0x75); db(0x74); db(0x2e); + db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x74); + db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64); db(0x65); db(0x76); + db(0x69); db(0x63); db(0x65); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); + db(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(0x45); db(0x6e); db(0x76); db(0x2f); db(0x53); db(0x79); db(0x73); - db(0x2f); db(0x50); db(0x6f); db(0x69); db(0x6e); db(0x74); db(0x65); db(0x72); - db(0x2e); db(0x70); db(0x72); db(0x65); db(0x66); db(0x73); db(0x00); db(0x55); - db(0x41); db(0x45); db(0x20); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); - db(0x6f); db(0x61); db(0x72); db(0x64); db(0x20); db(0x73); db(0x68); db(0x61); - db(0x72); db(0x69); db(0x6e); db(0x67); db(0x00); db(0x55); db(0x41); db(0x45); - db(0x20); db(0x6d); db(0x6f); db(0x75); db(0x73); db(0x65); db(0x20); db(0x64); - db(0x72); db(0x69); db(0x76); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); - db(0x45); db(0x20); db(0x66); db(0x69); db(0x6c); db(0x65); db(0x73); db(0x79); - db(0x73); db(0x74); db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41); db(0x45); - db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); - db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x00); - db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); - db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); - db(0x20); db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73); db(0x73); - db(0x00); db(0x64); db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); - db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e); db(0x74); - db(0x75); db(0x69); db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); - db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x67); - db(0x72); db(0x61); db(0x70); db(0x68); db(0x69); db(0x63); db(0x73); db(0x2e); + db(0x3a); db(0x00); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); + db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); + db(0x63); db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x45); + db(0x6e); db(0x76); db(0x2f); db(0x53); db(0x79); db(0x73); db(0x2f); db(0x50); + db(0x6f); db(0x69); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x2e); db(0x70); + db(0x72); db(0x65); db(0x66); db(0x73); db(0x00); db(0x55); db(0x41); db(0x45); + db(0x20); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); + db(0x72); db(0x64); db(0x20); db(0x73); db(0x68); db(0x61); db(0x72); db(0x69); + db(0x6e); db(0x67); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x6d); + db(0x6f); db(0x75); db(0x73); db(0x65); db(0x20); db(0x64); db(0x72); db(0x69); + db(0x76); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); + db(0x66); db(0x69); db(0x6c); db(0x65); db(0x73); db(0x79); db(0x73); db(0x74); + db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); + db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); + db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); + db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); + db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x20); db(0x70); + db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73); db(0x73); db(0x00); db(0x64); + db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); + db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75); db(0x69); + db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); + db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x67); db(0x72); db(0x61); + db(0x70); db(0x68); db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c); db(0x69); + db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x65); db(0x78); + db(0x70); db(0x61); db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); - db(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(0x00); db(0x03); db(0xf2); + 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/include/native2amiga.h b/include/native2amiga.h index 1d846938..524e2e8a 100644 --- a/include/native2amiga.h +++ b/include/native2amiga.h @@ -30,6 +30,8 @@ void uae_FreeMem (TrapContext *context, uaecptr memory, uae_u32 size); */ void native2amiga_install (void); +void native2amiga_reset (void); + /* * to be called when the Amiga boots, i.e. by filesys_diagentry() */ diff --git a/jit/compemu_fpp.c b/jit/compemu_fpp.c index df842a26..ed78dd2e 100644 --- a/jit/compemu_fpp.c +++ b/jit/compemu_fpp.c @@ -134,7 +134,7 @@ STATIC_INLINE int comp_fp_get (uae_u32 opcode, uae_u16 extra, int treg) } case 2: /* (d16,PC) */ { - uae_u32 address=start_pc+((TCHAR *)comp_pc_p-(TCHAR *)start_pc_p)+ + uae_u32 address=start_pc+((uae_char*)comp_pc_p-(uae_char*)start_pc_p)+ m68k_pc_offset; uae_s32 PC16off =(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); mov_l_ri(S1,address+PC16off); diff --git a/main.c b/main.c index 212ea4a3..f6a1d8eb 100644 --- a/main.c +++ b/main.c @@ -503,7 +503,6 @@ static void parse_cmdline (int argc, TCHAR **argv) xfree (txt); } else if (_tcsncmp (argv[i], L"-statefile=", 11) == 0) { TCHAR *txt = parsetext (argv[i] + 11); - write_log (L"%s\n", txt); savestate_state = STATE_DORESTORE; _tcscpy (savestate_fname, txt); xfree (txt); @@ -605,6 +604,7 @@ void reset_all_systems (void) #if defined (PARALLEL_PORT) initparallel (); #endif + native2amiga_reset (); } /* Okay, this stuff looks strange, but it is here to encourage people who diff --git a/native2amiga.c b/native2amiga.c index 42cc3f31..6ddd3176 100644 --- a/native2amiga.c +++ b/native2amiga.c @@ -34,6 +34,14 @@ void native2amiga_install (void) uae_sem_init (&n2asem, 0, 1); } +void native2amiga_reset (void) +{ + smp_comm_pipe *p = &native2amiga_pending; + p->rdp = p->wrp = 0; + p->reader_waiting = 0; + p->writer_waiting = 0; +}; + /* * to be called when the Amiga boots, i.e. by filesys_diagentry() */ diff --git a/od-win32/clipboard_win32.c b/od-win32/clipboard_win32.c index f22c1970..7addb05d 100644 --- a/od-win32/clipboard_win32.c +++ b/od-win32/clipboard_win32.c @@ -19,7 +19,7 @@ int clipboard_debug; static HWND chwnd; static HDC hdc; static uaecptr clipboard_data; -static int vdelay, signaling; +static int vdelay, signaling, initialized; static uae_u8 *to_amiga; static uae_u32 to_amiga_size; static int clipopen; @@ -56,11 +56,14 @@ static void debugwrite (const TCHAR *name, uae_u8 *p, int size) static void to_amiga_start (void) { + if (!initialized) + return; if (!clipboard_data) return; if (clipboard_debug) { debugwrite (L"clipboard_p2a", to_amiga, to_amiga_size); } + write_log (L"clipboard: to_amiga %08x\n", clipboard_data); put_long (clipboard_data, to_amiga_size); uae_Signal (get_long (clipboard_data + 8), 1 << 13); } @@ -670,23 +673,23 @@ static void clipboard_read (HWND hwnd) UINT f; int text = FALSE, bmp = FALSE; + clipboard_change = 0; + //write_log (L"clipboard: read windows clipboard\n"); if (!OpenClipboard (hwnd)) return; f = 0; - write_log (L"clipboard: windows clipboard: "); while (f = EnumClipboardFormats (f)) { - write_log (L"%d ", f); if (f == CF_UNICODETEXT) text = TRUE; if (f == CF_BITMAP) bmp = TRUE; } - write_log (L"\n"); if (text) { hglb = GetClipboardData (CF_UNICODETEXT); if (hglb != NULL) { TCHAR *lptstr = GlobalLock (hglb); if (lptstr != NULL) { + //write_log (L"clipboard: CF_UNICODETEXT '%s'\n", lptstr); to_iff_text (lptstr); GlobalUnlock (hglb); } @@ -694,6 +697,7 @@ static void clipboard_read (HWND hwnd) } else if (bmp) { HBITMAP hbmp = GetClipboardData (CF_BITMAP); if (hbmp != NULL) { + //write_log (L"clipboard: CF_BITMAP\n"); to_iff_ilbm (hbmp); } } @@ -714,7 +718,8 @@ static void clipboard_free_delayed (void) void clipboard_changed (HWND hwnd) { - if (!clipboard_data) + //write_log (L"clipboard: windows clipboard changed message\n"); + if (!clipboard_data || !initialized) return; if (clipopen) return; @@ -737,7 +742,7 @@ static int clipboard_put_bmp_real (HBITMAP hbmp) ret = TRUE; CloseClipboard (); clipopen--; - write_log (L"clipboard: BMP written to windows clipboard\n"); + //write_log (L"clipboard: BMP written to windows clipboard\n"); return ret; } @@ -760,7 +765,7 @@ static int clipboard_put_text_real (const TCHAR *txt) } CloseClipboard (); clipopen--; - write_log (L"clipboard: text written to windows clipboard\n"); + //write_log (L"clipboard: text written to windows clipboard\n"); return ret; } @@ -793,26 +798,33 @@ void amiga_clipboard_init (void) { signaling = 0; write_log (L"clipboard initialized\n"); + initialized = 1; + clipboard_read (chwnd); } void amiga_clipboard_task_start (uaecptr data) { clipboard_data = data; signaling = 1; - write_log (L"clipboard task init: %08x\n", data); + write_log (L"clipboard task init: %08x\n", clipboard_data); } uae_u32 amiga_clipboard_proc_start (void) { - write_log (L"clipboard process init\n"); + write_log (L"clipboard process init: %08x\n", clipboard_data); signaling = 1; return clipboard_data; } void amiga_clipboard_got_data (uaecptr data, uae_u32 size, uae_u32 actual) { - uae_u8 *addr = get_real_address (data); - write_log (L"clipboard: <-amiga, %08x %d %d\n", data, size, actual); + uae_u8 *addr; + if (!initialized) { + write_log (L"clipboard: got_data() before initialized!?\n"); + return; + } + addr = get_real_address (data); + //write_log (L"clipboard: <-amiga, %08x, %08x %d %d\n", clipboard_data, data, size, actual); from_iff (data, actual); } @@ -822,12 +834,16 @@ void amiga_clipboard_want_data (void) addr = get_long (clipboard_data + 4); size = get_long (clipboard_data); + if (!initialized) { + write_log (L"clipboard: want_data() before initialized!? (%08x %08x %d)\n", clipboard_data, addr, size); + return; + } if (addr && size) { uae_u8 *raddr = get_real_address (addr); memcpy (raddr, to_amiga, size); } xfree (to_amiga); - write_log (L"clipboard: ->amiga, %08x %d bytes\n", addr, size); + //write_log (L"clipboard: ->amiga, %08x, %08x %d bytes\n", clipboard_data, addr, size); to_amiga = NULL; to_amiga_size = 0; } @@ -835,9 +851,10 @@ void amiga_clipboard_want_data (void) void clipboard_active (HWND hwnd, int active) { clipactive = active; + if (!initialized) + return; if (clipactive && clipboard_change) { clipboard_read (hwnd); - clipboard_change = 0; } if (!clipactive && clipboard_delayed_data) { if (clipboard_delayed_size < 0) { @@ -854,23 +871,28 @@ void clipboard_active (HWND hwnd, int active) void clipboard_vsync (void) { uaecptr task; + if (!signaling || !clipboard_data) return; vdelay--; if (vdelay > 0) return; task = get_long (clipboard_data + 8); - if (task && native2amiga_isfree ()) + if (task && native2amiga_isfree ()) { uae_Signal (task, 1 << 13); +// write_log (L"clipboard: signal %08x\n", clipboard_data); + } vdelay = 50; } void clipboard_reset (void) { + write_log (L"clipboard: reset (%08x)\n", clipboard_data); vdelay = 100; clipboard_free_delayed (); clipboard_data = 0; signaling = 0; + initialized = 0; xfree (to_amiga); to_amiga = NULL; to_amiga_size = 0; diff --git a/od-win32/win32.c b/od-win32/win32.c index 42263aae..fa4990dd 100644 --- a/od-win32/win32.c +++ b/od-win32/win32.c @@ -3602,9 +3602,10 @@ static TCHAR **parseargstring (TCHAR *s) if (*p == 0) break; if (*p == '\'' || *p == '"') { + TCHAR sc = *p; p++; s++; - while (*p && *p != '\'' && *p != '"') + while (*p && *p != sc) p++; skip = 1; } else { diff --git a/od-win32/win32.h b/od-win32/win32.h index 92b75f3f..f96612be 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -17,8 +17,8 @@ #define WINUAEPUBLICBETA 1 -#define WINUAEBETA L"23" -#define WINUAEDATE MAKEBD(2009, 4, 10) +#define WINUAEBETA L"24" +#define WINUAEDATE MAKEBD(2009, 4, 12) #define WINUAEEXTRA L"" #define WINUAEREV L"" diff --git a/od-win32/win32gui.c b/od-win32/win32gui.c index 13abf0f5..0781ca7a 100644 --- a/od-win32/win32gui.c +++ b/od-win32/win32gui.c @@ -8656,9 +8656,11 @@ static INT_PTR CALLBACK FloppyDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA break; case IDC_CREATE: DiskSelection (hDlg, wParam, 1, &workprefs, 0); + addfloppyhistory (hDlg); break; case IDC_CREATE_RAW: DiskSelection (hDlg, wParam, 1, &workprefs, 0); + addfloppyhistory (hDlg); break; } recursive--; @@ -9054,8 +9056,10 @@ static void updatejoyport (HWND hDlg) } for (j = 0; j < inputdevice_get_device_total (IDTYPE_JOYSTICK); j++, total++) SendDlgItemMessage (hDlg, id, CB_ADDSTRING, 0, (LPARAM)inputdevice_get_device_name(IDTYPE_JOYSTICK, j)); - for (j = 0; j < inputdevice_get_device_total (IDTYPE_MOUSE); j++, total++) - SendDlgItemMessage (hDlg, id, CB_ADDSTRING, 0, (LPARAM)inputdevice_get_device_name(IDTYPE_MOUSE, j)); + if (i < 2) { + for (j = 0; j < inputdevice_get_device_total (IDTYPE_MOUSE); j++, total++) + SendDlgItemMessage (hDlg, id, CB_ADDSTRING, 0, (LPARAM)inputdevice_get_device_name(IDTYPE_MOUSE, j)); + } idx = inputdevice_getjoyportdevice (v); if (idx >= 0) idx += 2; @@ -9534,6 +9538,8 @@ static INT_PTR CALLBACK IOPortsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPAR workprefs.parallel_postscript_detection = IsDlgButtonChecked (hDlg, IDC_PSPRINTERDETECT) ? 1 : 0; if (!workprefs.parallel_postscript_detection) CheckDlgButton (hDlg, IDC_PSPRINTER, 0); + } else if (wParam == IDC_UAESERIAL || wParam == IDC_SER_SHARED || wParam == IDC_SER_DIRECT || wParam == IDC_SER_CTSRTS || wParam == IDC_PRINTERAUTOFLUSH) { + values_from_portsdlg (hDlg); } else { if (HIWORD (wParam) == CBN_SELCHANGE) { switch (LOWORD (wParam)) diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 299ab1b1..9fc9d6d0 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,11 +1,24 @@ +Beta 24: + +- debugger T command fixed (b15) +- JIT FPU bug, one addressing mode was wrong (b15) +- reset clears "native2amiga" command queue (it was possible to have + command queued just before reset which would have been executed + after reset -> random errors and crashes) +- do not include mice in parallel port joystick select menus +- add new empty adf files to disk history list +- added simple list devices, libraries and resources commands to + debugger (Td Tl Tr) +- log file long datestamps fixed + Beta 23: -- archives (zip etc) didn't unpack +- archives (zip etc) didn't unpack (b22) - directinput keyboard was not always unacquired when focus was lost - hq2x/3x/4x crash in specific situations (old random bug) - clipboard initialization changed again, now initialized after all - residents have been initialized (previously it was after dos) + other residents (previously it was after dos) Beta 22: diff --git a/od-win32/writelog.c b/od-win32/writelog.c index 26f03fe5..0c24b9eb 100644 --- a/od-win32/writelog.c +++ b/od-win32/writelog.c @@ -216,7 +216,7 @@ static TCHAR *writets (void) _tcsftime (curts, sizeof curts / sizeof (TCHAR), L"%Y-%m-%d %H:%M:%S\n", t); p = out; *p = 0; - if (!_tcsncmp (curts, lastts, _tcslen (curts))) { + if (_tcsncmp (curts, lastts, _tcslen (curts) - 3)) { // "xx\n" _tcscat (p, curts); p += _tcslen (p); _tcscpy (lastts, curts); diff --git a/traps.c b/traps.c index 7fc2b473..13ab9bb9 100644 --- a/traps.c +++ b/traps.c @@ -109,13 +109,23 @@ unsigned int define_trap (TrapHandler handler_func, int flags, const TCHAR *name abort (); return -1; } else { - unsigned int trap_num = trap_count++; - struct Trap *trap = &traps[trap_num]; + int i; + unsigned int trap_num; + struct Trap *trap; + uaecptr addr = here (); + + for (i = 0; i < trap_count; i++) { + if (addr == traps[i].addr) + return i; + } + + trap_num = trap_count++; + trap = &traps[trap_num]; trap->handler = handler_func; trap->flags = flags; trap->name = name; - trap->addr = here (); + trap->addr = addr; return trap_num; } diff --git a/uaeunp.c b/uaeunp.c index 5b3efd8c..9775d7b6 100644 --- a/uaeunp.c +++ b/uaeunp.c @@ -625,7 +625,7 @@ int wmain (int argc, wchar_t *argv[], wchar_t *envp[]) ok = 1; } if (!ok) { - _tprintf (L"UAE unpacker uaeunp 0.5b by Toni Wilen (c)2009\n"); + _tprintf (L"UAE unpacker uaeunp 0.5c by Toni Wilen (c)2009\n"); _tprintf (L"\n"); _tprintf (L"List: \"uaeunp (-l) \"\n"); _tprintf (L"List all recursively: \"uaeunp -l **\"\n"); @@ -660,5 +660,8 @@ int wmain (int argc, wchar_t *argv[], wchar_t *envp[]) - SFS2 supported - block size autodetection implemented (if non-rdb hardfile) + 0.5c: + + - rdb_dump.dat added to rdb hardfiles, can be used to dump/backup rdb blocks */ \ No newline at end of file diff --git a/zfile_archive.c b/zfile_archive.c index 7671c5af..ffbae8df 100644 --- a/zfile_archive.c +++ b/zfile_archive.c @@ -1479,9 +1479,12 @@ static TCHAR *tochar (uae_u8 *s, int len) struct zvolume *archive_directory_rdb (struct zfile *z) { uae_u8 buf[512] = { 0 }; - int partnum; + int partnum, bs; TCHAR *devname; struct zvolume *zv; + struct zarchive_info zai; + uae_u8 *p; + struct znode *zn; zv = zvolume_alloc (z, ArchiveFormatRDB, NULL, NULL); @@ -1491,12 +1494,9 @@ struct zvolume *archive_directory_rdb (struct zfile *z) partnum = 0; for (;;) { int partblock; - struct znode *zn; - struct zarchive_info zai; TCHAR tmp[MAX_DPATH]; int surf, spt, spb, lowcyl, highcyl, reserved; int size, block, blocksize, rootblock; - uae_u8 *p; TCHAR comment[81], *dos; if (partnum == 0) @@ -1546,6 +1546,16 @@ struct zvolume *archive_directory_rdb (struct zfile *z) zn->offset2 = blocksize; // örp? } + zfile_fseek (z, 0, SEEK_SET); + p = buf; + zfile_fread (buf, 1, 512, z); + zai.name = L"rdb_dump.dat"; + bs = rl (p + 16); + zai.size = rl (p + 140) * bs; + zai.comment = NULL; + zn = zvolume_addfile_abs (zv, &zai); + zn->offset = 0; + zv->method = ArchiveFormatRDB; return zv; } @@ -1559,20 +1569,29 @@ struct zfile *archive_access_rdb (struct znode *zn) int size, block, blocksize; uae_u8 *p; - zfile_fseek (z, zn->offset * 512, SEEK_SET); - zfile_fread (buf, 1, 512, z); - - p = buf + 128 - 16; - surf = rl (p + 28); - spb = rl (p + 32); - spt = rl (p + 36); - lowcyl = rl (p + 52); - highcyl = rl (p + 56); - blocksize = rl (p + 20) * 4; - block = lowcyl * surf * spt; - - size = (highcyl - lowcyl + 1) * surf * spt; - size *= blocksize; + if (zn->offset) { + zfile_fseek (z, zn->offset * 512, SEEK_SET); + zfile_fread (buf, 1, 512, z); + + p = buf + 128 - 16; + surf = rl (p + 28); + spb = rl (p + 32); + spt = rl (p + 36); + lowcyl = rl (p + 52); + highcyl = rl (p + 56); + blocksize = rl (p + 20) * 4; + block = lowcyl * surf * spt; + + size = (highcyl - lowcyl + 1) * surf * spt; + size *= blocksize; + } else { + zfile_fseek (z, 0, SEEK_SET); + zfile_fread (buf, 1, 512, z); + p = buf; + blocksize = rl (p + 16); + block = 0; + size = zn->size; + } zf = zfile_fopen_empty (z, zn->fullname, size); zfile_fseek (z, block * blocksize, SEEK_SET); -- 2.47.3