Commit Graph

747 Commits

Author SHA1 Message Date
Volker Ruppert
bc58b6ca15 - function OnEditCmos(): parameter BXP_CMOS_TIME0 changed to BXP_CLOCK_TIME0
- function OnEditSpeed(): parameter BXP_REALTIME_PIT changed to BXP_CLOCK_SYNC
2003-08-21 18:26:18 +00:00
Christophe Bothamy
e555765d75 - add a "clock: sync=[none|slowdown|realtime], time0=[timeValue|local|utc]"
- pit: and time0: options are still supported but deprecated
- warn when parsing deprecated directives
- fix wrong number of ata_device_translation_names
- still to do:
  - setting time0 to utc is not yet supported
  - the man page, user guide and .bochsrc still need to be updated
    with the new options
2003-08-19 00:10:39 +00:00
Christophe Bothamy
fb171e482a - apply MartinS compile patch for missing function in curses 2003-08-17 23:40:39 +00:00
Christophe Bothamy
52e6645fb6 - fix segfault reported by MartinS in the ml, due to an uninitialized variable 2003-08-17 20:50:11 +00:00
Volker Ruppert
e3478a152d - #if must be used for XPM checks, since BX_HAVE_XPM_H is always defined 2003-08-11 19:27:57 +00:00
Christophe Bothamy
1583a2ebb2 - add ATA device parameters access macros
- add handlers called when a parameter is enabled or disabled.
  This is useful for parameter dependent on another, that may
  not wish to be enabled when its father parameter is enabled.
2003-08-09 22:17:38 +00:00
Christophe Bothamy
974d3538a1 - change disk image mode name "growable" to the more accurate "growing" 2003-08-01 01:20:00 +00:00
Bryce Denney
50c023e1b4 - Eric Brasseur sent me a new version which adds XK_bar and XK_bracketright. 2003-07-29 13:31:11 +00:00
Volker Ruppert
0d49a260f2 - function bx_print_log_action_table() improved
* header for column "pass" added
  * devices without a prefix are hidden now
