Commit Graph

2331 Commits

Author SHA1 Message Date
Bryce Denney
7a2bb1f5a6 - force wxWindows to put all log messages to stderr. (Sometimes it is
tempted to bring up dialog boxes to display the debug messages.)
2002-09-05 16:41:54 +00:00
Bryce Denney
4a559e26d9 - skip over some fprintfs to stderr when using wxWindows 2002-09-05 16:40:18 +00:00
Bryce Denney
fce114ed19 - eliminate printfs in wxwindows code--use wxLogDebug instead 2002-09-05 16:27:06 +00:00
Bryce Denney
53d71821c1 - I already checked in something better than this 2002-09-05 16:02:43 +00:00
Bryce Denney
7cef3cc3a4 - clean up memory usage after bx_gui_c::get_clipboard_text for win32,
X windows, wxWindows.  Each platform has its own way of returning
  a variable length string, and its own rules about how you're supposed
  to dispose of the string.  Now all platforms do the same thing: they
  allocate a Bit8u buffer with C++ "new" and copy the clipboard data in,
  then release the clipboard data in the platform-specific correct way.
  The Bit8u buffer is sent to the keyboard code, which frees it with
  delete [] when finished.
- modified: gui/wxmain.cc gui/wxmain.h
2002-09-05 16:01:34 +00:00
Bryce Denney
eb12552eef - in the panic dialog box, change the "Die" button to "Kill Sim".
It wasn't clear if die meant to kill the simulation or the whole app.
2002-09-05 15:58:39 +00:00
Bryce Denney
17624e7549 - clean up memory usage after bx_gui_c::get_clipboard_text for win32,
X windows, wxWindows.  Each platform has its own way of returning
  a variable length string, and its own rules about how you're supposed
  to dispose of the string.  Now all platforms do the same thing: they
  allocate a Bit8u buffer with C++ "new" and copy the clipboard data in,
  then release the clipboard data in the platform-specific correct way.
  The Bit8u buffer is sent to the keyboard code, which frees it with
  delete [] when finished.
- modified: gui/wx.cc gui/x.cc gui/win32.cc iodev/keyboard.cc
2002-09-05 15:57:37 +00:00
Bryce Denney
5feb140d70 - restore signal handling to default when bochs thread dies 2002-09-05 15:51:03 +00:00
Bryce Denney
2c9fcbb147 - somehow I lost one important line in my last checkin that defines WX_CONFIG 2002-09-05 15:49:48 +00:00
Bryce Denney
ce2f799033 - fix bug in key mapping. I typed BX_KEY_MINUS for two different keys. 2002-09-05 15:13:34 +00:00
Bryce Denney
892eaab88c - in wxwindows compile, only include the wxwindows cflags on the few
files that need them.  This is more in line with the other gui libraries,
  and the compile line is easier to read.
- modified: Makefile.in configure.in configure gui/Makefile.in
2002-09-05 15:12:13 +00:00
Bryce Denney
28801ce9ff - implement clipboard functions for wxWindows
- enable keymapping for wxWindows, by inserting bx_keymap.loadKeymap(NULL)
  call in wx.cc
2002-09-05 13:38:44 +00:00
Christophe Bothamy
1fb02cacf1 - updated with rombios-new-ata.c rev 1.4 :
- fixed stupid "#if #elif" bug in ata paramaters
  - added debug/screen message if device detection fails.
2002-09-05 08:20:06 +00:00
Christophe Bothamy
e6f8c1ba46 - fixed stupid "#if #elif" bug in ata paramaters
- added debug/screen message if device detection fails.
2002-09-05 08:18:30 +00:00
Bryce Denney
b9bfa8ed7f - fix signal handling in wxWindows. The problem was that a signal gets
delivered to both the GUI and simulator thread, so they both call
  bx_signal_handler.  This can lead to deadlock as multiple threads enter
  BX_PANIC and try to show a dialog box at once.  To solve the problem, I made
  a function isSimThread() which can be called from anywhere.  If the
  bx_signal_handler is called from any thread OTHER THAN the simulation thread,
  it returns without doing anything.  As a result, only one thread is allowed
  to enter the signal handler code, and now control-C works correctly.
2002-09-05 07:48:39 +00:00
Bryce Denney
b79630a14e - Volker introduced the -q command line switch in August 2002, which tells
Bochs to immediately read the bochsrc and start simulating immediately (as
  opposed to going into the configuration interface first).  Now -q does
  the right thing in the wxWindows interface.  It behaves as if you selected
  Read Configuration and then Simulate:Start.
