Commit Graph

2410 Commits

Author SHA1 Message Date
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
Christophe Bothamy
cec1c57d98 - merged Bryce's patch and mine
- preparing for commit of all the changes. We'll keep this patch in case something goes wrong
2002-09-22 20:51:05 +00:00
Bryce Denney
a785453194 - fixed another case of get_##flag##(void) 2002-09-22 19:06:46 +00:00
Bryce Denney
fda29cd55b - in definition of ArithmeticalFlag, we had "getB_##flag##(void)",
which says to paste getB_ with flag and then paste with (.  It should
  be "getB_##flag(void)".  Some preprocessors are complaining about pasting
  the symbol with the paren.
2002-09-22 19:03:24 +00:00
Kevin Lawton
b742ccec7e Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead
of (1 & (val32>>N)), and added a getB_?F() accessor for special
  cases which need a strict binary value (exactly 0 or 1).  Most
  code only needed a value for logical comparison.  I modified the
  special cases which do need a binary number for shifting and
  comparison between flags, to use the special getB_?F() accessor.

Cleaned up memory.cc functions a little, now that all accesses
  are within a single page.

Fixed a (not very likely encountered) bug in fetchdecode.cc (and
  fetchdecode64.cc) where a 2-byte opcode starting with a prefix
  starts at the last offset on a page.  There were no checks
  on the segment overrides for a boundary condition.  I added them.

The eflags enhancements added just a tiny bit of performance.
2002-09-22 18:22:24 +00:00
Bryce Denney
ec18d9b956 - add $(srcdir) in macosx install lines, so that it works in VPATH build 2002-09-22 17:43:38 +00:00
Bryce Denney
ac4e5bb6cf - add sanity checks
- don't allow MMX on cpu level < 5.
  - require FPU support on cpu level >= 55
  - don't allow MMX support without FPU support (moved this check from
    cpu/i387.h to config.h)
2002-09-22 16:11:12 +00:00
Bryce Denney
e3e16682df from Peter Tattam: in MOVSX_GqEd, typecast op2 to Bit32s instead of Bit16s 2002-09-22 15:42:09 +00:00
Bryce Denney
6b5192d98a - from Peter Tattam: fixed invalid instructions for 64 bit mode 2002-09-22 15:29:51 +00:00
Bryce Denney
17f873abc3 - these fixes are from Psyon
- PacketSetReadTimeout: instead of calling with a very short timeout,
  now we call it with -1 which means no timeout.
- Psyon found that Peter Tattam's changes, while necessary for win95, broke
  WinNT/2000.  So now on Windows NT/2000, we still call
  WaitForSingleObject(lpAdapter->ReadEvent,0) but we ignore the return value.
2002-09-22 14:58:49 +00:00
Jeroen Janssen
53723a8569 hopefully solved bugreport [ 612741 ] VBE mem conflicts w/ local APIC address 2002-09-22 11:31:48 +00:00
Bryce Denney
2b7654a37d - fixed "macro expands to nothing" by renaming the macro 2002-09-22 07:23:26 +00:00
Bryce Denney
c382348cbf - add CopyParamToGui() to DebugLogDialog, which is empty for now. 2002-09-22 04:52:55 +00:00
Bryce Denney
adeb5331f6 - I used to have a method called ParamDialog::Refresh() that reread all the
parameter values associated with the dialog and updated the wxWindows
  controls.  At the time I didn't realize that I was overriding
  wxWindow::Refresh() which repaints the window.  Later, I renamed the method
  to CopyParamToGui() to make it more clear, but many of the callers in
  wxmain.cc continued to call Refresh(), which now reverted to the parent class
  wxWindow::Refresh().  Since there was no compile error I didn't notice for a
  while, but it caused the ParamDialogs to repaint themselves constantly but
  never actually change their values.  This is now fixed by changing those
  method calls to CopyParamToGui().
2002-09-22 04:36:09 +00:00
Bryce Denney
85a7d1dad8 - on win32, the wxWindows interface was never redrawing the screen since I
started using a wxTimer to trigger the redraws.  Now instead of calling
  MyPanel::OnPaint directly, I call Refresh() instead.  This makes the Windows
  display work correctly.
2002-09-22 04:04:40 +00:00
Bryce Denney
5933d94c91 - add typecast to Bit32u to avoid lots of useless -Wall warnings. The constant
expression on the right side of the comparison was turning out signed, while
  the expression on the left was unsigned.
2002-09-22 02:53:09 +00:00
Bryce Denney
d4bf3598f0 - fix some types in printf format strings 2002-09-22 02:44:31 +00:00
Bryce Denney
de67199921 - call SetFocus() on the panel so that it is certain to get key events.
I'm not sure why this wasn't needed before, but after switching to
  wxWindows 2.3.3 it seems to be important.
- in a wxLogDebug() call I was trying to pass a struct instead of a string.
  Fixed that.
