From b42c7228f0a1bf58858fe43aedf55ebed53a09b4 Mon Sep 17 00:00:00 2001 From: Christophe Bothamy Date: Thu, 22 Aug 2002 22:38:40 +0000 Subject: [PATCH] - moved optrom[1-4] options to an array of 4 elements. Option reading/writing should really be done in a for loop. This was just a test to check if the new ata options could be handled that way. --- bochs/bochs.h | 7 +-- bochs/main.cc | 137 ++++++++++++++++++++++++-------------------------- 2 files changed, 69 insertions(+), 75 deletions(-) diff --git a/bochs/bochs.h b/bochs/bochs.h index 8be566c51..c26ee39d8 100644 --- a/bochs/bochs.h +++ b/bochs/bochs.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: bochs.h,v 1.76 2002-08-17 09:23:42 vruppert Exp $ +// $Id: bochs.h,v 1.77 2002-08-22 22:38:40 cbothamy Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -636,10 +636,7 @@ typedef struct { bx_cdrom_options cdromd; bx_rom_options rom; bx_vgarom_options vgarom; - bx_rom_options optrom1; // Optional rom image (1) - bx_rom_options optrom2; // Optional rom image (2) - bx_rom_options optrom3; // Optional rom image (3) - bx_rom_options optrom4; // Optional rom image (4) + bx_rom_options optrom[4]; // Optional rom images bx_mem_options memory; bx_parport_options par1; // parallel port #1 bx_parport_options par2; // parallel port #2 (not implemented) diff --git a/bochs/main.cc b/bochs/main.cc index 0c9bb92cc..0ae7924ac 100644 --- a/bochs/main.cc +++ b/bochs/main.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: main.cc,v 1.113 2002-08-18 16:59:26 vruppert Exp $ +// $Id: main.cc,v 1.114 2002-08-22 22:38:40 cbothamy Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -80,10 +80,7 @@ bx_options_t bx_options = { { 0, NULL, 0 }, // cdromd { NULL, NULL }, // rom { NULL }, // vgarom - { NULL, NULL }, // optrom1 - { NULL, NULL }, // optrom2 - { NULL, NULL }, // optrom3 - { NULL, NULL }, // optrom4 + {{ NULL, NULL }, { NULL, NULL }, { NULL, NULL }, { NULL, NULL }}, // optrom[4] { NULL }, // memory { 0, NULL }, // parallel port 1 { 0, NULL }, // parallel port 2 @@ -694,57 +691,57 @@ void bx_init_options () bx_options.rom.Oaddress->set_format ("ROM BIOS address: 0x%05x"); bx_options.rom.Oaddress->set_base (16); - bx_options.optrom1.Opath = new bx_param_filename_c (BXP_OPTROM1_PATH, + bx_options.optrom[0].Opath = new bx_param_filename_c (BXP_OPTROM1_PATH, "optional romimage #1", "Pathname of optional ROM image #1 to load", "", BX_PATHNAME_LEN); - bx_options.optrom1.Opath->set_format ("Name of optional ROM image #1 : %s"); - bx_options.optrom1.Oaddress = new bx_param_num_c (BXP_OPTROM1_ADDRESS, + bx_options.optrom[0].Opath->set_format ("Name of optional ROM image #1 : %s"); + bx_options.optrom[0].Oaddress = new bx_param_num_c (BXP_OPTROM1_ADDRESS, "optional romaddr #1", "The address at which the optional ROM image #1 should be loaded", 0, BX_MAX_INT, 0); - bx_options.optrom1.Oaddress->set_format ("optional ROM #1 address: 0x%05x"); - bx_options.optrom1.Oaddress->set_base (16); + bx_options.optrom[0].Oaddress->set_format ("optional ROM #1 address: 0x%05x"); + bx_options.optrom[0].Oaddress->set_base (16); - bx_options.optrom2.Opath = new bx_param_filename_c (BXP_OPTROM2_PATH, + bx_options.optrom[1].Opath = new bx_param_filename_c (BXP_OPTROM2_PATH, "optional romimage #2", "Pathname of optional ROM image #2 to load", "", BX_PATHNAME_LEN); - bx_options.optrom2.Opath->set_format ("Name of optional ROM image #2 : %s"); - bx_options.optrom2.Oaddress = new bx_param_num_c (BXP_OPTROM2_ADDRESS, + bx_options.optrom[1].Opath->set_format ("Name of optional ROM image #2 : %s"); + bx_options.optrom[1].Oaddress = new bx_param_num_c (BXP_OPTROM2_ADDRESS, "optional romaddr #2", "The address at which the optional ROM image #2 should be loaded", 0, BX_MAX_INT, 0); - bx_options.optrom2.Oaddress->set_format ("optional ROM #2 address: 0x%05x"); - bx_options.optrom2.Oaddress->set_base (16); + bx_options.optrom[1].Oaddress->set_format ("optional ROM #2 address: 0x%05x"); + bx_options.optrom[1].Oaddress->set_base (16); - bx_options.optrom3.Opath = new bx_param_filename_c (BXP_OPTROM3_PATH, + bx_options.optrom[2].Opath = new bx_param_filename_c (BXP_OPTROM3_PATH, "optional romimage #3", "Pathname of optional ROM image #3 to load", "", BX_PATHNAME_LEN); - bx_options.optrom3.Opath->set_format ("Name of optional ROM image #3 : %s"); - bx_options.optrom3.Oaddress = new bx_param_num_c (BXP_OPTROM3_ADDRESS, + bx_options.optrom[2].Opath->set_format ("Name of optional ROM image #3 : %s"); + bx_options.optrom[2].Oaddress = new bx_param_num_c (BXP_OPTROM3_ADDRESS, "optional romaddr #3", "The address at which the optional ROM image #3 should be loaded", 0, BX_MAX_INT, 0); - bx_options.optrom3.Oaddress->set_format ("optional ROM #3 address: 0x%05x"); - bx_options.optrom3.Oaddress->set_base (16); + bx_options.optrom[2].Oaddress->set_format ("optional ROM #3 address: 0x%05x"); + bx_options.optrom[2].Oaddress->set_base (16); - bx_options.optrom4.Opath = new bx_param_filename_c (BXP_OPTROM4_PATH, + bx_options.optrom[3].Opath = new bx_param_filename_c (BXP_OPTROM4_PATH, "optional romimage #4", "Pathname of optional ROM image #4 to load", "", BX_PATHNAME_LEN); - bx_options.optrom4.Opath->set_format ("Name of optional ROM image #4 : %s"); - bx_options.optrom4.Oaddress = new bx_param_num_c (BXP_OPTROM4_ADDRESS, + bx_options.optrom[3].Opath->set_format ("Name of optional ROM image #4 : %s"); + bx_options.optrom[3].Oaddress = new bx_param_num_c (BXP_OPTROM4_ADDRESS, "optional romaddr #4", "The address at which the optional ROM image #4 should be loaded", 0, BX_MAX_INT, 0); - bx_options.optrom4.Oaddress->set_format ("optional ROM #4 address: 0x%05x"); - bx_options.optrom4.Oaddress->set_base (16); + bx_options.optrom[3].Oaddress->set_format ("optional ROM #4 address: 0x%05x"); + bx_options.optrom[3].Oaddress->set_base (16); bx_options.vgarom.Opath = new bx_param_filename_c (BXP_VGA_ROM_PATH, "vgaromimage", @@ -756,14 +753,14 @@ void bx_init_options () bx_options.vgarom.Opath, bx_options.rom.Opath, bx_options.rom.Oaddress, - bx_options.optrom1.Opath, - bx_options.optrom1.Oaddress, - bx_options.optrom2.Opath, - bx_options.optrom2.Oaddress, - bx_options.optrom3.Opath, - bx_options.optrom3.Oaddress, - bx_options.optrom4.Opath, - bx_options.optrom4.Oaddress, + bx_options.optrom[0].Opath, + bx_options.optrom[0].Oaddress, + bx_options.optrom[1].Opath, + bx_options.optrom[1].Oaddress, + bx_options.optrom[2].Opath, + bx_options.optrom[2].Oaddress, + bx_options.optrom[3].Opath, + bx_options.optrom[3].Oaddress, NULL }; menu = new bx_list_c (BXP_MENU_MEMORY, "Bochs Memory Options", "memmenu", memory_init_list); @@ -1356,14 +1353,14 @@ bx_init_hardware() BX_MEM(0)->init_memory(bx_options.memory.Osize->get () * 1024*1024); // First load the optional ROM images - if (bx_options.optrom1.Opath->getptr () > 0) - BX_MEM(0)->load_ROM(bx_options.optrom1.Opath->getptr (), bx_options.optrom1.Oaddress->get ()); - if (bx_options.optrom2.Opath->getptr () > 0) - BX_MEM(0)->load_ROM(bx_options.optrom2.Opath->getptr (), bx_options.optrom2.Oaddress->get ()); - if (bx_options.optrom3.Opath->getptr () > 0) - BX_MEM(0)->load_ROM(bx_options.optrom3.Opath->getptr (), bx_options.optrom3.Oaddress->get ()); - if (bx_options.optrom4.Opath->getptr () > 0) - BX_MEM(0)->load_ROM(bx_options.optrom4.Opath->getptr (), bx_options.optrom4.Oaddress->get ()); + if (bx_options.optrom[0].Opath->getptr () > 0) + BX_MEM(0)->load_ROM(bx_options.optrom[0].Opath->getptr (), bx_options.optrom[0].Oaddress->get ()); + if (bx_options.optrom[1].Opath->getptr () > 0) + BX_MEM(0)->load_ROM(bx_options.optrom[1].Opath->getptr (), bx_options.optrom[1].Oaddress->get ()); + if (bx_options.optrom[2].Opath->getptr () > 0) + BX_MEM(0)->load_ROM(bx_options.optrom[2].Opath->getptr (), bx_options.optrom[2].Oaddress->get ()); + if (bx_options.optrom[3].Opath->getptr () > 0) + BX_MEM(0)->load_ROM(bx_options.optrom[3].Opath->getptr (), bx_options.optrom[3].Oaddress->get ()); // Then Load the BIOS and VGABIOS BX_MEM(0)->load_ROM(bx_options.rom.Opath->getptr (), bx_options.rom.Oaddress->get ()); @@ -1380,15 +1377,15 @@ bx_init_hardware() bx_mem_array[0]->init_memory(bx_options.memory.Osize->get () * 1024*1024); // First load the optional ROM images - if (bx_options.optrom1.Opath->getptr () > 0) - bx_mem_array[0]->load_ROM(bx_options.optrom1.Opath->getptr (), bx_options.optrom1.Oaddress->get ()); - if (bx_options.optrom2.Opath->getptr () > 0) - bx_mem_array[0]->load_ROM(bx_options.optrom2.Opath->getptr (), bx_options.optrom2.Oaddress->get ()); - if (bx_options.optrom3.Opath->getptr () > 0) - BX_MEM(0)->load_ROM(bx_options.optrom3.Opath->getptr (), bx_options.optrom3.Oaddress->get ()); - bx_mem_array[0]->load_ROM(bx_options.optrom3.Opath->getptr (), bx_options.optrom3.Oaddress->get ()); - if (bx_options.optrom4.Opath->getptr () > 0) - bx_mem_array[0]->load_ROM(bx_options.optrom4.Opath->getptr (), bx_options.optrom4.Oaddress->get ()); + if (bx_options.optrom[0].Opath->getptr () > 0) + bx_mem_array[0]->load_ROM(bx_options.optrom[0].Opath->getptr (), bx_options.optrom[0].Oaddress->get ()); + if (bx_options.optrom[1].Opath->getptr () > 0) + bx_mem_array[0]->load_ROM(bx_options.optrom[1].Opath->getptr (), bx_options.optrom[1].Oaddress->get ()); + if (bx_options.optrom[2].Opath->getptr () > 0) + BX_MEM(0)->load_ROM(bx_options.optrom[2].Opath->getptr (), bx_options.optrom[2].Oaddress->get ()); + bx_mem_array[0]->load_ROM(bx_options.optrom[2].Opath->getptr (), bx_options.optrom[2].Oaddress->get ()); + if (bx_options.optrom[3].Opath->getptr () > 0) + bx_mem_array[0]->load_ROM(bx_options.optrom[3].Opath->getptr (), bx_options.optrom[3].Oaddress->get ()); // Then Load the BIOS and VGABIOS bx_mem_array[0]->load_ROM(bx_options.rom.Opath->getptr (), bx_options.rom.Oaddress->get ()); @@ -1983,11 +1980,11 @@ parse_line_formatted(char *context, int num_params, char *params[]) if (strncmp(params[2], "address=", 8)) { BX_PANIC(("%s: optromimage2 directive malformed.", context)); } - bx_options.optrom1.Opath->set (¶ms[1][5]); + bx_options.optrom[0].Opath->set (¶ms[1][5]); if ( (params[2][8] == '0') && (params[2][9] == 'x') ) - bx_options.optrom1.Oaddress->set (strtoul (¶ms[2][8], NULL, 16)); + bx_options.optrom[0].Oaddress->set (strtoul (¶ms[2][8], NULL, 16)); else - bx_options.optrom1.Oaddress->set (strtoul (¶ms[2][8], NULL, 10)); + bx_options.optrom[0].Oaddress->set (strtoul (¶ms[2][8], NULL, 10)); } else if (!strcmp(params[0], "optromimage2")) { if (num_params != 3) { @@ -1999,11 +1996,11 @@ parse_line_formatted(char *context, int num_params, char *params[]) if (strncmp(params[2], "address=", 8)) { BX_PANIC(("%s: optromimage2 directive malformed.", context)); } - bx_options.optrom2.Opath->set (¶ms[1][5]); + bx_options.optrom[1].Opath->set (¶ms[1][5]); if ( (params[2][8] == '0') && (params[2][9] == 'x') ) - bx_options.optrom2.Oaddress->set (strtoul (¶ms[2][8], NULL, 16)); + bx_options.optrom[1].Oaddress->set (strtoul (¶ms[2][8], NULL, 16)); else - bx_options.optrom2.Oaddress->set (strtoul (¶ms[2][8], NULL, 10)); + bx_options.optrom[1].Oaddress->set (strtoul (¶ms[2][8], NULL, 10)); } else if (!strcmp(params[0], "optromimage3")) { if (num_params != 3) { @@ -2015,11 +2012,11 @@ parse_line_formatted(char *context, int num_params, char *params[]) if (strncmp(params[2], "address=", 8)) { BX_PANIC(("%s: optromimage2 directive malformed.", context)); } - bx_options.optrom3.Opath->set (¶ms[1][5]); + bx_options.optrom[2].Opath->set (¶ms[1][5]); if ( (params[2][8] == '0') && (params[2][9] == 'x') ) - bx_options.optrom3.Oaddress->set (strtoul (¶ms[2][8], NULL, 16)); + bx_options.optrom[2].Oaddress->set (strtoul (¶ms[2][8], NULL, 16)); else - bx_options.optrom3.Oaddress->set (strtoul (¶ms[2][8], NULL, 10)); + bx_options.optrom[2].Oaddress->set (strtoul (¶ms[2][8], NULL, 10)); } else if (!strcmp(params[0], "optromimage4")) { if (num_params != 3) { @@ -2031,11 +2028,11 @@ parse_line_formatted(char *context, int num_params, char *params[]) if (strncmp(params[2], "address=", 8)) { BX_PANIC(("%s: optromimage2 directive malformed.", context)); } - bx_options.optrom4.Opath->set (¶ms[1][5]); + bx_options.optrom[3].Opath->set (¶ms[1][5]); if ( (params[2][8] == '0') && (params[2][9] == 'x') ) - bx_options.optrom4.Oaddress->set (strtoul (¶ms[2][8], NULL, 16)); + bx_options.optrom[3].Oaddress->set (strtoul (¶ms[2][8], NULL, 16)); else - bx_options.optrom4.Oaddress->set (strtoul (¶ms[2][8], NULL, 10)); + bx_options.optrom[3].Oaddress->set (strtoul (¶ms[2][8], NULL, 10)); } else if (!strcmp(params[0], "vgaromimage")) { if (num_params != 2) { @@ -2612,14 +2609,14 @@ bx_write_configuration (char *rc, int overwrite) fprintf (fp, "vgaromimage: %s\n", bx_options.vgarom.Opath->getptr ()); else fprintf (fp, "# no vgaromimage\n"); - if (strlen (bx_options.optrom1.Opath->getptr ()) > 0) - fprintf (fp, "optromimage1: file=%s, address=0x%05x\n", bx_options.optrom1.Opath->getptr(), (unsigned int)bx_options.optrom1.Oaddress->get ()); - if (strlen (bx_options.optrom2.Opath->getptr ()) > 0) - fprintf (fp, "optromimage2: file=%s, address=0x%05x\n", bx_options.optrom2.Opath->getptr(), (unsigned int)bx_options.optrom2.Oaddress->get ()); - if (strlen (bx_options.optrom3.Opath->getptr ()) > 0) - fprintf (fp, "optromimage3: file=%s, address=0x%05x\n", bx_options.optrom3.Opath->getptr(), (unsigned int)bx_options.optrom3.Oaddress->get ()); - if (strlen (bx_options.optrom4.Opath->getptr ()) > 0) - fprintf (fp, "optromimage4: file=%s, address=0x%05x\n", bx_options.optrom4.Opath->getptr(), (unsigned int)bx_options.optrom4.Oaddress->get ()); + if (strlen (bx_options.optrom[0].Opath->getptr ()) > 0) + fprintf (fp, "optromimage1: file=%s, address=0x%05x\n", bx_options.optrom[0].Opath->getptr(), (unsigned int)bx_options.optrom[0].Oaddress->get ()); + if (strlen (bx_options.optrom[1].Opath->getptr ()) > 0) + fprintf (fp, "optromimage2: file=%s, address=0x%05x\n", bx_options.optrom[1].Opath->getptr(), (unsigned int)bx_options.optrom[1].Oaddress->get ()); + if (strlen (bx_options.optrom[2].Opath->getptr ()) > 0) + fprintf (fp, "optromimage3: file=%s, address=0x%05x\n", bx_options.optrom[2].Opath->getptr(), (unsigned int)bx_options.optrom[2].Oaddress->get ()); + if (strlen (bx_options.optrom[3].Opath->getptr ()) > 0) + fprintf (fp, "optromimage4: file=%s, address=0x%05x\n", bx_options.optrom[3].Opath->getptr(), (unsigned int)bx_options.optrom[3].Oaddress->get ()); fprintf (fp, "megs: %d\n", bx_options.memory.Osize->get ()); bx_write_parport_options (fp, &bx_options.par1, 1); //bx_write_parport_options (fp, &bx_options.par2);