diff --git a/contrib/vm/bochsrc.txt b/contrib/vm/bochsrc.txt
index d0f1250..feda985 100644
--- a/contrib/vm/bochsrc.txt
+++ b/contrib/vm/bochsrc.txt
@@ -7,10 +7,15 @@
 # directly with this option and some of them install a config option that is
 # only available when the plugin device is loaded. The value "1" means to load
 # the plugin and "0" will unload it (if loaded before).
-# These plugins are currently supported: 'biosdev', 'e1000', 'es1370',
-# 'extfpuirq', 'gameport', 'iodebug', 'ne2k', 'parallel', 'pcidev', 'pcipnic',
-# 'sb16', 'serial', 'speaker', 'unmapped', 'usb_ohci', 'usb_uhci' and 'usb_xhci'.
+#
+# These plugins will be loaded by default (if present): 'biosdev', 'extfpuirq',
+# 'gameport', 'iodebug','parallel', 'serial', 'speaker' and 'unmapped'.
+#
+# These plugins are also supported, but they are usually loaded directly with
+# their bochsrc option: 'e1000', 'es1370', 'ne2k', 'pcidev', 'pcipnic', 'sb16',
+# 'usb_ehci', 'usb_ohci', 'usb_uhci', 'usb_xhci' and 'voodoo'.
 #=======================================================================
+#plugin_ctrl: unmapped=0, e1000=1 # unload 'unmapped' and load 'e1000'
 plugin_ctrl: unmapped=1, biosdev=1, speaker=1, e1000=1, parallel=1, serial=1
 
 #=======================================================================
@@ -50,10 +55,11 @@
 #   carbon         use Carbon library (for MacOS X)
 #   macintosh      use MacOS pre-10
 #   amigaos        use native AmigaOS libraries
-#   sdl            use SDL library, cross platform
-#   svga           use SVGALIB library for Linux, allows graphics without X11
+#   sdl            use SDL 1.2.x library, cross platform
+#   sdl2           use SDL 2.x library, cross platform
 #   term           text only, uses curses/ncurses library, cross platform
 #   rfb            provides an interface to AT&T's VNC viewer, cross platform
+#   vncsrv         use LibVNCServer for extended RFB(VNC) support
 #   wx             use wxWidgets library, cross platform
 #   nogui          no display at all
 #
@@ -64,52 +70,50 @@
 # Some display libraries now support specific options to control their
 # behaviour. These options are supported by more than one display library:
 #
-# "gui_debug"   - use GTK debugger gui (sdl, x) / Win32 debugger gui (win32)
-# "hideIPS"     - disable IPS output in status bar (sdl, wx, x)
-# "nokeyrepeat" - turn off host keyboard repeat (sdl, win32, x)
+# "cmdmode"     - call a headerbar button handler after pressing F7 (sdl, sdl2,
+#                 win32, x)
+# "fullscreen"  - startup in fullscreen mode (sdl, sdl2)
+# "gui_debug"   - use GTK debugger gui (sdl, sdl2, x) / Win32 debugger gui (sdl,
+#                 sdl2, win32)
+# "hideIPS"     - disable IPS output in status bar (rfb, sdl, sdl2, term, vncsrv,
+#                 win32, wx, x)
+# "nokeyrepeat" - turn off host keyboard repeat (sdl, sdl2, win32, x)
+# "timeout"     - time (in seconds) to wait for client (rfb, vncsrv)
 #
 # See the examples below for other currently supported options.
+# Setting up options without specifying display library is also supported.
 #=======================================================================
 #display_library: amigaos
 #display_library: carbon
 #display_library: macintosh
 #display_library: nogui
-#display_library: rfb, options="timeout=60" # time to wait for client
-#display_library: sdl, options="fullscreen" # startup in fullscreen mode
+#display_library: rfb
+#display_library: sdl
+#display_library: sdl2
 #display_library: term
-#display_library: win32
+#display_library: vncsrv
+# "traphotkeys" - system hotkeys not handled by host OS, but sent to guest
+#                 (win32 in mouse capture and fullscreen mode: alt-tab, win,
+#                 alt-space, alt-esc, ctrl-esc)
+# "autoscale"   - scale small simulation window by factor 2, 4 or 8 depending
+#                 on desktop window size
+#display_library: win32, options="traphotkeys, autoscale"
 #display_library: wx
 #display_library: x
 
 #=======================================================================
-# ROMIMAGE:
-# The ROM BIOS controls what the PC does when it first powers on.
-# Normally, you can use a precompiled BIOS in the source or binary
-# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
-# starting at address 0xf0000, and it is exactly 64k long. Another option
-# is 128k BIOS which is loaded at address 0xe0000.
-# You can also use the environment variable $BXSHARE to specify the
-# location of the BIOS.
-# The usage of external large BIOS images (up to 512k) at memory top is
-# now supported, but we still recommend to use the BIOS distributed with
-# Bochs. The start address optional, since it can be calculated from image size.
-#=======================================================================
-#romimage: file=$BXSHARE/BIOS-bochs-latest
-#romimage: file=bios/seabios-1.6.3.bin
-#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
-romimage: file=bochs/bios/BIOS-bochs-latest
-
-#=======================================================================
 # CPU:
 # This defines cpu-related parameters inside Bochs:
 #
 #  MODEL:
 #    Selects CPU configuration to emulate from pre-defined list of all
-#    supported configurations. When this option is used, the CPUID option
-#    has no effect anymore.
+#    supported configurations. When this option is used and the value
+#    is different from 'bx_generic', the parameters of the CPUID option
+#    have no effect anymore.
 #
 #  CPU configurations that can be selected:
 # -----------------------------------------------------------------
+#  pentium                    Intel Pentium (P54C)
 #  pentium_mmx                Intel Pentium MMX
 #  amd_k6_2_chomper           AMD-K6(tm) 3D processor (Chomper)
 #  p2_klamath                 Intel Pentium II (Klamath)
@@ -117,23 +121,28 @@
 #  p4_willamette              Intel(R) Pentium(R) 4 (Willamette)
 #  core_duo_t2400_yonah       Intel(R) Core(TM) Duo CPU T2400 (Yonah)
 #  atom_n270                  Intel(R) Atom(TM) CPU N270
+#  p4_prescott_celeron_336    Intel(R) Celeron(R) 336 (Prescott)
 #  athlon64_clawhammer        AMD Athlon(tm) 64 Processor 2800+ (Clawhammer)
 #  athlon64_venice            AMD Athlon(tm) 64 Processor 3000+ (Venice)
 #  turion64_tyler             AMD Turion(tm) 64 X2 Mobile TL-60 (Tyler)
 #  phenom_8650_toliman        AMD Phenom X3 8650 (Toliman)
-#  p4_prescott_celeron_336    Intel(R) Celeron(R) 336 (Prescott)
 #  core2_penryn_t9600         Intel Mobile Core 2 Duo T9600 (Penryn)
 #  corei5_lynnfield_750       Intel(R) Core(TM) i5   750 (Lynnfield)
 #  corei5_arrandale_m520      Intel(R) Core(TM) i5 M 520 (Arrandale)
 #  corei7_sandy_bridge_2600k  Intel(R) Core(TM) i7-2600K (Sandy Bridge)