2002-09-22 02:43:37 +00:00
Bryce Denney
38ad31fd4b - add Greg's suggestions for dialog box to configure time options, from an
email
2002-09-22 02:42:07 +00:00
Bryce Denney
556e4d2590 - fix call to create slowdown timer object. I'm pretty sure I broke this
on August 28 when I was messing with init and reset methods.
2002-09-22 02:29:59 +00:00
Kevin Lawton
7fd744b4ef Oops, I had #ifdef 0'd the code in here to do a test compile,
and forgot to put it back.
2002-09-22 02:07:46 +00:00
Bryce Denney
e41655a78c - add configure test for BX_HAVE_GETTIMEOFDAY
- hardcode BX_HAVE_GETTIMEOFDAY=0 if cross compiling for VC++
  (this part hasn't been tested)
- modified files: configure configure.in config.h.in iodev/pit_wrap.cc
2002-09-22 01:56:18 +00:00
Kevin Lawton
3bfeab23c9 Split out JZ/JNZ instructions from JCC because they were called
so frequently.
Coded asm() statements for INC/DEC_ERX() instructions.
Cleaned up the iCache a litle including a bug fix.  The
  generation ID was decrementing the whole field including
  some high meta bits.  That could roll over after 1 Billion
  cycles.  I know only decrement if the field is valid, to
  save the write.
I implemented inline functions which can serve the value of
  the arithmetic flags if they are cached, and redirect to
  the lazy_flags.cc routines if not.
Most of this was just prep work for adding more asm() statements
  for native eflags processing when on x86.
2002-09-22 01:52:21 +00:00
Bryce Denney
bed405dad0 - revert 1.30. The change I made caused VPATH builds to fail, like when
you run configure from another directory.  We'll have to try some other
  way to make nmake happy.
2002-09-22 01:35:12 +00:00
Bryce Denney
cddddb96d9 - avoid using $< syntax because nmake can't handle it 2002-09-22 01:19:19 +00:00
Volker Ruppert
4c4294cc6f - new variable 'charmap_updated', 'charmap_changed' array renamed to
'char_changed'. These variables are currently only used by the win32 gui for
  the update of the font bitmaps. SDL and wxWindows do not use the variables
  since they are using the charmap data directly
- free text snapshot memory when the user has cancelled the dialog
- write text snapshot file in binary mode (disables the LF -> CRLF conversion
  in cygwin)
2002-09-21 19:38:47 +00:00
Stanislav Shwartsman
a08834b7f7 MMX cannot be compiled without FPU 2002-09-21 17:24:24 +00:00
Volker Ruppert
d7e6649f72 - log type PCI2ISALOG added
- pci2isa prefix changed to "P2I"
- device name changed to "PIIX3 PCI-to-ISA bridge"
- added more default values to the reset() function
- added stubs for i/o mapped registers
- array pci_conf[] is now a part of the structure s
2002-09-21 11:38:12 +00:00
Volker Ruppert
7ea3cdfd76 - update dependencies after adding the pci2isa device 2002-09-21 10:24:43 +00:00
Gregory Alexander
e668567e85 Made BX_USE_REALTIME_PIT checked at runtime. This is
a precursor to making it a runtime option.  I'm not
sure how to do this, but it should be trivial.  All it
would take is adding the option and changing the
macro for BX_USE_REALTIME_PIT to point to that option.
2002-09-21 04:02:51 +00:00
Gregory Alexander
44c5829ea5 Realtime PIT with gettimeofday is working beautifully.
It's MUCH smoother than with the time(NULL) version.

We need to work on setting up the config parameters some more.
2002-09-21 03:20:59 +00:00
Kevin Lawton
e2e219eda0 Modified the way that the register field (low 3 bits of a few opcodes
also extended by the REX.B field on Hammer) is passed to instructions.
I rearranged the bxInstruction_c to free up a field to be used
to pass this info when mod-rm bytes are not used.  This got rid
of the ugly ((i->b1 & 7) + i->rex_b) code.

Probably shaved just a very little run time off Hammer emulation,
and even less on x86-32.  The resultant is a little cleaner anyways.
2002-09-20 23:17:51 +00:00
Bryce Denney
dc18466f15 - fix "fatal error U1083: target macro '' expands to nothing" that
Psyon reported
- clean up remnants of cpu64 merge in configure script, Makefile.in,
  and cpu/Makefile.in
2002-09-20 23:16:23 +00:00
Gregory Alexander
1f05d9aa6b Working on Realtime PIT code.
Getting fair results with gettimeofday.
2002-09-20 23:10:55 +00:00
Bryce Denney
0d68427d37 - we kept getting /usr/include/math.h in the dependency list for keyboard.cc
and I could never explain it.  The problem was that in keyboard.cc it
  included "math.h" with quotes instead of <math.h> with less than/greater
  than, so gcc -MM didn't realize it was a system header.
2002-09-20 22:42:29 +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
Stanislav Shwartsman
470dd1d30f Examples directory for mew instrumentation stuff 2002-09-20 20:25:55 +00:00
Stanislav Shwartsman
973422be6f Removed patch-smp-fpu because it already merged with MMX support 2002-09-20 20:15:34 +00:00
Stanislav Shwartsman
22d8918774 New version of Bochs instrumentation stuff 2002-09-20 20:12:36 +00:00
Volker Ruppert
efbcf33bc7 - real mode PCI BIOS modifies the iret flags on stack if no error is present
- bug in the 'find PCI device' functions fixed
- register for the PCI i/o addresses is always DX
2002-09-20 19:36:05 +00:00
Bryce Denney
28fa5324b8 - add a few little bugs to the list
- put off some log related features until later
- advanced log options and debug log are done, so I removed them from the list
- added some wxWindows coding hints I found on usenet
2002-09-20 18:16:59 +00:00
Bryce Denney
ed36bc11f0 - sync up control.cc (text mode config interface) with wxmain.cc (wxWindows
interface) by using get/set_default_log_action.  This has very minimal effect
  on the behavior of the text config interface.
- modified: main.cc gui/control.cc
2002-09-20 18:14:27 +00:00
Bryce Denney
d285e86bdb - test with --enable-icache instead of --enable-fetchdecode
- change x,y increment between successive xterms to only 30 (--parallel mode)
- run everything with nice to be less of a hog
2002-09-20 17:57:54 +00:00
Bryce Denney
eca3ef17dc - How to handle default log options has been somewhat confused for a long
time, so I've tried to improve it.  Now the logfunctions class has a
  static field default_onoff[] which represents the default actions for
  each kind of log message.  Default_onoff[] is initialized with static
  data so it should be valid by the time it's used.  This can be reached by
  static accesors logfunctions::set_default_action and
  logfunctions::get_default_action.  It seemed appropriate to put the defaults
  inside the logfunctions class, rather than in bx_options or siminterface.
  However, to make them accessible to the config interface, I added similar
  methods in siminterface that map to the accessors in logfunctions.
- logio.cc had two different definitions of LOG_THIS for different halves
  of the file, which was ugly and confusing.  (LOG_THIS is needed for BX_INFO,
  BX_DEBUG, etc.)  I removed the first definition and fixed the minor compile
  problems that ensued.  In the initializers for iofunctions, everything
  is complicated because of the unpredictable order that constructors get
  called.  They must use this->log to print things, because genlog hasn't
  been initialized yet.
- now if SIM->set_log_action(int mod, int level, int action) is called
  with mod<0, it sets the action for all modules/devices instead of just one.
- modified: bochs.h logio.cc main.cc gui/siminterface.cc gui/siminterface.h
2002-09-20 17:56:22 +00:00
Bryce Denney
a33f144f6c - implement behavior of the AdvancedLogOptionsDialog
- LogOptionsDialog: show the "no change" option.  When options other than
  "no change" are selected, set both the default log action and the
  specific log action for all devices.
- AdvancedLogOptionsDialog: store the wxChoice*'s in a 2d array since I
  have to refer to them later.
- since both the log options and advanced log options dialogs needed to
  create many wxChoices using similar rules, I moved the creation code
  into a utility function makeLogOptionChoiceBox.
- I finally discovered the wxADJUST_MINSIZE option to wxSizer::Add(),
  which solves some layout problems that I was having with wxChoices.
  With this setting, the wxChoice will automatically grow to the size of
  the largest string that can be selected.
- improve sizing of the scrollWin according to the desired size of the panel
  that contains all the wxChoices.
- add sketches for proposed dialog that combines both LogOptionsDialog and
  AdvancedLogOptionsDialog using tabs
2002-09-20 17:53:14 +00:00
Bryce Denney
d2b5e83283 - fix typo in a comment. Also this hunk will conflict with what I'm
about to check in.
2002-09-20 17:52:05 +00:00
Bryce Denney
f9a1de5a58 - I remembered the real reason why I made an abstract class
bx_simulator_interface_c, so I included that in the comments.
2002-09-20 17:39:07 +00:00
Christophe Bothamy
3dfb397974 - added patch found in sf [ 609616 ] remote GDB stub
From sf patch page :

This patch adds remote GDB stub capability to Bochs.
It's an updated version of the patched bochs 1.3pre1 in
found in this URL:

http://www.rtmk.org/bochs-gdb.html

more details in the same site. thanks Johan Rydberg
2002-09-20 16:14:55 +00:00
Bryce Denney
aee82fdde3 - eliminate unused warning on int cpu 2002-09-20 15:35:44 +00:00
Christophe Bothamy
c0be71cded - applied patch from Luiz Henrique Shigunov [ 605815 ] more disasm functions
Modified Files: dis_decode.cc dis_groups.cc disasm.h
2002-09-20 15:34:55 +00:00