AtariST: fix memory fill, add aspect ratio option.
This commit is contained in:
75
menu.cpp
75
menu.cpp
@@ -2886,7 +2886,7 @@ void HandleUI(void)
|
||||
break;
|
||||
|
||||
case MENU_ST_SYSTEM1:
|
||||
menumask = 0x1fff;
|
||||
menumask = 0x3fff;
|
||||
OsdSetTitle("Config", 0);
|
||||
m = 0;
|
||||
|
||||
@@ -2907,16 +2907,16 @@ void HandleUI(void)
|
||||
snprintf(s, 29, " TOS: %s", tos_get_image_name());
|
||||
OsdWrite(m++, s, menusub == 4);
|
||||
|
||||
strcpy(s, " Chipset: ");
|
||||
// extract TOS_CONTROL_STE and TOS_CONTROL_MSTE bits
|
||||
strcat(s, atari_chipset[(tos_system_ctrl() >> 23) & 3]);
|
||||
OsdWrite(m++, s, menusub == 5);
|
||||
|
||||
// Blitter is always present in >= STE
|
||||
enable = (tos_system_ctrl() & (TOS_CONTROL_STE | TOS_CONTROL_MSTE)) ? 1 : 0;
|
||||
strcpy(s, " Blitter: ");
|
||||
strcat(s, ((tos_system_ctrl() & TOS_CONTROL_BLITTER) || enable) ? "On" : "Off");
|
||||
OsdWrite(m++, s, menusub == 5, enable);
|
||||
|
||||
strcpy(s, " Chipset: ");
|
||||
// extract TOS_CONTROL_STE and TOS_CONTROL_MSTE bits
|
||||
strcat(s, atari_chipset[(tos_system_ctrl() >> 23) & 3]);
|
||||
OsdWrite(m++, s, menusub == 6, 0);
|
||||
OsdWrite(m++, s, menusub == 6, enable);
|
||||
|
||||
// Viking card can only be enabled with max 8MB RAM
|
||||
enable = (tos_system_ctrl() & 0xe) <= TOS_MEMCONFIG_8M;
|
||||
@@ -2924,33 +2924,30 @@ void HandleUI(void)
|
||||
strcat(s, ((tos_system_ctrl() & TOS_CONTROL_VIKING) && enable) ? "On" : "Off");
|
||||
OsdWrite(m++, s, menusub == 7, enable ? 0 : 1);
|
||||
|
||||
/*
|
||||
strcpy(s, " CDC I/O: ");
|
||||
strcat(s, config_tos_usb[tos_get_cdc_control_redirect()]);
|
||||
OsdWrite(m++, s, menusub == 3, 0);
|
||||
*/
|
||||
strcpy(s, " Aspect: ");
|
||||
strcat(s, (tos_system_ctrl() & TOS_CONTROL_VIDEO_AR) ? "16:9" : "4:3");
|
||||
OsdWrite(m++, s, menusub == 8);
|
||||
|
||||
OsdWrite(m++);
|
||||
strcpy(s, " Screen: ");
|
||||
if (tos_system_ctrl() & TOS_CONTROL_VIDEO_COLOR) strcat(s, "Color");
|
||||
else strcat(s, "Mono");
|
||||
OsdWrite(m++, s, menusub == 8, 0);
|
||||
OsdWrite(m++, s, menusub == 9);
|
||||
|
||||
strcpy(s, " Border: ");
|
||||
if (tos_system_ctrl() & TOS_CONTROL_BORDER) strcat(s, "Visible");
|
||||
else strcat(s, "Full");
|
||||
OsdWrite(m++, s, menusub == 9, 0);
|
||||
OsdWrite(m++, s, menusub == 10);
|
||||
|
||||
strcpy(s, " Scanlines: ");
|
||||
strcat(s, scanlines[(tos_system_ctrl() >> 20) & 3]);
|
||||
OsdWrite(m++, s, menusub == 10, 0);
|
||||
OsdWrite(m++, s, menusub == 11);
|
||||
|
||||
strcpy(s, " YM-Audio: ");
|
||||
strcat(s, stereo[(tos_system_ctrl() & TOS_CONTROL_STEREO) ? 1 : 0]);
|
||||
OsdWrite(m++, s, menusub == 11, 0);
|
||||
OsdWrite(m++, s, menusub == 12);
|
||||
|
||||
for (; m < OsdGetSize() - 1; m++) OsdWrite(m);
|
||||
OsdWrite(15, STD_EXIT, menusub == 12, 0);
|
||||
OsdWrite(15, STD_EXIT, menusub == 13);
|
||||
|
||||
parentstate = menustate;
|
||||
menustate = MENU_ST_SYSTEM2;
|
||||
@@ -2963,8 +2960,7 @@ void HandleUI(void)
|
||||
menusub = 3;
|
||||
if(need_reset) tos_reset(1);
|
||||
}
|
||||
|
||||
if (select)
|
||||
else if (select)
|
||||
{
|
||||
switch (menusub)
|
||||
{
|
||||
@@ -2991,7 +2987,7 @@ void HandleUI(void)
|
||||
// RAM
|
||||
int mem = (tos_system_ctrl() >> 1) & 7; // current memory config
|
||||
mem++;
|
||||
if (mem > 5) mem = 0; // cycle 4MB/8MB/14MB
|
||||
if (mem > 5) mem = 0;
|
||||
tos_update_sysctrl((tos_system_ctrl() & ~0x0e) | (mem << 1));
|
||||
need_reset = 1;
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
@@ -3002,33 +2998,19 @@ void HandleUI(void)
|
||||
SelectFile("IMG", SCANO_DIR, MENU_ST_SYSTEM_FILE_SELECTED, MENU_ST_SYSTEM1);
|
||||
break;
|
||||
|
||||
/*
|
||||
case 3:
|
||||
if (tos_get_cdc_control_redirect() == CDC_REDIRECT_MIDI)
|
||||
{
|
||||
tos_set_cdc_control_redirect(CDC_REDIRECT_NONE);
|
||||
}
|
||||
else
|
||||
{
|
||||
tos_set_cdc_control_redirect(tos_get_cdc_control_redirect() + 1);
|
||||
}
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
break;
|
||||
*/
|
||||
|
||||
case 5:
|
||||
if (!(tos_system_ctrl() & TOS_CONTROL_STE))
|
||||
{
|
||||
tos_update_sysctrl(tos_system_ctrl() ^ TOS_CONTROL_BLITTER);
|
||||
unsigned long chipset = (tos_system_ctrl() >> 23) + 1;
|
||||
if (chipset == 4) chipset = 0;
|
||||
tos_update_sysctrl((tos_system_ctrl() & ~(TOS_CONTROL_STE | TOS_CONTROL_MSTE)) | (chipset << 23));
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 6:
|
||||
if (!(tos_system_ctrl() & TOS_CONTROL_STE))
|
||||
{
|
||||
unsigned long chipset = (tos_system_ctrl() >> 23) + 1;
|
||||
if (chipset == 4) chipset = 0;
|
||||
tos_update_sysctrl((tos_system_ctrl() & ~(TOS_CONTROL_STE | TOS_CONTROL_MSTE)) | (chipset << 23));
|
||||
tos_update_sysctrl(tos_system_ctrl() ^ TOS_CONTROL_BLITTER);
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
}
|
||||
break;
|
||||
@@ -3040,16 +3022,21 @@ void HandleUI(void)
|
||||
break;
|
||||
|
||||
case 8:
|
||||
tos_update_sysctrl(tos_system_ctrl() ^ TOS_CONTROL_VIDEO_COLOR);
|
||||
tos_update_sysctrl(tos_system_ctrl() ^ TOS_CONTROL_VIDEO_AR);
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
break;
|
||||
|
||||
case 9:
|
||||
tos_update_sysctrl(tos_system_ctrl() ^ TOS_CONTROL_BORDER);
|
||||
tos_update_sysctrl(tos_system_ctrl() ^ TOS_CONTROL_VIDEO_COLOR);
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
break;
|
||||
|
||||
case 10:
|
||||
tos_update_sysctrl(tos_system_ctrl() ^ TOS_CONTROL_BORDER);
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
break;
|
||||
|
||||
case 11:
|
||||
{
|
||||
// next scanline state
|
||||
int scan = ((tos_system_ctrl() >> 20) + 1) & 3;
|
||||
@@ -3058,13 +3045,13 @@ void HandleUI(void)
|
||||
}
|
||||
break;
|
||||
|
||||
case 11:
|
||||
case 12:
|
||||
tos_update_sysctrl(tos_system_ctrl() ^ TOS_CONTROL_STEREO);
|
||||
menustate = MENU_ST_SYSTEM1;
|
||||
break;
|
||||
|
||||
|
||||
case 12:
|
||||
case 13:
|
||||
menustate = MENU_ST_MAIN1;
|
||||
menusub = 3;
|
||||
if (need_reset) tos_reset(1);
|
||||
|
||||
Reference in New Issue
Block a user