+#  zambezi                    AMD FX(tm)-4100 Quad-Core Processor (Zambezi)
+#  trinity_apu                AMD A8-5600K APU (Trinity)
+#  ryzen                      AMD Ryzen 7 1700
 #  corei7_ivy_bridge_3770k    Intel(R) Core(TM) i7-3770K CPU (Ivy Bridge)
+#  corei7_haswell_4770        Intel(R) Core(TM) i7-4770 CPU (Haswell)
+#  broadwell_ult              Intel(R) Processor 5Y70 CPU (Broadwell)
 #
 #  COUNT:
-#    Set the number of processors:cores per processor:threads per core
-#    when Bochs is compiled for SMP emulation.
-#    Bochs currently supports up to 8 threads running simultaniosly.
-#    If Bochs is compiled without SMP support, it won't accept values
-#    different from 1.
+#    Set the number of processors:cores per processor:threads per core when
+#    Bochs is compiled for SMP emulation. Bochs currently supports up to
+#    14 threads (legacy APIC) or 254 threads (xAPIC or higher) running
+#    simultaniosly. If Bochs is compiled without SMP support, it won't accept
+#    values different from 1.
 #
 #  QUANTUM:
 #    Maximum amount of instructions allowed to execute by processor before
@@ -156,7 +165,7 @@
 #  IGNORE_BAD_MSRS:
 #    Ignore MSR references that Bochs does not understand; print a warning
 #    message instead of generating #GP exception. This option is enabled
-#    by default but will not be avaiable if configurable MSRs are enabled.
+#    by default but will not be available if configurable MSRs are enabled.
 #
 #  MWAIT_IS_NOP:
 #    When this option is enabled MWAIT will not put the CPU into a sleep state.
@@ -205,23 +214,38 @@
 #    Select SYSENTER/SYSEXIT instruction set support.
 #    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
 #
-#  SSE:
-#    Select SSE instruction set support.
-#    Any of NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 could be selected.
+#  SIMD:
+#    Select SIMD instructions support.
+#    Any of NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2/AVX/AVX2/AVX512
+#    could be selected.
+#
 #    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
+#    The AVX choises exists only if Bochs compiled with --enable-avx option.
 #
 #  SSE4A:
 #    Select AMD SSE4A instructions support.
 #    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
 #
+#  MISALIGNED_SSE:
+#    Select AMD Misaligned SSE mode support.
+#    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
+#
 #  AES:
 #    Select AES instruction set support.
 #    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
 #
+#  SHA:
+#    Select SHA instruction set support.
+#    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
+#
 #  MOVBE:
 #    Select MOVBE Intel(R) Atom instruction support.
 #    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
 #
+#  ADX:
+#    Select ADCX/ADOX instructions support.
+#    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
+#
 #  XSAVE:
 #    Select XSAVE extensions support.
 #    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
@@ -230,10 +254,6 @@
 #    Select XSAVEOPT instruction support.
 #    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
 #
-#  AVX:
-#    Select AVX/AVX2 instruction set support.
-#    This option exists only if Bochs compiled with --enable-avx option.
-#
 #  AVX_F16C:
 #    Select AVX float16 convert instructions support.
 #    This option exists only if Bochs compiled with --enable-avx option.
@@ -278,6 +298,10 @@
 #    Enable Supervisor Mode Execution Protection (SMEP) support.
 #    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
 #
+#  SMAP:
+#    Enable Supervisor Mode Access Prevention (SMAP) support.
+#    This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
+#
 #  MWAIT:
 #    Select MONITOR/MWAIT instructions support.
 #    This option exists only if Bochs compiled with --enable-monitor-mwait.
@@ -286,6 +310,10 @@
 #    Select VMX extensions emulation support.
 #    This option exists only if Bochs compiled with --enable-vmx option.
 #
+#  SVM:
+#    Select AMD SVM (Secure Virtual Machine) extensions emulation support.
+#    This option exists only if Bochs compiled with --enable-svm option.
+#
 #  VENDOR_STRING:
 #    Set the CPUID vendor string returned by CPUID(0x0). This should be a
 #    twelve-character ASCII string.
@@ -294,6 +322,12 @@
 #    Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004).
 #    This should be at most a forty-eight-character ASCII string.
 #
+#  LEVEL:
+#    Set emulated CPU level information returned by CPUID. Default value is
+#    determined by configure option --enable-cpu-level. Currently supported
+#    values are 5 (for Pentium and similar processors) and 6 (for P6 and
+#    later processors).
+#
 #  FAMILY:
 #    Set model information returned by CPUID. Default family value determined
 #    by configure option --enable-cpu-level.
@@ -304,7 +338,7 @@
 #  STEPPING:
 #    Set stepping information returned by CPUID. Default stepping value is 3.
 #=======================================================================
-#cpuid: x86_64=1, mmx=1, sep=1, sse=sse4_2, apic=xapic, aes=1, movbe=1, xsave=1
+#cpuid: x86_64=1, mmx=1, sep=1, simd=sse4_2, apic=xapic, aes=1, movbe=1, xsave=1
 #cpuid: family=6, model=0x1a, stepping=5
 
 #=======================================================================
@@ -327,6 +361,37 @@
 memory: guest=512, host=256
 
 #=======================================================================
+# ROMIMAGE:
+# The ROM BIOS controls what the PC does when it first powers on.
+# Normally, you can use a precompiled BIOS in the source or binary
+# distribution called BIOS-bochs-latest. The default ROM BIOS is usually loaded
+# starting at address 0xfffe0000, and it is exactly 128k long. The legacy
+# version of the Bochs BIOS is usually loaded starting at address 0xffff0000,
+# and it is exactly 64k long.
+# You can use the environment variable $BXSHARE to specify the location
+# of the BIOS.
+# The usage of external large BIOS images (up to 512k) at memory top is
+# now supported, but we still recommend to use the BIOS distributed with Bochs.
+# The start address is optional, since it can be calculated from image size.
+# The Bochs BIOS currently supports only the option "fastboot" to skip the
+# boot menu delay.
+#=======================================================================
+#romimage: file=$BXSHARE/BIOS-bochs-latest, options=fastboot
+#romimage: file=$BXSHARE/bios.bin-1.13.0 # http://www.seabios.org/SeaBIOS
+#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
+romimage: file=bochs/bios/BIOS-bochs-latest
+
+#=======================================================================
+# VGAROMIMAGE
+# You now need to load a VGA ROM BIOS into C0000.
+#=======================================================================
+#vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
+#vgaromimage: file=bios/VGABIOS-lgpl-latest-cirrus
+#vgaromimage: file=$BXSHARE/vgabios-cirrus.bin-1.13.0 # http://www.seabios.org/SeaVGABIOS
+#vgaromimage: file=bios/VGABIOS-elpin-2.40
+vgaromimage: file=bochs/bios/VGABIOS-lgpl-latest
+
+#=======================================================================
 # OPTROMIMAGE[1-4]:
 # You may now load up to 4 optional ROM images. Be sure to use a
 # read-only area, typically between C8000 and EFFFF. These optional
@@ -349,35 +414,233 @@
 #optramimage4: file=/path/file4.img, address=0x0040000
 
 #=======================================================================
