diff --git a/bochs/doc/docbook/user/user.dbk b/bochs/doc/docbook/user/user.dbk
index 6a576df39..751c98914 100644
--- a/bochs/doc/docbook/user/user.dbk
+++ b/bochs/doc/docbook/user/user.dbk
@@ -1,7 +1,7 @@
+Configure Options
+
+This section describes the configure options for Bochs. Perhaps the most
+important option is , since it gives you a list of all
+the other options. The configure script will detect your platform and choose
+the default GUI for your platform. If the default choice is not what you
+want, use the options to override the default. The
+options in the first table tell which GUI library is the default for each
+platform. Starting in version 2.0, you can use multiple
+ options at once to compile with multiple
+display libraries, and then choose between them at runtime with the
+display_library command in the configuration file. Or, you can
+let the configure script detect which libraries are on your system
+and use them all, by configuring with --with-all-libs.
+
+
+
+The concept of platform detection and default GUIs was added in Bochs 1.4.
+In Bochs 1.3 and before, the X11 gui was always the default.
+
+
+
+
+
Defaults by Platform
+
+
+
+ Platform
+ Default GUI
+ Extra compile flags
+
+
+
+
+ win32 or Cygwin
+ --with-win32
+ If using nmake method, compile using cl /nologo /G6 /MT /W3 /GX /DNDEBUG /DWIN32 /D_WINDOWS /O2. If using Visual C++ workspace, see the workspace file for compile settings. See Compiling on Win32 with Microsoft VC++ for instructions.
+
+
+
+ MacOS X or Darwin
+ --with-carbon
+ -fpascal-strings -fno-common -arch ppc -Wno-four-char-constants -Wno-unknown-pragmas -Dmacintosh
+
+
+
+ MacOS 9 or before
+ --with-macos
+ none
+
+
+
+ BeOS
+ --with-beos
+ none
+
+
+
+ AmigaOS
+ --with-amigaos
+ none
+
+
+
+ any other platform
+ --with-x11
+ none
+
+
+
+
+
+
+
Configure Options to Select the Display Library (optional)
+
+
+
+ Option
+ Comments
+
+
+
+
+ --with-x11
+ Use X windows user interface. On many operating systems,
+ Bochs will use X windows by default.
+
+
+
+ --with-win32-vcpp
+ Use Win32 GUI/Visual C++ environment. This is for running
+ configure on a platform which supports running configure, so
+ that you may then transfer the configured code over to
+ an MS Win32/Visual C++ environment. See
+ for details.
+
+
+
+ --with-win32
+ Use Win32 GUI, but compile with a Win32/gcc
+ environment such as Cygwin. For Cygwin, see .conf.win32-cygwin
+ for the correct compile options.
+
+
+
+ --with-carbon
+ Compile for MacOS X with the Carbon GUI. See the
+ .conf.macosx file for the correct MacOS X compile options.
+
+
+
+ --with-amigaos
+ Compile for Amiga MorphOS. This code is written by Nicholai
+ Benalal.
+
+
+
+ --with-rfb
+ Use RFB protocol to talk to AT&T's VNC Viewer. The RFB
+ code was written by Don Becker x-odus@iname.com,
+ who has a Bochs-RFB web page on his site,
+ http://www.psyon.org/bochs-rfb.
+ RFB mode has been tested in Linux and Win32.
+
+
+
+ --with-sdl
+ This option enables Dave Poirier's SDL gui interface. To
+ compile with SDL, you must first install the SDL library
+ from libsdl.org. You
+ can either get the source code and compile it yourself, or install
+ the development libraries for your platform (already compiled).
+ SDL is available for many platforms including Win32, Linux, IRIX,
+ MacOS, MacOS X, and BeOS.
+
+
+
+ --with-beos
+ Use BeOS GUI. The configure script will run natively
+ on BeOS; use this option when doing so.
+
+
+ --with-term
+ Use text-only gui with curses library. Almost certainly
+ won't work right with the debugger or the control panel.
+
+
+
+ --with-macos
+ Use Macintosh/CodeWarrior environment. This is for running
+ configure on a platform which supports running configure, so that
+ you may then transfer the configured code over to the
+ real compile environment.
+
+
+
+ --with-wx
+ wxWindows is a cross-platform C++ user interface library which
+ you can download for free at http://wxwindows.org. The wxWindows
+ port of Bochs provides both a graphical configuration interface (for
+ editing bochsrc options) and a display. It was written by Bryce Denney,
+ Don Becker, Dave Poirier, and Volker Ruppert.
+
+
+
+ --with-svga
+ Use SVGALIB library for Linux. This allows a full-screen
+ text and graphics display without X windows. The SVGALIB port
+ was written by Igor Popik.
+
+
+
+ --with-nogui
+ No native GUI; just use blank stubs. This is if you don't
+ care about having video output, but are just running tests.
+
+
+
+ --with-all-libs
+
+ Automatically detect which libraries are installed on your system
+ and enable them. This option is still experimental; it might
+ enable libraries that are not usable and cause the compile to fail.
+ If you have trouble, just list the --with-* options for the specific
+ display libraries that you want.
+
+
+
+
+
+
+
+The remaining options can generally be used with any GUI. For each option
+such as --enable-cdrom, you can also write --disable-cdrom to explicitly
+turn it off.
+
+
+
Configure Options
+
+
+
+ Option
+ Default
+ Comments
+
+
+
+
+ --enable-cpu-level={}
+ 5
+
+ Select which CPU level to emulate. Choices are 3,4,5,6 which mean to
+ target 386, 486, Pentium, or Pentium Pro emulation. Pentium Pro support
+ is quite incomplete, so level 5 is the best choice for now.
+
+
+
+ --enable-cdrom
+ yes
+
+ Enable use of a real CDROM. The cdrom emulation is always present, and
+ emulates a drive without media by default. You can use this option to
+ compile in support for accessing the media in your workstation's cdrom
+ drive. The supported platforms are Linux, Solaris, OpenBSD, and Windows.
+ For other platforms, a small amount of code specific to your platform
+ must be written. The module iodev/cdrom.cc is the place to add more
+ support. For the most part, you need to figure out the right set of
+ ioctl() calls.
+
+
+
+ --enable-sb16={}
+ no
+
+ Enable Sound Blaster emulation. SB16 output is only supported for
+ Windows or Linux. The dummy option means to support
+ an SB16, but don't use an output device. So for example, you might use
+ . Check out &FIXME; sound.html for
+ more info.
+
+
+
+ --enable-config-interface
+ yes
+
+ Enables configuration menus when you first start Bochs. The menus let
+ you read in a bochsrc file, edit some options, and save the new bochsrc
+ before starting the simulation. Also enables a runtime menu which lets
+ you change certain settings during simulation. See the config_interface
+ option in bochsrc for how to select between the text interface and
+ wxWindows.
+
+
+
+ --enable-new-pit
+ yes
+
+ Enables Greg Alexander's PIT model, written during Summer 2001. This
+ model was written from scratch to be much more complete than the old
+ Bochs PIT model, which was missing many registers and features.
+ If you disable this option, the old PIT model will be used instead.
+
+
+
+ --enable-slowdown
+ no
+
+ Enables Greg Alexander's experimental "slowdown timer" which tries to
+ keep the Bochs simulation time in sync with real time. When Bochs
+ is executing many instructions, the slowdown timer will have no effect.
+ When Bochs is idle, or just waiting around for an interrupt, the
+ slowdown timer kicks in to prevent Bochs time from speeding ahead.
+ This should solve problems like, "Why does my screen saver turn on
+ after 30 seconds?"
+
+
+
+ --enable-idle-hack
+ no
+
+ Enables Roland Mainz's experimental idle code, which is intended to
+ keep Bochs from always using 100% of CPU time. When Bochs is waiting
+ around for an interrupt, the idle code uses a select() loop and some
+ X11 tricks to wait until user input arrives. This is designed to
+ keep Bochs responsive while still yielding to other processes when
+ Bochs is idle.
+
+
+
+ --enable-ne2000
+ no
+ Enable NE2000 network card support. This requires a
+ low-level component to be written for each OS. The NE2000
+ option is only supported on FreeBSD, OpenBSD, Linux, and Windows
+ 95/98/NT/2K. When enabled and configured, the NE2000 device model can
+ talk to any computer on the network EXCEPT FOR the local host.
+ Exception: Under most circumstances, Bochs can talk to the local host
+ on Windows, and in the ethertap interface for Linux.
+
+
+
+ --enable-vbe
+ yes
+ Use VGA BIOS Extensions (VBE) by Jeroen Janssen. To take
+ advantage of the VBE, you must tell Bochs to use the LGPL VGA BIOS
+ version 0.3a or higher in the vgaromimage line of your bochsrc file.
+
+
+
+ --enable-fpu
+ yes
+ If you want to compile bochs to make use of the FPU emulator
+ written by Bill Metzenthen (the one used by the Linux kernel),
+ use this option.
+
+
+
+ --enable-plugins
+ no
+
+ Plugins are shared libraries that can be loaded on demand. Example: the
+ serial device is implemented as a plugin. In UNIX, the serial plugin is
+ called libbx_serial.so. When Bochs reads its configuration file, if the
+ serial device is enabled it loads libbx_serial.so. See the Features
+ section for supported platforms.
+
+
+
+ --enable-guest2host-tlb
+ no
+ support guest to host address TLB for speed
+
+
+ --enable-repeat-speedups
+ no
+ support repeated I/O and memory copy speedups
+
+
+ --enable-icache
+ no
+ support instruction cache for faster execution
+
+
+ --enable-host-specific-asms
+ no
+ support for running native x86 instructions on an x86 machine
+
+
+ --enable-all-optimizations
+ no
+ Turn on the enables for all speed optimizations that the
+ developers believe are safe to use.
+
+
+ --enable-ignore-bad-msr
+ no
+ ignore MSR references that Bochs does not understand, instead of doing a panic
+
+
+ --enable-x86-64
+ no
+
+ Add support for AMD's x86-64 instruction set, written by Peter Tattam.
+ The AMD x86-64 support is about 90% complete and is still experimental.
+ The code has been tested on a limited number of test programs.
+
+
+
+ --enable-mmx
+ no
+
+ Add support for MMX instructions, written by Stanislav Shwartsman.
+
+
+
+ --enable-sse=LEVEL
+ no
+
+ Add support for SSE instructions, written by Stanislav Shwartsman.
+ For SSE only, use --enable-sse=1. For SSE and SSE2, use --enable-sse=2.
+
+
+
+ --enable-split-hd
+ yes
+
+ When enabled, this allows a series of partial hard disk image files to be
+ treated as if it was one large file. The .bochsrc specifies the first
+ partial HD image (example win95-1) and then bochs searches for the other
+ partial images in as a sequence (win95-2, win95-3, etc.) and opens them
+ all. Then, it treats the series as if there was a single large file
+ created by "cat win95-1 win95-2 win95-3". This trick works for both
+ diskc and diskd. All files must be a multiple of 512 bytes.
+
+
+
+ --enable-debugger
+ no
+
+ Compile in support for Bochs internal command-line debugger. This has
+ nothing to do with x86 hardware debug support. It is a more powerful
+ and non-intrusive native debugger. Enabling this will of course slow
+ down the emulation. You only need this option if you know you need it.
+ After you have run ./configure, you may want to edit 'config.h' to
+ customize the debugger further. Look at the section entitled 'OPTIONAL
+ DEBUGGER SECTION'. &FIXME; add cross references
+
+
+
+ --enable-readline
+ detected by configure
+
+ Compile the debugger with the GNU readline library, which gives
+ command line editing and history.
+
+
+
+ --enable-disasm
+ no
+ Compile in support for built-in disassembler. Bochs has
+ a built-in disassembler, which is useful if you either
+ run the built-in debugger (--enable-debugger), or want
+ disassembly of the current instruction when there is a
+ panic in bochs. You don't need this option.
+
+
+ --enable-cpp
+ no
+
+ Use .cpp as C++ suffix. Renames all the .cc files to .cpp for use with
+ compilers which want that, like MS C++ compilers. Don't use this option
+ unless you know you need it. The configure shortcut script for
+ Win32 uses this option.
+
+
+
+ --enable-docbook
+ detected
+
+ Build the docbook documentation in doc/docbook. The configure
+ script will enable this option automatically if you have a program
+ called docbook2html installed.
+
+
+
+ --enable-iodebug
+ yes if debugger is on
+
+ Dave Poirier has written an experimental interface to the debugger
+ using I/O ports, so that software running in the guest OS can access
+ features of the debugger. You only want this option if you are
+ developing guest OS code for use in Bochs. In other words, most people
+ don't. Also, it should only be used with --enable-debugger. See section
+ &FIXME; in the Developer's Guide for details.
+
+
+
+ --enable-x86-debugger
+ no
+ X86 debugger support. If the software you run in bochs
+ needs to use the x86 hardware debugging facilities such as
+ DR0..DR8, instruction and data breakpoints etc., then you
+ should use this option. Otherwise don't use it, as it
+ will slow down the emulation.
+
+
+ --enable-external-debugger
+ no
+ enable external debugger support
+
+
+ --enable-pci
+ no
+ Enable limited i440FX PCI support. This is not complete.
+ Don't use this option yet.
+
+
+ --enable-4meg-pages
+ no
+ support 4 megabyte page extensions
+
+
+ --enable-pae
+ no
+ support physical address extensions
+
+
+ --enable-global-pages
+ no
+ support global pages
+
+
+ --enable-port-e9-hack
+ yes
+ Writes to port e9 go to console. Unless you know you want
+ this option, you don't.
+
+
+ --enable-processors={}
+ 1
+
+ By changing to more than 1 processor, you enable SMP simulation. This
+ allows you to boot Linux and maybe other OSes in SMP mode, and bochs will
+ simulate all the different CPUs and communication between them. Do not
+ expect this option to speed up your simulation! On the contrary, it has
+ to spend extra time simulating the different CPUs (even if they're mostly
+ idle) and the communication between them. Use it to try out an SMP OS if
+ you don't have an SMP machine, or to debug SMP OS drivers. Click
+ here for more details on SMP in Bochs.
+
+
+
+ --enable-apic
+ no
+
+ In an SMP machine, there is an APIC (Advanced Programmable Interrupt
+ Controller) built into each processor and a separate I/O APIC. The
+ APICs are used for inter-processor communication, so they must be
+ enabled for SMP to work. The default is "no" when there is one
+ processor and "yes" when there is more than one processor. Normally,
+ the default is correct and you would never need to type this option.
+
+
+
+ --enable-instrumentation=
+ no
+
+ Compile in support for instrumentation. This allows you to collect
+ instrumentation data from bochs as it executes code. You have to create
+ your own instrumentation library and define the instrumentation macros
+ (hooks in bochs) to either call your library functions or not, depending
+ upon whether you want to collect each piece of data. [Kevin wrote: I
+ broke some of the hooks when I recoded the fetch/decode loop.]
+
+
+
+ --enable-simid={0, 1}
+ 0
+
+ CPU simulator ID. You likely don't need this option. If you are using
+ bochs to cosimulate, that is to run multiple simulators in parallel so
+ that you can compare results and check for divergence, each simulator
+ needs an ID. When you only have one CPU simulator (as usual) the default
+ of 0 is fine. [Kevin wrote: I use this option occasionally to run 2
+ versions of bochs against each other and check for divergence, to find
+ bugs etc. This option gets broken more than not due to architectural
+ changes, and I usually end of fixing it each time I use it.]
+
+
+
+ --enable-num-sim={1, 2}
+ 1
+
+ Number of CPU simulators. The default of 1 is likely what you want, so
+ don't use this option. It is for assigning an ID to the simulator, for
+ cosimulation described above.
+
+
+
+ --enable-time0=n
+ no
+
+ Start CMOS clock at at time0 of n instead of using time(). You likely
+ don't want this option. When debugging, it is very helpful to have
+ deterministic execution, and the clock is something that can skew
+ determinism. If you supply this option, pass it a value returned by the
+ time(NULL) call, relating to the time you want bochs to start the CMOS
+ clock from. For instance, '--enable-time0=917385580'. If you use this
+ option but don't provide a value, configure uses a default value. Note
+ that the time0 option in .bochsrc will override this value. Without this
+ option, the CMOS clock uses a time0 based on the value of time(NULL),
+ which is probably what you want.
+
+
+
+
+
+
+
+
+
+
+
Transcript of Successful Compilation
@@ -1854,467 +2443,6 @@ them as a normal user.
-Configure Options
-
-This section describes the configure options for Bochs. Perhaps the most
-important option is , since it gives you a list of all
-the other options. The configure script will detect your platform and choose
-the default GUI for your platform. If the default choice is not what you want,
-use a option to override the default. The options in
-the first table tell which GUI library is the default for each platform.
-
-
-
-The concept of platform detection and default GUIs was added in Bochs 1.4.
-In Bochs 1.3 and before, the X11 gui was always the default.
-
-
-
-
-
Defaults by Platform
-
-
-
- Platform
- Default GUI
- Extra compile flags
-
-
-
-
- win32 or Cygwin
- --with-win32
- If using nmake method, compile using cl /nologo /G6 /MT /W3 /GX /DNDEBUG /DWIN32 /D_WINDOWS /O2. If using Visual C++ workspace, see the workspace file for compile settings. See Compiling on Win32 with Microsoft VC++ for instructions.
-
-
-
- MacOS X or Darwin
- --with-carbon
- -fpascal-strings -fno-common -arch ppc -Wno-four-char-constants -Wno-unknown-pragmas -Dmacintosh
-
-
-
- MacOS 9 or before
- --with-macos
- none
-
-
-
- BeOS
- --with-beos
- none
-
-
-
- AmigaOS
- --with-amigaos
- none
-
-
-
- any other platform
- --with-x11
- none
-
-
-
-
-
-
-
Configure Options to Select the GUI (optional)
-
-
-
- Option
- Comments
-
-
-
-
- --with-x11
- Use X windows user interface. On many operating systems,
- Bochs will use X windows by default.
-
-
-
- --with-win32-vcpp
- Use Win32 GUI/Visual C++ environment. This is for running
- configure on a platform which supports running configure, so
- that you may then transfer the configured code over to
- an MS Win32/Visual C++ environment. See
- for details.
-
-
-
- --with-win32
- Use Win32 GUI, but compile with a Win32/gcc
- environment such as Cygwin. For Cygwin, see .conf.win32-cygwin
- for the correct compile options.
-
-
-
- --with-carbon
- Compile for MacOS X with the Carbon GUI. See the
- .conf.macosx file for the correct MacOS X compile options.
-
-
-
- --with-amigaos
- Compile for Amiga MorphOS. This code is written by Nicholai
- Benalal.
-
-
-
- --with-rfb
- Use RFB protocol to talk to AT&T's VNC Viewer. The RFB
- code was written by Don Becker x-odus@iname.com,
- who has a Bochs-RFB web page on his site,
- http://www.psyon.org/bochs-rfb.
- RFB mode has been tested in Linux and Win32.
-
-
-
- --with-sdl
- This option enables Dave Poirier's SDL gui interface. To
- compile with SDL, you must first install the SDL library
- from libsdl.org. You
- can either get the source code and compile it yourself, or install
- the development libraries for your platform (already compiled).
- SDL is available for many platforms including Win32, Linux, IRIX,
- MacOS, MacOS X, and BeOS.
-
-
-
- --with-beos
- Use BeOS GUI. The configure script will run natively
- on BeOS; use this option when doing so.
-
-
- --with-term
- Use text-only gui with curses library. Almost certainly
- won't work right with the debugger or the control panel.
-
-
-
- --with-macos
- Use Macintosh/CodeWarrior environment. This is for running
- configure on a platform which supports running configure, so that
- you may then transfer the configured code over to the
- real compile environment. (Hasn't been tested in a long time.)
-
-
-
- --with-nogui
- No native GUI; just use blank stubs. This is if you don't
- care about having video output, but are just running tests.
-
-
-
-
-
-
-
-The remaining options can generally be used with any GUI. For each option
-such as --enable-cdrom, you can also write --disable-cdrom to explicitly
-turn it off.
-
-
-
Frequently Used Configure Options
-
-
-
- Option
- Default
- Comments
-
-
-
-
- --enable-cpu-level={}
- 5
-
- Select which CPU level to emulate. Choices are 3,4,5,6 which mean to
- target 386, 486, Pentium, or Pentium Pro emulation. Pentium Pro support
- is quite incomplete, so level 5 is the best choice for now.
-
-
-
- --enable-cdrom
- yes
-
- Enable use of a real CDROM. The cdrom emulation is always present, and
- emulates a drive without media by default. You can use this option to
- compile in support for accessing the media in your workstation's cdrom
- drive. The supported platforms are Linux, Solaris, OpenBSD, and Windows.
- For other platforms, a small amount of code specific to your platform
- must be written. The module iodev/cdrom.cc is the place to add more
- support. For the most part, you need to figure out the right set of
- ioctl() calls.
-
-
-
- --enable-sb16={}
- no
-
- Enable Sound Blaster emulation. SB16 output is only supported for
- Windows or Linux. The dummy option means to support
- an SB16, but don't use an output device. So for example, you might use
- . Check out &FIXME; sound.html for
- more info.
-
-
-
- --enable-control-panel
- yes
-
- Enables text-mode configuration menus when you first start Bochs. The
- menus let you read in a bochsrc file, edit some options, and save the new
- bochsrc before starting the simulation. Also enables a runtime
- menu (controlled by a Config button on the Bochs display) which
- lets you change certain settings during simulation. The control panel
- was added by Bryce Denney.
-
-
-
- --enable-new-pit
- yes
-
- Enables Greg Alexander's PIT model, written during Summer 2001. This
- model was written from scratch to be much more complete than the old
- Bochs PIT model, which was missing many registers and features.
- If you disable this option, the old PIT model will be used instead.
-
-
-
- --enable-slowdown
- no
-
- Enables Greg Alexander's experimental "slowdown timer" which tries to
- keep the Bochs simulation time in sync with real time. When Bochs
- is executing many instructions, the slowdown timer will have no effect.
- When Bochs is idle, or just waiting around for an interrupt, the
- slowdown timer kicks in to prevent Bochs time from speeding ahead.
- This should solve problems like, "Why does my screen saver turn on
- after 30 seconds?"
-
-
-
- --enable-idle-hack
- no
-
- Enables Roland Mainz's experimental idle code, which is intended to
- keep Bochs from always using 100% of CPU time. When Bochs is waiting
- around for an interrupt, the idle code uses a select() loop and some
- X11 tricks to wait until user input arrives. This is designed to
- keep Bochs responsive while still yielding to other processes when
- Bochs is idle.
-
-
-
- --enable-ne2000
- no
- Enable NE2000 network card support. This requires a
- low-level component to be written for each OS. The NE2000
- option is only supported on FreeBSD, OpenBSD, Linux, and Windows
- 95/98/NT/2K. When enabled and configured, the NE2000 device model can
- talk to any computer on the network EXCEPT FOR the local host.
- Exception: Under most circumstances, Bochs can talk to the local host
- on Windows, and in the ethertap interface for Linux.
-
-
-
- --enable-vbe
- yes
- Use VGA BIOS Extensions (VBE) by Jeroen Janssen. To take
- advantage of the VBE, you must tell Bochs to use the LGPL VGA BIOS
- version 0.3a or higher in the vgaromimage line of your bochsrc file.
-
-
-
- --enable-fpu
- yes
- If you want to compile bochs to make use of the FPU emulator
- written by Bill Metzenthen (the one used by the Linux kernel),
- use this option.
-
-
-
- --enable-split-hd
- yes
-
- When enabled, this allows a series of partial hard disk image files to be
- treated as if it was one large file. The .bochsrc specifies the first
- partial HD image (example win95-1) and then bochs searches for the other
- partial images in as a sequence (win95-2, win95-3, etc.) and opens them
- all. Then, it treats the series as if there was a single large file
- created by "cat win95-1 win95-2 win95-3". This trick works for both
- diskc and diskd. All files must be a multiple of 512 bytes.
-
-
-
- --enable-debugger
- no
-
- Compile in support for Bochs internal command-line debugger. This has
- nothing to do with x86 hardware debug support. It is a more powerful
- and non-intrusive native debugger. Enabling this will of course slow
- down the emulation. You only need this option if you know you need it.
- After you have run ./configure, you may want to edit 'config.h' to
- customize the debugger further. Look at the section entitled 'OPTIONAL
- DEBUGGER SECTION'. &FIXME; add cross references
-
-
-
- --enable-disasm
- no
- Compile in support for built-in disassembler. Bochs has
- a built-in disassembler, which is useful if you either
- run the built-in debugger (--enable-debugger), or want
- disassembly of the current instruction when there is a
- panic in bochs. You don't need this option.
-
-
- --enable-cpp
- no
-
- Use .cpp as C++ suffix. Renames all the .cc files to .cpp for use with
- compilers which want that, like MS C++ compilers. Don't use this option
- unless you know you need it. The configure shortcut script for
- Win32 uses this option.
-
-
-
-
-
-
-
-Less Used Configure Options
-
-
-
- Option
- Default
- Comments
-
-
-
-
- --enable-iodebug
- yes if debugger is on
-
- Dave Poirier has written an experimental interface to the debugger
- using I/O ports, so that software running in the guest OS can access
- features of the debugger. You only want this option if you are
- developing guest OS code for use in Bochs. In other words, most people
- don't. Also, it should only be used with --enable-debugger. See section
- &FIXME; in the Developer's Guide for details.
-
-
-
- --enable-x86-debugger
- no
- X86 debugger support. If the software you run in bochs
- needs to use the x86 hardware debugging facilities such as
- DR0..DR8, instruction and data breakpoints etc., then you
- should use this option. Otherwise don't use it, as it
- will slow down the emulation.
-
-
- --enable-pci
- no
- Enable limited i440FX PCI support. This is not complete.
- Don't use this option.
-
-
- --enable-port-e9-hack
- yes
- Writes to port e9 go to console. Unless you know you want
- this option, you don't.
-
-
- --enable-processors={}
- 1
-
- By changing to more than 1 processor, you enable SMP simulation. This
- allows you to boot Linux and maybe other OSes in SMP mode, and bochs will
- simulate all the different CPUs and communication between them. Do not
- expect this option to speed up your simulation! On the contrary, it has
- to spend extra time simulating the different CPUs (even if they're mostly
- idle) and the communication between them. Use it to try out an SMP OS if
- you don't have an SMP machine, or to debug SMP OS drivers. Click
- here for more details on SMP in Bochs.
-
-
-
- --enable-apic
- no
-
- In an SMP machine, there is an APIC (Advanced Programmable Interrupt
- Controller) built into each processor and a separate I/O APIC. The
- APICs are used for inter-processor communication, so they must be
- enabled for SMP to work. The default is "no" when there is one
- processor and "yes" when there is more than one processor. Normally,
- the default is correct and you would never need to type this option.
-
-
-
- --enable-instrumentation=
- no
-
- Compile in support for instrumentation. This allows you to collect
- instrumentation data from bochs as it executes code. You have to create
- your own instrumentation library and define the instrumentation macros
- (hooks in bochs) to either call your library functions or not, depending
- upon whether you want to collect each piece of data. [Kevin wrote: I
- broke some of the hooks when I recoded the fetch/decode loop.]
-
-
-
- --enable-simid={0, 1}
- 0
-
- CPU simulator ID. You likely don't need this option. If you are using
- bochs to cosimulate, that is to run multiple simulators in parallel so
- that you can compare results and check for divergence, each simulator
- needs an ID. When you only have one CPU simulator (as usual) the default
- of 0 is fine. [Kevin wrote: I use this option occasionally to run 2
- versions of bochs against each other and check for divergence, to find
- bugs etc. This option gets broken more than not due to architectural
- changes, and I usually end of fixing it each time I use it.]
-
-
-
- --enable-num-sim={1, 2}
- 1
-
- Number of CPU simulators. The default of 1 is likely what you want, so
- don't use this option. It is for assigning an ID to the simulator, for
- cosimulation described above.
-
-
-
- --enable-time0=n
- no
-
- Start CMOS clock at at time0 of n instead of using time(). You likely
- don't want this option. When debugging, it is very helpful to have
- deterministic execution, and the clock is something that can skew
- determinism. If you supply this option, pass it a value returned by the
- time(NULL) call, relating to the time you want bochs to start the CMOS
- clock from. For instance, '--enable-time0=917385580'. If you use this
- option but don't provide a value, configure uses a default value. Note
- that the time0 option in .bochsrc will override this value. Without this
- option, the CMOS clock uses a time0 based on the value of time(NULL),
- which is probably what you want.
-
-
-
-
-
-
-
-
Compile Problems
&FIXME;
@@ -3105,7 +3233,7 @@ Examples:
pit: realtime=0
pit: realtime=1
-The PIT is the programmable interval timer. Bochs's PIT modelw as written by
+The PIT is the programmable interval timer. Bochs's PIT model was written by
Greg Alexander. It has a real-time option that tries to keep the PIT in sync
with the host time. This feature is still experimental, but it may be useful
if you want to prevent Bochs from running too fast, for example a DOS video
@@ -3260,7 +3388,9 @@ Up to 3 keys can be pressed at a time.
-Sound Blaster 16 Emulation: Configuring From Source
+Sound Blaster 16 Emulation
+
+Configuring From Source
This section is a detailed description for configuring Sound Blaster 16 from
@@ -3280,6 +3410,7 @@ SB16 Emulation has been tested with several soundcards and versions of Linux. P
Josef feedback on
whether is does or doesn't work on your combination of software and hardware.
+How well does it work?