Commit Graph

1723 Commits

Author SHA1 Message Date
Volker Ruppert
8fde5ecfaf - implementation of the DMA controller reset
- new function reset_controller() resets the specified controller
- reset code removed from init()
- "master disable" uses the new reset function
2002-08-28 19:39:00 +00:00
Bryce Denney
3f9155c050 - when the device is reset via control register, it is BX_RESET_SOFTWARE 2002-08-28 16:55:16 +00:00
Bryce Denney
2594c18521 - revert previous revision to take out reset() method. The cdrom_interface
object is an interface to the host OS, not really a hardware device, so it
  probably doesn't need a reset().
2002-08-28 16:45:18 +00:00
Bryce Denney
8068f3b8e5 - update dialog box sketches 2002-08-28 15:28:24 +00:00
Bryce Denney
17da6fe3c1 - add HDConfigDialog box for wxWindows for editing hard disk params.
Now you can edit floppy and hard disk parameters using dialogs.
2002-08-28 15:27:26 +00:00
Bryce Denney
02bae6a701 - now I need names for both floppy and HD 2002-08-28 15:26:09 +00:00
Bryce Denney
eca0f0bb57 - add "name" for 1st and 2nd floppy disks. For now, name them a: and b: for
win32 only, and 0 and 1 elsewhere.
2002-08-28 08:29:19 +00:00
Bryce Denney
a08cf194c5 - add another wxWindows dialog, FloppyConfigDialog, which lets you
choose the filename and capacity of a floppy image.  This dialog
  can recognize a list of names as physical disk drives, and it has a
  Browse button so that you can click on a new image intead of having
  to type it.  If you press ok, then the Bochs parameters are updated.
- eventually we should make a function that makes a list of the
  physical devices that should be mentioned here.  For Windows it should
  say "Physical drive A:" for "a:", while on Linux it should say
  "Physical drive fd0" for "/dev/fd0" or something.  Even if bochs
  doesn't find the correct physical disk drives, you can still type
  whatever file name you want.
2002-08-28 07:54:53 +00:00
Bryce Denney
4d1aede4d7 - add comment that warns that gui/wxmain.cc depends on the order of
floppy parameters in the bx_list_c.
2002-08-28 07:45:30 +00:00
Bryce Denney
7fc65e2e25 - add first custom dialog box to the wxWindows interface in
gui/wxdialog.h and gui/wxdialog.cc.  The first dialog box is
  called LogMsgAskDialog.  It displays panic messages and asks if you
  want to continue, quit, etc.
2002-08-28 03:20:23 +00:00
Bryce Denney
67f9213460 - eliminate unused BX_ASYNC_EVT_SHUTDOWN_GUI event. 2002-08-28 03:14:53 +00:00
Bryce Denney
c6277af486 - no longer include prefix in the ask() message string. The code that has to
print the message will have access to the prefix too.
2002-08-28 03:06:12 +00:00
Bryce Denney
f78b7ca3b4 - update makefile dependencies 2002-08-28 03:02:56 +00:00
Bryce Denney
e1df049256 - add patch submitted by Kevin Lawton on ML 2002-08-27 23:00:58 +00:00
Bryce Denney
44ec9a0fc8 - update Makefile dependencies on nearly everything 2002-08-27 22:43:57 +00:00
Bryce Denney
fa63941b96 - attempt to fix compile when loader and debugger are both enabled.
This isn't the biggest problem though...the biggest problem is that
  loader.cc and bx_loader.cc haven't been in the source for 2+ years.
2002-08-27 21:32:03 +00:00
Bryce Denney
c6c0667d2c - bx_devices.reset() method now takes one arg 2002-08-27 21:30:48 +00:00
Bryce Denney
a7e9c74a0e - bx_devices.reset now requires a type arg: BX_RESET_HARDWARE 2002-08-27 20:09:00 +00:00
Bryce Denney
7fdc7303c2 - add "void reset(unsigned type)" method to every I/O device.
Some devices already had one.  Some I had to add an empty one.
  I did a little cleaning of init() methods to make them more uniform
  but generally I left them alone.
