Commit Graph

77 Commits

Author SHA1 Message Date
Volker Ruppert
65d2bb11eb Release all pressed keys when the Bochs window gets back the keyboard focus.
- feature implemented in the wxWidgets gui
- feature not required for legacy SDL (releases keys on focus change)
- removed duplicate code in keyboard.cc
- TODO: implement feature in the win32 gui if required
2014-12-27 09:43:05 +00:00
Volker Ruppert
71feea84ed Implemented log viewer dialog for the wx gui
- added new class LogViewDialog based on the already removed DebugLogDialog
- log output is only sent to the viewer if visible to avoid performance trouble
- text buffer is limited to 48k, older lines are removed if necessary
- red text color is used for error and panic messages and black for others
- minor related code cleanups
2014-01-12 19:27:01 +00:00
Volker Ruppert
8c66e91f81 Some work on wx dialogs
- disable log file options at runtime
- fixed vertical alignment of label text
- added license, tab2space and minor other changes
2014-01-03 20:46:59 +00:00
Volker Ruppert
49c639e00d Removed obsolete stuff from the gui code 2013-12-26 20:51:46 +00:00
Volker Ruppert
bd89ed053d Some work on the wx toolbar
- disable most of the buttons if no simulation is running
- save/restore button calls restore function at configuration time
- disable code related to the config button
2013-12-26 08:37:51 +00:00
Volker Ruppert
1ce8d5de2f Several wxWidgets fixes and improvements
- send wheel data to the PS/2 mouse emulation (wx mouse wheel support works now)
- show selected mouse toggle method in toolbar help and message box
- added capability to start the simulation with the power button
2013-12-24 17:18:46 +00:00
Volker Ruppert
73b2402538 Fixed some runtime config issues
- es1370: fixed wave file parameter name
- wx cdrom dialog: use the first item of the cdrom runtime parameter list
- wx ParamDialog: always pause the simulation thread while setting parameters
- wx ParamDialog: call SIM->update_runtime_options() before continuing simulation
2013-12-01 16:02:31 +00:00
Volker Ruppert
058c0e05fb - removed wx debugger dialogs (enhanced gui debugger now almost stable with wx) 2013-02-16 12:22:13 +00:00
Volker Ruppert
97de484efb use enhanced gui debugger instead of classic wx debugger if BX_DEBUGGER_GUI == 1
The Windows version looks almost stable, but the GTK version fails in some cases.
That's why the classic wx debugger is still available if BX_DEBUGGER_GUI is set to 0.
- added function close_debug_dialog() to handle the simulation stop case in wx
- disable all the wx debugger related code if BX_DEBUGGER_GUI is set to 1
- added enhanced debugger specific init code similar to the code in sdl.cc
- include debugger related resources on Windows
- TODO: make the GTK / wxGTK case stable and remove the wx debugger
2013-02-12 21:08:35 +00:00
Volker Ruppert
f37d6e676f removed duplicate comment, updated / added copyright and added license
TODO: remove wx debugger and use enhanced gui debugger instead
2013-02-10 21:26:51 +00:00
Volker Ruppert
88e1033b90 the "show keyboard" dialog has been removed some time ago 2013-02-10 16:39:58 +00:00
Volker Ruppert
03440c201e - minor cleanups in the wx code 2012-08-15 12:47:08 +00:00
Volker Ruppert
4538078abb - several fixes for "2nd run" support in wx (still incomplete)
- uninstall parameter handlers (floppy, keyboard)
  - unload plugin that cannot be removed automatically
- wx: removed "show keyboard" demo and some other cleanups
- TODO: remove wx debugger and make wx work with the enhanced gui debugger
2012-08-14 19:33:24 +00:00
Volker Ruppert
e29c25d389 - implemented optional plugin control dialog 2012-02-21 12:00:54 +00:00
Volker Ruppert
d3a9768f14 - missing config dialog for CPUID options added
- prepared wx plugin control dialog
2012-02-18 16:25:10 +00:00
Volker Ruppert
d03db7f940 - several changes related to cdrom runtime configuration
* moved runtime handlers for cdrom from config.cc to the device object
  * cd media status variable is now always of type bx_bool
  * changed obsolete gui names like "cdromD" to "cdrom1"
  * TODO: implement new runtime config mechanism similar to USB
