Commit Graph

1047 Commits

Author SHA1 Message Date
Bryce Denney
dd4d31e5ea - now parameters can be enabled/disabled by boolean parameters in
ParamDialog.  When a boolean param changes, I read its dependent_list
  field to see which other parameters depend on it.  Then, for any
  dependents that are actually showing in the dialog, I set their
  enable bit accordingly.  This required addition of another hash table,
  called paramHash.  The two EnableChanged() methods implement this.
- remove all ConfigKeyboardDialog code because I can do just as well
  using the generic ParamDialog.
- fix bug that caused occasional crashes.  To attempt to find all the
  choices in an a wxChoice control, I was calling GetClientData() on
  increasing index until it returned NULL.  The docs implied that this
  was safe, but it's not.  Eventually I found an apparantly undocumented
  call wxChoice::GetCount() that gives the number of strings in the
  choice box and it allows me to do the right thing.
2002-09-03 08:53:41 +00:00
Bryce Denney
a768d54939 - the system of using the bx_param_c::set_handler() callback functions
to change the enable/disable status of other parameters worked fine for
  the text mode interface but poorly for the wxWindows gui.  So I
  implemented it a different way.  Now in every boolean parameter, there is
  a field called dependent_list which is a list of parameters which
  are enabled/disabled by that boolean.  Having this list available
  allows both the text mode CI and the wxWindows CI to know which fields
  should be enabled and disabled as a result of a boolean changing value.
- when the set() method of a bool param is called, or when the
  dependent_list is changed, a private method called update_dependents()
  changes the enabled status of all dependent parameters.
- add macros to get parameter ids of serial and parallel port parameters,
  using the port number as an input variable.
2002-09-03 08:46:30 +00:00
Bryce Denney
7918513df4 - the system of using the bx_param_c::set_handler() callback functions
to change the enable/disable status of other parameters worked fine for
  the text mode interface but poorly for the wxWindows gui.  So I
  implemented it a different way.  Now in every boolean parameter, there is
  a field called dependent_list which is a list of parameters which
  are enabled/disabled by that boolean.  Having this list available
  allows both the text mode CI and the wxWindows CI to know which fields
  should be enabled and disabled as a result of a boolean changing value.
- when the set() method of a bool param is called, or when the
  dependent_list is changed, a private method called update_dependents()
  changes the enabled status of all dependent parameters.
2002-09-03 08:44:55 +00:00
Bryce Denney
fbdf6cb89d - remove unused vars to fix warning 2002-09-03 05:40:59 +00:00
Bryce Denney
b74269a3b7 - add generic dialog class called ParamDialog. You create it, call
a method to add the parameters (bx_param_c) that you want to edit,
  and display it.  It knows how to display and edit boolean, int,
  enum, and string, so it can do a reasonable job on any parameter.
  The end result is not as nice as a box that you lay out by hand, but
  it's decent.  The most obvious thing that's missing from
  ParamDialog-generated dialogs is that I haven't found a way to
  make an "Enable" button that enables/disables a bunch of other
  parameters.  I'll keep thinking about that.
- using ParamDialog, I made dialogs for Sound, Cmos, Serial/Parallel,
  32bitOSloader, and an ugly catch-all category called other.
  Now I believe you can edit every single option using wxWindows.
2002-09-03 05:32:49 +00:00
Bryce Denney
2c5e29a77b - add get_size() on a bx_list_c 2002-09-03 05:31:42 +00:00
Bryce Denney
b9439c5f61 - correct abuse of local variable in bx_param_bool_c::text_ask. I had created
a temporary char[] buffer, filled it using sprintf, and then used a pointer
  to it even after it went out of scope.
2002-09-03 01:09:46 +00:00
Bryce Denney
1267d19090 - add ConfigKeyboardDialog
- remove the format string from GetTextCtrlInt() because the strtoul
  conversion is better than the sscanf with a format string (it supports
  both base 10 and 16 with 0xFF notation).
- modified files: gui/wxdialog.cc gui/wxdialog.h gui/wxmain.cc gui/wxmain.h
2002-09-02 22:53:39 +00:00
Bryce Denney
367c549fc4 - fix those browse buttons on the MemoryConfigDialog
- also other browse buttons were somewhat broken in that they didn't
  set the initial value of the wxFileDialog.  Now all text fields
  with a browse button use a single function BrowseTextCtrl() to
  avoid future problems of this sort.
- if the Ok on the MemoryConfigDialog is rejected because the integers
  can't be parsed, now give a more specific error message that points you
  to which field has the illegal value.
- print hex numbers with CAPS.  With proportional font this is much
  easier to read.
- accept either strings with base 10 or 16 numbers in GetTextCtrlInt by
  default.  If the sscanf fails, accept anything that strtoul can
  read.  Unfortunately legitimate "-1"'s being returned from strtoul will
  be rejected, but at present there is no need for negative numbers in
  textfields anywhere.
- modified files: gui/wxdialog.cc gui/wxdialog.h
2002-09-02 22:12:31 +00:00
Bryce Denney
6009e14996 - add MemoryConfigDialog that sets the ROM BIOS and VGA BIOS options,
and also the optional rom settings.  I think it all works except that
  the Browse buttons aren't hooked up yet.
- modified Files: gui/wxdialog.cc gui/wxdialog.h gui/wxmain.cc gui/wxmain.h
2002-09-02 20:13:52 +00:00
Bryce Denney
0268014110 - add LogOptionsDialog that lets you decide whether to ignore, report,
die, or ask the user for each type of event.  It has a button that
  will lead to the "advanced" dialog, which doesn't exist yet.
- in gui/wxdialog.h, sketch a few more dialogs to be done soon
- modified: gui/wxdialog.cc gui/wxdialog.h gui/wxmain.cc gui/wxmain.h
2002-09-02 17:03:14 +00:00
Bryce Denney
ed82a64ae5 - fix up NetConfigDialog and the code that calls it, so that what the
user selects actually changes the settings.
- modiified files: gui/wxdialog.cc gui/wxdialog.h gui/wxmain.cc
2002-09-01 21:24:14 +00:00
Bryce Denney
9e67dcb3e1 - add NetConfigDialog box, that configures networking settings
- for all modal dialogs that return a boolean result, return either
  wxOK or wxCANCEL instead of 0,-1.
- you can view the NetConfigDialog box if you choose the Edit:Network menu
  item, but it's not connected to the actual parameter values yet.
2002-09-01 19:38:08 +00:00
Bryce Denney
572fc4ed57 - I had been misunderstanding how you're supposed to convert wxStrings
into normal C strings.  After asking about it on wx-users, I understand
  it better now.

  Example of unsafe code:
    char *filename = dlg.GetFilename().c_str ();
    printf ("file name is %s\n", filename);

  The problem is that dlg.GetFilename() returns a temporary wxString
  that goes out of scope at the end of that line of code.  The "filename"
  string is unstable if you write it this way.

  Example of safe code:
    char filename[1024];
    wxString fn (dlg.GetFilename ());
    strncpy (filename, fn.c_str (), sizeof(filename));
    printf ("file name is %s\n", name);

  Now we have a stable copy of the wxString in "fn" which is usable
  as long as fn is in scope.

- also now we use wxStrings (almost) all the time in the interface to the
  wxdialogs.  Any conversion from char* to wxString and back is done in
  wxmain.cc now.
2002-09-01 15:27:33 +00:00
Volker Ruppert
dfe902554a - text mode cursor size feature implemented 2002-09-01 07:32:03 +00:00
Bryce Denney
b65997bb13 - implement Edit:Boot, which chooses the boot drive 2002-08-31 04:58:24 +00:00
Bryce Denney
329bc47b77 - move BX_BOOT_* constants from bochs.h into gui/siminterface.h 2002-08-31 04:57:21 +00:00
Bryce Denney
327cd86e9b - add sketches showing a large configuration dialog similar to Netscape's
Edit:Preferences.
2002-08-31 00:35:25 +00:00
Bryce Denney
9e2a602c56 - remove create image button from cdrom dialog 2002-08-30 22:52:32 +00:00
Volker Ruppert
c3d63b2e81 - in function DrawBochsBitmap(): use the system palette instead of fixed values
- in function fillBxKeyEvent_MSW(): simplified the detection of extended scancodes
- in function text_update(): fixed a warning
2002-08-30 17:39:14 +00:00
Bryce Denney
645f1a0365 - make the "File:New Configuration" menu item call bx_reset_options(),
with a little "Are you sure?" dialog.
2002-08-30 16:23:36 +00:00
Bryce Denney
77f87fbbca - to convince gcc -MM to ignore system headers, I had to change some
#include statements that used ""'s so that they used <>'s instead.
  (gcc -MM generates the dependency list in the Makefile.)
2002-08-30 07:03:50 +00:00
Bryce Denney
4c20c5cd81 - add dependencies for wxwindows source files 2002-08-30 07:01:59 +00:00
Bryce Denney
de5daefbb6 - move all dialog box sketches from README-wxWindows into gui/wxdialog.h,
commented of course.
2002-08-30 06:49:19 +00:00
Bryce Denney
f23005efbf - move ASCII version of menu layout into wxmain.cc next to the code that
implements it.
2002-08-30 06:46:38 +00:00
Bryce Denney
3ce8912089 - add CdromConfigDialog to configure cdroms
- HDConfigDialog now uses an EnableChanged() method to set the enabled bit
  on components controlled by the enable checkbox.