- modified: main.cc gui/siminterface.cc gui/siminterface.h gui/wxmain.cc
2002-09-05 07:01:30 +00:00
Bryce Denney
578cc09f55 - keypad5 is apparantly called GDK_KP_Begin on my keyboard 2002-09-05 06:08:47 +00:00
Kevin Lawton
f29f9ef021 Fixed Big-endian case of --enable-guest2host-tlb. I macro'ized the
direct reads/writes from native variables to the x86 (guest)
memory image.  Look at the end of bochs.h.  Don't know if that's
the right place to put them, but here you can extend these
macros to platform-specific asm() code if you like, or just
use the generic C code I supplied.  Some platforms have special
instructions for byte-order swapping etc.  Also, you can't
make any assumptions about the alignment of the pointers
passed.
2002-09-05 04:56:11 +00:00
Kevin Lawton
83eb7d4199 Updated comments with info on the new TLB permissions storage
and strategy, so that others can understand it.
2002-09-05 03:09:59 +00:00
Kevin Lawton
f0c9896964 Now, when you compile with --enable-guest2host-tlb, non-paged
mode uses the notion of the guest-to-host TLB.  This has the
benefit of allowing more uniform and streamlined acceleration
code in access.cc which does not have to check if CR0.PG
is set, eliminating a few instructions per guest access.
Shaved just a little off execution time, as expected.

Also, access_linear now breaks accesses which span two pages,
into two calls the the physical memory routines, when paging
is off, just like it always has for paging on.  Besides
being more uniform, this allows the physical memory access
routines to known the complete data item is contained
within a single physical page, and stop reapplying the
A20ADDR() macro to pointers as it increments them.
Perhaps things can be optimized a little more now there too...
I renamed the routines to {read,write}PhysicalPage() as
a reminder that these routines now operate on data
solely within one page.

I also added a little code so that the paging module is
notified when the A20 line is tweaked, so it can dump
whatever mappings it wants to.
2002-09-05 02:31:24 +00:00
Bryce Denney
f4157cad97 - the BIOS and other files have migrated to /usr/share/bochs, so now
"make unpack_dlx" needs to fix up the pathnames appropriately.
2002-09-04 21:13:21 +00:00
Stanislav Shwartsman
c3b4f170d6 The patch was changed accoring to access.cc changes and
Bryce's recomendations.
2002-09-04 21:13:08 +00:00
Bryce Denney
d6c1c14d43 - patch now adds configure option --enable-mmx that enables/disables it 2002-09-04 20:32:04 +00:00
Kevin Lawton
8a1baa6bb8 Added ::{read,write}_virtual_qword() functions as per Stanislav's request.
I have not tested these functions, but they model the format and
acceleration principals of the byte/word/dword functions.  Give them
a try on both little/big endian machines.
2002-09-04 20:23:54 +00:00
Bryce Denney
20bd8507af - add configure option --enable-mmx in configure.in. I didn't bother
to diff configure...you'll have to run autoconf yourself.
- in config.h.in set BX_SUPPORT_MMX to 0, not 1.  The configure script
  will replace it with a 1 if appropriate.  That's the way all other
  options are done.
- you need to use patch -p1 for this
2002-09-04 20:09:00 +00:00
Bryce Denney
db239afdcf - add diffs in cpu/Makefile.in so that it compiles w/o editing anything
- you must use patch -p1, not patch -p0
- write date as September 1, 2002 so it's not confusing to U.S. readers,
  who think 1/9/2002 means January 9.
2002-09-04 19:47:33 +00:00
Stanislav Shwartsman
21413f26aa MMX support patch
Now with BIG_ENDIAN systems compatability
Tested on HP1100 and Solaris systems
(for Bochs 1.4.1 release)
2002-09-04 19:30:09 +00:00
Bryce Denney
137e132371 - add a bunch of missing key codes for MSW. These will only be used if
wxHAS_RAW_KEY_CODES is not available in the wxWindows library.
  my patch "patch.wx-raw-keycodes" adds wxHAS_RAW_KEY_CODES to the wxWindows
  library, and it will also be in wxWindows 2.3.3 and beyond.
2002-09-04 19:14:08 +00:00
Bryce Denney
9d20ece24c - add #ifdefs per operating system so that the dialog boxes display the
correct name for floppy and cdrom devices:on windows, A:, B:, etc;
  on Linux /dev/fd0 and /dev/cdrom.
- It's perfectly ok to type device names into the blank on those dialog
  boxes, but the label "Disk Image File:" sort of implies that it has to
  be a file.  To try to avoid confusion change the label to simply
  "Disk Image:".
2002-09-04 18:39:20 +00:00
Bryce Denney
ce17b410ab - don't complain on non-X11 platforms where install-x11-fonts script
does not exist.
2002-09-04 18:18:32 +00:00
Bryce Denney
462797bb16 - remove references to (obsolete) wxthreadtest 2002-09-04 17:21:46 +00:00
Bryce Denney
645b3395f1 - fix settings for release build
- still, the debug build is the default (for now)
2002-09-04 17:16:46 +00:00
Bryce Denney
5596107acb - (hopefully) solves a thread deadlock problem that showed up occasionally
on win32.  I believe this is the same problem that scarlip referred to as
  "it doesn't start reliably. sometimes it works, sometimes it won't".
  See comments in gui/wx.cc (dimension_update) for details.
- since dimension_update is called from the simulator thread, it needs to
  get the GUI mutex before calling any wxWindows functions.  Now it does.
