diff --git a/bochs/bochs.h b/bochs/bochs.h index f7c0e8624..def3a7596 100644 --- a/bochs/bochs.h +++ b/bochs/bochs.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: bochs.h,v 1.124 2003-08-19 00:10:38 cbothamy Exp $ +// $Id: bochs.h,v 1.125 2003-08-24 10:08:49 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -591,12 +591,8 @@ typedef struct { // These options are used for a special hack to load a // 32bit OS directly into memory, so it can be run without // any of the 16bit real mode or BIOS assistance. This -// is for the development of freemware, so we don't have +// is for the development of plex86, so we don't have // to implement real mode up front. -#define Load32bitOSNone 0 -#define Load32bitOSLinux 1 -#define Load32bitOSNullKernel 2 // being developed for freemware -#define Load32bitOSLast 2 bx_param_num_c *OwhichOS; bx_param_string_c *Opath; bx_param_string_c *Oiolog; diff --git a/bochs/gui/siminterface.h b/bochs/gui/siminterface.h index 94f701d33..3bded11aa 100644 --- a/bochs/gui/siminterface.h +++ b/bochs/gui/siminterface.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: siminterface.h,v 1.106 2003-08-23 15:28:06 vruppert Exp $ +// $Id: siminterface.h,v 1.107 2003-08-24 10:08:49 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Before I can describe what this file is for, I have to make the @@ -524,6 +524,11 @@ typedef enum { #define BX_BOOT_DISKC 1 #define BX_BOOT_CDROM 2 +// loader hack +#define Load32bitOSNone 0 +#define Load32bitOSLinux 1 +#define Load32bitOSNullKernel 2 // being developed for plex86 +#define Load32bitOSLast 2 /////////////////////////////////////////////////////////////////// // event structures for communication between simulator and CI diff --git a/bochs/gui/wxdialog.cc b/bochs/gui/wxdialog.cc index 6df7a2a4a..880878058 100644 --- a/bochs/gui/wxdialog.cc +++ b/bochs/gui/wxdialog.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////// -// $Id: wxdialog.cc,v 1.56 2003-08-23 17:53:27 vruppert Exp $ +// $Id: wxdialog.cc,v 1.57 2003-08-24 10:08:49 vruppert Exp $ ///////////////////////////////////////////////////////////////// // Define BX_PLUGGABLE in files that can be compiled into plugins. For @@ -1789,6 +1789,7 @@ void ParamDialog::EnumChanged (ParamStruct *pstr) if (type == BX_ATA_DEVICE_DISK) { // enable cylinders, heads, spt wxLogDebug ("enabling disk parameters"); + EnableParam (BXP_ATA0_MASTER_MODE+delta, 1); EnableParam (BXP_ATA0_MASTER_CYLINDERS+delta, 1); EnableParam (BXP_ATA0_MASTER_HEADS+delta, 1); EnableParam (BXP_ATA0_MASTER_SPT+delta, 1); @@ -1796,12 +1797,27 @@ void ParamDialog::EnumChanged (ParamStruct *pstr) } else { // enable inserted wxLogDebug ("enabling cdrom parameters"); + EnableParam (BXP_ATA0_MASTER_MODE+delta, 0); EnableParam (BXP_ATA0_MASTER_CYLINDERS+delta, 0); EnableParam (BXP_ATA0_MASTER_HEADS+delta, 0); EnableParam (BXP_ATA0_MASTER_SPT+delta, 0); EnableParam (BXP_ATA0_MASTER_STATUS+delta, 1); } } + break; + case BXP_LOAD32BITOS_WHICH: { + int os = pstr->u.choice->GetSelection (); + if (os != Load32bitOSNone) { + EnableParam (BXP_LOAD32BITOS_PATH, 1); + EnableParam (BXP_LOAD32BITOS_IOLOG, 1); + EnableParam (BXP_LOAD32BITOS_INITRD, 1); + } else { + EnableParam (BXP_LOAD32BITOS_PATH, 0); + EnableParam (BXP_LOAD32BITOS_IOLOG, 0); + EnableParam (BXP_LOAD32BITOS_INITRD, 0); + } + } + } } diff --git a/bochs/main.cc b/bochs/main.cc index 140d51163..d8f060abd 100644 --- a/bochs/main.cc +++ b/bochs/main.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: main.cc,v 1.239 2003-08-23 15:28:05 vruppert Exp $ +// $Id: main.cc,v 1.240 2003-08-24 10:08:49 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -139,7 +139,7 @@ bx_param_handler (bx_param_c *param, int set, Bit64s val) break; case BXP_LOAD32BITOS_WHICH: if (set) { - int enable = (val != 0); + int enable = (val != Load32bitOSNone); SIM->get_param (BXP_LOAD32BITOS_PATH)->set_enabled (enable); SIM->get_param (BXP_LOAD32BITOS_IOLOG)->set_enabled (enable); SIM->get_param (BXP_LOAD32BITOS_INITRD)->set_enabled (enable); @@ -1210,6 +1210,9 @@ void bx_init_options () }; menu = new bx_list_c (BXP_NE2K, "NE2K Configuration", "", ne2k_init_list); menu->get_options ()->set (menu->SHOW_PARENT); + bx_param_c **ne2k_dependent_list = &ne2k_init_list[1]; + bx_options.ne2k.Opresent->set_dependent_list ( + new bx_list_c (BXP_NULL, "", "", ne2k_dependent_list)); bx_options.ne2k.Opresent->set_handler (bx_param_handler); bx_options.ne2k.Opresent->set (0);