- I also put these exact diffs into a patch "patch.iodev-add-reset"
  in case I want to revert these changes for some reason, for example
  if they break an old patch.  It should be deleted after a while.
2002-08-27 19:54:46 +00:00
Bryce Denney
1a7dcbfe86 - update dependencies by running gcc -MM again 2002-08-27 19:50:27 +00:00
Volker Ruppert
3d8bb578df - moved the timer init code from the constructor to init_ips() 2002-08-27 18:53:30 +00:00
Bryce Denney
6bbf7d5957 - use setjmp() and longjmp() to quit the simulation thread cleanly.
I use setjmp() to save the context just before calling
  bx_continue_after_config_interface().  Then, in
  bx_real_sim_c:quit_sim, I use longjmp() to jump back to that context.
  This happens in main.cc and in gui/wxmain.cc (wxWindows only).
  I haven't tested with the debugger yet.  Possibly with debugger
  the quit longjmp() should jump back to the debugger prompt loop
  instead of actually quitting the program.
- clean up BX_ASYNC_EVT_LOG_MSG implementation by creating a different,
  synchronous event called BX_SYNC_EVT_LOG_ASK.  The async event
  could be used to simply tell the CI that an event has occurred,
  for example if the user wanted to view the events on screen
  (not implemented).  The sync event is used when you want the user
  to respond before the simulation can continue, such as a for the
  "panic=ask" behavior.
- in wxmain.cc, move the updates to the Start,Stop,Pause,Resume menu
  items into a separate method simStatusChanged().  This makes the code that
  does important stuff more readable.
- remove wxMutexGuiEnter()/Leave() from MyFrame::OnSim2CuiEvent().
  This method is an event handler called in the gui thread, so it
  already has the gui lock.  This call caused thread lock on my linux
  box.
2002-08-27 18:11:13 +00:00
Volker Ruppert
46140ac6ce - moved the initialization of the io read/write and irq register structures
from the constructur to the init function
- moved the cmos reset from init() to the devices reset function
2002-08-27 17:25:18 +00:00
Volker Ruppert
9985b80617 - fixed hexadecimal format of BX_DEBUG, BX_INFO and BX_PANIC messages 2002-08-27 17:24:36 +00:00
Bryce Denney
53a9f78a46 - in wxWindows, we can start simulation, stop, reinitialize, and start
again.  This means that the simulation needs to stop in a consistent state,
  including the "reentry check" variables in logfunctions::fatal() and
  logfunctions::ask().
- fatal() is supposed to quit the simulation. add a clear panic message if it
  doesn't quit, but remove the reentry check.  The reentry check was causing
  problems when you stop and start the simulation again.
- in ask(), keep the reentry check but set in_ask_already=0 before
  calling fatal() so that ask() works if we start the simulation again.
  and complain if fatal() fails to die.
2002-08-27 17:03:03 +00:00
Bryce Denney
942d593acf - now #if !BX_WITH_WX...#endif is around the whole
bx_do_text_config_interface() to make it clear that it's not used
  with wxWindows.  Before, it was around only the line of that function that
  failed to compile.
2002-08-27 16:43:40 +00:00
Volker Ruppert
9882c64fb6 - removed unused static char *ask_about_config_interface
- changed quickstart option in start menu help text to -q
2002-08-27 16:27:57 +00:00
Volker Ruppert
4a520f0cbe - changed bochs start option to -q 2002-08-26 20:39:06 +00:00
Bryce Denney
10f56f60d1 - I thought I would add mmx.o ONLY when --enable-mmx was present. Stanislav
has been assuming we would compile mmx.o all the time, so I took out the
  conditional compile stuff.