- add lots of IFDBG_VGA(...) lines which I use to diagnose various problems.
  They are compiled away by default (for performance).  See definition of
  IFDBG_VGA() in gui/wxmain.h.
2002-09-04 15:51:04 +00:00
Bryce Denney
614d2ff681 - we don't need to say "Welcome to wxWindows" on the status line 2002-09-04 14:09:05 +00:00
Bryce Denney
9f29d942fd - main should return something! how about 0. 2002-09-04 13:07:26 +00:00
Bryce Denney
0fe0832b99 - to avoid confusion and bugs I made a new convention on dialog return
values.  All wxWindows dialogs return wxID_OK or wxID_CANCEL.  The
  wxOK and wxCANCEL symbols are ONLY used in input arguments that determine
  whether to display the ok and cancel buttons.  Now I'm doing the same.
  Return values are wxID_OK if they pressed the ok button, and wxID_CANCEL
  if they pressed cancel.
2002-09-04 12:29:04 +00:00
Kevin Lawton
d07c1c0bb0 I rehashed the way the paging code stores protection bits,
so that a compare of the current access could be done more
efficiently against the cached values, both in the normal
paging routines, and in the accelerated code in access.cc.

This cut down the amount of code path needed to get to
direct use of a host address nicely, and speed definitely
got a boost as a result, especially if you use the
--enable-guest2host-tlb option.

The CR0.WP flag was a real pain, because it imparts
a complication on the way protections work.  Fortunately
it's not a high-change flag, so I just base the new
cached info on the current CR0.WP value, and dump
the TLB cache when it changes.
2002-09-04 08:59:13 +00:00
Bryce Denney
7b157bbf43 - remove panic condition "memory not suitably aligned" and replace with
an allocation scheme that is guaranteed to return a block that is
  aligned correctly.
- Kevin asked me to go ahead and align the memory to 4k page boundaries,
  so I did.  If we need to change this, just change BX_MEM_VECTOR_ALIGN
  in memory/memory.h (now 4096).
2002-09-04 02:11:33 +00:00
Kevin Lawton
54bc40971c Fixed repeated IO/string instruction acceleration bug. Not all the
checks were honoring the EFLAGS.DF bit, but assuming it was always
equal to 0 (increment upward).  Plus some general cleanup of the
acceleration code.

I left the default of '--enable-repeat-speedups' to disabled, but
it seems pretty solid.  Definitely adds performance for disk
heavy workloads.
2002-09-03 19:38:27 +00:00
Bryce Denney
901540f1ed - fix buggy link to releases in the Latest News section, reported by lexxmt. 2002-09-03 19:14:44 +00:00
Bryce Denney
33eefab657 - clean up extra ^M's I introduced when playing in win32 land. They are
mostly harmless EXCEPT if they appear after a '\' that's used for line
  continuation.  Then they are a disaster.
2002-09-03 19:04:17 +00:00
Bryce Denney
f2398d7daa - I needed to add iodev/biosdev.cpp to the project 2002-09-03 18:02:04 +00:00
Bryce Denney
452df7aafb - update wxWindows workspace for VC++. A few source files have appeared
or moved around, so now the workspace knows where to find them.
2002-09-03 17:54:49 +00:00
Bryce Denney
e0f6cfbf86 - fix appearance of toolbar icons on win32. I think Psyon used
SetToolBitmapSize() to set the icon size to 16x16; when I changed the icon
  size I forgot to change SetToolBitmapSize() and somehow it looked ok on
  wxGTK.
- change mouse tooltip to "(Mouse Not Implemented Yet!)" for now
2002-09-03 17:50:12 +00:00
Bryce Denney
a231b12359 - on win32, apparantly the wxSpinCtrl depends on a native control which only
has a 16bit signed value.  If you try to set the max above 32767, it
  overflows and does stupid things.  To combat this tendency, I now use
  the SPINCTRL_FIX_MAX(x) macro when setting the max range of a spinctrl.
  On platforms that need it, this will saturate the range at 32767.
2002-09-03 17:48:21 +00:00
Bryce Denney
e804c745bb - this patch should guarantee that the memory vector is aligned on an
8-byte boundary.  It simply allocates 8 extra bytes, then steps forward
  one at a time until it finds a pointer whose address is a multiple of 8.
2002-09-03 16:57:42 +00:00
Bryce Denney
31b30d562e - if ROM image could not be opened, we were doing a BX_INFO and then
a BX_EXIT.  I changed it to BX_PANIC followed by a return (just in case
  the user continues) to be more consistent with how everything else works.
2002-09-03 16:44:33 +00:00
Bryce Denney
152527af04 - MSVC++: can't use variable as array bounds. In this case it's easy enough
to use a #define.
2002-09-03 16:03:50 +00:00
Bryce Denney
b1614f7019 - MSVC++ doesn't like "#undef label()" it only likes "#undef label"
- add a missing "return" in BrowseTextCtrl()
2002-09-03 16:02:21 +00:00
Bryce Denney
8d02c83536 - bx_param_bool_c constructor must init dependent_list before calling set(). 2002-09-03 16:00:50 +00:00