-# VGAROMIMAGE
-# You now need to load a VGA ROM BIOS into C0000.
-#=======================================================================
-#vgaromimage: file=bios/VGABIOS-elpin-2.40
-#vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
-#vgaromimage: file=bios/VGABIOS-lgpl-latest-cirrus
-vgaromimage: file=bochs/bios/VGABIOS-lgpl-latest
-
-#=======================================================================
 # VGA:
 # This defines parameters related to the VGA display
 #
 #   EXTENSION
 #     Here you can specify the display extension to be used. With the value
 #     'none' you can use standard VGA with no extension. Other supported
-#     values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
+#     values are 'vbe' for Bochs VBE, 'cirrus' for Cirrus SVGA support and
+#     'voodoo' for Voodoo Graphics support (see 'voodoo' option).
 #
 #   UPDATE_FREQ
-#     The VGA update frequency is based on the emulated clock and the default
-#     value is 5. Keep in mind that you must tweak the 'cpu: ips=N' directive
-#     to be as close to the number of emulated instructions-per-second your
-#     workstation can do, for this to be accurate. If the realtime sync is
-#     enabled with the 'clock' option, the value is based on the real time.
-#     This parameter can be changed at runtime.
+#     This parameter specifies the number of display updates per second.
+#     The VGA update timer by default uses the realtime engine with a value
+#     of 5. This parameter can be changed at runtime.
+#
+#   REALTIME
+#     If set to 1 (default), the VGA timer is based on realtime, otherwise it
+#     is driven by the cpu and depends on the ips setting. If the host is slow
+#     (low ips, update_freq) and the guest uses HLT appropriately, setting this
+#     to 0 and "clock: sync=none" may improve the responsiveness of the guest
+#     GUI when the guest is otherwise idle.
+#
+#   DDC
+#     This parameter defines the behaviour of the DDC emulation that returns
+#     the monitor EDID data. By default the 'builtin' values for 'Bochs Screen'
+#     are used. Other choices are 'disabled' (no DDC emulation) and 'file'
+#     (read monitor EDID from file / path name separated with a colon).
+# Examples:
+#   vga: extension=cirrus, update_freq=10, ddc=builtin
+#=======================================================================
+#vga: extension=vbe, update_freq=5, realtime=1, ddc=file:monitor.bin
+
+#=======================================================================
+# VOODOO:
+# This defines the Voodoo Graphics emulation (experimental). Currently
+# supported models are 'voodoo1', 'voodoo2', 'banshee' and 'voodoo3'. The
+# Voodoo2 support is not yet complete, but almost usable. The Banshee and
+# Voodoo3 support is under construction, but basically usable. The 2D/3D cards
+# require an external VGA BIOS the vga extension option to be set to 'voodoo'.
+# If the i440BX PCI chipset is selected, they can be assigned to AGP (slot #5).
+# The gui screen update timing for all models is controlled by the related 'vga'
+# options.
 #
 # Examples:
-#   vga: extension=cirrus, update_freq=10
+#   voodoo: enabled=1, model=voodoo2
 #=======================================================================
-#vga: extension=vbe, update_freq=5
+#voodoo: enabled=1, model=voodoo1
+
+#=======================================================================
+# KEYBOARD:
+# This defines parameters related to the emulated keyboard
+#
+#   TYPE:
+#     Type of keyboard return by a "identify keyboard" command to the
+#     keyboard controller. It must be one of "xt", "at" or "mf".
+#     Defaults to "mf". It should be ok for almost everybody. A known
+#     exception is french macs, that do have a "at"-like keyboard.
+#
+#   SERIAL_DELAY:
+#     Approximate time in microseconds that it takes one character to
+#     be transferred from the keyboard to controller over the serial path.
+#
+#   PASTE_DELAY:
+#     Approximate time in microseconds between attempts to paste
+#     characters to the keyboard controller. This leaves time for the
+#     guest os to deal with the flow of characters.  The ideal setting
+#     depends on how your operating system processes characters.  The
+#     default of 100000 usec (.1 seconds) was chosen because it works
+#     consistently in Windows.
+#     If your OS is losing characters during a paste, increase the paste
+#     delay until it stops losing characters.
+#
+#   KEYMAP:
+#     This enables a remap of a physical localized keyboard to a
+#     virtualized us keyboard, as the PC architecture expects.
+#
+#   USER_SHORTCUT:
+#     This defines the keyboard shortcut to be sent when you press the "user"
+#     button in the headerbar. The shortcut string is a combination of maximum
+#     3 key names (listed below) separated with a '-' character.
+#     Valid key names:
+#     "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
+#     "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
+#     "plus", "power", "print", "right", "scrlck", "shift", "space", "tab", "up"
+#     and "win".
+
+# Examples:
+#   keyboard: type=mf, serial_delay=200, paste_delay=100000
+#   keyboard: keymap=gui/keymaps/x11-pc-de.map
+#   keyboard: user_shortcut=ctrl-alt-del
+#=======================================================================
+#keyboard: type=mf, serial_delay=250
+
+#=======================================================================
+# MOUSE:
+# This defines parameters for the emulated mouse type, the initial status
+# of the mouse capture and the runtime method to toggle it.
+#
+#  TYPE:
+#  With the mouse type option you can select the type of mouse to emulate.
+#  The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
+#  on PS/2), 'serial', 'serial_wheel', 'serial_msys' (one com port requires
+#  setting 'mode=mouse') 'inport' and 'bus' (if present). To connect a mouse
+#  to a USB port, see the 'usb_uhci', 'usb_ohci', 'usb_ehci' or 'usb_xhci'
+#  options (requires PCI and USB support).
+#
+#  ENABLED:
+#  The Bochs gui creates mouse "events" unless the 'enabled' option is
+#  set to 0. The hardware emulation itself is not disabled by this.
+#  Unless you have a particular reason for enabling the mouse by default,
+#  it is recommended that you leave it off. You can also toggle the mouse
+#  usage at runtime (RFB, SDL, Win32, wxWidgets and X11 - see below).
+#
+#  TOGGLE:
+#  The default method to toggle the mouse capture at runtime is to press the
+#  CTRL key and the middle mouse button ('ctrl+mbutton'). This option allows
+#  to change the method to 'ctrl+f10' (like DOSBox), 'ctrl+alt' (like QEMU)
+#  or 'f12'.
+#
+# Examples:
+#   mouse: enabled=1
+#   mouse: type=imps2, enabled=1
+#   mouse: type=serial, enabled=1
+#   mouse: enabled=0, toggle=ctrl+f10
+#=======================================================================
+mouse: enabled=0
+
+#=======================================================================
+# PCI:
+# This defines the parameters to set up the Bochs PCI emulation:
+#
+#  ENABLED:
+#  If Bochs is compiled with PCI support, it is enabled by default.
+#
+#  CHIPSET:
+#  Currently the chipsets i430FX, i440FX and i440BX (limited) are supported and
+#  the default is i440FX.
+#
+#  SLOTx:
+#  It is possible to specify the devices connected to PCI slots. Up to 5 slots
+#  are available. For combined PCI/ISA devices assigning to slot is mandatory
+#  if the PCI model should be emulated (cirrus, ne2k and pcivga). Setting up
+#  slot for PCI-only devices is also supported, but they are auto-assigned if
+#  not specified (e1000, es1370, pcidev, pcipnic, usb_ehci, usb_ohci, usb_xhci,
+#  voodoo). All device models except the network devices ne2k and e1000 can be
+#  used only once in the slot configuration. In case of the i440BX chipset, the
+#  slot #5 is the AGP slot. Currently only the 'voodoo' device can be assigned
+#  to AGP.
+#
+#  ADVOPTS:
+#  With the advanced PCI options it is possible to control the behaviour of the
+#  PCI chipset. These options can be specified as comma-separated values.
+#  By default the "Bochs i440FX" chipset enables the ACPI and HPET devices, but
+#  original i440FX doesn't support them. The options 'noacpi' and 'nohpet' make
+#  it possible to disable them.
+#
+# Example:
+#   pci: enabled=1, chipset=i440fx, slot1=pcivga, slot2=ne2k, advopts=noacpi
+#=======================================================================
+pci: enabled=1, chipset=i440fx
+
+#=======================================================================
+# CLOCK:
+# This defines the parameters of the clock inside Bochs:
+#
+#  SYNC:
+#  This defines the method how to synchronize the Bochs internal time
+#  with realtime. With the value 'none' the Bochs time relies on the IPS
+#  value and no host time synchronization is used. The 'slowdown' method
+#  sacrifices performance to preserve reproducibility while allowing host
+#  time correlation. The 'realtime' method sacrifices reproducibility to
+#  preserve performance and host-time correlation.
+#  It is possible to enable both synchronization methods.
+#
+#  RTC_SYNC:
+#  If this option is enabled together with the realtime synchronization,
+#  the RTC runs at realtime speed. This feature is disabled by default.
+#
+#  TIME0:
+#  Specifies the start (boot) time of the virtual machine. Use a time
+#  value as returned by the time(2) system call or a string as returned
+#  by the ctime(3) system call. If no time0 value is set or if time0
+#  equal to 1 (special case) or if time0 equal 'local', the simulation
+#  will be started at the current local host time. If time0 equal to 2
+#  (special case) or if time0 equal 'utc', the simulation will be started
+#  at the current utc time.
+#
+# Syntax:
+#  clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
+#
+# Example:
+#   clock: sync=none,     time0=local       # Now (localtime)
+#   clock: sync=slowdown, time0=315529200   # Tue Jan  1 00:00:00 1980
+#   clock: sync=none,     time0="Mon Jan  1 00:00:00 1990" # 631148400
+#   clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999
+#   clock: sync=realtime, time0="Sat Jan  1 00:00:00 2000" # 946681200
+#   clock: sync=none,     time0=1           # Now (localtime)
+#   clock: sync=none,     time0=utc         # Now (utc/gmt)
+#
+# Default value are sync=none, rtc_sync=0, time0=local
+#=======================================================================
+#clock: sync=none, time0=local
+
+#=======================================================================
+# CMOSIMAGE:
+# This defines a binary image file with size 128 bytes that can be loaded into
+# the CMOS RAM at startup. The rtc_init parameter controls whether initialize
+# the RTC with values stored in the image. By default the time0 argument given
+# to the clock option is used. With 'rtc_init=image' the image is the source
+# for the initial time.
+#
+# Example:
+#   cmosimage: file=cmos.img, rtc_init=image
+#=======================================================================
+#cmosimage: file=cmos.img, rtc_init=time0
+
+#=======================================================================
+# private_colormap: Request that the GUI create and use it's own
+#                   non-shared colormap.  This colormap will be used
+#                   when in the bochs window.  If not enabled, a
+#                   shared colormap scheme may be used.  Not implemented
+#                   on all GUI's.
+#
+# Examples:
+#   private_colormap: enabled=1
+#   private_colormap: enabled=0
+#=======================================================================
+private_colormap: enabled=0
 
 #=======================================================================
 # FLOPPYA:
