2366 Commits

Author SHA1 Message Date
Bryce Denney
d1196d1996 - clean up the command line argument parsing. Before, we had two slightly
different versions of the code for wxWindows and non-wxWindows and the GDB
  stub did not accept any command line options at all.
- IMPORTANT CHANGE: the quick start option used to cause two things:
  1) read the bochsrc immediately, 2) start simulation immediately without
  going into the config interface.  This has changed in a subtle way.
  Now, we always try to read the bochsrc immediately.  Then if the quick
  start option is on, we start the simulation immediately.
- add "Restore Factory Default Configuration" in text config menu.  It was
  already there in wx.  Now the default choice is always "5. Begin simulation"
  and because the bochsrc is always read now, this works.
- When the user chooses "Read configuration file" from either text mode
  or wx interfaces, reset all bochs parameters first, then read in the
  new file.  This means that every time you read a configuration file
  you are starting from a consistent "blank slate".
- move much of the code from bx_do_text_config_interface into bx_init_main
  so that wxWindows and non-wxWindows code uses the same logic.  There was
  only a tiny bit left in bx_do_text_config_interface so I eliminated it.
- move the "help" message into a separate function print_usage()
- detect all flags (cmdline args that start with -) in a loop, instead of
  a big if/else.  This makes it easy to add others.
- fix problem with Carbon gui, so that -psn arg gets ignored
- print usage if you type -h, --help, or if flags are not recognized
- code that called io->set_log_action (that sets the log action for all
  devices) was only called if the configuration interface was on; I'm not
  sure why.  Now it is called all the time.
- the wxWindows equivalent of main() is called MyApp::OnInit.  Now OnInit
  and main() are very similar.  They both call bx_init_siminterface, then
  bx_init_main (and quit if it fails), then show the config interface if
  quickstart is off, and then simulate.
- modified: main.cc gui/control.cc gui/wxmain.cc
2002-10-14 13:37:20 +00:00
Bryce Denney
bb9fd8ae22 - strncpy not guaranteed to null terminate, so do it. 2002-10-14 13:31:25 +00:00
Bryce Denney
c07f5836f3 - move definition of bx_address earlier, just after the Bit32u and Bit64u
types are defined.  This should ensure that bx_address is defined by
  the time it's needed.
2002-10-13 22:38:17 +00:00
Bryce Denney
d39ccd1003 - no longer needed now that wxWindows 2.3.3 is released 2002-10-13 22:08:42 +00:00
Christophe Bothamy
b0972a74a4 - deleted since it's been included in main code long ago 2002-10-13 21:59:34 +00:00
Christophe Bothamy
87337ac2a2 - delete patch as it's been included in main code long ago 2002-10-13 21:58:24 +00:00
Volker Ruppert
ae0bb040d9 - in VERR / VERW function: changed BX_ERROR to BX_DEBUG. According to the i386
opcode description there is no error present.
2002-10-13 15:34:49 +00:00
Volker Ruppert
90e861cf97 - 3 missing GDK keysyms added 2002-10-13 11:07:44 +00:00
Volker Ruppert
df6512abd5 - check for the platform WIN32 instead of the gui
- FIXME: the symbols 'BX_WITH_MACOS' and 'macintosh' both appear in the floppy
  code. I don't know what's okay there.
2002-10-13 09:40:05 +00:00
Volker Ruppert
0a89fc3352 - sequencer reset bits renamed to 'reset1' and 'reset2'
- default value of the sequencer reset bits is 1 (no reset)
- sequencer reset flag 1 resets the charmap select register when cleared
- skip the screen update when the sequencer is in reset mode (h/v sync and
  video ram refresh are disabled in that case)
