static void buildin_default_prefs (struct uae_prefs *p)
{
- p->nr_floppies = 1;
+ p->nr_floppies = 2;
p->dfxtype[0] = 0;
- p->dfxtype[1] = -1;
+ p->dfxtype[1] = 0;
p->dfxtype[2] = -1;
p->dfxtype[3] = -1;
}
}
-static int bip_a1000 (struct uae_prefs *p, int config, int compa)
+static int bip_a1000 (struct uae_prefs *p, int config, int compa, int romcheck)
{
int rom[4];
if (config == 1)
p->chipmem_size = 0x40000;
set_68000_compa (p, compa);
- return configure_rom (p, rom, 1);
+ p->dfxtype[1] = -1;
+ return configure_rom (p, rom, romcheck);
}
-static int bip_cdtv (struct uae_prefs *p, int config, int compa)
+static int bip_cdtv (struct uae_prefs *p, int config, int compa, int romcheck)
{
int rom[4];
rom[0] = 6;
- rom[1] = -1;
- if (!configure_rom (p, rom, 1))
+ rom[1] = 32;
+ rom[2] = -1;
+ if (!configure_rom (p, rom, romcheck))
return 0;
rom[0] = 22;
rom[1] = 21;
rom[2] = 20;
rom[3] = -1;
- if (!configure_rom (p, rom, 1))
+ if (!configure_rom (p, rom, romcheck))
return 0;
p->bogomem_size = 0;
p->chipmem_size = 0x100000;
p->chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE;
+ p->dfxtype[1] = -1;
set_68000_compa (p, compa);
return 1;
}
-static int bip_cd32 (struct uae_prefs *p, int config, int compa)
+static int bip_cd32 (struct uae_prefs *p, int config, int compa, int romcheck)
{
int rom[2];
buildin_default_prefs_68020 (p);
rom[0] = 18;
rom[1] = -1;
- if (!configure_rom (p, rom, 1))
+ if (!configure_rom (p, rom, romcheck))
return 0;
rom[0] = 19;
- if (!configure_rom (p, rom, 1))
+ if (!configure_rom (p, rom, romcheck))
return 0;
p->nr_floppies = 0;
p->dfxtype[0] = -1;
+ p->dfxtype[1] = -1;
set_68020_compa (p, compa);
return 1;
}
-static int bip_a1200 (struct uae_prefs *p, int config, int compa)
+static int bip_a1200 (struct uae_prefs *p, int config, int compa, int romcheck)
{
- int rom[3];
+ int rom[4];
buildin_default_prefs_68020 (p);
rom[0] = 11;
- rom[1] = 15;
- rom[2] = -1;
+ rom[1] = 31;
+ rom[2] = 15;
+ rom[3] = -1;
if (config == 1)
p->fastmem_size = 0x400000;
set_68020_compa (p, compa);
- return configure_rom (p, rom, 1);
+ return configure_rom (p, rom, romcheck);
}
-static int bip_a600 (struct uae_prefs *p, int config, int compa)
+static int bip_a600 (struct uae_prefs *p, int config, int compa, int romcheck)
{
int rom[5];
p->chipmem_size = 0x100000;
p->chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE;
set_68000_compa (p, compa);
- return configure_rom (p, rom, 1);
+ return configure_rom (p, rom, romcheck);
}
-static int bip_a500 (struct uae_prefs *p, int config, int compa)
+static int bip_a500 (struct uae_prefs *p, int config, int compa, int romcheck)
{
int rom[4];
{
case 0: // KS 1.3, ECS Agnus, 0.5M Chip + 0.5M Slow
rom[0] = 6;
+ rom[1] = 32;
break;
case 1: // KS 1.3, OCS Agnus, 0.5M Chip
rom[0] = 6;
+ rom[1] = 32;
p->bogomem_size = 0;
p->chipset_mask = 0;
+ p->dfxtype[1] = -1;
break;
case 2: // KS 1.3, ECS Agnus, 1.0M Chip
rom[0] = 6;
+ rom[1] = 32;
p->bogomem_size = 0;
p->chipmem_size = 0x100000;
break;
rom[2] = 3;
p->bogomem_size = 0;
p->chipset_mask = 0;
+ p->dfxtype[1] = -1;
break;
case 4: // KS 1.2, OCS Agnus, 0.5M Chip + 0.5M Slow
rom[0] = 5;
break;
}
set_68000_compa (p, compa);
- return configure_rom (p, rom, 1);
+ return configure_rom (p, rom, romcheck);
}
-int build_in_prefs (struct uae_prefs *p, int model, int config, int compa)
+int build_in_prefs (struct uae_prefs *p, int model, int config, int compa, int romcheck)
{
- if (model > 5)
+ if (model > 4)
return 1;
buildin_default_prefs (p);
switch (model)
{
case 0:
- return bip_a500 (p, config, compa);
+ return bip_a500 (p, config, compa, romcheck);
+ //case 1:
+ //return bip_a600 (p, config, compa, romcheck);
case 1:
- return bip_a600 (p, config, compa);
+ return bip_a1000 (p, config, compa, romcheck);
case 2:
- return bip_a1000 (p, config, compa);
+ return bip_a1200 (p, config, compa, romcheck);
case 3:
- return bip_a1200 (p, config, compa);
+ return bip_cd32 (p, config, compa, romcheck);
case 4:
- return bip_cd32 (p, config, compa);
- case 5:
- return bip_cdtv (p, config, compa);
+ return bip_cdtv (p, config, compa, romcheck);
}
return 0;
}
\ No newline at end of file
// Dialog
//
-IDD_KICKSTART DIALOGEX 0, 0, 300, 176
+IDD_KICKSTART DIALOGEX 0, 0, 300, 138
STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
EXSTYLE WS_EX_CONTEXTHELP
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
- GROUPBOX "ROM Settings:",-1,5,12,290,96
- RTEXT "Boot ROM File:",IDC_ROMTEXT,10,27,75,10
- COMBOBOX IDC_ROMFILE,89,24,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL |
+ GROUPBOX "ROM Settings:",-1,5,0,290,74
+ RTEXT "Boot ROM File:",IDC_ROMTEXT,10,15,75,10
+ COMBOBOX IDC_ROMFILE,89,12,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL |
CBS_SORT | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "...",IDC_KICKCHOOSER,280,22,10,15
- RTEXT "Key File:",IDC_KEYTEXT,10,48,75,10
- COMBOBOX IDC_KEYFILE,89,45,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL |
+ PUSHBUTTON "...",IDC_KICKCHOOSER,280,10,10,15
+ RTEXT "Extended ROM File:",IDC_ROMFILE2TEXT,10,35,75,10
+ COMBOBOX IDC_ROMFILE2,89,31,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL |
CBS_SORT | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "...",IDC_KEYCHOOSER,280,43,10,15
- RTEXT "Extended ROM File:",IDC_ROMFILE2TEXT,10,68,75,10
- COMBOBOX IDC_ROMFILE2,89,64,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL |
+ PUSHBUTTON "...",IDC_ROMCHOOSER2,280,30,10,15
+ RTEXT "Cartridge ROM File:",IDC_FLASHTEXT2,8,53,75,10
+ COMBOBOX IDC_CARTFILE,89,50,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL |
CBS_SORT | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "...",IDC_ROMCHOOSER2,280,63,10,15
- RTEXT "Cartridge ROM File:",IDC_FLASHTEXT2,8,86,75,10
- COMBOBOX IDC_CARTFILE,89,83,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL |
- CBS_SORT | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "...",IDC_CARTCHOOSER,280,83,10,15
- GROUPBOX "Misc settings:",-1,5,112,290,57
- RTEXT "Flash RAM File:",IDC_FLASHTEXT,8,126,75,10
- EDITTEXT IDC_FLASHFILE,89,124,185,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_FLASHCHOOSER,280,124,10,15
+ PUSHBUTTON "...",IDC_CARTCHOOSER,280,50,10,15
+ GROUPBOX "Misc settings:",-1,5,76,290,57
+ RTEXT "Flash RAM File:",IDC_FLASHTEXT,8,90,75,10
+ EDITTEXT IDC_FLASHFILE,89,88,185,15,ES_AUTOHSCROLL
+ PUSHBUTTON "...",IDC_FLASHCHOOSER,280,88,10,15
CONTROL "MAPROM emulation",IDC_MAPROM,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,104,150,80,10
+ WS_TABSTOP,104,114,80,10
CONTROL "ShapeShifter support",IDC_KICKSHIFTER,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,196,150,80,10
+ BS_AUTOCHECKBOX | WS_TABSTOP,196,114,80,10
END
IDD_DISPLAY DIALOGEX 0, 0, 300, 194
PUSHBUTTON "Clear registry",IDC_RESETREGISTRY,219,182,73,14
END
-IDD_QUICKSTART DIALOGEX 0, 0, 300, 223
+IDD_QUICKSTART DIALOGEX 0, 0, 300, 234
STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
RTEXT "Compatibility:",IDC_STATIC,8,70,55,10,SS_CENTERIMAGE
COMBOBOX IDC_QUICKSTART_COMPATIBILITY,67,68,225,50,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Disk Drive",IDC_QUICKSTART_DF,5,126,294,60
+ GROUPBOX "Disk Drive",IDC_QUICKSTART_DF,5,126,294,87
LTEXT "Disk Drive DF0:",IDC_STATIC,12,141,56,10,SS_CENTERIMAGE
- PUSHBUTTON "Select Disk Image",IDC_DF0Q,79,139,84,15
+ PUSHBUTTON "Select Disk Image",IDC_DF0QQ,79,138,84,15
RTEXT "Write Protected",IDC_STATIC,168,142,58,10,
SS_CENTERIMAGE
- CONTROL "",IDC_DF0WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE |
- WS_TABSTOP,233,139,10,15
- PUSHBUTTON "Eject",IDC_EJECT0,248,139,30,15
- PUSHBUTTON "...",IDC_DF0,282,139,10,15
- COMBOBOX IDC_DF0TEXT,11,157,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL |
- WS_VSCROLL | WS_TABSTOP
+ CONTROL "",IDC_DF0WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE |
+ WS_TABSTOP,233,140,10,15
+ PUSHBUTTON "Eject",IDC_EJECT0Q,248,139,30,15
+ PUSHBUTTON "...",IDC_DF0Q2,282,139,10,15
+ COMBOBOX IDC_DF0TEXTQ,11,157,282,75,CBS_DROPDOWN |
+ CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_DF1TEXTQ,11,193,282,75,CBS_DROPDOWN |
+ CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ CONTROL "",IDC_DF1WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE |
+ WS_TABSTOP,233,176,10,15
+ PUSHBUTTON "Eject",IDC_EJECT1Q,248,175,30,15
+ PUSHBUTTON "...",IDC_DF1Q2,282,175,10,15
CONTROL "Start in Quickstart-mode",IDC_QUICKSTARTMODE,"Button",
- BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,202,212,94,10
+ BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,202,221,94,10
COMBOBOX IDC_QUICKSTART_HOSTCONFIG,67,103,225,50,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
GROUPBOX "Host configuration",IDC_QUICKSTART_HOST,5,91,294,33
RTEXT "Configuration:",IDC_STATIC,7,105,55,10,SS_CENTERIMAGE
+ LTEXT "Disk Drive DF1:",IDC_STATIC,12,179,56,10,SS_CENTERIMAGE
+ PUSHBUTTON "Select Disk Image",IDC_DF1QQ,79,175,84,15
+ RTEXT "Write Protected",IDC_STATIC,168,178,58,10,
+ SS_CENTERIMAGE
END
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 0,8,28,0
- PRODUCTVERSION 0,8,28,0
+ FILEVERSION 0,9,90,0
+ PRODUCTVERSION 0,9,90,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "WinUAE"
- VALUE "FileVersion", "0.8.28"
+ VALUE "FileVersion", "0.9.90"
VALUE "InternalName", "WinUAE"
VALUE "LegalCopyright", "© 1996-2004 under the GNU Public License (GPL)"
VALUE "OriginalFilename", "WinUAE.exe"
VALUE "ProductName", "WinUAE"
- VALUE "ProductVersion", "0.8.28"
+ VALUE "ProductVersion", "0.9.90"
END
END
BLOCK "VarFileInfo"
IDD_QUICKSTART, DIALOG
BEGIN
RIGHTMARGIN, 299
+ BOTTOMMARGIN, 223
END
END
#endif // APSTUDIO_INVOKED
static struct uae_prefs *pguiprefs;
struct uae_prefs workprefs;
static int currentpage;
+static int qs_request_reset;
int gui_active;
extern HWND (WINAPI *pHtmlHelp)(HWND, LPCSTR, UINT, LPDWORD );
if (listrom (roms)) strcat (p, "available"); else strcat (p, "unavailable");
strcat (p, "\nAmiga 500 Kickstart 1.3: ");
- roms[0] = 6; roms[1] = -1;
- if (listrom (roms)) strcat (p, "available"); else strcat (p, "unavailable");
-
- strcat (p, "\nAmiga 500+/600: ");
- roms[0] = 7; roms[1] = 8; roms[2] = 9; roms[3] = 10; roms[4] = -1;
+ roms[0] = 6; roms[1] = 32; roms[2] = -1;
if (listrom (roms)) strcat (p, "available"); else strcat (p, "unavailable");
strcat (p, "\nAmiga 1000: ");
if (listrom (roms)) strcat (p, "available"); else strcat (p, "unavailable");
strcat (p, "\nAmiga 1200: ");
- roms[0] = 11; roms[1] = 15; roms[2] = -1;
+ roms[0] = 11; roms[1] = 31; roms[2] = 15; roms[3] = -1;
if (listrom (roms)) strcat (p, "available"); else strcat (p, "unavailable");
ok = 0;
strcat (p, "\nCDTV: ");
roms[0] = 20; roms[1] = 21; roms[2] = 22; roms[3] = -1;
if (listrom (roms)) {
- roms[0] = 6; roms[1] = -1;
+ roms[0] = 6; roms[1] = 32; roms[2] = -1;
if (listrom (roms))
ok = 1;
}
SetDlgItemText (hDlg, wParam, full_path);
break;
case IDC_DF0:
- case IDC_DF0Q:
+ case IDC_DF0QQ:
+ case IDC_DF0Q2:
SetDlgItemText (hDlg, IDC_DF0TEXT, full_path);
strcpy( prefs->df[0], full_path );
DISK_history_add (full_path, -1);
break;
case IDC_DF1:
+ case IDC_DF1QQ:
+ case IDC_DF1Q2:
SetDlgItemText (hDlg, IDC_DF1TEXT, full_path);
strcpy( prefs->df[1], full_path );
DISK_history_add (full_path, -1);
case IDC_ROMFILE2:
strcpy( workprefs.romextfile, full_path );
break;
- case IDC_KEYFILE:
- strcpy( workprefs.keyfile, full_path );
- break;
case IDC_FLASHFILE:
strcpy( workprefs.flashfile, full_path );
break;
RegSetValueEx( hWinUAEKey, "hdfPath", 0, REG_SZ, (CONST BYTE *)openFileName.lpstrFile, strlen( openFileName.lpstrFile ) + 1 );
}
}
- else if( flag == 6 || flag == 7 )
- {
- amiga_path = strstr( openFileName.lpstrFile, openFileName.lpstrFileTitle );
- if( amiga_path && amiga_path != openFileName.lpstrFile )
- {
- *amiga_path = 0;
- if( hWinUAEKey )
- RegSetValueEx( hWinUAEKey, "KickstartPath", 0, REG_SZ, (CONST BYTE *)openFileName.lpstrFile, strlen( openFileName.lpstrFile ) + 1 );
- }
- }
}
return result;
}
if (strcmp (find_data.cFileName, ".") && strcmp (find_data.cFileName, "..")) {
int ok = 0;
config = AllocConfigStruct ();
+ strcpy (config->Path, shortpath);
+ strcpy (config->Fullpath, path);
if ((find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && usedirs) {
if ((*level) < 2) {
struct ConfigStruct *child;
strcpy (config->Name, find_data.cFileName);
+ strcpy (config->Path, shortpath);
+ strcat (config->Path, config->Name);
+ strcat (config->Path, "\\");
+ strcpy (config->Fullpath, path);
+ strcat (config->Fullpath, config->Name);
+ strcat (config->Fullpath, "\\");
config->Directory = 1;
(*level)++;
config->Parent = configparent;
config->host = configparent->host;
config->hardware = configparent->hardware;
}
- strcpy (config->Path, shortpath);
- strcpy (config->Fullpath, path);
config->Parent = configparent;
if (configstore == NULL || configstoreallocated == configstoresize) {
configstoreallocated += 100;
EnableWindow (GetDlgItem (hDlg, IDC_CONFIGAUTO), configtypepanel > 0 && config && !config->Directory ? TRUE : FALSE);
}
+static struct ConfigStruct *fixloadconfig (HWND hDlg, struct ConfigStruct *config)
+{
+ int i;
+
+ if ((!config && configtypepanel) || (config && (configtypepanel == 2 && !config->host) || (configtypepanel == 1 && !config->hardware))) {
+ for (i = 0; i < configstoresize; i++) {
+ struct ConfigStruct *cs = configstore[i];
+ if (cs->Directory && ((configtypepanel == 1 && cs->hardware) || (configtypepanel == 2 && cs->host))) {
+ config = cs;
+ SetDlgItemText (hDlg, IDC_EDITPATH, config->Path);
+ break;
+ }
+ }
+ }
+ return config;
+}
+
static BOOL CALLBACK LoadSaveDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
char name_buf[MAX_DPATH];
}
checkautoload (hDlg, config);
}
+ config = fixloadconfig (hDlg, config);
if (config && config->item)
TreeView_SelectItem (GetDlgItem(hDlg, IDC_CONFIGTREE), config->item);
else
HandleConfiguration (hDlg, CONFIG_SAVE_FULL, config);
recursive++;
config = CreateConfigStore (config);
+ config = fixloadconfig (hDlg, config);
InitializeConfigTreeView (hDlg);
recursive--;
break;
HandleConfiguration (hDlg, CONFIG_SAVE, config);
recursive++;
config = CreateConfigStore (config);
+ config = fixloadconfig (hDlg, config);
InitializeConfigTreeView (hDlg);
recursive--;
break;
HandleConfiguration (hDlg, CONFIG_DELETE, config);
recursive++;
config = CreateConfigStore (config);
+ config = fixloadconfig (hDlg, config);
InitializeConfigTreeView (hDlg);
recursive--;
break;
case TVN_SELCHANGED:
{
LPNMTREEVIEW tv = (LPNMTREEVIEW)lParam;
- config = (struct ConfigStruct*)tv->itemNew.lParam;
- if (config) {
+ struct ConfigStruct *c = (struct ConfigStruct*)tv->itemNew.lParam;
+ if (c) {
+ config = c;
if (!config->Directory) {
SetDlgItemText (hDlg, IDC_EDITNAME, config->Name);
SetDlgItemText (hDlg, IDC_EDITDESCRIPTION, config->Description);
SetDlgItemText (hDlg, IDC_EDITPATH, config->Path);
}
if (configtypepanel > 0) {
- if (config && !config->Directory)
+ if (c && !c->Directory)
ConfigToRegistry (config, configtypepanel);
- checkautoload (hDlg, config);
+ checkautoload (hDlg, c);
}
return TRUE;
}
if (DirectorySelection (hDlg, 0, tmp)) {
if (tmp[strlen (tmp) - 1] != '\\')
strcat (tmp, "\\");
- if (scan_roms (tmp))
- set_path ("KickstartPath", tmp);
- else
+ if (!scan_roms (tmp))
pre_gui_message ("No ROMs found");
+ set_path ("KickstartPath", tmp);
values_to_pathsdialog (hDlg);
}
break;
"Medium compatibility (recommended for most users)",
"Low compatiblity (for PCs with low CPU power)"
},
+/*
{ "A500+/A600",
"High compatibility (>1.5GHz recommended)",
"Medium compatibility (recommended for most users)",
"Low compatiblity (for PCs with low CPU power)"
},
+*/
{ "A1000",
"High compatibility (>1.5GHz recommended)",
"Medium compatibility (recommended for most users)",
{ 0, "", "KS 1.2, OCS Agnus, 0.5M Chip" },
{ 0, "", "KS 1.2, OCS Agnus, 0.5M Chip + 0.5M Slow" },
+/*
{ 1, "", "1.0M Chip" },
+*/
+ { 1, "", "0.5M Chip" },
+ { 1, "", "256K Chip" },
- { 2, "", "0.5M Chip" },
- { 2, "", "256K Chip" },
-
- { 3, "", "2.0M Chip" },
- { 3, "", "2.0M Chip + 4.0M Fast" },
+ { 2, "", "2.0M Chip" },
+ { 2, "", "2.0M Chip + 4.0M Fast" },
- { 4, "", "CD32" },
+ { 3, "", "CD32" },
- { 5, "", "CDTV" },
+ { 4, "", "CDTV" },
{ -1 }
};
static void enable_for_quickstart (HWND hDlg)
{
int v = quickstart_ok && quickstart_ok_floppy ? TRUE : FALSE;
- EnableWindow (GetDlgItem (guiDlg, IDOK), v);
- EnableWindow (GetDlgItem (guiDlg, IDC_RESETAMIGA), v);
+ EnableWindow (GetDlgItem (guiDlg, IDC_RESETAMIGA), v && !full_property_sheet ? TRUE : FALSE);
}
-static void load_quickstart (HWND hDlg)
+static void load_quickstart (HWND hDlg, int romcheck)
{
- EnableWindow (GetDlgItem (guiDlg, IDOK), FALSE);
EnableWindow (GetDlgItem (guiDlg, IDC_RESETAMIGA), FALSE);
- quickstart_ok = build_in_prefs (&workprefs, quickstart_model, quickstart_conf, quickstart_compa);
+ quickstart_ok = build_in_prefs (&workprefs, quickstart_model, quickstart_conf, quickstart_compa, romcheck);
enable_for_quickstart (hDlg);
addfloppytype (hDlg, 0);
addfloppytype (hDlg, 1);
qssize = sizeof (tmp1);
RegQueryValueEx (hWinUAEKey, "QuickStartHostConfig", 0, &dwType, (LPBYTE)tmp1, &qssize);
if (firsttime == 0) {
- quickstarthost (hDlg, tmp1);
- load_quickstart (hDlg);
if (hWinUAEKey) {
qssize = sizeof (quickstart_model);
RegQueryValueEx (hWinUAEKey, "QuickStartModel", 0, &dwType, (LPBYTE)&quickstart_model, &qssize);
qssize = sizeof (quickstart_compa);
RegQueryValueEx (hWinUAEKey, "QuickStartCompatibility", 0, &dwType, (LPBYTE)&quickstart_compa, &qssize);
}
- firsttime = 1;
+ if (quickstart) {
+ quickstarthost (hDlg, tmp1);
+ workprefs.df[0][0] = 0;
+ workprefs.df[1][0] = 0;
+ workprefs.df[2][0] = 0;
+ workprefs.df[3][0] = 0;
+ load_quickstart (hDlg, 1);
+ }
+ firsttime = 1;
}
CheckDlgButton (hDlg, IDC_QUICKSTARTMODE, quickstart);
int reload = 0;
quickstart_ok_floppy = 0;
+ if (workprefs.dfxtype[0] < 0) {
+ quickstart_ok_floppy = 1;
+ return;
+ }
if (!workprefs.df[0][0])
return;
ret = DISK_examine_image (&workprefs, 0);
break;
case 11:
quickstart_ok_floppy = 1;
- if (quickstart_model < 1) {
- quickstart_model = 1;
+ if (quickstart_model != 2) {
+ quickstart_model = 2;
pre_gui_message ("Selected disk image requires Kickstart 2.04 or 3.0\nConfiguration updated");
reload = 1;
}
break;
case 12:
quickstart_ok_floppy = 1;
- if (quickstart_model < 2) {
+ if (quickstart_model != 2) {
quickstart_model = 2;
pre_gui_message ("Selected disk image requires Kickstart 3.0 or later\nConfiguration updated");
reload = 1;
break;
}
if (reload) {
- load_quickstart (hDlg);
+ load_quickstart (hDlg, 1);
init_quickstartdlg (hDlg);
}
}
int val, ret = FALSE;
char tmp[MAX_DPATH];
static char df0[MAX_DPATH];
+ static int dfxtype[2] = { -1, -1 };
switch( msg )
{
if (val != CB_ERR && val != quickstart_model) {
quickstart_model = val;
init_quickstartdlg (hDlg);
- load_quickstart (hDlg);
+ load_quickstart (hDlg, 1);
if (quickstart && !full_property_sheet)
- uae_reset (1);
+ qs_request_reset = 2;
}
break;
case IDC_QUICKSTART_CONFIGURATION:
if (val != CB_ERR && val != quickstart_conf) {
quickstart_conf = val;
init_quickstartdlg (hDlg);
- load_quickstart (hDlg);
+ load_quickstart (hDlg, 1);
if (quickstart && !full_property_sheet)
- uae_reset (1);
+ qs_request_reset = 2;
}
break;
case IDC_QUICKSTART_COMPATIBILITY:
val = SendDlgItemMessage (hDlg, IDC_QUICKSTART_COMPATIBILITY, CB_GETCURSEL, 0, 0L);
if (val != CB_ERR) {
quickstart_compa = val;
- load_quickstart (hDlg);
+ init_quickstartdlg (hDlg);
+ load_quickstart (hDlg, 0);
}
break;
case IDC_QUICKSTART_HOSTCONFIG:
quickstart = IsDlgButtonChecked (hDlg, IDC_QUICKSTARTMODE);
if (hWinUAEKey)
RegSetValueEx( hWinUAEKey, "QuickStartMode", 0, REG_DWORD, (CONST BYTE *)&quickstart, sizeof(quickstart));
+ if (quickstart) {
+ init_quickstartdlg (hDlg);
+ load_quickstart (hDlg, 0);
+ }
break;
}
}
switch (LOWORD (wParam))
{
- case IDC_DF0TEXT:
- case IDC_DF0WP:
- case IDC_EJECT0:
- case IDC_DF0:
- case IDC_DF0Q:
- case IDC_DF1TEXT:
- case IDC_DF1WP:
- case IDC_EJECT1:
- case IDC_DF1:
- case IDC_DF1Q:
+ case IDC_DF0TEXTQ:
+ case IDC_DF0WPQ:
+ case IDC_EJECT0Q:
+ case IDC_DF0QQ:
+ case IDC_DF0Q2:
+ case IDC_DF1TEXTQ:
+ case IDC_DF1WPQ:
+ case IDC_EJECT1Q:
+ case IDC_DF1QQ:
+ case IDC_DF1Q2:
ret = FloppyDlgProc (hDlg, msg, wParam, lParam);
break;
}
recursive--;
}
- if (strcmp (workprefs.df[0], df0)) {
+ if (strcmp (workprefs.df[0], df0) || workprefs.dfxtype[0] != dfxtype[0] || workprefs.dfxtype[1] != dfxtype[1]) {
strcpy (df0, workprefs.df[0]);
+ dfxtype[0] = workprefs.dfxtype[0];
+ dfxtype[1] = workprefs.dfxtype[1];
testimage (hDlg);
enable_for_quickstart (hDlg);
}
SendDlgItemMessage (hDlg, IDC_RICHEDIT1, EM_GETCHARFORMAT, 0, (LPARAM) & CharFormat);
CharFormat.dwMask |= CFM_BOLD | CFM_SIZE | CFM_FACE;
CharFormat.dwEffects = CFE_BOLD;
- CharFormat.yHeight = 18 * 20; /* height in twips, where a twip is 1/20th of a point - for a pt.size of 18 */
+ CharFormat.yHeight = 18 * 20; /* height in twips, where a twip is 1/20th of a point - for a pt.size of 18 */
strcpy (CharFormat.szFaceName, "Times New Roman");
SendDlgItemMessage (hDlg, IDC_RICHEDIT1, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) & CharFormat);
{
getromfile (hDlg, IDC_ROMFILE, workprefs.romfile, sizeof (workprefs.romfile));
getromfile (hDlg, IDC_ROMFILE2, workprefs.romextfile, sizeof (workprefs.romextfile));
- getromfile (hDlg, IDC_KEYFILE, workprefs.keyfile, sizeof (workprefs.keyfile));
getromfile (hDlg, IDC_CARTFILE, workprefs.cartfile, sizeof (workprefs.cartfile));
}
keybuf = load_keyfile (&workprefs, NULL, &keysize);
addromfiles (fkey, hDlg, IDC_ROMFILE, workprefs.romfile, keybuf, keysize, ROMTYPE_KICK | ROMTYPE_KICKCD32);
addromfiles (fkey, hDlg, IDC_ROMFILE2, workprefs.romextfile, keybuf, keysize, ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV);
- addromfiles (fkey, hDlg, IDC_KEYFILE, workprefs.keyfile, keybuf, keysize, ROMTYPE_KEY);
addromfiles (fkey, hDlg, IDC_CARTFILE, workprefs.cartfile, keybuf, keysize, ROMTYPE_AR);
free_keyfile (keybuf);
if (fkey)
{
case IDC_ROMFILE:
case IDC_ROMFILE2:
- case IDC_KEYFILE:
case IDC_CARTFILE:
values_from_kickstartdlg (hDlg);
break;
values_to_kickstartdlg (hDlg);
break;
- case IDC_KEYCHOOSER:
- DiskSelection( hDlg, IDC_KEYFILE, 7, &workprefs, 0);
- values_to_kickstartdlg (hDlg);
- break;
-
case IDC_FLASHCHOOSER:
DiskSelection( hDlg, IDC_FLASHFILE, 11, &workprefs, 0);
values_to_kickstartdlg (hDlg);
#define BUTTONSPERFLOPPY 6
static int floppybuttons[][BUTTONSPERFLOPPY] = {
- { IDC_DF0TEXT,IDC_DF0,IDC_EJECT0,IDC_DF0TYPE,IDC_DF0WP,IDC_DF0Q },
+ { IDC_DF0TEXT,IDC_DF0,IDC_EJECT0,IDC_DF0TYPE,IDC_DF0WP,-1 },
{ IDC_DF1TEXT,IDC_DF1,IDC_EJECT1,IDC_DF1TYPE,IDC_DF1WP,-1 },
{ IDC_DF2TEXT,IDC_DF2,IDC_EJECT2,IDC_DF2TYPE,IDC_DF2WP,-1 },
{ IDC_DF3TEXT,IDC_DF3,IDC_EJECT3,IDC_DF3TYPE,IDC_DF3WP,-1 }
};
+static int floppybuttonsq[][BUTTONSPERFLOPPY] = {
+ { IDC_DF0TEXTQ,IDC_DF0Q2,IDC_EJECT0Q,-1,IDC_DF0WPQ,IDC_DF0QQ },
+ { IDC_DF1TEXTQ,IDC_DF1Q2,IDC_EJECT1Q,-1,IDC_DF1WPQ,IDC_DF1QQ },
+ { -1,-1,-1,-1,-1,-1 },
+ { -1,-1,-1,-1,-1,-1 }
+};
static void addfloppytype (HWND hDlg, int n)
{
int f_eject = floppybuttons[n][2];
int f_type = floppybuttons[n][3];
int f_wp = floppybuttons[n][4];
- int f_driveq = floppybuttons[n][5];
+
+ int f_textq = floppybuttonsq[n][0];
+ int f_driveq = floppybuttonsq[n][1];
+ int f_ejectq = floppybuttonsq[n][2];
+ int f_wpq = floppybuttonsq[n][4];
+ int f_driveqq = floppybuttonsq[n][5];
+
int nn = workprefs.dfxtype[n] + 1;
- int state, i;
+ int state, i, chk;
char *s;
HKEY fkey;
char tmp[1000];
SendDlgItemMessage (hDlg, f_type, CB_SETCURSEL, nn, 0);
EnableWindow(GetDlgItem(hDlg, f_text), state);
+ if (f_textq >= 0)
+ EnableWindow(GetDlgItem(hDlg, f_textq), state);
EnableWindow(GetDlgItem(hDlg, f_eject), TRUE);
+ if (f_ejectq >= 0)
+ EnableWindow(GetDlgItem(hDlg, f_ejectq), TRUE);
EnableWindow(GetDlgItem(hDlg, f_drive), state);
if (f_driveq >= 0)
EnableWindow(GetDlgItem(hDlg, f_driveq), state);
- CheckDlgButton(hDlg, f_wp, disk_getwriteprotect (workprefs.df[n]) && state == TRUE ? BST_CHECKED : 0);
- EnableWindow(GetDlgItem(hDlg, f_wp), state && DISK_validate_filename (workprefs.df[n], 0, 0) ? TRUE : FALSE);
+ if (f_driveqq >= 0)
+ EnableWindow(GetDlgItem(hDlg, f_driveqq), state);
+ chk = disk_getwriteprotect (workprefs.df[n]) && state == TRUE ? BST_CHECKED : 0;
+ CheckDlgButton(hDlg, f_wp, chk);
+ if (f_wpq >= 0)
+ CheckDlgButton(hDlg, f_wpq, chk);
+ chk = state && DISK_validate_filename (workprefs.df[n], 0, 0) ? TRUE : FALSE;
+ EnableWindow(GetDlgItem(hDlg, f_wp), chk);
+ if (f_wpq >= 0)
+ EnableWindow(GetDlgItem(hDlg, f_wpq), chk);
fkey = read_disk_history ();
SendDlgItemMessage(hDlg, f_text, CB_RESETCONTENT, 0, 0);
SendDlgItemMessage(hDlg, f_text, WM_SETTEXT, 0, (LPARAM)workprefs.df[n]);
+ if (f_textq >= 0) {
+ SendDlgItemMessage(hDlg, f_textq, CB_RESETCONTENT, 0, 0);
+ SendDlgItemMessage(hDlg, f_textq, WM_SETTEXT, 0, (LPARAM)workprefs.df[n]);
+ }
i = 0;
while (s = DISK_history_get (i)) {
i++;
SendDlgItemMessage(hDlg, f_text, CB_ADDSTRING, 0, (LPARAM)s);
+ if (f_textq >= 0)
+ SendDlgItemMessage(hDlg, f_textq, CB_ADDSTRING, 0, (LPARAM)s);
if (fkey) {
sprintf (tmp, "Image%02d", i);
RegSetValueEx(fkey, tmp, 0, REG_SZ, (CONST BYTE *)s, strlen(s) + 1);
}
- if (!strcmp (workprefs.df[n], s))
+ if (!strcmp (workprefs.df[n], s)) {
SendDlgItemMessage (hDlg, f_text, CB_SETCURSEL, i - 1, 0);
+ if (f_textq >= 0)
+ SendDlgItemMessage (hDlg, f_textq, CB_SETCURSEL, i - 1, 0);
+ }
if (nn <= 0)
break;
}
static void getfloppyname (HWND hDlg, int n)
{
int val;
- int f_text = floppybuttons[n][0];
+ int f_text = currentpage == QUICKSTART_ID ? floppybuttonsq[n][0] : floppybuttons[n][0];
char tmp[1000];
tmp[0] = 0;
SetDlgItemText (hDlg, IDC_DF1TEXT, workprefs.df[1]);
SetDlgItemText (hDlg, IDC_DF2TEXT, workprefs.df[2]);
SetDlgItemText (hDlg, IDC_DF3TEXT, workprefs.df[3]);
+ SetDlgItemText (hDlg, IDC_DF0TEXTQ, workprefs.df[0]);
+ SetDlgItemText (hDlg, IDC_DF1TEXTQ, workprefs.df[1]);
SendDlgItemMessage (hDlg, IDC_FLOPPYSPD, TBM_SETPOS, TRUE,
workprefs.floppy_speed ? exact_log2 ((workprefs.floppy_speed) / 100) + 1 : 0);
out_floppyspeed (hDlg);
switch (LOWORD (wParam))
{
case IDC_DF0TEXT:
+ case IDC_DF0TEXTQ:
getfloppyname (hDlg, 0);
addfloppytype (hDlg, 0);
break;
case IDC_DF1TEXT:
+ case IDC_DF1TEXTQ:
getfloppyname (hDlg, 1);
addfloppytype (hDlg, 1);
break;
switch (LOWORD (wParam))
{
case IDC_DF0WP:
- floppysetwriteprotect (hDlg, 0, IsDlgButtonChecked (hDlg, IDC_DF0WP));
+ case IDC_DF0WPQ:
+ floppysetwriteprotect (hDlg, 0, currentpage == QUICKSTART_ID ? IsDlgButtonChecked (hDlg, IDC_DF0WPQ) : IsDlgButtonChecked (hDlg, IDC_DF0WP));
break;
case IDC_DF1WP:
- floppysetwriteprotect (hDlg, 1, IsDlgButtonChecked (hDlg, IDC_DF1WP));
+ case IDC_DF1WPQ:
+ floppysetwriteprotect (hDlg, 1, currentpage == QUICKSTART_ID ? IsDlgButtonChecked (hDlg, IDC_DF1WPQ) : IsDlgButtonChecked (hDlg, IDC_DF1WP));
break;
case IDC_DF2WP:
floppysetwriteprotect (hDlg, 2, IsDlgButtonChecked (hDlg, IDC_DF2WP));
floppysetwriteprotect (hDlg, 3, IsDlgButtonChecked (hDlg, IDC_DF3WP));
break;
case IDC_DF0:
- case IDC_DF0Q:
+ case IDC_DF0QQ:
+ case IDC_DF0Q2:
DiskSelection (hDlg, wParam, 0, &workprefs, 0);
disk_insert (0, workprefs.df[0]);
addfloppytype (hDlg, 0);
break;
case IDC_DF1:
+ case IDC_DF1QQ:
+ case IDC_DF1Q2:
DiskSelection (hDlg, wParam, 0, &workprefs, 0);
disk_insert (1, workprefs.df[1]);
addfloppytype (hDlg, 1);
addfloppytype (hDlg, 3);
break;
case IDC_EJECT0:
+ case IDC_EJECT0Q:
disk_eject(0);
SetDlgItemText (hDlg, IDC_DF0TEXT, "");
+ SetDlgItemText (hDlg, IDC_DF0TEXTQ, "");
workprefs.df[0][0] = 0;
addfloppytype (hDlg, 0);
break;
case IDC_EJECT1:
+ case IDC_EJECT1Q:
disk_eject(1);
SetDlgItemText (hDlg, IDC_DF1TEXT, "");
+ SetDlgItemText (hDlg, IDC_DF1TEXTQ, "");
workprefs.df[1][0] = 0;
addfloppytype (hDlg, 1);
break;
EnableWindow( GetDlgItem( hDlg, IDC_SER_CTSRTS), FALSE );
EnableWindow( GetDlgItem( hDlg, IDC_SERIAL_DIRECT), FALSE );
EnableWindow( GetDlgItem( hDlg, IDC_SERIAL), FALSE );
+#else
+ v = workprefs.use_serial ? TRUE : FALSE;
+ EnableWindow( GetDlgItem( hDlg, IDC_SHARED), v);
+ EnableWindow( GetDlgItem( hDlg, IDC_SER_CTSRTS), v);
+ EnableWindow( GetDlgItem( hDlg, IDC_SERIAL_DIRECT), v);
#endif
#if !defined (PARALLEL_PORT)
EnableWindow( GetDlgItem( hDlg, IDC_PRINTERLIST), FALSE );
if (quit_program)
psresult = -2;
+ else if (qs_request_reset && quickstart)
+ uae_reset (qs_request_reset == 2 ? 1 : 0);
+ qs_request_reset = 0;
full_property_sheet = 0;
return psresult;
}