@@ -450,14 +713,14 @@
 #
 # This defines the type and characteristics of all attached ata devices:
 #   type=       type of attached device [disk|cdrom]
-#   mode=       only valid for disks [flat|concat|external|dll|sparse|vmware3]
-#   mode=       only valid for disks [undoable|growing|volatile|vvfat]
+#   mode=       only valid for disks [flat|concat|dll|sparse|vmware3|vmware4]
+#                                    [undoable|growing|volatile|vpc|vbox|vvfat]
 #   path=       path of the image / directory
 #   cylinders=  only valid for disks
 #   heads=      only valid for disks
 #   spt=        only valid for disks
 #   status=     only valid for cdroms [inserted|ejected]
-#   biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
+#   biosdetect= type of biosdetection [auto|cmos|none]
 #   translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
 #   model=      string returned by identify device command
 #   journal=    optional filename of the redolog for undoable, volatile and vvfat disks
@@ -520,48 +783,6 @@
 boot: network, floppy
 
 #=======================================================================
-# CLOCK:
-# This defines the parameters of the clock inside Bochs:
-#
-#  SYNC:
-#  This defines the method how to synchronize the Bochs internal time
-#  with realtime. With the value 'none' the Bochs time relies on the IPS
-#  value and no host time synchronization is used. The 'slowdown' method
-#  sacrifices performance to preserve reproducibility while allowing host
-#  time correlation. The 'realtime' method sacrifices reproducibility to
-#  preserve performance and host-time correlation.
-#  It is possible to enable both synchronization methods.
-#
-#  RTC_SYNC:
-#  If this option is enabled together with the realtime synchronization,
-#  the RTC runs at realtime speed. This feature is disabled by default.
-#
-#  TIME0:
-#  Specifies the start (boot) time of the virtual machine. Use a time
-#  value as returned by the time(2) system call. If no time0 value is
-#  set or if time0 equal to 1 (special case) or if time0 equal 'local',
-#  the simulation will be started at the current local host time.
-#  If time0 equal to 2 (special case) or if time0 equal 'utc',
-#  the simulation will be started at the current utc time.
-#
-# Syntax:
-#  clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
-#
-# Example:
-#   clock: sync=none,     time0=local       # Now (localtime)
-#   clock: sync=slowdown, time0=315529200   # Tue Jan  1 00:00:00 1980
-#   clock: sync=none,     time0=631148400   # Mon Jan  1 00:00:00 1990
-#   clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999
-#   clock: sync=realtime, time0=946681200   # Sat Jan  1 00:00:00 2000
-#   clock: sync=none,     time0=1           # Now (localtime)
-#   clock: sync=none,     time0=utc         # Now (utc/gmt)
-#
-# Default value are sync=none, time0=local
-#=======================================================================
-#clock: sync=none, time0=local
-
-
-#=======================================================================
 # FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
 # Enables or disables the 0xaa55 signature check on boot floppies
 # Defaults to disabled=0
@@ -613,9 +834,11 @@
 #   debug: messages useful only when debugging the code.  This may
 #          spit out thousands per second.
 #
-# For events of each level, you can choose to exit Bochs ('fatal'), 'report'
-# or 'ignore'. On some guis you have the additional choice 'ask'. A gui dialog
-# appears asks how to proceed.
+# For events of each level, you can choose to exit Bochs ('fatal'), 'ask',
+# 'warn', 'report' or 'ignore'. The choices 'ask' and 'warn' are not supported
+# by all guis, since they should bring up a dialog box. The 'warn' dialog is
+# designed to confirm errors and the 'ask' dialog is usually used for panics
+# and asks the user how to proceed.
 #
 # It is also possible to specify the 'action' to do for each Bochs facility
 # separately (e.g. crash on panics from everything except the cdrom, and only