- don't clear the memory update flag before the update is done
- skip the text screen update when the character height is set to 1 (MSL = 0)
- sequencer debug messages updated
2002-10-13 08:14:31 +00:00
Volker Ruppert
53ceefc3c7 - keysym for the "AltGr" key added (SDLK_RMETA = BX_KEY_ALT_R) 2002-10-12 13:10:09 +00:00
Volker Ruppert
8eafe97e14 - check for the platform __BEOS__ instead of the gui
- fixed a warning
2002-10-12 13:09:32 +00:00
Volker Ruppert
fb6fe521a2 - the "AltGr" key on European keyboards works now (wxbochs on win32 only) 2002-10-12 09:04:50 +00:00
Stanislav Shwartsman
b4f1a57924 Merged BOCHS-SSE branch with latest main trunk sources 2002-10-11 17:56:56 +00:00
Kevin Lawton
491ca837f9 Fixed double quadword routines to work for little or big endian hosts. 2002-10-11 16:18:00 +00:00
Kevin Lawton
cffded3829 Simple implementations of the new double quadword functions in
access.cc for SSE[2] implementation by Stanislav.
2002-10-11 13:55:26 +00:00
Bryce Denney
14f9f230a8 - in OR_ALIb the local variable "sum" was changed to "result" but the
non-host-asm line at the end still said "sum".  Fixed.
2002-10-11 13:50:14 +00:00
Bryce Denney
be8db98f49 - applied in cvs 2002-10-11 13:21:34 +00:00
Bryce Denney
909b3104d9 - replace autoconf standard AC_SYS_LARGEFILE with wxWindows's AC_SYS_LARGEFILE
that actually works.
- modified: configure.in configure
- added:: aclocal.m4
2002-10-11 13:21:15 +00:00
Bryce Denney
d54402bfbd - this patch creates a new configure test which detects largefiles flags
correctly.  It is based on code from wxWindows, so I have asked
  Vadim Zeitlin for permission to include it.
2002-10-11 05:01:38 +00:00
Kevin Lawton
3183ab7102 Added some preliminary configure and config.h stuff for
SSE/SSE2 for Stanislav.  Also, some method prototypes and
  skeletal functions in access.cc for read/write double quadword
  features.

Also cleaned up one warning in protect_ctrl.cc for non-64 bit compiles.
  There was an unused variable, only used for 64-bit.
2002-10-11 01:11:11 +00:00
Volker Ruppert
445638e312 - new German keymap for SDL on X11 2002-10-10 18:30:16 +00:00
Volker Ruppert
a68e648853 - use keyboard mapping for keyup messages too 2002-10-10 18:02:08 +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
Volker Ruppert
45720388bf - fixed some keymap entries 2002-10-09 18:08:42 +00:00
Volker Ruppert
e6f50cfabb - ascii chars are always Bit8u values (Bit32s has generated negative values for
codes > 0x7f)
2002-10-09 17:49:44 +00:00
Stanislav Shwartsman
30060682c1 Removed duplicate depencies list for mmx.cc 2002-10-08 21:31:56 +00:00
Stanislav Shwartsman
718d6e9814 Little bug fix 2002-10-08 21:30:50 +00:00
Bryce Denney
f133c6d1d0 - avoid a potential deadlock: if waiting for a sync response, stop waiting
if the gui wants to close.
2002-10-08 18:28:58 +00:00
Christophe Bothamy
cf33240efc This patch adds Tekram DC280E VLB-IDE support to Bochs.
This card has 2 ata channels, so this would be better
than the promise DC2300.  It also has drivers for win95,
available on tekram website.

Many thanks to Volker for fixing the interrupt bug!
It solved the problem I had with this patch...
2002-10-08 15:02:23 +00:00
Peter Tattam
b968c4e5c8 Latest round of patches/fixups to get 64 bit emulation further.
This is an interim update to allow others to test.

We have userland code running!!! (up to a point)

Able to start executing "sash" as /sbin/init in userland from linux 64 bit
kernel until it crashes trying to access a null pointer.  No kernel panics
though, just a segfault loop.
2002-10-08 14:43:18 +00:00
Bryce Denney
faff1d8715 - There can be no doubt that this is thoroughly out of date. 2002-10-08 07:29:21 +00:00
Bryce Denney
2fe9b943b6 - tweak parameters, at request of Bernd Korz 2002-10-08 07:09:58 +00:00
Bryce Denney
c74b8c55fc - add key mapping for SDL gui, to demonstrate/verify that key mapping is not
specific to X windows.  I changed a few names of variables and methods to
  sound less X windows specific, for example in the BXKeyEntry struct
  the "xwinKey" field is now called "hostKey".
- remove the hacks in bx_keymap_c::loadKeymap that checked that every
  keysym started with "XK_".  Now I can still make that check, but it
  is done in x.cc's convertStringToXKeysym() instead.
- in sdl.cc, load the keymap in specific_init function.  I had to
  create a conversion function from SDL key names to SDLkey values.
  I created a table of key names and associated values, and I just
  do a strcmp on each name.  It's not a fast algorithm obviously but this
  conversion only has to be done for maybe 200 keys at startup time.
- added a key map file for SDL called sdl-pc-us.map.  Since this has
  basically all the SDLK_* symbols defined, it is a good starting point
  if you need to make any other keymaps.