2011-06-13 09:32:39 +00:00
Stanislav Shwartsman
00981cd7a6 Adding Id and Rev property to all files 2011-02-24 22:05:47 +00:00
Stanislav Shwartsman
5fec008130 change copyright to bochs project 2009-12-04 20:02:12 +00:00
Volker Ruppert
394881ead6 - new implementation of the FloppyConfigDialog based on ParamDialog
* floppy device type selection wasn't present in the old version
  * "Create Image" button for creating floppy image with selected name and type
  * after selecting image file with "Browse", the media type is set to "auto"
    and the status is "inserted".
2009-03-27 22:22:07 +00:00
Stanislav Shwartsman
55ad3e89b6 another whitespace cleanup by Sebastien 2008-02-05 22:57:43 +00:00
Volker Ruppert
10235cb1ba - fixed floppy device presence detection for menu items and toolbar buttons
- disable floppy and cdrom toolbar buttons at runtime if the selected device is
  not present
2006-09-03 16:55:35 +00:00
Volker Ruppert
c9b4d06ff4 - fixed and improved save state dialog handling
* generic save state dialog code moved to the save_restore_handler() in gui.cc
  * the suspend button in the wxWidgets port now works and uses the new code
  * old wxWidgets save state code removed (not thread-safe)
- wxWidgets HandleAskParamString() method fixed for wxGTK (now using a temporary
  string array instead of a pointer)
2006-08-29 20:10:27 +00:00
Stanislav Shwartsman
a71543ced4 Added new (currently not connected) button for save/restore feature.
Pressing the button currently prints to the log diagnostic message.
Vaolker, could you make it call save/restore dialog and remove the button inside config dialog ?
2006-06-06 22:11:09 +00:00
Volker Ruppert
bbef36f5c1 - save/restore functions now available in wx
- config file read/save functions fixed
2006-04-12 20:51:24 +00:00
Volker Ruppert
6048821249 - fixed a warning and some remaining unicode issues
- removed unnecessary spaces after function names
2006-03-19 15:35:20 +00:00
Volker Ruppert
6106f1c905 - some more fixes for unicode support (wxT("string") conversion) 2006-03-18 16:30:52 +00:00
Volker Ruppert
154702eaca - serial, parallel and usb options rewritten to a parameter tree
- bx_init_options(): local variables cleanup
- hide floppy devtype parameter (floppy media type change support not yet complete)
- wx: menu order changed
- keyboard.cc: removed obsolete FIXME
- proposed parameter tree updated
2006-03-01 17:14:36 +00:00
Volker Ruppert
a4f412d3e8 - boot and loader options rewritten to a parameter tree
- wx: ParamDialog method EnableParam can now handle new-style parameters
- saving of pcidev options fixed
2006-02-23 22:48:57 +00:00
Volker Ruppert
d4d4cbf6dd - display and interface options rewritten to a parameter tree
- new enum parameter method get_selected() returns a pointer to the selected string
- proposed parameter tree updated
2006-02-21 21:35:09 +00:00
Volker Ruppert
509900dff4 - clock and cmos options rewritten to a parameter tree
- clock/cmos menu added in textconfig and wx
- enum parameter type now supports new parameter handling
- long text format for numeric parameters added (useful when both textconfig and
  wx are present)
