roms[2] = 53;
roms[3] = 56;
roms[4] = -1;
- roms[0] = 56;
+ //roms[0] = 56;
rombankswitcher = 0;
rombank = 0;
static int cdrom_current_sector;
static int cdrom_data_end, cdrom_leadout;
static int cdrom_dosomething;
+static int cdrom_audiotimeout;
static uae_u8 *sector_buffer_1, *sector_buffer_2;
static int sector_buffer_sector_1, sector_buffer_sector_2;
sys_command_cd_pause (DF_IOCTL, unitnum, 0);
sys_command_cd_stop (DF_IOCTL, unitnum);
sys_command_cd_pause (DF_IOCTL, unitnum, 1);
+ cdrom_audiotimeout = 0;
}
static uae_u32 last_play_end;
#endif
#endif
last_play_end = endmsf;
+ cdrom_audiotimeout = 0;
return sys_command_cd_play (DF_IOCTL, unitnum, startmsf, endmsf, scan);
}
return 2;
if (cdrom_paused)
return 2;
+ cdrom_audiotimeout = 0;
sys_command_cd_pause (DF_IOCTL, unitnum,1);
cdrom_paused = 1;
return 2;
}
if (cdrom_playing) {
static int frame2counter;
+ if (cdrom_audiotimeout > 0) {
+ cdrom_audiotimeout--;
+ if (cdrom_audiotimeout == 0) {
+ set_status(CDSTATUS_DATA_AVAILABLE);
+ cdrom_playing = 0;
+ cdrom_result_buffer[1] = 0;
+ cdrom_return_data (2);
+ }
+ }
frame2counter--;
if (frame2counter <= 0) {
uae_u8 *s;
uae_u8 as = s[1];
if (as == AUDIO_STATUS_IN_PROGRESS) {
int lsn = msf2lsn ((s[5 + 4] << 16) | (s[6 + 4] << 8) | (s[7 + 4] << 0));
- //write_log("%d %d (%d %d)\n", lsn, msf2lsn (last_play_end) - lsn, cdrom_leadout, msf2lsn (last_play_end));
- if (lsn >= cdrom_leadout - 100 || lsn >= msf2lsn(last_play_end) - 100) {
- set_status(CDSTATUS_DATA_AVAILABLE);
- cdrom_playing = 0;
- cdrom_result_buffer[1] = 0;
- cdrom_return_data (2);
+ write_log("%d %d (%d %d)\n", lsn, msf2lsn (last_play_end) - lsn, cdrom_leadout, msf2lsn (last_play_end));
+ // make sure audio play really ends because not all drives report position accurately
+ if ((lsn >= cdrom_leadout - 3 * 75 || lsn >= msf2lsn(last_play_end) - 3 * 75) && !cdrom_audiotimeout) {
+ cdrom_audiotimeout = 3 * 312;
+ write_log("audiotimeout starts\n");
}
}
}
roms[0] = 16;
roms[1] = 31;
roms[2] = 13;
- roms[3] = -1;
+ roms[3] = 12;
+ roms[4] = -1;
p->immediate_blits = 1;
p->bogomem_size = 0;
p->chipmem_size = 0x200000;
- p->cpu_model = 68040;
- p->fpu_model = 68040;
+ p->mbresmem_low_size = 8 * 1024 * 1024;
+ p->cpu_model = 68030;
+ p->fpu_model = 68882;
+ if (config > 0)
+ p->cpu_model = p->fpu_model = 68040;
p->chipset_mask = CSMASK_AGA | CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE;
p->cpu_compatible = p->address_space_24 = 0;
p->m68k_speed = -1;
p->immediate_blits = 1;
p->bogomem_size = 0;
p->chipmem_size = 0x200000;
- p->cpu_model = 68040;
- p->fpu_model = 68040;
+ p->mbresmem_low_size = 8 * 1024 * 1024;
+ p->cpu_model = 68030;
+ p->fpu_model = 68882;
+ if (config > 0)
+ p->cpu_model = p->fpu_model = 68040;
p->chipset_mask = CSMASK_AGA | CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE;
p->cpu_compatible = p->address_space_24 = 0;
p->m68k_speed = -1;
} else {
ui->hf.readonly = 1;
ui->hf.blocksize = uci->blocksize;
- if (!hdf_open (&ui->hf, uci->rootdir))
+ if (!hdf_open (&ui->hf, uci->rootdir)) {
+ if (uci->reserved == 0 && uci->sectors == 0 && uci->surfaces == 0) {
+ if (ui->hf.flags & 1)
+ return FILESYS_HARDDRIVE;
+ return FILESYS_HARDFILE_RDB;
+ }
return -1;
+ }
hdf_close (&ui->hf);
}
} else {
u->mountcount++;
write_log ("FILESYS: removed volume '%s'\n", u->ui.volname);
flush_cache(u, -1);
- put_byte (u->volume + 172 - 32, -1);
+ put_byte (u->volume + 172 - 32, -2);
uae_Signal(get_long(u->volume + 176 - 32), 1 << 17);
return 1;
}
if (automountunit >= 0)
return -1;
+ nr = -1;
for (u = units; u; u = u->next) {
if (is_hardfile (u->unit) == FILESYS_VIRTUAL) {
ui = &mountinfo.ui[u->unit];
if (ui->rootdir && !memcmp (ui->rootdir, rootdir, strlen (rootdir)) && strlen (rootdir) + 3 >= strlen (ui->rootdir)) {
+ if (filesys_isvolume (u) && inserted)
+ return 0;
nr = u->unit;
break;
}
if (is_hardfile(nr) != FILESYS_VIRTUAL)
return 0;
if (filesys_isvolume (u)) {
- u->reinsertdelay = 100;
+ u->reinsertdelay = 50;
u->newflags = flags;
u->newreadonly = readonly;
u->newrootdir = my_strdup (rootdir);
xfree (u->ui.volname);
ui->volname = u->ui.volname = filesys_createvolname (volume, rootdir, "removable");
set_volume_name (u);
- write_log ("FILESYS: inserted volume %d '%s' ('%s')\n", nr, ui->volname, rootdir);
+ write_log ("FILESYS: inserted volume NR=%d RO=%d '%s' ('%s')\n", nr, readonly, ui->volname, rootdir);
if (flags >= 0)
ui->volflags = u->volflags = u->ui.volflags = flags;
strcpy (uci->volname, ui->volname);
strcpy (uci->rootdir, rootdir);
if (readonly >= 0)
- uci->readonly = ui->readonly = readonly;
+ uci->readonly = ui->readonly = u->ui.readonly = readonly;
put_byte (u->volume + 44, 0);
put_byte (u->volume + 172 - 32, 1);
uae_Signal (get_long(u->volume + 176 - 32), 1 << 17);
/* fill in our process in the device node */
devnode = get_long (pkt + dp_Arg3) << 2;
- put_long (unit->volume + 180, devnode);
put_long (devnode + 8, unit->port);
unit->dosbase = m68k_areg (&context->regs, 2);
/* make new volume */
unit->volume = m68k_areg (&context->regs, 3) + 32;
+ put_long (unit->volume + 180 - 32, devnode);
#ifdef UAE_FILESYS_THREADS
unit->locklist = m68k_areg (&context->regs, 3) + 8;
#else
if (exalldata + exalldatasize - exp < size + size2)
return 0; /* not enough space */
- write_log("%d, %08x: '%s'%s\n", get_long (control + 0), exp, x, aino->dir ? " [DIR]" : "");
+ //write_log("%d, %08x: '%s'%s\n", get_long (control + 0), exp, x, aino->dir ? " [DIR]" : "");
put_long (exp, exp + size + size2); /* ed_Next */
if (control >= 1) {
db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
- db(0x60); db(0x00); db(0x08); db(0x34); db(0x00); db(0x00); db(0x06); db(0x9c);
+ db(0x60); db(0x00); db(0x08); db(0x50); db(0x00); db(0x00); db(0x06); db(0xb8);
db(0x00); db(0x00); db(0x00); db(0x34); db(0x00); db(0x00); db(0x01); db(0x58);
db(0x00); db(0x00); db(0x00); db(0x20); db(0x00); db(0x00); db(0x02); db(0x14);
- db(0x00); db(0x00); db(0x0a); db(0x64); db(0x00); db(0x00); db(0x0b); db(0xf8);
- db(0x43); db(0xfa); db(0x0d); db(0xce); db(0x4e); db(0xae); db(0xff); db(0xa0);
+ db(0x00); db(0x00); db(0x0a); db(0x84); db(0x00); db(0x00); db(0x0c); db(0x18);
+ db(0x43); db(0xfa); db(0x0d); db(0xee); 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(0x0a); db(0x12); db(0x2a); db(0x50); db(0x43); db(0xfa);
- db(0x0d); db(0xc6); db(0x70); db(0x24); db(0x7a); db(0x00); db(0x4e); db(0xae);
+ db(0x61); db(0x00); db(0x0a); db(0x32); db(0x2a); db(0x50); db(0x43); db(0xfa);
+ db(0x0d); db(0xe6); db(0x70); db(0x24); db(0x7a); db(0x00); db(0x4e); db(0xae);
db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x66); db(0x0c); db(0x43); db(0xfa);
- db(0x0d); db(0xb6); db(0x70); db(0x00); db(0x7a); db(0x01); db(0x4e); db(0xae);
+ db(0x0d); db(0xd6); db(0x70); db(0x00); db(0x7a); db(0x01); 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(0x26); db(0x40); db(0x27); db(0x4c);
db(0x01); db(0x9c); db(0x7c); db(0x00); db(0xbc); db(0xad); db(0x01); db(0x0c);
db(0x64); db(0x24); db(0x2f); db(0x06); db(0x7e); db(0x01); db(0x2f); db(0x0b);
- db(0x20); db(0x4b); db(0x61); db(0x00); db(0x06); db(0x10); db(0x26); db(0x5f);
+ db(0x20); db(0x4b); db(0x61); db(0x00); db(0x06); db(0x2c); db(0x26); db(0x5f);
db(0x0c); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x08);
db(0x48); db(0x46); db(0x52); db(0x46); db(0x48); db(0x46); db(0x60); db(0xe4);
db(0x2c); db(0x1f); db(0x52); db(0x46); db(0x60); db(0xd6); db(0x2c); db(0x78);
db(0x00); db(0x04); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x62);
- db(0x30); db(0x3c); db(0xff); db(0x80); db(0x61); db(0x00); db(0x09); db(0x9e);
+ db(0x30); db(0x3c); db(0xff); db(0x80); db(0x61); db(0x00); db(0x09); db(0xbe);
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(0x0c); db(0xf0); db(0x43); db(0xfa);
- db(0x00); db(0x1c); db(0x70); db(0x0a); db(0x61); db(0x00); db(0x0a); db(0xbe);
+ db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x0d); db(0x10); db(0x43); db(0xfa);
+ db(0x00); db(0x1c); db(0x70); db(0x0a); db(0x61); db(0x00); db(0x0a); db(0xde);
db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c); db(0xff); db(0x48);
- db(0x61); db(0x00); db(0x09); db(0x6a); db(0x4e); db(0x90); db(0x4c); db(0xdf);
+ db(0x61); db(0x00); db(0x09); db(0x8a); db(0x4e); db(0x90); db(0x4c); db(0xdf);
db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04);
db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x11); db(0x4e); db(0xae);
- db(0xfe); db(0xc2); db(0x43); db(0xfa); db(0x0c); db(0xec); db(0x70); db(0x00);
+ db(0xfe); db(0xc2); db(0x43); db(0xfa); db(0x0d); db(0x0c); db(0x70); db(0x00);
db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x67); db(0xe4);
- db(0x2c); db(0x40); db(0x41); db(0xfa); db(0x0c); db(0xc3); db(0x22); db(0x08);
+ db(0x2c); db(0x40); db(0x41); db(0xfa); db(0x0c); db(0xe3); db(0x22); db(0x08);
db(0x74); db(0x0f); db(0x41); db(0xfa); db(0x00); db(0x20); db(0x26); db(0x08);
db(0xe4); db(0x8b); db(0x28); db(0x3c); db(0x00); db(0x00); db(0x1f); db(0x40);
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(0x60); db(0xbc);
db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
db(0x72); db(0x02); db(0x30); db(0x3c); db(0xff); db(0x48); db(0x61); db(0x00);
- db(0x09); db(0x0c); db(0x4e); db(0x90); db(0x22); db(0x00); db(0x6b); db(0x04);
- db(0x61); db(0x00); db(0x06); db(0x9c); db(0x70); db(0x00); db(0x4e); db(0x75);
+ db(0x09); db(0x2c); db(0x4e); db(0x90); db(0x22); db(0x00); db(0x6b); db(0x04);
+ db(0x61); db(0x00); db(0x06); db(0xb8); db(0x70); db(0x00); db(0x4e); db(0x75);
db(0x48); db(0xe7); db(0x00); db(0x20); db(0x30); db(0x3c); db(0xff); db(0x50);
- db(0x61); db(0x00); db(0x08); db(0xf2); db(0x70); db(0x00); db(0x4e); db(0x90);
+ db(0x61); db(0x00); db(0x09); db(0x12); db(0x70); db(0x00); db(0x4e); db(0x90);
db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0xa2); db(0x2c); db(0x78);
db(0x00); db(0x04); db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00);
- db(0x08); db(0xdc); db(0x70); db(0x02); db(0x4e); db(0x90); db(0x0c); db(0x40);
+ db(0x08); db(0xfc); db(0x70); db(0x02); db(0x4e); db(0x90); db(0x0c); db(0x40);
db(0x00); db(0x01); db(0x6d); db(0x00); db(0x00); db(0x7c); db(0x6e); db(0x06);
db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0xe4); db(0x0c); db(0x40);
db(0x00); db(0x02); db(0x6e); db(0x08); db(0x20); db(0x01); db(0x4e); db(0xae);
db(0x35); db(0x7c); db(0x12); db(0x34); db(0x00); db(0x18); db(0x25); db(0x49);
db(0x00); db(0x1a); db(0x20); db(0x69); db(0x00); db(0x10); db(0x22); db(0x4a);
db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0x00); db(0xff); db(0x74);
- db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x08); db(0x4e);
+ db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x08); db(0x6e);
db(0x70); db(0x04); db(0x4e); db(0x90); 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(0x0b); db(0x8d); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa);
+ db(0x0b); db(0xad); 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); db(0x70); db(0x03); db(0x4e); db(0xae);
db(0x43); db(0xeb); db(0x01); db(0xa0); db(0x11); db(0xb1); 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(0x0b); db(0x27);
+ db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa); db(0x0b); db(0x47);
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(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(0x0a); db(0x68); db(0x10); db(0x19); db(0x12); db(0x1a); db(0xb0); db(0x01);
+ db(0x0a); db(0x88); 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(0x0a); db(0x3e); db(0x25); db(0x48); db(0x00); db(0x0a);
- db(0x41); db(0xfa); db(0x09); db(0xcb); db(0x25); db(0x48); db(0x00); db(0x0e);
+ db(0x41); db(0xfa); db(0x0a); db(0x5e); db(0x25); db(0x48); db(0x00); db(0x0a);
+ db(0x41); db(0xfa); db(0x09); db(0xeb); db(0x25); db(0x48); db(0x00); db(0x0e);
db(0x41); db(0xea); db(0x00); db(0x12); db(0x20); db(0x88); db(0x58); db(0x90);
db(0x21); db(0x48); db(0x00); db(0x08); db(0x41); db(0xee); db(0x01); db(0x50);
db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xff); db(0x0a); db(0x20); db(0x4a);
db(0x20); db(0x08); db(0x4c); db(0xdf); db(0x47); db(0x02); db(0x4e); db(0x75);
db(0x48); db(0xe7); db(0x01); db(0x02); db(0x2e); db(0x00); db(0x4a); db(0x2b);
- db(0x00); db(0x4c); db(0x67); db(0x70); db(0x2c); db(0x6b); db(0x00); db(0xa0);
- db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x34);
+ db(0x00); db(0x4c); db(0x67); db(0x7a); db(0x2c); db(0x6b); db(0x00); db(0xa0);
+ db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x3e);
db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x66); db(0x02); db(0x80);
- db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x56); db(0x08); db(0x07);
+ db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x60); db(0x08); db(0x07);
db(0x00); db(0x00); db(0x67); db(0x0a); db(0x41); db(0xeb); db(0x00); db(0x20);
db(0x22); db(0x08); db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x08); db(0x07);
- db(0x00); db(0x01); db(0x67); db(0x08); db(0x22); db(0x2b); db(0x00); db(0xb4);
- db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x72); db(0x0e); db(0x4e); db(0xae);
- db(0xfd); db(0x6c); db(0x60); db(0x30); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e);
+ db(0x66); db(0x0c); db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x22); db(0x2b);
+ db(0x00); db(0xb4); db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x72); db(0x0e);
+ db(0x4e); db(0xae); db(0xfd); db(0x6c); db(0x60); db(0x30); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x20); db(0x6b);
+ db(0x00); db(0xa0); db(0x20); db(0x68); db(0x00); db(0x22); db(0xd1); db(0xc8);
+ db(0xd1); db(0xc8); db(0x20); db(0x68); db(0x00); db(0x18); db(0xd1); db(0xc8);
+ db(0xd1); db(0xc8); db(0x43); db(0xeb); db(0x00); db(0x20); db(0x22); db(0xa8);
+ db(0x00); db(0x04); db(0x20); db(0x09); db(0xe4); db(0x88); db(0x21); db(0x40);
+ db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4c); db(0xdf);
+ db(0x40); db(0x80); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x01); db(0x22);
+ db(0x2e); db(0x00); db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x0c); db(0x6e);
+ db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x3e); db(0x72); db(0x0e);
+ db(0x4e); db(0xae); db(0xfd); db(0x66); db(0x02); db(0x80); db(0xff); db(0xff);
+ db(0xff); db(0xfe); db(0x67); db(0x72); db(0x08); db(0x07); db(0x00); db(0x00);
+ db(0x67); db(0x0a); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x22); db(0x08);
+ db(0x4e); db(0xae); db(0xfd); db(0x60); db(0x08); db(0x07); db(0x00); db(0x01);
+ db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x67); db(0x0c);
+ db(0x42); db(0x2b); db(0x00); db(0x9e); db(0x22); db(0x2b); db(0x00); db(0xb4);
+ db(0x4e); db(0xae); db(0xfd); db(0x60); db(0x72); db(0x0e); db(0x4e); db(0xae);
+ db(0xfd); db(0x6c); db(0x60); db(0x42); db(0x2c); db(0x78); db(0x00); db(0x04);
db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x20); db(0x6b); db(0x00); db(0xa0);
db(0x20); db(0x68); db(0x00); db(0x22); db(0xd1); db(0xc8); db(0xd1); db(0xc8);
db(0x20); db(0x68); db(0x00); db(0x18); db(0xd1); db(0xc8); db(0xd1); db(0xc8);
- db(0x43); db(0xeb); db(0x00); db(0x20); db(0x22); db(0xa8); db(0x00); db(0x04);
- db(0x20); db(0x09); db(0xe4); db(0x88); db(0x21); db(0x40); db(0x00); db(0x04);
- db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4c); db(0xdf); db(0x40); db(0x80);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x01); db(0x22); db(0x2e); db(0x00);
- db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x0c); db(0x6e); db(0x00); db(0x25);
- db(0x00); db(0x14); db(0x65); db(0x34); db(0x72); db(0x0e); db(0x4e); db(0xae);
- db(0xfd); db(0x66); db(0x02); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe);
- db(0x67); db(0x68); db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x0a);
- db(0x41); db(0xeb); db(0x00); db(0x20); db(0x22); db(0x08); db(0x4e); db(0xae);
- db(0xfd); db(0x60); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x08);
- db(0x22); db(0x2b); db(0x00); db(0xb4); db(0x4e); db(0xae); db(0xfd); db(0x60);
- db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x6c); db(0x60); db(0x42);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x7c);
- db(0x20); db(0x6b); db(0x00); db(0xa0); db(0x20); db(0x68); db(0x00); db(0x22);
- db(0xd1); db(0xc8); db(0xd1); db(0xc8); db(0x20); db(0x68); db(0x00); db(0x18);
- db(0xd1); db(0xc8); db(0xd1); db(0xc8); db(0x43); db(0xe8); db(0x00); db(0x04);
- db(0x45); db(0xeb); db(0x00); db(0x20); db(0x20); db(0x28); db(0x00); db(0x04);
- db(0x67); db(0x14); db(0xd0); db(0x80); db(0xd0); db(0x80); db(0xb5); db(0xc0);
- db(0x67); db(0x0a); db(0x22); db(0x40); db(0x20); db(0x51); db(0xd1); db(0xc8);
- db(0xd1); db(0xc8); db(0x60); db(0xe8); db(0x22); db(0x92); db(0x4e); db(0xae);
- db(0xff); db(0x76); db(0x4c); db(0xdf); db(0x44); db(0x80); db(0x4e); db(0x75);
- db(0x48); db(0xe7); db(0x20); db(0x22); db(0x74); db(0x16); db(0x9f); db(0xc2);
- db(0x24); db(0x4f); db(0x32); db(0x02); db(0x42); db(0x32); db(0x10); db(0xff);
- db(0x53); db(0x41); db(0x66); db(0xf8); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x72); db(0x0f); db(0x4a); db(0x80); db(0x67); db(0x02); db(0x72); db(0x10);
- db(0x15); db(0x41); db(0x00); db(0x04); db(0x35); db(0x7c); db(0x08); db(0x00);
- db(0x00); db(0x08); db(0x22); db(0x6b); db(0x00); db(0xa4); db(0x33); db(0x7c);
- db(0x00); db(0x0b); db(0x00); db(0x1c); db(0x23); db(0x7c); db(0x00); db(0x00);
- db(0x00); db(0x16); db(0x00); db(0x24); db(0x23); db(0x4a); db(0x00); db(0x28);
- db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e); db(0x22); db(0x6b);
- db(0x00); db(0xa8); db(0x33); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x1c);
- db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae);
- db(0xfe); db(0x38); db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x25); db(0x69);
- db(0x00); db(0x20); db(0x00); db(0x0e); db(0x25); db(0x69); db(0x00); db(0x24);
- db(0x00); db(0x12); db(0x22); db(0x6b); db(0x00); db(0xa4); db(0x4e); db(0xae);
- db(0xfe); db(0x38); db(0xdf); db(0xc2); db(0x4c); db(0xdf); db(0x44); db(0x04);
- db(0x4e); db(0x75); db(0x4a); db(0x00); db(0x67); db(0x26); db(0x4a); db(0x2b);
- db(0x00); db(0x4c); db(0x66); db(0x36); db(0x70); db(0x00); db(0x4a); db(0x33);
- db(0x00); db(0x4d); db(0x67); db(0x04); db(0x52); db(0x00); db(0x60); db(0xf6);
- db(0x17); db(0x40); db(0x00); db(0x4c); db(0x67); db(0x24); db(0x20); db(0x01);
- db(0x61); db(0x00); db(0xfe); db(0x56); db(0x70); db(0x01); db(0x61); db(0x00);
- db(0xff); db(0x60); db(0x60); db(0x16); db(0x4a); db(0x2b); db(0x00); db(0x4c);
- db(0x67); db(0x10); db(0x42); db(0x2b); db(0x00); db(0x4c); db(0x20); db(0x01);
- db(0x61); db(0x00); db(0xfe); db(0xc0); db(0x70); db(0x00); db(0x61); db(0x00);
- db(0xff); db(0x48); db(0x4e); db(0x75); db(0x4a); db(0xac); db(0x00); db(0x14);
- db(0x67); db(0x0a); db(0x70); db(0x00); db(0x72); db(0x01); db(0x61); db(0x00);
- db(0xff); db(0xb2); db(0x4e); db(0x75); db(0x70); db(0x01); db(0x72); db(0x01);
- db(0x61); db(0x00); db(0xff); db(0xa8); db(0x4e); db(0x75); db(0x4a); db(0x2b);
- db(0x00); db(0xac); db(0x6b); db(0x0a); db(0x70); db(0x01); db(0x72); db(0x01);
- db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75); db(0x70); db(0x00);
- db(0x72); db(0x01); db(0x61); db(0x00); db(0xff); db(0x8e); db(0x4e); db(0x75);
- db(0x20); db(0x6c); db(0x00); db(0x24); db(0x4a); db(0xa8); db(0x00); db(0x08);
- db(0x66); db(0x08); db(0x4a); db(0xa8); db(0x00); db(0x0c); db(0x66); db(0x02);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2a); db(0x48);
- db(0x24); db(0x6c); db(0x00); db(0x18); db(0x2e); db(0x15); db(0x4a); db(0x87);
- db(0x67); db(0x64); db(0x20); db(0x0a); db(0x67); db(0x60); db(0x7c); db(0x00);
- db(0x22); db(0x2d); db(0x00); db(0x08); db(0x67); db(0x12); db(0x24); db(0x2a);
- db(0x00); db(0x04); db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x4e); db(0xae);
- db(0xfc); db(0x34); db(0x4a); db(0x80); db(0x66); db(0x02); db(0x50); db(0xc6);
- db(0x22); db(0x2d); db(0x00); db(0x0c); db(0x67); db(0x1c); db(0x20); db(0x41);
- db(0x22); db(0x4a); db(0x2f); db(0x0a); db(0x45); db(0xec); db(0x00); db(0x20);
- db(0x48); db(0x7a); db(0x00); db(0x08); db(0x2f); db(0x28); db(0x00); db(0x08);
- db(0x4e); db(0x75); db(0x24); db(0x5f); db(0x4a); db(0x80); db(0x66); db(0x02);
- db(0x50); db(0xc6); db(0x4a); db(0x06); db(0x67); db(0x1a); db(0x20); db(0x2a);
- db(0x00); db(0x04); db(0x90); db(0x8a); db(0x4a); db(0x92); db(0x67); db(0x0a);
- db(0x20); db(0x52); db(0x22); db(0x4a); db(0x22); db(0xd8); db(0x59); db(0x81);
- db(0x6a); db(0xfa); db(0x53); db(0x95); db(0x53); db(0x87); db(0x60); db(0x9e);
- db(0x24); db(0x52); db(0x53); db(0x87); db(0x60); db(0x98); db(0x4c); db(0xdf);
- db(0x7c); db(0xfc); db(0x4e); db(0x75); db(0x61); db(0x00); db(0xfd); db(0x02);
- db(0x21); db(0x40); db(0x01); db(0x98); db(0x2f); db(0x08); db(0x30); db(0x3c);
- db(0xff); db(0xfc); db(0x61); db(0x00); db(0x03); db(0xa8); db(0x2a); db(0x50);
- db(0x30); db(0x3c); db(0xff); db(0x28); db(0x61); db(0x00); db(0x03); db(0x9e);
- db(0x22); db(0x48); db(0x20); db(0x5f); db(0x42); db(0xa8); db(0x01); db(0x90);
- db(0x42); db(0xa8); db(0x01); db(0x94); db(0x4e); db(0x91); db(0x26); db(0x00);
- db(0x0c); db(0x83); db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x00);
- db(0xfa); db(0x22); db(0x0c); db(0x83); db(0x00); db(0x00); db(0x00); db(0x02);
- db(0x67); db(0x0c); db(0xc0); db(0x85); db(0x67); db(0x08); db(0x4a); db(0xa8);
- db(0x01); db(0x90); db(0x67); db(0x00); db(0xfa); db(0x0e); db(0x20); db(0x28);
- db(0x01); db(0x90); db(0x67); db(0x12); db(0x2f); db(0x08); db(0x72); db(0x01);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x20); db(0x5f); db(0x21); db(0x40); db(0x01); db(0x94); db(0x4a); db(0x83);
- db(0x6a); db(0x0e); db(0x22); db(0x48); db(0x30); db(0x3c); db(0xff); db(0x20);
- db(0x61); db(0x00); db(0x03); db(0x4a); db(0x4e); db(0x90); db(0x60); db(0x26);
- db(0x2c); db(0x4c); db(0x2f); db(0x08); db(0x4e); db(0xae); db(0xff); db(0x70);
- db(0x20); db(0x5f); db(0x22); db(0x48); db(0x26); db(0x40); db(0x30); db(0x3c);
- db(0xff); db(0x20); db(0x61); db(0x00); db(0x03); db(0x30); db(0x4e); db(0x90);
- db(0x70); db(0x00); db(0x27); db(0x40); db(0x00); db(0x08); db(0x27); db(0x40);
- db(0x00); db(0x10); db(0x27); db(0x40); db(0x00); db(0x20); db(0x4a); db(0xa9);
- db(0x01); db(0x94); db(0x67); db(0x28); db(0x20); db(0x69); db(0x01); db(0x94);
- db(0x61); db(0x00); db(0xfb); db(0x64); db(0x48); db(0xe7); db(0x80); db(0xc0);
- db(0x20); db(0x29); db(0x01); db(0x90); db(0x22); db(0x69); db(0x01); db(0x94);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x2e);
- db(0x4c); db(0xdf); db(0x03); db(0x01); db(0x4a); db(0x80); db(0x67); db(0x04);
- db(0x61); db(0x00); db(0xfa); db(0xee); db(0x4a); db(0x83); db(0x6b); db(0x00);
- db(0xf9); db(0x8a); db(0x30); db(0x3c); db(0xff); db(0x18); db(0x61); db(0x00);
- db(0x02); db(0xe4); db(0x4e); db(0x90); db(0x20); db(0x03); db(0x16); db(0x29);
- db(0x00); db(0x4f); db(0x4a); db(0x80); db(0x66); db(0x1a); db(0x27); db(0x7c);
- db(0x00); db(0x00); db(0x17); db(0x70); db(0x00); db(0x14); db(0x43); db(0xfa);
- db(0xf8); db(0x74); db(0x20); db(0x09); db(0xe4); db(0x88); db(0x27); db(0x40);
- db(0x00); db(0x20); db(0x70); db(0xff); db(0x27); db(0x40); db(0x00); db(0x24);
- db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x38); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x70); db(0x14); db(0x72); db(0x00); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x22); db(0x40); db(0x70); db(0x00); db(0x22); db(0x80);
- db(0x23); db(0x40); db(0x00); db(0x04); db(0x33); db(0x40); db(0x00); db(0x0e);
- db(0x30); db(0x3c); db(0x10); db(0x00); db(0x80); db(0x03); db(0x33); db(0x40);
- db(0x00); db(0x08); db(0x23); db(0x6d); db(0x01); db(0x04); db(0x00); db(0x0a);
- db(0x23); db(0x4b); db(0x00); db(0x10); db(0x41); db(0xec); db(0x00); db(0x4a);
- db(0x4e); db(0xae); db(0xfe); db(0xf2); db(0x4e); db(0x75); db(0x20); db(0x4b);
- db(0x72); db(0x00); db(0x22); db(0x41); db(0x08); db(0x07); db(0x00); db(0x01);
- db(0x67); db(0x02); db(0x72); db(0x01); db(0x70); db(0xec); db(0x2c); db(0x4c);
- db(0x4e); db(0xae); db(0xff); db(0x6a); db(0x4e); db(0x75); db(0x48); db(0xe7);
- db(0x3f); db(0x3e); db(0x2c); db(0x01); db(0x7e); db(0x02); db(0x7a); db(0x00);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x06); db(0x10);
- 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(0x21); db(0x4c); db(0x01); db(0x9c); db(0x48); db(0xe7);
- db(0x00); db(0x0a); db(0x61); db(0x00); db(0xfe); db(0x78); db(0x4c); db(0xdf);
- db(0x50); db(0x00); db(0x22); db(0x4c); db(0x4e); db(0xae); 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(0x05); db(0xa8); 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(0x93); db(0xc9); db(0x4e); db(0xae);
+ db(0x43); db(0xe8); db(0x00); db(0x04); db(0x45); db(0xeb); db(0x00); db(0x20);
+ db(0x20); db(0x28); db(0x00); db(0x04); db(0x67); db(0x14); db(0xd0); db(0x80);
+ db(0xd0); db(0x80); db(0xb5); db(0xc0); db(0x67); db(0x0a); db(0x22); db(0x40);
+ db(0x20); db(0x51); db(0xd1); db(0xc8); db(0xd1); db(0xc8); db(0x60); db(0xe8);
+ db(0x22); db(0x92); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4c); db(0xdf);
+ db(0x44); db(0x80); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22);
+ db(0x74); db(0x16); db(0x9f); db(0xc2); db(0x24); db(0x4f); db(0x32); db(0x02);
+ db(0x42); db(0x32); db(0x10); db(0xff); db(0x53); db(0x41); db(0x66); db(0xf8);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x72); db(0x0f); db(0x4a); db(0x80);
+ db(0x67); db(0x02); db(0x72); db(0x10); db(0x15); db(0x41); db(0x00); db(0x04);
+ db(0x35); db(0x7c); db(0x08); db(0x00); db(0x00); db(0x08); db(0x22); db(0x6b);
+ db(0x00); db(0xa4); db(0x33); db(0x7c); db(0x00); db(0x0b); db(0x00); db(0x1c);
+ db(0x23); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x16); db(0x00); db(0x24);
+ db(0x23); db(0x4a); db(0x00); db(0x28); db(0x13); db(0x7c); db(0x00); db(0x01);
+ db(0x00); db(0x1e); db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x33); db(0x7c);
+ db(0x00); db(0x0a); db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01);
+ db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x22); db(0x6b);
+ db(0x00); db(0xa8); db(0x25); db(0x69); db(0x00); db(0x20); db(0x00); db(0x0e);
+ db(0x25); db(0x69); db(0x00); db(0x24); db(0x00); db(0x12); db(0x22); db(0x6b);
+ db(0x00); db(0xa4); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0xdf); db(0xc2);
+ db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75); db(0x4a); db(0x00);
+ db(0x67); db(0x26); db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x66); db(0x36);
+ db(0x70); db(0x00); db(0x4a); db(0x33); db(0x00); db(0x4d); db(0x67); db(0x04);
+ db(0x52); db(0x00); db(0x60); db(0xf6); db(0x17); db(0x40); db(0x00); db(0x4c);
+ db(0x67); db(0x24); db(0x20); db(0x01); db(0x61); db(0x00); db(0xfe); db(0x42);
+ db(0x70); db(0x01); db(0x61); db(0x00); db(0xff); db(0x60); db(0x60); db(0x16);
+ db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x67); db(0x10); db(0x42); db(0x2b);
+ db(0x00); db(0x4c); db(0x20); db(0x01); db(0x61); db(0x00); db(0xfe); db(0xb6);
+ db(0x70); db(0x00); db(0x61); db(0x00); db(0xff); db(0x48); db(0x4e); db(0x75);
+ db(0x4a); db(0xac); db(0x00); db(0x14); db(0x67); db(0x0a); db(0x70); db(0x00);
+ db(0x72); db(0x01); db(0x61); db(0x00); db(0xff); db(0xb2); db(0x4e); db(0x75);
+ db(0x70); db(0x01); db(0x72); db(0x03); db(0x61); db(0x00); db(0xff); db(0xa8);
+ db(0x4e); db(0x75); db(0x10); db(0x2b); db(0x00); db(0xac); db(0x6b); db(0x0a);
+ db(0x70); db(0x01); db(0x72); db(0x03); db(0x61); db(0x00); db(0xff); db(0x98);
+ db(0x4e); db(0x75); db(0x72); db(0x01); db(0x0c); db(0x00); db(0x00); db(0xfe);
+ db(0x66); db(0x02); db(0x72); db(0x03); db(0x70); db(0x00); db(0x61); db(0x00);
+ db(0xff); db(0x86); db(0x4e); db(0x75); db(0x20); db(0x6c); db(0x00); db(0x24);
+ db(0x4a); db(0xa8); db(0x00); db(0x08); db(0x66); db(0x08); db(0x4a); db(0xa8);
+ db(0x00); db(0x0c); db(0x66); db(0x02); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x3f); db(0x3e); db(0x2a); db(0x48); db(0x24); db(0x6c); db(0x00); db(0x18);
+ db(0x2e); db(0x15); db(0x4a); db(0x87); db(0x67); db(0x64); db(0x20); db(0x0a);
+ db(0x67); db(0x60); db(0x7c); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x08);
+ db(0x67); db(0x12); db(0x24); db(0x2a); db(0x00); db(0x04); db(0x2c); db(0x6b);
+ db(0x00); db(0xa0); db(0x4e); db(0xae); db(0xfc); db(0x34); db(0x4a); db(0x80);
+ db(0x66); db(0x02); db(0x50); db(0xc6); db(0x22); db(0x2d); db(0x00); db(0x0c);
+ db(0x67); db(0x1c); db(0x20); db(0x41); db(0x22); db(0x4a); db(0x2f); db(0x0a);
+ db(0x45); db(0xec); db(0x00); db(0x20); db(0x48); db(0x7a); db(0x00); db(0x08);
+ db(0x2f); db(0x28); db(0x00); db(0x08); db(0x4e); db(0x75); db(0x24); db(0x5f);
+ db(0x4a); db(0x80); db(0x66); db(0x02); db(0x50); db(0xc6); db(0x4a); db(0x06);
+ db(0x67); db(0x1a); db(0x20); db(0x2a); db(0x00); db(0x04); db(0x90); db(0x8a);
+ db(0x4a); db(0x92); db(0x67); db(0x0a); db(0x20); db(0x52); db(0x22); db(0x4a);
+ db(0x22); db(0xd8); db(0x59); db(0x81); db(0x6a); db(0xfa); db(0x53); db(0x95);
+ db(0x53); db(0x87); db(0x60); db(0x9e); db(0x24); db(0x52); db(0x53); db(0x87);
+ db(0x60); db(0x98); db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x4e); db(0x75);
+ db(0x61); db(0x00); db(0xfc); db(0xe6); db(0x21); db(0x40); db(0x01); db(0x98);
+ db(0x2f); db(0x08); db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00);
+ db(0x03); db(0xac); db(0x2a); db(0x50); db(0x30); db(0x3c); db(0xff); db(0x28);
+ db(0x61); db(0x00); db(0x03); db(0xa2); db(0x22); db(0x48); db(0x20); db(0x5f);
+ db(0x42); db(0xa8); db(0x01); db(0x90); db(0x42); db(0xa8); db(0x01); db(0x94);
+ db(0x4e); db(0x91); db(0x26); db(0x00); db(0x0c); db(0x83); db(0xff); db(0xff);
+ db(0xff); db(0xfe); db(0x67); db(0x00); db(0xfa); db(0x06); db(0x0c); db(0x83);
+ db(0x00); db(0x00); db(0x00); db(0x02); db(0x67); db(0x0c); db(0xc0); db(0x85);
+ db(0x67); db(0x08); db(0x4a); db(0xa8); db(0x01); db(0x90); db(0x67); db(0x00);
+ db(0xf9); db(0xf2); db(0x20); db(0x28); db(0x01); db(0x90); db(0x67); db(0x12);
+ db(0x2f); db(0x08); db(0x72); db(0x01); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x5f); db(0x21); db(0x40);
+ db(0x01); db(0x94); db(0x4a); db(0x83); db(0x6a); db(0x0e); db(0x22); db(0x48);
+ db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00); db(0x03); db(0x4e);
+ db(0x4e); db(0x90); db(0x60); db(0x26); db(0x2c); db(0x4c); db(0x2f); db(0x08);
+ db(0x4e); db(0xae); db(0xff); db(0x70); db(0x20); db(0x5f); db(0x22); db(0x48);
+ db(0x26); db(0x40); db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00);
+ db(0x03); db(0x34); db(0x4e); db(0x90); db(0x70); db(0x00); db(0x27); db(0x40);
+ db(0x00); db(0x08); db(0x27); db(0x40); db(0x00); db(0x10); db(0x27); db(0x40);
+ db(0x00); db(0x20); db(0x4a); db(0xa9); db(0x01); db(0x94); db(0x67); db(0x28);
+ db(0x20); db(0x69); db(0x01); db(0x94); db(0x61); db(0x00); db(0xfb); db(0x48);
+ db(0x48); db(0xe7); db(0x80); db(0xc0); db(0x20); db(0x29); db(0x01); db(0x90);
+ db(0x22); db(0x69); db(0x01); db(0x94); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4c); db(0xdf); db(0x03); db(0x01);
+ db(0x4a); db(0x80); db(0x67); db(0x04); db(0x61); db(0x00); db(0xfa); db(0xd2);
+ db(0x4a); db(0x83); db(0x6b); db(0x00); db(0xf9); db(0x6e); db(0x30); db(0x3c);
+ db(0xff); db(0x18); db(0x61); db(0x00); db(0x02); db(0xe8); db(0x4e); db(0x90);
+ db(0x20); db(0x03); db(0x16); db(0x29); db(0x00); db(0x4f); db(0x4a); db(0x80);
+ db(0x66); db(0x1a); db(0x27); db(0x7c); db(0x00); db(0x00); db(0x17); db(0x70);
+ db(0x00); db(0x14); db(0x43); db(0xfa); db(0xf8); db(0x58); db(0x20); db(0x09);
+ db(0xe4); db(0x88); db(0x27); db(0x40); db(0x00); db(0x20); db(0x70); db(0xff);
+ db(0x27); db(0x40); db(0x00); db(0x24); db(0x08); db(0x07); db(0x00); db(0x00);
+ db(0x67); db(0x38); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x70); db(0x14);
+ db(0x72); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x22); db(0x40);
+ db(0x70); db(0x00); db(0x22); db(0x80); db(0x23); db(0x40); db(0x00); db(0x04);
+ db(0x33); db(0x40); db(0x00); db(0x0e); db(0x30); db(0x3c); db(0x10); db(0x00);
+ db(0x80); db(0x03); db(0x33); db(0x40); db(0x00); db(0x08); db(0x23); db(0x6d);
+ db(0x01); db(0x04); db(0x00); db(0x0a); db(0x23); db(0x4b); db(0x00); db(0x10);
+ db(0x41); db(0xec); db(0x00); db(0x4a); db(0x4e); db(0xae); db(0xfe); db(0xf2);
+ db(0x4e); db(0x75); db(0x20); db(0x4b); db(0x72); db(0x00); db(0x22); db(0x41);
+ db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x02); db(0x72); db(0x01);
+ db(0x70); db(0xec); db(0x2c); db(0x4c); db(0x4e); db(0xae); db(0xff); db(0x6a);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2c); db(0x01);
+ db(0x7e); db(0x02); db(0x7a); db(0x00); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x43); db(0xfa); db(0x06); db(0x14); 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(0x21); db(0x4c);
+ db(0x01); db(0x9c); db(0x48); db(0xe7); db(0x00); db(0x0a); db(0x61); db(0x00);
+ db(0xfe); db(0x78); db(0x4c); db(0xdf); db(0x50); db(0x00); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); 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(0x05); db(0xac); 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(0x61); db(0x00);
db(0x02); db(0xb4); db(0x27); db(0x40); db(0x00); db(0xa4); db(0x61); db(0x00);
db(0x02); db(0xe0); db(0x27); db(0x40); db(0x00); db(0xa8); db(0x7a); db(0x00);
db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40); db(0x26); db(0x2c);
db(0x00); db(0x0a); db(0x30); db(0x3c); db(0xff); db(0x40); db(0x61); db(0x00);
db(0x01); db(0xac); db(0x70); db(0x00); db(0x4e); db(0x90); db(0x24); db(0x00);
- db(0x70); db(0x01); db(0x61); db(0x00); db(0xfb); db(0x5c); db(0x08); db(0x02);
+ db(0x70); db(0x01); db(0x61); db(0x00); db(0xfb); db(0x3c); db(0x08); db(0x02);
db(0x00); db(0x01); db(0x67); db(0x06); db(0x70); db(0x01); db(0x61); db(0x00);
- db(0xfc); db(0x60); db(0x61); db(0x00); db(0x03); db(0x38); db(0x60); db(0x00);
+ db(0xfc); db(0x54); db(0x61); db(0x00); db(0x03); db(0x38); db(0x60); db(0x00);
db(0x00); db(0xfc); db(0x61); db(0x00); db(0x03); db(0x30); db(0x20); db(0x4d);
db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40); db(0x4a); db(0x80);
db(0x66); db(0x10); db(0x70); db(0x00); db(0x12); db(0x2d); db(0x00); db(0x0f);
db(0x03); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x11); db(0x4e); db(0xae);
db(0xfe); db(0xc2); db(0x4a); db(0x2b); db(0x00); db(0xac); db(0x67); db(0x08);
- db(0x61); db(0x00); db(0xfd); db(0x04); db(0x42); db(0x2b); db(0x00); db(0xac);
+ db(0x61); db(0x00); db(0xfc); db(0xf8); db(0x42); db(0x2b); db(0x00); db(0xac);
db(0x20); db(0x0c); db(0x67); db(0xce); db(0x0c); db(0x6c); db(0x00); db(0x26);
db(0x00); db(0x12); db(0x66); db(0x4c); db(0x0c); db(0xac); db(0x40); db(0x00);
db(0x00); db(0x00); db(0x00); db(0x14); db(0x66); db(0x42); db(0x0c); db(0x6c);
db(0x60); db(0x00); db(0xff); db(0x08); db(0x28); db(0x43); db(0x61); db(0x04);
db(0x60); db(0x00); db(0xff); db(0x00); db(0x0c); db(0xac); db(0x00); db(0x00);
db(0x00); db(0x1f); db(0x00); db(0x08); db(0x66); db(0x04); db(0x61); db(0x00);
- db(0xfc); db(0x04); db(0x0c); db(0xac); db(0x00); db(0x00); db(0x04); db(0x09);
- db(0x00); db(0x08); db(0x66); db(0x04); db(0x61); db(0x00); db(0xfc); db(0x2a);
+ db(0xfb); db(0xf8); db(0x0c); db(0xac); db(0x00); db(0x00); db(0x04); db(0x09);
+ db(0x00); db(0x08); db(0x66); db(0x04); db(0x61); db(0x00); db(0xfc); db(0x26);
db(0x22); db(0x54); db(0x20); db(0x6c); db(0x00); db(0x04); db(0x29); db(0x4d);
db(0x00); db(0x04); db(0x4e); db(0xee); db(0xfe); db(0x92); db(0x2f); db(0x05);
db(0x7a); db(0xfc); db(0x24); db(0x53); db(0x2e); db(0x0a); db(0x22); db(0x0a);
db(0x22); db(0x80); db(0x22); db(0x4a); db(0x24); db(0x51); db(0x70); db(0x18);
db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x06); db(0x86); db(0x00); db(0x01);
db(0x00); db(0x00); db(0x20); db(0x0a); db(0x66); db(0xec); db(0x26); db(0x87);
- db(0x2a); db(0x1f); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0xf5); db(0x9e);
+ db(0x2a); db(0x1f); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0xf5); db(0x7e);
db(0x02); db(0x80); db(0x00); db(0x00); db(0xff); db(0xff); db(0xd1); db(0xc0);
db(0x4e); db(0x75); db(0x00); db(0x00); db(0x0c); db(0xaf); db(0x00); db(0x00);
db(0x00); db(0x22); db(0x00); db(0x08); db(0x66); db(0x30); db(0x48); db(0xe7);
int thread_running;
uae_sem_t sync_sem;
uaecptr base;
+ int changenum;
};
static uae_sem_t change_sem;
return ret;
}
+void hardfile_do_disk_change (int fsid, int insert)
+{
+ int j;
+
+ write_log("uaehf.device:%d %d\n", fsid, insert);
+ uae_sem_wait (&change_sem);
+ hardfpd[fsid].changenum++;
+ j = 0;
+ while (j < MAX_ASYNC_REQUESTS) {
+ if (hardfpd[fsid].d_request_type[j] == ASYNC_REQUEST_CHANGEINT) {
+ uae_Cause (hardfpd[fsid].d_request_data[j]);
+ }
+ j++;
+ }
+ uae_sem_post (&change_sem);
+}
+
static int add_async_request (struct hardfileprivdata *hfpd, uaecptr request, int type, uae_u32 data)
{
int i;
case CMD_CLEAR:
case CMD_MOTOR:
case CMD_SEEK:
- case CMD_CHANGENUM:
case TD_SEEK64:
case NSCMD_TD_SEEK64:
break;
case CMD_REMOVE:
break;
+ case CMD_CHANGENUM:
+ actual = hfpd->changenum;
+ break;
+
case CMD_ADDCHANGEINT:
error = add_async_request (hfpd, request, ASYNC_REQUEST_CHANGEINT, get_long (request + 40));
if (!error)
extern int hdf_read (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len);
extern int hdf_write (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len);
extern int hdf_getnumharddrives (void);
-extern char *hdf_getnameharddrive (int index, int flags);
+extern char *hdf_getnameharddrive (int index, int flags, int *sectorsize);
extern int hdf_init (void);
extern int isspecialdrive(const char *name);
extern int get_native_path(uae_u32 lock, char *out);
+extern void hardfile_do_disk_change (int fsid, int insert);
void hdf_hd_close(struct hd_hardfiledata *hfd);
int hdf_hd_open(struct hd_hardfiledata *hfd, char *path, int blocksize, int readonly,
int win32_no_overlay; /* If this is set, we won't try and use any RGB overlays */
int win32_borderless;
int win32_ctrl_F11_is_quit;
+ int win32_automount_removable;
int win32_automount_drives;
int win32_automount_cddrives;
int win32_automount_netdrives;
if (buf)
memset (buf, 0, bufsize);
+ if (!table68k)
+ return;
while (cnt-- > 0) {
char instrname[100], *ccpt;
int i;
return result;
}
-static int socket_layer_initialized = 0;
-
int init_socket_layer(void)
{
int result = 0;
+ deinit_socket_layer ();
if (currprefs.socket_emu) {
if((result = mySockStartup())) {
- InitializeCriticalSection(&bsd->csSigQueueLock);
if(bsd->hSockThread == NULL) {
WNDCLASS wc; // Set up an invisible window and dummy wndproc
+ InitializeCriticalSection(&bsd->csSigQueueLock);
InitializeCriticalSection(&bsd->SockThreadCS);
bsd->hSockReq = CreateEvent(NULL, FALSE, FALSE, NULL);
bsd->hSockReqHandled = CreateEvent(NULL, FALSE, FALSE, NULL);
}
}
}
- socket_layer_initialized = result;
-
return result;
}
void deinit_socket_layer(void)
{
int i;
- if (currprefs.socket_emu) {
- WSACleanup();
- if(socket_layer_initialized) {
- DeleteCriticalSection(&bsd->csSigQueueLock);
- if(bsd->hSockThread) {
- DeleteCriticalSection(&bsd->SockThreadCS);
- CloseHandle(bsd->hSockReq);
- bsd->hSockReq = NULL;
- CloseHandle(bsd->hSockReqHandled);
- WaitForSingleObject(bsd->hSockThread, INFINITE);
- CloseHandle(bsd->hSockThread);
- }
- for (i = 0; i < MAX_SELECT_THREADS; i++) {
- if (bsd->hThreads[i]) {
- CloseHandle(bsd->hThreads[i]);
- bsd->hThreads[i] = NULL;
- }
- }
+
+ if (!bsd)
+ return;
+ WSACleanup();
+ if(bsd->hSockThread) {
+ HANDLE t = bsd->hSockThread;
+ DeleteCriticalSection(&bsd->csSigQueueLock);
+ DeleteCriticalSection(&bsd->SockThreadCS);
+ bsd->hSockThread = NULL;
+ SetEvent (bsd->hSockReq);
+ WaitForSingleObject(bsd->hSockThread, INFINITE);
+ CloseHandle(t);
+ CloseHandle(bsd->hSockReq);
+ CloseHandle(bsd->hSockReqHandled);
+ bsd->hSockReq = NULL;
+ bsd->hSockThread = NULL;
+ bsd->hSockReqHandled = NULL;
+ DestroyWindow (bsd->hSockWnd);
+ bsd->hSockWnd = NULL;
+ }
+ for (i = 0; i < MAX_SELECT_THREADS; i++) {
+ if (bsd->hThreads[i]) {
+ CloseHandle (bsd->hThreads[i]);
+ bsd->hThreads[i] = NULL;
+ }
+ if (bsd->hEvents[i]) {
+ CloseHandle (bsd->hEvents[i]);
+ bsd->hEvents[i] = NULL;
+ }
+ }
+ for (i = 0; i < MAX_GET_THREADS; i++) {
+ if (bsd->hGetThreads[i]) {
+ CloseHandle (bsd->hGetThreads[i]);
+ bsd->hGetThreads[i] = NULL;
+ }
+ if (bsd->hGetEvents[i]) {
+ CloseHandle (bsd->hGetEvents[i]);
+ bsd->hGetEvents[i] = NULL;
}
+ bsd->threadGetargs_inuse[i] = 0;
}
}
}
SetThreadPriority(GetCurrentThread(), pri);
- while(TRUE) {
- if(bsd->hSockReq) {
- DWORD wait;
- WaitHandle = bsd->hSockReq;
- wait = MsgWaitForMultipleObjects (1, &WaitHandle, FALSE, INFINITE, QS_POSTMESSAGE);
- if (wait == WAIT_OBJECT_0) {
- if(HandleStuff()) // See if its time to quit...
- break;
- }
- if (wait == WAIT_OBJECT_0 + 1) {
- Sleep(10);
- while(PeekMessage(&msg, NULL, WM_USER, 0xB000 + MAXPENDINGASYNC * 2, PM_REMOVE) > 0) {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
+ while(bsd->hSockThread && bsd->hSockWnd) {
+ DWORD wait;
+ WaitHandle = bsd->hSockReq;
+ wait = MsgWaitForMultipleObjects (1, &WaitHandle, FALSE, INFINITE, QS_POSTMESSAGE);
+ if (wait == WAIT_OBJECT_0) {
+ if (!bsd->hSockThread || !bsd->hSockWnd)
+ break;
+ if(HandleStuff()) // See if its time to quit...
+ break;
+ }
+ if (wait == WAIT_OBJECT_0 + 1) {
+ if (!bsd->hSockThread || !bsd->hSockWnd)
+ break;
+ Sleep(10);
+ while(PeekMessage(&msg, NULL, WM_USER, 0xB000 + MAXPENDINGASYNC * 2, PM_REMOVE) > 0) {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
}
}
}
return num_drives;
}
-char *hdf_getnameharddrive (int index, int flags)
+char *hdf_getnameharddrive (int index, int flags, int *sectorsize)
{
static char name[512];
char tmp[32];
break;
}
+ if (sectorsize)
+ *sectorsize = uae_drives[index].bytespersector;
if (flags & 1) {
if (size >= 1024 * 1024 * 1024)
sprintf (tmp, "%.1fG", ((double)(uae_u32)(size / (1024 * 1024))) / 1024.0);
#define IDC_SELECTRESTEXT 1510
#define IDC_FLUSHPRINTER 1510
#define IDC_SCREENRESTEXT 1511
+#define IDC_MAPDRIVES_AUTO 1511
#define IDC_WIDTHTEXT 1512
#define IDC_WINDOWEDTEXT 1512
#define IDC_HEIGHTTEXT 1513
#define IDC_SELECTRESTEXT 1510
#define IDC_FLUSHPRINTER 1510
#define IDC_SCREENRESTEXT 1511
+#define IDC_MAPDRIVES_AUTO 1511
#define IDC_WIDTHTEXT 1512
#define IDC_WINDOWEDTEXT 1512
#define IDC_HEIGHTTEXT 1513
//\r
// Generated from the TEXTINCLUDE 2 resource.\r
//\r
-#include "afxres.h"\r
-\r
+#include "afxres.h"\r\r
/////////////////////////////////////////////////////////////////////////////\r
#undef APSTUDIO_READONLY_SYMBOLS\r
\r
CONTROL "Don't use Windows Recycle Bin",IDC_NORECYCLEBIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,220,121,10\r
CONTROL "Include network drives..",IDC_MAPDRIVES_NET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,232,101,10\r
CONTROL "Include CD/DVD drives..",IDC_MAPDRIVES_CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,220,100,10\r
+ CONTROL "Automount removable drives",IDC_MAPDRIVES_AUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,232,115,10\r
END\r
\r
IDD_SOUND DIALOGEX 0, 0, 300, 231\r
CAPTION "Harddrive Settings"\r
FONT 8, "MS Sans Serif", 0, 0, 0x0\r
BEGIN\r
- LTEXT "Hard drive:",-1,7,11,35,10\r
+ LTEXT "Hard drive:",IDC_STATIC,7,11,35,10\r
COMBOBOX IDC_HARDDRIVE,49,9,325,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
- CONTROL "Read/write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,247,33,55,10\r
- DEFPUSHBUTTON "Add hard drive",IDOK,173,30,65,14\r
- PUSHBUTTON "Cancel",IDCANCEL,321,30,54,14\r
+ CONTROL "Read/write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,51,55,10\r
+ DEFPUSHBUTTON "Add hard drive",IDOK,231,48,65,14\r
+ PUSHBUTTON "Cancel",IDCANCEL,319,48,54,14\r
DEFPUSHBUTTON "Create hard disk image file",IDC_HARDDRIVE_IMAGE,49,30,115,14\r
- EDITTEXT IDC_PATH_NAME,89,49,169,15,ES_AUTOHSCROLL | NOT WS_VISIBLE\r
+ EDITTEXT IDC_PATH_NAME,183,27,97,15,ES_AUTOHSCROLL | NOT WS_VISIBLE\r
+ COMBOBOX IDC_HDF_CONTROLLER,102,50,41,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "HD Controller:",IDC_STATIC,42,52,52,10,SS_CENTERIMAGE\r
END\r
\r
IDD_MISC2 DIALOGEX 0, 0, 300, 92\r
\r
STRINGTABLE \r
BEGIN\r
- IDS_QS_MODELS "A500\nA500+\nA600\nA1000\nA1200\nA3000\nCD32\nCDTV\nArcadia Multi Select system\nExpanded WinUAE example configuration"\r
+ IDS_QS_MODELS "A500\nA500+\nA600\nA1000\nA1200\nA3000\nA4000\nCD32\nCDTV\nArcadia Multi Select system\nExpanded WinUAE example configuration"\r
IDS_QS_MODEL_A500 "1.3 ROM, OCS, 512 KB Chip + 512 KB Slow RAM (most common)\nThis configuration is capable of running most games and demos produced for first-generation hardware. Only few exceptions need a different configuration (e.g. the oldest games tend to be incompatible with this configuration).\n1.3 ROM, ECS Agnus, 512 KB Chip RAM + 512 KB Slow RAM\nLater hardware revision of the A500. Nearly 100% compatible with the previous configuration.\n1.3 ROM, ECS Agnus, 1 MB Chip RAM\nFew newer games and demos require this configuration.\n1.3 ROM, OCS Agnus, 512 KB Chip RAM\nVery old (e.g. pre-1988) games and demos may require this configuration.\n1.2 ROM, OCS Agnus, 512 KB Chip RAM\nAs available for the A1000, and installed on the first A500 and A2000 series. Some very old programs only work correctly with this configuration. Note: This system ROM version can only boot from floppy disk (no hard disk boot support).\n1.2 ROM, OCS Agnus, 512 KB Chip RAM + 512 KB Slow RAM\nThis configuration adds expansion memory to the first A500 produced. Try this if your game does not work with newer configurations, but works with the previous one. It could add some features to the game, including faster loading times. Note: This system ROM version can only boot from floppy disk (no hard disk boot support)."\r
IDS_QS_MODEL_A500P "Basic non-expanded configuration\nThe A500+ adds an ECS Agnus chip, 1 MB of Chip RAM and a 2.0 ROM to the A500. Many A500 games and demos don't work properly on an A500+.\n2 MB Chip RAM expanded configuration\n\n4 MB Fast RAM expanded configuration\n"\r
IDS_QS_MODEL_A600 "Basic non-expanded configuration\nThe A600 is smaller than the A500+ and has an updated 2.0 ROM.\n2 MB Chip RAM expanded configuration\n\n4 MB Fast RAM expanded configuration\n"\r
IDS_QS_MODEL_UAE "High-end expanded configuration"\r
IDS_QS_MODEL_ARCADIA "Arcadia\nArcadia Multi Select system is arcade platform developed by Arcadia and Mastertronic. It is based on an A500 mainboard with ROM cage attached to expansion port. Arcadia ROM files go to ""Cartridge ROM File"" in ROM-panel."\r
IDS_QS_MODEL_A3000 "1.4 ROM, 2MB Chip + 8MB Fast\n\n3.1 ROM, 2MB Chip + 8MB Fast\n"\r
- IDS_QS_MODEL_A4000 "A4000 (test)\nA4000"\r
+ IDS_QS_MODEL_A4000 "68030, 3.1 ROM, 2MB Chip + 8MB Fast\n\n68040, 3.1 ROM, 2MB Chip + 8MB Fast\n"\r
IDS_QS_MODEL_A4000T "A4000T (test)\nA4000T"\r
END\r
\r
static int showcursor;
+extern char config_filename[MAX_DPATH];
+
+static void setmaintitle (HWND hwnd)
+{
+ char txt[1000], txt2[500];
+
+ txt[0] = 0;
+ if (config_filename[0]) {
+ strcat (txt, "[");
+ strcat (txt, config_filename);
+ strcat (txt, "] - ");
+ }
+ strcat (txt, "WinUAE");
+ txt2[0] = 0;
+ if (mouseactive > 0) {
+ WIN32GUI_LoadUIString (currprefs.win32_middle_mouse ? IDS_WINUAETITLE_MMB : IDS_WINUAETITLE_NORMAL,
+ txt2, sizeof (txt2));
+ }
+ if (WINUAEBETA > 0)
+ strcat (txt, BetaStr);
+ if (strlen(WINUAEEXTRA) > 0) {
+ strcat (txt, " ");
+ strcat (txt, WINUAEEXTRA);
+ }
+ if (txt2[0]) {
+ strcat (txt, " - ");
+ strcat (txt, txt2);
+ }
+ SetWindowText (hwnd, txt);
+}
+
void setmouseactive (int active)
{
int oldactive = mouseactive;
- char txt[400], txt2[200];
if (showcursor) {
ClipCursor(NULL);
inputdevice_unacquire ();
mouseactive = active;
- strcpy (txt, "WinUAE");
- txt2[0] = 0;
- if (mouseactive > 0) {
+ setmaintitle (hMainWnd);
+ if (mouseactive > 0)
focus = 1;
- WIN32GUI_LoadUIString (currprefs.win32_middle_mouse ? IDS_WINUAETITLE_MMB : IDS_WINUAETITLE_NORMAL,
- txt2, sizeof (txt2));
- }
- if (WINUAEBETA > 0)
- strcat (txt, BetaStr);
- if (strlen(WINUAEEXTRA) > 0) {
- strcat (txt, " ");
- strcat (txt, WINUAEEXTRA);
- }
- if (txt2[0]) {
- strcat (txt, " - ");
- strcat (txt, txt2);
- }
- SetWindowText (hMainWnd, txt);
if (mouseactive) {
if (focus) {
if (!showcursor) {
#endif
#ifdef FILESYS
+ case WM_USER + 2:
+ {
+ typedef struct {
+ DWORD dwItem1; // dwItem1 contains the previous PIDL or name of the folder.
+ DWORD dwItem2; // dwItem2 contains the new PIDL or name of the folder.
+ } SHNOTIFYSTRUCT;
+ char path[MAX_PATH];
+
+ if (lParam == SHCNE_MEDIAINSERTED || lParam == SHCNE_MEDIAREMOVED) {
+ SHNOTIFYSTRUCT *shns = (SHNOTIFYSTRUCT*)wParam;
+ if(SHGetPathFromIDList((struct _ITEMIDLIST *)(shns->dwItem1), path)) {
+ int inserted = lParam == SHCNE_MEDIAINSERTED ? 1 : 0;
+ write_log("Shell Notification %d '%s'\n", inserted, path);
+ if ((inserted && CheckRM (path)) || !inserted)
+ filesys_media_change (path, inserted);
+ }
+ }
+ }
+ return TRUE;
case WM_DEVICECHANGE:
{
extern void win32_spti_media_change (char driveletter, int insert);
#endif
win32_aspi_media_change (drive, inserted);
}
- if (type == DRIVE_REMOVABLE || type == DRIVE_CDROM || !inserted)
- filesys_media_change (drvname, inserted);
+ if (currprefs.win32_automount_removable && (type == DRIVE_REMOVABLE || type == DRIVE_CDROM || !inserted)) {
+ if ((inserted && CheckRM (drvname)) || !inserted)
+ filesys_media_change (drvname, inserted);
+ }
}
}
}
default:
if (TaskbarRestartOk && message == TaskbarRestart)
- systray (hWnd, 0);
+ systray (hWnd, FALSE);
break;
}
case WM_CLOSE:
case WM_HELP:
case WM_DEVICECHANGE:
- case 0xff: // WM_INPUT
+ case WM_INPUT:
case WM_USER + 1:
+ case WM_USER + 2:
case WM_COMMAND:
case WM_NOTIFY:
return AmigaWindowProc (hWnd, message, wParam, lParam);
p->win32_notaskbarbutton = 0;
p->win32_alwaysontop = 0;
p->win32_specialkey = 0xcf; // DIK_END
+ p->win32_automount_removable = 0;
p->win32_automount_drives = 0;
p->win32_automount_cddrives = 0;
p->win32_automount_netdrives = 0;
cfgfile_target_write (f, "magic_mouse=%s\n", p->win32_outsidemouse ? "true" : "false");
cfgfile_target_write (f, "logfile=%s\n", p->win32_logfile ? "true" : "false");
cfgfile_target_write (f, "map_drives=%s\n", p->win32_automount_drives ? "true" : "false");
+ cfgfile_target_write (f, "map_drives_auto=%s\n", p->win32_automount_removable ? "true" : "false");
cfgfile_target_write (f, "map_cd_drives=%s\n", p->win32_automount_cddrives ? "true" : "false");
cfgfile_target_write (f, "map_net_drives=%s\n", p->win32_automount_netdrives ? "true" : "false");
serdevtoname(p->sername);
int i, v;
int result = (cfgfile_yesno (option, value, "middle_mouse", &p->win32_middle_mouse)
|| cfgfile_yesno (option, value, "map_drives", &p->win32_automount_drives)
+ || cfgfile_yesno (option, value, "map_drives_auto", &p->win32_automount_removable)
|| cfgfile_yesno (option, value, "map_cd_drives", &p->win32_automount_cddrives)
|| cfgfile_yesno (option, value, "map_net_drives", &p->win32_automount_netdrives)
|| cfgfile_yesno (option, value, "logfile", &p->win32_logfile)
if (!os_winnt)
return 1;
os_winnt_admin = isadminpriv ();
- if (os_winnt_admin && pIsUserAnAdmin) {
- if (pIsUserAnAdmin())
+ if (os_winnt_admin) {
+ if (pIsUserAnAdmin) {
+ if (pIsUserAnAdmin())
+ os_winnt_admin++;
+ } else {
os_winnt_admin++;
+ }
}
return 1;
#endif
+typedef ULONG (CALLBACK *SHCHANGENOTIFYREGISTER)
+ (HWND hwnd,
+ int fSources,
+ LONG fEvents,
+ UINT wMsg,
+ int cEntries,
+ const SHChangeNotifyEntry *pshcne);
+typedef BOOL (CALLBACK *SHCHANGENOTIFYDEREGISTER)(ULONG ulID);
+
+void addnotifications (HWND hwnd, int remove)
+{
+ static ULONG ret;
+ LPITEMIDLIST ppidl;
+ SHCHANGENOTIFYREGISTER pSHChangeNotifyRegister;
+ SHCHANGENOTIFYDEREGISTER pSHChangeNotifyDeregister;
+
+ pSHChangeNotifyRegister = (SHCHANGENOTIFYREGISTER)GetProcAddress(
+ GetModuleHandle("shell32.dll"), "SHChangeNotifyRegister");
+ pSHChangeNotifyDeregister = (SHCHANGENOTIFYDEREGISTER)GetProcAddress(
+ GetModuleHandle("shell32.dll"), "SHChangeNotifyDeregister");
+
+ if (remove) {
+ if (ret > 0 && pSHChangeNotifyDeregister)
+ pSHChangeNotifyDeregister (ret);
+ } else {
+ if(currprefs.win32_automount_removable && pSHChangeNotifyRegister && SHGetSpecialFolderLocation(hwnd, CSIDL_DESKTOP, &ppidl) == NOERROR) {
+ SHChangeNotifyEntry shCNE;
+ shCNE.pidl = ppidl;
+ shCNE.fRecursive = TRUE;
+ ret = pSHChangeNotifyRegister (hwnd, SHCNE_DISKEVENTS, SHCNE_MEDIAINSERTED | SHCNE_MEDIAREMOVED,
+ WM_USER + 2, 1, &shCNE);
+ write_log("SHChangeNotifyRegister=%d\n", ret);
+ }
+ }
+}
+
void systray (HWND hwnd, int remove)
{
NOTIFYICONDATA nid;
m = LoadLibrary (s);
if (m)
goto end;
+ sprintf (s, "%s%s", start_path_exe, newname);
+ m = LoadLibrary (s);
+ if (m)
+ goto end;
+ sprintf (s, "%s%s%s", start_path_exe, WIN32_PLUGINDIR, newname);
LLError(s);
xfree (s);
}
#define GETBDM(x) (((x) - ((x / 10000) * 10000)) / 100)
#define GETBDD(x) ((x) % 100)
-#define WINUAEBETA 4
+#define WINUAEBETA 5
#define WINUAEPUBLICBETA 1
-#define WINUAEDATE MAKEBD(2007, 9, 5)
+#define WINUAEDATE MAKEBD(2007, 9, 8)
#define WINUAEEXTRA ""
#define WINUAEREV ""
extern int dinput_winmouse (void);
extern int dinput_winmousemode (void);
+void addnotifications (HWND hwnd, int remove);
+extern int CheckRM(char *DriveName);
void systray (HWND hwnd, int remove);
void systraymenu (HWND hwnd);
void exit_gui (int);
/* Determines if this drive-letter currently has a disk inserted */
-static int CheckRM(char *DriveName)
+int CheckRM(char *DriveName)
{
char filename[MAX_DPATH];
DWORD dwHold;
char volumepath[6];
DWORD dwDriveMask;
- if(currprefs.win32_automount_drives || currprefs.win32_automount_netdrives || currprefs.win32_automount_cddrives)
- {
- dwDriveMask = GetLogicalDrives();
- dwDriveMask >>= 2; // Skip A and B drives...
+ dwDriveMask = GetLogicalDrives();
+ dwDriveMask >>= 2; // Skip A and B drives...
- for(drive = 'C'; drive <= 'Z'; ++drive) {
- sprintf(volumepath, "%c:\\", drive);
- /* Is this drive-letter valid (it used to check for media in drive) */
- if(dwDriveMask & 1) {
- char devname[100];
- BOOL inserted = CheckRM(volumepath); /* Is there a disk inserted? */
- int nok = FALSE;
- int rw = 1;
- drivetype = GetDriveType(volumepath);
- devname[0] = 0;
- for (;;) {
- if (drivetype == DRIVE_CDROM && currprefs.win32_automount_cddrives) {
- sprintf (devname, "WinCD_%c", drive);
- rw = 0;
- break;
- }
- if (!inserted) {
- nok = TRUE;
- break;
- }
- if (drivetype == DRIVE_REMOTE && currprefs.win32_automount_netdrives)
- break;
- if ((drivetype == DRIVE_FIXED || drivetype == DRIVE_REMOVABLE) && currprefs.win32_automount_drives)
- break;
+ for(drive = 'C'; drive <= 'Z'; ++drive) {
+ sprintf(volumepath, "%c:\\", drive);
+ /* Is this drive-letter valid (it used to check for media in drive) */
+ if(dwDriveMask & 1) {
+ char devname[100];
+ BOOL inserted = CheckRM(volumepath); /* Is there a disk inserted? */
+ int nok = FALSE;
+ int rw = 1;
+ drivetype = GetDriveType(volumepath);
+ devname[0] = 0;
+ for (;;) {
+ if (drivetype == DRIVE_CDROM && currprefs.win32_automount_cddrives) {
+ sprintf (devname, "WinCD_%c", drive);
+ rw = 0;
+ break;
+ }
+ if (!inserted) {
nok = TRUE;
break;
}
- if (nok)
- continue;
- volumename[0] = 0;
- if (inserted)
- target_get_volume_name(&mountinfo, volumepath, volumename, MAX_DPATH, inserted, 1);
- if (drivetype == DRIVE_REMOTE)
- strcat(volumepath, ".");
- else
- strcat(volumepath, "..");
- add_filesys_unit (devname[0] ? devname : NULL, volumename, volumepath, !rw, 0, 0, 0, 0, -20, 0, 0, 0);
- } /* if drivemask */
- dwDriveMask >>= 1;
- }
+ if (drivetype == DRIVE_REMOTE && currprefs.win32_automount_netdrives)
+ break;
+ if ((drivetype == DRIVE_FIXED || drivetype == DRIVE_REMOVABLE) && currprefs.win32_automount_drives)
+ break;
+ nok = TRUE;
+ break;
+ }
+ if (nok)
+ continue;
+ volumename[0] = 0;
+ if (inserted)
+ target_get_volume_name(&mountinfo, volumepath, volumename, MAX_DPATH, inserted, 1);
+ if (drivetype == DRIVE_REMOTE)
+ strcat(volumepath, ".");
+ else
+ strcat(volumepath, "..");
+ add_filesys_unit (devname[0] ? devname : NULL, volumename, volumepath, !rw, 0, 0, 0, 0, -20, 0, 0, 0);
+ } /* if drivemask */
+ dwDriveMask >>= 1;
}
SetErrorMode(errormode);
}
AVIOutput_Restart ();
#endif
setmouseactive (0);
- if (hMainWnd)
+ if (hMainWnd) {
+ addnotifications (hMainWnd, TRUE);
systray (hMainWnd, TRUE);
+ }
if (hStatusWnd) {
ShowWindow (hStatusWnd, SW_HIDE);
DestroyWindow (hStatusWnd);
}
}
+#if 0
+#include <dbt.h>
+
+static int createnotification (HWND hwnd)
+{
+ DEV_BROADCAST_DEVICEINTERFACE NotificationFilter;
+ HDEVNOTIFY hDevNotify;
+
+ ZeroMemory(&NotificationFilter, sizeof(NotificationFilter));
+ NotificationFilter.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
+ NotificationFilter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
+
+ hDevNotify = RegisterDeviceNotification(hMainWnd,
+ &NotificationFilter, DEVICE_NOTIFY_ALL_INTERFACE_CLASSES);
+
+ if(!hDevNotify)
+ {
+ write_log ("RegisterDeviceNotification failed: %d\n", GetLastError());
+ return FALSE;
+ }
+
+ return TRUE;
+}
+#endif
+
static int create_windows (void)
{
int dxfs = currentmode->flags & (DM_DX_FULLSCREEN | DM_D3D_FULLSCREEN);
}
systray (hMainWnd, FALSE);
+ addnotifications (hMainWnd, FALSE);
if (hMainWnd != hAmigaWnd) {
ShowWindow (hMainWnd, SW_SHOWNORMAL);
UpdateWindow (hMainWnd);
extern int mouseactive;
-static char config_filename[MAX_DPATH] = "";
+char config_filename[MAX_DPATH] = "";
#define Error(x) MessageBox(NULL, (x), "WinUAE Error", MB_OK)
"", "second ", "third ", "fourth ", "fifth ", "sixth ", "seventh ", "eighth ", "ninth ", "tenth "
};
+static void setguititle (HWND phwnd)
+{
+ static char title[200];
+ char title2[1000];
+ char *name;
+ static HWND hwnd;
+
+ if (phwnd)
+ hwnd = phwnd;
+ if (!title[0]) {
+ GetWindowText (hwnd, title, sizeof (title));
+ if (WINUAEBETA > 0) {
+ strcat (title, BetaStr);
+ if (strlen(WINUAEEXTRA) > 0) {
+ strcat (title, " ");
+ strcat (title, WINUAEEXTRA);
+ }
+ }
+ }
+ title2[0] = 0;
+ name = config_filename;
+ if (name && strlen (name) > 0) {
+ strcat (title2, "[");
+ strcat (title2, name);
+ strcat (title2, "] - ");
+ }
+ strcat (title2, title);
+ SetWindowText (hwnd, title2);
+}
+
+
static void GetConfigPath (char *path, struct ConfigStruct *parent, int noroot)
{
if (parent == 0) {
full_path[0] = 0;
GetDlgItemText (hDlg, IDC_EDITNAME, name, MAX_DPATH);
+ strcpy (config_filename, name);
if (flag == CONFIG_SAVE_FULL || flag == CONFIG_SAVE) {
if (strlen (name) < 4 || strcasecmp (name + strlen (name) - 4, ".uae")) {
strcat (name, ".uae");
} else {
if (target_cfgfile_load (&workprefs, path, configtypepanel, 0) == 0) {
char szMessage[MAX_DPATH];
- WIN32GUI_LoadUIString( IDS_COULDNOTLOADCONFIG, szMessage, MAX_DPATH );
+ WIN32GUI_LoadUIString (IDS_COULDNOTLOADCONFIG, szMessage, MAX_DPATH);
pre_gui_message (szMessage);
+ config_filename[0] = 0;
} else {
ew (hDlg, IDC_VIEWINFO, workprefs.info[0]);
}
} else {
char szMessage[MAX_DPATH];
char szTitle[MAX_DPATH];
- WIN32GUI_LoadUIString( IDS_DELETECONFIGCONFIRMATION, szMessage, MAX_DPATH );
- WIN32GUI_LoadUIString( IDS_DELETECONFIGTITLE, szTitle, MAX_DPATH );
- if( MessageBox( hDlg, szMessage, szTitle,
- MB_YESNO | MB_ICONWARNING | MB_APPLMODAL | MB_SETFOREGROUND ) == IDYES ) {
+ WIN32GUI_LoadUIString (IDS_DELETECONFIGCONFIRMATION, szMessage, MAX_DPATH);
+ WIN32GUI_LoadUIString (IDS_DELETECONFIGTITLE, szTitle, MAX_DPATH );
+ if (MessageBox (hDlg, szMessage, szTitle,
+ MB_YESNO | MB_ICONWARNING | MB_APPLMODAL | MB_SETFOREGROUND) == IDYES) {
cfgfile_backup (path);
DeleteFile (path);
write_log ("deleted config '%s'\n", path);
+ config_filename[0] = 0;
}
}
break;
}
}
+ setguititle (NULL);
return full_path;
}
HTREEITEM root;
char name_buf[MAX_DPATH];
- EnableWindow (GetDlgItem( hDlg, IDC_VIEWINFO ), workprefs.info[0]);
- SetDlgItemText (hDlg, IDC_EDITNAME, config_filename);
+ EnableWindow (GetDlgItem (hDlg, IDC_VIEWINFO), workprefs.info[0]);
SetDlgItemText (hDlg, IDC_EDITPATH, "");
SetDlgItemText (hDlg, IDC_EDITDESCRIPTION, workprefs.description);
root = InitializeConfigTreeView (hDlg);
{ 4, IDS_QS_MODEL_A1000 }, // "Amiga 1000"
{ 3, IDS_QS_MODEL_A1200 }, // "Amiga 1200"
{ 1, IDS_QS_MODEL_A3000 }, // "Amiga 3000"
- { 0, }, //{ 1, IDS_QS_MODEL_A4000 }, // "Amiga 4000"
+ { 1, IDS_QS_MODEL_A4000 }, // "Amiga 4000"
{ 0, }, //{ 1, IDS_QS_MODEL_A4000T }, // "Amiga 4000T"
{ 3, IDS_QS_MODEL_CD32 }, // "CD32"
{ 4, IDS_QS_MODEL_CDTV }, // "CDTV"
addfloppytype (hDlg, 0);
addfloppytype (hDlg, 1);
addfloppyhistory (hDlg);
+ config_filename[0] = 0;
+ setguititle (NULL);
}
static void quickstarthost (HWND hDlg, char *name)
SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER, CB_SETCURSEL, current_hfdlg.controller, 0);
}
-static void inithardfile (HWND hDlg)
+static void inithdcontroller (HWND hDlg)
{
- char tmp[MAX_DPATH];
-
- ew (hDlg, IDC_HF_DOSTYPE, FALSE);
- ew (hDlg, IDC_HF_CREATE, FALSE);
SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_RESETCONTENT, 0, 0);
SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)"UAE");
SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)"IDE0");
SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)"SCSI5");
SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)"SCSI6");
SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER, CB_SETCURSEL, 0, 0);
+}
+
+static void inithardfile (HWND hDlg)
+{
+ char tmp[MAX_DPATH];
+
+ ew (hDlg, IDC_HF_DOSTYPE, FALSE);
+ ew (hDlg, IDC_HF_CREATE, FALSE);
+ inithdcontroller (hDlg);
SendDlgItemMessage(hDlg, IDC_HF_TYPE, CB_RESETCONTENT, 0, 0);
WIN32GUI_LoadUIString (IDS_HF_FS_CUSTOM, tmp, sizeof (tmp));
SendDlgItemMessage (hDlg, IDC_HF_TYPE, CB_ADDSTRING, 0, (LPARAM)"OFS/FFS/RDB");
oposn = -1;
hdf_init ();
recursive++;
+ inithdcontroller (hDlg);
CheckDlgButton (hDlg, IDC_RW, current_hfdlg.rw);
SendDlgItemMessage(hDlg, IDC_HARDDRIVE, CB_RESETCONTENT, 0, 0);
+ SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER, CB_SETCURSEL, current_hfdlg.controller, 0);
ew (hDlg, IDC_HARDDRIVE_IMAGE, FALSE);
ew (hDlg, IDOK, FALSE);
ew (hDlg, IDC_RW, FALSE);
+ ew (hDlg, IDC_HDF_CONTROLLER, FALSE);
index = -1;
for (i = 0; i < hdf_getnumharddrives(); i++) {
- SendDlgItemMessage(hDlg, IDC_HARDDRIVE, CB_ADDSTRING, 0, (LPARAM)hdf_getnameharddrive(i, 1));
- if (!strcmp (current_hfdlg.filename, hdf_getnameharddrive (i, 0)))
+ SendDlgItemMessage(hDlg, IDC_HARDDRIVE, CB_ADDSTRING, 0, (LPARAM)hdf_getnameharddrive(i, 1, NULL));
+ if (!strcmp (current_hfdlg.filename, hdf_getnameharddrive (i, 0, NULL)))
index = i;
}
- if (index >= 0)
+ if (index >= 0) {
SendDlgItemMessage (hDlg, IDC_HARDDRIVE, CB_SETCURSEL, index, 0);
+ SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER, CB_SETCURSEL, current_hfdlg.controller, 0);
+ }
recursive--;
return TRUE;
ew (hDlg, IDC_HARDDRIVE_IMAGE, TRUE);
ew (hDlg, IDOK, TRUE);
ew (hDlg, IDC_RW, TRUE);
+ ew (hDlg, IDC_HDF_CONTROLLER, TRUE);
}
}
if (HIWORD (wParam) == BN_CLICKED) {
}
}
if (posn != CB_ERR)
- strcpy (current_hfdlg.filename, hdf_getnameharddrive ((int)posn, 0));
+ strcpy (current_hfdlg.filename, hdf_getnameharddrive ((int)posn, 0, ¤t_hfdlg.blocksize));
current_hfdlg.rw = IsDlgButtonChecked (hDlg, IDC_RW);
+ posn = SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER, CB_GETCURSEL, 0, 0);
+ if (posn != CB_ERR)
+ current_hfdlg.controller = posn;
recursive--;
break;
}
clicked_entry++;
break;
+ case IDC_MAPDRIVES_AUTO:
+ workprefs.win32_automount_removable = IsDlgButtonChecked(hDlg, IDC_MAPDRIVES_AUTO);
+ break;
+
case IDC_MAPDRIVES:
workprefs.win32_automount_drives = IsDlgButtonChecked(hDlg, IDC_MAPDRIVES);
break;
EnableWindow (GetDlgItem(hDlg, IDC_NEW_HD), os_winnt && os_winnt_admin > 1 ? TRUE : FALSE);
case WM_USER:
+ CheckDlgButton (hDlg, IDC_MAPDRIVES_AUTO, workprefs.win32_automount_removable);
CheckDlgButton (hDlg, IDC_MAPDRIVES, workprefs.win32_automount_drives);
CheckDlgButton (hDlg, IDC_MAPDRIVES_CD, workprefs.win32_automount_cddrives);
CheckDlgButton (hDlg, IDC_MAPDRIVES_NET, workprefs.win32_automount_netdrives);
if (dhwnd != NULL) {
MSG msg;
DWORD v;
- char tmp[MAX_DPATH];
- if (WINUAEBETA > 0 && GetWindowText (dhwnd, tmp, sizeof (tmp)) > 0) {
- strcat (tmp, BetaStr);
- if (strlen(WINUAEEXTRA) > 0) {
- strcat (tmp, " ");
- strcat (tmp, WINUAEEXTRA);
- }
- SetWindowText (dhwnd, tmp);
- }
+ setguititle (dhwnd);
ShowWindow (dhwnd, SW_SHOW);
MapDialogRect(dhwnd, &dialog_rect);
+
+Beta 5:
+
+- "Add Harddrive" button was disabled on Windows 2000 ("full
+ administrator" test used function that was Windows XP+ only)
+- improved directory filesystem Windows-side media change detection,
+ detects now memory cards in card readers (stupid Windows having
+ multiple completely different ways to get media notifications)
+- added GUI "Add Harddrive" emulated HD controller selection
+- directory filesystem read+write/readonly on the fly status change
+ fixed
+- device node is now removed when removable drive gets ejected and if
+ drive was originally created on the fly. Note: device node is only
+ hidden (removed from dos list) and it will be reused later when new
+ disk is inserted. No KS 1.3 support yet.
+- added GUI option to enable/disable on the fly automounting
+- current configuration name added to window title bar
+- added two A4000 quickstart configurations (68030/68882 and 68040)
+- better CD32 audio end detection accuracy, last 1s was cut previously
+- ["bsdsocket breaks after reset if it was initialized before reset"
+ will be fixed soon]
+
Beta 4:
- ACTION_EXAMINE_ALL_END implemented (forgot in b2..)
"empty slot" drives removed. USB memory sticks etc will always
mount on the fly automagically now. (if uae boot rom is available)
Device node ("RDHx") is never removed. My black magic skill level
- is not high enough yet.
- hardfiles next..
+ is not high enough yet. Hardfile on the fly automount next..
- enable uae boot rom if chip ram > 2M enabled (KS does not
detect more than 2MB of chip, the rest is mapped by boot rom)
- 68040/060 FPU was always interpreted (no JIT) (b1)