2003-07-28 13:55:53 +00:00
Volker Ruppert
2c64b67679 - runtime configuration and gui dialogs must be disabled if the active display
library is rfb
2003-07-18 15:51:02 +00:00
Volker Ruppert
707004d222 - the floppy handlers now return immediately if the requested floppy device
doesn't exist
2003-07-17 15:49:23 +00:00
Volker Ruppert
0d60d343b3 - simple floppy image dialogbox for win32 added
- references to wx removed from the floppy button handlers (wx doesn't use them)
2003-07-15 21:02:05 +00:00
Volker Ruppert
3f9192d5ce - key event handling of the wx gui on win32 (wxMSW) fixed. Now the function
DEV_kbd_gen_scancode() is called instead of DEV_kbd_put_scancode(). This
  change enables the support for different scancode sets. The win32 scancodes
  are now converted to BX_KEY_* values (partially copied from gui/win32.cc)
2003-07-13 16:31:35 +00:00
Volker Ruppert
b504bdaa42 - 15 bpp color depth now supported by the wx display library 2003-07-12 23:03:06 +00:00
Volker Ruppert
06926b75fd - 15 bpp color depth now supported by the x11 display library 2003-07-12 17:29:16 +00:00
Volker Ruppert
e073214525 - new function getBXKeyName() returns the name of a BX_KEY symbol
(used by BX_DEBUG message in the keyboard code)
- despription of keymap.cc updated
2003-07-12 08:17:10 +00:00
Volker Ruppert
e38fadb2c8 - 15 bpp color depth now working with the win32 gui on Win NT/2000/XP, too 2003-07-11 15:11:24 +00:00
Volker Ruppert
5c11b64bdf - support for 15 bpp modes added in the vga code and the sdl display library
- sdl: in function graphics_tile_update() vga_bpp handled in a case structure
2003-07-09 20:15:38 +00:00
Volker Ruppert
68da9fb6e6 - the server waits 30 seconds for a client connection. The simulation starts
after the connect.
- log action for panic set to fatal (the ask menu doesn't work on the client side)
- missing prefix for RFB added
2003-07-06 20:51:05 +00:00
Volker Ruppert
b06ef9c90e - special rule for building the rfb plugin on win32 added 2003-07-06 16:31:05 +00:00
Volker Ruppert
8df8546e5b - charmap change support added
- new text mode features: line offset, cursor size, font height
- key handling rewritten (taken from x.cc)
- headerbar now working
- headerbar colors changed
- graphics modes > 640x480 now cause a BX_PANIC
2003-07-05 16:08:00 +00:00
Volker Ruppert
2834e49ad8 - display library wx now supports 16, 24 and 32 bpp video modes
(wxWindows ignores bit 24..31 in 32bpp modes)
2003-07-04 17:11:37 +00:00
Volker Ruppert
11ea37fd34 - small optimizations in function graphics_tile_update()
- bpp value check in function dimension_update() improved
2003-07-03 17:57:42 +00:00
Volker Ruppert
9005893b22 - display library sdl now supports 16, 24 and 32 bpp video modes 2003-07-02 17:25:50 +00:00
Volker Ruppert
80a4a7e39f - 16 bpp color depth now working with the win32 gui 2003-06-30 21:24:09 +00:00
Volker Ruppert
3845a23b55 - support for 16, 24 and 32 bit VBE modes implemented in the vga code and the
X11 display library (vga changes based on a patch from Chistopher Nelson)
- VBE_DISPI_ID2 0xB0C2 defined
2003-06-30 18:53:12 +00:00
Volker Ruppert
43d5bef9ed - preparing all display libraries (guis) to support graphics modes > 8bpp
(based on a patch from Christopher Nelson <paradox@BBHC.ORG>)
  * the win32 gui changes the bitmap settings using the bpp argument
  * added stubs for all guis except win32
  * descriptions of function dimension_update() updated
2003-06-28 08:04:31 +00:00
Volker Ruppert
88942a0e9b - text_update(): two different update loops created (with and without windows
font usage)
- horizontal and vertical pel panning in text mode implemented (without windows
  fonts only)
- separate bitmap for the textmode cursor no longer necessary
- text_update(): unused variable new_start removed
2003-06-22 12:37:03 +00:00
Volker Ruppert
7bb4a940fd - new symbol BX_USE_WINDOWS_FONTS controls the usage of fixed Windows fonts at
compile time. The old version used this fonts for char heights smaller 14.
  If the Windows fonts are enabled, the font heights 12, 14 and 16 are used.
  These features are not available in that case:
    * charmap change
    * char width switch 8/9
    * horizontal and vertical pel panning
  If the Windows fonts are disabled, the changeable guest font is used and all
  implemented features are available. This is the default setting.
  TODO: implement horizontal and vertical pel panning
  FIXME: Should we add a bochsrc option to control the font usage?
- invalidate character at previous and new cursor location before entering the
  update loop
- cursor drawing moved into the update loop
- variables for previous cursor position renamed
2003-06-20 10:36:46 +00:00
Volker Ruppert
e150fc5aaf - invalidate character at new cursor location before entering the update loop
- additional cursor location and visiblity check no longer necessary
2003-06-15 19:20:06 +00:00
Volker Ruppert
f217856914 - invalidate character at new cursor location before entering the update loop
- cursor visiblity check fixed
2003-06-15 15:10:45 +00:00
Volker Ruppert
7509e666a5 - horizontal and vertical pel panning in text mode implemented
- invalidate character at previous and new cursor location before entering the
  update loop
- cursor drawing moved into the update loop
- speed optimizations in function DrawBochsBitmap() (malloc/free removed)
- description of function text_update() updated
2003-06-15 10:37:56 +00:00
Volker Ruppert
4a3ab96a42 - more accurate emulation of the text cursor if horizontal/vertical pel panning
is active (cursor drawing moved into the update loop)
2003-06-15 08:53:01 +00:00
Volker Ruppert
e258b32fc2 - more accurate emulation of the text cursor if horizontal pel panning is active 2003-06-15 07:33:06 +00:00
Volker Ruppert
dd46d0ec71 - configure check for XPM support added
- x.cc uses the old monochrome icon if there's no XPM support present
2003-06-13 16:05:03 +00:00
Volker Ruppert
8c2fdedf8a - horizontal and vertical pel panning in text mode implemented
- invalidate character at previous cursor location before entering the update loop
- variables for previous cursor position renamed
2003-06-11 18:44:45 +00:00
Volker Ruppert
b9b6b77b13 - invalidate character at previous cursor location before entering the update loop
- type of text dimension variables changed to static unsigned int
2003-06-10 20:22:37 +00:00
Volker Ruppert
d1652093ac - applied some parts of the patch from Andrew Zabolotny <zap@cobra.ru>
* changed all %ll format descriptions to FMT_LL macro so that
    Microsoft Visual C works correctly (it uses %I64)
  * missing type conversions added
  * cdrom.cc: variable types for win32 fixed
  * removed some unused variables in eth_win32.cc and harddrv.cc
  * added missing includes in make_cmos_image.c and niclist.c
2003-06-07 19:16:55 +00:00
Volker Ruppert
28d8b81f61 - text mode cursor enable/disable feature implemented
- text screen dimensions are now stores in the variables 'text_rows' and 'text_cols'
- fixed some warnings
2003-06-04 20:35:28 +00:00
Volker Ruppert
4648144972 - function dimension_update() calculates the number of visible rows and columns
in text mode. The new variables 'text_rows' and 'text_cols' are used in the
  text_update() function.
- desriptions of the functions text_update() and dimension_update() updated
2003-05-28 19:08:32 +00:00
Volker Ruppert
04ad96b585 - don't wait for the 'enter' key on the win32 console if the user has pressed
the power button or has chosen "kill simulation" in the "ask" dialog
2003-05-27 18:19:13 +00:00
Volker Ruppert
ecfaa5f1b0 - simple text input dialog for the userbutton function on win32 added
- snapshot_handler(): simplified the filedialog call
2003-05-25 18:34:03 +00:00
Volker Ruppert
906ac57dc9 - the text snapshot function now uses the standard save file dialog box on win32
if the config interface is not wx.
2003-05-25 13:35:39 +00:00
Volker Ruppert
20eff580b6 - link options for gui dll plugins fixed
- vmware3.cc: adding missing symbol BX_PLUGGABLE makes bx_harddrv.dll work again
2003-05-25 08:14:04 +00:00
Volker Ruppert
4f2af797b5 - library dependencies in the main bochs binary and the gui plugins fixed.
These changes are based on the SF patch #742670. It did not work with
  plugins disabled.

Here is the descriiption of patch #742670:

the library dependencies (see objdump -p file) in the
main bochs binary and the gui plugins are wrong:

- the gui plugins don't depend on their respective gui
libraries
- the main bochs binary depends on all the gui libraries

this doesn't seem much of a problem, since the needed
libraries are loaded anyway, but it's problematic when
building packages for binary distribution of bochs.

in Debian, the package building tools will set package
dependencies according to the library dependencies of
each file, so the result is:

- the main bochs package depends on all libraries. this
includes libwx, libsdl, libncurses and xlibs.
- the indivudual plugin packages don't depend on any
gui library

so when a user wants to run bochs with the curses gui
and installs the bochs-curses package, he/she will be
forced to install Xfree86, WxWindows and GTK+ on
his/her system.

the attached patch fixes the problem by moving the
linker flags related to GUI libraries to the right
makefile (gui/Makefile.in)
2003-05-24 17:09:26 +00:00
Volker Ruppert
1b2868d4dc - missing initialization of the variable 'charmap_updated' added (bug found
with valgrind)
2003-05-24 10:51:00 +00:00
Volker Ruppert
7edc0948b7 - "ask" dialogbox as an extension of the "textconfig" interface on the win32 platform added 2003-05-21 20:33:24 +00:00
Volker Ruppert
1fef1f354e - function dimension_update() calculates the number of visible rows and columns
in text mode. The new variables 'text_rows' and 'text_cols' are used in the
  text_update() function.
- optimizations in function UpdateScreen()
- desriptions of the functions text_update() and dimension_update() updated
2003-05-20 18:53:00 +00:00
Volker Ruppert
9d36d1287f - text mode window dimension variables renamed to text_cols and text_rows.
The variables are now updated in function dimension_update() and used in
  function text_update()
2003-05-18 18:54:02 +00:00
Volker Ruppert
1f65f19d42 - code cleanup in display library sdl
* renamed variables textres_x and textres_y to text_cols and text_rows
  * use text_rows in function text_update() instead of the function argument
    (unused for now - should be removed)
  * fixed a warning (bochs_icon_bits)
2003-05-18 15:38:58 +00:00
Volker Ruppert
b456772b0f - translation table 'vga_to_term[128]' for the characters 0x80-0xff added
- function get_term_char() rewritten
- text background color fixed
2003-05-18 11:26:02 +00:00
Volker Ruppert
a9fd0d9fdf - type definition of 'bx_vga_tminfo_t' fixed. MSVC doesn't like the other style
of type definition.
2003-05-18 10:44:26 +00:00
Volker Ruppert
30fb8845d4 - function text_update() of the term display library rewritten, line offset and
cursor enable/disable support implemented
- function dimension_update() now calculates the number of visible rows and
  columns in text mode
- draw a border if the physical screen is larger than the bochs text screen
- initialize color pairs only when color support is present
- german umlaut characters added in function get_term_char()
- function get_term_char(): unsupported characters are now replaced by spaces
2003-05-15 19:00:18 +00:00
Volker Ruppert
746b31bfb1 - char width switch feature (8 / 9 pixels) implemented in display libraries wx
and x
- removed unnecessary stuff from x.cc
2003-05-14 16:09:53 +00:00
Volker Ruppert
49fcc6a9c7 - text_update(): calculation of visible text columns fixed
- text_update(): font bitmap update optimized
2003-05-13 20:38:35 +00:00
Volker Ruppert
2e9f9f4929 - char width switch feature (8 / 9 pixels) implemented in display library win32.
If the font height is smaller than 14, a Windows font with a fixed width of
  8 is used (minimum height 12).
2003-05-13 18:44:23 +00:00
Volker Ruppert
1db6fa2367 - function text_update() of the display library win32 rewritten and
line offset feature implemented
2003-05-12 19:53:22 +00:00
Volker Ruppert
3a788ddcf4 - char width switch feature (8 / 9 pixels) prepared for all display libraries
and implemented in SDL
  * sequencer controller register 0x01 bit 0 controls the width of the characters.
    This value is used to calculate the screen width.
  * attribute controller register 0x10 bit 2 controls the appearance of graphics
    characters (ASCII 0xC0 - 0cDF). A change of this value forces a charmap update
    to rebuild the font bitmaps.
  * the SDL display library uses the new feature described above
  * the other display libraries recalculate the screen width, since they are using
    a fixed font width of 8 for now.
- VGA: attribute controller register 0x10 bit 2 (enable_line_graphics) does not
  switch the palatte in CGA mode
2003-05-11 15:07:54 +00:00
Volker Ruppert
846ffa3dba - function text_update() of the display libraries wx and x rewritten and
line offset feature implemented
2003-05-11 08:29:23 +00:00
Volker Ruppert
b9a25b15e1 - horizontal and vertical pel panning in text mode implemented
- line offset handling simplified
- calculate textres_x and textres_y after changing the font dimensions
- unnecessary size check in function dimension_update() removed
2003-05-10 17:03:36 +00:00
Volker Ruppert
febaa1c589 - in function text_update():
* line offset support added
  * background color fixed
  * removed unnecessary variables cs_start and cs_end
2003-05-09 16:26:03 +00:00
Volker Ruppert
5ab9786871 - function text_update() prepared for new features. New structure
'bx_vga_tminfo_t' replaces variable 'cursor_state'.
2003-05-07 19:15:47 +00:00
Volker Ruppert
475a5af179 - disable IME for the simulation window (needed the Japanese versions of Windows)
- vertical stretching feature removed (replaced by the VGA doublescan feature).
  Horizontal stretching is still required for the text mode 40x25
2003-05-04 16:03:23 +00:00
Christophe Bothamy
f43d2fe3e9 - backport of the BRANCH_HARDDISK_MODES to the main branch.
You can now choose for each disk on the ata interfaces the
  disk mode, between :
    - flat : one file flat layout
    - concat : multiple files layout
    - external : developer's specific, through a C++ class
    - dll : developer's specific, through a DLL
    - sparse : stackable, commitable, rollbackable
    - vmware3 : vmware3 disk support
    - undoable : flat file with commitable redolog
    - growable : growing file
    - volatile : flat file with volatile redolog
    - z-undoable : gziped flat file with commitable redolog
    - z-volatile : gziped flat file with volatile redolog
  A new "bxcommit" utility can merge commitable redologs to
  flat images.
2003-05-03 16:37:18 +00:00
Volker Ruppert
f37b0e734a - new Belgian keymap from Wouter Verhelst 2003-05-02 22:19:05 +00:00
Christophe Bothamy
c315867248 - fix black stripes on partial exposes
- headerbar redraw optimizations
  (both changes by Dirk Thierbach)
2003-04-28 12:28:08 +00:00
Nicholai Benalal
41e6bdd214 forgot to free some stuff in set_clipboard_text 2003-04-08 17:56:45 +00:00
Nicholai Benalal
e42668916f stupid bug 2003-04-08 17:53:12 +00:00
Nicholai Benalal
14b3f4b7ec clipboard support 2003-04-06 15:48:58 +00:00
Nicholai Benalal
99b24650b4 automatic disabling of mouse as bochs window goes inactive, a few other minor changes 2003-04-04 22:27:47 +00:00
Sigbjrrn Skjcret
c9afc1f65d Updated to latest changes... 2003-02-21 15:06:18 +00:00
Volker Ruppert
7cdea60d53 - key event handling of the win32 gui fixed. Now the function
DEV_kbd_gen_scancode() is called instead of DEV_kbd_put_scancode(). This
  change enables the support for different scancode sets. The win32 scancodes
  are now converted to bx_key values.
2003-02-17 19:08:12 +00:00
Volker Ruppert
b716dafbcc - user_shortcut feature: new key name "bksp" (backspace) added
- function userbutton_handler(): stop parsing the shortcut string if the
  key name is invalid
- function userbutton_handler(): incrementing variable 'len' simplified
- function snapshot_checker(): fixed a warning
2003-02-09 18:59:19 +00:00
Christophe Bothamy
579f3c0539 - apply Ben Lunt's 160k, 180k, 320k floppy patch 2003-02-06 23:16:56 +00:00
Volker Ruppert
7911dd0c4f - background color changed from white to "none" (button color is used now) 2003-02-03 18:42:56 +00:00
Christophe Bothamy
7ebce64e8d - exit method does nothing unless specific_init was done 2003-01-30 18:41:00 +00:00
Volker Ruppert
f25a3df39b - added minimal USB support (patch from Ben Lunt <fys@cybertrails.com>, updated
and improved by Christophe Bothamy and Volker Ruppert)

Comment from the author:

Attached is a "patch" file detailing what you need to do
to add USB support (UHCI only for now) to your existing
Bochs (2.0.xx) source code.

I use Win32 and VC++ but the source and modifications
should be platform and compiler independant.

Please let me know if this patch some how breaks the
build process of your compilation (Bochs 2.0.0 or above
only).

I would also like any feedback on how this code works
(or doesn't work) on your platform and within your
images. If you explain in as much detail as you can on
how it did or did not work, I will try to add to the source
to help it work on all platforms and images.
2003-01-28 16:58:10 +00:00
Volker Ruppert
6ff44748da - font size hack in function dimension_update() removed. The X11 window now
appears with the right dimensions. Font sizes other than 16 are working now.
  The maximum font height in text mode is 32.
- the text mode cursor is now drawn with the right colors
2003-01-18 12:05:46 +00:00
Christophe Bothamy
8904c62b90 - add vga charmap change support 2003-01-17 18:16:02 +00:00
Christophe Bothamy
090fb80a35 - apply patch.x11-internal-vgafont
We don't need the vga.pcf font anymore.
  This will save some install troubles to many users.
2003-01-16 21:14:11 +00:00
Volker Ruppert
9b57ad6ca8 - fixed segfault in log action dialogs - the new log type "pass" was missing 2003-01-04 11:47:00 +00:00
Volker Ruppert
31a4a389a1 - dimension_update(): the toolbar window must be resized too (important for
SVGA and VBE graphics modes)
2003-01-02 09:49:48 +00:00
Volker Ruppert
96c03a93ca - only enabled ATA channels with a cdrom connected are available in the "Edit"
menu at runtime
2002-12-30 17:04:43 +00:00
Volker Ruppert
b78b65b845 - new application icon for the X11 gui using 'icon_bochs.xpm' 2002-12-30 13:17:39 +00:00
Volker Ruppert
4078aba5f0 - replaced window register call RegisterClassEx() by RegisterClass(). This fixes
the icon problem on Win2000. RegisterClassEx() would be required if we want
  to specify a special mini icon.
- the win32 gui now uses the new function/macro DEV_vga_actl_pal_idx() to
  determine the text mode colors.
2002-12-29 18:39:21 +00:00
Volker Ruppert
51c9c6c83a - bugfix for the textmode colors: the color value is not an index to the DAC
palette - it's an index to the attribute controller palette index.
  The new function get_actl_palette_idx() now returns the real DAC index.
  The guis sdl, wx and x11 are using the new function. TODO: Fix this bug in
  all other guis.
2002-12-28 11:49:17 +00:00
Volker Ruppert
ef8a7b1dc6 - new application icon for the win32 gui using 'bochs.ico' 2002-12-26 18:24:41 +00:00
Volker Ruppert
9f8e541a4f - new application icon for wxMSW using 'bochs.ico'
- new application icon for wxGTK using new icon 'icon_bochs.xpm' (converted from 'bochs.ico')
2002-12-25 17:13:45 +00:00
Bryce Denney
6a44ca37ed Patch name: patch.carbon-startup
Authors: Br'fin, Bryce

- for MacOSX/Carbon, if you start the app by double clicking in the finder,
  there is no text console.  So in logfunctions::fatal(), display the
  final message in a Carbon dialog instead of using fprintf.
- in the text-mode config interface, return an error code if the
  user tries to use the text menus when there's no text console.
  Back in bxmain() this error code causes a panic
  "Bochs needed the text console, but it was not usable"
- if a config file was not found, normally we turn off quick start
  and drop into the text menus.  However in the no-console case the
  text menus won't work, so we added a panic: Unable to start Bochs
  without a bochsrc.txt and without a text console.  This is a much
  more useful error than the generic one above.
- removed ensure_text_console() which was making matters worse instead
  of better.

Modified Files:
  logio.cc main.cc gui/siminterface.cc gui/siminterface.h gui/textconfig.cc
2002-12-17 05:58:45 +00:00
Gregory Alexander
78d0f43b94 Added mask support to snapshot code.
This makes it more versatile.
2002-12-17 05:17:41 +00:00
Gregory Alexander
d90c6636ff Added support for a PASS log level. This probably
isn't complete, but it hopefully will do the job.
2002-12-17 03:36:53 +00:00
Bryce Denney
6b21b27e60 - BX_EXIT(exitcode) is called in several places, but the exitcode has been
completely ignored and Bochs has always been returning 0.  Now Bochs should
  exit with the proper exit code.
- implementation: BX_EXIT(exitcode) calls SIM->quit_sim(exitcode).
  quit_sim stores the exit code in the SIM object, then uses longjmp
  to unwind the stack and return to main().  main() calls
  SIM->get_exit_code() to retrieve the exit code and returns it.
- If you are wondering why we don't just call exit(exitcode), it is
  because in the wxWindows interface all of the CPU simulation runs as one
  thread while the user interface runs as another thread.  With the longjmp
  technique the simulation thread ends cleanly and it is possible to
  start a new simulation thread without making a new process.
2002-12-16 06:43:02 +00:00
Gregory Alexander
b522c1dcf3 Enhanced support for text snapshot checking.
Now CR/LF creation is suppressed in win32 when text
snapshot checking is on.  This allows for creation of
generic text snapshots in win32.
2002-12-16 02:49:55 +00:00
Bryce Denney
8de8ca24b9 - when changing the physical cdrom at runtime, Bochs would eject, insert,
eject, insert, eject, etc. several extra times before allowing you to
  actually change the CD.  The extra insert/eject cycles were coming from the
  param handlers for cdrom status and for the cdrom pathname.  To fix this, I
  changed wxdialog.cc and textconfig.cc to only call set() on parameters if
  they are different from the original value.  Now it generally does what you
  would expect.
- to change physical CD: change the Bochs CD status to "ejected". On some OSes
  that will actually eject it, but on others it will simply close the file so
  that the eject button will actually work.  Then put the new CD into the
  drive, and change the Bochs CD status to "inserted".

Modified Files:
  main.cc gui/siminterface.cc gui/siminterface.h
  gui/textconfig.cc gui/wxdialog.cc
2002-12-12 18:31:20 +00:00
Bryce Denney
c1acbaea3a - avoid showing an empty dialog if there is no cdrom 2002-12-12 16:52:21 +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
Christophe Bothamy
16ebfdb9e1 - update for macos compile 2002-12-12 15:29:45 +00:00
Gregory Alexander
ffc8c18fcd Fix incorrect retrieval of text_snapshot_check option. 2002-12-12 06:51:19 +00:00
Gregory Alexander
44e58663bc Working on a testing framework for bochs.
Added an option to do a BX_PANIC when the display
matches a previously recorded text snapshot.
2002-12-12 06:21:43 +00:00
Gregory Alexander
32340d66cc make_text_snapshot returns a length value.
We now use that instead of calling strlen.
2002-12-12 03:41:51 +00:00
Bryce Denney
496fcb2212 - be a little more careful with thread checks in ToggleMouse to fix
bug [ 652358 ] wx: middle button before sim freezes
2002-12-11 22:55:18 +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
Bryce Denney
088f2acaa6 - UK keymap contributed by Denis Lenihan 2002-12-11 21:35:50 +00:00
Bryce Denney
74cc67753a - in the wxWindows debugger, truncate the text in the debug console when it
reaches a certain maximum length.  Otherwise the debug console grows and
  grows and never frees any memory.  The max length is defined as a constant
  in wxdialog.h.  The max length should be made into a variable some day.
- This fixes bug [ 624317 ] wx: debug console never discards lines.

Modified Files:
  gui/wxdialog.h gui/wxdialog.cc
2002-12-08 09:16:18 +00:00
Bryce Denney
16ebed0b1e - since Christophe added the four-ata patch, it is possible to boot from
the first hard drive or first cdrom drive no matter where they are found.
  Now the wxWindows interface recognizes this fact.  It allows you to
  select HD boot if there is a hard drive in any ATA location, and
  select CDROM boot if there is a cdrom in any ATA location.
- this fixes bug [ 616139 ] wx: boot hd/cd must be in ata0 interface

Modified Files:
  gui/siminterface.cc gui/siminterface.h gui/wxmain.cc
2002-12-07 19:43:53 +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
1340d550ec - implement set_display_mode method for svgalib display library. Now it
handles text-to-vga transitions correctly for panics, the runtime config
  menu (accessible by F12), and the Bochs debugger.
2002-12-06 20:25:22 +00:00
Bryce Denney
5e1c89dfcb - put ifdefs around the whole file, so that it is enabled by BX_WITH_SVGA 2002-12-06 20:21:59 +00:00
Bryce Denney
87f1f3a2e0 Apply patch.safe-fullscreen. Comments from the patch follow:
This fixes bug #614724: SDL can get stuck in full-screen mode, and provides
a framework for fixing the problem on other full-screen display libraries
such as term, svga, etc.

- add virtual method bx_gui::set_display_mode(mode) which can be overridden
  by each display library class, if appropriate.  This method is primarily
  used when you run Bochs full screen, to tell the gui to switch from full
  screen back to a mode where you can use the text console.
- There are two display modes: config and simulation.  The mode is changed to
  config mode during logfunctions::ask, during the runtime configuration menu,
  and before displaying a debugger prompt.  It is changed back to simulation
  mode whenever instructions are running.
- Instead of being called directly through the global bx_gui pointer, the
  bx_gui_c::set_display_mode() method is almost always accessed through
  siminterface, like this:
    SIM->set_display_mode (DISP_MODE_CONFIG);
    SIM->set_display_mode (DISP_MODE_SIM);
  Of course siminterface just passes the call on to bx_gui::set_display_mode().
  I added it to siminterface so that the config interfaces could call it.
  (They don't #include bochs.h so they can't access bx_gui.)

Modified Files:
  logio.cc main.cc debug/dbg_main.cc gui/gui.h gui/sdl.cc
  gui/siminterface.cc gui/siminterface.h
2002-12-06 19:34:32 +00:00
Bryce Denney
586809116b - add explanation to a panic that can happen if you turn on private
colormap in X11 on a 32 bit display.
2002-12-05 19:19:34 +00:00
Christophe Bothamy
12f8aec60f - implement feature request [ 629068 ] make a way to log debug output to file
there is one more option in the configuration file "debugger_log"
  if the debugger is compiled in, all debugger output will be also
  written to this file.  Note: wxWindow config interface is not updated yet
2002-12-02 21:26:05 +00:00
Volker Ruppert
eac663c715 - fixed a warning in function HandleAskParam() 2002-12-01 16:11:12 +00:00
Bryce Denney
3edf45a1d9 - regenerate makefile dependencies 2002-11-25 15:05:51 +00:00
Bryce Denney
24f58227a5 - use </usr/include/vga.h> instead of "/usr/include/vga.h" so that it
doesn't get put in the dependency list.  It's not clear what is the best way
  to handle this header conflict anyway, other than to rename vga.h to bxvga.h
  or something.
2002-11-25 15:05:02 +00:00
Christophe Bothamy
5dc0a6ab61 - fix [ 639873 ] get_first_cd_handle called before init
We set the cdrom to ejected first (no call to get_first_cd_handle),
  the status will be updated after init
2002-11-24 14:57:43 +00:00
Bryce Denney
b079f4ace2 - move includes of standard headers stdlib, stdio, etc. before the include of
bochs.h.  Bernd Korz reported redefinition of Bit32u in the system header
  files, which I never saw before I moved bochs.h up above the other includes.
- The exact errors:
    /boot/develop/headers/posix/be_prim.h:23: error: conflicting types for
    `typedef long unsigned int Bit32u'
    /boot/home/Entwicklung/Sourcecodes/bochs/config.h:474: error: previous
    declaration as `typedef unsigned int Bit32u'
2002-11-22 15:14:39 +00:00
Bryce Denney
7382b84f8c - A new GUI is born!
add SVGALIB display library by Igor Popik <igipop@wsfiz.edu.pl>
  While it's running, you can press F12 to escape into the runtime config
  menu, and then you can change disks or quit or whatever.

  Better not try it with the bochs debugger...you could get stuck.

Modified Files:
  Makefile.in config.h.in configure configure.in main.cc
  plugin.h gui/Makefile.in
Added Files:
  gui/svga.cc
Removed Files:
  patches/patch.svgalib-gui patches/patch.svgalib-gui-f12
2002-11-21 19:26:07 +00:00
Bryce Denney
6868c681e9 - fix broken range checks in shadow params when you use x86-64 and wxWindows.
The problem is that bx_param_num_c values are signed 64 bit, but it's
  shadowing a 64 bit unsigned variable.
2002-11-21 19:12:31 +00:00
Bryce Denney
691c9d56c7 - change to nmake compatible lines (from Psyon) 2002-11-20 20:36:05 +00:00
Bryce Denney
c43b46c531 - check in some small compile patches from Martin Str|mberg <ams@ludd.luth.se>
to make Bochs compile on DJGPP.
  - put references to SIGSTOP and SIGTSTP in #ifdefs
  - add definition of BX_CD_FRAMESIZE and CD_FRAMESIZE
  - look for curses functions in -ldcurses

Modified Files:
  gui/term.cc iodev/cdrom.cc configure.in configure
2002-11-20 12:23:42 +00:00
Bryce Denney
eff7720ae7 This fixes bug #640549: dbg fails if wx configured but not on.
- The Bochs debugger uses BX_WITH_WX to decide to change to wxWindows debugger
  behavior: sending a synchronous message to the config interface to get a new
  command, sending all dbg_printf output to the config interface, deciding
  whether to trap control-C, etc.  But now that it's possible to compile with
  BX_WITH_WX and BX_WITH_other_things, this isn't quite right anymore.  With
  this change, we now use calls to a new method SIM->is_wx_selected() to decide
  which behavior to use.  This method is equivalent to checking if the display
  library variable is set to "wx", but it's implemented in such a way that it
  only has to check a boolean for each call to SIM->is_wx_selected().
- in siminterface.cc, init some local variables to 0 to avoid compile
  warnings.

Modified Files:
  debug/dbg_main.cc gui/siminterface.cc gui/siminterface.h
2002-11-19 09:27:39 +00:00
Bryce Denney
044598dfa6 - VC++ didn't like the fact that we were deleting a const char*. So I
typecast it to a char* and THEN deleted it!
2002-11-19 05:54:25 +00:00
Bryce Denney
0a7cb3a43c - apply patch.ifdef-disabled-options. Comments from that patch are below:
For a whole lot of configure options, I put #if...#endif around code that
  is specific to the option, even in files which are normally only compiled
  when the option is on.  This allows me to create a MS Visual C++ 6.0
  workspace that supports many of these options.  The workspace will basically
  compile every file all the time, but the code for disabled options will
  be commented out by the #if...#endif.

  This may one day lead to simplification of the Makefiles and configure
  scripts, but for the moment I'm leaving Makefiles and configure scripts
  alone.

  Affected options:
    BX_SUPPORT_APIC (cpu/apic.cc)
    BX_SUPPORT_X86_64 (cpu/*64.cc)
    BX_DEBUGGER (debug/*)
    BX_DISASM (disasm/*)
    BX_WITH_nameofgui (gui/*)
    BX_SUPPORT_CDROM (iodev/cdrom.cc)
    BX_NE2K_SUPPORT (iodev/eth*.cc, iodev/ne2k.cc)
    BX_SUPPORT_APIC (iodev/ioapic.cc)
    BX_IODEBUG_SUPPORT (iodev/iodebug.cc)
    BX_PCI_SUPPORT (iodev/pci*.cc)
    BX_SUPPORT_SB16 (iodev/sb*.cc)

Modified Files:
  cpu/apic.cc cpu/arith64.cc cpu/ctrl_xfer64.cc
  cpu/data_xfer64.cc cpu/fetchdecode64.cc cpu/logical64.cc
  cpu/mult64.cc cpu/resolve64.cc cpu/shift64.cc cpu/stack64.cc
  debug/Makefile.in debug/crc.cc debug/dbg_main.cc debug/lexer.l
  debug/linux.cc debug/parser.c debug/parser.y
  disasm/dis_decode.cc disasm/dis_groups.cc gui/amigaos.cc
  gui/beos.cc gui/carbon.cc gui/macintosh.cc gui/rfb.cc
  gui/sdl.cc gui/term.cc gui/win32.cc gui/wx.cc gui/wxdialog.cc
  gui/wxmain.cc gui/x.cc iodev/cdrom.cc iodev/eth.cc
  iodev/eth_arpback.cc iodev/eth_fbsd.cc iodev/eth_linux.cc
  iodev/eth_null.cc iodev/eth_packetmaker.cc iodev/eth_tap.cc
  iodev/eth_tuntap.cc iodev/eth_win32.cc iodev/ioapic.cc
  iodev/iodebug.cc iodev/ne2k.cc iodev/pci.cc iodev/pci2isa.cc
  iodev/sb16.cc iodev/soundlnx.cc iodev/soundwin.cc
2002-11-19 05:47:45 +00:00
Volker Ruppert
35c2be5518 - changed ne2k presence options from "valid" to "present" 2002-11-18 17:16:07 +00:00
Bryce Denney
c07684021c - fix obvious bug in macintosh gui code caused by search and replace
gone wrong.  It said "bx_amigaos_gui_c" instead of "bx_macintosh_gui_c".
  I wish somebody would test this!
2002-11-18 16:42:57 +00:00
Bryce Denney
b161509c56 - put wxT() around every string constant that gets passed into wxWindows.
This turns the string into a multibyte char * if necessary.  It becomes
  important if wxWindows is compiled with unicode support.
2002-11-18 02:40:31 +00:00
Bryce Denney
3ad052c23a - minor fix to compile in VC++ 2002-11-16 22:44:09 +00:00
Volker Ruppert
68a7e67d1b - fixed the names of the gui dll plugins (bx_*.dll) 2002-11-16 10:44:27 +00:00
Bryce Denney
515ffa8ecc - add BOCHSAPI_CYGONLY to insert DLL export tags in places that only Cygwin
wants them.
- modified: bochs.h config.h.in gui/siminterface.h
2002-11-15 18:31:55 +00:00
Bryce Denney
7cb3c606fe - when you reset the options, change the default to Edit Options 2002-11-15 14:38:57 +00:00
Bryce Denney
4e3d70d613 - if user chooses "Restore factory default configuration" then print a
message saying what it has done.
2002-11-15 13:26:15 +00:00
Bryce Denney
1bd7226b6f - change definition of BX_QUICK_START and friends into an enum, and
add more detailed comments about what they do.
2002-11-15 13:22:06 +00:00
Bryce Denney
1bd9a44a9e - plugins are now called libbx_NAME.so for unix and bx_NAME.dll for win32.
- plugins are installed into ${plugdir} which is defined to be
  ${libdir}/bochs-${VERSION}/plugins.

Modified Files:
  Makefile.in plugin.cc configure.in configure gui/Makefile.in
  iodev/Makefile.in
2002-11-14 18:45:49 +00:00
Bryce Denney
09dc13d0f8 - add BOCHSAPI on a bunch of extern variable declarations 2002-11-14 05:14:10 +00:00
Bryce Denney
1af54f9f12 - add definition of BX_PLUGGABLE in wx.cc and wxdialog.cc, since they
have to import DLL symbols from the main executable.

Modified Files:
  gui/wx.cc gui/wxdialog.cc
2002-11-14 05:13:40 +00:00
Bryce Denney
95e62bd80d - apply patch [ 632278 ] Carbon.cc Detabbing
from Jeremy Parsons (brefin)
2002-11-14 01:40:11 +00:00
Christophe Bothamy
052ee134b7 - fix [ 629606 ] BX_WITH_TERM affects ^C handling :
. if BX_GUI_SIGHANDLER is true and the term gui is selected at run time,
    a new global boolean (bx_gui_sighandler) variable is set to true.
    Special signal handling is done if bx_gui_sighandler is true.
  . if BX_GUI_SIGHANDLER is not true, bx_gui_sighandler is not compiled in.
2002-11-11 17:09:57 +00:00
Christophe Bothamy
81eca54b51 - fix [ 625696 ] text config menu: default can be wrong.
New behaviour is:
  . No command line arg (user want to load or create a new conf file)
    -> no .bochsrc is loaded
    -> defaults to "2. Read options from..."
  . command line arg -q (user want to quick start from .bochsrc)
    -> .bochsrc is loaded
      -> if found Run the simulation
      -> if not found defaults to "2. Read options from..."
  . command line arg -f (user want to edit a conf file)
    -> conf file is loaded
      -> if found defaults to "3. Edit options"
      -> if not found defaults to "2. Read options from..."
  . command line arg -qf (user want to quick start from a conf file)
    -> conf file is loaded
      -> if found Run the simulation
      -> if not found defaults to "2. Read options from..."
  . After selection of "2. Read options from..."
    -> defaults to "5. Begin simulation"
- fix "enable-control-panel" behaviour in configure.in.
- check if a romimage was supplied in the conf file.
  If not, print a hint about a missing/corrupt conf file.

  I hope I did not break anything, notably the Carbon gui
2002-11-09 14:12:10 +00:00
Volker Ruppert
52e703d8e8 - replaced all #if BX_WITH_WX sections by a check for the active config
interface at runtime. The behaviour of the button handlers was wrong if bochs
  is configured with plugins and all display libs enabled, wxWindows is present
  and a gui using textconfig is selected.
  The wx cdrom button still doesn't work since get_first_cdrom() always returns
  NULL.
2002-11-09 06:41:34 +00:00
Volker Ruppert
942c4c6c36 - added parentheses in function bx_real_sim_c::get_first_cdrom()
BUG: this function should be called if you press the wx cdrom button
2002-11-08 13:18:05 +00:00
Bryce Denney
1533c6df2c - remove tabs 2002-11-01 15:28:41 +00:00
Bryce Denney
c6d6b17c9a - fix wxWindows on win32, which was broken when we added plugin support.
- add a new global struct bx_startup_flags which stores argc,argv and
  when necessary, the WinMain arguments hInstance, hPrevInstance, etc.
  The new struct is defined in gui/siminterface.h because it is needed in
  both the main.cc code and in wxmain.cc and textconfig.cc (which don't
  include bochs.h).
- rename main() to bxmain() and create new main() and WinMain().
  main() and WinMain() just fill in the bx_startup_flags and then
  call bxmain().  Only one is defined at a time, of course.
- so far, WinMain is ONLY used when compiling with wxWindows on win32.
  It may be useful in other contexts as well, but I don't want to enable
  it in any other situation without some serious testing of different
  configurations.
- modified:
    main.cc gui/siminterface.cc gui/siminterface.h
	gui/textconfig.cc gui/wxmain.cc
2002-11-01 15:19:48 +00:00
Gregory Alexander
fc61a0522a Added support for run-time configuration of realtime PIT. 2002-10-29 22:26:32 +00:00
Bryce Denney
a6aa9afd67 - rename "control" to "textconfig". It was named when we called it
a control panel, but now we're calling it a text configuration interface.

Modified:
    .bochsrc Makefile.in bochs.h main.cc cpu/Makefile.in
    debug/Makefile.in disasm/Makefile.in fpu/Makefile.in
    gui/Makefile.in iodev/Makefile.in memory/Makefile.in
2002-10-29 20:18:32 +00:00
Bryce Denney
d8798fb799 - rename control.cc revision 1.66 to textconfig.cc 2002-10-29 20:17:05 +00:00
Bryce Denney
4442c9d28b - rename control.h revision 1.8 to textconfig.h 2002-10-29 20:16:04 +00:00
Bryce Denney
98e37268fc - include standard path variables in gui and iodev. We were missing
libdir, which is now used as the PLUGIN_PATH.
2002-10-28 08:42:06 +00:00
Bryce Denney
73c234b351 - add makefile rule for building SDL dll. It links the plugin with
the SDL library.
2002-10-28 08:20:12 +00:00
Bryce Denney
883442544c - we've been compiling a few extraneous plugins: wxdialog and wxmain.
These files are part of the wx plugin, and they should not be linked
  into a separate plugin.  I have changed gui/Makefile.in and configure.in
  to correct this.
- This fixes bug [ 628667 ] don't build plugin for wxdialog, wxmain
- modified: gui/Makefile.in configure.in configure
2002-10-28 05:49:42 +00:00
Bryce Denney
db750f8234 - to make the "idle hack" compile again, add virtual function sim_is_idle
to bx_gui_c and to bx_x_gui_c.
2002-10-27 23:33:13 +00:00
Christophe Bothamy
814d8b69ef - add "none", "lba", "rechs", "large", "auto" translation
- if translation=auto :
  . translation=none if cylinders <=1024 and heads <=16
  . translation=large if cylinders * heads <= 131072
  . transaltion=lba otherwise
- changes default translation value to "auto"
- add example in .bochsrc
2002-10-27 21:25:33 +00:00
Bryce Denney
954b737dda - apply MacOSX "About Box Patch" from Jeremy Parsons (Br'fin). This fixes
bug [ 626261 ] About Box is awkwardly outdated
2002-10-26 22:06:37 +00:00
Bryce Denney
dd7ad0449d - add missing LOG_THIS to fix compile problem reported by Timothy Schepens 2002-10-26 21:03:21 +00:00
Bryce Denney
99aa099b67 - we renamed the term 'VGA library' to 'display library' a while ago. I
fixed some lingering references to vga library.
2002-10-26 13:22:47 +00:00
Bryce Denney
48acd53db4 - all #warnings are now inside #ifdef __GNUC__ ... #endif
Modified Files:
    ltdl.c main.cc plugin.cc cpu/cpu.cc cpu/debugstuff.cc
    cpu/exception.cc cpu/fetchdecode64.cc cpu/init.cc
    cpu/paging.cc gui/siminterface.cc gui/wxmain.cc
    iodev/harddrv.cc
2002-10-25 12:36:44 +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
Volker Ruppert
c43564368a - remove trailing spaces from text snapshot
- incrementing variable txt_addr simplified
2002-10-22 17:30:54 +00:00
Bryce Denney
cd4d17a363 - min and max in shadow params were broken recently when I changed the
constructors around.  The min,max that were being passed to the parent
  class constructor had junk in them.  In config.h.in, I defined the minimum
  and maximum values for each integer datatype so now we pass correct
  min and max values to the parent class.  These replace the BX_MAX_[U]INT
  and BX_MIN_[U]INT values.
- modified: main.cc config.h.in gui/siminterface.cc
2002-10-21 11:13:54 +00:00
Bryce Denney
8047b68ba2 - in a recent revision, I made bx_param_num_c::get() return a 64 bit
value instead of a 32 bit value.  Unfortunately there were many uses
  of bx_param_num_c::get() which depended on its size, and they were
  all broken by this change.  So in this rev I am changing get() to
  return a 32bit unsigned again.  If you really want a 64bit value (which
  is quite rare) you should call get64() instead.
- modified: gui/siminterface.h gui/siminterface.cc
2002-10-21 01:05:53 +00:00
Bryce Denney
1f44d32cff ----------------------------------------------------------------------
Patch name: patch.macosx-ui-polishing
Author: Jeremy Parsons <brefin@mac.com>
Date: Wed Oct 16 2002

Detailed description:

A number of changes to the Carbon Code to improve how well it meshes with the
MacOS X user experience as well as to make sure that all of more recently added
toolbar buttons actually work.

Specific changes include:

    Added partial keymap support. (Keymaps don't yet affect what the user types
        but an X11 keymap can be used to enable pasting)
    Copying of text screens added
    Pasting of text as keyboard input added
    Copy, Paste, Reset, and Snapshot menu items now work the same as the
        corresponding toolbar elements
    Revamped icon handling to use Control Manager IconControls,
        thus removing icon display code and greatly simplifying icon click handling code
        while adding better behaviours (icons that darken when clicked, track mouse movement,
        and only do something if the mouse is released atop of them as well as gaining
        the ability to be disabled)
    Tweaked Paste toolbar and menu items to only be enabled if key mapping is in use AND the
        clipboard contains text
    Tweaked Copy and Snapshot toolbar and menu elements to only be enabled if
        the screen mode is text.
    Tweaked User Keys toolbar element to only be enabled if there are user keys
        defined to be sent
    Tweaked Configure toolbar element to only be enabled if a tty is available
        (as in the emulator was started from a terminal)
    Respaced toolbar icons to match Aqua Toolbars
    Disabled menu items that are not currently handled (undo, clear, cut, disk eject)
    Full screen backdrop resettled all across the screen
    Fixed the callback interface so that when a Panic needs to ask the user about continuing
    	it actually works appropriately.
----------------------------------------------------------------------
2002-10-18 11:46:19 +00:00
Bryce Denney
d401c8e23b - fix incorrect use of delete ptr in text mode debugger. It should
say "delete [] text" since it is an array of chars.
2002-10-16 21:37:06 +00:00
Bryce Denney
4fc294ce2b - I was having compile problems because when BX_DEBUGGER==0 the declaration
of the DebugLogDialog class was turned off by an #if.  Now the methods are
  turned off by the same condition.
2002-10-16 20:39:43 +00:00
Volker Ruppert
21b8955a4e - userbutton shortcut feature improved. The shortcut string can be a combination
of these key names: "alt", "ctrl", "del", "esc", "f1", "f4", "tab", "win".
  Up to 3 keys can be pressed at a time.
2002-10-16 19:50:27 +00:00
Bryce Denney
f6c637aa8a - upgrade bx_param_num to use 64 bit values, so that I could make
bx_shadow_num_c able to handle pointers to 64 bit values.  This
  allows x86-64 and wxWindows to coexist.
- I had a number of duplicate constructors for bx_shadow_num_c,
  with an without the description arg.  I eliminated the ones
  that had no description, and also removed the min/max arg from
  all.  I still need a bunch of constructors though, for
  Bit64u*, Bit64s*, Bit32u*, Bit32s*, Bit16u*, Bit16s*, Bit8u*, Bit8s*.
  Having all these constructors allows us to write
    new bx_shadow_num (bxid, name, description, &value)
  for basically any integer variable.  They are all handled by the same class.
- these changes led to minor touchups in cpu/init.cc and iodev/keyboard.cc
- modified:
    configure main.cc cpu/init.cc iodev/keyboard.cc
    gui/siminterface.cc gui/siminterface.h
2002-10-16 19:39:27 +00:00
Bryce Denney
ac9f370975 - shouldn't have default values for method parameters in the .cc! oops.
Thanks to sandos for pointing this out.
2002-10-16 19:27:17 +00:00
Volker Ruppert
35225ed64d - the keyboard mapping feature for wxbochs (wxGTK version) now works with the
X11 keymap files. This okay since the keysym values are identical. The "AltGr"
  key on European keyboards doesn't work with wxGTK 2.3.3 because the keysym
  GDK_Mode_switch is not handled in wxGTK.
- German keymap table for wx and wxgtkkeys.h are no longer needed
2002-10-16 16:32:55 +00:00
Volker Ruppert
5e2cbe04bf - implementation of the keyboard mapping feature for wxbochs (wxGTK version)
- German keymap table for wxbochs (wxGTK version)
2002-10-15 16:48:10 +00:00
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
Volker Ruppert
90e861cf97 - 3 missing GDK keysyms added 2002-10-13 11:07:44 +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
fb6fe521a2 - the "AltGr" key on European keyboards works now (wxbochs on win32 only) 2002-10-12 09:04:50 +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
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
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
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
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
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
8ebc11df90 - use SDL_WarpPointer to keep the mouse from going outside the window.
This must be done carefully though, because the call to SDL_WarpPointer
  generates a mouse motion event of its own.  To work around this, I have
  added code that should ignore motion events generated by SDL_WarpPointer.
  This should fix bug [ 619283 ] SDL: os mouse pointer leaves the window.
  On Linux, SDL 1.2.3 it works fine.
2002-10-06 17:17:14 +00:00
Bryce Denney
346e2747d3 - fixed up ParamDialog to correctly handle "trees" of parameters. A
bx_list_c can now be displayed as either a wxStaticBox with the
  child parameters inside, or as a wxNotebook with each child
  parameter in a separate tab.  (The children can also be lists of
  course.)  The default display is the wxStaticBox type, but if you
  set the option bit bx_list_c::USE_TAB_WINDOW in the list,
  ParamDialog will use the wxNotebook display instead.
- to get the param trees working, I created a new struct
  AddParamContext, which is passed to AddParam().  This struct is
  critical when AddParam calls itself recursively to display lists
  within lists.
- use the wxNotebook display feature for the ATA0,1,2,3 controller
  dialog box.  Now instead of being hundreds of pixels tall, it is
  reasonable height with three different tabs.  This fixed bug
  #619074: "wx: ATA interface editor too tall" and was the whole
  reason I started messing with this at all.

plus some minor cleanups
- when I added the enum constant bx_list_c::USE_TAB_WINDOW, I also
  removed the BX_ prefix from all the other enum constants that are
  used in parameter options in siminterface.cc.  Since these constants
  are enums within a class, there is no possibility of namespace
  conflicts so the prefix is not needed.
- added wxADJUST_MINSIZE to all wxChoice controls, since that tells
  wxWindows to adjust its size to the length of the longest string.
- instead of calling SetSize or SetSizeHints on every textcontrol with
  a hardcoded width, I am using just two wxSize specifications for
  everything: either normalTextSize or longTextSize.
- edit names of a few menus and params.  For example now instead of
  the tab saying "Master ATA device on channel 0" it will say
  "First HD/CD on channel 0".

Modified Files:
  main.cc gui/control.cc gui/gui.cc gui/siminterface.cc gui/siminterface.h
  gui/wxdialog.cc gui/wxdialog.h gui/wxmain.cc
2002-10-06 02:37:28 +00:00
Bryce Denney
fdadda0ba8 - remove tabs 2002-10-05 23:11:59 +00:00
Bryce Denney
78b179d97c - if we're going to print "dimension update", might as well say what the
new values are
2002-10-05 18:27:24 +00:00
Bryce Denney
f5e351f12d - fix serious color bug in UpdateScreen. Because it considered newBits
to be signed instead of unsigned, it was looking up color values
  like wxBochsPalette[-126] instead of wxBochsPalette[130].  This affected
  any colors in the palette between 128 and 255.  I simply hanged newBits
  to signed, and it fixed bug #618462: wx: 256 color modes not working properly
- I am still not satisfied with the way that wxWindows maps colors on an
  8-bit display, but that is a different issue.
2002-10-05 18:15:00 +00:00
Bryce Denney
b147067051 - palette_change must return 1 to indicate that a screen update is needed
after the palette changes.  This makes the iodev/vga.cc code do the
  right thing.  This also fixes the toolstar splash screen, but at a
  fraction of the cost of the solution in rev 1.37.
2002-10-05 17:45:48 +00:00
Bryce Denney
7f8482cc93 - revert previous revision 1.37. There is a really easy solution which
I will check in instead.
2002-10-05 17:42:51 +00:00
Bryce Denney
494d0784ac - when the colormap changes, any existing pixels on the screen of that color
need to be updated.  This was impossible before, because we only stored the
  RGB values in wxScreen.  I added a new array called wxPixel that stores the
  8-bit color index that should be displayed.  Now if the VGA palette changes,
  I use wxPixel data to reconstruct wxScreen using the new palette.
- this fixes the display of the splash screen of the Toolstar disk, since
  it relied on drawing the picture and then fading the colormap from back
  up to the normal values.  I was hoping it would fix the splash screen of
  win95 too, but it does not.
2002-10-05 17:24:20 +00:00
Bryce Denney
89cf45ec2d - remove tabs 2002-10-05 12:40:34 +00:00
Volker Ruppert
757823f1ab - force a text screen update after a charmap change 2002-10-04 10:52:44 +00:00
Bryce Denney
f54551717e - include <windows.h> in bochs.h whenever WIN32 is defined. This is required
so that windows types can be used in fields, for example in cdrom.h:
    #ifdef WIN32
      HANDLE cdrom_interface::hFile;
    #endif
- since every file includes bochs.h, I removed includes of <windows.h>
  everywhere else
- modified: bochs.h cpu/extdb.cc gui/win32.cc gui/wx.cc iodev/cdrom.cc
  iodev/eth_win32.cc iodev/floppy.cc
2002-10-03 21:07:04 +00:00
Volker Ruppert
171038a28a - stop drawing if the y position is outside of the visible screen. Some graphics
modes have caused a segmentation fault in that case (e.g. CGA 320x300x4)
2002-10-03 13:12:20 +00:00
Bryce Denney
c901d60d00 - only XFlush if display has been opened already 2002-10-02 02:52:24 +00:00
Bryce Denney
4c9776fb96 - add -lwinmm to the link lines anytime you use --enable-sb16=win. Now
instead of winmm being a part of GUI_LINK_OPTS_WIN32 only, it is
  placed in @DEVICE_LINE_OPTS@ so that it will be used for sdl, rfb, wx,
  etc.
- solve compile problems when building bximage, niclist, and any other
  console based program.  The compile flags returned by wx-config and
  sdl-config did strange things to these console programs, for example
  redefining main to SDL_main.  Because I wanted to use the
  configure-generated CFLAGS to compile the programs, but I wanted to
  avoid including GUI specific compile options, I split up the configure's
  @CFLAGS@ variable into @CFLAGS@ and @GUI_CFLAGS@, and split
  @CXXFLAGS@ into @CXXFLAGS@ and @GUI_CXXFLAGS@.  All programs in the
  Bochs binary will use both, but the console programs will just use
  @CFLAGS@ or @CXXFLAGS@.
- gui/Makefile.in, I no longer use the gui specific CFLAGS variables,
  SDL_CFLAGS and WX_CXXFLAGS.  These values are included in CFLAGS and
  CXXFLAGS now.
- modified: configure.in, configure, all Makefile.in's
2002-10-01 23:37:50 +00:00
Bryce Denney
85ca569ef4 - fix a very stupid memory leak that I added to the the text mode debugger
recently.  oops.
2002-10-01 13:40:05 +00:00
Bryce Denney
3f9e3ee12d - comment out a few very frequent debug messages
- in CopyParamToGui and CopyGuiToParam, ignore list parameters instead of
  printing a warning
2002-09-30 22:15:20 +00:00