- now sets the present bit on hard disks and cdrom
- enforces the rule that you can't have DISKD and CDROMD (just in time for
  Christophe to add another interface)
2002-08-30 06:06:36 +00:00
Bryce Denney
4bd24c2771 - now the same function is used to create both floppy and hard disk images.
They were nearly the same code anyway.
2002-08-29 23:28:52 +00:00
Bryce Denney
2aba2436fa - add "create image" for hard disk image
- now the megabytes field is a wxStaticText, which makes it clear that
  it cannot be edited.
- add "enter size/compute geometry" button for HD image
- make a few more strings into #defines in wxdialog.h
- disable most of the Edit menu during simulation, reenable it when
  simulation stops
2002-08-29 23:18:10 +00:00
Bryce Denney
e7fbe9e04e - propose new floppy config dialog that distinguished between device
config and changing the media.  The proposed change is NOT implemented.
2002-08-29 22:09:55 +00:00
Bryce Denney
d77a796a10 - add some vertical space between some things 2002-08-29 21:00:27 +00:00
Bryce Denney
a0828d3ee7 - make cancel buttons use id wxID_CANCEL so that pressing Cancel and
pressing ESCAPE are equivalent
2002-08-29 20:41:45 +00:00
Bryce Denney
ef4b975884 - add "Create Image" button to floppy dialog, and make it actually work 2002-08-29 20:13:05 +00:00
Bryce Denney
7ab99b2ac9 - this patch from Volker: make SetFilename arg be const char* as well 2002-08-29 20:09:54 +00:00
Bryce Denney
7ce3b36770 - get rid of the not-so-great name CUI which I introduced a few days
ago.  Now we have the simulator, the siminterface, the VGA display
  window (VGAW), and the configuration interface (CI).
2002-08-29 14:59:37 +00:00
Bryce Denney
e43d822c32 - change SetDriveName() method to take const char * 2002-08-28 21:06:14 +00:00
Bryce Denney
17da6fe3c1 - add HDConfigDialog box for wxWindows for editing hard disk params.
Now you can edit floppy and hard disk parameters using dialogs.
2002-08-28 15:27:26 +00:00
Bryce Denney
a08cf194c5 - add another wxWindows dialog, FloppyConfigDialog, which lets you
choose the filename and capacity of a floppy image.  This dialog
  can recognize a list of names as physical disk drives, and it has a
  Browse button so that you can click on a new image intead of having
  to type it.  If you press ok, then the Bochs parameters are updated.
- eventually we should make a function that makes a list of the
  physical devices that should be mentioned here.  For Windows it should
  say "Physical drive A:" for "a:", while on Linux it should say
  "Physical drive fd0" for "/dev/fd0" or something.  Even if bochs
  doesn't find the correct physical disk drives, you can still type
  whatever file name you want.
2002-08-28 07:54:53 +00:00
Bryce Denney
7fc65e2e25 - add first custom dialog box to the wxWindows interface in
gui/wxdialog.h and gui/wxdialog.cc.  The first dialog box is
  called LogMsgAskDialog.  It displays panic messages and asks if you
  want to continue, quit, etc.
2002-08-28 03:20:23 +00:00
Bryce Denney
67f9213460 - eliminate unused BX_ASYNC_EVT_SHUTDOWN_GUI event. 2002-08-28 03:14:53 +00:00
Bryce Denney
44ec9a0fc8 - update Makefile dependencies on nearly everything 2002-08-27 22:43:57 +00:00
Bryce Denney
6bbf7d5957 - use setjmp() and longjmp() to quit the simulation thread cleanly.
I use setjmp() to save the context just before calling
  bx_continue_after_config_interface().  Then, in
  bx_real_sim_c:quit_sim, I use longjmp() to jump back to that context.
  This happens in main.cc and in gui/wxmain.cc (wxWindows only).
  I haven't tested with the debugger yet.  Possibly with debugger
  the quit longjmp() should jump back to the debugger prompt loop
  instead of actually quitting the program.
- clean up BX_ASYNC_EVT_LOG_MSG implementation by creating a different,
  synchronous event called BX_SYNC_EVT_LOG_ASK.  The async event
  could be used to simply tell the CI that an event has occurred,
  for example if the user wanted to view the events on screen
  (not implemented).  The sync event is used when you want the user
  to respond before the simulation can continue, such as a for the
  "panic=ask" behavior.
- in wxmain.cc, move the updates to the Start,Stop,Pause,Resume menu
  items into a separate method simStatusChanged().  This makes the code that
  does important stuff more readable.
- remove wxMutexGuiEnter()/Leave() from MyFrame::OnSim2CuiEvent().
  This method is an event handler called in the gui thread, so it
  already has the gui lock.  This call caused thread lock on my linux
  box.
2002-08-27 18:11:13 +00:00
Volker Ruppert
9882c64fb6 - removed unused static char *ask_about_config_interface
- changed quickstart option in start menu help text to -q
2002-08-27 16:27:57 +00:00
Bryce Denney
26385f2866 - I've added lots of comments in siminterface.h, and tried to clean up
the terminology a bit.  In particular, the term "gui" has started
  to mean different things in different contexts, so I've defined
  some more specific names for the parts of the user interface, and
  updated comments and some variable names to reflect it.  See
  siminterface.h for a more complete description of all of these.

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


    GUI: Literally, "graphical user interface".  Until the configuration menus
      and wxWindows came along, everyone understood that "gui" referred to the
      VGA display window and the toolbar buttons because that's all there
      was.  Now that we have the wxWindows code, which implements both the VGAW
      and the CUI, while all other platforms implement only the VGAW, it's not
      so clear.  So, I'm trying to use VGAW, CI, and CUI consistently since
      they are more specific.
    control panel: This has been used as another name for the configuration
      interface.  "control panel" is also somewhat unspecific and it sounds
      like it would be graphical with buttons and sliders, but our text-mode
      thing is not graphical at all.  I've replaced "control panel" with
      "configuration interface" wherever I could find it.  In configure script,
      the --disable-control-panel option is still supported, but it politely
      suggests that you use --disable-config-interface instead.
- clean up comments in siminterface,wx* code
- add comments and examples for bx_param_* and BxEvents
- remove some obsolete stuff: notify_*_args,
  bx_simulator_interface_c::[sg]et_enabled() methods
- in siminterface.cc, move a few bx_real_sim_c methods to where they belong,
  with the rest of the methods.  No changes to the actual methods.
- remove some DOS ^M's which crept in and confused my editor.
2002-08-26 15:31:23 +00:00
Volker Ruppert
026f0dcb8d - disable menu items "New Configuration" and "Read Configuration" when the
simulation thread starts
2002-08-25 20:35:19 +00:00
Volker Ruppert
6055c158e9 - wx gui menu functions "Read Configuration" and "Save Configuration" implemented
- loading default bochsrc for the wx gui no longer necessary
- the wx gui version of bochs now accepts the same command line arguments as
  the other guis
2002-08-25 15:51:46 +00:00
Volker Ruppert
dc07804616 - simple user shortcut dialog for wxWindows added
- floppya, floppyb and cdromd handlers: don't change anything when the user has
  cancelled the dialog