2002-08-26 19:07:00 +00:00
Bryce Denney
edc4d5045f - removed -nocontrolpanel and -nocp arguments. It was never documented,
and is now replaced by -q, which IS documented thanks to Volker.
2002-08-26 18:05:16 +00:00
Bryce Denney
61ff7bbb06 - fix it so that cpu/mmx.o is compiled in when MMX is enabled. 2002-08-26 16:40:21 +00:00
Bryce Denney
f780d81523 - recreate dependencies by running the gcc -MM thing again
- include references to mmx.o but leave it commented until it actually
  gets checked in.
2002-08-26 16:22:07 +00:00
Bryce Denney
bc78eaaa76 - add configure option --enable-mmx to prepare for Stanislav Shwartsman's
MMX patch
2002-08-26 16:17:10 +00:00
Bryce Denney
26385f2866 - I've added lots of comments in siminterface.h, and tried to clean up
the terminology a bit.  In particular, the term "gui" has started
  to mean different things in different contexts, so I've defined
  some more specific names for the parts of the user interface, and
  updated comments and some variable names to reflect it.  See
  siminterface.h for a more complete description of all of these.

    VGAW: VGA display window and toolbar buttons, the traditional Bochs
      display which is ported to X, win32, MacOS X, etc.  Implemented
      in gui/gui.* and platform dependent gui/*.cc files.
    CI: configuration interface that lets the user change settings such
      as floppy disk image, ne2k settings, log options.  The CI consists
      of two parts: configuration user interface (CUI) which does the
      actual rendering to the screen and handles key/mouse/menu events,
      and the siminterface object.
    CUI: configuration user interface.  This handles the user interactions
      that allow the user to configure Bochs.  To actually change any
      values it talks to the siminterface object.  One implementation of
      the CUI is the text-mode menus in gui/control.cc.  Another
      implementation is (will be) the wxWindows menus and dialogs in
      gui/wxmain.cc.
    siminterface: the glue between the CUI and the simulation code,
      accessible throughout the code by the global variable
        bx_simulator_interface_c *SIM;
      Among other things, siminterface methods allow the simulator to ask the
      CUI to display things or ask for user input, and allows the CUI
      to query and modify variables in the simulation code.


    GUI: Literally, "graphical user interface".  Until the configuration menus
      and wxWindows came along, everyone understood that "gui" referred to the
      VGA display window and the toolbar buttons because that's all there
      was.  Now that we have the wxWindows code, which implements both the VGAW
      and the CUI, while all other platforms implement only the VGAW, it's not
      so clear.  So, I'm trying to use VGAW, CI, and CUI consistently since
      they are more specific.
    control panel: This has been used as another name for the configuration
      interface.  "control panel" is also somewhat unspecific and it sounds
      like it would be graphical with buttons and sliders, but our text-mode
      thing is not graphical at all.  I've replaced "control panel" with
      "configuration interface" wherever I could find it.  In configure script,
      the --disable-control-panel option is still supported, but it politely
      suggests that you use --disable-config-interface instead.
- clean up comments in siminterface,wx* code
- add comments and examples for bx_param_* and BxEvents
- remove some obsolete stuff: notify_*_args,
  bx_simulator_interface_c::[sg]et_enabled() methods
- in siminterface.cc, move a few bx_real_sim_c methods to where they belong,
  with the rest of the methods.  No changes to the actual methods.
- remove some DOS ^M's which crept in and confused my editor.
2002-08-26 15:31:23 +00:00
Bryce Denney
f8df133a82 - SIM->get_enabled() SIM->set_enabled() were no longer useful, since they
mirrored the use of enable_control_panel exactly.  This should not cause
  any change in behavior, and it lets me eliminate these methods which
  don't make much sense anymore.
2002-08-26 11:37:55 +00:00
Volker Ruppert
026f0dcb8d - disable menu items "New Configuration" and "Read Configuration" when the
simulation thread starts
2002-08-25 20:35:19 +00:00
Volker Ruppert
6055c158e9 - wx gui menu functions "Read Configuration" and "Save Configuration" implemented
- loading default bochsrc for the wx gui no longer necessary
- the wx gui version of bochs now accepts the same command line arguments as
  the other guis
2002-08-25 15:51:46 +00:00
Volker Ruppert
dc07804616 - simple user shortcut dialog for wxWindows added
- floppya, floppyb and cdromd handlers: don't change anything when the user has
  cancelled the dialog
2002-08-25 12:32:54 +00:00
Volker Ruppert
4a58339cad - pass command line arguments to function bx_init_main() 2002-08-25 09:54:05 +00:00
Volker Ruppert
28e06c07a0 - the changes are present in CVS and these files are no longer needed 2002-08-25 09:12:55 +00:00
Volker Ruppert
95771fe0e5 - command line parameter --help added
- this changes also fix a carbon gui compile problem (SF bug #594718)
2002-08-25 08:31:16 +00:00
Bryce Denney
e352d0b871 - oops, I used BX_CPU_THIS_PTR outside of the cpu object. Changed the
reference to BX_CPU(0) which is legal even when BX_USE_CPU_SMF is off.
2002-08-25 05:21:16 +00:00
Bryce Denney
c81a354ebf - this adds a configure option --enable-external-debugger for use with
Peter Tattam's external debugger.  So far the external debugger only
  works on win32 platforms if you download Peter's DLL.
2002-08-25 05:02:38 +00:00
Volker Ruppert
db4c7ca718 - don't try to open a serial connection when the device string is empty
- do read/write operations only when tty_id is valid
2002-08-24 19:03:43 +00:00
Volker Ruppert
eda0dc5c7e - renamed serial and parallel options "Opresent" to "Oenabled" and "*_PRESENT"
to "*_ENABLED"
- bx_serial_options for all 4 ports moved into an array com[4]
- serial port com1 is enabled by default
- detection of com2, com3 and com4 config options disabled for now
- new parameter "enabled" added to the serial bochsrc options
- error handling for serial and parallel bochsrc options changed. The unhandled
  BX_PANICs are replaced by BX_ERRORs.
- new function bx_write_serial_options() added
- serial destructor restores original terminal settings only when serial port
  is enabled and the tty_id is valid
2002-08-24 17:11:33 +00:00
Volker Ruppert
ea1cec39a7 - added section SYNOPSIS and descriptions for the new command line options
-q and -qf
- the link to "Bug Reports" can be found under "Feedback", not "Features"
2002-08-24 12:18:07 +00:00
Volker Ruppert
56952f9132 - parport1 enable/disable support added. Now you can control the presence of
parport1 with the new option "enabled". The old option "enable" only
  controlled the output. The parport1 is enabled with no output by default.
  Changes:
  * bochrc option "enable" replaced by "enabled"
  * parport option "Oenable" replaced by "Opresent"
  * bx_parport_options par1 and par2 replaced by an array par[2]
  * initialize parport1 resources only when enabled
  * renamed variable "parport_init_list" to "par_ser_init_list" since it
    contains parport and serial options
  * documentation and bochsrc updates
- the parport variables "output" and "initmode" now belong to the bx_par_t
  structure
- TODO: add parport2 (disabled by default), parport detection in the bios
2002-08-24 10:20:35 +00:00
Volker Ruppert
eb0e95f54d - check for bx_options.sb16.Opresent added in init() and the destructor
(SB16 was always enabled before)
- call finishmidifile() and finishvocfile() in the destructor only if the
  files are vaild
2002-08-23 18:12:02 +00:00
Christophe Bothamy
b42c7228f0 - moved optrom[1-4] options to an array of 4 elements.
Option reading/writing should really be done in a for loop.
  This was just a test to check if the new ata options could
  be handled that way.
2002-08-22 22:38:40 +00:00
Christophe Bothamy
65b715a6ed - fixed test for NE2K_OBJ 2002-08-22 22:21:19 +00:00