atarist: enable recent menu for floppy/hdd/cart.
This commit is contained in:
89
menu.cpp
89
menu.cpp
@@ -3233,26 +3233,27 @@ void HandleUI(void)
|
||||
menustate = MENU_8BIT_INFO;
|
||||
menusub = 3;
|
||||
}
|
||||
else if (menusub <= 1 && (select || recent))
|
||||
{
|
||||
if (tos_disk_is_inserted(menusub))
|
||||
{
|
||||
tos_insert_disk(menusub, "");
|
||||
menustate = MENU_ST_MAIN1;
|
||||
}
|
||||
else
|
||||
{
|
||||
fs_Options = SCANO_DIR;
|
||||
fs_MenuSelect = MENU_ST_FDD_FILE_SELECTED;
|
||||
fs_MenuCancel = MENU_ST_MAIN1;
|
||||
strcpy(fs_pFileExt, "ST");
|
||||
if (select) SelectFile(Selected_F[menusub], "ST", fs_Options, fs_MenuSelect, fs_MenuCancel);
|
||||
else if (recent_init(menusub)) menustate = MENU_RECENT1;
|
||||
}
|
||||
}
|
||||
else if (select || minus || plus)
|
||||
{
|
||||
switch (menusub)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
if (select)
|
||||
{
|
||||
if (tos_disk_is_inserted(menusub))
|
||||
{
|
||||
tos_insert_disk(menusub, "");
|
||||
menustate = MENU_ST_MAIN1;
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectFile(Selected_F[menusub], "ST ", SCANO_DIR, MENU_ST_FDD_FILE_SELECTED, MENU_ST_MAIN1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
// remove current write protect bits and increase by one
|
||||
tos_update_sysctrl((tos_system_ctrl() & ~(TOS_CONTROL_FDC_WR_PROT_A | TOS_CONTROL_FDC_WR_PROT_B))
|
||||
@@ -3323,6 +3324,7 @@ void HandleUI(void)
|
||||
|
||||
case MENU_ST_FDD_FILE_SELECTED:
|
||||
memcpy(Selected_F[menusub], selPath, sizeof(Selected_F[menusub]));
|
||||
recent_update(SelectedDir, selPath, SelectedLabel, menusub);
|
||||
tos_insert_disk(menusub, selPath);
|
||||
menustate = MENU_ST_MAIN1;
|
||||
break;
|
||||
@@ -3417,31 +3419,40 @@ void HandleUI(void)
|
||||
saved_menustate = 0;
|
||||
}
|
||||
}
|
||||
else if (menusub <= 2 && (select || recent))
|
||||
{
|
||||
if (menusub <= 1)
|
||||
{
|
||||
fs_Options = SCANO_DIR | SCANO_UMOUNT;
|
||||
fs_MenuSelect = MENU_ST_HDD_FILE_SELECTED;
|
||||
fs_MenuCancel = MENU_ST_SYSTEM1;
|
||||
strcpy(fs_pFileExt, "VHD");
|
||||
if (select) SelectFile(Selected_S[menusub], "VHD", fs_Options, fs_MenuSelect, fs_MenuCancel);
|
||||
else if (recent_init(menusub + 500)) menustate = MENU_RECENT1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (tos_cartridge_is_inserted())
|
||||
{
|
||||
tos_load_cartridge("");
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
}
|
||||
else
|
||||
{
|
||||
fs_Options = SCANO_DIR;
|
||||
fs_MenuSelect = MENU_ST_SYSTEM_FILE_SELECTED;
|
||||
fs_MenuCancel = MENU_ST_SYSTEM1;
|
||||
strcpy(fs_pFileExt, "IMG");
|
||||
if (select) SelectFile(Selected_F[menusub], "IMG", fs_Options, fs_MenuSelect, fs_MenuCancel);
|
||||
else if (recent_init(menusub)) menustate = MENU_RECENT1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if (select || plus || minus)
|
||||
{
|
||||
switch (menusub)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
if (select) SelectFile(Selected_S[menusub], "VHD", SCANO_DIR | SCANO_UMOUNT, MENU_ST_HDD_FILE_SELECTED, MENU_ST_SYSTEM1);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
// Cart
|
||||
if (select)
|
||||
{
|
||||
if (tos_cartridge_is_inserted())
|
||||
{
|
||||
tos_load_cartridge("");
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectFile(Selected_F[menusub], "IMG", SCANO_DIR, MENU_ST_SYSTEM_FILE_SELECTED, MENU_ST_SYSTEM1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
{
|
||||
// RAM
|
||||
@@ -3539,6 +3550,7 @@ void HandleUI(void)
|
||||
case MENU_ST_HDD_FILE_SELECTED:
|
||||
printf("Insert image for disk %d\n", menusub);
|
||||
memcpy(Selected_S[menusub], selPath, sizeof(Selected_S[menusub]));
|
||||
recent_update(SelectedDir, selPath, SelectedLabel, menusub + 500);
|
||||
tos_insert_disk(menusub+2, selPath);
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
break;
|
||||
@@ -3554,6 +3566,7 @@ void HandleUI(void)
|
||||
if (menusub == 2)
|
||||
{
|
||||
memcpy(Selected_F[menusub], selPath, sizeof(Selected_F[menusub]));
|
||||
recent_update(SelectedDir, selPath, SelectedLabel, menusub);
|
||||
tos_load_cartridge(selPath);
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
}
|
||||
@@ -3939,7 +3952,7 @@ void HandleUI(void)
|
||||
if (c == KEY_BACKSPACE && (fs_Options & SCANO_UMOUNT))
|
||||
{
|
||||
for (int i = 0; i < OsdGetSize(); i++) OsdWrite(i, "", 0, 0);
|
||||
OsdWrite(OsdGetSize() / 2, " Unmounting the image", 0, 0);
|
||||
OsdWrite(OsdGetSize() / 2, " Unmounting the image", 0, 0);
|
||||
OsdUpdate();
|
||||
sleep(1);
|
||||
selPath[0] = 0;
|
||||
|
||||
Reference in New Issue
Block a user