- modified: gui/keymap.cc gui/keymap.h gui/sdl.cc gui/x.cc iodev/keyboard.cc
- added: gui/sdlkeys.h gui/keymaps/sdl-pc-us.map
2002-10-08 06:14:53 +00:00
Kevin Lawton
b8d7f5c88e Moved the asm() statements from the arithmetic instruction emulation
into inline functions with asm() statements in cpu.h.  This cleans
  up the *.cc code (which now doesn't have any asm()s in it), and
  centralizes the asm() code so constraints can be modified in one
  place.  This also makes it easier to cover more instructions
  with asm()s for more efficient eflags handling.
2002-10-07 22:51:58 +00:00
Bryce Denney
0dd8da13d5 - Always enable the line that does
wxLog::SetActiveTarget (new wxLogStderr ());
  which used to be inside #ifdef __WXDEBUG__ ... #endif.  This fixes the
  problem of tons of little debug message dialogs appearing in wxwindows
  libraries built without debug support.
- This reverts revision 1.61.  I cannot figure out why I had trouble back on
  Sept 27, because now both my debug and release libraries work ok with the
  SetActiveTarget line.
2002-10-07 17:18:04 +00:00
Volker Ruppert
d460ec396a - harddisk controller interrupt must be enabled after a reset and the
completion of a read or write operation
- int13_harddisk function 0x00 calls ata_reset()
2002-10-07 16:16:04 +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
Kevin Lawton
d7a16521c4 Replaced "return;" statements associated with bx_guard.special_unwind_stack
hack with longjmp() back to cpu.cc main decode loop, and added a
  check in there to return control when bx_guard.special_unwind_stack
  is set (compiling with debugger enabled only).

If in the debugger you try to execute further instructions
  (which you shouldn't), other fields need to be reset I would
  think, such as EXT and errorno, and have to make sure ESP/EIP
  are corrected properly.  Basically, this hack is only good
  for examining the current situation of a nasty fault.
2002-10-06 22:08:18 +00:00
Kevin Lawton
c6350caa48 Removed several "#if BX_CPU_LEVEL < 2" clauses, since stack64.cc
is only compiled for x86-64.
2002-10-06 21:38:02 +00:00
Stu Grossman
81f089da2e - Fix several bugs with uninitialized fields in sockaddr_in. Now this code
works under FreeBSD.
- Fix some formatting problems with long lines.
- Cleanup wait_for_connect().  Only set SO_REUSEADDR once.  Reuse sockaddr for
  bind() and accept().
- Turn on TCP_NODELAY to speed up GDB remote protocol transactions.
- In bx_gdbstub_init(), remove `Communicating...' message.  Add a `Waiting...'
  message just before calling wait_for_connect() to give the user some idea
  that the emulator is waiting for something.
2002-10-06 20:43:02 +00:00
Volker Ruppert
3c769207e2 - fixed some warnings at BX_INFO, BX_PANIC, BX_ERROR and BX_DEBUG 2002-10-06 20:19:03 +00:00
Bryce Denney
849bb18274 - remove example lines that have # comments. the parser can't handle them. 2002-10-06 19:39:20 +00:00
Volker Ruppert
75ba36cb15 - fixed some warnings at BX_INFO, BX_PANIC, BX_ERROR and BX_DEBUG 2002-10-06 19:38:54 +00:00
Bryce Denney
555e1d03e1 - set the quit context to NULL after it is no longer usable. I don't want
anybody jumping back because the pointer was still lying around.
- modified: gui/wxmain.cc main.cc
2002-10-06 19:21:05 +00:00
Bryce Denney
c818baa0c9 - modified every I/O device so that it will not re-register its timers
if init() is called a second time.  This allows me to restart a
  simulation (wxwindows interface only) without restarting the whole
  application.
- modified: iodev/*.cc
2002-10-06 19:04:47 +00:00
Kevin Lawton
2baf4372d1 Got rid of Ctrl-M's in exception.cc, introduced with the
implementation of SYSCALL.
2002-10-06 18:05:21 +00:00
Bryce Denney
6dff398915 - remove tabs 2002-10-06 17:49:11 +00:00
Kevin Lawton
361835824c unregisterTimer() really frees the timer slot. Added a new field
in pc_system.h to flag each timer slot as being allocated or not.
  register_timer*() functions will claim a free slot if one
  exists before using one at the end of the list.  This will allow
  for this function to be called repeatedly and not have to run
  out of timer slots.
2002-10-06 17:29:22 +00:00