@@ -646,10 +869,10 @@
 
 #=======================================================================
 # COM1, COM2, COM3, COM4:
-# This defines a serial port (UART type 16550A). In the 'term' you can specify
-# a device to use as com1. This can be a real serial line, or a pty.  To use
-# a pty (under X/Unix), create two windows (xterms, usually).  One of them will
-# run bochs, and the other will act as com1. Find out the tty the com1
+# This defines a serial port (UART type 16550A). In the 'term' mode you can
+# specify a device to use as com1. This can be a real serial line, or a pty.
+# To use a pty (under X/Unix), create two windows (xterms, usually).  One of
+# them will run bochs, and the other will act as com1. Find out the tty the com1
 # window using the `tty' command, and use that as the `dev' parameter.
 # Then do `sleep 1000000' in the com1 window to keep the shell from
 # messing with things, and run bochs in the other window.  Serial I/O to
@@ -660,13 +883,13 @@
 # opens socket/named pipe and waits until a client application connects to it
 # before starting simulation. This mode is useful for remote debugging (e.g.
 # with gdb's "target remote host:port" command or windbg's command line option
-# -k com:pipe,port=\\.\pipe\pipename). Note: 'socket' is a shorthand for
-# 'socket-client' and 'pipe' for 'pipe-client'. Socket modes use simple TCP
-# communication, pipe modes use duplex byte mode pipes.
+# -k com:pipe,port=\\.\pipe\pipename). Socket modes use simple TCP communication,
+#  pipe modes use duplex byte mode pipes.
 # Other serial modes are 'null' (no input/output), 'file' (output to a file
-# specified as the 'dev' parameter), 'raw' (use the real serial port - under
-# construction for win32), 'mouse' (standard serial mouse - requires
-# mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys').
+# specified as the 'dev' parameter and changeable at runtime), 'raw' (use the
+# real serial port - partly implemented on win32), 'mouse' (standard serial
+# mouse - requires mouse option setting 'type=serial', 'type=serial_wheel' or
+# 'type=serial_msys').
 #
 # Examples:
 #   com1: enabled=1, mode=null
@@ -687,7 +910,7 @@
 # defined the emulated printer port sends characters printed by the guest OS
 # into the output file. On some platforms a device filename can be used to
 # send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
-# win32 platforms).
+# win32 platforms). The output file can be changed at runtime.
 #
 # Examples:
 #   parport1: enabled=1, file="parport.out"
@@ -697,28 +920,76 @@
 parport1: enabled=1, file="parport.out"
 
 #=======================================================================
+# SOUND:
+# This defines the lowlevel sound driver(s) for the wave (PCM) input / output
+# and the MIDI output feature and (if necessary) the devices to be used.
+# It can have several of the following properties.
+# All properties are in the format sound: property=value
+#
+# waveoutdrv:
+#      This defines the driver to be used for the waveout feature.
+#      Possible values are 'file' (all wave data sent to file), 'dummy' (no
+#      output) and the platform-dependant drivers 'alsa', 'oss', 'osx', 'sdl'
+#      and 'win'.
+# waveout:
+#      This defines the device to be used for wave output (if necessary) or
+#      the output file for the 'file' driver.
+# waveindrv:
+#      This defines the driver to be used for the wavein feature.
+#      Possible values are 'dummy' (recording silence) and platform-dependent
+#      drivers 'alsa', 'oss', 'sdl' and 'win'.
+# wavein:
+#      This defines the device to be used for wave input (if necessary).
+# midioutdrv:
+#      This defines the driver to be used for the MIDI output feature.
+#      Possible values are 'file' (all MIDI data sent to file), 'dummy' (no
+#      output) and platform-dependent drivers 'alsa', 'oss', 'osx' and 'win'.
+# midiout:
+#      This defines the device to be used for MIDI output (if necessary).
+# driver:
+#      This defines the driver to be used for all sound features with one
+#      property. Possible values are 'default' (platform default) and all
+#      other choices described above. Overriding one or more settings with
+#      the specific driver parameter is possible.
+#
+# Example for different drivers:
+#   sound: waveoutdrv=sdl, waveindrv=alsa, midioutdrv=dummy
+#=======================================================================
+#sound: driver=default, waveout=/dev/dsp. wavein=, midiout=
+
+#=======================================================================
+# SPEAKER:
+# This defines the PC speaker output mode. In the 'sound' mode the beep
+# is generated by the square wave generator which is a part of the
+# lowlevel sound support. In this mode the 'volume' parameter can be used
+# to set the output volume (0 - 15). The 'system' mode is only available on
+# Linux and Windows. On Linux /dev/console is used for output and on Windows
+# the Beep() function. The 'gui' mode forwards the beep to the related
+# gui methods (currently only used by the Carbon gui).
+#=======================================================================
+speaker: enabled=1, mode=system
+
+#=======================================================================
 # SB16:
 # This defines the SB16 sound emulation. It can have several of the
 # following properties.
 # All properties are in the format sb16: property=value
+#
 # enabled:
 #      This optional property controls the presence of the SB16 emulation.
 #      The emulation is turned on unless this property is used and set to 0.
-# midi: The filename is where the midi data is sent. This can be a
-#       device or just a file if you want to record the midi data.
-# midimode:
-#      0=no data
-#      1=output to device (system dependent. midi denotes the device driver)
-#      2=SMF file output, including headers
-#      3=output the midi data stream to the file (no midi headers and no
-#        delta times, just command and data bytes)
-# wave: This is the device/file where wave output is stored
-# wavemode:
-#      0=no data
-#      1=output to device (system dependent. wave denotes the device driver)
-#      2=VOC file output, incl. headers
-#      3=output the raw wave stream to the file
-# log:  The file to write the sb16 emulator messages to.
+# midimode: This parameter specifies what to do with the MIDI output.
+#      0 = no output
+#      1 = output to device specified with the sound option (system dependent)
+#      2 = MIDI or raw data output to file (depends on file name extension)
+#      3 = dual output (mode 1 and 2 at the same time)
+# midifile: This is the file where the midi output is stored (midimode 2 or 3).
+# wavemode: This parameter specifies what to do with the PCM output.
+#      0 = no output
+#      1 = output to device specified with the sound option (system dependent)
+#      2 = VOC, WAV or raw data output to file (depends on file name extension)
+#      3 = dual output (mode 1 and 2 at the same time)
+# wavefile: This is the file where the wave output is stored (wavemode 2 or 3).
 # loglevel:
 #      0=no log
 #      1=resource changes, midi program and bank changes
@@ -726,125 +997,50 @@
 #      3=all errors
 #      4=all errors plus all port accesses
 #      5=all errors and port accesses plus a lot of extra info
+# log:  The file to write the sb16 emulator messages to.
 # dmatimer:
 #      microseconds per second for a DMA cycle.  Make it smaller to fix
 #      non-continuous sound.  750000 is usually a good value.  This needs a
 #      reasonably correct setting for the IPS parameter of the CPU option.
 #
