mirror of https://github.com/bochs-emu/Bochs
- changed "Boot" options menu to "Memory" Options, this seems like a
better name given what the options actually are. - now runtime menu behaves more like the others: it updates its floppy disk image, etc. - add "ask" as a legal choice for log action - now runtime menu has both ways of editing log options
This commit is contained in:
parent
a11b18da3a
commit
3e4694c5b5
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* gui/control.cc
|
||||
* $Id: control.cc,v 1.14 2001-06-11 21:03:05 bdenney Exp $
|
||||
* $Id: control.cc,v 1.15 2001-06-13 08:14:49 bdenney Exp $
|
||||
*
|
||||
* This is code for a text-mode control panel. Note that this file
|
||||
* does NOT include bochs.h. Instead, it does all of its contact with
|
||||
|
@ -260,10 +260,10 @@ static char *startup_options_prompt =
|
|||
"\n"
|
||||
"Please choose one: [0] ";
|
||||
|
||||
static char *startup_boot_options_prompt =
|
||||
"------------------\n"
|
||||
"Bochs Boot Options\n"
|
||||
"------------------\n"
|
||||
static char *startup_mem_options_prompt =
|
||||
"--------------------\n"
|
||||
"Bochs Memory Options\n"
|
||||
"--------------------\n"
|
||||
"0. Return to previous menu\n"
|
||||
"1. Memory in Megabytes: %d\n"
|
||||
"2. VGA ROM image: %s\n"
|
||||
|
@ -279,7 +279,7 @@ static char *startup_interface_options =
|
|||
"0. Return to previous menu\n"
|
||||
"1. VGA Update Interval: %d\n"
|
||||
"2. Mouse: %s\n"
|
||||
"3. Emulated instructions per second (IPS): %d\n"
|
||||
"3. Emulated instructions per second (IPS): %u\n"
|
||||
"4. Private Colormap: %s\n"
|
||||
"\n"
|
||||
"Please choose one: [0] ";
|
||||
|
@ -329,23 +329,25 @@ static char *runtime_menu_prompt =
|
|||
"---------------------\n"
|
||||
"Bochs Runtime Options\n"
|
||||
"---------------------\n"
|
||||
"1. Floppy disk 0 (example:a.img, 1.44MB, inserted)\n"
|
||||
"2. Floppy disk 1 (example:b.img, 1.44MB, inserted)\n"
|
||||
"3. Emulated instructions per second (IPS)\n"
|
||||
"4. Logging options\n"
|
||||
"5. VGA Update Interval\n"
|
||||
"6. Mouse: enabled\n"
|
||||
"7. Instruction tracing: off (doesn't exist yet)\n"
|
||||
"8. Continue simulation\n"
|
||||
"9. Quit now\n"
|
||||
"1. Floppy disk 0: %s\n"
|
||||
"2. Floppy disk 1: %s\n"
|
||||
"3. CDROM: %s\n"
|
||||
"4. Emulated instructions per second (IPS): %u\n"
|
||||
"5. Log options for all devices\n"
|
||||
"6. Log options for individual devices\n"
|
||||
"7. VGA Update Interval: %d\n"
|
||||
"8. Mouse: %s\n"
|
||||
"9. Instruction tracing: off (doesn't exist yet)\n"
|
||||
"10. Continue simulation\n"
|
||||
"11. Quit now\n"
|
||||
"\n"
|
||||
"Please choose one: [8] ";
|
||||
"Please choose one: [9] ";
|
||||
|
||||
char *menu_prompt_list[BX_CPANEL_N_MENUS] = {
|
||||
ask_about_control_panel,
|
||||
startup_menu_prompt,
|
||||
startup_options_prompt,
|
||||
startup_boot_options_prompt,
|
||||
startup_mem_options_prompt,
|
||||
startup_interface_options,
|
||||
startup_disk_options_prompt,
|
||||
startup_sound_options_prompt,
|
||||
|
@ -394,6 +396,28 @@ void build_disk_options_prompt (char *format, char *buf, int size)
|
|||
snprintf (buf, size, format, buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], buffer[5], buffer[6], conflict? diskd_cdromd_conflict_msg : "");
|
||||
}
|
||||
|
||||
void build_runtime_options_prompt (char *format, char *buf, int size)
|
||||
{
|
||||
bx_floppy_options floppyop;
|
||||
bx_cdrom_options cdromop;
|
||||
char buffer[3][128];
|
||||
for (int i=0; i<2; i++) {
|
||||
SIM->get_floppy_options (i, &floppyop);
|
||||
sprintf (buffer[i], "%s, size=%s, %s", floppyop.path,
|
||||
SIM->get_floppy_type_name (floppyop.type),
|
||||
floppyop.initial_status ? "inserted" : "ejected");
|
||||
if (!floppyop.path[0]) strcpy (buffer[i], "none");
|
||||
}
|
||||
SIM->get_cdrom_options (0, &cdromop);
|
||||
sprintf (buffer[2], "%s, %spresent, %s",
|
||||
cdromop.dev, cdromop.present?"":"not ",
|
||||
cdromop.inserted?"inserted":"ejected");
|
||||
snprintf (buf, size, format, buffer[0], buffer[1], buffer[2],
|
||||
SIM->getips (),
|
||||
SIM->get_vga_update_interval (),
|
||||
SIM->get_mouse_enabled () ? "enabled" : "disabled");
|
||||
}
|
||||
|
||||
// return value of bx_control_panel:
|
||||
// -1: error while reading, like if stdin closed
|
||||
// 0: no error
|
||||
|
@ -441,7 +465,7 @@ int bx_control_panel (int menu)
|
|||
case 1: bx_log_file (); break;
|
||||
case 2: bx_log_options (0); break;
|
||||
case 3: bx_log_options (1); break;
|
||||
case 4: bx_control_panel (BX_CPANEL_START_OPTS_BOOT); break;
|
||||
case 4: bx_control_panel (BX_CPANEL_START_OPTS_MEM); break;
|
||||
case 5: bx_control_panel (BX_CPANEL_START_OPTS_INTERFACE); break;
|
||||
case 6: bx_control_panel (BX_CPANEL_START_OPTS_DISK); break;
|
||||
case 7: bx_control_panel (BX_CPANEL_START_OPTS_SOUND); break;
|
||||
|
@ -450,14 +474,14 @@ int bx_control_panel (int menu)
|
|||
}
|
||||
}
|
||||
break;
|
||||
case BX_CPANEL_START_OPTS_BOOT:
|
||||
case BX_CPANEL_START_OPTS_MEM:
|
||||
{
|
||||
char prompt[CPANEL_PATH_LEN], vgapath[CPANEL_PATH_LEN], rompath[CPANEL_PATH_LEN];
|
||||
if (SIM->get_rom_path (rompath, CPANEL_PATH_LEN) < 0)
|
||||
strcpy (rompath, "none");
|
||||
if (SIM->get_vga_path (vgapath, CPANEL_PATH_LEN) < 0)
|
||||
strcpy (vgapath, "none");
|
||||
sprintf (prompt, startup_boot_options_prompt,
|
||||
sprintf (prompt, startup_mem_options_prompt,
|
||||
SIM->get_mem_size (),
|
||||
vgapath, rompath,
|
||||
SIM->get_rom_address ());
|
||||
|
@ -511,17 +535,21 @@ int bx_control_panel (int menu)
|
|||
}
|
||||
break;
|
||||
case BX_CPANEL_RUNTIME:
|
||||
if (ask_int (runtime_menu_prompt, 1, 9, 8, &choice) < 0) return -1;
|
||||
char prompt[1024];
|
||||
build_runtime_options_prompt (runtime_menu_prompt, prompt, 1024);
|
||||
if (ask_int (prompt, 1, 11, 10, &choice) < 0) return -1;
|
||||
switch (choice) {
|
||||
case 1: bx_edit_floppy (0); break;
|
||||
case 2: bx_edit_floppy (1); break;
|
||||
case 3: bx_ips_change (); break;
|
||||
case 4: bx_log_options (1); break;
|
||||
case 5: bx_vga_update_interval (); break;
|
||||
case 6: bx_mouse_enable (); break;
|
||||
case 7: NOT_IMPLEMENTED (choice); break;
|
||||
case 8: fprintf (stderr, "Continuing simulation\n"); return 0;
|
||||
case 9:
|
||||
case 3: bx_edit_cdrom (); break;
|
||||
case 4: bx_ips_change (); break;
|
||||
case 5: bx_log_options (0); break;
|
||||
case 6: bx_log_options (1); break;
|
||||
case 7: bx_vga_update_interval (); break;
|
||||
case 8: bx_mouse_enable (); break;
|
||||
case 9: NOT_IMPLEMENTED (choice); break;
|
||||
case 10: fprintf (stderr, "Continuing simulation\n"); return 0;
|
||||
case 11:
|
||||
fprintf (stderr, "You chose quit on the control panel.\n");
|
||||
SIM->quit_sim (1);
|
||||
return -1;
|
||||
|
@ -688,7 +716,8 @@ static void bx_print_log_action_table ()
|
|||
}
|
||||
|
||||
static char *log_options_prompt1 = "Enter the ID of the device to edit, or -1 to return: [-1] ";
|
||||
static char *log_level_choices[] = { "ignore", "report", "fatal", "no change" };
|
||||
static char *log_level_choices[] = { "ignore", "report", "ask", "fatal", "no change" };
|
||||
static int log_level_n_choices_normal = 4;
|
||||
|
||||
void bx_log_options (int individual)
|
||||
{
|
||||
|
@ -707,7 +736,7 @@ void bx_log_options (int individual)
|
|||
int default_action = SIM->get_log_action (id, level);
|
||||
sprintf (prompt, "Enter action for %s event: [%s] ", SIM->get_log_level_name (level), SIM->get_action_name(default_action));
|
||||
// don't show the no change choice (choices=3)
|
||||
if (ask_menu (prompt, 3, log_level_choices, default_action, &action)<0)
|
||||
if (ask_menu (prompt, log_level_n_choices_normal, log_level_choices, default_action, &action)<0)
|
||||
return;
|
||||
SIM->set_log_action (id, level, action);
|
||||
}
|
||||
|
@ -720,7 +749,7 @@ void bx_log_options (int individual)
|
|||
int action, default_action = 3; // default to no change
|
||||
sprintf (prompt, "Enter action for %s event on all devices: [no change] ", SIM->get_log_level_name (level));
|
||||
// do show the no change choice (choices=4)
|
||||
if (ask_menu (prompt, 4, log_level_choices, default_action, &action)<0)
|
||||
if (ask_menu (prompt, log_level_n_choices_normal+1, log_level_choices, default_action, &action)<0)
|
||||
return;
|
||||
if (action < 3) {
|
||||
for (int i=0; i<SIM->get_n_log_modules (); i++)
|
||||
|
|
|
@ -2,7 +2,7 @@ enum {
|
|||
BX_CPANEL_START_MAIN,
|
||||
BX_CPANEL_START_MENU,
|
||||
BX_CPANEL_START_OPTS,
|
||||
BX_CPANEL_START_OPTS_BOOT,
|
||||
BX_CPANEL_START_OPTS_MEM,
|
||||
BX_CPANEL_START_OPTS_INTERFACE,
|
||||
BX_CPANEL_START_OPTS_DISK,
|
||||
BX_CPANEL_START_OPTS_SOUND,
|
||||
|
|
Loading…
Reference in New Issue