From dad8504a12d732f19758015db57c10f8c61a9dc3 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Feb 15 2006 21:20:29 +0000 Subject: - New upstream version 2.2.6 - Remove --enable-pae as that requires a CPU level of 6 now - Remove a few configure switches which are identical to the upstream defaults and thus don't do anything - Add --enable-clgd54xx - Fix compile with wxGTK-2.6 and unconditionalize wxGTK build (WIP) --- diff --git a/.cvsignore b/.cvsignore index bd0a7e2..d05acf4 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ +bochs-2.2.6.tar.gz dlxlinux4.tar.gz -bochs-2.2.1.tar.gz diff --git a/bochs-wx26.patch b/bochs-wx26.patch new file mode 100644 index 0000000..411e585 --- /dev/null +++ b/bochs-wx26.patch @@ -0,0 +1,1560 @@ +diff -ur bochs-2.2.6.orig/gui/wx.cc bochs-2.2.6/gui/wx.cc +--- bochs-2.2.6.orig/gui/wx.cc 2006-02-15 21:39:05.000000000 +0100 ++++ bochs-2.2.6/gui/wx.cc 2006-01-23 19:34:47.000000000 +0100 +@@ -189,12 +189,12 @@ + if (fromToolbar && first_enable && en) { + // only show this help if you click on the toolbar. If they already + // know the shortcut, don't annoy them with the message. +- wxString msg = wxT( ++ wxString msg = + "You have enabled the mouse in Bochs, so now your mouse actions will\n" + "be sent into the simulator. The usual mouse cursor will be trapped\n" + "inside the Bochs window until you press a CTRL key + the middle button\n" +- "to turn mouse capture off."); +- wxMessageBox(msg, wxT("Mouse Capture Enabled"), wxOK | wxICON_INFORMATION); ++ "to turn mouse capture off."; ++ wxMessageBox(msg, "Mouse Capture Enabled", wxOK | wxICON_INFORMATION); + first_enable = false; + } + enable->set (en); +@@ -1050,10 +1050,10 @@ + strcpy(status_text+1, statusitem_text[i]); + theFrame->SetStatusText(status_text, i+1); + #else +- theFrame->SetStatusText(wxString(statusitem_text[i], wxConvUTF8), i+1); ++ theFrame->SetStatusText(statusitem_text[i], i+1); + #endif + } else { +- theFrame->SetStatusText(wxT(""), i+1); ++ theFrame->SetStatusText("", i+1); + } + } + } else if ((unsigned)element < statusitem_count) { +@@ -1063,11 +1063,10 @@ + strcpy(status_text+1, statusitem_text[element]); + theFrame->SetStatusText(status_text, element+1); + #else +- theFrame->SetStatusText(wxString(statusitem_text[element], wxConvUTF8), +- element+1); ++ theFrame->SetStatusText(statusitem_text[element], element+1); + #endif + } else { +- theFrame->SetStatusText(wxT(""), element+1); ++ theFrame->SetStatusText("", element+1); + } + } + } +@@ -1621,7 +1620,7 @@ + wxMutexGuiEnter (); + int ret = 0; + if (wxTheClipboard->Open ()) { +- wxString string (text_snapshot, wxConvUTF8, len); ++ wxString string (text_snapshot, len); + wxTheClipboard->SetData (new wxTextDataObject (string)); + wxTheClipboard->Close (); + ret = 1; +diff -ur bochs-2.2.6.orig/gui/wxdialog.cc bochs-2.2.6/gui/wxdialog.cc +--- bochs-2.2.6.orig/gui/wxdialog.cc 2006-02-15 22:26:03.000000000 +0100 ++++ bochs-2.2.6/gui/wxdialog.cc 2005-11-26 10:22:58.000000000 +0100 +@@ -80,12 +80,12 @@ + { + for (int i=0; iGetFont (); + font.SetWeight (wxBOLD); + font.SetPointSize (2 + font.GetPointSize ()); + context->SetFont (font); +- message = new wxStaticText (this, -1, wxT("")); ++ message = new wxStaticText (this, -1, ""); + message->SetFont (font); + dontAsk = new wxCheckBox (this, -1, LOG_MSG_DONT_ASK_STRING); + btnSizer = new wxBoxSizer(wxHORIZONTAL); +@@ -120,12 +120,12 @@ + btnSizer->Add (btn, 1, wxALL, 5); + } + wxSize ms = message->GetSize (); +- wxLogMessage (wxT("message size is %d,%d"), ms.GetWidth(), ms.GetHeight ()); ++ wxLogMessage ("message size is %d,%d", ms.GetWidth(), ms.GetHeight ()); + SetAutoLayout(TRUE); + SetSizer(vertSizer); + vertSizer->Fit (this); + wxSize size = vertSizer->GetMinSize (); +- wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ()); ++ wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ()); + int margin = 10; + SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin); + Center (); +@@ -147,7 +147,7 @@ + default: + return; // without EndModal + } +- wxLogMessage (wxT("you pressed button id=%d, return value=%d"), id, ret); ++ wxLogMessage ("you pressed button id=%d, return value=%d", id, ret); + EndModal (ret); + } + +@@ -191,7 +191,7 @@ + FloppyConfigDialog::FloppyConfigDialog( + wxWindow* parent, + wxWindowID id) +- : wxDialog (parent, id, wxT(""), wxDefaultPosition, wxDefaultSize, ++ : wxDialog (parent, id, "", wxDefaultPosition, wxDefaultSize, + wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) + { + validate = NULL; +@@ -216,19 +216,19 @@ + capacitySizer->Add (captext, 0, wxALL, 5); + capacitySizer->Add (capacity, 0, wxALL|wxADJUST_MINSIZE, 5); + // contents of buttonSizer +- btn = new wxButton (this, wxID_HELP, wxT("Help")); ++ btn = new wxButton (this, wxID_HELP, "Help"); + buttonSizer->Add (btn, 0, wxALL, 5); + // use wxID_CANCEL because pressing ESC produces this same code +- btn = new wxButton (this, wxID_CANCEL, wxT("Cancel")); ++ btn = new wxButton (this, wxID_CANCEL, "Cancel"); + buttonSizer->Add (btn, 0, wxALL, 5); +- CreateBtn = new wxButton (this, ID_Create, wxT("Create Image")); ++ CreateBtn = new wxButton (this, ID_Create, "Create Image"); + buttonSizer->Add (CreateBtn, 0, wxALL, 5); +- btn = new wxButton (this, wxID_OK, wxT("Ok")); ++ btn = new wxButton (this, wxID_OK, "Ok"); + buttonSizer->Add (btn, 0, wxALL, 5); + // create filename and diskImageRadioBtn so that we can tweak them before + // Init comes. However don't add it to any sizer yet because it needs to go + // in after the last radio button. +- filename = new wxTextCtrl (this, ID_FilenameText, wxT(""), wxDefaultPosition, longTextSize); ++ filename = new wxTextCtrl (this, ID_FilenameText, "", wxDefaultPosition, longTextSize); + diskImageRadioBtn = new wxRadioButton (this, ID_Filename, FLOPPY_CONFIG_DISKIMG); + + // the radioSizer contents will be added by successive calls to +@@ -240,7 +240,7 @@ + const wxString& filename) + { + if (n_rbtns >= FLOPPY_MAX_RBTNS) { +- wxLogError (wxT("AddRadio failed: increase FLOPPY_MAX_RBTNS in wxdialog.h")); ++ wxLogError ("AddRadio failed: increase FLOPPY_MAX_RBTNS in wxdialog.h"); + return; + } + rbtn[n_rbtns] = new wxRadioButton (this, -1, description); +@@ -282,7 +282,7 @@ + SetSizer(vertSizer); + vertSizer->Fit (this); + wxSize size = vertSizer->GetMinSize (); +- wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ()); ++ wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ()); + int margin = 5; + SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin); + Center (); +@@ -298,7 +298,7 @@ + if (diskImageRadioBtn->GetValue ()) { + return i; + } +- wxLogError (wxT("GetRadio() found nothing selected")); ++ wxLogError ("GetRadio() found nothing selected"); + return 0; + } + +@@ -352,7 +352,7 @@ + break; + case ID_Browse: + if (BrowseTextCtrl(filename)) { +- capacity->SetSelection(capacity->FindString(wxT("auto"))); ++ capacity->SetSelection(capacity->FindString("auto")); + } + break; + case ID_Capacity: +@@ -368,10 +368,10 @@ + strncpy (name, filename->GetValue ().c_str (), sizeof(name)); + if (CreateImage (0, floppy_type_n_sectors[cap], name)) { + wxString msg; +- msg.Printf (wxT("Created a %s disk image called '%s'."), ++ msg.Printf ("Created a %s disk image called '%s'.", + capacity->GetString (cap).c_str (), + filename->GetValue ().c_str ()); +- wxMessageBox(msg, wxT("Image Created"), wxOK | wxICON_INFORMATION, this); ++ wxMessageBox(msg, "Image Created", wxOK | wxICON_INFORMATION, this); + } + } + break; +@@ -429,7 +429,7 @@ + LogOptionsDialog::LogOptionsDialog( + wxWindow* parent, + wxWindowID id) +- : wxDialog (parent, id, wxT(""), wxDefaultPosition, wxDefaultSize, ++ : wxDialog (parent, id, "", wxDefaultPosition, wxDefaultSize, + wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) + { + static char *names[] = LOG_OPTS_TYPE_NAMES; +@@ -452,7 +452,7 @@ + // logfileSizer contents + text = new wxStaticText (this, -1, LOG_OPTS_LOGFILE); + logfileSizer->Add (text); +- logfile = new wxTextCtrl (this, -1, wxT(""), wxDefaultPosition, longTextSize); ++ logfile = new wxTextCtrl (this, -1, "", wxDefaultPosition, longTextSize); + logfileSizer->Add (logfile); + wxButton *btn = new wxButton (this, ID_Browse, BTNLABEL_BROWSE); + logfileSizer->Add (btn, 0, wxALL, 5); +@@ -460,7 +460,7 @@ + // debuggerlogfileSizer contents + text = new wxStaticText (this, -1, LOG_OPTS_DEBUGGER_LOGFILE); + debuggerlogfileSizer->Add (text); +- debuggerlogfile = new wxTextCtrl (this, -1, wxT(""), wxDefaultPosition, longTextSize); ++ debuggerlogfile = new wxTextCtrl (this, -1, "", wxDefaultPosition, longTextSize); + debuggerlogfileSizer->Add (debuggerlogfile); + btn = new wxButton (this, ID_Browse2, BTNLABEL_BROWSE); + debuggerlogfileSizer->Add (btn, 0, wxALL, 5); +@@ -490,7 +490,7 @@ + SetSizer(vertSizer); + vertSizer->Fit (this); + wxSize size = vertSizer->GetMinSize (); +- wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ()); ++ wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ()); + int margin = 5; + SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin); + Center (); +@@ -511,7 +511,7 @@ + } + // this can happen if one of the choices that is excluded by + // LOG_OPTS_EXCLUDE() is used, for example. +- wxLogDebug (wxT("SetAction type=%d a=%d not found"), evtype, a); ++ wxLogDebug ("SetAction type=%d a=%d not found", evtype, a); + } + + int LogOptionsDialog::GetAction (int evtype) { +@@ -524,7 +524,7 @@ + void LogOptionsDialog::OnEvent(wxCommandEvent& event) + { + int id = event.GetId (); +- wxLogMessage (wxT("you pressed button id=%d"), id); ++ wxLogMessage ("you pressed button id=%d", id); + switch (id) { + case ID_Browse: + BrowseTextCtrl (logfile); +@@ -586,7 +586,7 @@ + AdvancedLogOptionsDialog::AdvancedLogOptionsDialog( + wxWindow* parent, + wxWindowID id) +- : wxDialog (parent, id, wxT(""), wxDefaultPosition, wxDefaultSize, ++ : wxDialog (parent, id, "", wxDefaultPosition, wxDefaultSize, + wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) + { + //static int integers[LOG_OPTS_N_CHOICES_NORMAL] = {0, 1, 2, 3}; +@@ -608,7 +608,7 @@ + // logfileSizer contents + text = new wxStaticText (this, -1, ADVLOG_OPTS_LOGFILE); + logfileSizer->Add (text); +- logfile = new wxTextCtrl (this, -1, wxT(""), wxDefaultPosition, longTextSize); ++ logfile = new wxTextCtrl (this, -1, "", wxDefaultPosition, longTextSize); + logfileSizer->Add (logfile); + wxButton *btn = new wxButton (this, ID_Browse, BTNLABEL_BROWSE); + logfileSizer->Add (btn, 0, wxALL, 5); +@@ -619,7 +619,7 @@ + gridSizer = new wxGridSizer (ADVLOG_OPTS_N_TYPES + 1); + // add title row + int typemax = ADVLOG_OPTS_N_TYPES; +- text = new wxStaticText (scrollPanel, -1, wxT("Device")); ++ text = new wxStaticText (scrollPanel, -1, "Device"); + gridSizer->Add (text, 0, wxALIGN_CENTER); + int type; + for (type=0; type < typemax; type++) { +@@ -689,7 +689,7 @@ + SetSizer(vertSizer); + vertSizer->Fit (this); + wxSize size = vertSizer->GetMinSize (); +- wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ()); ++ wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ()); + int margin = 5; + SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin); + Center (); +@@ -739,7 +739,7 @@ + } + // this can happen if one of the choices that is excluded by + // ADVLOG_OPTS_EXCLUDE() is used, for example. +- wxLogDebug (wxT("warning: SetAction type=%d act=%d not found"), evtype, act); ++ wxLogDebug ("warning: SetAction type=%d act=%d not found", evtype, act); + } + + int AdvancedLogOptionsDialog::GetAction (int dev, int evtype) { +@@ -752,7 +752,7 @@ + void AdvancedLogOptionsDialog::OnEvent(wxCommandEvent& event) + { + int id = event.GetId (); +- wxLogMessage (wxT("you pressed button id=%d"), id); ++ wxLogMessage ("you pressed button id=%d", id); + switch (id) { + case ID_Browse: + BrowseTextCtrl (logfile); +@@ -821,14 +821,14 @@ + DebugLogDialog::DebugLogDialog( + wxWindow* parent, + wxWindowID id) +- : wxDialog (parent, id, wxT(""), wxDefaultPosition, wxDefaultSize, ++ : wxDialog (parent, id, "", wxDefaultPosition, wxDefaultSize, + wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) + { + lengthMax = DEBUG_LOG_DEFAULT_LENGTH_MAX; + lengthTolerance = DEBUG_LOG_DEFAULT_TOLERANCE; + SetTitle (DEBUG_LOG_TITLE); + mainSizer = new wxBoxSizer (wxVERTICAL); +- log = new wxTextCtrl (this, -1, wxT(""), ++ log = new wxTextCtrl (this, -1, "", + wxDefaultPosition, wxSize(400, 300), + wxTE_MULTILINE | wxTE_RICH | wxTE_READONLY); + mainSizer->Add (log, 1, wxALL|wxGROW, 10); +@@ -840,7 +840,7 @@ + mainSizer->Add (buttonSizer, 0, wxALIGN_RIGHT); + + // commandSizer contents +- command = new wxTextCtrl (this, ID_DebugCommand, wxT(""), ++ command = new wxTextCtrl (this, ID_DebugCommand, "", + wxDefaultPosition, wxDefaultSize, + wxTE_PROCESS_ENTER); + commandSizer->Add (command, 1, wxGROW); +@@ -860,7 +860,7 @@ + SetSizer(mainSizer); + mainSizer->Fit (this); + wxSize size = mainSizer->GetMinSize (); +- wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ()); ++ wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ()); + int margin = 5; + SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin); + Center (); +@@ -939,7 +939,7 @@ + + void DebugLogDialog::OnKeyEvent(wxKeyEvent& event) + { +- wxLogDebug (wxT("key event")); ++ wxLogDebug ("key event"); + } + #endif + +@@ -958,7 +958,7 @@ + ParamDialog::ParamDialog( + wxWindow* parent, + wxWindowID id) +- : wxDialog (parent, id, wxT(""), wxDefaultPosition, wxDefaultSize, ++ : wxDialog (parent, id, "", wxDefaultPosition, wxDefaultSize, + wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) + { + idHash = new wxHashTable (wxKEY_INTEGER); +@@ -1016,7 +1016,7 @@ + SetSizer(mainSizer); + mainSizer->Fit (this); + wxSize size = mainSizer->GetMinSize (); +- wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ()); ++ wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ()); + int margin = 5; + SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin); + Center (); +@@ -1071,7 +1071,7 @@ + wxASSERT (context->vertSizer != NULL); + if (param_generic == NULL) + return; // param not registered, probably this option was not compiled in +- wxLogDebug (wxT("AddParam for param '%s'"), param_generic->get_name ()); ++ wxLogDebug ("AddParam for param '%s'", param_generic->get_name ()); + if (context->gridSizer == NULL) { + // create a gridSizer if none exists yet. add it to default vertSizer. + context->gridSizer = new wxFlexGridSizer (3); +@@ -1095,7 +1095,7 @@ + case BXT_PARAM_BOOL: { + bx_param_bool_c *param = (bx_param_bool_c*) param_generic; + if (!plain) ADD_LABEL (prompt); +- wxCheckBox *ckbx = new wxCheckBox (context->parent, pstr->id, wxT("")); ++ wxCheckBox *ckbx = new wxCheckBox (context->parent, pstr->id, ""); + ckbx->SetValue (param->get ()); + if (description) ckbx->SetToolTip(description); + sizer->Add (ckbx, 0, wxALL, 2); +@@ -1118,7 +1118,7 @@ + if (!plain) sizer->Add (1, 1); // spacer + pstr->u.spin = spinctrl; + } else { +- wxTextCtrl *textctrl = new wxTextCtrl (context->parent, pstr->id, wxT(""), wxDefaultPosition, normalTextSize); ++ wxTextCtrl *textctrl = new wxTextCtrl (context->parent, pstr->id, "", wxDefaultPosition, normalTextSize); + const char *format = param->get_format (); + if (!format) + format = strdup(param->get_base () == 16 ? "0x%X" : "%d"); +@@ -1154,7 +1154,7 @@ + bx_param_string_c *param = (bx_param_string_c*) param_generic; + if (!plain) ADD_LABEL (prompt); + bool isFilename = param->get_options ()->get () & param->IS_FILENAME; +- wxTextCtrl *txtctrl = new wxTextCtrl (context->parent, pstr->id, wxT(""), wxDefaultPosition, isFilename? longTextSize : normalTextSize); ++ wxTextCtrl *txtctrl = new wxTextCtrl (context->parent, pstr->id, "", wxDefaultPosition, isFilename? longTextSize : normalTextSize); + if (description) txtctrl->SetToolTip(description); + if (param->get_options()->get () & param->RAW_BYTES) { + char *value = param->getptr (); +@@ -1164,7 +1164,7 @@ + sep_string[1] = 0; + for (int i=0; iget_maxsize (); i++) { + wxString eachbyte; +- eachbyte.Printf (wxT("%s%02x"), (i>0)?sep_string : "", (unsigned int)0xff&value[i]); ++ eachbyte.Printf ("%s%02x", (i>0)?sep_string : "", (unsigned int)0xff&value[i]); + buffer += eachbyte; + } + txtctrl->SetValue (buffer); +@@ -1240,7 +1240,7 @@ + if (list->get_options()->get () & bx_list_c::USE_BOX_TITLE) { + boxTitle = prompt; + } else { +- boxTitle = wxT(""); ++ boxTitle = ""; + } + wxStaticBox *box = new wxStaticBox (context->parent, -1, boxTitle); + wxStaticBoxSizer *boxsz = new wxStaticBoxSizer (box, wxVERTICAL); +@@ -1267,7 +1267,7 @@ + break; + } + default: +- wxLogError (wxT("ParamDialog::AddParam called with unsupported param type id=%d"), (int)type); ++ wxLogError ("ParamDialog::AddParam called with unsupported param type id=%d", (int)type); + } + } + +@@ -1278,7 +1278,7 @@ + wxNode *node; + while ((node = idHash->Next ()) != NULL) { + ParamStruct *pstr = (ParamStruct*) node->GetData (); +- wxLogDebug (wxT("commit changes for param %s"), pstr->param->get_name ()); ++ wxLogDebug ("commit changes for param %s", pstr->param->get_name ()); + int type = pstr->param->get_type (); + switch (type) { + case BXT_PARAM_BOOL: { +@@ -1292,14 +1292,14 @@ + bool valid; + int n; + wxString complaint; +- complaint.Printf (wxT("Invalid integer for %s."), pstr->param->get_name ()); ++ complaint.Printf ("Invalid integer for %s.", pstr->param->get_name ()); + if (nump->get_options () & nump->USE_SPIN_CONTROL) { + n = pstr->u.spin->GetValue (); + } else { + n = GetTextCtrlInt (pstr->u.text, &valid, true, complaint); + } + if ((n < nump->get_min ()) || (n > nump->get_max ())) { +- wxMessageBox(wxT("Numerical parameter out of range"), wxT("Error"), wxOK | wxICON_ERROR, this ); ++ wxMessageBox("Numerical parameter out of range", "Error", wxOK | wxICON_ERROR, this ); + return false; + } + if (n != nump->get ()) nump->set (n); +@@ -1331,7 +1331,7 @@ + buf[i] = n; + p+=2; + } else { +- wxMessageBox(wxT("Illegal raw byte format"), wxT("Error"), wxOK | wxICON_ERROR, this ); ++ wxMessageBox("Illegal raw byte format", "Error", wxOK | wxICON_ERROR, this ); + return false; + } + } +@@ -1345,7 +1345,7 @@ + case BXT_LIST: + break; + default: +- wxLogError (wxT("ParamDialog::CopyGuiToParam: unsupported param type id=%d"), (int)type); ++ wxLogError ("ParamDialog::CopyGuiToParam: unsupported param type id=%d", (int)type); + } + } + return true; +@@ -1371,7 +1371,7 @@ + + void ParamDialog::EnableChanged (ParamStruct *pstrOfCheckbox) + { +- wxLogDebug (wxT("EnableChanged on checkbox %s"), pstrOfCheckbox->param->get_name ()); ++ wxLogDebug ("EnableChanged on checkbox %s", pstrOfCheckbox->param->get_name ()); + bx_param_bool_c *enableParam = (bx_param_bool_c*) pstrOfCheckbox->param; + wxASSERT (enableParam->get_type () == BXT_PARAM_BOOL); // or we wouldn't be here + bool en = pstrOfCheckbox->u.checkbox->GetValue (); +@@ -1390,10 +1390,10 @@ + ParamStruct *pstr = (ParamStruct*) paramHash->Get (param->get_id ()); + if (pstr) { + if (param == pstrOfCheckbox->param) { +- wxLogDebug (wxT("not setting enable on checkbox '%s' that triggered the enable change"), pstrOfCheckbox->param->get_name ()); ++ wxLogDebug ("not setting enable on checkbox '%s' that triggered the enable change", pstrOfCheckbox->param->get_name ()); + continue; + } +- wxLogDebug (wxT("setting enable for param '%s' to %d"), pstr->param->get_name (), en?1:0); ++ wxLogDebug ("setting enable for param '%s' to %d", pstr->param->get_name (), en?1:0); + if (en != pstr->u.window->IsEnabled ()) { + EnableParam (pstr->param->get_id (), en); + //pstr->u.window->Enable (en); +@@ -1401,7 +1401,7 @@ + //if (pstr->label) pstr->label->Enable (en); + bx_list_c *deps = pstr->param->get_dependent_list (); + if (deps) { +- wxLogDebug (wxT("recursing on dependent list of %s"), list->get_name ()); ++ wxLogDebug ("recursing on dependent list of %s", list->get_name ()); + wxASSERT (pstr->param->get_type () == BXT_PARAM_BOOL); + bool dep_en = pstr->u.window->IsEnabled () && pstr->u.checkbox->GetValue (); + EnableChangedRecursive (deps, dep_en, pstr); +@@ -1431,7 +1431,7 @@ + + void ParamDialog::EnumChanged (ParamStruct *pstr) + { +- wxLogDebug (wxT("EnumChanged")); ++ wxLogDebug ("EnumChanged"); + int id = pstr->param->get_id (); + switch (id) { + case BXP_ATA0_MASTER_TYPE: +@@ -1455,7 +1455,7 @@ + int type = pstr->u.choice->GetSelection (); + if (type == BX_ATA_DEVICE_DISK) { + // enable cylinders, heads, spt +- wxLogDebug (wxT("enabling disk parameters")); ++ 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); +@@ -1479,7 +1479,7 @@ + + } else { + // enable inserted +- wxLogDebug (wxT("enabling cdrom parameters")); ++ 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); +@@ -1544,7 +1544,7 @@ + wxNode *node; + while ((node = idHash->Next ()) != NULL) { + ParamStruct *pstr = (ParamStruct*) node->GetData (); +- IFDBG_DLG (wxLogDebug (wxT("refresh param %s"), pstr->param->get_name ())); ++ IFDBG_DLG (wxLogDebug ("refresh param %s", pstr->param->get_name ())); + int type = pstr->param->get_type (); + switch (type) { + case BXT_PARAM_BOOL: { +@@ -1573,7 +1573,7 @@ + case BXT_LIST: + break; + default: +- wxLogError (wxT("ParamDialog::CopyParamToGui(): unsupported param type id=%d"), (int)type); ++ wxLogError ("ParamDialog::CopyParamToGui(): unsupported param type id=%d", (int)type); + } + } + } +@@ -1585,11 +1585,11 @@ + if (isGeneratedId (id)) { + ParamStruct *pstr = (ParamStruct*) idHash->Get (id); + if (pstr == NULL) { +- wxLogDebug (wxT("ParamStruct not found for id=%d"), id); ++ wxLogDebug ("ParamStruct not found for id=%d", id); + return; + } + if (id == pstr->id) { +- IFDBG_DLG (wxLogDebug (wxT("event came from window %p (id=%d) controlled by parameter '%s'"), pstr->u.window, id, pstr->param->get_name ())); ++ IFDBG_DLG (wxLogDebug ("event came from window %p (id=%d) controlled by parameter '%s'", pstr->u.window, id, pstr->param->get_name ())); + switch (pstr->param->get_type ()) { + case BXT_PARAM_BOOL: + EnableChanged (pstr); +@@ -1601,11 +1601,11 @@ + return; + } + if (id == pstr->browseButtonId) { +- wxLogDebug (wxT("browse button id=%d attached to wxTextCtrl %p"), id, pstr->u.text); ++ wxLogDebug ("browse button id=%d attached to wxTextCtrl %p", id, pstr->u.text); + BrowseTextCtrl (pstr->u.text); + return; + } +- wxLogDebug (wxT("id was key to ParamStruct but doesn't match either id inside")); ++ wxLogDebug ("id was key to ParamStruct but doesn't match either id inside"); + } + switch (id) { + case wxID_OK: +@@ -1704,9 +1704,9 @@ + box1gridSizer = new wxFlexGridSizer (3); + box1sizer->Add (box1gridSizer, 0, wxALL, insideStaticBoxMargin); + AddParamList (standardList, box1gridSizer); +- wxStaticText *vgabiosaddr1 = new wxStaticText (this, -1, wxT("VGA BIOS address")); ++ wxStaticText *vgabiosaddr1 = new wxStaticText (this, -1, "VGA BIOS address"); + box1gridSizer->Add (vgabiosaddr1, 0, wxALIGN_RIGHT|wxALL, 2); +- wxStaticText *vgabiosaddr2 = new wxStaticText (this, -1, wxT("0xC0000")); ++ wxStaticText *vgabiosaddr2 = new wxStaticText (this, -1, "0xC0000"); + box1gridSizer->Add (vgabiosaddr2, 0, wxALL, 2); + + // box2 contains a list +@@ -1759,17 +1759,17 @@ + bx_id *idptr; + + // top level objects +- wxStaticBox *mainRegsBox = new wxStaticBox (this, -1, wxT("Basic Registers")); ++ wxStaticBox *mainRegsBox = new wxStaticBox (this, -1, "Basic Registers"); + wxStaticBoxSizer *mainRegsBoxSizer = + new wxStaticBoxSizer (mainRegsBox, wxVERTICAL); + mainSizer->Add (mainRegsBoxSizer, 0, wxALL|wxGROW, 10); + +- wxStaticBox *flagsBox = new wxStaticBox (this, -1, wxT("EFLAGS Bits")); ++ wxStaticBox *flagsBox = new wxStaticBox (this, -1, "EFLAGS Bits"); + wxStaticBoxSizer *flagsBoxSizer = + new wxStaticBoxSizer (flagsBox, wxVERTICAL); + mainSizer->Add (flagsBoxSizer, 0, wxALL|wxGROW, 10); + +- wxStaticBox *otherBox = new wxStaticBox (this, -1, wxT("Other Registers")); ++ wxStaticBox *otherBox = new wxStaticBox (this, -1, "Other Registers"); + wxStaticBoxSizer *otherBoxSizer = + new wxStaticBoxSizer (otherBox, wxVERTICAL); + mainSizer->Add (otherBoxSizer, 0, wxALL|wxGROW, 10); +@@ -1826,7 +1826,7 @@ + CpuRegistersDialog::AddFlag (bx_id paramId) + { + if (SIM->get_param (paramId) == NULL) { +- wxLogDebug (wxT("AddFlag on unregistered param id=%d"), (int)paramId); ++ wxLogDebug ("AddFlag on unregistered param id=%d", (int)paramId); + return; + } + wxASSERT (nflags < CPU_REGS_MAX_FLAGS); +@@ -1917,13 +1917,13 @@ + break; + #if BX_DEBUGGER + case ID_Debug_Stop: +- wxLogDebug (wxT("wxWidgets triggered a break")); ++ wxLogDebug ("wxWidgets triggered a break"); + theFrame->DebugBreak (); + break; + case ID_Debug_Continue: +- wxLogDebug (wxT("before calling DebugCommand")); ++ wxLogDebug ("before calling DebugCommand"); + theFrame->DebugCommand ("continue"); +- wxLogDebug (wxT("after calling DebugCommand")); ++ wxLogDebug ("after calling DebugCommand"); + break; + case ID_Debug_Step: + theFrame->DebugCommand ("step 1"); +@@ -1960,12 +1960,12 @@ + CreateImage (int harddisk, int sectors, const char *filename) + { + if (sectors<1) { +- wxMessageBox(wxT("The disk size is invalid."), wxT("Invalid Size"), wxOK | wxICON_ERROR ); ++ wxMessageBox("The disk size is invalid.", "Invalid Size", wxOK | wxICON_ERROR ); + return false; + } +- wxLogDebug (wxT("filename = '%s'\n"), filename); ++ wxLogDebug ("filename = '%s'\n", filename); + if (strlen (filename) < 1) { +- wxMessageBox(wxT("You must type a file name for the new disk image."), wxT("Bad Filename"), wxOK | wxICON_ERROR ); ++ wxMessageBox("You must type a file name for the new disk image.", "Bad Filename", wxOK | wxICON_ERROR ); + return false; + } + // create disk image with name and capacity determined by the filename +@@ -1975,15 +1975,15 @@ + // you want to overwrite?". If yes, call again with overwrite=1. + int ret = SIM->create_disk_image (filename, sectors, 0); + if (ret == -1) { // already exists +- int answer = wxMessageBox (wxT("File exists. Do you want to overwrite it?"), +- wxT("File exists"), wxYES_NO | wxCENTER); ++ int answer = wxMessageBox ("File exists. Do you want to overwrite it?", ++ "File exists", wxYES_NO | wxCENTER); + if (answer == wxYES) + ret = SIM->create_disk_image (filename, sectors, 1); + else + return false; // wxNO + } + if (ret == -2) { +- wxMessageBox(wxT("I could not create the disk image. Check for permission problems or available disk space."), wxT("Failed"), wxOK | wxICON_ERROR ); ++ wxMessageBox("I could not create the disk image. Check for permission problems or available disk space.", "Failed", wxOK | wxICON_ERROR ); + return false; + } + wxASSERT (ret==0); +@@ -2011,7 +2011,7 @@ + } + if (valid) *valid = false; + if (complain) { +- wxMessageBox(complaint, wxT("Invalid"), wxOK | wxICON_ERROR ); ++ wxMessageBox(complaint, "Invalid", wxOK | wxICON_ERROR ); + ctrl->SetFocus (); + } + return -1; +@@ -2020,7 +2020,7 @@ + bool BrowseTextCtrl (wxTextCtrl *text, wxString prompt, long style) { + // try to configure the dialog to show hidden files + wxConfigBase::Get() -> Write(wxT("/wxWidgets/wxFileDialog/ShowHidden"), true); +- wxFileDialog *fdialog = new wxFileDialog (text->GetParent (), prompt, wxT(""), text->GetValue (), wxT("*.*"), style); ++ wxFileDialog *fdialog = new wxFileDialog (text->GetParent (), prompt, "", text->GetValue (), "*.*", style); + int result = fdialog->ShowModal(); + if (result == wxID_OK) + text->SetValue (fdialog->GetPath ()); +diff -ur bochs-2.2.6.orig/gui/wxdialog.h bochs-2.2.6/gui/wxdialog.h +--- bochs-2.2.6.orig/gui/wxdialog.h 2006-02-15 21:55:00.000000000 +0100 ++++ bochs-2.2.6/gui/wxdialog.h 2005-11-25 17:24:47.000000000 +0100 +@@ -37,9 +37,9 @@ + void ChangeStaticText (wxSizer *sizer, wxStaticText *win, wxString newtext); + bool CreateImage (int harddisk, int sectors, const char *filename); + void SetTextCtrl (wxTextCtrl *text, const char *format, int val); +-int GetTextCtrlInt (wxTextCtrl *text, bool *valid = NULL, bool complain=false, wxString complaint = wxT("Invalid integer!")); ++int GetTextCtrlInt (wxTextCtrl *text, bool *valid = NULL, bool complain=false, wxString complaint = "Invalid integer!"); + bool BrowseTextCtrl (wxTextCtrl *text, +- wxString prompt=wxT("Choose a file"), ++ wxString prompt="Choose a file", + long style=wxOPEN); + wxChoice *makeLogOptionChoiceBox (wxWindow *parent, wxWindowID id, int evtype, bool includeNoChange = false); + +diff -ur bochs-2.2.6.orig/gui/wxmain.cc bochs-2.2.6/gui/wxmain.cc +--- bochs-2.2.6.orig/gui/wxmain.cc 2006-02-15 22:20:36.000000000 +0100 ++++ bochs-2.2.6/gui/wxmain.cc 2005-11-26 10:22:58.000000000 +0100 +@@ -193,10 +193,10 @@ + extern "C" int libwx_LTX_plugin_init (plugin_t *plugin, plugintype_t type, + int argc, char *argv[]) + { +- wxLogDebug (wxT("plugin_init for wxmain.cc")); +- wxLogDebug (wxT("installing wxWidgets as the configuration interface")); ++ wxLogDebug ("plugin_init for wxmain.cc"); ++ wxLogDebug ("installing wxWidgets as the configuration interface"); + SIM->register_configuration_interface ("wx", ci_callback, NULL); +- wxLogDebug (wxT("installing %s as the Bochs GUI"), "wxWidgets"); ++ wxLogDebug ("installing %s as the Bochs GUI", "wxWidgets"); + MyPanel::OnPluginInit (); + return 0; // success + } +@@ -234,7 +234,7 @@ + // simulation begins. This is responsible for displaying any error + // dialogs during bochsrc and command line processing. + SIM->set_notify_callback (&MyApp::DefaultCallback, this); +- MyFrame *frame = new MyFrame(wxT("Bochs x86 Emulator"), wxPoint(50,50), wxSize(450,340), wxMINIMIZE_BOX | wxSYSTEM_MENU | wxCAPTION ); ++ MyFrame *frame = new MyFrame( "Bochs x86 Emulator", wxPoint(50,50), wxSize(450,340), wxMINIMIZE_BOX | wxSYSTEM_MENU | wxCAPTION ); + theFrame = frame; // hack alert + frame->Show( TRUE ); + SetTopWindow( frame ); +@@ -256,20 +256,20 @@ + BxEvent * + MyApp::DefaultCallback (void *thisptr, BxEvent *event) + { +- wxLogDebug (wxT("DefaultCallback: event type %d"), event->type); ++ wxLogDebug ("DefaultCallback: event type %d", event->type); + event->retcode = -1; // default return code + switch (event->type) + { + case BX_ASYNC_EVT_LOG_MSG: + case BX_SYNC_EVT_LOG_ASK: { +- wxLogDebug (wxT("DefaultCallback: log ask event")); ++ wxLogDebug ("DefaultCallback: log ask event"); + wxString text; +- text.Printf (wxT("Error: %s"), event->u.logmsg.msg); ++ text.Printf ("Error: %s", event->u.logmsg.msg); + if (wxBochsClosing) { + // gui closing down, do something simple and nongraphical. +- fprintf (stderr, "%s\n", (char *)text.c_str ()); ++ fprintf (stderr, "%s\n", text.c_str ()); + } else { +- wxMessageBox (text, wxT("Error"), wxOK | wxICON_ERROR ); ++ wxMessageBox (text, "Error", wxOK | wxICON_ERROR ); + // maybe I can make OnLogMsg display something that looks appropriate. + // theFrame->OnLogMsg (event); + } +@@ -289,7 +289,7 @@ + case BX_SYNC_EVT_GET_DBG_COMMAND: + break; // ignore + default: +- wxLogDebug (wxT("DefaultCallback: unknown event type %d"), event->type); ++ wxLogDebug ("DefaultCallback: unknown event type %d", event->type); + } + if (BX_EVT_IS_ASYNC(event->type)) { + delete event; +@@ -415,61 +415,61 @@ + + // set up the gui + menuConfiguration = new wxMenu; +- menuConfiguration->Append( ID_Config_New, wxT("&New Configuration") ); +- menuConfiguration->Append( ID_Config_Read, wxT("&Read Configuration") ); +- menuConfiguration->Append( ID_Config_Save, wxT("&Save Configuration") ); ++ menuConfiguration->Append( ID_Config_New, "&New Configuration" ); ++ menuConfiguration->Append( ID_Config_Read, "&Read Configuration" ); ++ menuConfiguration->Append( ID_Config_Save, "&Save Configuration" ); + menuConfiguration->AppendSeparator (); +- menuConfiguration->Append (ID_Quit, wxT("&Quit")); ++ menuConfiguration->Append (ID_Quit, "&Quit"); + + menuEdit = new wxMenu; +- menuEdit->Append( ID_Edit_FD_0, wxT("Floppy Disk &0...") ); +- menuEdit->Append( ID_Edit_FD_1, wxT("Floppy Disk &1...") ); +- menuEdit->Append( ID_Edit_ATA0, wxT("ATA Channel 0...") ); +- menuEdit->Append( ID_Edit_ATA1, wxT("ATA Channel 1...") ); +- menuEdit->Append( ID_Edit_ATA2, wxT("ATA Channel 2...") ); +- menuEdit->Append( ID_Edit_ATA3, wxT("ATA Channel 3...") ); +- menuEdit->Append( ID_Edit_Boot, wxT("&Boot...") ); +- menuEdit->Append( ID_Edit_Memory, wxT("&Memory...") ); +- menuEdit->Append( ID_Edit_PCI, wxT("&PCI...") ); +- menuEdit->Append( ID_Edit_Sound, wxT("S&ound...") ); +- menuEdit->Append( ID_Edit_Timing, wxT("&Timing...") ); +- menuEdit->Append( ID_Edit_Network, wxT("&Network...") ); +- menuEdit->Append( ID_Edit_Keyboard, wxT("&Keyboard...") ); +- menuEdit->Append( ID_Edit_Serial_Parallel, wxT("&Serial/Parallel...") ); +- menuEdit->Append( ID_Edit_LoadHack, wxT("&Loader Hack...") ); +- menuEdit->Append( ID_Edit_Other, wxT("&Other...") ); ++ menuEdit->Append( ID_Edit_FD_0, "Floppy Disk &0..." ); ++ menuEdit->Append( ID_Edit_FD_1, "Floppy Disk &1..." ); ++ menuEdit->Append( ID_Edit_ATA0, "ATA Channel 0..." ); ++ menuEdit->Append( ID_Edit_ATA1, "ATA Channel 1..." ); ++ menuEdit->Append( ID_Edit_ATA2, "ATA Channel 2..." ); ++ menuEdit->Append( ID_Edit_ATA3, "ATA Channel 3..." ); ++ menuEdit->Append( ID_Edit_Boot, "&Boot..." ); ++ menuEdit->Append( ID_Edit_Memory, "&Memory..." ); ++ menuEdit->Append( ID_Edit_PCI, "&PCI..." ); ++ menuEdit->Append( ID_Edit_Sound, "S&ound..." ); ++ menuEdit->Append( ID_Edit_Timing, "&Timing..." ); ++ menuEdit->Append( ID_Edit_Network, "&Network..." ); ++ menuEdit->Append( ID_Edit_Keyboard, "&Keyboard..." ); ++ menuEdit->Append( ID_Edit_Serial_Parallel, "&Serial/Parallel..." ); ++ menuEdit->Append( ID_Edit_LoadHack, "&Loader Hack..." ); ++ menuEdit->Append( ID_Edit_Other, "&Other..." ); + + menuSimulate = new wxMenu; +- menuSimulate->Append( ID_Simulate_Start, wxT("&Start...")); +- menuSimulate->Append( ID_Simulate_PauseResume, wxT("&Pause...")); +- menuSimulate->Append( ID_Simulate_Stop, wxT("S&top...")); ++ menuSimulate->Append( ID_Simulate_Start, "&Start..."); ++ menuSimulate->Append( ID_Simulate_PauseResume, "&Pause..."); ++ menuSimulate->Append( ID_Simulate_Stop, "S&top..."); + menuSimulate->AppendSeparator (); + menuSimulate->Enable (ID_Simulate_PauseResume, FALSE); + menuSimulate->Enable (ID_Simulate_Stop, FALSE); + + menuDebug = new wxMenu; +- menuDebug->Append (ID_Debug_ShowCpu, wxT("Show &CPU")); +- menuDebug->Append (ID_Debug_ShowKeyboard, wxT("Show &Keyboard")); ++ menuDebug->Append (ID_Debug_ShowCpu, "Show &CPU"); ++ menuDebug->Append (ID_Debug_ShowKeyboard, "Show &Keyboard"); + #if BX_DEBUGGER +- menuDebug->Append (ID_Debug_Console, wxT("Debug Console")); ++ menuDebug->Append (ID_Debug_Console, "Debug Console"); + #endif +- menuDebug->Append (ID_Debug_ShowMemory, wxT("Show &memory")); ++ menuDebug->Append (ID_Debug_ShowMemory, "Show &memory"); + + menuLog = new wxMenu; +- menuLog->Append (ID_Log_View, wxT("&View")); +- menuLog->Append (ID_Log_Prefs, wxT("&Preferences...")); +- menuLog->Append (ID_Log_PrefsDevice, wxT("By &Device...")); ++ menuLog->Append (ID_Log_View, "&View"); ++ menuLog->Append (ID_Log_Prefs, "&Preferences..."); ++ menuLog->Append (ID_Log_PrefsDevice, "By &Device..."); + + menuHelp = new wxMenu; +- menuHelp->Append( ID_Help_About, wxT("&About...") ); ++ menuHelp->Append( ID_Help_About, "&About..." ); + + wxMenuBar *menuBar = new wxMenuBar; +- menuBar->Append( menuConfiguration, wxT("&File") ); +- menuBar->Append( menuEdit, wxT("&Edit") ); +- menuBar->Append( menuSimulate, wxT("&Simulate") ); +- menuBar->Append( menuDebug, wxT("&Debug") ); +- menuBar->Append( menuLog, wxT("&Log") ); +- menuBar->Append( menuHelp, wxT("&Help") ); ++ menuBar->Append( menuConfiguration, "&File" ); ++ menuBar->Append( menuEdit, "&Edit" ); ++ menuBar->Append( menuSimulate, "&Simulate" ); ++ menuBar->Append( menuDebug, "&Debug" ); ++ menuBar->Append( menuLog, "&Log" ); ++ menuBar->Append( menuHelp, "&Help" ); + SetMenuBar( menuBar ); + + // disable things that don't work yet +@@ -490,20 +490,20 @@ + tb->AddTool(id, wxBitmap(xpm_name), tooltip); \ + } while (0) + +- BX_ADD_TOOL(ID_Edit_FD_0, floppya_xpm, wxT("Change Floppy A")); +- BX_ADD_TOOL(ID_Edit_FD_1, floppyb_xpm, wxT("Change Floppy B")); +- BX_ADD_TOOL(ID_Edit_Cdrom, cdromd_xpm, wxT("Change CDROM")); +- BX_ADD_TOOL(ID_Toolbar_Reset, reset_xpm, wxT("Reset the system")); +- BX_ADD_TOOL(ID_Toolbar_Power, power_xpm, wxT("Turn power on/off")); +- +- BX_ADD_TOOL(ID_Toolbar_Copy, copy_xpm, wxT("Copy to clipboard")); +- BX_ADD_TOOL(ID_Toolbar_Paste, paste_xpm, wxT("Paste from clipboard")); +- BX_ADD_TOOL(ID_Toolbar_Snapshot, snapshot_xpm, wxT("Save screen snapshot")); ++ BX_ADD_TOOL(ID_Edit_FD_0, floppya_xpm, "Change Floppy A"); ++ BX_ADD_TOOL(ID_Edit_FD_1, floppyb_xpm, "Change Floppy B"); ++ BX_ADD_TOOL(ID_Edit_Cdrom, cdromd_xpm, "Change CDROM"); ++ BX_ADD_TOOL(ID_Toolbar_Reset, reset_xpm, "Reset the system"); ++ BX_ADD_TOOL(ID_Toolbar_Power, power_xpm, "Turn power on/off"); ++ ++ BX_ADD_TOOL(ID_Toolbar_Copy, copy_xpm, "Copy to clipboard"); ++ BX_ADD_TOOL(ID_Toolbar_Paste, paste_xpm, "Paste from clipboard"); ++ BX_ADD_TOOL(ID_Toolbar_Snapshot, snapshot_xpm, "Save screen snapshot"); + // Omit config button because the whole wxWidgets interface is like + // one really big config button. + //BX_ADD_TOOL(ID_Toolbar_Config, configbutton_xpm, "Runtime Configuration"); +- BX_ADD_TOOL(ID_Toolbar_Mouse_en, mouse_xpm, wxT("Enable/disable mouse capture\nThere is also a shortcut for this: a CTRL key + the middle mouse button.")); +- BX_ADD_TOOL(ID_Toolbar_User, userbutton_xpm, wxT("Keyboard shortcut")); ++ BX_ADD_TOOL(ID_Toolbar_Mouse_en, mouse_xpm, "Enable/disable mouse capture\nThere is also a shortcut for this: a CTRL key + the middle mouse button."); ++ BX_ADD_TOOL(ID_Toolbar_User, userbutton_xpm, "Keyboard shortcut"); + + tb->Realize(); + +@@ -527,14 +527,14 @@ + MyFrame::~MyFrame () + { + delete panel; +- wxLogDebug (wxT("MyFrame destructor")); ++ wxLogDebug ("MyFrame destructor"); + theFrame = NULL; + } + + void MyFrame::OnConfigNew(wxCommandEvent& WXUNUSED(event)) + { +- int answer = wxMessageBox (wxT("This will reset all settings back to their default values.\nAre you sure you want to do this?"), +- wxT("Are you sure?"), wxYES_NO | wxCENTER, this); ++ int answer = wxMessageBox ("This will reset all settings back to their default values.\nAre you sure you want to do this?", ++ "Are you sure?", wxYES_NO | wxCENTER, this); + if (answer == wxYES) SIM->reset_all_param (); + } + +@@ -542,7 +542,7 @@ + { + char *bochsrc; + long style = wxOPEN; +- wxFileDialog *fdialog = new wxFileDialog (this, wxT("Read configuration"), wxT(""), wxT(""), wxT("*.*"), style); ++ wxFileDialog *fdialog = new wxFileDialog (this, "Read configuration", "", "", "*.*", style); + if (fdialog->ShowModal() == wxID_OK) { + bochsrc = (char *)fdialog->GetPath().c_str (); + SIM->reset_all_param (); +@@ -555,7 +555,7 @@ + { + char *bochsrc; + long style = wxSAVE | wxOVERWRITE_PROMPT; +- wxFileDialog *fdialog = new wxFileDialog (this, wxT("Save configuration"), wxT(""), wxT(""), wxT("*.*"), style); ++ wxFileDialog *fdialog = new wxFileDialog (this, "Save configuration", "", "", "*.*", style); + if (fdialog->ShowModal() == wxID_OK) { + bochsrc = (char *)fdialog->GetPath().c_str (); + SIM->write_rc (bochsrc, 1); +@@ -581,13 +581,13 @@ + dev_id[bootDevices++] = BX_BOOT_CDROM; + } + if (bootDevices == 0) { +- wxMessageBox( wxT("All the possible boot devices are disabled right now!\nYou must enable the first floppy drive, a hard drive, or a CD-ROM."), +- wxT("None enabled"), wxOK | wxICON_ERROR, this ); ++ wxMessageBox( "All the possible boot devices are disabled right now!\nYou must enable the first floppy drive, a hard drive, or a CD-ROM.", ++ "None enabled", wxOK | wxICON_ERROR, this ); + return; + } + ParamDialog dlg (this, -1); + bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_BOOT); +- dlg.SetTitle (wxString(list->get_name (), wxConvUTF8)); ++ dlg.SetTitle (list->get_name ()); + dlg.AddParam (list); + dlg.ShowModal (); + } +@@ -602,7 +602,7 @@ + { + ParamDialog dlg (this, -1); + bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_PCI); +- dlg.SetTitle (wxString(list->get_name (), wxConvUTF8)); ++ dlg.SetTitle (list->get_name ()); + dlg.AddParam (list); + dlg.ShowModal (); + } +@@ -611,7 +611,7 @@ + { + ParamDialog dlg (this, -1); + bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_SB16); +- dlg.SetTitle (wxString(list->get_name (), wxConvUTF8)); ++ dlg.SetTitle (list->get_name ()); + dlg.AddParam (list); + dlg.SetRuntimeFlag (sim_thread != NULL); + dlg.ShowModal (); +@@ -621,7 +621,7 @@ + { + ParamDialog dlg (this, -1); + bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_CLOCK); +- dlg.SetTitle (wxString(list->get_name (), wxConvUTF8)); ++ dlg.SetTitle (list->get_name ()); + dlg.AddParam (list); + dlg.ShowModal (); + } +@@ -630,7 +630,7 @@ + { + ParamDialog dlg (this, -1); + bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_NETWORK); +- dlg.SetTitle (wxString(list->get_name (), wxConvUTF8)); ++ dlg.SetTitle (list->get_name ()); + dlg.AddParam (list); + dlg.ShowModal (); + } +@@ -639,7 +639,7 @@ + { + ParamDialog dlg(this, -1); + bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_MENU_KEYBOARD); +- dlg.SetTitle (wxString(list->get_name (), wxConvUTF8)); ++ dlg.SetTitle (list->get_name ()); + dlg.AddParam (list); + dlg.SetRuntimeFlag (sim_thread != NULL); + dlg.ShowModal (); +@@ -649,7 +649,7 @@ + { + ParamDialog dlg(this, -1); + bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_MENU_SERIAL_PARALLEL); +- dlg.SetTitle (wxString(list->get_name (), wxConvUTF8)); ++ dlg.SetTitle (list->get_name ()); + dlg.AddParam (list); + dlg.SetRuntimeFlag (sim_thread != NULL); + dlg.ShowModal (); +@@ -659,7 +659,7 @@ + { + ParamDialog dlg(this, -1); + bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_LOAD32BITOS); +- dlg.SetTitle (wxString(list->get_name (), wxConvUTF8)); ++ dlg.SetTitle (list->get_name ()); + dlg.AddParam (list); + dlg.ShowModal (); + } +@@ -668,7 +668,7 @@ + { + ParamDialog dlg(this, -1); + bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_MENU_MISC_2); +- dlg.SetTitle (wxString(list->get_name (), wxConvUTF8)); ++ dlg.SetTitle (list->get_name ()); + dlg.AddParam (list); + dlg.SetRuntimeFlag (sim_thread != NULL); + dlg.ShowModal (); +@@ -682,9 +682,9 @@ + wxASSERT (SIM->get_max_log_level() == LOG_OPTS_N_TYPES); + LogOptionsDialog dlg (this, -1); + bx_param_string_c *logfile = SIM->get_param_string (BXP_LOG_FILENAME); +- dlg.SetLogfile (wxString (logfile->getptr (), wxConvUTF8)); ++ dlg.SetLogfile (wxString (logfile->getptr ())); + bx_param_string_c *debuggerlogfile = SIM->get_param_string (BXP_DEBUGGER_LOG_FILENAME); +- dlg.SetDebuggerlogfile (wxString (debuggerlogfile->getptr (), wxConvUTF8)); ++ dlg.SetDebuggerlogfile (wxString (debuggerlogfile->getptr ())); + + // The inital values of the dialog are complicated. If the panic action + // for all modules is "ask", then clearly the inital value in the dialog +@@ -758,16 +758,16 @@ + { + if (SIM->get_param (BXP_CPU_EAX) == NULL) { + // if params not initialized yet, then give up +- wxMessageBox (wxT("Cannot show the debugger window until the simulation has begun."), +- wxT("Sim not started"), wxOK | wxICON_ERROR, this ); ++ wxMessageBox ("Cannot show the debugger window until the simulation has begun.", ++ "Sim not started", wxOK | wxICON_ERROR, this ); + return; + } + if (showCpu == NULL) { + showCpu = new CpuRegistersDialog (this, -1); + #if BX_DEBUGGER +- showCpu->SetTitle (wxT("Bochs Debugger")); ++ showCpu->SetTitle ("Bochs Debugger"); + #else +- showCpu->SetTitle (wxT("CPU Registers")); ++ showCpu->SetTitle ("CPU Registers"); + #endif + showCpu->Init (); + } else { +@@ -780,13 +780,13 @@ + { + if (SIM->get_param (BXP_KBD_PARAMETERS) == NULL) { + // if params not initialized yet, then give up +- wxMessageBox (wxT("Cannot show the debugger window until the simulation has begun."), +- wxT("Sim not started"), wxOK | wxICON_ERROR, this ); ++ wxMessageBox ("Cannot show the debugger window until the simulation has begun.", ++ "Sim not started", wxOK | wxICON_ERROR, this ); + return; + } + if (showKbd == NULL) { + showKbd = new ParamDialog (this, -1); +- showKbd->SetTitle (wxT("Keyboard State (incomplete, this is a demo)")); ++ showKbd->SetTitle ("Keyboard State (incomplete, this is a demo)"); + showKbd->AddParam (SIM->get_param (BXP_KBD_PARAMETERS)); + showKbd->Init (); + } else { +@@ -826,12 +826,12 @@ + void + MyFrame::DebugCommand (const char *cmd) + { +- wxLogDebug (wxT("debugger command: %s"), cmd); ++ wxLogDebug ("debugger command: %s", cmd); + wxASSERT (showDebugLog != NULL); + showDebugLog->AppendCommand (cmd); + if (debugCommand != NULL) { + // one is already waiting +- wxLogDebug (wxT("multiple debugger commands, discarding the earlier one")); ++ wxLogDebug ("multiple debugger commands, discarding the earlier one"); + delete debugCommand; + debugCommand = NULL; + } +@@ -840,7 +840,7 @@ + strncpy (tmp, cmd, len+1); + // if an event is waiting for us, fill it an send back to sim_thread. + if (debugCommandEvent != NULL) { +- wxLogDebug (wxT("sim_thread was waiting for this command '%s'"), tmp); ++ wxLogDebug ("sim_thread was waiting for this command '%s'", tmp); + wxASSERT (debugCommandEvent->type == BX_SYNC_EVT_GET_DBG_COMMAND); + debugCommandEvent->u.debugcmd.command = tmp; + debugCommandEvent->retcode = 1; +@@ -849,7 +849,7 @@ + debugCommandEvent = NULL; + } else { + // store this command in debugCommand for the future +- wxLogDebug (wxT("storing debugger command '%s'"), tmp); ++ wxLogDebug ("storing debugger command '%s'", tmp); + debugCommand = tmp; + } + } +@@ -864,7 +864,7 @@ + } else { + SIM->set_notify_callback (&MyApp::DefaultCallback, this); + // ask the simulator to stop. When it stops it will close this frame. +- SetStatusText (wxT("Waiting for simulation to stop...")); ++ SetStatusText ("Waiting for simulation to stop..."); + OnKillSim (event); + } + } +@@ -872,39 +872,39 @@ + void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) + { + wxString str; +- str.Printf (wxT("Bochs x86 Emulator version %s (wxWidgets port)"), VER_STRING); +- wxMessageBox( str, wxT("About Bochs"), wxOK | wxICON_INFORMATION, this ); ++ str.Printf ("Bochs x86 Emulator version %s (wxWidgets port)", VER_STRING); ++ wxMessageBox( str, "About Bochs", wxOK | wxICON_INFORMATION, this ); + } + + // update the menu items, status bar, etc. + void MyFrame::simStatusChanged (StatusChange change, bx_bool popupNotify) { + switch (change) { + case Start: // running +- wxLogStatus (wxT("Starting Bochs simulation")); ++ wxLogStatus ("Starting Bochs simulation"); + menuSimulate->Enable (ID_Simulate_Start, FALSE); + menuSimulate->Enable (ID_Simulate_PauseResume, TRUE); + menuSimulate->Enable (ID_Simulate_Stop, TRUE); +- menuSimulate->SetLabel (ID_Simulate_PauseResume, wxT("&Pause")); ++ menuSimulate->SetLabel (ID_Simulate_PauseResume, "&Pause"); + break; + case Stop: // not running +- wxLogStatus (wxT("Simulation stopped")); ++ wxLogStatus ("Simulation stopped"); + menuSimulate->Enable (ID_Simulate_Start, TRUE); + menuSimulate->Enable (ID_Simulate_PauseResume, FALSE); + menuSimulate->Enable (ID_Simulate_Stop, FALSE); +- menuSimulate->SetLabel (ID_Simulate_PauseResume, wxT("&Pause")); ++ menuSimulate->SetLabel (ID_Simulate_PauseResume, "&Pause"); + // This should only be used if the simulation stops due to error. + // Obviously if the user asked it to stop, they don't need to be told. + if (popupNotify) +- wxMessageBox(wxT("Bochs simulation has stopped."), wxT("Bochs Stopped"), ++ wxMessageBox("Bochs simulation has stopped.", "Bochs Stopped", + wxOK | wxICON_INFORMATION, this); + break; + case Pause: // pause +- wxLogStatus (wxT("Pausing simulation")); +- menuSimulate->SetLabel (ID_Simulate_PauseResume, wxT("&Resume")); ++ wxLogStatus ("Pausing simulation"); ++ menuSimulate->SetLabel (ID_Simulate_PauseResume, "&Resume"); + break; + case Resume: // resume +- wxLogStatus (wxT("Resuming simulation")); +- menuSimulate->SetLabel (ID_Simulate_PauseResume, wxT("&Pause")); ++ wxLogStatus ("Resuming simulation"); ++ menuSimulate->SetLabel (ID_Simulate_PauseResume, "&Pause"); + break; + } + bool canConfigure = (change == Stop); +@@ -942,8 +942,8 @@ + wxCriticalSectionLocker lock(sim_thread_lock); + if (sim_thread != NULL) { + wxMessageBox ( +- wxT("Can't start Bochs simulator, because it is already running"), +- wxT("Already Running"), wxOK | wxICON_ERROR, this); ++ "Can't start Bochs simulator, because it is already running", ++ "Already Running", wxOK | wxICON_ERROR, this); + return; + } + // check that display library is set to wx. If not, give a warning and +@@ -954,10 +954,10 @@ + char *gui_name = gui_param->get_choice (gui_param->get ()); + if (strcmp (gui_name, "wx") != 0) { + wxMessageBox ( +- wxT("The display library was not set to wxWidgets. When you use the\n") +- wxT("wxWidgets configuration interface, you must also select the wxWidgets\n") +- wxT("display library. I will change it to 'wx' now."), +- wxT("display library error"), wxOK | wxICON_WARNING, this); ++ "The display library was not set to wxWidgets. When you use the\n" ++ "wxWidgets configuration interface, you must also select the wxWidgets\n" ++ "display library. I will change it to 'wx' now.", ++ "display library error", wxOK | wxICON_WARNING, this); + if (!gui_param->set_by_name ("wx")) { + wxASSERT (0 && "Could not set display library setting to 'wx"); + } +@@ -966,14 +966,14 @@ + start_bochs_times++; + if (start_bochs_times>1) { + wxMessageBox ( +- wxT("You have already started the simulator once this session. Due to memory leaks and bugs in init code, you may get unstable behavior."), +- wxT("2nd time warning"), wxOK | wxICON_WARNING, this); ++ "You have already started the simulator once this session. Due to memory leaks and bugs in init code, you may get unstable behavior.", ++ "2nd time warning", wxOK | wxICON_WARNING, this); + } + num_events = 0; // clear the queue of events for bochs to handle + sim_thread = new SimThread (this); + sim_thread->Create (); + sim_thread->Run (); +- wxLogDebug (wxT("Simulator thread has started.")); ++ wxLogDebug ("Simulator thread has started."); + // set up callback for events from simulator thread + SIM->set_notify_callback (&SimThread::SiminterfaceCallback, sim_thread); + simStatusChanged (Start); +@@ -998,7 +998,7 @@ + // DON'T use a critical section here. Delete implicitly calls + // OnSimThreadExit, which also tries to lock sim_thread_lock. + // If we grab the lock at this level, deadlock results. +- wxLogDebug (wxT("OnKillSim()")); ++ wxLogDebug ("OnKillSim()"); + #if BX_DEBUGGER + // the sim_thread may be waiting for a debugger command. If so, send + // it a "quit" +@@ -1021,7 +1021,7 @@ + int + MyFrame::HandleAskParamString (bx_param_string_c *param) + { +- wxLogDebug (wxT("HandleAskParamString start")); ++ wxLogDebug ("HandleAskParamString start"); + bx_param_num_c *opt = param->get_options (); + wxASSERT (opt != NULL); + int n_opt = opt->get (); +@@ -1032,17 +1032,17 @@ + // use file open dialog + long style = + (n_opt & param->SAVE_FILE_DIALOG) ? wxSAVE|wxOVERWRITE_PROMPT : wxOPEN; +- wxLogDebug (wxT("HandleAskParamString: create dialog")); +- wxFileDialog *fdialog = new wxFileDialog (this, wxString(msg, wxConvUTF8), wxT(""), wxString(param->getptr (), wxConvUTF8), wxT("*.*"), style); +- wxLogDebug (wxT("HandleAskParamString: before showmodal")); ++ wxLogDebug ("HandleAskParamString: create dialog"); ++ wxFileDialog *fdialog = new wxFileDialog (this, msg, "", wxString(param->getptr ()), "*.*", style); ++ wxLogDebug ("HandleAskParamString: before showmodal"); + if (fdialog->ShowModal() == wxID_OK) + newval = (char *)fdialog->GetPath().c_str (); +- wxLogDebug (wxT("HandleAskParamString: after showmodal")); ++ wxLogDebug ("HandleAskParamString: after showmodal"); + dialog = fdialog; // so I can delete it + } else { + // use simple string dialog + long style = wxOK|wxCANCEL; +- wxTextEntryDialog *tdialog = new wxTextEntryDialog (this, wxString(msg, wxConvUTF8), wxT("Enter new value"), wxString(param->getptr (), wxConvUTF8), style); ++ wxTextEntryDialog *tdialog = new wxTextEntryDialog (this, msg, "Enter new value", wxString(param->getptr ()), style); + if (tdialog->ShowModal() == wxID_OK) + newval = (char *)tdialog->GetValue().c_str (); + dialog = tdialog; // so I can delete it +@@ -1052,7 +1052,7 @@ + // it! + if (newval && strlen(newval)>0) { + // change floppy path to this value. +- wxLogDebug (wxT("Setting param %s to '%s'"), param->get_name (), newval); ++ wxLogDebug ("Setting param %s to '%s'", param->get_name (), newval); + param->set (newval); + delete dialog; + return 1; +@@ -1087,9 +1087,9 @@ + default: + { + wxString msg; +- msg.Printf (wxT("ask param for parameter type %d is not implemented in wxWidgets"), ++ msg.Printf ("ask param for parameter type %d is not implemented in wxWidgets", + param->get_type ()); +- wxMessageBox( msg, wxT("not implemented"), wxOK | wxICON_ERROR, this ); ++ wxMessageBox( msg, "not implemented", wxOK | wxICON_ERROR, this ); + return -1; + } + } +@@ -1102,9 +1102,9 @@ + void + MyFrame::OnSim2CIEvent (wxCommandEvent& event) + { +- IFDBG_EVENT (wxLogDebug (wxT("received a bochs event in the GUI thread"))); ++ IFDBG_EVENT (wxLogDebug ("received a bochs event in the GUI thread")); + BxEvent *be = (BxEvent *) event.GetEventObject (); +- IFDBG_EVENT (wxLogDebug (wxT("event type = %d"), (int) be->type)); ++ IFDBG_EVENT (wxLogDebug ("event type = %d", (int) be->type)); + // all cases should return. sync event handlers MUST send back a + // response. async event handlers MUST delete the event. + switch (be->type) { +@@ -1112,12 +1112,12 @@ + RefreshDialogs (); + break; + case BX_SYNC_EVT_ASK_PARAM: +- wxLogDebug (wxT("before HandleAskParam")); ++ wxLogDebug ("before HandleAskParam"); + be->retcode = HandleAskParam (be); +- wxLogDebug (wxT("after HandleAskParam")); ++ wxLogDebug ("after HandleAskParam"); + // return a copy of the event back to the sender. + sim_thread->SendSyncResponse(be); +- wxLogDebug (wxT("after SendSyncResponse")); ++ wxLogDebug ("after SendSyncResponse"); + break; + #if BX_DEBUGGER + case BX_ASYNC_EVT_DBG_MSG: +@@ -1131,7 +1131,7 @@ + OnLogMsg (be); + break; + case BX_SYNC_EVT_GET_DBG_COMMAND: +- wxLogDebug (wxT("BX_SYNC_EVT_GET_DBG_COMMAND received")); ++ wxLogDebug ("BX_SYNC_EVT_GET_DBG_COMMAND received"); + if (debugCommand == NULL) { + // no debugger command is ready to send, so don't send a response yet. + // When a command is issued, MyFrame::DebugCommand will fill in the +@@ -1145,7 +1145,7 @@ + } + } else { + // a debugger command is waiting for us! +- wxLogDebug (wxT("sending debugger command '%s' that was waiting"), debugCommand); ++ wxLogDebug ("sending debugger command '%s' that was waiting", debugCommand); + be->u.debugcmd.command = debugCommand; + debugCommand = NULL; // ready for the next one + debugCommandEvent = NULL; +@@ -1154,7 +1154,7 @@ + } + break; + default: +- wxLogDebug (wxT("OnSim2CIEvent: event type %d ignored"), (int)be->type); ++ wxLogDebug ("OnSim2CIEvent: event type %d ignored", (int)be->type); + if (!BX_EVT_IS_ASYNC(be->type)) { + // if it's a synchronous event, and we fail to send back a response, + // the sim thread will wait forever. So send something! +@@ -1167,7 +1167,7 @@ + } + + void MyFrame::OnLogMsg (BxEvent *be) { +- wxLogDebug (wxT("log msg: level=%d, prefix='%s', msg='%s'"), ++ wxLogDebug ("log msg: level=%d, prefix='%s', msg='%s'", + be->u.logmsg.level, + be->u.logmsg.prefix, + be->u.logmsg.msg); +@@ -1175,13 +1175,13 @@ + return; // we don't have any place to display log messages + else + wxASSERT (be->type == BX_SYNC_EVT_LOG_ASK); +- wxString levelName (SIM->get_log_level_name (be->u.logmsg.level), wxConvUTF8); ++ wxString levelName (SIM->get_log_level_name (be->u.logmsg.level)); + LogMsgAskDialog dlg (this, -1, levelName); // panic, error, etc. + #if !BX_DEBUGGER + dlg.EnableButton (dlg.DEBUG, FALSE); + #endif +- dlg.SetContext (wxString(be->u.logmsg.prefix, wxConvUTF8)); +- dlg.SetMessage (wxString(be->u.logmsg.msg, wxConvUTF8)); ++ dlg.SetContext (be->u.logmsg.prefix); ++ dlg.SetMessage (be->u.logmsg.msg); + int n = dlg.ShowModal (); + // turn the return value into the constant that logfunctions::ask is + // expecting. 0=continue, 1=continue but ignore future messages from this +@@ -1190,7 +1190,7 @@ + if (dlg.GetDontAsk ()) n = BX_LOG_ASK_CHOICE_CONTINUE_ALWAYS; + } + be->retcode = n; +- wxLogDebug (wxT("you chose %d"), n); ++ wxLogDebug ("you chose %d", n); + // This can be called from two different contexts: + // 1) before sim_thread starts, the default application callback can + // call OnLogMsg to display messages. +@@ -1210,34 +1210,34 @@ + void MyFrame::editFloppyConfig (int drive) + { + FloppyConfigDialog dlg (this, -1); +- dlg.SetDriveName (wxString (drive==0? BX_FLOPPY0_NAME : BX_FLOPPY1_NAME, wxConvUTF8)); ++ dlg.SetDriveName (wxString (drive==0? BX_FLOPPY0_NAME : BX_FLOPPY1_NAME)); + dlg.SetCapacityChoices (n_floppy_type_names, floppy_type_names); + bx_list_c *list = (bx_list_c*) SIM->get_param ((drive==0)? BXP_FLOPPYA : BXP_FLOPPYB); +- if (!list) { wxLogError (wxT("floppy object param is null")); return; } ++ if (!list) { wxLogError ("floppy object param is null"); return; } + bx_param_filename_c *fname = (bx_param_filename_c*) list->get(0); + bx_param_enum_c *disktype = (bx_param_enum_c *) list->get(1); + bx_param_enum_c *status = (bx_param_enum_c *) list->get(2); + if (fname->get_type () != BXT_PARAM_STRING + || disktype->get_type () != BXT_PARAM_ENUM + || status->get_type() != BXT_PARAM_ENUM) { +- wxLogError (wxT("floppy params have wrong type")); ++ wxLogError ("floppy params have wrong type"); + return; + } + if (sim_thread == NULL) { +- dlg.AddRadio (wxT("Not Present"), wxT("")); ++ dlg.AddRadio ("Not Present", ""); + } +- dlg.AddRadio (wxT("Ejected"), wxT("none")); ++ dlg.AddRadio ("Ejected", "none"); + #if defined(__linux__) +- dlg.AddRadio (wxT("Physical floppy drive /dev/fd0"), wxT("/dev/fd0")); +- dlg.AddRadio (wxT("Physical floppy drive /dev/fd1"), wxT("/dev/fd1")); ++ dlg.AddRadio ("Physical floppy drive /dev/fd0", "/dev/fd0"); ++ dlg.AddRadio ("Physical floppy drive /dev/fd1", "/dev/fd1"); + #elif defined(WIN32) +- dlg.AddRadio (wxT("Physical floppy drive A:"), wxT("A:")); +- dlg.AddRadio (wxT("Physical floppy drive B:"), wxT("B:")); ++ dlg.AddRadio ("Physical floppy drive A:", "A:"); ++ dlg.AddRadio ("Physical floppy drive B:", "B:"); + #else + // add your favorite operating system here + #endif + dlg.SetCapacity (disktype->get () - disktype->get_min ()); +- dlg.SetFilename (wxString(fname->getptr (), wxConvUTF8)); ++ dlg.SetFilename (fname->getptr ()); + dlg.SetValidateFunc (editFloppyValidate); + if (disktype->get() == BX_FLOPPY_NONE) { + dlg.SetRadio(0); +@@ -1247,13 +1247,13 @@ + // otherwise the SetFilename() should have done the right thing. + } + int n = dlg.ShowModal (); +- wxLogMessage (wxT("floppy config returned %d"), n); ++ wxLogMessage ("floppy config returned %d", n); + if (n==wxID_OK) { + char filename[1024]; + wxString fn (dlg.GetFilename ()); +- strncpy (filename, (char *)fn.c_str (), sizeof(filename)); +- wxLogMessage (wxT("filename is '%s'"), filename); +- wxLogMessage (wxT("capacity = %d (%s)"), dlg.GetCapacity(), floppy_type_names[dlg.GetCapacity ()]); ++ strncpy (filename, fn.c_str (), sizeof(filename)); ++ wxLogMessage ("filename is '%s'", filename); ++ wxLogMessage ("capacity = %d (%s)", dlg.GetCapacity(), floppy_type_names[dlg.GetCapacity ()]); + fname->set (filename); + disktype->set (disktype->get_min () + dlg.GetCapacity ()); + if (sim_thread == NULL) { +@@ -1272,12 +1272,12 @@ + { + bx_param_c *firstcd = SIM->get_first_cdrom (); + if (!firstcd) { +- wxMessageBox (wxT("No CDROM drive is enabled. Use Edit:ATA to set one up."), +- wxT("No CDROM"), wxOK | wxICON_ERROR, this ); ++ wxMessageBox ("No CDROM drive is enabled. Use Edit:ATA to set one up.", ++ "No CDROM", wxOK | wxICON_ERROR, this ); + return; + } + ParamDialog dlg (this, -1); +- dlg.SetTitle (wxT("Configure CDROM")); ++ dlg.SetTitle ("Configure CDROM"); + dlg.AddParam (firstcd); + dlg.SetRuntimeFlag (sim_thread != NULL); + dlg.ShowModal (); +@@ -1289,7 +1289,7 @@ + int channel = id - ID_Edit_ATA0; + ParamDialog dlg (this, -1); + wxString str; +- str.Printf (wxT("Configure ATA%d"), channel); ++ str.Printf ("Configure ATA%d", channel); + dlg.SetTitle (str); + dlg.SetRuntimeFlag (sim_thread != NULL); + dlg.AddParam (SIM->get_param ((bx_id)(BXP_ATA0_MENU+channel))); +@@ -1298,7 +1298,7 @@ + + void MyFrame::OnToolbarClick(wxCommandEvent& event) + { +- wxLogDebug (wxT("clicked toolbar thingy")); ++ wxLogDebug ("clicked toolbar thingy"); + bx_toolbar_buttons which = BX_TOOLBAR_UNDEFINED; + int id = event.GetId (); + switch (id) { +@@ -1323,7 +1323,7 @@ + case ID_Toolbar_Mouse_en: which = BX_TOOLBAR_MOUSE_EN; break; + case ID_Toolbar_User: which = BX_TOOLBAR_USER; break; + default: +- wxLogError (wxT("unknown toolbar id %d"), id); ++ wxLogError ("unknown toolbar id %d", id); + } + if (num_events < MAX_EVENTS) { + event_queue[num_events].type = BX_ASYNC_EVT_TOOLBAR; +@@ -1364,27 +1364,27 @@ + // the -1 and calls quit_sim, which longjumps to quit_context, which is + // right here in SimThread::Entry. + // - Entry() exits and the thread stops. Whew. +- wxLogDebug (wxT("in SimThread, starting at bx_continue_after_config_interface")); ++ wxLogDebug ("in SimThread, starting at bx_continue_after_config_interface"); + static jmp_buf context; // this must not go out of scope. maybe static not needed + if (setjmp (context) == 0) { + SIM->set_quit_context (&context); + SIM->begin_simulation (bx_startup_flags.argc, bx_startup_flags.argv); +- wxLogDebug (wxT("in SimThread, SIM->begin_simulation() exited normally")); ++ wxLogDebug ("in SimThread, SIM->begin_simulation() exited normally"); + } else { +- wxLogDebug (wxT("in SimThread, SIM->begin_simulation() exited by longjmp")); ++ wxLogDebug ("in SimThread, SIM->begin_simulation() exited by longjmp"); + } + SIM->set_quit_context (NULL); + // it is possible that the whole interface has already been shut down. + // If so, we must end immediately. + // we're in the sim thread, so we must get a gui mutex before calling + // wxwidgets methods. +- wxLogDebug (wxT("SimThread::Entry: get gui mutex")); ++ wxLogDebug ("SimThread::Entry: get gui mutex"); + wxMutexGuiEnter(); + if (!wxBochsClosing) { +- wxLogDebug (wxT("SimThread::Entry: sim thread ending. call simStatusChanged")); ++ wxLogDebug ("SimThread::Entry: sim thread ending. call simStatusChanged"); + theFrame->simStatusChanged (theFrame->Stop, true); + } else { +- wxLogMessage (wxT("SimThread::Entry: the gui is waiting for sim to finish. Now that it has finished, I will close the frame.")); ++ wxLogMessage ("SimThread::Entry: the gui is waiting for sim to finish. Now that it has finished, I will close the frame."); + theFrame->Close (TRUE); + } + wxMutexGuiLeave(); +@@ -1456,23 +1456,23 @@ + wxCommandEvent wxevent (wxEVT_COMMAND_MENU_SELECTED, ID_Sim2CI_Event); + wxevent.SetEventObject ((wxEvent *)event); + if (isSimThread ()) { +- IFDBG_EVENT (wxLogDebug (wxT("Sending an event to the window"))); ++ IFDBG_EVENT (wxLogDebug ("Sending an event to the window")); + wxPostEvent (frame, wxevent); + // if it is an asynchronous event, return immediately. The event will be + // freed by the recipient in the GUI thread. + if (async) return NULL; +- wxLogDebug (wxT("SiminterfaceCallback2: synchronous event; waiting for response")); ++ wxLogDebug ("SiminterfaceCallback2: synchronous event; waiting for response"); + // now wait forever for the GUI to post a response. + BxEvent *response = NULL; + while (response == NULL) { + response = GetSyncResponse (); + if (!response) { +- //wxLogDebug (wxT("no sync response yet, waiting")); ++ //wxLogDebug ("no sync response yet, waiting"); + this->Sleep (20); + } + // don't get stuck here if the gui is trying to close. + if (wxBochsClosing) { +- wxLogDebug (wxT("breaking out of sync event wait because gui is closing")); ++ wxLogDebug ("breaking out of sync event wait because gui is closing"); + event->retcode = -1; + return event; + } +@@ -1480,7 +1480,7 @@ + wxASSERT (response != NULL); + return response; + } else { +- wxLogDebug (wxT("sim2ci event sent from the GUI thread. calling handler directly")); ++ wxLogDebug ("sim2ci event sent from the GUI thread. calling handler directly"); + theFrame->OnSim2CIEvent (wxevent); + return event; + } +@@ -1491,7 +1491,7 @@ + { + wxCriticalSectionLocker lock(sim2gui_mailbox_lock); + if (sim2gui_mailbox != NULL) { +- wxLogDebug (wxT("WARNING: ClearSyncResponse is throwing away an event that was previously in the mailbox")); ++ wxLogDebug ("WARNING: ClearSyncResponse is throwing away an event that was previously in the mailbox"); + } + sim2gui_mailbox = NULL; + } +@@ -1501,7 +1501,7 @@ + { + wxCriticalSectionLocker lock(sim2gui_mailbox_lock); + if (sim2gui_mailbox != NULL) { +- wxLogDebug (wxT("WARNING: SendSyncResponse is throwing away an event that was previously in the mailbox")); ++ wxLogDebug ("WARNING: SendSyncResponse is throwing away an event that was previously in the mailbox"); + } + sim2gui_mailbox = event; + } +@@ -1522,7 +1522,7 @@ + safeWxStrcpy (char *dest, wxString src, int destlen) + { + wxString tmp (src); +- strncpy (dest, (char *)tmp.c_str (), destlen); ++ strncpy (dest, tmp.c_str (), destlen); + dest[destlen-1] = 0; + } + +diff -ur bochs-2.2.6.orig/gui/wxmain.h bochs-2.2.6/gui/wxmain.h +--- bochs-2.2.6.orig/gui/wxmain.h 2006-02-15 21:31:32.000000000 +0100 ++++ bochs-2.2.6/gui/wxmain.h 2005-11-24 19:51:55.000000000 +0100 +@@ -135,7 +135,7 @@ + bx_bool fillBxKeyEvent_MSW (wxKeyEvent& event, BxKeyEvent& bxev, bx_bool release); + bx_bool fillBxKeyEvent_GTK (wxKeyEvent& event, BxKeyEvent& bxev, bx_bool release); + public: +- MyPanel(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString& name = wxT("panel")); ++ MyPanel(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString& name = "panel"); + ~MyPanel(); + void OnKeyDown(wxKeyEvent& event); + void OnKeyUp(wxKeyEvent& event); diff --git a/bochs.spec b/bochs.spec index df2ee78..c8760f1 100644 --- a/bochs.spec +++ b/bochs.spec @@ -1,9 +1,8 @@ %bcond_with debugger -%bcond_with wx Name: bochs -Version: 2.2.1 -Release: 2%{?dist} +Version: 2.2.6 +Release: 1%{?dist} Summary: Portable x86 PC emulator Group: Applications/Emulators @@ -12,8 +11,7 @@ URL: http://bochs.sourceforge.net/ Source0: http://download.sf.net/bochs/%{name}-%{version}.tar.gz Source1: http://bochs.sourceforge.net/guestos/dlxlinux4.tar.gz Patch0: %{name}-nonet-build.patch -Patch1: %{name}-dlxreadme.patch -Patch2: %{name}-config.patch +Patch1: %{name}-config.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: docbook-utils @@ -21,9 +19,7 @@ BuildRequires: libXt-devel BuildRequires: libXpm-devel BuildRequires: ncurses-devel BuildRequires: SDL-devel -%if %{with wx} BuildRequires: wxGTK-devel -%endif %if %{with debugger} BuildRequires: readline-devel %endif @@ -49,7 +45,6 @@ created by Erich and Hannes Boehm. %prep %setup -q %patch0 -p0 -%patch1 -p0 cp -p %{SOURCE1} . # Uh-oh, great! @@ -73,26 +68,24 @@ sed -i -e '/#ifndef PARANOID/,/#endif/d' iodev/harddrv.h # are not properties of the build target architecture. %configure \ --enable-plugins \ - --enable-cpu-level=5 \ --enable-ne2000 \ --enable-pci \ - --enable-4meg-pages \ - --enable-pae \ %{?with_debugger:--enable-debugger} \ --enable-all-optimizations \ --enable-vbe \ + --enable-clgd54xx \ --enable-3dnow \ - --enable-mmx \ - --enable-cdrom \ --enable-sb16=linux \ --with-x11 \ --with-nogui \ --with-term \ --with-rfb \ --with-sdl \ - --with%{!?with_wx:out}-wx + --with-wx -make %{?_smp_mflags} +#? --enable-raw-serial +make +# %{?_smp_mflags} make unpack_dlx # This needs to be done after "make unpack_dlx". @@ -134,6 +127,14 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Feb 15 2006 Hans de Goede - 2.2.6-1 +- New upstream version 2.2.6 +- Remove --enable-pae as that requires a CPU level of 6 now +- Remove a few configure switches which are identical to the + upstream defaults and thus don't do anything +- Add --enable-clgd54xx +- Fix compile with wxGTK-2.6 and unconditionalize wxGTK build (WIP) + * Fri Dec 16 2005 Ville Skyttä - 2.2.1-2 - Adapt to modular X. - Fix build with g++ 4.1.0. diff --git a/sources b/sources index 2951761..390e07c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ +961482eb78b55fe3e0e0639e34b4c2c1 bochs-2.2.6.tar.gz 379269841ae5aef95e4ec56d6d186532 dlxlinux4.tar.gz -50484c75d8175fcd97a81432ac18fb71 bochs-2.2.1.tar.gz