2002-08-25 12:32:54 +00:00
Volker Ruppert
4a58339cad - pass command line arguments to function bx_init_main() 2002-08-25 09:54:05 +00:00
Volker Ruppert
95771fe0e5 - command line parameter --help added
- this changes also fix a carbon gui compile problem (SF bug #594718)
2002-08-25 08:31:16 +00:00
Bryce Denney
e352d0b871 - oops, I used BX_CPU_THIS_PTR outside of the cpu object. Changed the
reference to BX_CPU(0) which is legal even when BX_USE_CPU_SMF is off.
2002-08-25 05:21:16 +00:00
Volker Ruppert
eda0dc5c7e - renamed serial and parallel options "Opresent" to "Oenabled" and "*_PRESENT"
to "*_ENABLED"
- bx_serial_options for all 4 ports moved into an array com[4]
- serial port com1 is enabled by default
- detection of com2, com3 and com4 config options disabled for now
- new parameter "enabled" added to the serial bochsrc options
- error handling for serial and parallel bochsrc options changed. The unhandled
  BX_PANICs are replaced by BX_ERRORs.
- new function bx_write_serial_options() added
- serial destructor restores original terminal settings only when serial port
  is enabled and the tty_id is valid
2002-08-24 17:11:33 +00:00
Volker Ruppert
56952f9132 - parport1 enable/disable support added. Now you can control the presence of
parport1 with the new option "enabled". The old option "enable" only
  controlled the output. The parport1 is enabled with no output by default.
  Changes:
  * bochrc option "enable" replaced by "enabled"
  * parport option "Oenable" replaced by "Opresent"
  * bx_parport_options par1 and par2 replaced by an array par[2]
  * initialize parport1 resources only when enabled
  * renamed variable "parport_init_list" to "par_ser_init_list" since it
    contains parport and serial options
  * documentation and bochsrc updates
- the parport variables "output" and "initmode" now belong to the bx_par_t
  structure
- TODO: add parport2 (disabled by default), parport detection in the bios
2002-08-24 10:20:35 +00:00
Volker Ruppert
29f5e855cf - mouse functions fixed:
* the captured mouse belongs to the simWnd
  * adding border and caption sizes is not necessary
2002-08-18 08:35:52 +00:00
Volker Ruppert
7433d1d293 - set the log action for the log level "panic" of all devices to "fatal" (doing
it for the gui isn't enough)
2002-08-17 14:01:07 +00:00
Volker Ruppert
001f8003e9 - get_term_char(): replace the current character by a space when foreground
color and background color are the same
- shifted function keys added
2002-08-15 10:02:18 +00:00
Volker Ruppert
b50ce295da - DrawBitmap and DrawChar() now use the system color palette instead of fixed
RGB values
2002-08-12 14:41:42 +00:00
Volker Ruppert
da3a147ce2 - array 'colortbl' replaced by the 'curses_color' array using curses constants
(from plex86 curses.cc)
- set the log action for the log level "panic" to "fatal", because the "ask"
  menu causes trouble in the terminal
- logfile output to stderr not allowed
- handle_events(): type of variable 'character' must be 'int'
- two terminal chars added in function get_term_char()
- bit 7 of the vga attribute enables the A_REVERSE flag of the terminal char
  (from plex86 curses.cc)
- variable term_attr no longer necessary in function text_update()
2002-08-12 12:00:11 +00:00
Volker Ruppert
85f803d919 - support for color terminal implemented
- function keys are working now
- clear_screen() function works now
- a few special vga characters converted to terminal characters
- exit() now clears the screen and calls endwin()
- "[TERM]" removed from info/error messages
- debug messages changed to BX_DEBUG
2002-08-11 18:42:10 +00:00
Volker Ruppert
f49fb131b1 - InitCommonControls() must be called before creating the toolbar 2002-08-11 13:01:49 +00:00
Volker Ruppert
112487f7b1 - standard headerbar replaced by a real win32 toolbar using the existing
bitmaps. The bochs window now consists of 3 windows: the main window and
  it's child windows simulation window and toolbar window.
  Changes:
  - new windows "mainWnd" and "simWnd" replace the old "hwnd"
  - moved the functions of the old window procedure to the new ones
  - toolbar functions added in create_bitmap(), headerbar_bitmap() and
    replace_bitmap()
  - function show_headerbar() no longer needed (must be present for
    compatibility)
  - a few variables for the headerbar changed or removed
  - bitmap and headerbar variables now initialized in specific_init()
2002-08-10 15:23:30 +00:00
Volker Ruppert
7ebffde233 - buxfixes in function terminateEmul():
- delete the headerbar bitmaps
  - delete the cursor bitmap only if present
  - set the log action for the log level "panic" to "fatal"
2002-08-09 20:25:02 +00:00
Volker Ruppert
1d4d5aa244 - new "user" button added to the headerbar. It can send keyboard shortcuts to
the guest OS. The shortcut can be defined in the bochsrc or in the config
  interface. It is possible to change it at runtime.

  These shortcuts are currently recognized:
  ctrlaltdel, ctrlaltesc, ctrlaltf1, alttab

  Here is the list of changes:

  * userbutton.h and userbutton.xpm added in gui/bitmaps
  * config options for the userbutton shortcut added
  * initialize the new button in the gui.cc
  * the new userbutton handler generates keypresses and relaeses depending on
    the shortcut keyword
  * the gui stops adding buttons to the headerbar if not enough space is left.
    This can happen when the screen width is 320 pixels (done for X11 only).
  * TODO: build a dialog box for the wxWindows gui
2002-08-09 06:16:43 +00:00
Volker Ruppert
3a294b7521 - function bx_read_rc() returns -1 when the rcfile is "none". Now the default
option in the start menu doesn't change to "Begin simulation" in that case.
2002-08-07 07:24:32 +00:00
Volker Ruppert
c3cda0a919 - separation of floppy device type and media type started. This feature needs
more work in the floppy and bios code.
- floppy and cdrom entries in the runtime config menu can be disabled if the
  drive wasn't defined in bochsrc or start menu
- floppy variable "initial_status" and cdrom variable "inserted" renamed to
  "status"
- unused variable *ips in function build_runtime_options_prompt() disabled
2002-08-04 08:42:34 +00:00
Volker Ruppert
a6d07ad166 - added support for 360k floppy images
* new floppy type 360k can be used in .bochsrc and the config interface
  * media type and geometry can be set for the floppy type
  * BIOS changes to make 360k floppy drives work
  * bximage can create 360k images now
2002-08-01 07:37:56 +00:00
Christophe Bothamy
92839ea2d1 - added options to use up to 4 optional romimages 2002-07-24 17:52:34 +00:00
Bryce Denney
eaf037e658 - add Swedish keymap from Magnus 'Moggen' Öberg 2002-07-21 04:03:41 +00:00
Volker Ruppert
70eb02913b - trailing comma removed after the last item of enum {} bx_string_opt_bits 2002-07-04 19:24:30 +00:00
Christophe Bothamy
a926744628 I reworked and included Carl's patch to have a new bochsrc directive
to describe the format of the log prefix. This option can be any string
with special tokens being replaced at run time :
  #   %t : 11 decimal digits timer tick
  #   %i : 8 hexadecimal digits of cpu0 current eip
  #   %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
  #   %d : 5 characters string of the device, between brackets
the default is "%t%i%d", so the logprefix is the same as before.

New tokens can be easily added or changed if needed.


Modified Files:
  .bochsrc bochs.h logio.cc main.cc gui/control.cc
  gui/siminterface.h gui/siminterface.cc
  patches/patch.logfilefmteip
2002-06-26 14:42:35 +00:00
Volker Ruppert
b9822b6f1c - in function bx_list_c::text_print() added parentheses (fixes SF bug #572177) 2002-06-23 18:02:55 +00:00
Gregory Alexander
18ca414cc0 Oops! 2002-06-20 17:59:26 +00:00
Gregory Alexander
401b990cb9 Added comment about nocp option to config menu. 2002-06-20 15:43:09 +00:00
Volker Ruppert
53acc7b2d7 - "ask" dialog implemented (a part of this changes comes from the old version
of wx.cc)
2002-06-01 15:44:54 +00:00
Volker Ruppert
a8fc8f8d84 - cleaned up and improved the X gui text font handling
* dimension_update() stores the global variables columns, rows and
    font_height_orig; it uses X font sizes to recalculate the screen size
  * text_update() uses the columns, rows and X font sizes when redrawing the
    screen; it adjusts the cursor shape using the font sizes
2002-05-18 16:02:20 +00:00
Christophe Bothamy
a0c64105fa - italian keymap file from Emanuele Goldoni 2002-05-17 20:25:36 +00:00
instinc
cd10b68d0a Added sdl-config to SDL_CFLAGS 2002-05-04 00:50:26 +00:00
Christophe Bothamy
980364868d - added a script directive in ne2k options of .bochsrc
- added the script directive management for ne2k options
- added the execution of the script (if defined and not 'none') after init of the tun device
2002-05-02 07:54:22 +00:00
Christophe Bothamy
cd50268e2f - added a floppy_bootsig_check option to .bochsrc that will be used to enable/disable the 0xaa55 signature check ONLY for floppy-boot
- stored the boot signature check flag in cmos reg 0x38
- the rombios that is able to handle that flag will be uploaded later
2002-04-23 07:44:34 +00:00
Volker Ruppert
462871fd3a - Improvements for dimension_update() in text mode and text_update()
- The emulated vga card issues a dimension_update() using the real
    screen dimensions and the real font height.

  - The gui selects a font with the requested height or it recalculates
    the screen height if the font height is not available.

  - The text_update() function uses a new variable 'ncols' instead of the
    fixed value of 80 for the number of text columns.

  I have tested the changes with X11/Linux, SDL, wxGTK and win32. The changes
  in the other guis are not tested yet.
2002-04-20 07:19:35 +00:00
Volker Ruppert
189c1bbddc - text cursor disable feature added 2002-04-18 18:36:02 +00:00
Bryce Denney
30aaf4088e - commit patch.wxwindows.gz in the main branch. Now you can try out
the wxwindows interface by just "configure --with-wx; make"

  Modified Files:
    Makefile.in bochs.h config.h.in configure configure.in
    load32bitOShack.cc logio.cc main.cc cpu/cpu.cc cpu/cpu.h
    debug/dbg_main.cc gui/Makefile.in gui/control.cc gui/gui.cc
    gui/siminterface.cc gui/siminterface.h gui/x.cc iodev/cdrom.cc
    iodev/keyboard.cc memory/misc_mem.cc
  Added Files:
    README-wxWindows wxbochs.rc gui/wx.cc gui/wxmain.cc
    gui/wxmain.h gui/bitmaps/cdromd.xpm
    gui/bitmaps/configbutton.xpm gui/bitmaps/copy.xpm
    gui/bitmaps/floppya.xpm gui/bitmaps/floppyb.xpm
    gui/bitmaps/mouse.xpm gui/bitmaps/paste.xpm
    gui/bitmaps/power.xpm gui/bitmaps/reset.xpm
    gui/bitmaps/snapshot.xpm
  Removed Files:
    patches/patch.wxwindows.gz
2002-04-18 00:22:20 +00:00
Bryce Denney
c20298b6f4 - the runtime menu was displaying the old default of 10. It should be 11
(continue).
2002-04-08 00:11:52 +00:00
Volker Ruppert
55ccdca509 - swap the scancodes of "numlock" and "pause" - this simplifies the test for
extended scancodes
2002-04-07 18:07:20 +00:00
Christophe Bothamy
2dceae9e8f - fixed bug on NumericKeypad 5 when not using keymapping 2002-04-05 12:10:50 +00:00
Volker Ruppert
3d49380b35 - send a scancode for "left control key released" before handling the scancode
for the "AltGr" key (present on European keyboards)
2002-04-04 18:11:53 +00:00
Bryce Denney
767ac9b2dc - b_dolata@compfort.pl sent in this patch to fix a problem Christophe
described in bug [ #538214 ] directory as keymap file
2002-04-03 21:07:14 +00:00
Bryce Denney
54721fc3d2 - if vga font not found, search for a font called "-*-vga-*" too.
This was suggested in the bug report:
  [ #537593 ] vga font not being found.
2002-04-03 04:22:18 +00:00
Christophe Bothamy
24e2d109da - changed copyright strings 2002-04-01 22:43:01 +00:00
instinc
4e17b97211 fixed feature request 488645 2002-04-01 04:12:11 +00:00
Volker Ruppert
bc7ca5b0e6 - removed unnecessary include statemants for X 2002-03-30 06:45:30 +00:00
Bryce Denney
dd5d93705f - revert revision 1.26 which was labelled "Fix for win32 host not displaying
all of the window especially after a resize".  This causes screen corruption
  on my win98 box whenever Bochs changes resolution, so I removed it from cvs
  and checked it in as patches/patch.win32-resize instead.
2002-03-28 01:12:26 +00:00
Bryce Denney
b394a44157 - made keyboard_paste_delay a runtime configurable option
- clean up comments & debug msgs in paste code
2002-03-26 14:46:03 +00:00
Bryce Denney
34e02290eb - apply Christophe's patch.paste-for-dos. I will make minor tweaks as
separate revisions.
2002-03-26 13:51:48 +00:00
Christophe Bothamy
20462eb3ff - fixed a typo on the ']' key 2002-03-25 00:57:30 +00:00
Bryce Denney
453a4bfb56 - fix up comments to mention keymap functions that I added 2002-03-24 09:11:04 +00:00
Christophe Bothamy
30541d7a37 - added KEY_LEFT_BACKSLASH 2002-03-21 19:12:35 +00:00
Volker Ruppert
a7d5ae3b2d - added support for text modes with 8x8 characters on win32 gui (patch from
Hartmut Birr <hartmut.birr@tesionmail.de>)
  This is usefull for ROS (50 lines console).
2002-03-21 18:40:20 +00:00
Bryce Denney
8ba46b2450 - apply patch.x11-auto-private-colormap 2002-03-19 23:38:08 +00:00
Volker Ruppert
665e67d404 - call SDL_GetMouseState() to get the state of all buttons when handling a
mouse button event.
- replaced SDL_BUTTON(2) by SDL_BUTTON_MIDDLE in the mouse button event handler
2002-03-19 19:59:44 +00:00
Bryce Denney
7a6fbf9597 - fix copy to clipboard problem for X11 by calling XSetSelectionOwner()
before XStoreBytes.
2002-03-19 18:43:22 +00:00
Volker Ruppert
9e1cf3bec1 - function mouse_enabled_changed_specific() implemented
- added toggle_mouse_enable() call to the handling of the middle mouse button
- removed break statement between SDL_MOUSEBUTTONDOWN and SDL_MOUSEBUTTONUP
- added prefix "SDL" in specific init
2002-03-18 21:21:19 +00:00
Volker Ruppert
8263d15e76 - renamed update_floppy_status_buttons() to update_drive_status_buttons() since
it handles the cdrom status too
2002-03-17 20:57:54 +00:00
Volker Ruppert
6518957fe4 - implemention of the headerbar functionality (new function headerbar_click)
- the function replace_bitmap() tranfers the dst.x value of the old bitmap
  to the new one
2002-03-17 20:56:15 +00:00
Volker Ruppert
37955596f8 - create_bitmap(): setting Amask to 0x0 makes other colors visible
- fixed headerbar colors (X look)
2002-03-17 16:57:07 +00:00
Volker Ruppert
3ec4af94b4 - fixed dependence: recompile sdl.o if sdl.h is modified 2002-03-17 16:56:26 +00:00
Volker Ruppert
4870476367 - headerbar bitmap alignment implemented
- replace_bitmap() works now
2002-03-17 12:34:03 +00:00
Volker Ruppert
f113121db0 - text mode cursor is now visible in modes with more than 25 lines 2002-03-16 13:20:58 +00:00
Volker Ruppert
92b06b9ebf - new function get_clipboard_text() for GUI specific clipboard handling
GUI specific paste functions for X11 and WIN32 in paste_handler() moved to
  the new function
- get_clipboard_text() prepared for other GUIs
- set_clipboard_text() has now a return value (0 = failed or not implemented)
- use portable code in copy_handler() if set_clipboard_text() fails
- snapshot_handler() prepared for adding a file dialog call
- writing snapshot file in binary mode (LF->CRLF conversion already done)
2002-03-16 11:30:06 +00:00
Bryce Denney
842bfb4430 - BX_WITH_X11 is always defined. use "#if BX_WITH_X11" not #ifdef 2002-03-15 17:10:58 +00:00
Volker Ruppert
7373bb7647 - new function set_clipboard_text() for GUI specific clipboard handling
GUI specific copy functions for X11 and WIN32 in copy_handler() moved to
  the new function
- set_clipboard_text() prepared for other GUIs
- value of text mode cursor variables fixed (and renamed in x.cc)
- BX_ERROR message in snapshot_handler() fixed
2002-03-15 16:45:10 +00:00
Mike Lerwill
026b7018bd Fix for win32 host not displaying all of the window especially after a resize 2002-03-15 10:55:48 +00:00
Christophe Bothamy
256161956f - fixed the phantom buttons problem.
- the button still have to we placed in the right order
- the SDL_MapRGB problem is NOT fixed. The fg color is hardcoded to 0xffffffff
2002-03-15 01:11:10 +00:00
Christophe Bothamy
c2df473661 - added ASCII_equivalent constants 2002-03-12 23:56:53 +00:00
Christophe Bothamy
a4bf328178 - fixed header keymap layout name (DE, ES) 2002-03-12 23:56:01 +00:00
Bryce Denney
502a48057b - fix clipboard code that is compiled when neither windows nor X windows
is enabled.
2002-03-12 06:46:35 +00:00
Volker Ruppert
0f37656bc1 - updated German keymap file for paste support 2002-03-11 20:35:28 +00:00
Bryce Denney
ebc19a5e6c - fix bugs in copy&paste on win32.
- paste: grabbing the data from the clipboard in win32 was not implemented
  at all.  I found some example code on usenet and adapted it for Bochs.
- keymap: now if you call loadKeymap with NULL for the function pointer,
  it just fills in all the X windows keysyms with zero.  Added a call
  to loadKeymap in win32.cc.
2002-03-11 16:35:41 +00:00
Bryce Denney
d82a73ed21 - fix things I broke while working in linux 2002-03-11 15:45:34 +00:00
Bryce Denney
70e007b8f7 - add comment 2002-03-11 15:13:38 +00:00
Bryce Denney
8125bee908 - commit patch.paste 2002-03-11 15:04:58 +00:00
Jeroen Janssen
b6074761e2 - fixed small bug causing always including X11 header 2002-03-10 20:08:14 +00:00
Bryce Denney
aa6acc2be4 - add code for X windows to put the snapshot data onto the clipboard. 2002-03-10 16:06:56 +00:00
Volker Ruppert
beae7bda41 - added constant BX_INSERTED for media status (taken from bochs.h)
- fixed a warning in ask_uint() (type of variable n is now Bit32u)
- removed unused variable buffer[512] in text_ask()
2002-03-10 10:19:32 +00:00
Bryce Denney
3d2c58ee49 - revert to revision 1.27. My changes in 1.28 caused cygwin to be unable to
copy to the clipboard so I removed them.
- I was having cygwin compile problems because <windows.h> was not always
  included when compiling this file.  Add an include of <windows.h> at
  the top, and now it compiles in cygwin.
2002-03-10 05:49:26 +00:00
Bryce Denney
8c0256840c - apply patch.vbe-janssen by Jeroen Janssen <japj@darius.demon.nl>,
to add VBE support to Bochs.  The changes in this checkin correspond
  to Jeroen's 5th version of the patch on sourceforge patch #526595.
2002-03-10 04:51:24 +00:00
Bryce Denney
a7c15927bf - apply patch [ 505057 ] MacOS X carbonized event handlers
by Jeremy Parsons (brefin)
2002-03-09 02:40:25 +00:00
Bryce Denney
a0640f1c32 - add std bochs header 2002-03-06 20:39:23 +00:00
Bryce Denney
70f4e7ee27 - increase max bitmaps to 32 since I was running out
- only do the "scancode-8" trick on linux.  On windows it did exactly the
  wrong thing, so I'll assume it's a bug in SDL for linux.
2002-03-06 20:38:31 +00:00
Bryce Denney
55b12f615c - to get it running on other compilers, I removed all references to
iostream, vector, and the use of templates.  Now the vector of bitmaps
  is an array of pointers to bitmaps and a count.
2002-03-06 20:36:35 +00:00
Bryce Denney
efb6eeb621 - use UNIX-like code when compiling in cygwin 2002-03-06 18:17:24 +00:00
Christophe Bothamy
11ed519a07 - Deleted a "debug" include <X11/...>
- BX_KEY_PRINT_SCREEN and BX_KEY_SCROLL_LOCK were defined twice
2002-03-06 14:04:42 +00:00
Christophe Bothamy
f0e762c3d2 - updated the BX_KEY_NBKEYS comment to remind to modify the bx_key_symbol of gui/keymap.cc 2002-03-06 10:55:44 +00:00
Christophe Bothamy
e931247144 - New keymap architecture.
The localisation is now read from keymap files
  The keymap files are in gui/keymaps directory
2002-03-06 09:31:55 +00:00
Stu Grossman
6f3d73741a Deal with systems that don't have XK_EuroSign defined. 2002-03-05 15:42:02 +00:00
Bryce Denney
dd90b7ab46 - add serial port options to the configuration interface, in the same
menu as the parallel port options.
2002-03-03 06:10:04 +00:00
Bryce Denney
e50a1be21b - commit serial port patch from Stu Grossman <grossman@juniper.net>
Here are the patches (without the serial name fix).  Let me know if you want
  me to change that.  Oh, FYI, my changes also open up the com1 terminal in raw
  mode, which makes the emulation much more accurate.  You'll also notice that
  I added infrastructure for com2->4 in the option parsing.  I didn't add it to
  the serial code, as I think a bunch of things need to be untangled before
  that can work.
2002-03-03 06:03:29 +00:00
Volker Ruppert
9f097cbf00 - cursor size feature implemented for win32 2002-02-24 17:20:19 +00:00
Volker Ruppert
b1738bed08 - implementation of the text mode cursor in the SDL GUI 2002-02-16 20:31:35 +00:00
Volker Ruppert
197f80bde5 - snapshot_handler() prepared for copying text to clipboard
- copy text to clipboard added for WIN32
2002-02-12 17:09:51 +00:00
instinc
1eccd64198 Fixes the mouse direction problem (sorry, I couldn't test locally)
Fixes the font switch 8x8 <-> 8x16 and clears the screen accordingly.
Known issue: the headerbar is still not displayed
2002-02-07 02:12:51 +00:00
instinc
12f50276e5 Removed the configuration panel width/height
Added FG/BG color definitions for the headerbar
2002-02-06 02:13:32 +00:00
instinc
ee181da9d3 Added required space for the control bar
Added control for 80x50 fonts
Added mouse input
Added mouse grabbing
Added automatic mouse grabbing when entering full screen
Added autoremoval of header when going fullscreen
Simplified a couple of graphic routines
2002-02-06 02:12:45 +00:00
instinc
61ee0ca2c3 Added mouse input + mouse/keyboard grabbing. 2002-02-05 21:39:15 +00:00
instinc
96fdd89e74 added SDL libraries 2002-02-05 17:36:42 +00:00
instinc
10fd6daf08 SDL support, importing sources 2002-02-05 05:51:38 +00:00
instinc
55b2f65a1c Header file for sdl.cc 2002-02-05 05:50:50 +00:00
Volker Ruppert
1d9861fc59 - implementation of the text mode snapshot function 2002-02-04 20:31:35 +00:00
Volker Ruppert
84b649831e - new cdrom button in the headerbar
- changing cdrom media in a Bochs session now possible
- don't eject cdrom when the guest OS has locked the drive
2002-02-01 16:46:27 +00:00
Volker Ruppert
8a07e04cc2 - new button for inserting / ejecting cdrom (not handled yet) 2002-01-31 21:16:52 +00:00
Christophe Bothamy
ac91aa0d3c . changes to enable El-Torito boot. It is disabled by default in rombios.c 2002-01-30 10:30:52 +00:00
Volker Ruppert
accd3b2370 - runtime options menu reports the correct media status (inserted/ejected) 2002-01-27 21:55:27 +00:00
Volker Ruppert
856ad9f99d - statement 'static' removed from bx_gui_c::sim_is_idle() 2002-01-27 09:24:50 +00:00
Bryce Denney
d2a3364463 - clean up comment 2002-01-07 16:30:43 +00:00
Bryce Denney
11d907e40a - add Spanish keymap, from a patch by Vicente Hernando Ara
<bizenton@navegalia.com>
2002-01-07 15:50:50 +00:00
Volker Ruppert
76fd8a43f9 - keyword 'virtual' added to the destructor 2001-12-22 20:58:25 +00:00
Christophe Bothamy
0f6a92235a - updated keyboard with mf1, mf2 and mf3 scancodes set handling
- Added scancode translation table and BX_KEY to scancode table
- completed BX_KEYS list
2001-12-22 00:00:33 +00:00
Bryce Denney
cbd68598a3 - apply patch.memleaks-tominac from Darko Tominac <darko.tominac@zg.tel.hr>
which fixes some potential memory leaks
2001-12-21 19:33:18 +00:00
Volker Ruppert
384d4f1cce - added Windows(tm) keys to the German keymap 2001-12-19 19:15:12 +00:00
Volker Ruppert
0093de1adc - missing right control key added to german keymap 2001-12-16 17:17:16 +00:00
Christophe Bothamy
bd7420ade5 - Added XFree86 keyboard mapping (us, fr, de) 2001-12-14 17:56:37 +00:00
Volker Ruppert
051ef5f1c9 - text mode cursur feature added for X and prepared for other GUIs 2001-12-13 18:36:29 +00:00
Christophe Bothamy
d7482737a9 . Added a keyboard_type option in the conf file
. Modified answer of keyboard controler to a keyboard-identify command
  depending on keyboard_type
. Added the keyboard_type option in bochsrc man page
2001-12-12 10:38:39 +00:00
Bryce Denney
1b5200782d - add some instructions on the main menu 2001-12-08 18:06:12 +00:00
Bryce Denney
0708c77999 - first look for a font called bochsvga, then for one called vga, then
panic
2001-12-08 13:42:55 +00:00
Bryce Denney
5ecac72065 - patch from Bernd Korz, dealing with mouse cursor enable 2001-12-07 18:52:24 +00:00
Volker Ruppert
b15f487153 - some missing BX_KEY definitions added 2001-11-26 09:54:12 +00:00
Volker Ruppert
840ee719e5 - exchange the scancode of "Numlock" and "Pause", numlock works again 2001-11-26 07:24:16 +00:00
Volker Ruppert
74541540e9 - event handler recognizes the extended keycode flag 2001-11-23 18:03:23 +00:00
Bryce Denney
efc5708ddf - "const char" fixes from Volker 2001-11-14 00:23:08 +00:00
Bryce Denney
5d4b874014 - correction to color #6 based on followups to
[ #466403 ] make text colors more accurate
2001-11-12 18:33:28 +00:00
Bryce Denney
7b3980d9df - apply patch.rfb-mouse by MURANAKA Masaki (monaka@users.sf.net)
see this source forge bug for details:
  [ #457968 ] Strange mouse motion on RFB
2001-11-12 17:56:47 +00:00
Bryce Denney
9788c1b6cc - add a retry loop in RFB code, so that if port 5900 is not available
it can try 5901, etc.  On linux, if a server bound to port 5900 exits
  without closing the socket, you can't re-bind to the socket for a few
  minutes.
2001-11-12 16:45:28 +00:00
Bryce Denney
c52fbaa3a7 - allow configuration of the parallel port in .bochsrc and the config
interface menus.  Parallel port #1 is implemented, and I left stubs for
  parallel port #2 in case we want to ever add it.  If the parallel port
  is enabled, the init method of parallel.cc does an fopen() on the output
  file.  If disabled, or if the fopen fails, the file handler remains
  NULL and no characters are printed.  There is no attempt to enable/disable
  the operation of the parallel port, only the output to a file.
2001-11-12 02:35:09 +00:00
Bryce Denney
e0b4801b1f - commit Roland Mainz's idle hack as a configure option. To try it,
configure with --enable-idle-hack.  I have moved most of the code into
  x.cc since it is X windows specific.
2001-11-12 00:45:09 +00:00
Bryce Denney
a235489642 - fix segfault I introduced by making the previous revision too hastily 2001-11-10 03:12:44 +00:00
Bryce Denney
b902802933 - don't pretend we can change IPS at runtime--at present we can't. 2001-11-10 00:40:40 +00:00
Bryce Denney
1e3f0cff19 - added configuration button contributed by
Volker Ruppert <Volker.Ruppert@t-online.de>
  instead of borrowing the snapshot button for the config interface.
2001-11-09 22:17:33 +00:00
Gregory Alexander
98b68ec140 Changed the error for missing fonts to point to the documentation.
Modified Files:
 	x.cc
2001-10-11 13:03:35 +00:00
Bryce Denney
0978263092 - fix for bug [ #452159 ] win32: mouse stuck if bochs win partly off screen
Now we center the mouse periodically, whether or not the mouse has
  wandered outside of the window or not.
2001-10-08 00:42:52 +00:00
Bryce Denney
27dcb9f6c2 - the message about F12 enabling the mouse is so long on my system that
you can't read it all.  Made it a little more brief.
2001-10-08 00:38:22 +00:00
Bryce Denney
c99f9aa8ef - use @CPP_SUFFIX@ substitution to get the dependencies right for nmake too 2001-10-07 20:19:04 +00:00
Bryce Denney
d9bde38f33 - on win32 in some configurations, code within an assert is completely
removed!  I used this trick sometimes to check that a function returned
  what I expected, like assert (func () == 0), but this caused the
  func() to never get called.  Oops.
2001-10-07 18:16:01 +00:00
Bryce Denney
49d50d0010 - add another choice when you have action=ask: abort! Calling abort
will dump core, and the core can sometimes be loaded into the debugger
  to give some hints as to what is going on.  This could be especially
  useful when the bochs debugger is off.
- try to do something reasonable when abort() doesn't exist on the system.
2001-10-07 00:35:35 +00:00
Bryce Denney
8a21b1a9d6 - apply patches/patch.add-makefile-deps. I have added dependencies
which were generated with gcc -MM to the end of each Makefile.in
  so that make understands which files depend on which.  Basically,
  everything depends on bochs.h, which depends on everything, which
  is not ideal.
2001-10-07 00:33:21 +00:00
Bryce Denney
03c9a235b5 Fixes for bug [ #467530 ] cmd line overrides config interface
- rework the order of initialization with and without the control panel.
  The thing that was bothering me most was the command line options were
  being processed after the user had set everything in the control panel.
  This is clearly not what's expected--the command line options should
  affect the startup defaults of the control panel, but whatever the user
  chooses in the cpanel menus is the final choice.
- if the control panel (config interface) is not wanted, the user can
  put "-nocp" or "-nocontrolpanel" as the FIRST argument on the command
  line.  Also, the "-psn" option which is automatically passed in by
  MacOS X when you doubleclick the application causes the control panel
  to be disabled.  In this case, the order of operations is:
    1. read bochsrc
    2. parse command line options.
- if the control panel is enabled (default), the command line options are
  parsed to provide the startup defaults for the control panel, but the
  control panel settings are the final answer.  So the order is:
    1. parse command line options
    2. run control panel  (if user chooses, he can read bochsrc from menus)
- I haven't tested command line options with the debugger yet.
2001-10-06 22:31:31 +00:00
Bryce Denney
7022f0e250 - clarify message a bit 2001-10-06 08:45:18 +00:00
Bryce Denney
4e22b9a5db - add new log action when debugger is on, which is to continue but
return to the debugger ASAP.
2001-10-06 05:51:34 +00:00
Bryce Denney
daf2a9fb55 - add RCS Id to header of every file. This makes it easier to know what's
going on when someone sends in a modified file.
2001-10-03 13:10:38 +00:00
Bryce Denney
895b6a1511 - applied patch [ #466403 ] make text colors more accurate
The author did not leave his/her name.
2001-10-01 18:36:13 +00:00
Bryce Denney
f8beb55157 - use @CPP_SUFFIX@ instead of hardcoded .cc 2001-10-01 17:27:24 +00:00
Bryce Denney
42473b7038 - fix up floppy button handlers so that the function that actually
updates the buttons can be called from the outside.
2001-09-28 06:03:40 +00:00
Bryce Denney
536d05fc48 - change "set" behavior for parameters with handlers. Now it changes their
value and then calls the handler, so that the handler and functions that
  it calls can see the new value.
2001-09-28 06:02:12 +00:00
Bryce Denney
e25de5fce0 - check for null gCTable, which I am getting every time I run from the
command line.  This is better than a bus error IMHO.
2001-09-27 02:52:17 +00:00
Bryce Denney
7bc39ff8e1 - now that I know about -fpascal-strings, I changed it back to the \p
notation
2001-09-26 23:33:47 +00:00
Bryce Denney
65d6af7b08 - now the new code is called carbon.cc 2001-09-26 00:32:54 +00:00
Bryce Denney
cdb5f1de68 - port of macintosh code to Carbon API for MacOS X, contributed by
Emmanuel Maillard <e.rsz@libertysurf.fr>
2001-09-26 00:32:34 +00:00
Bryce Denney
5e586c8ac2 - this is an exact copy of gui/macintosh.cc revision 1.8, the starting
point for the Carbon API port
2001-09-26 00:31:41 +00:00
Bryce Denney
4c4b39fca3 - add object file for for MacOS X, carbon API 2001-09-26 00:20:19 +00:00
Bryce Denney
55f999327b - use #if BX_WITH_MACOS instead of #ifdef macintosh to distinguish
between MacOS pre-10 and MacOS 10
2001-09-26 00:15:30 +00:00
Bryce Denney
f04e6fe346 - apply VPATH patch from Edouard G. Parmelan, posted to list on September 1 2001-09-14 04:19:08 +00:00
Bryce Denney
1fd43969a2 - commit patch from David Haslam <dch@sirius.clara.co.uk>
submitted to source forge on 2001-08-27.
  [ #455763 ] Cursor trail with DOS Edit/Minix vi
2001-09-11 16:50:59 +00:00
Bryce Denney
c7d44d154b - added missing #define LOG_THIS statement 2001-09-04 14:30:41 +00:00
Todd T.Fries
28885e4973 some INFO->DEBUG/ERROR cleanups 2001-08-31 16:06:32 +00:00
Gregory Alexander
03a2ae5bbd Minor theoretical fix for X. I don't see any benefit, but
it may just be that there are other problems afoot.


 Modified Files:
 	x.cc
2001-08-24 13:50:02 +00:00
Nicholai Benalal
075578621b ok, now the amiga target on cvs is complete 2001-08-16 12:35:52 +00:00
Bryce Denney
72d28e5a87 - add string parameter called screenmode
- put #if BX_USE_AMIGAOS...#endif around fullscreen and screenmode, since
  they only apply to amiga
2001-08-16 02:00:31 +00:00
Bryce Denney
bf286c20ac - configure and makefile changes for AmigaOS port. Now configure
--with-amigaos is allowed and sets up the makefiles correctly.  It
  defines a symbol called BX_WITH_AMIGAOS, which should be used in
  #if..#endif constructs that are specific to amigaos.
- if --enable-cdrom is used with --with-amigaos, the cdrom_amigaos.o
  object file will be added to CDROM_OBJS in the iodev makefile.
2001-08-15 20:33:47 +00:00
Bryce Denney
eb6a85629e - add option called fullscreen, for Nicholai Benalal's amiga port 2001-08-15 20:17:19 +00:00
Bryce Denney
c2df8d4f7d - remove newlines from BX_PANIC and similar statements. it is implied. 2001-08-14 06:48:03 +00:00
Bryce Denney
4ef1f45322 - add amiga gui from Nicholai Benalal <nicholai@chello.se> 2001-08-13 15:32:51 +00:00
Todd T.Fries
a06b031dcf setprefix -> put 2001-06-27 19:16:01 +00:00
Bryce Denney
06fb629d85 - backed out patch.kbd-dieter. The patch appears to work on all XFree86
X servers that I've seen, however on other X servers it makes all
  key mappings into absolute junk.  We need to continue to work on this
  patch to support all X servers and all key maps.
2001-06-25 22:57:27 +00:00
Bryce Denney
602b054d38 - when key pressed, print both the keysym and keycode with BX_DEBUG 2001-06-25 21:28:00 +00:00
Bryce Denney
f6a09136e7 - add left backslash keycode, also suggested by Dieter Mittelmaier 2001-06-25 13:39:10 +00:00
Bryce Denney
c6e98db0fc - commit patches/patch.kbd-dieter by Dieter Mittelmaier
<dieter.mittelmaier@freenet.de> which fixes X11 keyboard mapping
  on German keyboards using Keycodes instead of Keysyms.
  His comments are:
  > I mapped your BX_KEY-defines in gui.h to values from XFree
  > ../keycodes/Xfree86. Keysyms in x.cc would now translated
  > to keycodes. Now I can use german or us keyboard-layout in
  > win95 and all works well.
  > Note: Changing keyboard layout in win95 to en works too
  > Also you must change keyboard setup in win95 to AT-Enhanced 101/102 keyboard
2001-06-25 13:35:51 +00:00
Bryce Denney
fba34be1e7 - added a new method to all GUIs called mouse_enabled_changed_specific,
which notifies them that the mouse_enabled bit has changed.  Now that
  mouse_enabled can be initialized or modified by parameter events in
  addition to GUI events, the guis must be prepared for it.  I have pasted
  empty method definitions into mouse_enabled_changed_specific for all
  guis except for X11, which I did the right way.  The implementation
  of this function must use the argument "val" rather than reading the
  parameter.
2001-06-23 03:18:14 +00:00
Bryce Denney
0bc41bc8ba - now the win32 gui updates bx_options.Omouse_enabled whenever it
goes in/out of mouse capture mode.  This is critical because
  bx_options.Omouse_enabled is used to control whether the mouse
  events are sent into the hardware queue or not (keyboard.cc).
  This is only a partial fix though, because changing the mouse
  enabled setting in the control panel has no effect on the gui.
2001-06-23 01:47:26 +00:00
Bryce Denney
f5a90eb9c6 - VC++ kept me honest about return values... 2001-06-22 13:37:08 +00:00
Bryce Denney
071bcf34c9 - in NMAKE, the .cc.o line is not allowed to depend on anything.
I had added this in an attempt to get the compile dependencies right,
  but I think it didn't work anyway.
2001-06-22 13:20:29 +00:00
Bryce Denney
efa62838bb - add "-nocontrolpanel" command line option. 2001-06-21 21:24:05 +00:00
Bryce Denney
e7f7c0e5d6 - allow --disable-control-panel to work again. Now it actually compiles
and links in the control panel, but just doesn't call it up.
2001-06-21 20:50:30 +00:00
Bryce Denney
b1b56487c1 - turn the last few options into parameters (cmos, loader, random stuff) 2001-06-21 19:57:21 +00:00
Bryce Denney
0742e55fb1 - remove some debug option in parse_raw_bytes 2001-06-21 19:31:19 +00:00
Bryce Denney
1bcdee2301 - add options to the string parameter class that allow it to deal with
raw hex bytes, for the MAC address.
2001-06-21 19:27:05 +00:00
Bryce Denney
8ca273ce73 - converted ne2k and sb16 to new style parameters and control panel,
except for MAC address of the ne2k, which is next.
2001-06-21 18:34:50 +00:00
Bryce Denney
c1f2e6d8c4 - added two new bochsrc and control panel options: max_ips and
system_clock_sync
2001-06-21 16:59:56 +00:00
Bryce Denney
80a7541fed - used grep to search for more instances of new bx_options problems that
I have introduced, and fixed a lot.
2001-06-21 14:56:43 +00:00
Bryce Denney
ee2ae90d79 - removed unused functions from siminterface.h and siminterface.cc.
These are obsolete because the bx_options have been changed to
  parameter structures.
2001-06-21 14:55:38 +00:00
Bryce Denney
63398b6ca4 - fixed parameter name change 2001-06-21 14:41:02 +00:00
Bryce Denney
93f5f8e06b - now the memory options menu, interface menu, and disk menu in the
control panel are all implemented as bx_list_c, and look much like
  they did before.
- removed many hardcoded UI functions from control.cc, since the
  much more general "text_ask" methods have replaced them.
- add range checking on integer parameter values.  This exposed several
  cases where my initial value for an integer parameter was not in range.
- cleaned up behavior of get/set methods.  The get/set methods allow the
  handler to override the value that is returned/set, or perform side
  effects.
- the title parameter of a bx_list_c now defaults to the name.
- now bx_param_c fields that used to be private are protected instead
- removed references to bx_any
- moved definition of set_handler from siminterface.h to siminterface.cc.
  I was considering with doing a "set" of the old value when the
  handler is first installed, but that remains commented out.
- BX_BOOT_DISKA and BX_BOOT_DISKC are now 0,1 so that they can correspond
  with the values of a bx_param_enum_c.  For a while they were 0x00 and 0x80
  corresponding to the numbering convention of the bios, but it didn't
  really matter.
2001-06-21 14:37:55 +00:00
Bryce Denney
ec0fbf18bc - convert nearly all bx_options to parameter form. All options that have
been converted into parameters temporarily have the letter "O" appended
  to their name.  I don't want to keep it this way, but it has helped
  in the conversion process because the compiler refuses to compile the
  old uses of the name.  Before I started using the "O" trick, there were
  many bugs like this:   if (bx_options.diskc.present) {...}
  This was legal with the new parameters, but it was testing whether the
  parameter structure had been created, instead of testing the value of
  the present parameter.  Renaming present to Opresent turns this into
  a compile error, which points out the incorrect use of the param.
- the "--disable-control-panel" no longer works, I'm afraid.  I can no
  longer support this and continue progress.
2001-06-20 14:01:39 +00:00
Todd T.Fries
12985edb26 setprefix now uses a variable length name as a string for an argument 2001-06-19 21:36:09 +00:00
Todd T.Fries
5a53cd50ca fix compile problem with newer gcc (2.95.3 for me) 2001-06-19 14:55:34 +00:00
Bryce Denney
a5693c93ab - the get method should not be able to modify the value
- added some comments around the get/set methods
2001-06-19 14:20:24 +00:00
Bryce Denney
f5272645a7 - the max of the loop should be BX_NOTIFY_MAX_ARGS, not NOTIFY_TYPE_STRING 2001-06-19 05:01:46 +00:00
Bryce Denney
8958d64f15 - fix another initialization problem that I believe was causing Greg's
crash in the mouse code.  The particular problem was that init_done
  was never initialized to zero, but it always turned out to be zero
  on my system.  This may explain why it worked for me but crashed
  for him.
2001-06-19 04:55:01 +00:00
Bryce Denney
7f242d27d2 - to allow compile on AIX, I removed parentheses around type name in
the "new" calls.  Changed this:
    new (bx_param_c*)[registry_alloc_size];
  to this:
    new bx_param_c*  [registry_alloc_size];
  in three places
2001-06-18 22:37:46 +00:00
Bryce Denney
181e2d9a45 - forgot to initialize bx_param_string_c::handler before. Thanks to Greg
for narrowing this down.
2001-06-18 22:34:03 +00:00
Bryce Denney
89de2c38aa - now the "memory options" menu is entirely defined using parameter
data structures, see bx_init_options in main.cc.  The implementation
  of this menu and all its choices is 17 lines long, see do_mem_options_menu
  in gui/control.cc.
2001-06-18 14:11:55 +00:00
Bryce Denney
d0f1caa404 - turned rom address and vga rom path into bx_param_c parameters, so that
now the whole "Bochs Memory Options" menu uses new style parameters.
  The next step is to remove the hardcoded stuff that generates and runs
  this menu, and replace it with general menu building code.  All you should
  need to create this menu is the string "Bochs Memory Options", and the
  IDs of the bx_param_c options that should appear on the menu.  The
  bx_param_c structure for each parameter tell what type it is, how to
  display it, constraints on the value, what to do when the parameter
  changes.
2001-06-17 13:50:52 +00:00
Bryce Denney
c3d88c5924 - now ips, mouse_enabled, vga_update_interval, and rom_path are
declared as bx_param_c * types in the bx_options structure.  They are
  initialized in main.cc (bx_init_options) with default values.
  Access to parameters of this type should always be like this:
    bx_options.mouse_enabled->get ();
    bx_options.mouse_enabled->set (newval);
  Eventually I will be transferring all options to this format.
2001-06-16 23:08:32 +00:00
Bryce Denney
8f5bb7419d - now megs, ips, mouse_enabled, vga_update_interval, and rom_path
are using Bryce's experimental parameter structures.
2001-06-16 19:29:59 +00:00
Bryce Denney
c5b355e4bd - add dependency rule so gui directory will actually recompile when
headers are changed
2001-06-16 19:29:07 +00:00
Bryce Denney
945b295c4d - gradually moving toward a set_parameter(param,val) style interface
instead of a set_vga_update_interval(val) style.
2001-06-15 23:52:34 +00:00
Bryce Denney
cee98e0033 - Add special case for power button so that it is always fatal.
a GUI panic.
2001-06-15 18:01:52 +00:00
Bryce Denney
2827019158 - boot options should say memory options instead! 2001-06-13 15:52:04 +00:00
Bryce Denney
073dfe781d - compile with debugger has failed because it continued to call bx_bochs_init
when main.cc no longer had one.  Now compiling with debugger is working
  with the control panel.  To get the control panel, you have to click
  the snapshot button, and to get the debugger, you have to press ^C.
  These should be better integrated (maybe a control panel menu choice
  that jumps into the debugger and a debugger command that starts the
  runtime control panel...)
2001-06-13 13:36:12 +00:00
Bryce Denney
f7cf1325f7 - default for runtime menu was listed wrong 2001-06-13 13:31:53 +00:00
Bryce Denney
3e4694c5b5 - changed "Boot" options menu to "Memory" Options, this seems like a
better name given what the options actually are.
- now runtime menu behaves more like the others: it updates its floppy
  disk image, etc.
- add "ask" as a legal choice for log action
- now runtime menu has both ways of editing log options
2001-06-13 08:14:49 +00:00
Bryce Denney
e6c30ac6e9 - change multiline strings to use "line" "line2" syntax instead of
backslash at the end of each line
2001-06-11 21:03:05 +00:00
Bryce Denney
2d8fabda22 - clean up compiler warnings for gcc 2001-06-11 20:51:15 +00:00
Bryce Denney
42f03956f5 - removed string_list_t which was no longer used, and caused AIX compile
problems.
2001-06-11 20:48:12 +00:00
Bryce Denney
7baabf07e6 - eliminated some compiler warnings 2001-06-11 20:27:23 +00:00
Bryce Denney
845b124240 - iodev.h should be ../iodev/iodev.h 2001-06-11 14:14:30 +00:00
Bryce Denney
19684ead48 - print the event type correctly in control panel (used to assume it was
a panic)
2001-06-11 14:07:54 +00:00
Bryce Denney
a56dedb386 - added a new log action "ask" which sends the log message to the control
panel.  It gives the user the option of continue this time, continue
  and never ask again for this type of log message, or die.
- the communication between control.cc and siminterface.cc is still
  somewhat crude.  I'm trying to implement it so that a network
  protocol based on this interface will be simple.  I'll get this cleaned
  up soon.
2001-06-11 14:03:35 +00:00
Bryce Denney
a97df5a8fa - add some #if's to compile the control panel stuff only when
BX_USE_CONTROL_PANEL is set.  I put the #if...#endif thing around
  the entire file in siminterface.cc and control.cc so that it's safe
  to compile them in either case.
2001-06-11 06:48:37 +00:00
Bryce Denney
985d4b7923 - implemented bx_write_configuration which, for the first time ever,
writes a bochsrc for you.
- since there were two options related to logging, I moved them both
  into a new struct called bx_log_options.  This follows the pattern
  used by other devices.
- in control.cc: removed option 1 from main menu, the one that said
  "Read options from bochsrc.txt."  This was identical to choosing
  the next option, "Read options from..." and only saved you one
  keystroke, so I removed it.
2001-06-11 06:35:18 +00:00
Bryce Denney
16af12a9b3 - a few revisions back, I somehow lost the BX_CPANEL_START_OPTS_DISK
section.  Now it is back.  (This fixes a segfault when you "Disk Options")
2001-06-10 05:30:27 +00:00
Gregory Alexander
43916eb6ad Added config.h and osdep.h to make this compile under cygwin. 2001-06-10 03:53:43 +00:00
Bryce Denney
dffe013ff8 - fix interface menu 2001-06-09 21:29:07 +00:00
Bryce Denney
8e7c2e42f3 - avoid crashes when rom path and vga rom path are null 2001-06-09 21:19:58 +00:00
Bryce Denney
af53a1158e - fixed boot menu in control panel 2001-06-09 21:12:16 +00:00
Bryce Denney
8b7fbca53e - more work on text-mode control panel. Now the control panel starts before
the simulation begins, to give you a chance to choose between bochsrcs,
  choose the boot disk, etc.
2001-06-09 20:01:12 +00:00
Bryce Denney
53a33ecfc6 - need public: before constructor 2001-06-08 18:02:54 +00:00
Bryce Denney
778697a788 - "dummy" is supposed to be the constructor, but when I renamed the
class I forgot to rename dummy.
2001-06-08 18:00:25 +00:00
Bryce Denney
f2af827a63 - add a layer of abstraction between the text-mode control panel in
gui/control.cc and the simulator.  Now all communication between
  the control panel and the rest of bochs goes through an object
  called bx_simulator_interface_c.
2001-06-08 07:20:07 +00:00
Bryce Denney
b26e2fb362 - even if panic is nonfatal, the exit button should still make it quit! 2001-06-08 03:07:51 +00:00
Bryce Denney
ebdfbbe36f - add first attempt at a text mode control panel 2001-06-07 20:42:00 +00:00
Bryce Denney
0cc0bb9c2c - add first attempt at a text mode control panel 2001-06-07 20:31:20 +00:00
Bryce Denney
8c57c0c6cf - disable mouse capture on startup, to avoid confusing the heck out of
new users.
2001-06-04 02:45:28 +00:00
Bryce Denney
86dc440418 - fixed type, BX_EROR -> BX_ERROR 2001-06-02 03:01:01 +00:00
Bryce Denney
8c538a62d2 - added missing LOG_THIS 2001-06-02 02:49:14 +00:00
Bryce Denney
e6496cfce9 - typecast arg3 of pthread_create to the right kind of function pointer 2001-06-01 21:53:18 +00:00
Todd T.Fries
2bbb1ef8eb strip '\n' from BX_{INFO,DEBUG,ERROR,PANIC}
don't need it, moved the output of it into the general io functions.
saves space, as well as removes the confusing output if a '\n' is left off
2001-05-30 18:56:02 +00:00
Bryce Denney
66571b538c - add missing LOG_THIS on main branch 2001-05-26 05:55:44 +00:00
Todd T.Fries
e291dd17d4 demote BX_INFO to BX_ERROR 2001-05-25 22:17:51 +00:00
Todd T.Fries
622031500e reset callback now implemented 2001-05-25 14:21:46 +00:00
Todd T.Fries
aa8081aff3 cleanup output more 2001-05-24 14:08:54 +00:00
Bryce Denney
97d681fb89 - integrated Don Becker's RFB gui, added it as a configure option,
and put it in the docs.
2001-05-24 01:07:09 +00:00
Bryce Denney
0368a3e9cf - imported Don Becker's Bochs-RFB version 0.04a 2001-05-24 00:39:34 +00:00
Bryce Denney
f904071622 - imported Don Becker's Bochs-RFB version 0.03a 2001-05-24 00:38:44 +00:00
Bryce Denney
baf7f19446 - imported Don Becker's Bochs-RFB version 0.02a 2001-05-24 00:37:43 +00:00
Bryce Denney
ebdae63e4d - imported Don Becker's Bochs-RFB version 0.01a 2001-05-24 00:36:27 +00:00
Todd T.Fries
cd01453c9d cleanup output 2001-05-23 19:36:55 +00:00
Bryce Denney
a9b282ece5 - BX_WARN doesn't exist any more! Change them all to BX_INFO. 2001-05-20 03:27:05 +00:00
Bryce Denney
9f5d2075c1 - added missing LOG_THIS 2001-05-20 03:20:11 +00:00
Bryce Denney
c32028ab09 - title of window used to have the old website name in it. 2001-05-18 05:45:01 +00:00
Todd T.Fries
a03763d6ec too many )'s 2001-05-16 17:58:30 +00:00
Todd T.Fries
6a958e88c5 typo, double parens 2001-05-16 17:51:56 +00:00
Todd T.Fries
87e75dca26 forgot a LOG_THIS 2001-05-15 16:09:51 +00:00
Todd T.Fries
bdb89cd364 merge in BRANCH-io-cleanup.
To see the commit logs for this use either cvsweb or
cvs update -r BRANCH-io-cleanup and then 'cvs log' the various files.

In general this provides a generic interface for logging.

logfunctions:: is a class that is inherited by some classes, and also
.   allocated as a standalone global called 'genlog'.  All logging uses
.   one of the ::info(), ::error(), ::ldebug(), ::panic() methods of this
.   class through 'BX_INFO(), BX_ERROR(), BX_DEBUG(), BX_PANIC()' macros
.   respectively.
.
.   An example usage:
.     BX_INFO(("Hello, World!\n"));

iofunctions:: is a class that is allocated once by default, and assigned
as the iofunction of each logfunctions instance.  It is this class that
maintains the file descriptor and other output related code, at this
point using vfprintf().  At some future point, someone may choose to
write a gui 'console' for bochs to which messages would be redirected
simply by assigning a different iofunction class to the various logfunctions
objects.

More cleanup is coming, but this works for now.  If you want to see alot
of debugging output, in main.cc, change onoff[LOGLEV_DEBUG]=0 to =1.

Comments, bugs, flames, to me: todd@fries.net
2001-05-15 14:49:57 +00:00
Bryce Denney
e363f402ca - This implements a solution that lets any GUI take over handling of any
signal.  First, selection of the GUI should cause BX_GUI_SIGHANDLER to
  be defined in config.h.in.  Then, the GUI should define member functions
    Bit32u get_sighandler_mask ();
    void sighandler (int sig);
  The mask function returns a bitfield where one bit corresponds to each
  signal.  For any signal whose bit is set to 1 in the return value of
  get_sighandler_mask, the gui will control that signal.  When the signal
  arrives, bx_gui.sighandler(sig) will be called by bx_signal_handler,
  instead of the default behavior of that signal.
2001-05-08 20:18:04 +00:00
Bryce Denney
d2203e662f - added most of Todd's "term mode" patch. I didn't apply all of the signal
handling part, so I need to figure out how control-C's and control-Z's
  will get mapped into keystrokes.
2001-05-08 19:07:26 +00:00
Bryce Denney
a6fef54678 - update copyright dates to 2001 for all mandrake headers
- for bochs files with other header, replaced with current mandrake header
2001-04-10 02:20:02 +00:00
Bryce Denney
4e04f4cb58 - change all inline declarations to one of two macros: BX_C_INLINE or
BX_CPP_INLINE.  Then in config.h.in you can define these two as you
  wish.
2001-04-10 02:10:09 +00:00
Bryce Denney
4534c19e9e - missing a comma! 2001-04-10 01:47:26 +00:00
cvs
beff63eb32 - entered original Bochs snapshot bochs-2000_0325a.tar.gz from
ftp.bochs.com
2001-04-10 01:04:59 +00:00