- wx: handling of list flag USE_BOX_TITLE fixed
- textconfig: optional memory features moved to submenus
- siminterface generates a unique id for new parameters (used for wx dependencies)
- proposed parameter tree updated
- floppy options init code cleanup (still using old-style parameters)
2006-02-19 15:43:03 +00:00
Volker Ruppert
2a6261fba7 - cpu options rewritten to a parameter tree
- boolean parameter type now supports new parameter handling
- new parameter object constructors now supports label initialization
- bx_list_c constructor now supports title initialization
- textconfig: initial support for new parameter handling
- wx: missing CPU config dialog added
- wx: ParamDialog now handles disabled parameters correctly
- removed unnecessary spaces from function calls
2006-02-18 16:53:18 +00:00
Volker Ruppert
dfbf7c7238 - enable button "Create Image" only if a valid capacity is selected
- radio button "Not present" is not valid at runtime
- select capacity autodetection after browsing for an image
- set valid wildcard for file browser
2005-11-24 18:51:55 +00:00
Volker Ruppert
53d8ec7959 - fixed type problem in method OnTimer() (found with wxGTK 2.5.2)
- replaced obsolete method ConvertToBitmap() by wxBitmap(wxImage) constructor
- PCI config dialog must be disabled at runtime
- wxWindows has been renamed to wxWidgets, source files updated (TODO: update docs)
2004-10-03 09:11:28 +00:00
Volker Ruppert
816795805e - wx: new dialog for the pci configuration added
- fixed dependencies between ne2k and pnic options
2004-07-09 21:40:49 +00:00
Volker Ruppert
51bdc30323 - forward declaration of class DebugLogDialog is necessary for wx with debugger
- DebugLogDialog::CheckLogLength(): fixed a warning
2003-09-13 16:49:09 +00:00
Volker Ruppert
c2ea352a04 - cmos image option moved to the "Other options" dialog (cmos dialog removed)
- disable the items "Configuration interface" and "Display library" for now.
  The config interface "wx" is already active and a change is not supported yet.
2003-08-29 18:57:40 +00:00
Volker Ruppert
b78c910e8f - obsolete harddisk and cdrom dialogs removed
- wx.cc must not include wxdialog.h
2003-08-23 17:53:27 +00:00
Christophe Bothamy
62a7867e19 - add fixes for wx kindly suggested by Volker 2003-08-22 16:52:38 +00:00
Christophe Bothamy
4942684e51 - remove unused "split" disk mode
- fix value displayed in wx for clock.time0 parameter
2003-08-22 01:00:58 +00:00
Bryce Denney
6da847c3fb - fix cdrom toolbar button for wxWindows. Now it brings up the dialog for
the first cdrom.  Implemented by MyFrame::editFirstCdrom().
- eliminate OnOtherEvent and call OnEditATA directly from the event table.

Modified Files:
  gui/wxmain.cc gui/wxmain.h
2002-12-12 16:31:41 +00:00
Bryce Denney
9e0aa82ec9 - make a new dialog Edit:Speed, which includes the IPS setting and
the enable for realtime pit.
- clean up some warnings in MyPanel::OnEdit

Modified Files:
  gui/wx.cc gui/wxmain.cc gui/wxmain.h
2002-12-11 22:35:46 +00:00
Christophe Bothamy
c360ec907d - add debugger log output configuration to wxwindows interface.
this closes [ 629068 ] make a way to log debug output to file
2002-12-07 16:52:09 +00:00
Bryce Denney
cec9135e9f - Apply patch.replace-Boolean rev 1.3. Every "Boolean" is now changed to a
"bx_bool" which is always defined as Bit32u on all platforms.  In Carbon
  specific code, Boolean is still used because the Carbon header files
  define it to unsigned char.
- this fixes bug [ 623152 ] MacOSX: Triple Exception Booting win95.
  The bug was that some code in Bochs depends on Boolean to be a
  32 bit value.  (This should be fixed, but I don't know all the places
  where it needs to be fixed yet.)  Because Carbon defined Boolean as
  an unsigned char, Bochs just followed along and used the unsigned char
  definition to avoid compile problems.  This exposed the dependency
  on 32 bit Boolean on MacOS X only and led to major simulation problems,
  that could only be reproduced and debugged on that platform.