-# Examples for output devices:
-#   sb16: midimode=1, midi="", wavemode=1, wave=""           # win32
-#   sb16: midimode=1, midi=alsa:128:0, wavemode=1, wave=alsa # Linux with ALSA
+# Examples for output modes:
+#   sb16: midimode=2, midifile="output.mid", wavemode=1 # MIDI to file
+#   sb16: midimode=1, wavemode=3, wavefile="output.wav" # wave to file and device
 #=======================================================================
-#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=sb16.log, dmatimer=600000
+#sb16: midimode=1, wavemode=1, loglevel=2, log=sb16.log, dmatimer=600000
 
 #=======================================================================
 # ES1370:
-# This defines the ES1370 sound emulation. The parameter 'enabled' controls the
-# presence of the device. In addition to this, it must be loaded with 'plugin_ctrl'
-# and assigned to a PCI slot. The 'wavedev' parameter is similar to the 'wave'
-# parameter of the SB16 soundcard. The emulation supports recording and playback
-# (except DAC1+DAC2 output at the same time).
+# This defines the ES1370 sound emulation (recording and playback - except
+# DAC1+DAC2 output at the same time). The parameter 'enabled' controls the
+# presence of the device. The wave and MIDI output can be sent to device, file
+# or both using the parameters 'wavemode', 'wavefile', 'midimode' and
+# 'midifile'. See the description of these parameters at the SB16 directive.
 #
 # Examples:
-#   es1370: enabled=1, wavedev=""       # win32
-#   es1370: enabled=1, wavedev=alsa     # Linux with ALSA
+#   es1370: enabled=1, wavemode=1                       # use 'sound' parameters
+#   es1370: enabled=1, wavemode=2, wavefile=output.voc  # send output to file
 #=======================================================================
-#es1370: enabled=1, wavedev=alsa
-
-#=======================================================================
-# KEYBOARD_SERIAL_DELAY:
-# Approximate time in microseconds that it takes one character to
-# be transfered from the keyboard to controller over the serial path.
-# Examples:
-#   keyboard_serial_delay: 200
-#=======================================================================
-keyboard_serial_delay: 250
-
-#=======================================================================
-# KEYBOARD_PASTE_DELAY:
-# Approximate time in microseconds between attempts to paste
-# characters to the keyboard controller. This leaves time for the
-# guest os to deal with the flow of characters.  The ideal setting
-# depends on how your operating system processes characters.  The
-# default of 100000 usec (.1 seconds) was chosen because it works
-# consistently in Windows.
-#
-# If your OS is losing characters during a paste, increase the paste
-# delay until it stops losing characters.
-#
-# Examples:
-#   keyboard_paste_delay: 100000
-#=======================================================================
-keyboard_paste_delay: 100000
-
-#=======================================================================
-# MOUSE:
-# This defines parameters for the emulated mouse type, the initial status
-# of the mouse capture and the runtime method to toggle it.
-#
-#  TYPE:
-#  With the mouse type option you can select the type of mouse to emulate.
-#  The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
-#  on PS/2), 'serial', 'serial_wheel' and 'serial_msys' (one com port requires
-#  setting 'mode=mouse'). To connect a mouse to an USB port, see the 'usb_uhci',
-#  'usb_ohci' or 'usb_xhci' options (requires PCI and USB support).
-#
-#  ENABLED:
-#  The Bochs gui creates mouse "events" unless the 'enabled' option is
-#  set to 0. The hardware emulation itself is not disabled by this.
-#  Unless you have a particular reason for enabling the mouse by default,
-#  it is recommended that you leave it off. You can also toggle the mouse
-#  usage at runtime (RFB, SDL, Win32, wxWidgets and X11 - see below).
-#
-#  TOGGLE:
-#  The default method to toggle the mouse capture at runtime is to press the
-#  CTRL key and the middle mouse button ('ctrl+mbutton'). This option allows
-#  to change the method to 'ctrl+f10' (like DOSBox), 'ctrl+alt' (like QEMU)
-#  or 'f12' (replaces win32 'legacyF12' option).
-#
-# Examples:
-#   mouse: enabled=1
-#   mouse: type=imps2, enabled=1
-#   mouse: type=serial, enabled=1
-#   mouse: enabled=0, toggle=ctrl+f10
-#=======================================================================
-mouse: enabled=0
-
-#=======================================================================
-# private_colormap: Request that the GUI create and use it's own
-#                   non-shared colormap.  This colormap will be used
-#                   when in the bochs window.  If not enabled, a
-#                   shared colormap scheme may be used.  Not implemented
-#                   on all GUI's.
-#
-# Examples:
-#   private_colormap: enabled=1
-#   private_colormap: enabled=0
-#=======================================================================
-private_colormap: enabled=0
-
-#=======================================================================
-# fullscreen: ONLY IMPLEMENTED ON AMIGA
-#             Request that Bochs occupy the entire screen instead of a
-#             window.
-#
-# Examples:
-#   fullscreen: enabled=0
-#   fullscreen: enabled=1
-#=======================================================================
-#fullscreen: enabled=0
-#screenmode: name="sample"
+#es1370: enabled=1, wavemode=1
 
 #=======================================================================
 # ne2k: NE2000 compatible ethernet adapter
 #
 # Format:
-# ne2k: enabled=1, ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE,
-#       ethdev=DEVICE, script=SCRIPT, bootrom=BOOTROM
+# ne2k: card=CARD, enabled=1, type=TYPE, ioaddr=IOADDR, irq=IRQ, mac=MACADDR,
+#       ethmod=MODULE, ethdev=DEVICE, script=SCRIPT, bootrom=BOOTROM
+#
+# CARD: This is the zero-based card number to configure with this ne2k config
+# line. Up to 4 devices are supported now (0...3). If not specified, the
+# following parameters apply to card #0.
+#
+# TYPE: This is the card type to emulate ("isa" or "pci"). If not specified,
+# card #0 defaults to "pci" if assigned to a pci slot. For the additional cards
+# the type parameter should be set up.
 #
 # IOADDR, IRQ: You probably won't need to change ioaddr and irq, unless there
 # are IRQ conflicts. These arguments are ignored when assign the ne2k to a
-# PCI slot.
+# PCI slot or set the type to 'pci'.
 #
 # MAC: The MAC address MUST NOT match the address of any machine on the net.
 # Also, the first byte must be an even number (bit 0 set means a multicast
@@ -857,6 +1053,8 @@
 # Windows machines, you must run niclist to get the name of the ethdev.
 # Niclist source code is in misc/niclist.c and it is included in Windows
 # binary releases.
+# The 'socket' module uses this parameter to specify the UDP port for
+# receiving packets and (optional) the host to connect.
 #
 # SCRIPT: The script value is optional, and is the name of a script that
 # is executed after bochs initialize the network interface. You can use
@@ -864,6 +1062,10 @@
 # This is mainly useful for the tun/tap devices that only exist during
 # Bochs execution. The network interface name is supplied to the script
 # as first parameter.
+# The 'slirp' module uses this parameter to specify a config file for
+# setting up an alternative IP configuration or additional features.
+# The 'vnet' module also uses this parameter to specify a config file similar
+# to slirp, but with only a few settings.
 #
 # BOOTROM: The bootrom value is optional, and is the name of the ROM image
 # to load. Note that this feature is only implemented for the PCI version of
@@ -873,11 +1075,14 @@
 # you can use the following 'ethmod's to simulate a virtual network.
 #   null: All packets are discarded, but logged to a few files.
 #   vde:  Virtual Distributed Ethernet
-#   vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
+#   vnet: ARP, ICMP-echo(ping), DHCP, DNS, FTP and TFTP are simulated.
 #         The virtual host uses 192.168.10.1.
-#         DHCP assigns 192.168.10.2 to the guest.
-#         TFTP uses the 'ethdev' value for the root directory and doesn't
-#         overwrite files.
+#         DHCP assigns 192.168.10.15 to the guest.
+#         FTP/TFTP using the 'ethdev' value for the root directory.
+#         TFTP doesn't overwrite files, DNS for server and client only.
+# socket: Connect up to 6 Bochs instances with external program 'bxhub'
+#         (simulating an ethernet hub). It provides the same services as the
+#         'vnet' module and assigns IP addresses like 'slirp' (10.0.2.x).
 #
 #=======================================================================
 # ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=fbsd, ethdev=en0 #macosx
@@ -889,111 +1094,62 @@
 # ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
 # ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
 # ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
-# ne2k: mac=b0:c4:20:00:00:01, ethmod=slirp, script=/usr/local/bin/slirp, bootrom=ne2k_pci.rom
+# ne2k: mac=b0:c4:20:00:00:01, ethmod=socket, ethdev=40000 # use localhost
+# ne2k: mac=b0:c4:20:00:00:01, ethmod=socket, ethdev=mymachine:40000
+# ne2k: mac=b0:c4:20:00:00:01, ethmod=slirp, script=slirp.conf, bootrom=ne2k_pci.rom
 
 #=======================================================================
-# pnic: Bochs/Etherboot pseudo-NIC
+# pcipnic: Bochs/Etherboot pseudo-NIC
 #
 # Format:
-# pnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT,
-#       bootrom=BOOTROM
+# pcipnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT,
+#          bootrom=BOOTROM
 #
 # The pseudo-NIC accepts the same syntax (for mac, ethmod, ethdev, script,
 # bootrom) and supports the same networking modules as the NE2000 adapter.
-# In addition to this, it must be loaded with 'plugin_ctrl' and assigned
-# to a PCI slot.
 #=======================================================================
-#pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
+#pcipnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
 
 #=======================================================================
 # e1000: Intel(R) 82540EM Gigabit Ethernet adapter
 #
 # Format:
-# e1000: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#        bootrom=BOOTROM
+# e1000: card=CARD, enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE,
+#        script=SCRIPT, bootrom=BOOTROM
 #
-# The E1000 accepts the same syntax (for mac, ethmod, ethdev, script, bootrom)
-# and supports the same networking modules as the NE2000 adapter. In addition
-# to this, it must be loaded with 'plugin_ctrl' and assigned to a PCI slot.
+# The E1000 accepts the same syntax (for card, mac, ethmod, ethdev, script,
+# bootrom) and supports the same networking modules as the NE2000 adapter.
+# It also supports up to 4 devices selected with the card parameter.
 #=======================================================================
-#e1000: enabled=1, mac=52:54:00:12:34:56, ethmod=slirp, script=/usr/local/bin/slirp
+#e1000: enabled=1, mac=52:54:00:12:34:56, ethmod=slirp, script=slirp.conf
 e1000: enabled=1, mac=52:54:00:12:34:56, ethmod=tuntap, ethdev=/dev/net/tun:tap0
 
 #=======================================================================
-# KEYBOARD_MAPPING:
-# This enables a remap of a physical localized keyboard to a
-# virtualized us keyboard, as the PC architecture expects.
-# If enabled, the keymap file must be specified.
-#
-# Examples:
-#   keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
-#=======================================================================
-keyboard_mapping: enabled=0, map=
-
-#=======================================================================
-# KEYBOARD_TYPE:
-# Type of keyboard return by a "identify keyboard" command to the
-# keyboard controler. It must be one of "xt", "at" or "mf".
-# Defaults to "mf". It should be ok for almost everybody. A known
-# exception is french macs, that do have a "at"-like keyboard.
-#
-# Examples:
-#   keyboard_type: mf
-#=======================================================================
-#keyboard_type: mf
-
-#=======================================================================
-# USER_SHORTCUT:
-# This defines the keyboard shortcut to be sent when you press the "user"
-# button in the headerbar. The shortcut string is a combination of maximum
-# 3 key names (listed below) separated with a '-' character.
-# Valid key names:
-# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
-# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
-# "plus", "right", "shift", "space", "tab", "up", "win", "print" and "power".
-#
-# Example:
-#   user_shortcut: keys=ctrl-alt-del
-#=======================================================================
-#user_shortcut: keys=ctrl-alt-del
-
-#=======================================================================
-# PCI:
-# This option controls the presence of a PCI chipset in Bochs. Currently it only
-# supports the i440FX chipset. You can also specify the devices connected to
-# PCI slots. Up to 5 slots are available. These devices are currently supported:
-# cirrus, e1000, es1370, ne2k, pcivga, pcidev, pcipnic, usb_ohci and usb_xhci.
-#
-# Example:
-#   pci: enabled=1, chipset=i440fx, slot1=pcivga, slot2=ne2k
-#=======================================================================
-pci: enabled=1, chipset=i440fx, slot1=e1000
-
-#=======================================================================
 # USB_UHCI:
 # This option controls the presence of the USB root hub which is a part
 # of the i440FX PCI chipset. With the portX parameter you can connect devices
-# to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom'
-# 'hub' and 'printer'). NOTE: UHCI must be loaded with 'plugin_ctrl'.
-#
-# The optionsX parameter can be used to assign specific options to the device
-# connected to the corresponding USB port. Currently this feature is only used
-# to set the speed reported by device and by the 'disk' device to specify
-# an alternative redolog file of some image modes.
+# to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'keyboard',
+# 'disk', 'cdrom', 'floppy', 'hub' and 'printer').
 #
 # If you connect the mouse or tablet to one of the ports, Bochs forwards the
 # mouse movement data to the USB device instead of the selected mouse type.
 # When connecting the keypad to one of the ports, Bochs forwards the input of
-# the numeric keypad to the USB device instead of the PS/2 keyboard.
+# the numeric keypad to the USB device instead of the PS/2 keyboard. If the
+# keyboard is selected, all key events are sent to the USB device.
 #
-# To connect a 'flat' mode image as an USB hardisk you can use the 'disk' device
+# To connect a 'flat' mode image as a USB hardisk you can use the 'disk' device
 # with the path to the image separated with a colon. To use other disk image modes
 # similar to ATA disks the syntax 'disk:mode:filename' must be used (see below).
 #
-# To emulate an USB cdrom you can use the 'cdrom' device name and the path to
+# To emulate a USB cdrom you can use the 'cdrom' device name and the path to
 # an ISO image or raw device name also separated with a colon. An option to
 # insert/eject media is available in the runtime configuration.
 #
+# To emulate a USB floppy you can use the 'floppy' device with the path to the
+# image separated with a colon. To use the VVFAT image mode similar to the
+# legacy floppy the syntax 'floppy:vvfat:directory' must be used (see below).
+# An option to insert/eject media is available in the runtime configuration.
+#
 # The device name 'hub' connects an external hub with max. 8 ports (default: 4)
 # to the root hub. To specify the number of ports you have to add the value
 # separated with a colon. Connecting devices to the external hub ports is only