- On the mailing list we debated whether to make all Booleans into "bool" or
  our own type.  I chose bx_bool for several reasons.
  1. Unlike C++'s bool, we can guarantee that bx_bool is the same size on all
     platforms, which makes it much less likely to have more platform-specific
     simulation differences in the future.  (I spent hours on a borrowed
     MacOSX machine chasing bug 618388 before discovering that different sized
     Booleans were the problem, and I don't want to repeat that.)
  2. We still have at least one dependency on 32 bit Booleans which must be
     fixed some time, but I don't want to risk introducing new bugs into the
     simulation just before the 2.0 release.

Modified Files:
    bochs.h config.h.in gdbstub.cc logio.cc main.cc pc_system.cc
    pc_system.h plugin.cc plugin.h bios/rombios.c cpu/apic.cc
    cpu/arith16.cc cpu/arith32.cc cpu/arith64.cc cpu/arith8.cc
    cpu/cpu.cc cpu/cpu.h cpu/ctrl_xfer16.cc cpu/ctrl_xfer32.cc
    cpu/ctrl_xfer64.cc cpu/data_xfer16.cc cpu/data_xfer32.cc
    cpu/data_xfer64.cc cpu/debugstuff.cc cpu/exception.cc
    cpu/fetchdecode.cc cpu/flag_ctrl_pro.cc cpu/init.cc
    cpu/io_pro.cc cpu/lazy_flags.cc cpu/lazy_flags.h cpu/mult16.cc
    cpu/mult32.cc cpu/mult64.cc cpu/mult8.cc cpu/paging.cc
    cpu/proc_ctrl.cc cpu/segment_ctrl_pro.cc cpu/stack_pro.cc
    cpu/tasking.cc debug/dbg_main.cc debug/debug.h debug/sim2.cc
    disasm/dis_decode.cc disasm/disasm.h doc/docbook/Makefile
    docs-html/cosimulation.html fpu/wmFPUemu_glue.cc
    gui/amigaos.cc gui/beos.cc gui/carbon.cc gui/gui.cc gui/gui.h
    gui/keymap.cc gui/keymap.h gui/macintosh.cc gui/nogui.cc
    gui/rfb.cc gui/sdl.cc gui/siminterface.cc gui/siminterface.h
    gui/term.cc gui/win32.cc gui/wx.cc gui/wxmain.cc gui/wxmain.h
    gui/x.cc instrument/example0/instrument.cc
    instrument/example0/instrument.h
    instrument/example1/instrument.cc
    instrument/example1/instrument.h
    instrument/stubs/instrument.cc instrument/stubs/instrument.h
    iodev/cdrom.cc iodev/cdrom.h iodev/cdrom_osx.cc iodev/cmos.cc
    iodev/devices.cc iodev/dma.cc iodev/dma.h iodev/eth_arpback.cc
    iodev/eth_packetmaker.cc iodev/eth_packetmaker.h
    iodev/floppy.cc iodev/floppy.h iodev/guest2host.h
    iodev/harddrv.cc iodev/harddrv.h iodev/ioapic.cc
    iodev/ioapic.h iodev/iodebug.cc iodev/iodev.h
    iodev/keyboard.cc iodev/keyboard.h iodev/ne2k.h
    iodev/parallel.h iodev/pci.cc iodev/pci.h iodev/pic.h
    iodev/pit.cc iodev/pit.h iodev/pit_wrap.cc iodev/pit_wrap.h
    iodev/sb16.cc iodev/sb16.h iodev/serial.cc iodev/serial.h
    iodev/vga.cc iodev/vga.h memory/memory.h memory/misc_mem.cc
2002-10-25 11:44:41 +00:00
Bryce Denney
5e520261db Add plugin support to Bochs by merging all the changes from the
BRANCH_PLUGINS branch!

Authors:
  Bryce Denney
  Christophe Bothamy
  Kevin Lawton (we grabbed a lot of plugin code from plex86)
Testing help from:
  Volker Ruppert
  Don Becker (Psyon)
  Jeremy Parsons (Br'fin)

The change log is too long to paste in here.  To read the change log, do
  cvs log patches/patch.final-from-BRANCH_PLUGINS.gz

All the changes and a detailed description are contained in a patch
called patch.final-from-BRANCH_PLUGINS.gz.  To look at the complete
patch, do
  cvs upd -r1.1 patches/patch.final-from-BRANCH_PLUGINS.gz

Then you will have a local copy of the patch, which you can gunzip and
play with however you want.

Modified Files:
    .bochsrc Makefile.in aclocal.m4 bochs.h config.h.in configure
    configure.in gdbstub.cc logio.cc main.cc pc_system.cc
    pc_system.h state_file.h bios/Makefile.in bios/rombios.c
    cpu/Makefile.in cpu/access.cc cpu/apic.cc cpu/arith16.cc
    cpu/arith32.cc cpu/arith8.cc cpu/cpu.cc cpu/cpu.h
    cpu/ctrl_xfer32.cc cpu/exception.cc cpu/fetchdecode.cc
    cpu/fetchdecode64.cc cpu/flag_ctrl.cc cpu/flag_ctrl_pro.cc
    cpu/init.cc cpu/io.cc cpu/logical16.cc cpu/logical32.cc
    cpu/logical8.cc cpu/paging.cc cpu/proc_ctrl.cc
    cpu/protect_ctrl.cc cpu/segment_ctrl_pro.cc cpu/shift16.cc
    cpu/shift32.cc cpu/stack64.cc cpu/string.cc cpu/tasking.cc
    debug/Makefile.in debug/dbg_main.cc disasm/Makefile.in
    doc/docbook/user/user.dbk dynamic/Makefile.in fpu/Makefile.in
    gui/Makefile.in gui/amigaos.cc gui/beos.cc gui/carbon.cc
    gui/control.cc gui/control.h gui/gui.cc gui/gui.h
    gui/keymap.cc gui/keymap.h gui/macintosh.cc gui/nogui.cc
    gui/rfb.cc gui/sdl.cc gui/sdlkeys.h gui/siminterface.cc
    gui/siminterface.h gui/term.cc gui/win32.cc gui/wx.cc
    gui/wxdialog.cc gui/wxdialog.h gui/wxmain.cc gui/wxmain.h
    gui/x.cc gui/keymaps/sdl-pc-de.map gui/keymaps/sdl-pc-us.map
    gui/keymaps/x11-pc-de.map instrument/example0/instrument.h
    instrument/example1/instrument.h
    instrument/stubs/instrument.cc instrument/stubs/instrument.h
    iodev/Makefile.in iodev/biosdev.cc iodev/biosdev.h
    iodev/cdrom.cc iodev/cmos.cc iodev/cmos.h iodev/devices.cc
    iodev/dma.cc iodev/dma.h iodev/eth_fbsd.cc iodev/eth_linux.cc
    iodev/eth_null.cc iodev/eth_tap.cc iodev/floppy.cc
    iodev/floppy.h iodev/guest2host.cc iodev/guest2host.h
    iodev/harddrv.cc iodev/harddrv.h iodev/iodebug.cc
    iodev/iodebug.h iodev/iodev.h iodev/keyboard.cc
    iodev/keyboard.h iodev/ne2k.cc iodev/ne2k.h iodev/parallel.cc
    iodev/parallel.h iodev/pci.cc iodev/pci.h iodev/pci2isa.cc
    iodev/pci2isa.h iodev/pic.cc iodev/pic.h iodev/pit.cc
    iodev/pit.h iodev/pit_wrap.cc iodev/pit_wrap.h iodev/sb16.cc
    iodev/sb16.h iodev/scancodes.cc iodev/scancodes.h
    iodev/serial.cc iodev/serial.h iodev/slowdown_timer.cc
    iodev/slowdown_timer.h iodev/unmapped.cc iodev/unmapped.h
    iodev/vga.cc iodev/vga.h memory/Makefile.in memory/memory.cc
    memory/memory.h memory/misc_mem.cc misc/bximage.c
    misc/niclist.c
Added Files:
    README-plugins extplugin.h ltdl.c ltdl.h ltdlconf.h.in
    ltmain.sh plugin.cc plugin.h
2002-10-24 21:07:56 +00:00
Bryce Denney
af6299e1d4 - make menu text more clear: now it says "Debug Console" instead of "Show Log"
- modified: gui/wxmain.cc gui/wxmain.h
2002-10-10 15:44:34 +00:00
Bryce Denney
77a2d3fc89 - fix bug 619320 "wx: clicking mouse enable btn different". Now both
the toolbar button and the mouse capture shortcuts (F12 and middle button)
  call ToggleMouse().  The only difference is that the first time you
  press the toolbar button it gives a little message about mouse capture
  and how to turn it off.
- modified: gui/wx.cc gui/wxmain.cc gui/wxmain.h
2002-10-07 04:49:50 +00:00
Bryce Denney
84c33ec824 - I was getting occasional thread bugs and crashes when I click on
Quit while the simulation was running.  I used to just do
  wxFrame::Close(TRUE) in the wxwindows thread, but the simulation
  thread would keep on running even after the window had disappeared.
  If the simulation thread sent any messages to the gui, it could
  segfault.  Now, when you click on Quit it asks the simulator to
  quit, but does not close the gui.  When the simulator thread finally
  quits, THEN it calls wxFrame::Close(TRUE) from the sim_thread (with
  appropriate gui mutex).  Such tricks are only needed when the
  simulation is running.  I hope this will fix bug #616142: "wx: crash
  from events after gui shutdown".
- move MyFrame::closing flag out into a global variable wxBochsClosing
  so that it will be valid even when the MyFrame is deleted.  See
  comments on in wxmain.h.
- when wxBochsClosing is set, don't create any new windows.  If any
  errors appear, just print them to stderr because the gui is just
  about to be closed.
- fix comment in SimThread::Entry to talk about longjmp instead of
  kill_bochs_request
- (minor) move contents of DefaultCallback2 into DefaultCallback.  It
  doesn't refer to the wxApp at all.  This is a bit safer in case it
  gets called when the wxApp is in the process of being deleted.
- modified: gui/wxmain.cc gui/wxmain.h
2002-10-07 04:01:00 +00:00
Bryce Denney
a4f0c5b53e - move read configuration and save configuration behavior out of wx.cc
and into wxmain.cc, like other actions.
- set a default siminterface callback for the whole application, which is used
  whenever the simulator is not running.  This is important when the wx code
  calls simulator or param code and triggers a BX_PANIC or something.
  The default callback is responsible for displaying error messages which
  appear while reading the bochsrc, for example.
- move the implementation of BX_SYNC_EVT_LOG_ASK and BX_ASYNC_EVT_LOG_MSG
  into a separate function OnLogMsg().  In the future, OnLogMsg() may be called
  from the application default callback on errors.
- modified: gui/wx.cc gui/wxmain.cc gui/wxmain.h
2002-09-25 18:40:15 +00:00
Christophe Bothamy
440dffc803 - applied patch.4ata-channels and patch.4ata-channels.bbd
- Features :
 . number of active channels defined at boot-time config
 . new options in bochsrc
 . up to 8 devices support (disks or cdroms)
 . up to 4 cdrom devices can be changed at runtime config
 . wxwindows config interface
2002-09-22 20:56:12 +00:00
Bryce Denney
375fcf648b - plug up some memory leaks in wxWindows code, with help from Valgrind
- MyPanel::blankCursor
  - MyFrame::panel
  - AdvancedLogOptions::action (2d array of wxChoice *'s)
  - ParamDialog::idHash, ParamDialog::paramHash, and ParamStructs
  - file dialog in BrowseTextCtrl
- fix illegal use of a wxObject.  I had been clearing the ParamStruct
  with memset(), but I forgot that ParamStruct was a subclass of wxObject
  so I was trashing the wxObject fields too!  Instead I created a
  ParamStruct constructor that clears the pointers to NULL.
- comment out debug output from AdvancedLogOptionsDialog::SetAction
- modified files: gui/wx.cc gui/wxdialog.cc gui/wxdialog.h
  gui/wxmain.cc gui/wxmain.h
2002-09-20 21:25:09 +00:00