@@ -1001,45 +1157,77 @@
 #
 # The device 'printer' emulates the HP Deskjet 920C printer. The PCL data is
 # sent to a file specified in bochsrc.txt. The current code appends the PCL
-# code to the file if the file already existed. It would probably be nice to
-# overwrite the file instead, asking user first.
+# code to the file if the file already existed. The output file can be
+# changed at runtime.
+#
+# The optionsX parameter can be used to assign specific options to the device
+# connected to the corresponding USB port. Currently this feature is used to
+# set the speed reported by device ('low', 'full', 'high' or 'super'). The
+# available speed choices depend on both HC and device. The option 'debug' turns
+# on debug output for the device at connection time.
+# For the USB 'disk' device the optionsX parameter can be used to specify an
+# alternative redolog file (journal) of some image modes. For 'vvfat' mode USB
+# disks the optionsX parameter can be used to specify the disk size (range
+# 128M ... 128G). If the size is not specified, it defaults to 504M.
+# For the USB 'floppy' device the optionsX parameter can be used to specify an
+# alternative device ID to be reported. Currently only the model "teac" is
+# supported (can fix hw detection in some guest OS). The USB floppy also
+# accepts the parameter "write_protected" with valid values 0 and 1 to select
+# the access mode (default is 0).
 #=======================================================================
 #usb_uhci: enabled=1
 #usb_uhci: enabled=1, port1=mouse, port2=disk:usbstick.img
 #usb_uhci: enabled=1, port1=hub:7, port2=disk:growing:usbdisk.img
-#usb_uhci: enabled=1, port2=disk:undoable:usbdisk.img, options1=journal:redo.log
+#usb_uhci: enabled=1, port2=disk:undoable:usbdisk.img, options2=journal:redo.log
+#usb_uhci: enabled=1, port2=disk:usbdisk2.img, options2=sect_size:1024
+#usb_uhci: enabled=1, port2=disk:vvfat:vvfat, options2="debug,speed:full"
 #usb_uhci: enabled=1, port1=printer:printdata.bin, port2=cdrom:image.iso
+#usb_uhci: enabled=1, port2=floppy:vvfat:diskette, options2="model:teac"
 
 #=======================================================================
 # USB_OHCI:
 # This option controls the presence of the USB OHCI host controller with a
-# 2-port hub. The portX option accepts the same device types with the same
-# syntax as the UHCI controller (see above). The OHCI HC must be assigned to
-# a PCI slot and loaded with 'plugin_ctrl'.
+# 2-port hub. The portX parameter accepts the same device types with the same
+# syntax as the UHCI controller (see above). The optionsX parameter is also
+# available on OHCI.
 #=======================================================================
 #usb_ohci: enabled=1
 #usb_ohci: enabled=1, port1=printer:usbprinter.bin
 
 #=======================================================================
+# USB_EHCI:
+# This option controls the presence of the USB EHCI host controller with a
+# 6-port hub. The portX parameter accepts the same device types with the
+# same syntax as the UHCI controller (see above). The optionsX parameter is
+# also available on EHCI.
+#=======================================================================
+#usb_ehci: enabled=1
+
+#=======================================================================
 # USB_XHCI:
-# This option controls the presence of the experimental USB xHCI host controller
-# with a 4-port hub. The portX option accepts the same device types with the
-# same syntax as the UHCI controller (see above). The xHCI HC must be assigned
-# to a PCI slot and loaded with 'plugin_ctrl'.
+# This option controls the presence of the USB xHCI host controller with a
+# 4-port hub. The portX parameter accepts the same device types with the
+# same syntax as the UHCI controller (see above). The optionsX parameter is
+# also available on xHCI. NOTE: port 1 and 2 are USB3 and only support
+# super-speed devices, but port 3 and 4 are USB2 and support speed settings
+# low, full and high.
 #=======================================================================
 #usb_xhci: enabled=1
 
 #=======================================================================
-# CMOSIMAGE:
-# This defines image file that can be loaded into the CMOS RAM at startup.
-# The rtc_init parameter controls whether initialize the RTC with values stored
-# in the image. By default the time0 argument given to the clock option is used.
-# With 'rtc_init=image' the image is the source for the initial time.
-#
-# Example:
-#   cmosimage: file=cmos.img, rtc_init=image
+# PCIDEV:
+# PCI host device mapping
+# WARNING: This Bochs feature is not maintained yet and may fail.
 #=======================================================================
-#cmosimage: file=cmos.img, rtc_init=time0
+#pcidev: vendor=0x1234, device=0x5678
+
+#=======================================================================
+# GDBSTUB:
+# Enable GDB stub. See user documentation for details.
+# Default value is enabled=0.
+# WARNING: This Bochs feature is not maintained yet and may fail.
+#=======================================================================
+#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
 
 #=======================================================================
 # MAGIC_BREAK:
@@ -1050,10 +1238,23 @@
 # Example:
 #   magic_break: enabled=1
 #=======================================================================
-#magic_break: enabled=1
 magic_break: enabled=1
 
 #=======================================================================
+# DEBUG_SYMBOLS:
+# This loads symbols from the specified file for use in Bochs' internal
+# debugger. Symbols are loaded into global context. This is equivalent to
+# issuing ldsym debugger command at start up.
+#
+# Example:
+#   debug_symbols: file="kernel.sym"
+#   debug_symbols: file="kernel.sym", offset=0x80000000
+#=======================================================================
+#debug_symbols: file="kernel.sym"
+
+#print_timestamps: enabled=1
+
+#=======================================================================
 # PORT_E9_HACK:
 # The 0xE9 port doesn't exists in normal ISA architecture. However, we
 # define a convention here, to display on the console of the system running
@@ -1069,43 +1270,16 @@
 port_e9_hack: enabled=1
 
 #=======================================================================
-# DEBUG_SYMBOLS:
-# This loads symbols from the specified file for use in Bochs' internal
-# debugger. Symbols are loaded into global context. This is equivalent to
-# issuing ldsym debugger command at start up.
+# fullscreen: ONLY IMPLEMENTED ON AMIGA
+#             Request that Bochs occupy the entire screen instead of a
+#             window.
 #
-# Example:
-#   debug_symbols: file="kernel.sym"
-#   debug_symbols: file="kernel.sym", offset=0x80000000
+# Examples:
+#   fullscreen: enabled=0
+#   fullscreen: enabled=1
 #=======================================================================
-#debug_symbols: file="kernel.sym"
-
-#=======================================================================
-# other stuff
-#=======================================================================
-#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
-#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
-#print_timestamps: enabled=1
-
-#-------------------------
-# PCI host device mapping
-#-------------------------
-#pcidev: vendor=0x1234, device=0x5678
-
-#=======================================================================
-# GDBSTUB:
-# Enable GDB stub. See user documentation for details.
-# Default value is enabled=0.
-#=======================================================================
-#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
-
-#=======================================================================
-# USER_PLUGIN:
-# Load user-defined plugin. This option is available only if Bochs is
-# compiled with plugin support. Maximum 8 different plugins are supported.
-# See the example in the Bochs sources how to write a plugin device.
-#=======================================================================
-#user_plugin: name=testdev
+#fullscreen: enabled=0
+#screenmode: name="sample"
 
 #=======================================================================
 # for Macintosh, use the style of pathnames in the following
