4373 lines
210 KiB
Plaintext
4373 lines
210 KiB
Plaintext
-------------------------------------------------------------------------
|
||
Changes in 2.7 (August 1, 2021):
|
||
|
||
Brief summary :
|
||
- Bugfixes for CPU emulation correctness (CPUID/VMX/SVM fixes to support
|
||
Windows Hyper-V as guest in Bochs)
|
||
- Improvements for the plugin handling to simplify Bochs extensions
|
||
- Added "multiple NICs" support to the NE2000 and E1000 devices
|
||
- Added experimental FTP service for networking modules 'vnet' and 'socket'
|
||
- Fixes and improvements for all supported Voodoo graphics adapters
|
||
- Added USB keyboard emulation with most of the keys supported
|
||
- GUI "cmdmode": create a headerbar event with key combo starting with F7
|
||
- LGPL'd VGABIOS updated to version 0.8a (new VGABIOS for Voodoo Banshee)
|
||
|
||
Detailed change log :
|
||
|
||
- General
|
||
- Improved plugins handling: all available plugins in path are detected at
|
||
startup (including externally developed ones). These types are supported in
|
||
Bochs configuration: config interfaces, display libraries, VGA compatile
|
||
adapters, optional PCI/ISA devices, pluggable USB devices, disk image,
|
||
networking and sound driver modules.
|
||
- Save/Restore bugfixes
|
||
- Removed legacy "load32bitOShack" feature.
|
||
- Removed "svga" display library designed for the obsolete Linux SVGALib.
|
||
|
||
- Configure and compile
|
||
- Added example shortcut script for cross compiling on Linux for Windows.
|
||
- Visual Studio workspace files upgraded to VS2019 format.
|
||
|
||
- Config interface
|
||
- The config interfaces 'textconfig' and 'win32config' are now plugins.
|
||
- Switch config interface to 'textconfig' at runtime in case the gui doesn't
|
||
support dialogs (rfb and vncsrv on Windows).
|
||
|
||
- CPU/CPUDB
|
||
- Bugfixes for CPU emulation correctness (CPUID/VMX/SVM fixes to support Windows Hyper-V as guest in Bochs)
|
||
! CPUID: Added TigerLake CPU definition (features CET and CLWB support)
|
||
|
||
- Memory
|
||
- Improved BIOS write support by implementing Intel(tm) flash chip emulation.
|
||
|
||
- Bochs Debugger and Instrumentation
|
||
- Switching to new internal instruction disassembler implementation based on Bochs internal instruction decoder.
|
||
New disassembler supporting natively all instruction extensions that Bochs is able to emulate, including AVX512*.
|
||
Old disassembler module is outdate and was removed from the source tree.
|
||
- Add more symbol lookups to disasm methods
|
||
|
||
- I/O Devices
|
||
- Networking
|
||
- Added "multiple NICs" support to the NE2000 and E1000 devices. Up to 4 devices
|
||
per model are supported. Use the zero-based "card" parameter to specify device.
|
||
- Added experimental FTP service for networking modules 'vnet' and 'socket'.
|
||
- Fixes for iPXE network boot support (modules 'slirp', 'socket', 'vnet').
|
||
- Added config file support for the 'vnet' module (similar to 'slirp').
|
||
- Added log file support to 'bxhub' utility (networking module 'socket').
|
||
- Packet logging in text format for the 'slirp' and 'vnet' modules controlled
|
||
by runtime option ("pktlog" option in config).
|
||
- VGA
|
||
- Voodoo (all models): Now using CLUT for gamma correction in 16 bpp modes.
|
||
- Voodoo2: Added most of the bitblt capabilities.
|
||
- Voodoo Banshee: Added "Polygon Fill" command and 2D colorkey support.
|
||
- Removed lfb_enabled switch from Bochs VBE code. Now banked and LFB writes
|
||
to VRAM are always valid. Fixes GRUB bootloader menu when using Bochs VBE.
|
||
- DDC: Added "ddc" parameter to the "vga" option to make it possible
|
||
either to disable the DDC feature or to read the monitor EDID from file.
|
||
- PCI (general)
|
||
- Added config parameter to set up advanced PCI options. Now it is possible
|
||
to disable ACPI or HPET in case the i440FX chipset is selected. For the
|
||
i440BX chipset it is possible to disable the incomplete AGP subsystem.
|
||
- USB
|
||
- Added keyboard emulation with most of the keys supported.
|
||
- Added support for USB packet logging in PCAP format.
|
||
- Changed handling of device options in the USB port configuration
|
||
(see bochsrc sample).
|
||
- Sound
|
||
- Added PC speaker volume control for the lowlevel sound support.
|
||
|
||
- GUI and display libraries
|
||
- Added support for calling a headerbar handler after pressing F7 (enabled
|
||
with "cmdmode" option / present in sdl, sdl2, win32 and x).
|
||
- Added support for saving text mode snapshot in BMP format.
|
||
- Write marker to log file by pressing "m" button (guis with "cmdmode" on).
|
||
- X11 keymaps: added new one for Swiss-German and improved Italian map.
|
||
- RFB / vncsrv: VGA features h/v pel panning and split screen now supported.
|
||
- RFB: added support for the pixel format RGB332.
|
||
- added display library option for disabling the Bochs gui console to use
|
||
the default system console instead (rfb, sdl, sdl2, vncsrv, x).
|
||
- win32: added display library option "autoscale" to scale a small
|
||
simulation window by factor 2, 4 or 8 depending in desktop window size.
|
||
- wx: fixed status bar handling to avoid segfaults and deadlocks.
|
||
|
||
- VGABIOS
|
||
- LGPL'd VGABIOS updated to version 0.8a.
|
||
- Added initial version of the VGABIOS for Voodoo Banshee adapters.
|
||
- Added 'write character' support for non-VGA 8-bpp modes (Bochs VBE /
|
||
Cirrus / Banshee). Cirrus code uses bitblt engine.
|
||
- Fixed text output and scrolling in VGA graphics modes.
|
||
- Some small fixes in the VBE code and several code optimizations.
|
||
|
||
- Misc
|
||
- Added support for converting VDI images to another format with bximage.
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.6.11 (January 5, 2020):
|
||
|
||
- General
|
||
- Added 64-bit support to the NSIS installer script
|
||
- Several fixes in the build system based on Debian patches
|
||
|
||
- CPU / CPUDB
|
||
- Bugfixes for CPU emulation correctness
|
||
- Many critical bugfixes for Protection Keys, AVX512*, VMX/SVM, SHA, GFNI emulation
|
||
! Implemented CET (Control Flow Enforcement Technology) emulation according to Intel SDM rev071
|
||
|
||
- I/O Devices
|
||
- Added missing Cirrus SVGA bitblt feature "transparent color compare"
|
||
- Some fixes in HPET emulation (patch by Oleg)
|
||
- Fixed disk image lock mechanism in the USB MSD case
|
||
|
||
- BIOS / VGABIOS
|
||
- LGPL'd VGABIOS updated to version 0.7b (Fixed VESA extension 'read EDID'
|
||
for Bochs VBE and Cirrus)
|
||
- Updated SeaBIOS ROM image to current version 1.13.0
|
||
- Added SeaVGABIOS ROM image for the Cirrus adapter
|
||
- Bochs BIOS built to work with CPU level 5 again
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.6.10 (December 1, 2019):
|
||
|
||
Brief summary :
|
||
- CPU: Bugfixes for CPU emulation correctness (critical bugfixes for PCID, ADCX/ADOX, MOVBE, AVX/AVX-512 and VMX emulation)
|
||
- CPU: implemented AVX-512 VBMI2/VNNI/BITALG, VAES, VPCLMULQDQ / GFNI instructions emulation
|
||
- VMX: Implement EPT-Based Sub-Page Protection
|
||
- CPUID: Added new CPU models Skylake-X, Cannonlake and Icelake-U
|
||
- CPUID: Implemented side-channel attack prevention reporting and corresponding MSR registers, enabled for Icelake-U
|
||
- Added basic support for the i440BX PCI/AGP chipset.
|
||
- Added basic Voodoo Banshee / Voodoo3 emulation support.
|
||
- Added basic DDC support for the VGA-compatible adapters.
|
||
- Implemented HPET emulation (ported from Qemu).
|
||
|
||
Detailed change log :
|
||
|
||
- General
|
||
- Disabled legacy "load32bitOShack" feature.
|
||
- Improved NSIS win32 installer script.
|
||
|
||
- CPU / CPUDB
|
||
- Significant speedup to simulation of milti-threaded guest (patch by Luigu.B)
|
||
- Bugfixes for CPU emulation correctness (critical bugfixes for PCID, ADCX/ADOX, MOVBE, AVX/AVX-512 and VMX emulation)
|
||
! x87: implemented FOPCODE and FDP deprecation features
|
||
! AVX-512: implemented AVX-512 VBMI2/VNNI/BITALG instructions
|
||
! Crypto: Implemented VAES instructions / VPCLMULQDQ / GFNI instruction
|
||
! VMX: Implement EPT-Based Sub-Page Protection
|
||
! CPUID: Added Skylake-X CPU definition (features AVX-512 support)
|
||
! CPUID: Added Cannonlake CPU definition (features more AVX-512 levels, UMIP, SHA, PKU support)
|
||
! CPUID: Added Icelake-U CPU definition (features more AVX-512 levels, UMIP, SHA, GFNI, VAES, PKU support)
|
||
! CPUID: Implemented SCA (Side-Channel-Attack) Prevention reporting and corresponding MSR registers, enabled for Icelake-U CPU definition
|
||
|
||
- Bochs Debugger and Instrumentation
|
||
- Added support for conditional breakpoints and conditional step/continue to Bochs debugger
|
||
- Support 'info tab' command for 64-bit mode as well
|
||
- Bochs debugger improvements patch by Doug Gale
|
||
- better handling of 64-bit addresses in the debugger, added support for 64 bit symbols,
|
||
added more symbol lookups.
|
||
|
||
- I/O Devices
|
||
- PCI
|
||
- Added basic support for the i440BX PCI/AGP chipset.
|
||
- Timers
|
||
- Implemented HPET emulation (ported from Qemu).
|
||
- Hard drive / HD image
|
||
- Added support for unlocking disk images (locks leftover from previous
|
||
Bochs session) with the new command line argument '-unlock'.
|
||
- Added ATAPI command "get event status notification".
|
||
- Bugfix: undoable/volatile mode images now inherit the base image geometry
|
||
if present.
|
||
- Voodoo
|
||
- Voodoo1 emulation speedup with combined PCI / memory FIFO implementation
|
||
and multi-threading support (separate FIFO thread).
|
||
- Voodoo2 model now working after some fixes and implementation of the
|
||
CMDFIFO (using FIFO thread) and one of the bitBLT functions.
|
||
- Added Voodoo Banshee / Voodoo3 emulation support (still under construction,
|
||
but basically usable). The AGP models are available if chipset is i440BX.
|
||
- Display (general)
|
||
- Added basic DDC support for Bochs VBE, Cirrus and Voodoo Banshee / Voodoo3
|
||
adapters (reporting plug&play monitor "Bochs Screen").
|
||
- USB
|
||
- Now creating separate plugins for each USB device implementation.
|
||
- Added sector size option for USB disks (size 1024 and 4096 supported).
|
||
- Networking
|
||
- bxhub: Added DNS service support for the server "vnet" and connected
|
||
clients.
|
||
- Sound
|
||
- PC speaker now can play digitized sound by driving speaker gate.
|
||
|
||
- GUI and display libraries
|
||
- Added new win32 gui option "traphotkeys" for fullscreen mode.
|
||
- wx: Fixes and updates for wxWidgets 3.0 support.
|
||
- Removed legacy guis "macos" and "svga" from display library auto-
|
||
detection (still available using --with-XXX option).
|
||
|
||
- LGPL'd VGABIOS updated from CVS (VESA extension 'read EDID' for Bochs VBE
|
||
and Cirrus added).
|
||
|
||
- Misc
|
||
- Added sector size option to bximage for creating flat, sparse and growing
|
||
mode images with big sectors (size 1024 and 4096 currently supported).
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.6.9 (April 9, 2017):
|
||
|
||
Brief summary :
|
||
- CPU: implemented new instructions and x86 architecture extensions.
|
||
- Bugfixes for CPU emulation correctness.
|
||
- Added Android host platform support.
|
||
- Added USB EHCI device emulation support.
|
||
- Added USB floppy (UFI/CBI) support.
|
||
- Added ethernet module 'socket', designed to interconnect Bochs instances.
|
||
- Show textconfig at runtime in the Bochs VGA window (gui console).
|
||
|
||
Detailed change log :
|
||
|
||
- General
|
||
- Added new log action "warn", designed to show a message box on error events.
|
||
- Show message box before exit if log action is set to "fatal".
|
||
- Added macro BX_FATAL for all cases when continuing is not recommended, since
|
||
it can cause an application crash or incorrect simulation behaviour.
|
||
|
||
- Configure and compile
|
||
- Added Android host platform support.
|
||
- Configure script now prints warnings for features not maintained yet.
|
||
|
||
- GUI and display libraries
|
||
- Show the runtime configuration in the Bochs VGA window (gui console) instead
|
||
of console / xterm (rfb, sdl, sdl2, vncsrv and X11 guis).
|
||
- SDL2: Added get/set clipboard text support.
|
||
|
||
- CPU / CPUDB
|
||
- Bugfixes for CPU emulation correctness (critical bugfix for x86-64 and AVX opcodes emulation,
|
||
fixed assertion failures in proc_ctrl.cc)
|
||
! VMX: Implemented Page Modification Logging (PML)
|
||
! VMX: Implemented TSC Scaling Extension
|
||
! Paging: Implemented Protection Keys
|
||
! Implemented UMIP: User Mode Instruction Prevention (don't allow execution of SLDT/SIDT/SGDT/STR/SMSW with CPL>0)
|
||
! Implemented RDPID instruction
|
||
! Implemented VPOPCNTD/VPOPCNTQ AVX512 instructions
|
||
! Implemented XSAVES/XRSTORS instructions and IA32_XSS MSR
|
||
! Implemented Translation Cache Extensions (TCE) for AMD CPUID and EFER.TCE control
|
||
! Implemented CLZERO instruction (AMD), enabled in Ryzen CPU model
|
||
! Implemented MONITORX/MWAITX instructions (AMD), enabled in Ryzen CPU model
|
||
! CPUDB: Added AMD Ryzen configuration to CPUDB
|
||
|
||
- I/O Devices
|
||
- Busmouse
|
||
- Added standard bus mouse support in addition to the existing InPort
|
||
emulation code. (patch by Ben Lunt).
|
||
- Hard drive
|
||
- Implemented lock mechanism for hard disk images. An image that is opened
|
||
in r/w mode cannot be used multiple times (e.g. by another Bochs session).
|
||
- Several fixes in some disk image modes.
|
||
- Serial / Parallel ports
|
||
- Added support for changing output file at runtime.
|
||
- Networking
|
||
- Added ethernet module 'socket', designed to interconnect Bochs instances
|
||
with external program 'bxhub' (simulating a multi-port ethernet hub).
|
||
- Now creating separate plugins for each network driver implementation
|
||
(slirp, win32, etc.).
|
||
- Sound
|
||
- Added PCM output data resampling in a separate thread. The resampler
|
||
requires either libsamplerate or the SoX resampler library installed.
|
||
- SDL: Added audio capture support (requires library version >= 2.0.5).
|
||
- Now creating separate plugins for each sound driver (alsa, win, etc.).
|
||
- USB
|
||
- Added USB EHCI device emulation support (EHCI core ported from Qemu).
|
||
- Added USB floppy (UFI/CBI) support (patch by Ben Lunt).
|
||
- Added asynchronus USB packet completion support (needed by disk/cdrom
|
||
seek and read/write latency emulation).
|
||
- Implemented USB remote wakeup mechanism.
|
||
- Fixed NAK response handling in all USB HCs.
|
||
- USB printer: added support for changing output file at runtime.
|
||
- Added common USB device option "debug" to turn on BX_DEBUG reporting at
|
||
connection time.
|
||
|
||
- ROM BIOS
|
||
- Implemented Bochs BIOS option "fastboot" for skipping the boot menu delay.
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.6.8 (May 3, 2015):
|
||
|
||
- CPU / CPUDB
|
||
- Bugfixes for CPU emulation correctness (critical bugfix for x86-64 emulation)
|
||
- Memory type calculation support for Bochs debugger and instrumentation,
|
||
to enable configure with --enable-memtype option.
|
||
- CPUDB: Added Pentium (P54C) configuration to CPUDB
|
||
- CPUDB: Added Broadwell ULT configuration to CPUDB
|
||
- Updated definition of instrumentation callbacks, see description in
|
||
instrumentation.txt / Fixed instrumentation examples
|
||
|
||
- Configure and compile
|
||
- Configure option --enable-fast-function-calls now also used for MSVC nmake.
|
||
- Some configure fixes for the GTK debugger support.
|
||
|
||
- GUI and display libraries
|
||
- The VGA update timer mode now can be selected with the 'vga' option.
|
||
- Release all pressed keys when the simwindow gets back the keyboard focus.
|
||
- Win32 gui: Captured mouse cursor now really trapped in window.
|
||
- SDL2: Implemented yes/no dialog (e.g. for VVFAT commit).
|
||
- Some fixes for wxWidgets 3.0 and unicode version compatiblity.
|
||
- Full save/restore support for enhanced gui debugger settings (window+font).
|
||
- Added debugger support for the term gui using a pseudo-terminal.
|
||
|
||
- I/O Devices
|
||
- Hard drive
|
||
- Added Oracle(tm) VM VirtualBox image support (VDI version 1.1)
|
||
- Re-enable "bulk I/O" repeat speedups extension.
|
||
- Some lowlevel cdrom code fixes for Windows and Linux.
|
||
- Sound
|
||
- SB16: Fixed OPL chip detection by implementing ISA bus delay.
|
||
- SB16: Ported OPL3 emulation from DOSBox and partly removed legacy code.
|
||
- ES1370: Added MIDI UART output support.
|
||
- ES1370: Fixed critical bug that made Win9x drivers crash.
|
||
- Major rewrite of the lowlevel sound code.
|
||
- Added mixer thread support (required for all modules except 'sdl').
|
||
- New mixer and SDL mixer are polling data from the PCM output buffers,
|
||
the PC speaker beep generator and the OPL3 FM generator.
|
||
- PCM format conversion to 16 bit signed little endian.
|
||
- Added sound 'file' module for VOC, WAV, MID and raw data output
|
||
and added dual output support (device+file) in midi/wave mode 3.
|
||
- Added capability to set up the sound driver per service.
|
||
- Floppy
|
||
- Fixed "Read ID" command for single-sided media (patch by Ben Lunt).
|
||
|
||
- ROM BIOS
|
||
- Fixed keyboard scancode processing after keyboard intercept.
|
||
- Fixed rombios32 code to avoid incorrect ACPI table detection.
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.6.7 (November 2, 2014):
|
||
|
||
- CPU / CPUDB
|
||
- Implemented AVX-512BW/AVX-512DQ/AVX-512VL extensions emulation.
|
||
- implemented AVX512-IFMA532 instructions emulation.
|
||
- implemented AVX512-VBMI instructions emulation.
|
||
- Bugfixes for CPU emulation correctness (critical fixes for AVX-512, CMPXCHG16B and VMX)
|
||
- Fixed Bochs segmentation fault crash with Handlers Chaining Speedups enabled when
|
||
compiling with gcc, especially with low optimization levels.
|
||
- Reverted removal of reporting Architectural Perfmon support in pre-defined CPUID modules.
|
||
Windows 8 and Windows 10 require Performance Monitoring to be reported to boot.
|
||
To workaround possible Windows 7 64-bit installation issues: use bx_generic CPUID module,
|
||
which doesn't report Performance Monitoring in CPUID.
|
||
|
||
- GUI and display libraries
|
||
- The VGA update timer and the status LED timer now always use the realtime mode
|
||
independent from the 'clock' option setting.
|
||
- Added native SDL2 GUI support to Bochs. To enable configure with --with-sdl2.
|
||
- Added new user shortcut "scrlck" (SDL/SDL2 using "Scroll Lock" for fullscreen toggle).
|
||
- Write enhanced gui debugger settings to file on exit and restore on initialization.
|
||
|
||
- I/O Devices
|
||
- USB
|
||
- xHCI model now emulates a NEC/Renesas uPD720202 device (patch by Ben Lunt).
|
||
- Added USB port specific option 'size' for VVFAT disks (range 128M ... 128G).
|
||
If the size is not specified or invalid, it defaults to 504M.
|
||
- Hard drive / HD image
|
||
- Fixed crash when using a "fixed" type VPC image.
|
||
|
||
- ROM BIOS
|
||
- Fixed int74_function() for 4-byte (wheel mouse) packets.
|
||
|
||
- LGPL'd VGABIOS updated from CVS (fixed building VBE modes list)
|
||
|
||
- Misc
|
||
- Visual Studio workspace files updated to VS2013Ex format.
|
||
- bximage_old/bxcommit: removed old obsolete image manipulation tools.
|
||
- Documentation fixes and updates.
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.6.6 (June 15, 2014):
|
||
|
||
- CPU / CPUDB
|
||
- allow sandy bridge configuration even when AVX is not compiled in
|
||
|
||
- Configure and compile
|
||
- fixed compilation error when 3dnow support is enabled
|
||
- speedup Visual Studio build by almost 20% by adding /Gr compiler option
|
||
|
||
- Misc
|
||
- fixed minimizing win32 gui window and resolution change while minimized
|
||
- added compiled SeaBIOS 1.7.5 image into Bochs tree along with Bochs BIOS images
|
||
- documentation fixes and updates
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.6.5 (June 1, 2014):
|
||
|
||
Brief summary :
|
||
- CPU: extra 5-10% emulation speedup with new trace linking optimization
|
||
- CPU: implemented new instructions (e.g. AVX-512, SHA, XSAVEC)
|
||
- CPUDB: added 2 new CPU models
|
||
- Bugfixes for CPU emulation correctness (including some critical ones)
|
||
- Gui debugger output window now can be used as a log viewer
|
||
- Added built-in slirp (user-mode networking) support (ported from Qemu)
|
||
- Added global sound config option and volume control support to the devices
|
||
- Added new experimental gui 'vncsrv" using the LibVNCServer library
|
||
- Rewrite of the bximage utility in C++ for image creation, conversion and resize
|
||
|
||
Detailed change log :
|
||
|
||
- CPU
|
||
- Bugfixes for CPU emulation correctness (critical fixes for XSAVE, VMX, TBM/BMI and RDRAND instructions)
|
||
- Implemented FCS/FDS Deprecation CPU feature
|
||
- Implemented SHA instructions emulation
|
||
- Implemented XSAVEC instruction emulation and XINUSE optimization in the XSAVEOPT instruction
|
||
- Implemented AVX-512 instructions emulation (experimental)
|
||
! CPUDB: Added Intel(R) Core(TM) i7-4770 CPU (Haswell) configuration to CPUDB
|
||
! CPUDB: Added AMD A8-5600K APU (Trinity) configuration to CPUDB
|
||
|
||
- Replace 'SSE' and 'AVX' .bochsrc option with single 'SIMD' option which controls presence
|
||
of all CPU SIMD extensions from SSE to AVX-512
|
||
|
||
- Extra 5-10% emulation speedup with new trace linking optimization. The optimization
|
||
is enabled by default when configuring with --enable-all-optimizations option,
|
||
to disable trace linking optimization configure with --disable-trace-linking.
|
||
The optimization require to compile Bochs with at least -O2 optimization level on gcc.
|
||
|
||
- Bochs Debugger and Instrumentation
|
||
- Added disasm for Bochs internal instruction representation, especially useful for instrumentation
|
||
- Updated definition of instrumentation callbacks, see description in
|
||
instrumentation.txt / Fixed instrumentation examples
|
||
- added capability to use the gui debugger output window as a log viewer
|
||
|
||
- General
|
||
- Increased max. device log prefix size to 6 and added / modified prefixes
|
||
- plugin version now uses the native DLL handling code for all Windows ports
|
||
- critical bugfixes in save/restore functionality
|
||
|
||
- Configure and compile
|
||
- configure and compilation fixes for Cygwin and Visual Studio environment
|
||
- configure option --enable-cdrom now only controls the presence of
|
||
platform-specific code for device access
|
||
- building plugin version with MSVC nmake now supported
|
||
|
||
- Config interface
|
||
- Added global sound control option for the driver and wave input/output
|
||
- Added new bochsrc option to control the speaker output mode
|
||
- Added support to specify the initial time for 'clock' option in ctime(3) string format
|
||
- Added support for the LTDL_LIBRARY_PATH variable with MSVC plugins
|
||
- All SB16 / ES1370 options are now changeable at runtime
|
||
- textconfig: added menu item for saving configuration at runtime
|
||
- Added bochsrc option for the Voodoo Graphics emulation (experimental)
|
||
|
||
- I/O Devices
|
||
- Hard drive / CD-ROM
|
||
- seek latency implemented for ATA/ATAPI read commands
|
||
- portable ISO image file access now available on all platforms
|
||
- Networking
|
||
- added built-in slirp (user-mode networking) support (ported from Qemu)
|
||
- removed the "slirp backend" support (required external slirp binary)
|
||
- slirp/vnet: all supported TFTP extension options implemented now
|
||
- Sound
|
||
- SB16 / ES1370: added volume control support for wave output
|
||
- SB16: fixed audio distortion when playing stereo wave files
|
||
- ES1370: added 'wavemode' support similar to the SB16
|
||
- soundwin: added capability to specify the ID of the MIDI device to use
|
||
- Serial
|
||
- Serial mouse detection fixes
|
||
- Busmouse
|
||
- Non-functional device rewritten to make it work in DOS and Win95 guests
|
||
(use --enable-busmouse to configure and "mouse: type=bus" at runtime)
|
||
|
||
- ROM BIOS
|
||
- PS/2 mouse function: allow setting mouse packet size to 4 for wheel support
|
||
|
||
- GUI and display libraries
|
||
- Added new experimental gui 'vncsrv" using the LibVNCServer library
|
||
- RFB: set maximum resolution to 1280x1024 (same as vncsrv)
|
||
- RFB: don't wait for client connection on startup if timeout is set to 0
|
||
- Added mouse wheel support to the rfb, vncsrv and wx guis
|
||
- wx: added viewer window for the Bochs log output
|
||
- win32: fixes and improvements for the fullscreen mode
|
||
|
||
- Tools
|
||
- bximage utility rewritten in C++ for image creation, conversion, resize
|
||
and redolog commit. Now vmware4 and vpc images can be created.
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.6.2 (May 26, 2013):
|
||
|
||
- CPU
|
||
- VMX: implemented VMENTER to non-active guest state (HLT, SHUTDOWN, WAIT-FOR-SIPI)
|
||
- VMX: fixed write of guest segment access rights VMCS fields (32-bit field
|
||
was truncated to 16-bit)
|
||
- CPUID: Don't report Architectural Performance Monitoring in CPUID.
|
||
Reporting true capabilities without actually supporting them breaks Win7 x64 installation.
|
||
- CPUID: Fixed bx_generic CPUID std leafs (all std leafs > 2 were corrupted)
|
||
- CPUID: Enable all supported VMX capabilities for bx_generic CPUID configuration.
|
||
- CPUID: Enable X2APIC support for Ivy Bridge CPUDB configuration.
|
||
|
||
- Configure and compile
|
||
- Enabled VMX compilation by default in shortcut scripts.
|
||
- Allow CPU_LEVEL=5 configurations (pentium_mmx and amd_k2_chomper) even when Bochs was
|
||
compiled with CPU_LEVEL > 5.
|
||
|
||
- Misc
|
||
- Fixes for Bochs port on MorphOS (based on a patch by Thore Sittly):
|
||
missing functions, byte-swapping and cdrom support.
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.6.1 (April 7, 2013):
|
||
|
||
- CPU / CPUDB
|
||
- Bochs is fully aligned with rev45 of the of Intel(R) Architecture Manual.
|
||
- Implemented Supervisor Mode Access Prevention (SMAP) support
|
||
- Implemented VMX APIC Registers Virtualization and VMX Virtual Interrupt Delivery
|
||
- Implemented VMCS Shadowing and #VE exception secondary VMEXIT controls emulation
|
||
- Implemented RDRAND and RDSEED instructions
|
||
! CPUDB: Added AMD FX-4100 (Zambezi) configuration to CPUDB
|
||
- Bugfixes for CPU emulation correctness (critical fixes for SVM and AVX2 emulation)
|
||
|
||
- Bochs Debugger and Instrumentation
|
||
- Use Enhanced GUI Debugger instead of old-style wx debugger with wx gui.
|
||
The old-style wx debugger support was deprecated and removed from the source code.
|
||
|
||
- I/O Devices
|
||
- Implemented 3dfx Voodoo Graphics card emulation based on DOSBox patch, to enable
|
||
configure with --enable-voodoo option.
|
||
- Hard drive / HD image
|
||
- Added full save restore support for most of the disk image formats
|
||
- undoable / volatile mode: added support of other types of r/o base images
|
||
- DLL HD support rewritten and enabled for WIN32 host
|
||
- PCI chipset
|
||
- Implemented i430FX chipset emulation
|
||
- USB UHCI always enabled in the i440FX case
|
||
|
||
- Config interface
|
||
- Configure option --enable-misaligned-sse moved to runtime option in .bochsrc. The old
|
||
option is deprecated and should not be used anymore.
|
||
- moved 'user_shortcut' bochsrc option to the 'keyboard' option
|
||
- save log options per device to bochsrc
|
||
- win32: implemented scrollable dialog items for large parameter lists
|
||
|
||
- GUI and display libraries
|
||
- Graphics snapshot feature rewritten to support all kinds of graphics modes
|
||
- wx: starting a second simulation without closing Bochs now almost possible
|
||
|
||
- Tools
|
||
- bxcommit: added support for converting flat to growing mode images
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.6 (September 2, 2012):
|
||
|
||
Brief summary :
|
||
- More than 10% CPU emulation speedup !
|
||
- Support for AMD's SVM hardware emulation (including extended XAPIC support).
|
||
- Implemented support for new x86 ISA extensions.
|
||
Bochs is fully aligned with rev043 of Intel(R) Architecture Manual.
|
||
- Improved emulation accuracy (critical fixes for APIC, VMX and AVX/XOP emulation).
|
||
- Bochs internal debugger: new command to show state of a device from the debugger.
|
||
- ROM BIOS: improved PCI boot ROM support (for VGA and other devices)
|
||
- Networking:
|
||
- Ported Intel(R) 82540EM Gigabit Ethernet adapter emulation from Qemu.
|
||
- Added PCI network boot ROM support to all network adapters.
|
||
- Added TFTP support to the 'slirp' networking module.
|
||
- Harddrive: added support for VirtualPC disk images, fixed sparse disk images.
|
||
- Sound:
|
||
- implemented PC speaker beep using the lowlevel sound interface.
|
||
- SDL audio output support.
|
||
- Added ability to set log action per device from .bochsrc.
|
||
- Moved disk imaging, networking, sound and USB devices to subdirectories
|
||
in the iodev folder.
|
||
|
||
Detailed change log :
|
||
|
||
- CPU
|
||
- Implemented EPT A/D extensions support.
|
||
Bochs is fully aligned with rev043 of the of Intel(R) Architecture Manual.
|
||
- Implemented ADX (ADCX/ADOX) instructions support, the feature can
|
||
be enabled using .bochsrc CPUID option.
|
||
- More than 10% CPU emulation speedup with even more optimal lazy flags
|
||
handling, stack access optimizations and cross branch trace linking.
|
||
- Support for AMD's SVM hardware emulation in Bochs CPU, to enable
|
||
configure with --enable-svm option
|
||
- Implemented AMD Extended XAPIC support, to enable set .bochsrc CPU
|
||
APIC option to 'xapic_ext'
|
||
! Added Corei5 750 (Lynnfield) configuration to the CPUDB
|
||
! Added Turion64 (Tyler) configuration to the CPUDB
|
||
! Added AMD Phenom X3 8650 (Toliman) configuration to the CPUDB
|
||
! Added Corei7 3770K (Ivy Bridge) configuration to the CPUDB
|
||
- Bugfixes for CPU emulation correctness and stability
|
||
(critical fixes for APIC/X2APIC, VMX and AVX/XOP emulation)
|
||
|
||
- Bochs Debugger and Instrumentation
|
||
- Implemented new debugger command 'info device [string]' that shows the
|
||
state of the device specified in 'string'
|
||
- Improved debug dump for ne2k, pci, pic and vga/cirrus devices. Added
|
||
debug dump for pci2isa, i/o apic, cmos, pit, floppy and dma devices.
|
||
- Added TLB to CPU param tree - now it can be browsed from Bochs internal
|
||
debugger and Bochs debugger GUI through param tree interfaces
|
||
- Implemented 'writemem' debugger command to dump virtual memory block
|
||
starting from selected linear address into a file
|
||
- Updated definition of instrumentation callbacks, see description in
|
||
instrumentation.txt / Fixed instrumentation examples
|
||
|
||
- Configure and compile
|
||
- Moved disk imaging, networking, sound and USB devices to subdirectories
|
||
in the iodev folder.
|
||
- pcidev: enable support for Linux kernel 3.x (Debian patch by Guillem Jover)
|
||
- debugger: generate parser / lexer files only if all required tools are present
|
||
|
||
- Config interface
|
||
- Added support for direct device plugin loading with bochsrc directive for
|
||
devices which have the same name for the plugin and config option.
|
||
- The bochsrc option 'plugin_ctrl' can now be used to load/unload optional
|
||
plugins directly when parsing the config file or command line. See the bochsrc
|
||
sample for supported devices.
|
||
- Moved bochsrc parsing / writing and config parameter handling for networking,
|
||
sound and USB devices to the plugin device code. The options are only
|
||
available when the corresponding plugin device is loaded.
|
||
- Added ability to set log action per device from .bochsrc.
|
||
- Added new command line option '-noconsole' to disable the console
|
||
window on Windows host.
|
||
- Renamed PCI Pseudo NIC option to "pcipnic" (for direct plugin loading)
|
||
- Moved several related options to the new "keyboard" bochsrc option.
|
||
- Added new parameter 'rtc_sync' for the 'clock' option. If this option
|
||
is enabled together with the realtime synchronization, the RTC runs
|
||
at realtime speed.
|
||
- Moved MWAIT_IS_NOP bochsrc option from CPUID to CPU so it can be set
|
||
even if cpu was configured using pre-defined CPUDB profile.
|
||
- Allow larger CPU 'quantum' values when emulating SMP systems for speed
|
||
(quantum values up to 32 are allowed now).
|
||
|
||
- I/O Devices
|
||
- Networking
|
||
- Ported Intel(R) 82540EM Gigabit Ethernet adapter emulation from Qemu,
|
||
to enable configure with option --enable-e1000
|
||
- Added PCI network boot ROM support to all network adapters
|
||
- Added TFTP support to the 'slirp' networking module
|
||
- PCI
|
||
- added "auto-assign to PCI slot" feature for PCI-only devices
|
||
- DMA
|
||
- Added the capability to transfer more then one byte / word per ISA DMA cycle
|
||
- VGA
|
||
- Major rewrite of the vga / cirrus code:
|
||
- vgacore (shared standard VGA emulation code)
|
||
- vga (Bochs VBE and PCI VGA)
|
||
- cirrus (CL-GD 5430 ISA / CL-GD 5446 PCI)
|
||
- Added VGA graphics blinking support
|
||
- More accurate vertical and horizontal retrace emulation
|
||
(based on the DOSBox implementation)
|
||
- hard drive / hdimage
|
||
- added new disk image mode 'vpc' for VirtualPC images
|
||
- undoable mode: added coherency check (flat image size and timestamp)
|
||
- sparse mode: fixed read support
|
||
- Sound
|
||
- implemented PC speaker beep using the lowlevel sound interface
|
||
- added SDL audio output support
|
||
|
||
- ROM BIOS
|
||
- improved PCI boot ROM support (for VGA and other devices)
|
||
- added MADT entry for Interrupt Source Override to ACPI tables
|
||
|
||
- GUI and display libraries
|
||
- implemented "auto-off" timer for status LEDs indicating a data transfer
|
||
- Added support for sending absolute mouse position values from the gui if an
|
||
absolute pointing device (USB tablet) is active (rfb, sdl, win32, wx, x).
|
||
- Gui debugger now supported when using sdl gui on Windows
|
||
- Implemented "hideIPS" option in rfb, sdl, win32 and wx libraries
|
||
- wx: fixed random freezes with wxGTK and "show ips" feature enabled
|
||
- rfb: the "show ips" feature now works on Windows host
|
||
|
||
- Tools
|
||
- bxcommit: added support for converting growing to flat mode images
|
||
- bxcommit: support command line options and non-interactive (quiet) mode
|
||
- bximage: increased maximum disk size to 8 TB
|
||
|
||
- SF patches applied
|
||
[3540389] Patch 5 : Change memory reference functions argument order by Yeong-uk Jo
|
||
[3539254] Patch 4 : Memory reference optimization 2 by Yeong-uk Jo
|
||
[3539251] Patch 3 : Memory reference optimization by Yeong-uk Jo
|
||
[3539237] Patch 2 : Some optimization by Yeong-uk Jo
|
||
[3539228] Patch 1 : ROM BIOS Compatibility patch by Yeong-uk Jo
|
||
[3505209] Fixed combo box size by Konrad Grochowski
|
||
[2864391] Gui debugger default regs by Thomas Nilsen
|
||
[3486555] Fix critical stack leak in Win32 GUI by Carlo Bramini
|
||
|
||
- these S.F. bugs were closed/fixed
|
||
[625877] wx: power button -> thread deadlock
|
||
[3534063] Configure does not check for flex presence
|
||
[3555237] NE2000 doesn't compile on OS/X
|
||
[3553168] X doesn't build in latest code on OS/X
|
||
[3550175] Crash when saving snapshot to directory instead of file
|
||
[3548109] VMX State Not Restored After Entering SMM on 32-bit Systems
|
||
[3548108] VMEXIT Instruction Length Not Always Getting Updated
|
||
[3545941] Typo in preprocessor symbol
|
||
[3538731] Missing CR8 register
|
||
[3538574] Missing XD flag ( Execute Disable ) when showing PTEs
|
||
[3537556] Missing initializations
|
||
[3537309] Unable to use the debug GUI with SDL and plugins
|
||
[3537473] GUI debugger only shows 32-bit CRx registers in x86-64 mode
|
||
[3533426] UHCI PCI interrupts
|
||
[3459359] svga cirrus initialization
|
||
[3535228] info gdt does not show long mode segments
|
||
[3531806] Bochs crashes (SIGSEGV) when starting via ssh console
|
||
[3531807] Various missing initialization values reported by Valgrind
|
||
[635789] mapping mode 0 not supported
|
||
[3307201] BOCHS panics when execute HBIOS.COM
|
||
[3528809] IO APIC index register width
|
||
[3528516] Missing #if in soundmod.h
|
||
[3526069] MADT:Interrupt Source Override missed
|
||
[3518753] update dump after manual chages to memory contents
|
||
[3516859] bug in svn e1000 module
|
||
[3516029] stepping not working in debugger GUI in case of smp vm
|
||
[3510403] closing config dialog box closes entire simulator
|
||
[3459998] Bochs cannot be compiled outside the source tree
|
||
[2905969] can't use --enable-gdb-stub on vs2008
|
||
[3294001] Bochs GUI doesn't appear properly for 2nd Bochs copy
|
||
[3493315] Changing VGA 9/8 dot mode causes screen corruption
|
||
|
||
- these S.F. feature requests were closed/implemented
|
||
[3540441] automatically enable devices in plugin control
|
||
[1251456] command line method to query bochs for features
|
||
[3409396] sdl sound
|
||
[3519794] debugger's ability to save physical/linear memory dumps
|
||
[1429612] Idea how to speedup simulation - stack direct access
|
||
[1703452] Other Network Devices?
|
||
[2919376] Disable show the console window
|
||
[534271] can't set log action by device (bochsrc)
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.5.1 (January 6, 2012):
|
||
|
||
- CPU / CPUDB
|
||
! Added Athlon64 (Venice) configuration to the CPUDB
|
||
- BMI: fixed EFLAGS after BMI instructions
|
||
- MSR: access to AMD extended MSR space was impossible due to a bug in RDMSR/WRMSR
|
||
- VMX: fixed VMFUNC instruction behavior to align with Intel SDM revision 041
|
||
- VMX: fixed Bochs PANIC when doing I/O access crossing VMX I/O permission bitmaps
|
||
- VMX: fixed VirtualBox VMX guest Guru Meditation - FS.BASE got corrupted after
|
||
saving/restoring unusable FS selector
|
||
- VMX: fixed VirtualBox failures with VMX+EPT enabled
|
||
- Better report of supported CPUID features when not using pre-defined CPUID profile
|
||
|
||
- Debugger / Instrumentation
|
||
- fixed typo - closing SF bug [3461405] step all command fails in SMP mode
|
||
- instrumentation: added special indication for indirect call/jump
|
||
|
||
- Configure and compile
|
||
- fixed compilation err in instrumentation call (tasking.cc)
|
||
- fixed compilation err with x86 hw breakpoint enabled and CPU_LEVEL < 6
|
||
- fixed compilation issue under win32 --with-nogui
|
||
- added missing dependencies for cdrom_osx.o
|
||
- removed very old deprecated configure options from configure script
|
||
|
||
- I/O Devices
|
||
- fixed possible failures of PCI DMA transfers
|
||
- VVFAT: several fixes in the optional write support (passes test with XP)
|
||
- USB UHCI: some fixes to make it work in XP guest
|
||
- removed devices 'acpi', 'ioapic' and 'pci_ide' from optional plugin control
|
||
to avoid trouble
|
||
|
||
- Config interface / GUI and display libraries
|
||
- added VMX .bochsrc option to control VMX support on runtime
|
||
- fix for x86-64 .bochsrc option parsing (patch from @SF)
|
||
- fix for @SF bug: Crash on WIN2K - ID: 3454214
|
||
- added 'nokeyrepeat' option for the SDL and win32 gui
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.5 (November 27, 2011):
|
||
|
||
Bochs repository moved to the SVN version control !
|
||
|
||
Brief summary :
|
||
|
||
! Fully configurable CPU to emulate with a single .bochsrc option !
|
||
- 10% (ST) to 50% (SMP) CPU emulation speedup !
|
||
- Implemented support for new x86 ISA extensions, Bochs is aligned with
|
||
latest published Intel Architecture Manual (rev 040, AVX rev 011):
|
||
- XSAVEOPT, AVX/AVX2/FMA/F16C, BMI1/BMI2, SMEP, INVPCID, TSC-Deadline
|
||
- VMX: VMX Preemption Timer, Pause Loop Exiting and VM Functions
|
||
- Implemented support for AMD SSE4A/XOP/FMA4/TBM instruction sets
|
||
- Networking: introduced new networking module 'slirp'
|
||
- Harddrive: fixed buffer overflow causing Bochs crash in LBA48 mode
|
||
- VGA: Added PCI ROM support to cirrus and pcivga and moved ROM loading
|
||
for the ISA case to the vga code (SeaBIOS now usable by Bochs)
|
||
- Sound: ported ES1370 soundcard emulation from Qemu
|
||
- Continuing configure rework, check for more removed configure and .bochsrc
|
||
options and their replacements !
|
||
- LGPL'd VGABIOS updated to version 0.7a
|
||
|
||
Detailed change log :
|
||
|
||
- CPU
|
||
- Now you can configure CPU to emulate using a single .bochsrc option !
|
||
The option selects CPU configuration to emulate from pre-defined list
|
||
of supported configurations. When this option is used, Bochs CPU emulation
|
||
engine is automatically configured to emulate a specific real hardware CPU,
|
||
including exact CPUID matching reference hardware. Check .bochsrc example
|
||
or check user manual for list of supported configurations and more details.
|
||
* It is also possible to choose the CPU to emulate from Bochs command line
|
||
using command line interface to .bochsrc: "cpu::model <cpu_name>"
|
||
* Query for supported CPU models using command line option: -help cpu.
|
||
|
||
- 10% emulation speedup with handlers chaining optimization implemented. The
|
||
feature is enabled by default when configure with --enable-all-optimizations
|
||
option, to disable handlers chaining speedups configure with
|
||
--disable-handlers-chaining
|
||
- New way of CPUs scheduling in SMP mode brings up to 50% speedup to the
|
||
SMP emulation. New implementation uses dynamic CPU quantum value and takes
|
||
full advantage of the trace cache. Each emulated processor will execute
|
||
the whole trace before switching to the next processor.
|
||
* It is also safe to use large (up to 16 instructions) quantum values for
|
||
the SMP emulation now and improve performance even further.
|
||
|
||
- Implemented Supervisor Mode Execution Protection (SMEP), the feature can
|
||
be enabled using .bochsrc CPUID option.
|
||
- Added support for XSAVEOPT instruction, the instruction can be enabled
|
||
using .bochsrc CPUID option.
|
||
- Added support for AVX and AVX2 instructions emulation, to enable configure
|
||
with --enable-avx option. When compiled in, AVX still has to be enabled
|
||
using .bochsrc CPUID option.
|
||
- Added emulation of AVX float16 convert instructions, the feature can be
|
||
enabled using .bochsrc CPUID option.
|
||
- Added support for AVX2 FMA instructions emulation. The implementation
|
||
was ported (with few bugfixes) from QEMU patch by Peter Maydell.
|
||
The FMA instructions support can be enabled using .bochsrc CPUID option.
|
||
- Added support for Bit Manipulation Instructions (BMI1/BMI2) emulation.
|
||
The BMI instructions support can be enabled using .bochsrc CPUID option.
|
||
- Added support for AMD SSE4A/XOP/FMA4/TBM extensions emulation, the
|
||
instructions can be enabled using .bochsrc CPUID option.
|
||
- Implemented VMX preemption timer VMEXIT control (patch by Jianan Hao)
|
||
- Implemented Pause-Loop Exiting Secondary VMEXIT control.
|
||
- Implemented VM Functions support and EPTP-Switching VM Function.
|
||
- Added INVPCID instruction emulation support.
|
||
- Added APIC timer TSC-Deadline mode emulation support.
|
||
- Now you could disable x86-64 from .bochsrc so it become possible to
|
||
emulate 32-bit CPUs using Bochs binary compiled with x86-64 support.
|
||
- Updated/fixed instrumentation callbacks.
|
||
- Bugfixes for CPU emulation correctness and stability.
|
||
|
||
- Bochs Internal Debugger and Debugger GUI
|
||
- Bochs disassembler fixes / new instructions support.
|
||
- Fixed timer breakpoint handling in Bochs internal debugger.
|
||
- Fixed bug in Bochs internal debugger 'show off' command.
|
||
- Added Bochs internal debugger command 'vmexitbp' to set breakpoint on
|
||
VMX guest VMEXIT (patch by Jianan Hao). Type 'vmexitbp' in debugger
|
||
command window to switch it on/off (similar to modebp).
|
||
- Fixed linear to physical address translation by Bochs internal debugger
|
||
for EPT unrestricted guest (VMX guest with paging disabled under EPT)
|
||
- Fixed bug in GUI debugger SSE registers display.
|
||
- Correctly display current CPU mode in GUI debugger status bar.
|
||
- Turn off the mouse capture when the internal debugger or gdbstub enter
|
||
the input loop.
|
||
|
||
- Memory
|
||
- Added new configure option which enables RAM file backing for large guest
|
||
memory with a smaller amount host memory, without causing a panic when
|
||
host memory is exhausted (patch by Gary Cameron). To enable configure with
|
||
--enable-large-ramfile option.
|
||
|
||
- Configure and compile
|
||
- Fixed Bochs manifest for Win64 compilation using Microsoft Visual Studio
|
||
command line compiler.
|
||
- Added ability to configure CPUID family through .bochsrc.
|
||
The default family value determined by configure option --enable-cpu-level.
|
||
- Added ability to configure CPUID model through .bochsrc.
|
||
The default model value is 3.
|
||
- Added ability to configure x2apic support through .bochsrc.
|
||
The APIC configuration could be selected using new CPUID .bochsrc APIC option.
|
||
Possible configurations are: "legacy", "xapic" and "x2apic".
|
||
Configure option --enable-x2apic and Bochs 2.4.6 .bochsrc XAPIC option are
|
||
deprecated and should not be used anymore.
|
||
- Configure option --enable-vbe is deprecated and should not be used anymore.
|
||
The VBE support is always automatically compiled in, in order to enable
|
||
VBE support the .bochsrc option "vga: extension=" has to be set to "vbe".
|
||
If PCI is present, the "pcivga" device can be assigned to PCI slot.
|
||
- Configure option --enable-acpi is deprecated and should not be used anymore.
|
||
The ACPI support is always automatically compiled in if PCI is compiled in.
|
||
The ACPI still could be disabled using .bochsrc 'plugin_ctrl' option.
|
||
- Removed --enable-trace-cache configure option. The option will be always ON
|
||
for any Bochs configuration.
|
||
- Compile in MONITOR/MWAIT support by default for all cpu-level=6 configurations.
|
||
- added support for MSVC DLL plugins with a separate workspace package.
|
||
VS2008Ex can now create a BOCHS.EXE with a set of plugin DLLs.
|
||
TODO: nmake still cannot create plugin DLLs.
|
||
- removed some outdated / unmaintained parts from the Bochs code: BeOS host
|
||
support, plex86 support, networking module 'arpback', text snapshot check
|
||
feature.
|
||
|
||
- I/O Devices
|
||
- Networking
|
||
- new networking module 'slirp' (user mode networking using Slirp and a
|
||
builtin DHCP server)
|
||
- Hard drive / cdrom
|
||
- fixed buffer overflow causing Bochs crash in LBA48 mode
|
||
- implemented ATA commands "READ NATIVE MAX ADDRESS" and
|
||
"READ NATIVE MAX ADDRESS EXT"
|
||
- Sound
|
||
- ported ES1370 soundcard emulation from Qemu, to enable configure with
|
||
the option --enable-es1370
|
||
- sound input implemented in the sound lowlevel modules for Windows and
|
||
Linux (ALSA / OSS)
|
||
- PCI
|
||
- added framework for PCI ROM support
|
||
- new bochsrc option 'pci' replaces the 'i440fxsupport' option. The 'chipset'
|
||
parameter for now only accepts the value 'i440fx'.
|
||
- VGA
|
||
- added PCI ROM support to cirrus and pcivga and moved ROM loading for the ISA
|
||
case to the vga code (SeaBIOS now usable by Bochs)
|
||
- log prefix now depends on the selected extension (new prefix BXVGA for
|
||
Bochs VBE support)
|
||
- USB
|
||
- experimental USB xHCI support (written by Ben Lunt)
|
||
|
||
- LGPL'd VGABIOS updated to version 0.7a
|
||
- implemented vgabios functions with AX=0x112x (patch by Hugo Mercier)
|
||
- fixed DAC palette in 8 bpp VBE and Cirrus modes (using the same palette
|
||
as VGA mode 0x13)
|
||
- VBE: added HDTV resolutions (patch by Tristan Schmelcher)
|
||
- VBE: added PCI ROM signature and data structure
|
||
|
||
- ROM BIOS
|
||
- Report memory above 4GB to BIOS (patch by Sebastian Herbszt)
|
||
- added PCI ROM init code for BIOS-bochs-latest
|
||
(WARNING: legacy BIOS no longer works with a PCI display adapter)
|
||
|
||
- GUI and display libraries
|
||
- new parameter 'update_freq' for the 'vga' bochsrc option replaces the
|
||
'vga_update_interval' option
|
||
- vga update frequency now uses host timing if the realtime synchronization
|
||
is enabled with the "clock" option (FIXME: it should always be used -
|
||
independent from the "clock" setting)
|
||
- Implemented graphics mode snapshot for VBE, Cirrus and standard VGA modes.
|
||
CGA modes are not supported yet.
|
||
- added 'x' display library option 'nokeyrepeat' to turn off keyboard repeat
|
||
|
||
- Config interface
|
||
- win32paramdlg: dialog size now adjusted to support larger label text
|
||
- win32paramdlg: added tooltip support using the parameter description
|
||
|
||
- SF patches applied
|
||
[3412431] Enabling raw devices as hdimage by affiss
|
||
[3435049] rombios: fix package size in pointing device flags 2 by Sebastian Herbszt
|
||
[3426460] [PATCH] PIC: remove never-executed code by Christian Inci
|
||
[3370604] Ctrl-Break support for the bochs BIOS by Nikolay Nikolov
|
||
[3302668] VMX preemption timer by Jianan Hao
|
||
[3327510] Fix wrong address translation in debugger by Jianan Hao
|
||
[3323758] Ctrl-Break support for the Win32 gui by Nikolay Nikolov
|
||
[3316785] Ctrl-Break support for the X11 gui by Nikolay Nikolov
|
||
[3298173] Breakpoint on VMEXIT event by Jianan Hao
|
||
[3295737] Fix CopyHost*WordLittleEndian macros by Heikki Lindholm
|
||
[3289448] optimized powerpc byte swapping by Heikki Lindholm
|
||
[3292581] Core Audio first aid by Heikki Lindholm
|
||
[3205979] Compilation fixes for OpenBSD by Brad Smith
|
||
[3290979] acpi/muldiv64 endian bug by Heikki Lindholm
|
||
[3289459] Mac OS X audio missing framework dependency by Heikki Lindholm
|
||
[3267459] fix xrandr related crash by Heikki Lindholm
|
||
[3190995] add eth backend based on Slirp by Heikki Lindholm
|
||
|
||
- these S.F. bugs were closed/fixed
|
||
[3365456] block device dimensions problem
|
||
[3441564] interrupts vectors 0x67 should also be NULL ! cf: 2902118
|
||
[2829847] Mouse locked during magic-break
|
||
[3418621] release mouse when debugger breakpoint was hit
|
||
[1947077] sb command bug
|
||
[2802677] Unable to install Cirrus SVGA driver in guest Windows ME
|
||
[3422638] large ramfile support broken on anything but Linux
|
||
[3312237] stepN command might be not working properly
|
||
[3392760] Bochs does not compile with linux3.0
|
||
[3403746] segfault crash with sparse disk images
|
||
[3062054] Problems with BIOS pointing device services (int 15h)
|
||
[3277639] incompatible colours in palette
|
||
[1788739] Abort on large memory setting
|
||
[3012207] Int 13h FN 48h incorrect return values
|
||
[3363289] holding shift key causes capslock hang
|
||
[1819639] Two incompatible crc32 modules
|
||
[3324111] configure for VCPP.NET issues
|
||
[3190970] Installing linux causes a crash in pci_ide
|
||
[3077616] Fedora 13 installation fails on Bochs 2.4.5
|
||
[3294671] ./configure --enable-pci --disable-cdrom
|
||
[3303818] wrong memory size is reported to GRUB (e820 problem?)
|
||
[3297475] trace cache disabled mode will miss SMC
|
||
[3170157] BIOS32 PCI service wrong length
|
||
[3025030] PIT mistakenly connected to IRQ0 IOAPIC instead of IRQ2
|
||
[3266738] GUI debugger does not update CPU mode correctly
|
||
[3292571] SB16 doesn't reinit correctly
|
||
[3175168] Cirrus CL-GD5446 emulation incorrect
|
||
[3260134] Failed to compile when trace cache disabled
|
||
[3197425] Error compile with vmx in vs2008/2010 and for correct x64
|
||
|
||
- these S.F. feature requests were closed/implemented
|
||
[3424738] Legacy BIOS int13 AL=17/18h diskette issue
|
||
[1197067] Screenshot for graphical
|
||
[2800839] VMX-preemption timer
|
||
[1507519] configurable CPUID
|
||
[579002] Allow user to specify architecture
|
||
[1228567] CPU option
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.4.6 (February 22, 2011):
|
||
|
||
Brief summary :
|
||
- Support more host OS to run on:
|
||
- Include win64 native binary in the release.
|
||
- Fixed failures on big endian hosts.
|
||
- BIOS: Support for up to 2M ROM BIOS images.
|
||
- GUI: select mouse capture toggle method in .bochsrc.
|
||
- Ported most of Qemu's 'virtual VFAT' block driver
|
||
(except runtime write support, but plus FAT32 support)
|
||
- Added write protect option for floppy drives.
|
||
- Bugfixes / improved internal debugger + instrumentation.
|
||
|
||
Detailed change log :
|
||
|
||
- CPU and internal debugger
|
||
- Implemented Process Context ID (PCID) feature
|
||
- Implemented FS/GS BASE access instructions support
|
||
(according to document from http://software.intel.com/en-us/avx/)
|
||
- Rewritten from scratch SMC detection algorithm
|
||
- Implemented fine-grained SMC detection (on 128 byte granularity)
|
||
- Bugfixes for CPU emulation correctness and stability
|
||
- Fixed failures on Big Endian hosts !
|
||
- Print detailed page walk information and attributes in
|
||
internal debugger 'page' command
|
||
- Updated/Fixed instrumentation callbacks
|
||
|
||
- Configure and compile
|
||
- Bochs now can be compiled as native Windows x86-64 application
|
||
(tested with Mingw gcc 4.5.1 and Microsoft Visual Studio Express 2010)
|
||
- Added ability to configure CPUID stepping through .bochsrc.
|
||
The default stepping value is 3.
|
||
- Added ability to disable MONITOR/MWAIT support through .bochsrc
|
||
CPUID option. The option is available only if compiled with
|
||
--enable-monitor-mwait configure option.
|
||
- Determine and select max physical address size automatically at
|
||
configure time:
|
||
- 32-bit physical address for 386/486 guests
|
||
- 36-bit physical address for PSE-36 enabled Pentium guest
|
||
- 40-bit physical address for PAE enabled P6 or later guests
|
||
- Update config.guess/config.sub scripts to May 2010 revisions.
|
||
- Update Visual Studio 2008 project files in build/win32/vs2008ex-workspace.zip
|
||
- Added Bochs compilation timestamp after Bochs version string.
|
||
|
||
- GUI and display libraries (Volker)
|
||
- Added new .bochsrc option to select mouse capture toggle method.
|
||
In addition to the default Bochs method using the CTRL key and the
|
||
middle mouse button there are now the choices:
|
||
- CTRL+F10 (like DOSBox)
|
||
- CTRL+ALT (like QEMU)
|
||
- F12 (replaces win32 'legacyF12' option)
|
||
- display library 'x' now uses the desktop size for the maximum guest resolution
|
||
|
||
- ROM BIOS
|
||
- Support for up to 2M ROM BIOS images
|
||
|
||
- I/O Devices
|
||
- 3 new 'pseudo device' plugins created by plugin separation (see below)
|
||
- Fixes for emulated DHCP in eth_vnet (patch from @SF tracker)
|
||
- Added support for VGA graphics mode with 400 lines (partial fix for SF bug #2948724)
|
||
- NE2K: Fixed "send buffer" command issue on big endian hosts
|
||
- USB
|
||
- converted common USB code plus devices to the new 'usb_common' plugin
|
||
Now the USB device classes no longer exist twice if both HC plugins are loaded.
|
||
- added 'pseudo device' in common USB code for the device creation. This makes
|
||
the HCs independent from the device specific code.
|
||
- USB MSD: added support for disk image modes (like ATA disks)
|
||
- USB printer: output file creation failure now causes a disconnect
|
||
- re-implemented "options" parameter for additional options of connected
|
||
devices (currently only used to set the speed reported by device and to
|
||
specify an alternative redolog file of USB MSD disk image modes)
|
||
- hard drive
|
||
- new disk image mode 'vvfat'
|
||
- ported the read-only part of Qemu's 'virtual VFAT' block driver
|
||
- additions: configurable disk geometry, FAT32 support, read MBR and/or
|
||
boot sector from file, volatile write support using hdimage redolog_t
|
||
class, optional commit support on Bochs exit, save/restore file
|
||
attributes, 1.44 MB floppy support, set file modification date/time
|
||
- converted the complete hdimage stuff to the new 'hdimage' plugin
|
||
- new hdimage method get_capabilities() that can return special flags
|
||
- vmware3, vmware4 and vvfat classes now return HDIMAGE_HAS_GEOMETRY flag
|
||
- other disk image modes by default return HDIMAGE_AUTO_GEOMETRY if
|
||
cylinder value is set to 0
|
||
- multiple sector read/write support for some image modes
|
||
- new log prefix "IMG" for hdimage messages
|
||
- floppy
|
||
- added write protect option for floppy drives (based on @SF patch by Ben Lunt)
|
||
- vvfat support
|
||
- bugfix: close images on exit
|
||
- SB16
|
||
- converted the sound output module stuff to the new 'soundmod' plugin
|
||
|
||
- SF patches applied
|
||
[3164945] hack to compile under WIN64 by Darek Mihocka and Stanislav
|
||
[3164073] Fine grain SMC invalidation by Stanislav
|
||
[1539417] write protect for floppy drives by Ben Lunt
|
||
[2862322] fixes for emulated DHCP in eth_vnet
|
||
|
||
- these S.F. bugs were closed/fixed
|
||
[2588085] Mouse capture
|
||
[3140332] typo in mf3/ps2 mapping of BX_KEY_CTRL_R
|
||
[3111577] No "back" option in log settings
|
||
[3108422] Timing window in NE2K emulation
|
||
[3084390] Bochs won't load floppy plugin right on startup
|
||
[3043174] Docbook use of '_' build failure
|
||
[3085140] Ia_arpl_Ew_Rw definition of error
|
||
[3078995] ROL/ROR/SHL/SHR modeling wrong when dest reg is 32 bit
|
||
[2864794] BX_INSTR_OPCODE in "cpu_loop" causes crash in x86_64 host
|
||
[2884071] [AIX host] prefetch: EIP [00010000] > CS.limit [0000ffff]
|
||
[3053542] 64 bit mode: far-jmp instruction is error
|
||
[3011112] error compile vs2008/2010 with X2APIC
|
||
[3002017] compile error with vs 2010
|
||
[3009767] guest RFLAGS.IF blocks externel interrupt in VMX guest mode
|
||
[2964655] VMX not enabled in MSR IA32_FEATURE_CONTROL
|
||
[3005865] IDT show bug
|
||
[3001637] CMOS MAP register meaning error
|
||
[2994370] Cannot build with 3DNow support
|
||
|
||
- these S.F. feature requests were closed/implemented
|
||
[1510142] Native Windows XP x64 Edition binary
|
||
[1062553] select mouse (de)activation in bochsrc
|
||
[2930633] legacy mouse capture key : not specific enough
|
||
[2930679] Let user change mouse capture control key
|
||
[2803538] Show flags for pages when using "info tab"
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.4.5 (April 25, 2010):
|
||
|
||
Brief summary :
|
||
- Major configure/cpu rework allowing to enable/disable CPU options at runtime
|
||
through .bochsrc (Stanislav)
|
||
- Bugfixes for CPU emulation correctness and stability
|
||
- Implemented X2APIC extensions (Stanislav)
|
||
- Implemented Intel VMXx2 extensions (Stanislav)
|
||
- Extended VMX capability MSRs, APIC Virtualization,
|
||
X2APIC Virtualization, Extended Page Tables (EPT),
|
||
VPID, Unrestricted Guests, new VMX controls.
|
||
- Implemented PCLMULQDQ AES instruction
|
||
- Extended Bochs internal debugger functionality
|
||
- USB HP DeskJet 920C printer device emulation (Ben Lunt)
|
||
|
||
Detailed change log :
|
||
|
||
- Configure rework
|
||
- Deprecate --enable-popcnt configure option. POPCNT instruction will be
|
||
enabled automatically iff SSE4_2 is supported (like in hardware).
|
||
|
||
- Make --ignore-bad-msrs runtime option in .bochsrc. Old --ignore-bad-msrs
|
||
configure option is deprecated and should not be used anymore.
|
||
|
||
- Enable changing part of CPU functionality at runtime through .bochsrc.
|
||
- Now you could enable/disable any of SSEx/AES/MOVBE/SYSENTER_SYSEXIT/XSAVE
|
||
instruction sets using new CPUID option in .bochsrc.
|
||
- When x86-64 support is compiled in, you could enable/disable long mode
|
||
1G pages support without recompile using new CPUID option in .bochsrc.
|
||
Configure options:
|
||
--enable-mmx, --enable-sse, --enable-movbe, --enable-xsave,
|
||
--enable-sep, --enable-aes, --enable-1g-pages
|
||
are deprecated and should not be used anymore.
|
||
|
||
- Local APIC configure option --enable-apic is deprecated and should not
|
||
be used anymore. The LAPIC option now automatically determined from
|
||
other configure options. XAPIC functionality could be enabled using
|
||
new CPUID .bochsrc option.
|
||
|
||
- Changed default CPU configuration (generated by configure script with
|
||
default options) to BX_CPU_LEVEL=6 with SSE2 enabled.
|
||
|
||
- CPU
|
||
- Implemented PCLMULQDQ AES instruction
|
||
- Implemented X2APIC extensions / enable extended topology CPUID leaf (0xb),
|
||
in order to enable X2APIC configure with --enable-x2apic
|
||
- Implemented Intel VMXx2 extensions:
|
||
- Enabled extended VMX capability MSRs
|
||
- Implemented VMX controls for loading/storing of MSR_PAT and MSR_EFER
|
||
- Enabled/Implemented secondary proc-based vmexec controls:
|
||
- Implemented APIC virtualization
|
||
- Implemented Extended Page Tables (EPT) mode
|
||
- Implemented Descriptor Table Access VMEXIT control
|
||
- Implemented RDTSCP VMEXIT control
|
||
- Implemented Virtualize X2APIC mode control
|
||
- Implemented Virtual Process ID (VPID)
|
||
- Implemented WBINVD VMEXIT control
|
||
- Implemented Unrestricted Guest mode
|
||
In order to enable emulation of VMXx2 extensions configure with
|
||
--enable-vmx=2 option (x86-64 must be enabled)
|
||
- Bugfixes for CPU emulation correctness
|
||
- Fixed Bochs crash when accessing the first byte above emulated memory size
|
||
|
||
- Internal Debugger
|
||
- Introduced range read/write physical watchpoints
|
||
- Allow reloading of segment registers from internal debugger
|
||
- Improved verbose physical memory access tracing
|
||
|
||
- BIOS
|
||
- Fix MTRR configuration (prevented boot of modern Linux kernels)
|
||
- Fix interrupt vectors for INT 60h-66h (reserved for user interrupt) by
|
||
setting them to zero
|
||
- Fix BIOS INT13 function 08 when the number of cylinders on the disk = 1
|
||
|
||
- I/O Devices
|
||
- USB HP DeskJet 920C printer device emulation (Ben Lunt)
|
||
|
||
- Misc
|
||
- Updated Bochs TESTFORM to version 0.5
|
||
|
||
- SF patches applied
|
||
[2864402] outstanding x2apic patches by Stanislav
|
||
[2960379] Fix build with -Wformat -Werror=format-security by Per Oyvind Karlsen
|
||
[2938273] allow instrumentation to change execute by Konrad Grochowski
|
||
[2926072] Indirection operators in expressions by Derek Peschel
|
||
[2914433] makesym.perl misses symbols by John R. Jackson
|
||
[2908481] USB Printer by Ben Lunt
|
||
|
||
- these S.F. bugs were closed/fixed
|
||
[2861662] dbg_xlate_linear2phy needs to be updated
|
||
[2956217] INT13 AH=8 returns wrong values when cylinders=1
|
||
[2981161] Allow DMA transfers to continue when CPU is in HALT state
|
||
[2795115] NX fault could be missed
|
||
[2964824] bad newline sequence in aspi-win32.h
|
||
[913419] configure options and build process needs some work
|
||
[2938398] gdbstub compile error with x86_64 enabled
|
||
[2734455] shutdown/reset type 05 should reinit the PICs
|
||
[1921294] extended memory less than 1M wrong size
|
||
[1947249] BX_USE_EBDA_TABLES and MP table placement
|
||
[1933859] BX_USE_EBDA_TABLES and memory overlapping
|
||
[2923680] "help dregs" is a syntax error
|
||
[2919661] CPU may fail to do 16bit near call
|
||
[2790768] Memory corruption with SMP > 32, Panic BIOS Keyboard Error
|
||
[2902118] interrupts vectors 0x60 to 67 should be NULL !
|
||
[2912502] Instruction Pointer behaving erratically
|
||
[2901047] Bochs crashed, closed by guest os
|
||
[2905385] Bochs crash
|
||
[2901481] Instruction SYSRET and SS(PL)
|
||
[2900632] Broken long mode RETF to outer priviledge with null SS
|
||
[1429011] Use bx_phyaddr_t for physaddr vars and bx_address for lin adr
|
||
|
||
- these S.F. feature requests were closed/implemented
|
||
[2955911] RPM preuninstall scriptlet removes /core
|
||
[2947863] don't abort on unrecognised options
|
||
[2878861] numerics in the disassembler output
|
||
[2900619] make more CPU state changeable
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.4.2 (November 12, 2009):
|
||
|
||
- CPU and internal debugger
|
||
- VMX: Implemented TPR shadow VMEXIT
|
||
- Bugfixes for CPU emulation correctness (mostly for VMX support).
|
||
- Bugfixes and updates for Bochs internal debugger
|
||
- On SMP system stepN command now affects only current processor
|
||
|
||
- Memory
|
||
- Bugfixes for > 32-bit physical address space.
|
||
- Allow to emulate more physical memory than host actually could or would
|
||
like to allocate. For more details look for new .bochsrc 'memory' option.
|
||
|
||
- Cleanup configure options
|
||
- All paging related options now will be automatically determined according
|
||
to --enable-cpu-level option. Related configure options
|
||
--enable-global-pages, --enable-large-pages,
|
||
--enable-pae, --enable-mtrr
|
||
are deprecated now. Only 1G paging option still remaining unchanged.
|
||
- Deprecate --enable-daz configure option. Denormals-are-zeros MXCSR control
|
||
will be enabled automatically iff SSE2 is supported (like in hardware).
|
||
- Deprecate --enable-vme configure option, now it will be supported iff
|
||
CPU_LEVEL >= 5 (like in hardware).
|
||
|
||
- I/O Devices
|
||
- Bugfixes for 8254 PIT, VGA, Cirrus-Logic SVGA, USB UCHI
|
||
|
||
- SF patches applied
|
||
[2817840] Make old_callback static by Mark Marshall
|
||
[2874004] fix for VMWRITE instruction by Roberto Paleari
|
||
[2873999] fix CS segment type during fast syscall invocation by Roberto Paleari
|
||
[2864389] Debugger gui maximize on startup by Thomas Nilsen
|
||
[2817868] Rework loops in the memory code by Mark Marshall
|
||
[2812948] PIT bug by Derek
|
||
|
||
- these S.F. bugs were closed/fixed
|
||
[2833504] GUI debugger bug-about GDT display
|
||
[2872244] BIOS writes not allowed value to MTRR MSR causing #GP
|
||
[2885383] SDL GUI memory leak
|
||
[2872290] compilation in AIX5.3 ML10 failes
|
||
[2867904] crash with cirrus bx_vga_c::mem_write
|
||
[2851495] BIOS PCI returns with INT flag = 0
|
||
[2860333] vista 64 guest STOP 109 (GDT modification)
|
||
[2849745] disassembler bug for 3DNow and SSE opcodes
|
||
[1066748] Wrong registers values after #RESET, #INIT
|
||
[2836893] Regression: Windows XP installer unable to format harddrive
|
||
[2812239] VMX: VM-Exit: Incorrect instruction length on software int
|
||
[2814130] bx_debug lex/yacc files incorrectly generated
|
||
[2813199] MP Tables Missing From BIOS
|
||
[2824093] VMX exception bug
|
||
[2811909] VMX : CS Access-rights Type.Accessed stays 0
|
||
[2810571] Compile Errors on OSX
|
||
[2823749] GCC regression or VM_EXIT RDMSR/WRMSR bug
|
||
[2815929] Vista/XP64 unnecessary panic
|
||
[2803519] Wrong example in man page bochsrc
|
||
|
||
- these S.F. feature requests were closed/implemented
|
||
[422766] Large Memory configurations
|
||
[1311287] Idea for a better GUI
|
||
[455971] USB support
|
||
[615363] debugger shortcut for repeat last cmd
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.4.1 (June 7, 2009):
|
||
|
||
- Fixed bunch of CPUID issues
|
||
- Bochs is now able to install and boot 64-bit Windows images!
|
||
(special thanks to Mark Ebersole for his patch)
|
||
- Several bugfixes in CPU emulation (mostly for x87 instructions)
|
||
- Fixed two critical deadlock bugs in the Win32 gui (patches from @SF tracker)
|
||
- Fixes related to the 'show ips' feature
|
||
- removed conflicting win32-specific alarm() functions ('win32' and 'sdl' gui)
|
||
- feature now works in wx on win32
|
||
- Added support for gdb stub on big endian machine (patch by Godmar Back)
|
||
- Rewritten obsolete hash_map code in dbg symbols module (patch from @SF)
|
||
- BIOS: implemented missing INT 15h/89h (patch by Sebastian Herbszt)
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.4 (May 3, 2009):
|
||
|
||
Brief summary :
|
||
|
||
- Added graphical Bochs debugger frontend for most of the supported platforms.
|
||
- Thanks for Chourdakis Michael and Bruce Ewing.
|
||
- Many new CPU features in emulation
|
||
- Support for > 32 bit physical address space and configurable MSRs
|
||
- VMX, 1G pages in long mode, MOVBE instruction
|
||
- Bugfixes for CPU emulation correctness, debugger and CPU instrumentation.
|
||
- New config interface 'win32config' with start and runtime menu
|
||
- USB: added OHCI support, external hub and cdrom
|
||
- Added user plugin interface support.
|
||
|
||
Detailed change log :
|
||
|
||
- CPU and internal debugger
|
||
- Support for VMX hardware emulation in Bochs CPU, to enable configure with
|
||
--enable-vmx option
|
||
Nearly complete VMX implementation, with few exceptions:
|
||
- Dual-monitor treatment of SMIs and SMM not implemented yet
|
||
- NMI virtualization, APIC virtualization not implemented yet
|
||
- VMENTER to not-active state not supported yet
|
||
- No advanced features like Extended Page Tables or VPID
|
||
- Support for configurable MSR registers emulation, to enable configure with
|
||
--enable-configurable-msrs option
|
||
Look for configuration example in .bochsrc and msrs.def
|
||
- Support new Intel Atom(R) MOVBE instruction, to enable configure with
|
||
--enable-movbe option
|
||
- Support for 1G pages in long mode, to enable configure with
|
||
--enable-1g-pages option
|
||
- Support for > 32 bit physical address space in CPU. Up to 36 bit could be
|
||
seen in legacy mode (PAE) and up to 40 bit in x86-64 mode.
|
||
Still support the same amount of the physical memory in the memory object,
|
||
so system with > 4Gb of RAM yet cannot be emulated.
|
||
To enable configure with --enable-long-phy-address option.
|
||
- Implemented modern BIOSes mode limiting max reported CPUID function
|
||
to 3 using .bochsrc CPU option. The mode is required in order to
|
||
correctly install and boot WinNT.
|
||
- Added ability to configure CPUID vendor/brand strings through .bochsrc
|
||
(patch from @SF by Doug Reed).
|
||
- Many bugfixes for CPU emulation correctness (both x86 and x86-64).
|
||
- Updated CPU instrumentation callbacks.
|
||
- Fixed Bochs internal debugger breakpoints/watchpoints handling.
|
||
|
||
- Configure and compile
|
||
- Added ability to choose Bochs log file name and Bochs debugger log file
|
||
name from Bochs command line (using new -log and -dbglog options)
|
||
- Removed Peter Tattam's closed source external debugger interface from
|
||
the code.
|
||
- Removed --enable-guest2host-tlb configure option. The option is always
|
||
enabled for any Bochs configuration.
|
||
- Removed --enable-icache configure option. The option is always enabled
|
||
for any Bochs configuration. Trace cache support still remains optional
|
||
and could be configured off.
|
||
- Added configure option to compile in GUI frontend for Bochs debugger,
|
||
to enable configure with --enable-debugger-gui option.
|
||
The GUI debugger frontend is enabled by default with Bochs debugger.
|
||
- Removed --enable-port-e9-hack configure option. The feature now could be
|
||
configured at runtime through .bochsrc.
|
||
- Added configure option to enable/disable A20 pin support. Disabling the
|
||
A20 pin support slightly speeds up the emulation.
|
||
- reduced dependencies between source files for faster code generation
|
||
|
||
- BIOS
|
||
- Added S3 (suspend to RAM) ACPI state to BIOS (patch by Gleb Natapov)
|
||
- Implemented MTRR support in the bios (patches by Avi Kivity and Alex
|
||
Williamsion with additions by Sebastian Herbszt)
|
||
- Bug fixes
|
||
|
||
- I/O Devices
|
||
- Added user plugin support
|
||
- remaining devices converted to plugins: pit, ioapic, iodebug
|
||
- added 'plugin_ctrl' bochsrc option to control the presence of optional
|
||
device plugins without a separate option. By default all plugins are enabled.
|
||
- added register mechanism for removable mouse and keyboard devices
|
||
- Hard drive / cdrom
|
||
- PACKET-DMA feature now supported by all ATAPI commands
|
||
- ATAPI command 0x1A added (based on the Qemu implementation)
|
||
- sb16
|
||
- Added ALSA sound support on Linux (PCM/MIDI output)
|
||
- FM synthesizer now usable with MIDI output (simple piano only)
|
||
- Fixed OPL frequency to MIDI note translation
|
||
- Fixed MIDI output command
|
||
- keyboard
|
||
- added keyboard controller commands 0xCA and 0xCB
|
||
- USB
|
||
- USB code reorganized to support more HC types and devices
|
||
- added USB OHCI support written by Ben Lunt
|
||
- added external USB hub support (initial code ported from Qemu)
|
||
- added USB cdrom support (SCSI layer ported from Qemu)
|
||
- added status bar indicators to show data transfer
|
||
- VGA
|
||
- VBE video memory increased to 16 MB
|
||
- implemented changeable VBE LFB base address (PCI only, requires latest
|
||
BIOS and VGABIOS images)
|
||
- I/O APIC
|
||
- implemented I/O APIC device hardware reset
|
||
|
||
- Config interface
|
||
- new config interface 'win32config' with start and runtime menu is now
|
||
the default on Windows ('textconfig' is still available)
|
||
- win32 device config dialogs are now created dynamicly from a parameter list
|
||
(works like the wx ParamDialog)
|
||
- changes in textcofig and the wx ParamDialog for compatibility with the new
|
||
win32 dialog behaviour
|
||
- Bochs param tree index keys are case independent now
|
||
- some other additions / bugfixes in the simulator interface code
|
||
|
||
- Misc
|
||
- updated LGPL'd VGABIOS to version 0.6c
|
||
- Updated Bochs TESTFORM to version 0.4
|
||
|
||
- SF patches applied
|
||
[2784858] IO Handler names are not compared properly
|
||
[2712569] Legacy bios serial data buffer timeout bug by grybranix
|
||
[2655090] 64 bit BSWAP with REX.W broken by M. Eby
|
||
[2645919] CR8 bug when reading by M. Eby
|
||
[1895665] kvm: bios: add support to memory above the pci hole by Izik Eidus
|
||
[2403372] rombios: check for valid cdrom before using it by Sebastian
|
||
[2307269] acpi: handle S3 by Sebastian
|
||
[2354134] TAP networking on Solaris/Sparc repaired
|
||
[2144692] The scsi device can not complete its writing data command by naiyue
|
||
[1827082] [PATCH] Configurable CPU vendor by Marcel Sondaar
|
||
[2217229] Panic on EBDA overflow in rombios32 by Sebastian
|
||
[2210194] Log pci class code by Sebastian
|
||
[1984662] red led for disk write and titlebar mod by ggbsf
|
||
[2142955] Fix for monitor/mwait by Doug Gibson
|
||
[2137774] Patch to fix bug: cdrom: read_block: lseek returned error by Gabor Olah
|
||
[2134642] Fix scan_to_scanascii table for F11 and F12 by Ben Guthro & Steve Ofsthun
|
||
[2123036] sdl fullscreen fix by ggbsf
|
||
[2073039] Remove CMOS accsess from AML code by Gleb Natapov
|
||
[2072168] smbios: add L1-L3 cache handle to processor information by Sebastian
|
||
[2055416] bochsrc cpu options for cpuid vendor and brand string by Doug Reed
|
||
[2035278] rombios: Fix return from BEV via retf by Sebastian
|
||
[2035260] rombios: El Torito load segment fix by Sebastian
|
||
[2031978] Fix VMware backdoor command 0Ah by Jamie Lokier
|
||
[2015277] Remove obsolete comment about DATA_SEG_DEFS_HERE hack by Sebastian
|
||
[2011268] Set new default format and unit only if both are supported by Sebastian
|
||
[2001919] gdbstub: fix qSupported reply by Sebastian
|
||
[2001912] gdbstub: enclose packet data by apostrophes by Sebastian
|
||
[1998071] fix missing SIGHUP and SIGQUIT with term ui on mingw by Sebastian
|
||
[1998063] fix wrong colors with term ui by Sebastian
|
||
[1995064] Compile fix needed for --enable-debugger and gcc 4.3 by Hans de Goede
|
||
[1994564] Fix typo in RDMSR BX_MSR_MTRRFIX16K_A0000 by Sebastian
|
||
[1994396] Change hard_drive_post #if by Sebastian
|
||
[1993235] TESTFORM email address update by Sebastian
|
||
[1992322] PATCH: fix compilation of bochs 2.3.7 on bigendian machines by Hans de Goede
|
||
[1991280] Shutdown status code 0Ch handler by Sebastian
|
||
[1990108] Shutdown status code 0Bh handler by Sebastian
|
||
[1988907] Shutdown status code 0Ah handler by Sebastian
|
||
[1984467] two typos in a release! (2.3.7)
|
||
[1981505] Init PIIX4 PCI to ISA bridge and IDE by Sebastian
|
||
|
||
- these S.F. bugs were closed/fixed
|
||
[2784148] an integer overflow BUG of Bochs-2.3.7 source code
|
||
[2695273] MSVC cpu.dsp failure in 2.3.7.zip
|
||
[616114] Snapshot/Copy crash on Win2K
|
||
[2628318] 'VGABIOS-latest' bug
|
||
[1945055] can't 'make install' lastest bochs on loepard
|
||
[2031993] Mac OS X Makefile bug
|
||
[1843199] install error on mac osx
|
||
[2710931] Problem compiling both instrumentation and debugger
|
||
[2617003] ExceptionInfo conflicts with OS X api
|
||
[2609432] stepping causes segfault (CVS)
|
||
[2605861] compile error with --enable-smp
|
||
[1757068] current cvs(Jul19, 07) failed to boot smp
|
||
[2426271] cannot get correct symbol entry
|
||
[2471982] VGA character height glitches
|
||
[1659659] wrong behaviour a20 at boot
|
||
[1998027] minwg + --with-term + --with-out-win32 = link failure
|
||
[1871936] bochs-2.3.6 make fails on wx.cc
|
||
[1684666] info idt for long mode
|
||
[2105989] could not read() hard drive image file at byte 269824
|
||
[1173093] Debugger totally not supports x86-64
|
||
[1803018] new win32debug dialog problems
|
||
[2141679] windows vcc build broken
|
||
[2162824] latest cvs fails to compile
|
||
[2164506] latest bochs fails to start
|
||
[2129223] MOV reg16, SS not working in real mode due to dead code
|
||
[2106514] RIS / startrom.com install ALMOST works
|
||
[2123358] SMP (HTT): wbinvd executed by CPU1 crashes CPU0
|
||
[2002758] Arch Linux: >>PANIC<< ATAPI command with zero byte count
|
||
[2026501] El Torito incorrect boot segment:offset
|
||
[2029758] BEV can return via retf instead of int 18h
|
||
[2010173] x command breaks after one error about x/s or x/i
|
||
[1830665] harddrv PANIC: ATAPI command with zero byte count
|
||
[1985387] fail to make using gcc4 with --enable-debugger
|
||
[1990187] testform feedback
|
||
[1992138] Misspell in cpu/ia_opcodes.h
|
||
|
||
- these S.F. feature requests were closed/implemented
|
||
[2175153] Update MSVC project files
|
||
[658800] front end program and bios
|
||
[1883370] Make cd and floppy images more usable
|
||
[422783] change floppy size without restarting
|
||
[2552685] param tree names should be case insensitive
|
||
[1214659] PC Speaker emu turnoff. Plugin Controll.
|
||
[1977045] support 40 bit physical address
|
||
[1506385] Intel Core Duo VT features
|
||
[1429015] Support for user plugins
|
||
[1488136] debugger access to floppy controller
|
||
[1363136] Full debugger SMP and 64 bit support
|
||
[2068304] Support for ACPI
|
||
[431032] debugger "x" command
|
||
[423420] profiling ideas (SMF)
|
||
[445342] Add FM support?
|
||
[928439] alsa
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.3.7 (June 3, 2008):
|
||
|
||
Brief summary :
|
||
|
||
+ More optimizations in CPU code - Bochs 2.3.7 is more than 2x faster
|
||
than Bochs 2.3.5 build !
|
||
- Implemented LBA48 support in BIOS
|
||
- Added memory access tracing for Bochs internal debugger
|
||
- Implemented Intel(R) XSAVE/XRSTOR and AES instruction set extensions
|
||
- Many fixes in CPU emulation and internal debugger
|
||
- MenuetOS64 floppy images booting perfect again !
|
||
- updated LGPL'd VGABIOS to version 0.6b
|
||
|
||
Detailed change log :
|
||
|
||
- CPU
|
||
- Support of XSAVE/XRSTOR CPU extensions, to enable configure with
|
||
--enable-xsave option
|
||
- Support of AES CPU extensions, to enable configure with
|
||
--enable-aes option
|
||
- Fixed Bochs failure on RISC host machines with BxRepeatSpeedups
|
||
optimization enabled
|
||
- Implemented SYSENTER/SYSEXIT instructions in long mode
|
||
- More than 100 bugfixes for CPU emulation correctness (both x86 and x86-64)
|
||
- MenuetOS64 floppy images booting perfect again !
|
||
- Updated CPU instrumentation callbacks
|
||
|
||
- Bochs Internal Debugger and Disassembler
|
||
- Added memory access tracing for Bochs internal debugger, enable
|
||
by typing 'trace-mem on' in debugger command line
|
||
- Many bug fixes in Bochs internal debugger and disassembler
|
||
|
||
- System BIOS (Volker)
|
||
- Implemented LBA48 support
|
||
- Added generation of SSDT ACPI table that contains definitions
|
||
for available processors
|
||
- Added RTC device to ACPI DSDT table
|
||
- Added implementation of SMBIOS
|
||
|
||
- I/O devices (Volker)
|
||
- VGA
|
||
- Implemented screen disable bit in sequencer register #1
|
||
- Implemented text mode cursor blinking
|
||
- Serial
|
||
- new serial modes 'pipe-server' and 'pipe-client' for win32
|
||
- new serial mode 'socket-server'
|
||
|
||
- Configure and compile
|
||
- Fixed configure bug with enabling of POPCNT instruction, POPCNT
|
||
instruction should be enabled by default when SSE4.2 is enabled.
|
||
- Removed --enable-magic-breakpoint configure option. The option is
|
||
automatically enabled if Bochs internal debugger is compiled in.
|
||
It is still possible to turn on/off the feature through .bochsrc.
|
||
- Allow boot from network option in .bochsrc
|
||
- Added Bochs version info for Win32
|
||
|
||
- Display libraries
|
||
- implemented text mode character blinking in some guis
|
||
- improved 'X' gui runtime dialogs
|
||
|
||
- SF patches applied
|
||
[1980833] Fix shutdown status code 5h handler by Kevin O'Connor
|
||
[1928848] "pipe" mode for serial port (win32 only) by Eugene Toder
|
||
[1956843] Set the compatible pci interrupt router back to PIIX by Sebastian
|
||
[1956366] Do not announce C2 & C3 cpu power state support by Igor Lvovsky
|
||
[1921733] support for LBA48 by Robert Millan
|
||
[1938185] Fix link problem with --enable-debugger by Sebastian
|
||
[1938182] Makefile.in - use @IODEV_LIB_VAR@ by Sebastian
|
||
[1928945] fix for legacy rombios - e820 map and ACPI_DATA_SIZE by Sebastian
|
||
[1925578] rombios32.c - fix ram_size in ram_probe for low memory setup by Sebastian
|
||
[1908921] rombios32.c - move uuid_probe() call by Sebastian
|
||
[1928902] improvements to load-symbols by Eugene Toder
|
||
[1925568] PATCH: msvc compilation by Eugene Toder
|
||
[1913150] rombios.c - e820 cover full size if memory <= 16 mb by Alexander van Heukelum
|
||
[1919804] rombios.c - fix and add #ifdef comments by Sebastian
|
||
[1909782] rombios.c - remove segment values from comment by Sebastian
|
||
[1908918] SMBIOS - BIOS characteristics fix by Sebastian
|
||
[1901027] BIOS boot menu support (take 3)
|
||
[1902579] rombios32.c - define pci ids by Sebastian
|
||
[1859447] Pass segment:offset to put_str and introduce %S by Sebastian
|
||
[1889057] rombios.c - boot failure message by Sebastian
|
||
[1891469] rombios.c - print BEV product string by Sebastian
|
||
[1889851] Win32 version information FILEVERSION for bochs.exe by Sebastian
|
||
[1889042] rombios.c - fix comment by Sebastian
|
||
[1881500] bochsrc, allow boot: network by Sebastian
|
||
[1880755] Win32 version information for bochs.exe by Sebastian
|
||
[1880471] SMBIOS fix type 0 by Sebastian
|
||
[1878558] SMBIOS fixes by Sebastian
|
||
[1864692] SMBIOS support by Filip Navara
|
||
[1865105] Move bios_table_area_end to 0xcc00 by Sebastian
|
||
[1875414] Makefile.in - change make use by Sebastian
|
||
[1874276] Added instrumentation for sysenter/sysexit by Lluis
|
||
[1873221] TLB page flush: add logical address to instrumentation by Lluis
|
||
[1830626] lba32 support by Samuel Thibault
|
||
[1861839] Move option rom scan after floppy and hard drive post by Sebastian
|
||
[1838283] Early vga bios init by Sebastian
|
||
[1838272] rom_scan range parameter by Sebastian
|
||
[1864680] Save CPUID signature by Filip Navara
|
||
|
||
- these S.F. bugs were closed
|
||
[1976171] Keyboard missing break code for enter (0x9C)
|
||
[666433] physical read/write breakpoint sometimes fails
|
||
[1744820] info gdt and info idt shows the entire tables
|
||
[1755652] graphics: MenuetOS64 shows black screen
|
||
[1782207] Windows Installer malfunction, Host=Linux, Guest=Win98SE
|
||
[1697762] OS/2 Warp Install Failed
|
||
[1952548] String to char * warnings
|
||
[1940714] SYSENTER/SYSEXIT doesn't work in long mode
|
||
[1422342] SYSRET errors
|
||
[1923803] legacy rombios - e820 map and ACPI_DATA_SIZE
|
||
[1936132] Link problem with --enable-debugger & --enable-disasm
|
||
[1934477] Linear address wrap is not working
|
||
[1424984] virtual machine freezes in Bochs 2.2.6
|
||
[1902928] with debugger cpu_loop leaves CPU with unstable state
|
||
[1898929] Bochs VESA BIOS violates specs (banks == 1)
|
||
[1569256] bug in datasegment change in long mode
|
||
[1830662] ACPI: no DMI BIOS year, acpi=force is required
|
||
[1868806] VGA blink enable & screen disable
|
||
[1875721] Bit "Accessed" in LDT/GDT descriptors & #PF
|
||
[1874124] bx_Instruction_c::ilen() const
|
||
[1873488] bochs-2.3.6 make fails on dbg_main.cc
|
||
|
||
- these S.F. feature requests were implemented
|
||
[1422769] SYSENTER/SYSEXIT support in x86-64 mode
|
||
[1847955] Version information for bochs(dbg).exe
|
||
[939797] SMBIOS support
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.3.6 (December 24, 2007):
|
||
|
||
Brief summary :
|
||
|
||
+ More than 25% emulation speedup vs Bochs 2.3.5 release!
|
||
|
||
- Thanks to Darek Mihocka (http://www.emulators.com)
|
||
for providing patches and ideas that made the
|
||
speedup possible!
|
||
|
||
+ Up to 40% speedup vs Bochs 2.3.5 release with trace cache optimization!
|
||
|
||
- Lots of bugfixes in CPU emulation
|
||
- Bochs benchmarking support
|
||
- Added emulation of Intel SSE4.2 instruction set
|
||
|
||
Detailed change log :
|
||
|
||
- CPU
|
||
- Added emulation of SSE4.2 instruction set, to enable use
|
||
--enable-sse=4 --enable-sse-extension configure options
|
||
to enable POPCNT instruction only use configure option
|
||
--enable-popcnt
|
||
- Implemented MTRR emulation, to enable use --enable-mtrr configure
|
||
option. MTRRs is enabled by default when cpu-level >= 6.
|
||
- Implemented experimental MONITOR/MWAIT support including optimized
|
||
MWAIT CPU state and hardware monitoring of physical address range,
|
||
to enable use --enable-monitor-mwait configure option.
|
||
- Removed hostasm optimizations, after Bochs rebenchmarking it was found
|
||
that the feature bringing no speedup or even sometimes slows down
|
||
emulation!
|
||
- Merged trace cache optimization patch, the trace cache optimization
|
||
is enabled by default when configure with --enable-all-optimizations
|
||
option, to disable trace cache optimization configure with
|
||
--disable-trace-cache
|
||
- Many minor bugfixes in CPU emulation (both ia32 and x86-64)
|
||
- Updated CPU instrumentation callbacks
|
||
|
||
- Bochs Internal Debugger and Disassembler
|
||
- Many fixes in Bochs internal debugger and disassembler, some debugger
|
||
interfaces significantly changed due transition to the param tree
|
||
architecture
|
||
- Added support for restoring of the CPU state from external file
|
||
directly from Bochs debugger
|
||
|
||
- Configure and compile
|
||
- Renamed configure option --enable-4meg-pages to --enable-large-pages.
|
||
The option enables page size extensions (PSE) which refers to 2M pages
|
||
as well.
|
||
- Removed --enable-save-restore configure option, save/restore feature
|
||
changed to be one of the basic Bochs features and compiled by default
|
||
for all configurations.
|
||
- Added new Bochs benchmark mode. To run Bochs in benchmark mode execute
|
||
it with new command line option 'bochs -benchmark time'. The emulation
|
||
will be automatically stopped after 'time' millions of emulation
|
||
cycles executed.
|
||
- Another very useful option for benchmarking of Bochs could be enabled
|
||
using new 'print_timestamps' directive from .bochsrc:
|
||
print_timestamps: enable=1
|
||
- Added --enable-show-ips option to all configuration scripts used to
|
||
build release binaries, so all future releases will enjoy IPS display.
|
||
- Enable alignment check in the CPU and #AC exception by default for
|
||
--cpu-level >= 4 (like in real hardware)
|
||
|
||
- SF patches applied
|
||
[1491207] Trace Cache Speedup patch by Stanislav
|
||
[1857149] Define some IPL values by Sebastian
|
||
[1850183] Get memory access mode in BX_INSTR_LIN_READ by Lluis Vilanova
|
||
[1841421] pic: keep slave_pic.INT and master_pic.IRQ_in bit 2 in sync by Russ Cox
|
||
[1841420] give segment numbers in exception logs by Russ Cox
|
||
[1801696] Allow Intel builds on Mac OS X
|
||
[1830658] Fix >32GB disk banner by Samuel Thibault
|
||
[1813314] Move #define IPL_* and typedef ipl_entry by Sebastian
|
||
[1809001] Save PnP Option ROM Product Name string in IPL Boot Table by Sebastian
|
||
[1821242] Fix for #1801285, Niclist.exe broken by Sebastian
|
||
[1819567] Code warning cleanup
|
||
[1816162] Update comment on bios_printf() by Sebastian
|
||
[1811139] Trivial Fix when BX_PCIBIOS and BX_ROMBIOS32 not defined by Myles Watson
|
||
[1811190] Improve HD recognition and CD boot by Myles Watson
|
||
[1811860] Implement %X in bios_printf by Sebastian
|
||
[1809649] printf %lx %ld %lu by Myles Watson
|
||
[1809651] move BX_SUPPORT_FLOPPY by Myles Watson
|
||
[1809652] dpte and Int13DPT fixes by Myles Watson
|
||
[1809669] clip cylinders to 16383 in hard drive by Myles Watson
|
||
[1799903] Build BIOS on amd64 by Robert Millan
|
||
[1799877] Fix for parallel build (make -j2) by Robert Millan
|
||
|
||
- these S.F. bugs were closed
|
||
[1837354] website bug: View the Source link broken
|
||
[1801268] Reset from real mode no longer working
|
||
[1843250] Using forward slashes gives invalid filename
|
||
[1823446] BIOS bug, local APIC #0 not detected
|
||
[1801285] Niclist.exe broken
|
||
[1364472] breakpoints sometimes don't work
|
||
[994451] breakpoint bug
|
||
[1801295] NSIS installer vs Windows Notepad
|
||
[1715328] Unreal mode quirk
|
||
[1503972] debugger doesn't debug first instruction on exception
|
||
[1069071] div al, byte ptr [ds:0x7c18] fails to execute
|
||
[1800080] Wrong "BX_MAX_SMP_THREADS_SUPPORTED" assertion
|
||
|
||
- these S.F. feature requests were implemented
|
||
[1662687] Download for Win32-exe with x64 Mode and debugging
|
||
[604221] Debugger command: query lin->phys mapping
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.3.5 (September 16, 2007):
|
||
|
||
Brief summary :
|
||
- Critical problems fixed for x86-64 support in CPU and Bochs internal debugger
|
||
- ACPI support
|
||
- The release compiled with x86-64 and ACPI
|
||
- Hard disk emulation supports ATA-6 (LBA48 addressing, UDMA modes)
|
||
- Added emulation of Intel SSE4.1 instruction set
|
||
|
||
Detailed change log :
|
||
|
||
- CPU
|
||
- Fixed critical bug with 0x90 opcode (NOP) handling in x86-64 mode
|
||
- implied stack references where the stack address is not in canonical form
|
||
should causes a stack exception (#SS)
|
||
- Added emulation of SSE4.1 instruction set (Stanislav)
|
||
- Do not save and restore XMM8-XMM15 registers when not in x86-64 mode
|
||
- Fixed zero upper 32-bit part of GPR in x86-64 mode
|
||
- CMOV_GdEd should zero upper 32-bit part of GPR register even if the
|
||
'cmov' condition was false !
|
||
- Implemented CLFLUSH instruction, report non-zero cache size in CPUID
|
||
- Fixed PUSHA/POPA instructions behavior in real mode
|
||
- Fixed detection of inexact result by FPU
|
||
- Fixed denormals-are-zero (DAZ) handling by SSE convert instructions
|
||
- Implemented Misaligned Exception Mask support for SSE (MXCSR[17])
|
||
- Implemented Alignment Check in the CPU and #AC exception, to enable
|
||
use --enable-alignment-check configure option
|
||
|
||
- General
|
||
- 2nd simulation support in wxBochs now almost usable (simulation cleanup
|
||
code added and memory leaks fixed)
|
||
|
||
- Configure and compile
|
||
- several fixes for MacOSX, OpenBSD and Solaris 10
|
||
- enable save/restore feature by default for all configurations
|
||
- reorganized SSE configure options to match Intel(R) Programming
|
||
Reference Manual, new option introduced for SSE extensions enabling.
|
||
To enable Intel Core Duo 2 new instructions use
|
||
--enable-sse=3 --enable-sse-extension
|
||
enabling of SSE4.1 (--enable-sse=4) will enable SSE3 extensions as well
|
||
- removed old PIT, always use new PIT written by Greg Alexander,
|
||
removed configure option --enable-new-pit
|
||
|
||
- I/O devices (Volker)
|
||
- Floppy
|
||
- partial non-DMA mode support (patch by John Comeau)
|
||
- Hard drive / cdrom
|
||
- hard disk emulation now supports ATA-6 (LBA48 addressing, UDMA modes)
|
||
- VMWare version 4 disk image support added (patch by Sharvil Nanavati)
|
||
- PCI
|
||
- initial support for the PIIX4 ACPI controller
|
||
- Serial
|
||
- added support for 3-button mouse with Mousesystems protocol
|
||
- USB
|
||
- experimental USB device change support added
|
||
- rewrite of the existing USB devices code
|
||
- new USB devices 'disk' and 'tablet' (ported from the Qemu project)
|
||
|
||
- Bochs internal debugger
|
||
- fixed broken debugger "rc file" option (execute debugger command from file)
|
||
- implementation of a gui frontend ("windebug") for win32 started
|
||
- gdbstub now accepts connection from any host
|
||
- several documentation updates
|
||
- a lot of disasm and internal debugger x86_64 support fixes
|
||
|
||
- Configuration interface
|
||
- fixes and improvements to the save state dialog handling
|
||
|
||
- Display libraries
|
||
- text mode color handling improved in some guis
|
||
- win32 fullscreen mode (patch by John Comeau)
|
||
|
||
- System BIOS (Volker)
|
||
- 32-bit PM BIOS init code for ACPI, PCI, SMP and SMM (initial patches by
|
||
Fabrice Bellard)
|
||
- PCI BIOS function "find class code" implemented
|
||
|
||
- SF patches applied
|
||
[1791000] 15h 8600h is reading the wrong stack frame by Sebastian
|
||
[1791016] rombios32.c, ram_probe(), BX_INFO missing value by Sebastian
|
||
[1786429] typo in bochsrc.5 by Sebastian
|
||
[1785204] Extend acpi_build_table_header to accept a revision number by Sebastian
|
||
[1766536] Partial Patch for Bug Report 1549873 by Ben Lunt
|
||
[1763578] ACPI Table Revision 0 -> 1
|
||
[1642490] implement alignment check and #AC exception by Stanislav Shwartsman
|
||
[1695652] [PATCH] .pcap pktlog and vnet PXE boot by Duane Voth
|
||
[1741153] Add expansion-ROM boot support to the ROMBIOS
|
||
[1734159] Implemented INT15h, fn 0xC2 (mouse), subfn 3, set resolution
|
||
[1712970] bios_printf %s fix
|
||
[1573297] PUSHA/POPA real mode fix by Stanislav Shwartsman
|
||
[1641816] partial support for non-DMA access to floppy by John Comeau
|
||
[1624032] shows where write outside of memory occurred by John Comeau
|
||
[1607793] allow fullscreen when app requests it by John Comeau
|
||
[1603013] Bugfix for major NOP problem on x64 by mvysin
|
||
[1600178] Make tap and tuntap compile on OpenBSD by Jonathan Gray
|
||
[1149659] improve gdbstub network efficiency by Avi Kivity
|
||
[1554502] Trivial FPU exception handling fix
|
||
|
||
- these S.F. bugs were closed
|
||
[1316008] Double faults when it shouldn't - gcc 4.0.2
|
||
[1787289] broken ABI for redolog class when enable-compressed-hd
|
||
[1787500] tftp_send_optack not 64bit clean
|
||
[1264540] Security issue with Bochs website
|
||
[1767217] Debugger Faults including ud2
|
||
[1729822] Various security issues in io device emulation
|
||
[1675202] mptable hosed (bad entry count in header)
|
||
[1197141] 'make install' installs to bad location
|
||
[1157623] x86Solaris10 cannot recoginize ACPI RSD PTR
|
||
[1768254] large HDD in Bochs/bximage
|
||
[1496157] Windows Vista Beta2 dosn't boot
|
||
[1755915] Illegal Hard Disk Signature Output
|
||
[1717790] info gdt and info idt scrolls away, too long result
|
||
[1726640] Debugger displays incorrect segment for mov instruction
|
||
[1719156] Typo in misc_mem.cpp
|
||
[1715270] Debugger broken in/beyond 2.3
|
||
[1689107] v8086 mode priviledge check failed
|
||
[1704484] A few checks when CPU_LEVEL < 4
|
||
[1678395] Problem with zero sector...
|
||
[876990] SA-RTL OS fails on PIC configuration
|
||
[1673582] save/restore didn't restore simulation correctly
|
||
[1586662] EDD int 13h bug, modify eax
|
||
[666618] POP_A Panic in DOS EMU
|
||
[1001485] panic: not enough bytes on stack
|
||
[1667336] delay times an order of magnitude slow
|
||
[1665601] crash disassembling bootcode
|
||
[1657065] CVS sources won't compile
|
||
[1653805] bochs's gdbstub uses incorrect protocol
|
||
[1640737] ASM sti command frezzes guest OS
|
||
[1636439] latest CVS sources don't compile under Cygwin
|
||
[1634357] disasm incorrect (no sign ext) displacement in 64-bit mode
|
||
[1376453] pcidev segfaults bochs
|
||
[1180890] IOAPIC in BOCHS - WinXP 64 in MP version
|
||
[1597528] 2.3 fails to compile on amd64
|
||
[1526255] FLD1 broken when compaling with gcc 4.0.x
|
||
[1597451] eth_fbsd is broken under FreeBSD
|
||
[1571949] Bochs will not compile under Solaris
|
||
[1500216] Bochs fails to boot BeOs CD
|
||
[1458339] bochs-2.2.6 WinXP Binary ACPI error installing FreeBSD 6.0
|
||
[1440011] patches needed for FreeBSD 6.0 to compile Bochs
|
||
[431674] some devices don't have a prefix
|
||
[458150] QNX demo disk crashes with new pit
|
||
[818322] Bochs 2.1 cvs: OS/2 - read verify on non disk
|
||
[906840] KBD: bogus scan codes generated in set 3
|
||
[1005053] No keyboard codes translation
|
||
[1109374] Problem with Scancodeset 2
|
||
[1572345] Bochs won't continue
|
||
[1568153] Bochs looks for (and loads?) unspecified display libraries
|
||
[1563462] Errors in /iodev/harddrv.h
|
||
[1562172] TLB_init() fails to initialize priv_check array if USE_TLB 0
|
||
[1385303] debugger crashes after panic
|
||
[1438227] crc.cpp missing in bx_debug version 2.2.6
|
||
[1501825] debugger crashes on to high input
|
||
[1420959] Memory leak + buffer overflow in Bochs debugger
|
||
[1553289] Error in Dis-assembler
|
||
[542464] I cannot use FLAT
|
||
[1548270] Bochs won't die with its pseudo terminal
|
||
[1545588] roundAndPackFloatx80 does not detect round up correctly
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.3 (August 27, 2006):
|
||
|
||
Brief summary :
|
||
- limited save/restore support added (config + log options, hardware state)
|
||
- configuration parameter handling rewritten to a parameter tree
|
||
- lots of cpu and internal debugger fixes
|
||
- hard disk geometry autodetection now supported by most of the image types
|
||
- hard disk emulation now supports ATA-3 (multiple sector transfers)
|
||
- VBE memory size increased to 8MB and several VGA/VBE fixes
|
||
- updated LGPL'd VGABIOS to version 0.6a
|
||
|
||
Detailed change log :
|
||
|
||
- CPU and internal debugger fixes
|
||
- Fixed bug in FSTENV instruction (Stanislav Shwartsman)
|
||
- Recognize #XF exception (19) when SSE is enabled
|
||
- Fixed bug in PSRAW/PSRAD MMX and SSE instructions
|
||
- Save and restore RIP/RSP only for FAULT-type exceptions, not for traps
|
||
- Correctly decode, disassemble and execute multi-byte NOP '0F F1' opcode
|
||
- Raise A20 line after system reset (Stanislav Shwartsman)
|
||
- Implemented SMI and NMI delivery (APIC) and handling in CPU (Stanislav)
|
||
- Experimental implementation of System Management Mode (Stanislav)
|
||
- Added emulation of SSE3E instructions (Stanislav Shwarstman)
|
||
- Save and restore FPU opcode, FIP and FDP in FXSAVE/FRSTOR instructions
|
||
- Fixed bug in MOVD_EdVd opcode (always generated #UD exception)
|
||
- Fixed critical issue, Bochs was not supporting > 16 bit LDT.LIMIT values
|
||
- Many fixes in Bochs internal debugger and disassembler
|
||
|
||
- CPU x86-64 fixes
|
||
- Fixed SYSRET instruction implementation
|
||
- Fixed bug in CALL/JMP far through 64-bit callgate in x86-64 mode
|
||
- Correctly decode, disassemble and execute 'XCHG R8, rAX' instruction
|
||
- Correctly decode and execute 'BSWAP R8-R15' instructions
|
||
- Fixed ENTER and LEAVE instructions in x86-64 mode (Stanislav)
|
||
- Fixed CR4 exception condition (No Name)
|
||
- Fixed x86 debugger to support x86-64 mode (Stanislav)
|
||
|
||
- APIC and SMP
|
||
- Support for Dual Core and Intel(R) HyperThreading Technology. Now you
|
||
could choose amount of cores per processor and amount of HT threads per
|
||
core from .bochsrc for SMP simulation (Stanislav Shwartsman)
|
||
- Allow to control SMP quantum value through .bochsrc CPU
|
||
option parameter. Previous Bochs versions used hardcoded quantum=5
|
||
value.
|
||
- Fixed interrupt priority bug in service_local_apic()
|
||
- Fixed again reading of APIC IRR/ISR/TMR registers. Finally it becomes
|
||
fully correct :-)
|
||
|
||
- Configure and compile
|
||
- Moved configure time --enable-reset-on-triple-fault option to runtime,
|
||
the 'cpu' option in .bochsrc is extended and the old configure option
|
||
is deprecated (Stanislav Shwartsman)
|
||
- Removed --enable-pni configure option, to compile with PNI use
|
||
--enable-sse=3 instead (Stanislav Shwartsman)
|
||
- enable SEP (SYSENTER/SYSEXIT) support by default for Penitum II+
|
||
processor emulation (i.e. if cpu-level >= 6 and MMX is enabled)
|
||
|
||
- general
|
||
- Limited save/restore support added. The state of CPU, memory and all
|
||
devices can be saved now (state of harddisk images not handled yet).
|
||
- Fixed several memory leaks
|
||
|
||
- configuration interface
|
||
- Configuration parameter handling rewritten to a parameter tree. This is
|
||
required for dynamic menus/dialogs, user-defined options and save/restore.
|
||
- Support for user-defined bochsrc options added
|
||
- help support at the parameter prompt in textconfig added
|
||
|
||
- I/O devices (Volker)
|
||
- Floppy
|
||
- partial sector transfers fixed
|
||
- Hard drive / cdrom
|
||
- several fixes to the IDE register behaviour (e.g. in case of a channel
|
||
with only one drive connected)
|
||
- fixed data alignment of 'growing' hard drive images (sharing images
|
||
between Windows and Linux now possible)
|
||
- disk geometry autodetection now supported by most of the image types
|
||
(unsupported: external, dll and compressed modes)
|
||
- multi sector read/write commands implemented
|
||
- hard disk now reporting ATA-3 supported
|
||
- ATAPI 'inquiry' now returns a unique device name
|
||
- Keyboard
|
||
- reset sent to keyboard has no effect on the 8042 (scancode translation)
|
||
- PCI
|
||
- forward PIRQ register changes to the I/O APIC (if present)
|
||
- attempt to fix and update the emulation part of 'pcidev' (untested)
|
||
- VGA
|
||
- VBE memory size increased to 8MB and several VBE fixes
|
||
- VGA memory read access fixed (bit plane access and read mode)
|
||
- VGA memory is now a part of the common video memory
|
||
|
||
- System BIOS (Volker)
|
||
- enable interrupts before executing INT 19h
|
||
- fixed ATA device detection in case of one drive only connected to controller
|
||
- improved INT 15h function AX=E820h
|
||
- real mode PCI BIOS now returns IRQ routing information (function 0Eh)
|
||
- keyboard LED flags handling fixed and improved
|
||
- fixed handling of extended keys in INT 09h
|
||
- Updated LGPL'd VGABIOS to version 0.6a
|
||
|
||
- SF patches applied
|
||
[1340111] fixes and updates to usb support by Ben Lunt
|
||
[1539420] minor addition to pci_usb code by Ben Lunt
|
||
[1455958] call/jmp through call gate in 64-bit mode
|
||
[1433107] PATCH: fix compile with wxwindows 2.6 (unicode / utf8) by jwrdegoede
|
||
[1386671] Combined dual core and hyper-threading patch
|
||
|
||
- these S.F. bugs were closed
|
||
[833927] TTD: System Error TNT.40025: Unexpected processor exception
|
||
[789230] Sending code that shows lock up when setting idt
|
||
[909670] Problems with Symantec Ghost
|
||
[1540241] include missing in osdep.cc
|
||
[1539373] Incorrect disasm for "mov moffset,bla" in 64bit
|
||
[1538419] incorrect disassembly of [rip+disp] with rex.b
|
||
[1535432] shift+cursor key maps to a digit
|
||
[1504891] Knoopix 5.0.1 error
|
||
[1424355] bochs-2.2.6 ata failure in windoze 98se
|
||
[1533979] wrong disassembly of IN instruction
|
||
[620059] paste won't stop
|
||
[1164904] status bar doesn't show num/caps/scroll lock status
|
||
[1061720] ATA Support level for HD
|
||
[1522196] Broken CHANGES link in main page
|
||
[1438415] crash if screen scrolled downwards
|
||
[778441] Shouldn't interrupts be enable after BIOS?
|
||
[1514949] I got a problem with the 8253 timer
|
||
[1513544] disasm of 0xec (in AL,DX) returns ilen of 2 instead of 1
|
||
[1508947] APIC interrupt priority checking and interrupt delivery
|
||
[766286] Debugger halts after any GPF exception
|
||
[639143] va_list is not a pointer on linuxppc
|
||
[1501815] debugger examines memory over page-boundary wrong
|
||
[1503978] movsb/w/d doesn't work when direction is stored
|
||
[1499405] WinPCap has changed URL hosting
|
||
[1498519] APIC IRR bits not set while interrupts disabled
|
||
[1498193] Bochs segfaults on LTR instruction
|
||
[787140] Guest2HostTLB optimization bug
|
||
[1492070] instrument stop
|
||
[1487772] No SEP on P4
|
||
[1488335] Growing hard disk images severe interoperability errors!
|
||
[1076312] Shadow RAM and TLB
|
||
[1282249] The real i440FX chipset Award bios hangs
|
||
[1479763] mistake "mov ax,[es:di]" for "mov ax,[ds:di]"
|
||
[1453575] Misconfigured floppy DMA transfers do not terminate.
|
||
[1460068] Incorrect handling for the Options Menu Item
|
||
[910203] bochs-2.1.1 wx.lo failed
|
||
[1438654] PANIC when trying to run install-amd64-minimal-2005.0.iso
|
||
[1458320] compile hdimage.h fails
|
||
[1455880] bochs-2.2.6,2: make error on FreeBSD
|
||
[696890] Network wouldn't run under W2k hosting MSDOS
|
||
[673391] SMP timer problems
|
||
[1291059] wxWindows GUI on non-windows/configure issue
|
||
[1356450] bochs 2.2.1 errors-omittions
|
||
[1178017] Win98 guest cannot receive network packets from host
|
||
[1076315] a20_mask after restarting
|
||
[1436323] real hw does not panic when bad Ib in CMPSS_VssWssIb
|
||
[1435269] cdrom_amigaos is not compilable
|
||
[1433314] disasm issues
|
||
[1170614] relative jumps/calls wrong in debugger
|
||
[758121] user might get confused when interrupt handler invoked
|
||
[1170622] You cannot toggle OFF "show" flags
|
||
[1406387] JMP instruction should display absolute address
|
||
[1428813] PANIC: ROM address space out of range
|
||
[1426288] DR-DOSs EMM386 problem
|
||
[1412036] Bochs cannot recognize PCI NIC correctly
|
||
[435115] dbg: modebp broken and no docs
|
||
[1419366] disasm cs:eip does not work anymore
|
||
[1419393] SSE's #XF exception -> "exception(19): bad vector"
|
||
[1419429] disassembly of "260f6f00" show DS: instead of ES: prefix
|
||
[1417583] Interrupt behaviour changed from 2.2.1 to 2.2.5
|
||
[1418281] 'push' (6A) incorrectly disassembled
|
||
[1417791] FLDENV generating exception when real hw does not.
|
||
[1264583] OS/2 1.1 doesn't run
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.2.6 (January 29, 2006):
|
||
|
||
- First major SMP release !
|
||
- several APIC and I/O APIC fixes make SMP Bochs booting Windows NT4.0
|
||
or Knoppix 4.0.2 without noapic kernel option in SMP configuration.
|
||
- critical APIC timer bug fixed
|
||
- obsolete SMP BIOS images removed (MP tables created dynamicaly)
|
||
- determine number of processors in SMP configuration through .bochsrc
|
||
new .bochsrc option 'CPU' allows to choose number of processors to emulate
|
||
- new configure option --enable-smp to configure Bochs for SMP support,
|
||
the old --enable-processors=N option is deprecated
|
||
- CPU and internal debugger fixes
|
||
- enabled #PCE bit in CR4 register, previosly setting of this bit
|
||
generated #GP(0) fault
|
||
- enabled LAHF/SAHF instructions in x86-64 mode
|
||
- fixed bug in PMULUDQ SSE2 instruction
|
||
- fixes in Bochs debugger
|
||
- Configure and compile
|
||
- enable VME (virtual 8086 mode extensions) by default if cpu-level >= 5
|
||
- enable Bochs disassembler by default for all configurations
|
||
- win32 installer script improvements
|
||
- ips parameter moved to new 'CPU' option
|
||
- show IPS value in status bar if BX_SHOW_IPS is enabled
|
||
- Other
|
||
- several fixes in the hard drive, keyboard, timer, usb and vga code
|
||
- new user button shortcut "bksl" (backslash)
|
||
- updated Bochs instrumentation examples
|
||
- user and development documentation improved
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.2.5 (December 30, 2005):
|
||
|
||
Brief summary :
|
||
- added virtual 8086 mode extensions (VME) implementation
|
||
- several fixes/improvements in x86-64 emulation, debugger and disassembler
|
||
- new serial mode 'socket' connects a network socket
|
||
- IDE busmaster DMA feature for harddisks and cdroms completed and enabled
|
||
- many improvements in Bochs emulated I/O devices (e.g. floppy, cdrom)
|
||
- Updated LGPL'd VGABIOS to version 0.5d
|
||
|
||
Detailed change log :
|
||
|
||
- CPU
|
||
- fixed XMM registers restore in FXRSTOR instruction (Andrej Palkovsky)
|
||
- print registers dump to the log if tripple fault occurred
|
||
- fixed PANIC in LTR instruction (Stanislav)
|
||
- added virtual 8086 mode extensions (VME) implementation, to enable
|
||
configure with --enable-vme (Stanislav)
|
||
- flush caches and TLBs when executing WBINVD and INVD instructions
|
||
- do not modify segment limit and AR bytes when modifying segment
|
||
register in real mode (support for unreal mode)
|
||
- fixed init/reset values for LDTR and TR registers
|
||
- reimplemented hardware task switching mechanism (Stanislav)
|
||
- generate #GP(0) when fetching instruction cross segment boundary
|
||
|
||
- CPU (x86-64) (Stanislav Shwartsman)
|
||
- implemented call_far/ret_far/jmp_far instructions in long mode
|
||
- fixed IRET operation in long mode
|
||
- fixed bug prevented setting of NXE/FFXSR bits in MSR.EFER register
|
||
- implemented RDTSCP instruction
|
||
- do not check CS.limit when prefetching instructions in long mode
|
||
- fixed masked write instructions (MASKMOVQ/MASKMOVDQU) in long mode
|
||
- fetchdecode fixes for x86-64
|
||
|
||
- APIC
|
||
- Fixed bug in changing local APIC id (Stanislav)
|
||
- Fixed reading of IRR/ISR/TMR registers (patch by wmrieker)
|
||
- Implemented spurious interrupt register (Stanislav, patch by wmrieker)
|
||
- Fixed interrupt delivery bug (anonymous #SF patch)
|
||
- Correctly implemented ESR APIC register (Stanislav)
|
||
|
||
- Bochs debugger
|
||
- Fixed bug in bochs debugger caused breakpoints doesn't fire sometimes
|
||
(Alexander Krisak)
|
||
- watchpoints in device memory fixed (Nickolai Zeldovich)
|
||
- new debug interface to access Bochs CPU general purpose registers
|
||
with support for x86-64
|
||
|
||
- Disassembler (Stanislav Shwartsman)
|
||
- Fixed disassembly for FCOMI/FUCOMI instructions
|
||
- Full x86-64 support in disassembler. The disassembler module extended
|
||
to support x86-64 extensions. Still limited by Bochs debugger which
|
||
is not supporting x86-64 at all ;(
|
||
|
||
- I/O devices (Volker)
|
||
- general
|
||
- memory management prepared for large BIOS images (up to 512k)
|
||
- slowdown timer sleep rate fixed (now using 1 msec on all platforms)
|
||
- some device specific parameter handlers moved into the device code
|
||
- serial
|
||
- new serial mode 'socket' connects a network socket (#SF patch by Andrew Backer)
|
||
- hard drive / cdrom
|
||
- assign a unique serial number to each drive (fixes harddrive detection
|
||
problems with Linux kernels 2.6.x: "ignoring undecoded slave")
|
||
- geometry autodetection for 'flat' hard disk images added. Works with
|
||
images created with bximage (heads = 16, sectors per track = 63)
|
||
- ATAPI command 'read cd' implemented, some other commands improved
|
||
- cdrom read block function now tries up to 3 times before giving up
|
||
- emulation of raw cdrom reads added, some other lowlevel cdrom fixes
|
||
- IDE busmaster DMA feature for harddisks and cdroms completed and enabled
|
||
- disk image size limit changed from 32 to 127 GB
|
||
- split ATA/ATAPI emulation code and image handling code
|
||
- floppy
|
||
- fixes for OS/2 (patch by Robin Kay)
|
||
- disk change line behaviour fixed (initial patch by Ben Lunt)
|
||
- end-of-track (EOT) condition handling implemented
|
||
- more accurate timing for read/write data and format track commands using
|
||
a motor speed of 300 RPM
|
||
- timing of recalibrate and seek commands now depends on the step rate,
|
||
date rate and the steps to do
|
||
- floppy controller type changed to 82077AA
|
||
- cmos
|
||
- RTC 12-hour and binary mode implemented
|
||
- number of CMOS registers changed from 64 to 128
|
||
- bochsrc option 'cmosimage' improved
|
||
- save cmos image on exit if enabled
|
||
- speaker
|
||
- simple speaker support for OS X added (patch by brianonn@telus.net)
|
||
- pci
|
||
- BeOS boot failure fix in the PCI IDE code
|
||
- don't register i/o and memory regions during PCI probe
|
||
- vga
|
||
- memory allocation for vga extensions fixed
|
||
- usb
|
||
- some bugfixes by Ben Lunt (mouse and keypad are usable now)
|
||
- networking modules
|
||
- VDE networking module now enabled on Linux
|
||
|
||
- display libraries
|
||
- general
|
||
- new syntax for the userbutton shortcut string and more keys supported
|
||
- win32
|
||
- fixed keycode generation for right alt/ctrl/shift keys
|
||
- runtime dialog is now a property sheet
|
||
- x11
|
||
- simple dialog boxes for the "ask" and "user shortcut" feature implemented
|
||
- Slovenian keymap added (contributed by Mitja Ursic)
|
||
|
||
- configuration interface
|
||
- ask dialog is now enabled by default for win32, wx and x display libraries
|
||
- bochsrc option floppy_command_delay is obsolete now (floppy timing now based
|
||
on hardware specs)
|
||
- floppy image size detection now available in the whole config interface
|
||
- some device specific parameter handlers moved into the device code
|
||
- calculate BIOS ROM start address from image if not specified
|
||
|
||
- System BIOS (Volker)
|
||
- PCI i/o and memory base address initialization added
|
||
- several keyboard interrupt handler fixes (e.g. patch by japheth)
|
||
- several floppy fixes (e.g. OS/2 works with patch by Robin Kay)
|
||
- some more APM functions added
|
||
- Updated LGPL'd VGABIOS to version 0.5d
|
||
- generate SMP specific tables dynamicly by the Bochs memory init code
|
||
|
||
- SF patches applied
|
||
[1389776] Disk sizes over 64 Gbytes by Andrzej Zaborowski
|
||
[1359162] disasm support for x86-64 by Stanislav Shwartsman
|
||
[857235] task priority and other APIC bugs, etc by wmrieker
|
||
[1359011] build breaks for 386 + debugger + disasm by shirokuma
|
||
[1352761] Infinite loop when trying to debug a triple exception
|
||
[1311170] small APIC bug fix (interrupt sent to the wrong CPU)
|
||
[1309763] Watchpoints don't work in device memory by Nickolai Zeldovich
|
||
[1294930] change line status on floppy by Ben Lunt
|
||
[1282033] SSE FXRESTORE not working correctly by Ondrej Palkovsky
|
||
[816979] wget generalizations by Lyndon Nerenberg
|
||
[1214886] No more pageWriteStamp / unified icache by H. Johansson
|
||
[1107945] com->socket redirection support by Andrew Backer
|
||
|
||
- these S.F. bugs were closed
|
||
[669180] win95 install : unknown SET FEATURES subcommand 0x03
|
||
[1346692] bochs 2.2.1 VGA BIOS error
|
||
[1354963] floppy in KolibriOS
|
||
[1378204] error: bochs-2.2.1, --enable-sb16, --disable-gameport
|
||
[1368412] VDE problems in BOCHS
|
||
[533446] CPU and APIC devices appear twice
|
||
[1000796] bximage fails to create image of specified size
|
||
[1170793] Quarterdeck QEMM doesn't work
|
||
[923704] Multiple opcode prefixes don't reflect Trap 13
|
||
[1166392] DocBook/documentation issues
|
||
[1368239] broken grater than 4GB size of sparse type hd image
|
||
[1365830] i386 compile breaks on paging
|
||
[427550] Incomplete IRETD implementation
|
||
[1215081] MSVC workspace STILL not fixed
|
||
[736279] Jump to Task
|
||
[1356488] FD change fail & occur error
|
||
[957615] [CPU ] prefetch: RIP > CS.limit
|
||
[1353866] not booting linux-2.6.14
|
||
[1351667] load32bitOSImage does not work with --enable-x86-debugger
|
||
[1217476] Incorrect (?) handling of segment registers in real mode
|
||
[1184711] OS2 DOS crash [2.2.pre2]
|
||
[624330] support for disks > 32GiB
|
||
[1348368] bochs 2.2.1 bximage error
|
||
[1342081] Configuration Menu option failed
|
||
[1138616] OS/2 Warp 4 hangs when booting
|
||
[1049840] mouse and video conflict
|
||
[1164570] Unable to perform Fedora Core 4 test 1 installation
|
||
[1183201] Windows 2000 (MSDN build 2150?) does not completely install
|
||
[1194284] Can't boot from CD-ROM (Windows NT)
|
||
[962969] Windows NT crashes while trying to intall them.
|
||
[1054594] WinXP install halts (redo)
|
||
[1153107] Windows XP fails with BSOD on 'vga'
|
||
[938518] Win XP installation fails
|
||
[645420] getHostMemAddr vetoed direct read
|
||
[1179985] MS XENIX: >>PANIC<< VGABIOS panic at vgabios.c, line 0
|
||
[1329600] WBINVD and INVD should flush caches and TLB
|
||
[638924] eliminate BX_USE_CONFIG_INTERFACE
|
||
[1048711] Funny behaviour with CTRL
|
||
[1288450] keyboard BIOS error
|
||
[1310706] Keyboard - about key SHIFT
|
||
[1295981] Ubuntu 5.04 Live-CD won't boot in Bochs
|
||
[879047] APIC timer behavior different before reset and after
|
||
[1188506] I still can't install the german Windows XP!
|
||
[1301847] Windows XP dosn't boot - FXRSTOR problem ?
|
||
[661259] does not boot QNX under WinX
|
||
[924412] Keyboard lock states all whacked
|
||
[681127] MIPSpro compiler (IRIX) is allergic to ^M
|
||
[1285923] BIOS keyboard handler
|
||
[516639] ATA controller revisited...
|
||
[657918] does not boot BeOS under WinX
|
||
[649245] BeOS CD locks halfway on boot
|
||
[1094385] Attachment for bug 1090339 (beos failure)
|
||
[1183196] BeOS 4.5 developer CD does not install
|
||
[1090339] BeOS fails to boot
|
||
[639484] panics when int 13 is called
|
||
[711701] divide by zero
|
||
[704295] ATAPI/BIOS call missing
|
||
[682856] hard drive problems
|
||
[627691] Cursor keys problem
|
||
[588011] keyboard not working
|
||
[542260] os/2 warp crashes with floppy handling
|
||
[1273878] SB16 doesn't work in pure DOS
|
||
[542254] OS/2 FDC driver dies
|
||
[1099610] Windows 98 SE Does not install
|
||
[875479] cr3 problem on task switch
|
||
[731423] NE2000 causing PANIC on Win2K detection
|
||
[1156155] bochs fails to boot plan9 iso
|
||
[1251979] --enable-cpu-level=3 should assume --without-fpu
|
||
[1257538] Interupt 15h 83h - set wait event interval
|
||
[658396] Panic for DR DOS emm386
|
||
[679339] /? doesn't divulge Bochs command-line syntax
|
||
[1167016] call/jump/return_protected doesn't support x86-64
|
||
[1252432] Mac OS X compile bug
|
||
[881442] Bochs 2.1 PANIC when loading DOS Turbo Pascal protected mode
|
||
[1249324] Boch2.2.1 Buffer Overfollow in void bx_local_apic_c::init ()
|
||
[1197144] 'make install' has dependency on wget
|
||
[1079595] LTR:386TSS: loading tr.limit < 103
|
||
[1244070] Compilation Error in gui/rfb.cc
|
||
[761707] CPU error when trying to start Privateer
|
||
[517281] Crash running Privateer in DOS...
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.2.1 (July 8, 2005):
|
||
|
||
- Fixed several compilation warnings and errors for different platforms (Volker)
|
||
- Fixed FPU tag word restore in FXRSTOR instruction (Stanislav)
|
||
- Added missing scancodes for F11 and F12 to BIOS translation table (Volker)
|
||
- Bochs disassembler bugfixes (h.johansson)
|
||
- About 5% emulation speed improvement (h.johansson)
|
||
- Handle writing of zero to APIC timer initial count register (Stanislav)
|
||
- Enable Idle-Hack for 'TERM' GUI (h.johansson)
|
||
- Reduced overhead of BX_SHOW_IPS option to minimum. Now every simulation
|
||
could run with --enable-show-ips without significant performance
|
||
penalty. (Stanislav)
|
||
- Fixed pcipnic register access (Volker)
|
||
- Limited write support for TFTP server in 'vnet' networking module added (Volker)
|
||
- Changed some timing defaults to more useful values (Volker)
|
||
- WinXP/2003 style common controls now supported (Vitaly Vorobyov)
|
||
- Updated LGPL'd VGABIOS to version 0.5c (Volker)
|
||
- Added new BX_INSTR_HLT callback to instrumentation (Stanislav)
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.2 (May 28, 2005):
|
||
|
||
Brief summary :
|
||
- New floating point emulator based on SoftFloat floating point
|
||
emulation library.
|
||
- improved x86-64 emulation
|
||
- Cirrus SVGA card emulation added
|
||
- status bar with indicators for keyboard, floppy, cdrom and disk (gui dependant)
|
||
- many improvements in Bochs emulated I/O devices (e.g. PCI subsystem)
|
||
|
||
Detailed change log :
|
||
|
||
- CPU
|
||
- fixes for booting OS/2 by Dmitri Froloff
|
||
- fixed v8086 priveleged instruction processing bug (was also reported
|
||
by LightCone Aug 7 2003)
|
||
- exception process bug (was reported by Diego Henriquez Sat Nov 15
|
||
01:16:51 CET 2003)
|
||
- segment validation with IRET instruction
|
||
- CS segment not present exception processing with IRET
|
||
- several fixes by Kevin Lawton
|
||
- add MSVC host asm instructions (patch by suzu)
|
||
- fixed bug in HADDPD/HSUBPD (SSE3) instructions
|
||
- fixed bug in float to integer SSE/SSE2 convert instructions
|
||
- fixed BCD instructions implementation
|
||
- execution speed improvements (sshwarts and psychosmur)
|
||
- fix MSR_APICBASE base address (Kangmo Kim, Christian Neubert)
|
||
- change BX_PANIC messages to BX_INFO when behaviour exactly
|
||
matches Intel docs
|
||
- EIP > CS.limit case should always cause #GP(0), even in real mode.
|
||
Fixed all jump, call and ret instructions for 16/32 modes
|
||
- fixed using invalid segment register for MOV instruction (h.johansson)
|
||
- fixed ET bit mismatch between CR0 and SMSW instruction
|
||
- fixed possible simulator #DIVZERO fault when executing IDIV instruction
|
||
- fixed undocumented flags handling for BTS, BTR, SHR, SHLD, MUL and IMUL
|
||
instructions (Stanislav Shwartsman)
|
||
- added missed #GP(0) exception when loading incorrect flags combination
|
||
to CR0 (Stanislav Shwartsman)
|
||
- in case of --enable-ignore-bad-msr enabled read ignored MSRs as zero
|
||
- enabled #DE, #TSD and #MCE bits in CR4 register, previosly setting
|
||
of one of these bits generated #GP(0) (Stanislav, Volker Ruppert)
|
||
- exceeding the instruction length limit of 15 bytes (this only can
|
||
occur when redundant prefixes are placed before an instruction)
|
||
generate #GP(0) (Stanislav Shwartsman)
|
||
- corrected PAE functionality
|
||
|
||
- CPU (x86-64)
|
||
- fetchdecode fixes for x86-64 and 3DNow! (Stanislav)
|
||
- fixed CF flag handling for SHL instruction in x86-64 mode (Stanislav)
|
||
- implemented CR8 register (aliased to APIC.TPR[7:4]) (Stanislav)
|
||
- implemented NXE bit (No-Execute page protection) support (Stanislav)
|
||
- STOSQ instruction emulation fixed (Avi Kivity)
|
||
- allow null SS selector for MOV SS, POP SS, and LSS instructions
|
||
in long mode (Avi Kivity)
|
||
- ignore segment bases for all segments (except FS and GS) in long
|
||
mode (Avi Kivity)
|
||
- allow SYSENTER/SYSEXIT instructions together with x86-64 (Stanislav)
|
||
- canonical address checking for RIP (Stanislav)
|
||
|
||
- FPU (Stanislav Shwartsman)
|
||
- totally rewritten all FPU code based on softfloat library
|
||
- significantly improved accuracy of all floating point
|
||
instructions.
|
||
- implemented all missed P6 and PNI floating point instructions.
|
||
- hundreds of bug fixes in FPU code.
|
||
|
||
TODO:
|
||
! Unmasked underflow/overflow should correct the result
|
||
by magic number for all operations, including float32
|
||
and float64.
|
||
|
||
- APIC (Zwane Mwaikambo)
|
||
- APIC arbitration
|
||
- Processor priority
|
||
- Various interrupt delivery fixes
|
||
- Focus processor checking
|
||
- ExtINT delivery
|
||
|
||
- Disassembler
|
||
- fixed MOV opcode 0x88, had exchanged the operands (h.johansson)
|
||
- fixed MOV opcode 0xA3, had wrong operand size (h.johansson)
|
||
- fixed BOUND opcode 0x62 (Stanislav)
|
||
- fixed CALLW opcode 0xFF /3 and JMPW opcode 0xFF /5 (Stanislav)
|
||
- fixed INS opcode 0x6D, had wrong operand size (Stanislav)
|
||
- fixed disassembly for repeatable instructions (Stanislav)
|
||
- fixed sign-extended immediate opcodes (Stanislav)
|
||
- fixed MOVSS/MOVSD instructions opcode names (Stanislav)
|
||
- fixed NEG instruction opcode name (Stanislav)
|
||
- fixed CMPXCHG8B instruction, had wrong operand size (Stanislav)
|
||
- fixed floating point instructions operands (Stanislav)
|
||
- experimental support of AT&T syntax in disassembler (Stanislav)
|
||
|
||
- I/O devices
|
||
- general
|
||
- handle cpu reset through port 0x92
|
||
- new memory handler API for PCI i/o and memory handling (Frank Cornelis)
|
||
- speaker emulation for Linux (David N. Welton) and Win32 (Volker Ruppert) added
|
||
- pci
|
||
- PCI slot configuration added for 5 slots (Volker)
|
||
- PCI irq routing, irq sharing and level sensitive irq mode implemented
|
||
- ne2k device appears as a Realtec 8029 NIC if connected to a PCI slot
|
||
- PCI IDE controller dummy device added
|
||
- PCI host device mapping for Linux (Frank Cornelis)
|
||
- PCI Pseudo-NIC emulation (Michael Brown)
|
||
- serial
|
||
- multiple serial port support added (4 ports now available)
|
||
- partial raw serial support on win32 (transmit data)
|
||
- serial port i/o mode option added (modes: null, file, term, raw, mouse)
|
||
- parallel
|
||
- multiple parallel port support added (2 ports now available)
|
||
- mouse
|
||
- serial mouse support (Volker)
|
||
- PS/2 and serial wheel mouse support (Ben Lunt)
|
||
- usb
|
||
- USB mouse and keypad support (Ben Lunt)
|
||
- config option to specify devices connected to USB ports
|
||
- vga
|
||
- VBE 8 bit DAC support added
|
||
- VBE memory now registered using DEV_register_memory_handlers()
|
||
- CL-GD 54xx SVGA emulation added (Makoto Suzuki)
|
||
- vga extension option added (choices: vbe, cirrus, none) (Volker)
|
||
- floppy
|
||
- raw floppy access now works on Win9x host (Ben Lunt)
|
||
- sb16
|
||
- MacOSX sound support (Brian Huffman)
|
||
- networking modules
|
||
- new: 'eth_vnet' simulates ARP, DHCP, ICMP-echo and read-only TFTP
|
||
(m_suzu, easeway)
|
||
- new: 'eth_vde' for Virtual Distributed Ethernet (Renzo Davoli)
|
||
|
||
- System BIOS
|
||
- turn floppy motor off 2 seconds after last read/write/recalibrate command
|
||
(Ben Lunt)
|
||
- int13_cdrom / 32 bit register update fixes for FreeBSD cdrom boot
|
||
(Fabrice Bellard)
|
||
- APM and system shutdown support (Fabrice Bellard)
|
||
- checksum calculation for expansion ROMs
|
||
- extended floppy parameter table (Mike Nordell, Derek Favcus)
|
||
- PCI IRQ initialisation added
|
||
- boot sequence with up to 3 boot devices added
|
||
|
||
- display libraries
|
||
- status bar with indicators for cdrom, floppy, harddisk and keyboard added
|
||
(done in rfb, sdl, win32, wx and x)
|
||
- 3rd (middle) mouse button now supported (rfb, sdl, win32, wx, x)
|
||
- mouse wheel support (sdl, win32, x)
|
||
- CTRL key + middle mouse button now used to toggle the mouse capture mode
|
||
(sdl, win32, wx, x)
|
||
- text mode split screen feature added (sdl, win32, wx, x)
|
||
- new gui function returns the display library capabilities (xres, yres, bpp)
|
||
for the Bochs VBE support
|
||
- display library specific options added - currently supported:
|
||
rfb: timeout (time to wait for client connection)
|
||
sdl: fullscreen (startup in fullscreen mode)
|
||
win32: legacyF12 (use F12 to toggle mouse)
|
||
- new graphics update API added (used by svga_cirrus) (Robin Kay)
|
||
|
||
- configuration interface
|
||
- win32: gui runtime dialogs replace textconfig runtime dialogs
|
||
- set default IPS to 10000000 in .bochsrc sample
|
||
- SB16 options dmatimer and loglevel now available at runtime
|
||
|
||
- configure script / compile
|
||
- --enable-ignore-bad-msr (ignore bad MSR references) option is enabled
|
||
by default
|
||
- --enable-mmx enabled by default only if cpu-level >= 5
|
||
- --enable-4meg-pages will be enabled by default if cpu-level >= 5
|
||
- fixes for Solaris SunPro (Robin Kay)
|
||
- --enable-pni option added
|
||
- --enable-show-ips option added, enable Instruction Per Second counter
|
||
in log file
|
||
- autodetection for lowlevel sound support added
|
||
|
||
- documentation
|
||
- a bunch of updates in user and documentation docs (Alexander Schuch)
|
||
|
||
- SF patches applied
|
||
[894595] MSR_APICBASE always returns APIC ADDRESS 0 by Kangmo Kim
|
||
[907163] ctrl_xfer8 clean/speed up
|
||
[907161] clean/speed up of io.cc
|
||
[899972] data xfer performance patch V 2.0.4
|
||
[904549] imul gives incorrect result in long mode
|
||
[877510] amd64 fixes...
|
||
[903465] SEGV in iodev/ne2k.cc line 1211 on Alpha architecture by Christian Lestrade
|
||
[903332] copy the bximage result to clipboard, etc by Lukewarm
|
||
[950905] Do not PANIC on rare, bad input from user-mode by h.johansson
|
||
[924428] ET bit mismatch between CR0 and MSW
|
||
[869822] a real SVGA implementation by m_suzu
|
||
[867045] fix for compiler errors on VC++ by m_suzu
|
||
[838601] support for the over 2GB disk size with MSVC++
|
||
[874816] local ARP/ping/DHCP simulator by m_suzu
|
||
[976066] Keyboard: Get controller version by Ben Lunt
|
||
[832330] ROMBIOS improvement (reduce stack consumption, etc.)
|
||
[977900] READ_CDROM_TOC and base address by Ben Lunt
|
||
[961665] WinXP patch to read physical CDROM's TOC by Ben Lunt
|
||
[978793] CDROM_SENSE_MODE medium_type by Ben Lunt
|
||
[615457] gif to png migration
|
||
[1021767] Portability in sb16ctrl.c by Robert Millan
|
||
[690400] gzip is confused by GZIP variable in Makefile
|
||
[567595] guess floppy image size from image file length by Tal Benavidor
|
||
[888426] bochsrc to make vnet useful by m_suzu
|
||
[1021758] GNU/k*BSD host support by Robert Millan
|
||
[969967] int 15/ah=87h clearing cr0 by Ben Lunt
|
||
[1048327] Russian Keymap by Dmitry Soshnikov
|
||
[851332] DESTDIR support for install_dlx by Ville Skytt<74>
|
||
[970929] gdbstub support for MinGW tool chains by Muranaka Masaki
|
||
[1021740] Turn gdb stub into a runtime option by Charles Duffy
|
||
[1063329] RFB key press/release bug fix by Remko van der Vossen
|
||
[1079240] Wheel Mouse by Ben Lunt
|
||
[1087537] Fix for Win9x CD boot by lukewarm
|
||
[1083218] Start of wheel for USB #2 by Ben Lunt
|
||
[1098480] bochsrc: fixed floppya example by Alexander Schuch (ci-dev)
|
||
[1094407] configure.in: changed wxWindows to wxWidgets by Alexander Schuch
|
||
[1092058] serial.cc debug output cleanup by Ben Lunt
|
||
[1101165] APIC base address by Christian Neubert (flashburn)
|
||
[1093796] Fix for bug #1093786 (Nigel Horne)
|
||
[1082584] The start of Bus mice and USB mice by Ben Lunt
|
||
[1104695] msvc6 compatibility update (Royce Mitchell III)
|
||
[1059199] VGA text font bug fix (Anonymous)
|
||
[1108001] Null pointer on bx_atexit() (Ben Lunt)
|
||
[1112093] Fixed mouse cursor remain area drawing (Anonymous)
|
||
[1114826] Fix PCIBIOS (Destruction prevention of esi and edi)
|
||
[1095473] Reading from a CDRW (Fixed) by Ben Lunt
|
||
[1123895] x86-64 gdb/debugger fixes by Avi Kivity
|
||
[1145423] stosq simulation bugfix by Avi Kivity
|
||
[1151012] allow null ss on x86-64 by Avi Kivity
|
||
[1153327] ignore segment bases in x86-64 by Avi Kivity
|
||
[1153511] Fixed broken screen update (VBE)
|
||
[1152808] use 'install' instead of 'cp' during installation by Avi Kivity
|
||
[1159626] bugfix [1156776] keyboard scanmode fault by Rene Kootstra
|
||
[843328] PATCH: support for Flat-style ToolBar with Win32GUI
|
||
[1198308] PATCH: fix incorrect moving mouse cursor when wheel used
|
||
[1200515] add TFTP server to vnet & ipv4 bug fix by easeway
|
||
[1203305] tuntap incompatibility by Jan Kratochvil
|
||
|
||
- SF patches partially applied
|
||
[896733] Lazy flags, for more instructions, only 1 src op
|
||
[1005422] Improve mouse cursol Grub when 2 buttons-mouse use (WIN32)
|
||
(TODO: improved japanese keyboard support)
|
||
|
||
- patches applied
|
||
- patch.rombios.markevich (Start/Stop Wait Timer) (Kory Markevich)
|
||
- patch.apic-zwane (APIC fixes) (Zwane Mwaikambo)
|
||
- patch.v8086-exception.lightcone (LightCone)
|
||
|
||
- these S.F. bugs were closed
|
||
#957660 >>PANIC<< APIC: R(curr timer count): delta < initial
|
||
#1192654 60 x 90 text not quite right...
|
||
#1189097 "configure --with-sdl --with-rfb" doesn't compile
|
||
#1188980 Crash on XP when break into debugger
|
||
#1186693 Improving quality of ./configure --help
|
||
#1185245 Errors Making Bochs with Mingw32
|
||
#1185289 PSE is not enabled by default on Pentium
|
||
#1170620 info cpu scrolls away, is too long
|
||
#1157998 ips shown even when waiting for input
|
||
#663108 APIC Timer Bug
|
||
#831750 bochs unlike real PC in paging
|
||
#1182698 PAE support doesn't work
|
||
#954400 debugger causes segfaults when gcc 3.4.0 is used
|
||
#1171312 Possible SMP problem with ICACHE pageWriteStamp
|
||
#1179964 PANIC: RIP>CS.limit when jumping to longmode
|
||
#1171067 configure fails to add -lpthread
|
||
#1171065 Term UI needs -lncurses
|
||
#1171061 SDL GUI startup failure
|
||
#1022056 win32 error build debug version..c2146
|
||
#957190 error while attempting to compile sb16.cc
|
||
#804797 Debugger: visualization problem (jmp)
|
||
#675523 2.0.1 doesn't run on W2K?
|
||
#1167358 When using 5430PCI in DR-DOS Bochs would panic with a PUSHAD
|
||
#1164654 Bochs VBE bios causing exception 0B in Windows 95 (SVGA bios)
|
||
#1162983 conflicts which configure could detect
|
||
#1164536 Windows 95 B crashes during install
|
||
#526978 cygwin: in an rxvt, stdout is flaky
|
||
#542303 >>PANIC<< call_protected: CS selector null
|
||
#859457 BRICKS game doesn't work
|
||
#1159639 text modes on address A0000-BFFFF are not handled properly
|
||
#1164225 define BX_SUPPORT_X86_64 0
|
||
#1163720 ROL bug
|
||
#1156776 keyboard scanmode fault
|
||
#1162042 Duke Nukem 3D: >>PANIC<< iret: VM set on stack, CPL!=0
|
||
#1161945 ctrl_xfer32 compile/make error
|
||
#1157124 Bochs doesn't run with large amounts of memory in bochsrc
|
||
#1154266 weird INT handling in V86 mode
|
||
#1157051 default Bochs CVS doesn't work-out-of-the-box
|
||
#923954 enter() with level > 0, >>PANIC<< iret: return CS selector
|
||
#1098476 Privilege Problem after SYSEXIT
|
||
#1121734 Bochs crashes when shutting down Win95
|
||
#1099294 VESA for Win98 bogus
|
||
#1112836 PGE-Bit crashes Bochs
|
||
#947586 The specification difference in x86-64 emulation
|
||
#1117145 Push reset Button, APIC0 Error occur
|
||
#1123043 fpu stack pointer changed *despite* fault occurred (e.g. #pf)
|
||
#1122066 PANIC: iret: IP > descriptor limit when installing os/2 warp
|
||
#809574 rm -f segfaults
|
||
#593952 SuSE rm segfaults
|
||
#929783 floppy not recogniced since 2.1
|
||
#1099298 SB16 for Win98 Bogus
|
||
#1079483 Reading from a CDRW
|
||
#549793 flaw in interrupt gate handling(exception.cc)
|
||
#692055 SMP Error
|
||
#805479 Booting from disk causes illegal instruction warnings
|
||
#909677 pc-speaker doesn't work
|
||
#831751 behaviour unrealistic
|
||
#661213 CR4.TSD is broken
|
||
#685508 PANIC: prefetch: RIP > CS.limit
|
||
#1037923 Non-executable page support missed (NX bit, x86-64)
|
||
#1106530 wrong disassemble result
|
||
#1105208 drive order for boot gets saved wrong
|
||
#661060 Problem with Win98SE
|
||
#837377 Norton Ghost don't boot
|
||
#876689 Unknown register 0x17 [CPU] / WIN98SE
|
||
#947282 Bochs segfault
|
||
#963317 Persistent Win98SE
|
||
#1101168 APIC base address change
|
||
#680737 panic when installing winme
|
||
#1097187 Install FC3 on bochs-win failed
|
||
#875461 vgabios-lgpl should be default
|
||
#594797 Bochs segfaults
|
||
#602994 bochs breaks boot kernel
|
||
#571539 FreeBSD Install from CD Fails
|
||
#774257 Device doesn't work under W98
|
||
#759228 Installing Suse 8.2 in Bochs on WinME
|
||
#792561 cant boot freebsd 5.1 from cdrom
|
||
#804004 Live cd will halt on boot..
|
||
#956173 FreeBSD won't boot iso install images in Bochs v2.1 or 2.2.
|
||
#864401 >>PANIC<< jmp_ev: IP out of CS limits!
|
||
#853831 Error on int 15h
|
||
#1094150 DR-DOS 7.03: panics when using multitasker
|
||
#655592 win98 hardwaredetection
|
||
#1093786 Solaris 9 installation CD fails
|
||
#959585 USB UHCI IO-Device
|
||
#963314 Redhat Fedora Installer Kernel Panic and Crash
|
||
#1086920 Bochs (cvs) doesn't compile on FreeBSD 5
|
||
#879050 Bochs reports enabled APIC without support
|
||
#1071199 dBaseII cause prefetch: RIP > CS limit
|
||
#1070812 typecast error while compiling wx.cc
|
||
#1068786 FSINCOS Cos value wrong at 90 degrees
|
||
#675248 Panic: EIP > limit on win98 install
|
||
#829793 [CPU ] prefetch: RIP > CS.limit
|
||
#1034059 >>PANIC<< prefetch: running in bogus memory
|
||
#1067813 pbm fpu_proto.h:144 ebuild gentoo bochs 2.1.1
|
||
#922034 bios not aliased at 0xFFFFF000, registers wrong after reset
|
||
#912666 Configure fails on Yellow Dog Linux 3.0.1
|
||
#922038 Unexisting memory should read back as 0xFFFFFFFF
|
||
#1019723 HD image
|
||
#1057814 Shadow RAM not aligned
|
||
#1057240 Invalid IRET32 implementation
|
||
#809682 >> PANIC << : prefetch: RIP > CS.limit
|
||
#618680 memory referencing problems
|
||
#724262 A few things (Windows 2.03, Wolfenstein)
|
||
#985375 Crash Mandrake 7.1
|
||
#913418 compiler errors with --enable-external-debugger option
|
||
#708847 CR8 access should not panic X86-64
|
||
#1039499 Compile error pcipnic.cc (cygwin)
|
||
#978024 compile against wxGTK-2.5.2 fails
|
||
#639073 MacOSX: Networking not implemented
|
||
#639074 MacOSX: Soundblaster not implemented
|
||
#963264 Latest CVS --enable-pcidev fails to configue on YDL Linux
|
||
#586282 Mac OS X, will not "make"
|
||
#699532 CVS (as of 2003/03/07) cannot read disk images
|
||
#639275 wrong more than 2GB size DVD-ROM
|
||
#766020 info registers / dump_cpu get old eflags
|
||
#655920 QuickBasic (qbx.exe) panics
|
||
#676188 Error BX_MAX_DIRTY_PAGE_TABLE_MEGS
|
||
#923821 LOCK not generating exceptions properly
|
||
#1007747 Wrong configure?
|
||
#1022577 show "call" command crashes bochs every time
|
||
#681849 SuSE 8.1 Compile problem
|
||
#660322 Install bochs 2.0 on SuSe 8,0
|
||
#1022587 "Unrecognized args" message wrong after invalid show command
|
||
#833118 TUN/TAP interface bug
|
||
#1022178 tuntap module mangles incoming broadcast packets
|
||
#1028682 Report incorrect disk parameters of floppy
|
||
#1026234 make fails on Cygwin because of missing .exe extension
|
||
#1026241 --enable-cpp needed for .conf.win32-cygwin
|
||
#855323 BIOS Panic at rombios.c, line 1563
|
||
#762773 ROM checksum is not checked in rom_scan_loop
|
||
#657604 concat_image_t.lseek to byte -1378816 fa
|
||
#800140 No AH=83h INT15h implemented
|
||
#831965 Win32.zip BIOSes in wrong directory
|
||
#873280 bximage crashes after createing "growing"
|
||
#892223 bochsrc-sample.txt/vgaromimage option error
|
||
#1014361 Bximage on WinXP won't create image
|
||
#651510 bximage won't create larger than 2GB
|
||
#759206 bximage fails on Win32 for hd images over 2Gb
|
||
#759210 Bochs fails on image files over 2Gb on Win32
|
||
#799785 bximage doesn't work
|
||
#903345 Problem compiling harddrv.cc
|
||
#933303 Bochs cannot lseek() HD images > 2GB on W32 platforms
|
||
#888438 bximage crashes...(hacked fix included)
|
||
#871720 bximage 2GB file size limit
|
||
#930368 Can't create big hard drives (>2 GB)
|
||
#912496 IDIV can cause simulator divide error
|
||
#522111 Host os SIGILL, booting grub from hd
|
||
#1005052 DMA Controller Model Problem
|
||
#552939 Bochs window doesn't resize when win311
|
||
#989478 I-Cache and undefined Instructions
|
||
#661008 make install fails
|
||
#845691 Workaround: Ne2k and Windows 2000 not working
|
||
#923662 BIOS diskette motor countdown byte broken
|
||
#848141 VGA problems running Scitech Display Driver on Win95
|
||
#799370 Problem booting ReactOS 0.1.3
|
||
#670143 No rule to make config.h
|
||
#653444 with vbe/lgpl bios, scrn updates broken
|
||
#655696 quickstart broken?
|
||
#659350 FDC
|
||
#620853 Ne2000 ethernet card *NOT* supported
|
||
#607611 Numlock
|
||
#543476 Sound card does not work in Windows 95
|
||
#529554 unsupported VBE features DISPI update
|
||
#487316 Access violation on Win32
|
||
#576253 RTC too fast
|
||
#489748 io read from address 000003c0, len=2
|
||
#656861 Gentoo Linux panics in VGA code
|
||
#787184 Video BIOS's don't checksum correctly
|
||
#988529 textconfig [Save options to] function output obsolete option
|
||
#987293 Cannot accesss header/toolbar
|
||
#988246 floppy read error
|
||
#933199 speedup Bochs compilation 4x -> suggestion
|
||
#979106 Incorrect disassembly table entry
|
||
#658374 FPU incorrect emulation
|
||
#706933 Problem with the F12-Key
|
||
#477043 math_abort panic in RH 7.1
|
||
#634371 Floating point problems
|
||
#681138 // is not valid in C
|
||
#643300 cpuid feature flag 15, cmov and fcmov
|
||
#913697 missing division by 0 exeption in fpu emuation
|
||
#923682 FSTENV/FINIT problems
|
||
#923855 FPTAN doesn't work right with full NPX stack
|
||
#924379 ET bit mismatch between CR0 and MSW
|
||
#716116 Direct floppy access
|
||
#962919 Mac: iodev/cdrom.cc disordered
|
||
#954751 Two FPU.CPP in project
|
||
#954359 Compile faile is 3dnow support is selected without SSE support
|
||
#906412 FreeSCO error
|
||
#942060 FDC Controller not conforming to specifications
|
||
#938522 Win XP installation fails
|
||
#923613 BOUND instruction exception handling is broken
|
||
#923223 memtest86 errors
|
||
#593342 autoconf script doesn't regenerate clean
|
||
#616116 Crash on exit...
|
||
#922042 shutdown through port 92 does not work
|
||
#891633 02839990390p[CPU0 ] >>PANIC<< RDMSR: Unknown register 0x17
|
||
#923653 DAA instruction is broken
|
||
#911225 obscure AAA / AAS bugs
|
||
#837206 Problems with numerical keys
|
||
#658765 BOCHS halts in runtime config
|
||
#890734 Bochsrc Parser Bug with commas included in strings
|
||
#877285 MSR_APICBASE zero upon startup
|
||
#526984 SDL compiled in cygwin just quits
|
||
#886406 I/O permissions bug
|
||
#883239 undefined symbols in gui/siminterface.h:1215
|
||
#419647 on OSF1, cxx hates C++ inlines
|
||
#809790 "No rule to make target `devices.cc?..."
|
||
#873654 How compile without plug-in support ?
|
||
#837161 Test case for BX_CPU_C::IRET32
|
||
#888116 mmx.cc compile error
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.1.1 (February 8, 2004):
|
||
|
||
- fix bug in int15h function 0xe820 (Christian Neubert)
|
||
- fix vmware3 disk support on big-endian platforms (Christophe Bothamy)
|
||
- fix conditions for NM exception on FWAIT instruction (Christophe)
|
||
- fix symbol conflict in rfb and x display libraries (Volker Ruppert)
|
||
- allow 16 bit writes to ne2k page 0 (Kenneth Stailey)
|
||
- notify display libraries on change of bpp (Volker)
|
||
- fix bug in int13h function 0x10 (Volker)
|
||
- fix floppy dialog error on win2k (Volker)
|
||
- fix address check in TSS IO permission bitmap (Christophe)
|
||
- fix buffer overflow vulnerability pointed out by SeSoX (Christophe)
|
||
- updates for MacOS compile (Daniel Gimpelevich)
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.1 (January 9, 2004):
|
||
|
||
Brief summary :
|
||
- New disassembler
|
||
- 3DNow!/SSE/SSE2/PNI instruction support
|
||
- Vmware3/Sparse/Undoable/Growing harddisk images support
|
||
- many VGA emulation improvements (e.g. high/true color VBE modes added)
|
||
- No more X11 vga font required
|
||
|
||
Detailed change log :
|
||
|
||
- CPU
|
||
- added emulation of AMD 3DNow! instructions set. (Stanislav Shwartsman)
|
||
Bochs now could decode all AMD 3DNow! instructions.
|
||
Most of instructions still not implemented, but the basis already presents.
|
||
Configure --enable-3dnow to enable 3DNow! support.
|
||
Notes :
|
||
- These instructions are not implemented yet:
|
||
PFPNACC_PqQq, PF2IW_PqQq, PFNACC_PqQq, PFCMPGE_PqQq, PFMIN_PqQq,
|
||
PFRCP_PqQq, PFRSQRT_PqQq, PFSUB_PqQq, PFADD_PqQq, PFCMPGT_PqQq,
|
||
PFMAX_PqQq, PFRCPIT1_PqQq, PFRSQIT1_PqQq, PFSUBR_PqQq, PFACC_PqQq,
|
||
PFCMPEQ_PqQq, PFMUL_PqQq, PFRCPIT2_PqQq
|
||
- CPUID does not report 3DNow! instruction set.
|
||
- added emulation of SSE/SSE2 floating point instructions. (Stanislav)
|
||
All SSE/SSE2 floating point instructions are fully implemented using
|
||
free softfloat library (including DAZ support and floating point
|
||
exceptions). Correctness of the emulation checked with heavily random
|
||
testing.
|
||
- added emulation of SSE3 (PNI) instructions (Stanislav)
|
||
Currently only 3 PNI opcodes still not implemented:
|
||
FISTTP m16int, FISTTP m32int, FISTTP m64int
|
||
- added P4 CPU support to CPUID instruction. (Stanislav)
|
||
- fixed implementation of FXSAVE/FXRSTOR instructions. (Stanislav)
|
||
- bugfix: unallowed lock prefix cases must cause #UD exception. (Stanislav)
|
||
- fixed fetchdecode bug caused #UD in SYSENTER/SYSEXIT instructions
|
||
in 32bit mode. (Stanislav)
|
||
- fixed fetchdecode64 bug caused wrong decoding of opcodes containing
|
||
BxImmediate_IvIw or BxImmediate_IwIb in x86-64. (Stanislav)
|
||
- fixed bug in int01 (opcode 0xF1) emulation. (Vitaly Vorobyov)
|
||
- fixed bug in x86 debugger with dr0-dr3 registers (Vitaly)
|
||
- fixed bug with mov to/from dr register in v86mode.
|
||
(now exception is generated (according to Intel documentation)
|
||
instead of panic) (Vitaly)
|
||
- fixed stack limit checking, now message is generated as BX_DEBUG,
|
||
rather then BX_PANIC, and exception code is executed. (Vitaly)
|
||
- instrumentation code updated. (Stanislav)
|
||
- fix flaw in IO bitmap permission of TSS (Christophe Bothamy)
|
||
- cpu resets on triple fault (Christophe)
|
||
- remove calculation on cr3 in dtranslate_linear to increase
|
||
emulation speed (Conn Clark)
|
||
- numerous x86-64 fixes (Peter Tattam)
|
||
|
||
- FPU
|
||
- hundreds of bugfixes in FPU emulation after checking of the emulation
|
||
with testfloat (Scott Duplichan).
|
||
- Fixed cases:
|
||
- floatx80_to_int32, floatx80_to_float32
|
||
- floatx80_to_float64, floatx80_round_to_int
|
||
- floatx80_add, floatx80_sub,
|
||
- floatx80_mul, floatx80_div
|
||
- implemented FCMOVcc instructions (Stanislav)
|
||
- 64-bit addressing support for x86-64 mode (Peter)
|
||
|
||
- Disassembler
|
||
- replaced Bochs disassember. New table-based disassembler fully supports
|
||
all IA-32 instruction sets including all FPU/MMX/SSE/SSE2/SSE3 opcodes.
|
||
(Stanislav)
|
||
|
||
- I/O devices
|
||
- general
|
||
- i/o access mask implemented, unallowed cases are now handled in the devices
|
||
code and cause a BX_ERROR (Volker Ruppert)
|
||
- include slowdown timer as a runtime option (Christophe)
|
||
- netBSD : fix serial, ethernet, cdrom (fredb, uebayasi and David Laight)
|
||
- VGA
|
||
- color depth 15, 16, 24 and 32 bpp supported by VBE (Volker and
|
||
Christopher Nelson for 32 bpp on win32). Supported by sdl, x, win32 and wx.
|
||
- SVGA mode 0x6A (800x600x4bpp) implemented (Volker)
|
||
- new CGA graphics modes 640x200x1bpp and 160x100x4bpp (text mode 80x100) (Volker)
|
||
- raster operations AND, OR and XOR in write mode 2 (based on SF patch #707931) (Volker)
|
||
- 'split screen' in standard VGA graphics mode implemented (Volker)
|
||
- 'double scan' and 'double width' now handled in the VGA code (Volker)
|
||
- more accurate emulation of the horizontal and vertical retrace (Volker)
|
||
- changeable start address and variable line length supported by all
|
||
graphics modes (Volker)
|
||
- VBE: preserve video memory feature implemented (Volker)
|
||
- additional text mode features prepared (handled in the display library
|
||
code) (Volker)
|
||
- PCI
|
||
- add experimental PCI VGA card (Mike Nordell)
|
||
- add experimental PCI USB card (Ben Lunt)
|
||
- Harddisks
|
||
- per device selectable harddisk modes :
|
||
- undoable, volatile, growing disks support (Christophe)
|
||
- sparse disks support (justinSB)
|
||
- vmware3 disks support (Sharvil Nanavati)
|
||
- fix non detection of hard drives by minix2 (Christophe)
|
||
- implement atapi command 0xA8 read (12) (Christophe)
|
||
- mode sense command updated (Hartmut Birr)
|
||
- sb16
|
||
- opl2 support enhanced (James E. Flemer)
|
||
- ne2k
|
||
- tap support for FreeBSD (Ronald Klop and Gen Otsuji)
|
||
- fix when booting with grub (Keir Fraser)
|
||
- cmos
|
||
- date/time change support added (Volker)
|
||
- UIP bit and divider chain reset implemented (Volker)
|
||
- initial time can now be set to local time or utc (Christophe, Daniel Gimpelevich)
|
||
- keyboard
|
||
- keyboard reset function (0xff) now resets the keyboard (Volker)
|
||
- gameport
|
||
- new standard PC gameport device (real joystick connected on Linux and
|
||
win32 only). Enable it with --enable-gameport or the SB16 emulation (Volker)
|
||
- serial
|
||
- FIFO emulation (UART type 16550A) implemented (Volker)
|
||
- floppies
|
||
- 160k,180k,320k floppies support (Ben Lunt)
|
||
|
||
- display libraries
|
||
- X11
|
||
- onboard vgacard charmap usage (no need for external X11 vga font any more) (Christophe)
|
||
- vgacard charmap change support (Christophe)
|
||
- fix black stripes on partial exposes (Dirk Thierbach)
|
||
- headerbar redraw optimizations (Dirk Thierbach)
|
||
- external font files and their installation mechanism removed (Volker)
|
||
- belgian keymap support (Wouter Verhelst, Eric Brasseur)
|
||
- win32 + wx + x: new application/window icon (bochs.ico / icon_bochs.xpm) (Volker)
|
||
- sdl + win32 + wx + x: new textmode features: variable line length,
|
||
char width switch, horizontal and vertical pel panning (Volker)
|
||
- win32 + wxMSW: key event handling rewritten (Volker)
|
||
- win32: status bar at the bottom of the simulation window added (Volker)
|
||
- wxMSW: resource problems fixed - wx dll plugin works now without errors (Volker)
|
||
- term: variable line length and cursor enable/disable feature implemented (Volker)
|
||
- rfb
|
||
- textmode: charmap change, better cursor emulation, variable line length (Volker)
|
||
- headerbar works now (power, reset and user button are okay) (Volker)
|
||
- key event handling rewritten (Volker)
|
||
- Bochs-RFB waits up to 30 seconds for a client connection. The emulation
|
||
starts after connecting the client. (Volker)
|
||
- carbon: Alt/Ctrl/Shift key handling rewritten & SysRq/Ctrl-Break key support added
|
||
(Daniel)
|
||
|
||
- configuration interface
|
||
- gui dialogs as an extension of the textconfig interface on win32 added (Volker)
|
||
* ask dialog
|
||
* save text snapshot
|
||
* user button shortcut
|
||
* floppy image change
|
||
- wxwindows configuration dialogs improved (Volker, Christophe)
|
||
|
||
- support tools
|
||
- bximage : added support for
|
||
- growing disks (Christophe)
|
||
- sparse disks (justinSB)
|
||
- created bxcommit tool for undoable disk images (Christophe)
|
||
|
||
- System BIOS :
|
||
- fixed int15 function e801 (get memory size) (Christophe)
|
||
- added int75_handler for FPU Dos Exceptions (Christophe)
|
||
- added int16 function 0a (Get Keyboard ID) (Volker)
|
||
- added support for ElTorito Harddisk-on-CD emulation (Christophe)
|
||
- fixed ATA/Serial ioport conflict (Daniel)
|
||
|
||
- VGA BIOS : updated to version 0.4c (Christophe)
|
||
|
||
- configure script/compile/porting to other OSes/installation
|
||
- fixes for compilation with MSVC (Andrew Zabolotny)
|
||
- fixes for cross-compilation (Jeroen Janssen)
|
||
- win32 nsis installer script updates (Volker)
|
||
- small configure fixes for MacOS (Christophe)
|
||
- optimizations & compile fixes for MacOS/X (Daniel)
|
||
|
||
- configuration files. The following options have been deprecated :
|
||
diskc, diskd, cdromd, time0, pit, newharddrivesupport.
|
||
|
||
- documentation
|
||
- already ported and obsolete parts of the old documentation removed (Volker)
|
||
- user documentation updated and extended :
|
||
- improved section "What does Bochs need" (Volker)
|
||
- command line arguments (Volker)
|
||
- search order for the configuration file (Volker)
|
||
- the configuration interface 'textconfig' (Volker)
|
||
- FreeDOS Beta 8 installation instructions (Volker)
|
||
- disk modes (Christophe)
|
||
- LBA translation (Christophe)
|
||
- cdboot error codes (Christophe)
|
||
- SCO OpenServer install section (Carl Sopchak)
|
||
- MacOS-X DMG install guide (Aard Vark)
|
||
- update Win98 install guide (Dirk Thierbach)
|
||
|
||
- SF patches applied
|
||
#658950 Bug in FPU (Anonymous)
|
||
#678117 build fail due to bad SGML punctuation (Anonymous)
|
||
#671873 minimal USB support (UHCI) (Ben Lunt)
|
||
#682539 Fix CapsLock and NumLock behavior (rock at gimp.org)
|
||
#720776 REX MOVB immediate broken for x86_64 (Arnd Bergmann)
|
||
#729450 new keymap x11-pc-be.map (Wouter Verhelst)
|
||
#735990 Limited patches for VC++ (Anonymous)
|
||
#742670 fix library dependencies in GUI plugins (Robert Millan)
|
||
#742782 LFB bugfix (Jan L. Hauffa)
|
||
#748414 load32bitOShack bug (kyriazis at nvidia.com)
|
||
#830079 Fix bochs's application error if unsupported key pressed (Anonymous)
|
||
#724466 enable building with CC=gcc-3.2 CXX=g++-3.2; dist-clean adds(Leonard Norrgard)
|
||
#834962 Fixed drawing graphics is broken (Anonymous)
|
||
#838401 Fixed redrawing of ToolBar on Win32GUI (Anonymous)
|
||
#850236 Fixed accessing DVD-ROM with direct device access on Win32 (Anonymous)
|
||
#847822 Bochs crash when exmining memory that crosses page boundary (ortal at jungo.com)
|
||
|
||
- SF patches partially applied
|
||
#707931 Support EGA/VGA write mode 2 and others (Anonymous)
|
||
already applied: disable IME, split screen, write mode 2,
|
||
BIOS INT16h/AH=05h
|
||
#856506/#856510 Patch to fix compile-time iodev/cd-rom.cc error (alden.dima at nist.gov)
|
||
Correct patch provided in SF bug report #843433 (birkhofer at users.sourceforge.net)
|
||
|
||
- patches applied
|
||
- patch.highmem (memory allocation) (Zwane Mwaikambo)
|
||
- patch.floppy-160k-180k-320k-benlunt (exotic floppies) (Ben Lunt)
|
||
- patch.perf-regparm-cclark (performance) (Conn Clark)
|
||
|
||
- new patches present in the patches directory :
|
||
patch.pipelined-asm-cclark
|
||
patch.mingw-resources
|
||
patch.v8086-exception.lightcone
|
||
patch.pit-vitaly-vorobyov
|
||
patch.rombios-vitaly-vorobyov
|
||
patch.win32-vitaly-vorobyov
|
||
patch.win32-new-files-vitaly-vorobyov.tgz
|
||
patch.rombios.markevich
|
||
patch.rombios.dirk.thierbach
|
||
|
||
- these S.F. bugs were closed
|
||
#865354 ">>PANIC<< CRA: divider chain control 0x07" in Linux 1.1
|
||
#725796 configure script bug
|
||
#859768 cpuid
|
||
#863964 panic in duron 2000
|
||
#843433 cdrom.cc on MacOSX: wrong const names
|
||
#818493 EMU][ (DJGPP app running on FreeDOS) broken
|
||
#787005 Some MOV instructions are not implemented!!!
|
||
#840664 2200136693936p[CPU ] >>PANIC<< prefetch: RIP > CS.limit
|
||
#837416 V2 OS not compatible !?
|
||
#650917 Serial port broken under win95
|
||
#829863 Make bochs 2.0.2 build with gcc3
|
||
#816971 main.cc: getcwd() missing argument
|
||
#813556 Compile error under gcc 3.3.1
|
||
#809758 RIGHT ALT does not function properly
|
||
#809695 CVS complains about unknown files after compilation
|
||
#628762 Error in Floppy Booting
|
||
#474526 Crash under win32 (access violation)
|
||
#687619 test case for BX_CPU_C::IRET32
|
||
#664544 Panic in IRET32 - Reporting test case
|
||
#637822 test case for BX_CPU_C::IRET32
|
||
#603410 BX_CP U_C::IRET32
|
||
#537047 IRET32 incomplete emulation, panic
|
||
#805541 Compile fails on i686, gcc 3.3
|
||
#798829 Problem booting from ISO image
|
||
#688163 Panic at rombios.c
|
||
#688161 rombios.c crashes when boot from a CD.
|
||
#796339 int 15h, e801h broken?
|
||
#666946 Slowdown Timer should be a module
|
||
#783826 the clock is extremely fast
|
||
#645609 Real Time Clock is too *FAST*
|
||
#663320 flaw in IO bitmap permission handling
|
||
#764929 Timing is off.
|
||
#659510 Bochs timing off by x10
|
||
#787138 No ROM BIOS character map
|
||
#787134 Config options not saved
|
||
#689201 Disassembler bug
|
||
#666202 Windows 2000 - random screen blanking with linux DLX demo
|
||
#629242 reset during Doom -> BIOS panic
|
||
#695434 minix floppies won't boot.
|
||
#764473 Freesco Linux crashes on boot
|
||
#656026 error when trying to run some stuff
|
||
#614202 HD: non-byte IO read to 01f4
|
||
#777357 Strange FPU compiler error
|
||
#583758 gag bootloader doesn't run
|
||
#658639 ne2k panics with MS lanman Client/DOS62
|
||
#536711 problem running smart bootmanager
|
||
#741433 Disabling all ata# results in HD error.
|
||
#753200 lock instruction doesn't do an illegal instruction trap
|
||
#679389 libbx_wx.so.0: undefined symbol
|
||
#758936 Problem Installing Bochs
|
||
#742580 I configured fants but bochs still give me the same error
|
||
#772242 iodev/vga.cc wrong memory access.
|
||
#739222 Cannot change resultion
|
||
#693344 libwx_gtk2.3.so.2 RedHat linux 8.0
|
||
#639320 sparc: needs -lm to compile
|
||
#587422 Windows 95j doesn't boot
|
||
#547817 sparc: rfb needs -lsocket
|
||
#480963 RFB: option to wait for client
|
||
#763893 i've got problems with a "libvga.so.1" and another file
|
||
#766490 Documentation mistake
|
||
#766481 Bochs 2.0.2 Fails to compile on YDL3.0
|
||
#626144 %lld is not portable
|
||
#752241 lock prefix erronously allowed for some instructions
|
||
#743305 fetchdecode.c probs
|
||
#658707 Automatic exit?
|
||
#696758 BeOS can't mount image disk, won't complete boot.
|
||
#737048 Enabling keyboard resets controllers translation mode
|
||
#717713 Bochs panics on startup on RH 9
|
||
#741108 VGA PANIC
|
||
#730922 seg fault on "bochs boot: cdrom"
|
||
#658905 VGA read write error
|
||
#564218 Panic on vga_mem_write
|
||
#614231 X11 doesn't support charmap change
|
||
#708311 Missing CGA low-res emulation
|
||
#720776 REX MOVB immediate broken for x86_64
|
||
#643296 lock prefix, unallowed cases
|
||
#716964 [sb16] OPL.timer_running not initialized
|
||
#662074 little mistake in the default config example
|
||
#470701 CD-ROM on Win2K needs FILE_SHARE_READ
|
||
#706454 bug??
|
||
#653861 Win32 build bug
|
||
#421155 panic on vga read 0x3c7,0x3cb
|
||
#666434 VGA BIOS: Incompatible mode reporting
|
||
#681819 Incorrent return value from cdrom reads
|
||
#648222 Lotus Agenda futuristic dates off
|
||
#657455 doesn't boot plan9
|
||
#658938 SGDT in VM8086
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.0.2 (January 21, 2003):
|
||
|
||
- fix possible segfault in wxWindows (Volker Ruppert)
|
||
- fix instrumentation (Stanislav Shwartsman)
|
||
- fix cdrom read_toc() function for *BSD (Keith Matthew Jones)
|
||
- fix NetBSD boot from cdrom (Christophe Bothamy)
|
||
- fix cmos checksum (Volker)
|
||
- fix "refresh bit" behaviour in pit (Volker)
|
||
- fix .bochsrc parsing (Volker)
|
||
- fix vga resize/redraw problems (Volker)
|
||
- fix compilation issues on Irix and Tru64 (Christophe)
|
||
- fix MMX/SSE bugs (Stanislav, Peter Tattam)
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.0.1 (January 4, 2003):
|
||
|
||
- fix corrupt saved configuration files (Christophe Bothamy)
|
||
- fix missing break statements in apic (Shai Fultheim)
|
||
- fix compiling sb16 under FreeBSD (Volker Ruppert)
|
||
- updates to the documentation (Volker)
|
||
- fix text mode colors 8 to 15 (Volker)
|
||
- fix FPU integer load bug (Volker)
|
||
- stop pasting on hardware reset (Volker)
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 2.0 (December 21, 2002):
|
||
|
||
Since the change log is hundreds of lines long, here is a very brief summary.
|
||
- 2x emulation speedup!!!
|
||
- added plugin devices and guis. Now you can compile with many more
|
||
options, and choose between them at runtime.
|
||
- added emulation of AMD x86-64, MMX, SSE, SSE2 instructions
|
||
- add wxWindows port (a graphical configuration interface and display lib)
|
||
and SVGAlib port (full screen display for Linux without X11)
|
||
- improvements in many I/O devices: for example up to 8 hard disks/cdroms,
|
||
TUN/TAP network interface, 360k floppies,
|
||
- improved MacOSX/Carbon interface and updated MacOS9 port
|
||
- GDB remote stub, allows symbolic debugging with Bochs simulation.
|
||
- support for up to 32gig hard disk images
|
||
|
||
Detailed change log follows.
|
||
|
||
- documentation
|
||
- manpages updated (Volker, Christophe)
|
||
- install HTML rendering of docbook documentation instead of
|
||
docs-html (Bryce)
|
||
- doc/docbook/Makefile is now generated by configure script.
|
||
if configure detects docbook2html on your system, it will turn on
|
||
--enable-docbook and run make in the doc/docbook directory. Also
|
||
make install will install documentation into $(docdir). You can use
|
||
--disable-docbook to turn this off, if necessary. (Bryce)
|
||
- add "make bochsdoc.tar.gz" target to create a documentation tarball.
|
||
If you do "make webinst" and you have write access on SF shell server,
|
||
it updates doc/docbook/* on the website (Bryce)
|
||
- user documentation additions:
|
||
- new options (Bryce, Volker, Christophe)
|
||
- Bios tips section (Christophe)
|
||
- Tuntap section (Christophe)
|
||
- Serial Port section (Christophe)
|
||
- "Will it Work for Me" / "Is Bochs Right for Me" sections
|
||
(N. David Guarneri)
|
||
- VESA section (Jeroen Janssen)
|
||
- several documents, previously existing as separate html files, have
|
||
been included :
|
||
- internal debugger section (Christophe)
|
||
- gdb stub debugger section (Christophe)
|
||
- WinME, WinNT, WinXP, The Hurd, Japanese Win95 install tips (Christophe)
|
||
- Win95, Win98 install tips (N. David)
|
||
- SB16 section (N. David)
|
||
|
||
- configure script/compile/porting to other OSes/installation
|
||
- added plugin architecture
|
||
- plugin code written by Bryce, Christophe, Volker based on
|
||
plex86's plugin code by Kevin. Testing help from Psyon and Br'fin.
|
||
- 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.
|
||
- all display libraries, most I/O devices are converted to plugins now
|
||
- plugins supported on Linux, Solaris, and MacOS X using libtool,
|
||
Cygwin using dlltool. On MacOSX, you must have dlcompat installed
|
||
and in your include/library paths at configure time. (See .conf.macosx
|
||
for an example.)
|
||
- we use libtool's LTDL library from libtool 1.4.2, with a number of
|
||
critical bug fixes (Bryce Denney)
|
||
- the Linux binary RPMs are built with plugin support
|
||
- to compile with plugins, configure with --enable-plugins
|
||
- the LTDL_LIBRARY_PATH variable tells Bochs where its plugins can be
|
||
found. Bochs has a compile-time default for this variable which is
|
||
correct if you do a make install. You would only need to set the
|
||
variable if the default is wrong.
|
||
- for win32 plugins we added "BOCHSAPI" in front of many classes
|
||
and methods, to aid in building DLLs. This turns into __declspecs
|
||
which are used when making an export library for Bochs.
|
||
- allow many display libraries to be configured and compiled at
|
||
a time. For example --with-win32 --with-sdl --with-rfb.
|
||
Also, we added an experimental option --with-all-libs which
|
||
tries to detect which --with-* options will work. If the
|
||
autodetection fails, just type the --with-* options explicitly. (Bryce)
|
||
- add #if's around all files which are conditionally compiled such
|
||
as cdrom.cc and sb16.cc. This makes it possible to compile every
|
||
source file all the time, which has the potential to simplify the
|
||
configure script and makefiles. At present we only take advantage
|
||
of this capability in the win32 VC++ workspace. (Bryce)
|
||
- the MacOS9 port has been updated so that it works again. It had
|
||
not been updated in at least 2 years, maybe more. (Christophe Bothamy)
|
||
- improve support for FHS standard (Robert Millan, Volker Ruppert)
|
||
See patches 551811 and 650066.
|
||
- keep separate CFLAGS and CXXFLAGS for Bochs (usually a graphical
|
||
program) and console programs such as bximage and niclist. Some
|
||
sdl and wx compile flags were making bximage and niclist unusable.(Bryce)
|
||
- add concept of cross-configuring in the configure script. If you
|
||
use the --target option to generate makefiles to be used on another
|
||
machine, some detection of compilers and libraries is disabled. (Bryce)
|
||
- fix term compile on Cygwin, but it has to be done without -mno-cygwin,
|
||
which means that several win32 features such as networking do not work.
|
||
- add "-Wno-multichar" on beos
|
||
- test for largefile support, and add required CFLAGS (Bryce)
|
||
- add -lm when it's needed, and not when it's not (Bryce)
|
||
- add configure support for 8 processors. Bochs can support up to 15
|
||
with some work on the BIOS.
|
||
- fix nmake makefile generation (Psyon)
|
||
- improved pthread detection function from ac-archive project on SF
|
||
- add installer package for Windows, using Nullsoft (Michael Rich, Bryce)
|
||
- on MacOSX, add startup script that creates a text console and then
|
||
runs Bochs. Also add make target to create a DMG disk image (Br'fin)
|
||
- do not restart the font server on Unix/X11, if vga.pcf was already
|
||
installed. On several modern machines, if you restart the font
|
||
server the user has to restart X windows. (Bryce)
|
||
- update most .conf.* files with modern options such as
|
||
--enable-all-optimizations. (Bryce)
|
||
- The MacosX .conf script adds /sw/include and /sw/lib to the compile/link
|
||
path list because it is a common place to put dlcompat. Dlcompat is
|
||
required when building with plugins. (Bryce)
|
||
- rpms can now be built without root privileges (Bryce)
|
||
|
||
- command line
|
||
- fixed up our command line options (Volker, Bryce, Christophe)
|
||
Usage: bochs [flags] [bochsrc options]
|
||
-n no configuration file
|
||
-f configfile specify configuration file
|
||
-q quick start (skip configuration interface)
|
||
--help display this help and exit
|
||
|
||
- configuration file (bochsrc)
|
||
- There are several new options. See the documentation for more details.
|
||
- config_interface: select text mode menus or wxWindows for configuration
|
||
- display_library: select which display lib to use
|
||
- optromimage: load optional rom images
|
||
- ataN (N=0,1,2,3): up to 4 ATA controllers for hard disks, cdroms
|
||
- ataN-master, ataN-slave, N=0,1,2,3: defines a hard disk or cdrom.
|
||
The "ata*" options replace diskc, diskd, and cdromd, which are
|
||
now deprecated.
|
||
- floppy_bootsig_check: control the 0xaa55 signature check on boot floppies
|
||
- logprefix: lets you change the format of log messages
|
||
(patch by Carl Sopchak, help from Christophe)
|
||
- debugger_log: log all output from bochs debugger
|
||
- user_shortcut: allow you to type key combinations like Ctrl-Alt-Del
|
||
- pit: control the PIT model, including realtime option to try to
|
||
keep in sync with real time.
|
||
- Credits: Christophe added optromimage, everything about ATA,
|
||
floppy_bootsig_check, debugger_log. Bryce added config_interface
|
||
and display_library. Volker did the user_shortcut button.
|
||
Greg Alexander wrote the PIT model and added the realtime option.
|
||
- since v1.3 we've been able to use environment variables in pathnames
|
||
in the bochsrc file. Now, a few variables have default values, set at
|
||
compile time, that are used if the user does not set a value. If Bochs
|
||
is installed correctly, the defaults will be correct and the user will
|
||
not need to override them.
|
||
- $LTDL_LIBRARY_PATH is the path name where the plugins can be found.
|
||
The default value comes from $(plugdir) in the makefile. This is only
|
||
important if plugins are enabled. (Bryce)
|
||
- $BXSHARE is the path where the BIOSes and keymaps are installed.
|
||
The default value comes from $(sharedir) in the makefile. Disk
|
||
images on the Bochs website will begin to use BIOS pathnames like
|
||
$BXSHARE/BIOS-bios-latest. On win32, the $BXSHARE default is
|
||
set by the NSIS installer and read from the registry. On MacoSX,
|
||
the $BXSHARE default is set to the path containing bochs.app.
|
||
(Bryce, Volker, Br'fin)
|
||
- new option in the configuration interface to reset all bochsrc
|
||
settings to initial defaults. A reset occurs just before reading
|
||
a new configuration file, so that leftover parameters from a
|
||
previous configuration do not affect the new configuration. Also,
|
||
you can request a reset using the configuration interface. (Volker, Bryce)
|
||
- ne2k line can now specify a script to set up the interface (Christophe)
|
||
- on Unix, also search /etc/bochsrc (Bernhard Bablok)
|
||
- you can use #include in the bochsrc to read configuration from other
|
||
files (Volker)
|
||
|
||
- CPU
|
||
- speed optimizations from Kevin Lawton, yielding around 2x speedup
|
||
- guest2host_tlb : for entries in the paging TLB which point to normal
|
||
physical memory pages, a pointer to the host address of the emulated
|
||
physical memory (from malloc()) page is stored in the TLB entry. In
|
||
many cases, this pointer can be used in memory accesses to directly
|
||
read/write the guest memory address. In exceptional cases, the physical
|
||
memory access routines are used. Turn on with --enable-guest2host-tlb.
|
||
- repeat IO/string : for some variants of repeatable IO and string
|
||
instructions, the segmentation and paging checks are done in batch along
|
||
with the data transfers, constrained within page boundaries and the
|
||
segment limits. Turn on with --enable-repeat-speedups.
|
||
- icache : The structure holding instruction decode information was
|
||
reduced to 32 bytes. 24 bytes for the actual decode data, and 4 each
|
||
for pointers to the address resolution routine (not always needed) and
|
||
the instruction emulation routine. With a reasonably small
|
||
per-instruction decode size, an instruction cache (iCache) was created,
|
||
which is simply a hash table. The main cpu loop looks in the table
|
||
first; if the instruction has already been decoded, execution can begin
|
||
immediately without decoding. Turn on with --enable-icache.
|
||
- host specific asm : when compiling on an x86 platform, use of
|
||
x86-specific asms can be enabled to accelerate several facets of
|
||
emulating instructions. For example, the EFLAGS values are much more
|
||
efficient to calculate when the actual x86 instructions are used to
|
||
generate the EFLAGS values. Turn on with --enable-host-specific-asms.
|
||
(Kevin, with help from Jas Sandys-Lumsdaine)
|
||
- if you want to enable all the speed optimizations that we believe
|
||
to be stable, use --enable-all-optimizations. The release binaries
|
||
are built with this option.
|
||
- add support for AMD's x86-64 instruction set. To enable, configure with
|
||
--enable-x86-64. The AMD x86-64 support is about 90% complete and is
|
||
still experimental. We've implemented the core x86-64 instruction set and
|
||
the changes to the rest of Bochs necessary to operate in long mode, but
|
||
we've still to implement checking for canonical 64 bit addresses. The code
|
||
has been tested on a limited number of test programs. It has been able to
|
||
successfully boot a x86-64 Linux kernel and run a 64 bit userland
|
||
application. It has also successfully run a DOS based 64 bit protected
|
||
mode test application. (Peter Tattam, with merge/bugfix help from Kevin
|
||
Lawton and Bryce Denney)
|
||
- add MMX support. To enable, configure with --enable-mmx.
|
||
(Stanislav Shwartsman)
|
||
- add SSE and SSE2 support. To enable, configure with --enable-sse=1
|
||
or --enable-sse=2. (Stanislav)
|
||
- fixed the behaviour of the bcd instructions AAM, AAD and DAA based on
|
||
SF patch #537146 (Volker)
|
||
- stop printing an error for VERR/VERW. According to the i386 opcode
|
||
description there is no error present. (Volker)
|
||
- fix bug [ 625878 ] reset doesn't reset something(?). Fix cpu reset
|
||
when executing a rep instruction (Christophe)
|
||
- use accessors methods for CFLAGS and several other registers, so that
|
||
the implementation can be changed transparently later (Bryce, Stanislav)
|
||
- add support for page size extensions, also known as 4meg pages.
|
||
Turn on with --enable-4meg-pages. (Kevin Lawton)
|
||
- add support for page global extensions. Turn on with
|
||
--enable-global-pages. (Kevin)
|
||
- add support for physical address extensions. Turn on with --enable-pae.
|
||
(Peter Tattam)
|
||
- implement RDMSR and WRMSR. not all MSRs are supported (Zwane Mwaikambo)
|
||
- new configure option --enable-ignore-bad-msr, which makes unrecognized
|
||
MSR reads and writes into just a warning
|
||
- fix PIC/APIC interrupt problem that caused Linux 2.4.19 to hang
|
||
during boot (Peter)
|
||
- CMPXCHG8B patch (Michael Hohmuth)
|
||
- EFLAGS are now stored in the same form as the native EFLAGS on an x86,
|
||
so that we can use native machine instructions in some cases (Kevin)
|
||
- instrumentation code updated (Stanislav)
|
||
|
||
- FPU
|
||
- fixed bug [ 452275 ] fprem emulation bug (Volker)
|
||
- fixed bug [ 648579 ] Mac OSX >>PANIC<< FPU_printall. There was an
|
||
endianness issue with the fpu (Christophe)
|
||
|
||
- I/O devices
|
||
- rewrote pc_system timers (Kevin)
|
||
- biosdev
|
||
- this new device handles the panic/error/info/debug messages sent
|
||
by the Bios and VGABios. It was previously done in the unmapped device.
|
||
- cdrom
|
||
- implementation of the function READ TOC for cdrom image files. (Volker)
|
||
- function capacity() for win32 fixed. Now it returns the number of blocks
|
||
instead of bytes. (Volker)
|
||
- added multiple cdrom support for win32 (NT/2000 version untested). The
|
||
ASPI version uses the cdrom drives in the system's order. Drive letters
|
||
are not used by ASPI. (Volker)
|
||
- fix configure script's cdrom detection on BeOS (Bryce)
|
||
- fix physical CD change at runtime (Bryce)
|
||
- cmos
|
||
- fix panic when WinXP read port 70h (Christophe)
|
||
- add ps/2 style century at index 37 to allow WinXP to boot. (Bryce)
|
||
- dma
|
||
- DMA register and unregister functions for DMA channels added and macros
|
||
for DMA functions defined. The changes are based on the Plex86 functions.
|
||
(Volker)
|
||
- implementation of the DMA controller reset (Volker)
|
||
- the value of the command register must be always 0x00 (BX_ERROR fixed)
|
||
- floppy (Volker)
|
||
- implemented Tape Drive Register (Dave Poirier)
|
||
- added support for 360k floppy images
|
||
- the skip flag (SK) in command 'read sector' is ignored now
|
||
- floppy read and write function do not set the 'seek end' bit in status
|
||
register 0 (fixes SF bug #553377)
|
||
- the status of the 'disk changed' line depends on the selected drive.
|
||
The digital input register is now an array (DIR[4]).
|
||
- apply patch [ 635021 ] floppy cleanup by Alex Thiel
|
||
- distinguish between floppy drive type and media type
|
||
- hard drive
|
||
- add largefiles support, to allow disk images larger than 2gig.
|
||
(Stu Grossman)
|
||
- missing conditions for lower_irq() added (Volker)
|
||
- several noncritical panics replaced with BX_ERRORS and the controller
|
||
returns an error code until we implement the features (Volker)
|
||
- applied patch from Carl Sopchak for booting sco openserver
|
||
- allow disk block access only if concatenated images are not used
|
||
(Christophe)
|
||
- fix bug [ 419415 ] netbsd 1.5 rescue disk won't boot (Volker)
|
||
- multiple drq atapi data transfers corruption fixed (Christophe)
|
||
- added some commands to the unsupported "Set Feature" commands (Christophe)
|
||
- speedups in repeated IO transfers (Kevin)
|
||
- support for Peter Tattam's external disk simulator (Bryce)
|
||
- 4 channels / 8 devices support (Christophe)
|
||
- "inquiry" atapi command results corrected (Volker)
|
||
- check for incomplete devices configuration before starting the
|
||
simulation (Bryce)
|
||
- implemented the different bios disk translation schemes (Christophe)
|
||
- keyboard and mouse
|
||
- add commands 0xd2, 0xdd and 0xdf (Dave)
|
||
- fix bug [ 613975 ] wxWindows: params redefined on restart (Bryce)
|
||
- in function mouse_motion(): added parentheses to fix compilation problems
|
||
with MSVC. See SF bug #575301. (Volker)
|
||
- added missing register_irq() for the PS/2 mouse IRQ12 (Volker)
|
||
- fix "AltGr" key on European keyboards wxWindows/win32, SDL (Volker)
|
||
- NE2000
|
||
- function reset() clears the IRQ line (Volker)
|
||
- added TUN/TAP interface (Renzo Davoli, Christophe)
|
||
- fix DOS based packet drivers that use an odd count for the NE2000 DMA (Peter)
|
||
- changed "TCR write, reserved bits set" panic into an error, fixes
|
||
networking with debian image (Bryce)
|
||
- parallel
|
||
- parport1 enable/disable support added (Volker)
|
||
- PCI (Volker)
|
||
- implementation of the PCI device register mechanism
|
||
- PCI memory handling moved to the memory code
|
||
- replaced memcpy() in pci_read() by a more portable code. Problems with
|
||
PCI on big-endian machines are fixed now (SF bug #638481).
|
||
- implementation of the PCI-to-ISA bridge started (still incomplete)
|
||
- PIC
|
||
- fixed detection of single mode and level senistive mode in ICW1 (Volker)
|
||
- fixed handling of rotate_on_autoeoi for master PIC (Volker)
|
||
- irq mask is now cleared on initialization (Dave)
|
||
- fixed lockup during mouse movements during win98 install. (patch from
|
||
Wilfried Weissmann)
|
||
- PIT
|
||
- Added realtime PIT support (Greg)
|
||
- Sound Blaster 16
|
||
- it used to enable itself all the time; now only when you ask
|
||
- fix memory leaks (Bryce)
|
||
- serial
|
||
- don't cause problems when serial device is disabled (Volker)
|
||
- unmapped
|
||
- add programmatic shutdown feature at port 0x8900 (Christophe)
|
||
- vga
|
||
- VBE fixes (Jeroen, Volker)
|
||
- CRTC fixes (Volker)
|
||
- sequencer reset with bits 'reset1' and 'reset2' implemented (Volker)
|
||
- add charmap change support (used by SDL, win32 and wxWindows gui) (Volker)
|
||
- screen dimensions / updates for some graphics and text modes fixed (Volker)
|
||
- use the start address when calculating the byte offset for standard
|
||
EGA/VGA modes (Volker)
|
||
- byte offset for modeX fixed (use value of CRT register 0x13) (Volker)
|
||
- text mode memory mappings 0 and 1 support (Christophe)
|
||
- fix bug [ 612741 ] VBE mem conflicts w/ local APIC address (Jeroen)
|
||
- fix bug #635223: VGA tiles array access out of bounds (Bryce)
|
||
|
||
- ROM BIOS
|
||
- improve compile process. Now bioses for 1, 2, 4 and 8 processors
|
||
are built at the same time (Bryce)
|
||
- fixes to be able to compile the bios with gcc2 or gcc3 (Jeroen and
|
||
Christophe)
|
||
- changes on boot signature check (Christophe):
|
||
- never done for cdroms
|
||
- always done for hard-disks
|
||
- conditional for floppies
|
||
- add keyboard int16 functions 0x09 (get keyboard functionality) and
|
||
0x0a (get keyboard id) (Christophe)
|
||
- fix bug [ 629810 ] int 16/ah=01 broken? Enable interrupt on entering
|
||
int16 handler (Christophe)
|
||
- new keyboard init in POST (patch from Adam Sulmicki)
|
||
- flush input and output keyboard buffer before keyboard self test
|
||
(Volker and Christophe)
|
||
- fix bug [ 547603 ] kbd up/down arrows in dos install (Christophe)
|
||
- fix bug [ 549815 ] bios wrongly loads CS,ES. CS and ES are set to 0
|
||
before the bootloader code is called. (Christophe)
|
||
- PCI functions support (Volker) :
|
||
- BIOS32 service directory
|
||
- real mode PCI int1a functions
|
||
- protected mode PCI int1a functions
|
||
- fix reset for MS-DOS and Win95 (Volker)
|
||
- 360K floppy support (Volker)
|
||
- enhanced ata/atapi support (Christophe) :
|
||
- 4 channels / 8 devices
|
||
- device auto detection (with help from Adam Sulmicki)
|
||
- EDD3.0
|
||
- 32bits device access
|
||
- optional disk translation "large", "r-echs" or "lba" (up to 8.4GiB)
|
||
- re-enable harddisk controller interrupt after reads/writes.
|
||
Win95 can now use native access to harddisks and cdroms. (Volker)
|
||
- shutdown status handling (cmos index 0x0f) (Christophe) :
|
||
- fix bug [ 601166 ] CMOS Problem @ "0x0F Index 0x05 data". After reset
|
||
execution will resume by a jump to [0x40:0x67] if the shutdown status
|
||
is 5
|
||
- the bios don't panic any more if the shutdown status is 9
|
||
- two parallel ports detection in POST (Volker)
|
||
- two serial ports detection in POST (Volker)
|
||
- add int15 extended memory function 0xe820 (patch from osmaker) and
|
||
0xe801 (patch from Hartmut Birr)
|
||
- fix return values on some int15 functions (Bryce)
|
||
- fix int70 handler overlapping int08 handler (Christophe)
|
||
- simplify 8 processors BIOS for operating systems which don't do
|
||
paranoia/sanity checks (Zwane)
|
||
|
||
- configuration interface
|
||
- wxWindows config interface now allows you to change every bochsrc
|
||
option using menus and dialog boxes. There is also the beginning of
|
||
a wxWindows graphical debugger, but it needs a lot of work before it
|
||
will be useful.
|
||
- renamed control.cc to textconfig.cc. Now we're calling it a
|
||
text configuration interface, instead of a control panel.
|
||
|
||
- display libraries
|
||
- Even though we've had them for years, the term "display library" is new in
|
||
release 2.0. In the gui directory, Bochs has a number of different C++
|
||
files which you can select to display the text and graphics on the
|
||
simulated monitor. Each of these is a display library. The display
|
||
libraries are:
|
||
x use X windows interface, cross platform
|
||
win32 use native win32 libraries
|
||
carbon use Carbon library (for MacOS X)
|
||
beos use native BeOS libraries
|
||
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 X
|
||
term text only, uses curses/ncurses library, cross platform
|
||
rfb provides an interface to AT&T's VNC viewer, cross platform
|
||
wx use wxWindows library, cross platform
|
||
nogui no display at all
|
||
- it is now possible to compile Bochs with support for many different
|
||
display libraries and select the one to use at runtime (even without
|
||
plugins). See the display_library directive in .bochsrc.
|
||
- add new svgalib display library by Igor Popik
|
||
- fix bug [ 614724 ] SDL can get stuck in full screen mode
|
||
display libraries such as SDL which have a full screen mode can be
|
||
dangerous, if Bochs does not switch back to normal display mode at
|
||
the right time. This is fixed for SDL and the new svga.
|
||
- keymap support added in SDL interface (Bryce, Volker)
|
||
- new keymap files: SDL keymaps for US and DE keyboards, X11 keymap
|
||
for Danish keyboard.
|
||
- use keyboard mapping for keyup messages too
|
||
- renamed almost all references to data type "Boolean" to "bx_bool".
|
||
The Boolean data type was defined in Carbon.h headers, and conflicted
|
||
with Bochs's definition. See bug [ 618388 ] Unable to boot under MacOS X
|
||
Exceptions: When talking to the Carbon library, you must use Boolean.
|
||
Also, siminterface.h uses standard "bool" instead of bx_bool.
|
||
- "User" button added in toolbar. It can send keyboard shortcuts to
|
||
the guest OS. (Volker)
|
||
- snapshot improvement and memory leak fixed (Volker)
|
||
- testing framework, based on comparing screen content, added (Greg)
|
||
- term display library:
|
||
- support for color terminal, function keys, clear screen (Volker)
|
||
- solaris compilation problem (bug #613393) fixed (Bryce)
|
||
- win32 display library:
|
||
- use native win32 toolbar for headerbar, use system palette (Volker)
|
||
- many Carbon interface improvements:
|
||
- patch [ 549248 ] Fix Carbon key & menu handling (Chris Thomas)
|
||
- partial keymap support, copy&paste, menu items fixed, new toolbar
|
||
behavior, dialog box display for panics (Br'fin)
|
||
- sdl display library:
|
||
- keyboard fixes and key mapping added (Bryce)
|
||
- when captured, the mouse is forced to stay in the window. fix bug
|
||
[ 619283 ] SDL: os mouse pointer leaves the window (Bryce)
|
||
- x display library:
|
||
- bug [ #537593 ] vga font not being found fixed. If vga font not
|
||
found, search for a font called "-*-vga-*" (Bryce)
|
||
- keyboard problems fixed (Bryce, Christophe)
|
||
- beos platform, any display library: add a nice icon to the executable
|
||
(Bernd Korz)
|
||
|
||
- wxWindows
|
||
- wxWindows is a cross-platform C++ user interface library which you can
|
||
download for free at http://wxwindows.org. wxWindows provides C++
|
||
classes for all sorts of GUI controls (buttons, menubars, etc.) and
|
||
implements all of them using the native controls on the platform.
|
||
- The new 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.
|
||
- In release 2.0, we concentrated on making the wxWindows port as stable
|
||
and functional as the other interfaces. wxWindows provides a great
|
||
toolbox that we can use to make Bochs easier to learn and use.
|
||
- wxWindows supports charmap changes, keyboard mapping, cut and paste,
|
||
text and graphics modes, text mode cursor size, and mouse (Volker, Bryce)
|
||
- To compile Bochs with wxWindows, you should install wxWindows 2.3.3
|
||
or later. Then configure Bochs with --with-wx.
|
||
- if you have multiple versions of wxWindows installed (e.g. a debug
|
||
and a release version), you can set $WX_CONFIG before configuring
|
||
to select between them. (Bryce)
|
||
|
||
- Bochs debugger
|
||
- [ 609616 ] remote GDB stub
|
||
add GDB Stub support from Johan Rydberg, with bug fixes by Stu Grossman
|
||
- add hooks for external debugger for win32. The external debugger
|
||
that connects to Bochs is distributed in
|
||
build/win32/tattam-external-debugger.zip in binary form. Turn on
|
||
with --enable-external-debugger. (Peter)
|
||
- add "debugger_log" option to bochsrc, which logs all debug output
|
||
into a file. feature [ 629068 ] (Christophe)
|
||
- debugger is now usable in fullscreen SDL and SVGA guis. It will
|
||
switch back to text mode for each debug prompt (Bryce)
|
||
- disassembly output cleaned up and improved
|
||
(Kernel Panic, Peter Tattam, Jonathan Shapiro, Luiz Henrique Shigunov)
|
||
- fix [ 628806 ] debug: x/c prints unprintable chars (Bryce)
|
||
- add the beginnings of a wxWindows debugger. Not ready for mainstream use
|
||
yet. CPU register display is implemented, and you can type any debugger
|
||
command you want into the Debug Console window. (Bryce)
|
||
- add help command (Alexander Krisak)
|
||
- symbol table lookups cleaned up a bit (Bryce)
|
||
- displays the address of the caught watchpoint, feature #435271 (Dave)
|
||
- remove obsolete "loader"
|
||
|
||
- utilities
|
||
- fixed bug [ 487758 ] bximage fails on file creation >2048meg
|
||
Bximage should now work up to 32gig. (Bryce)
|
||
- on win32, both bximage and niclist now ask the user to press
|
||
return before exiting, so that you have time to read the results
|
||
before the window disappears. (Bryce)
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 1.4.1 (June 22, 2002):
|
||
|
||
- now cdrom is enabled in configure, unless you specifically disable
|
||
it with --disable-cdrom. (Christophe)
|
||
- fix compile error in main.cc when SMP or APIC is enabled (Dave)
|
||
- the runtime menu now displays 11 (continue) by default (Bryce)
|
||
- initialize DMA controller before floppy and SB16
|
||
- fix DMA panic when installing win95 (Volker)
|
||
- first character of the vga bitmap is blank on win32 (Volker)
|
||
Before, it was incorrectly coded as a '@'.
|
||
- AltGr key on European keyboards works now on win32 (Volker)
|
||
- fix problem with console/serial port on Bochs exit (Volker)
|
||
- enable serial port for GNU and GNU/Linux (Volker)
|
||
- small documentation fixes (Volker)
|
||
- remove unnecessary include statements for X11 (Volker)
|
||
- italian keymap added (Emanuele Goldoni)
|
||
- fix win32 ethernet frames error. It will no longer reject packets
|
||
that are less than 60 bytes long. (Peter Tattam)
|
||
- BIOS fixes :
|
||
- win2k cd-boot (Christophe)
|
||
- emm386 crash (Dave)
|
||
- cs=0 at boot time (Christophe)
|
||
- keyboard failure in scandisk (Dave)
|
||
- fix bug in forming the 64-bit APIC base address from two 32-bit registers.
|
||
A compiler warning in cpu/proc_ctrl.cc pointed this out.
|
||
- fix default choice in the runtime options menu
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 1.4 (March 27, 2002):
|
||
- ROM BIOS
|
||
- Boot from CDROM! Christophe Bothamy added partial El Torito support in
|
||
rombios.c, which allows Bochs to boot cdroms. Booting from win2k or winXP
|
||
cdrom is not supported yet. The default BIOS includes El Torito functions.
|
||
the boot line must say "cdrom".
|
||
Example:
|
||
boot: cdrom
|
||
- implementation of int13 diskette function 5 (format track) (Volker)
|
||
- initialisation of PIC and DMA-2 added to POST code (Volker)
|
||
- configure script (Bryce Denney)
|
||
- the configure script now detects your platform and provides a default
|
||
GUI and the required compiler flags. All supported platforms should
|
||
compile with simply "configure" and "make".
|
||
- default guis by platform:
|
||
- win32/windows/cygwin: win32 gui
|
||
- MacOS X: carbon gui
|
||
- MacOS 9 or earlier: macos gui
|
||
- BeOS: beos gui
|
||
- AmigaOS: amigaos gui
|
||
- all other platforms: X windows gui
|
||
- compile arguments supplied by configure script
|
||
- win32: too many to list here; see documentation
|
||
- cygwin: -mno-cygwin -DWIN32
|
||
- MacOS X: -fpascal-strings -fno-common -arch ppc -Wno-four-char-constants
|
||
-Wno-unknown-pragmas -Dmacintosh
|
||
- the --with-GUINAME configure option is only needed if you want to override
|
||
the default GUI. This is the only way to use the Term, RFB, and SDL
|
||
GUIs.
|
||
- VGA
|
||
- added VESA BIOS Extensions code by Jeroen Janssen (banked mode only, LFB
|
||
support in patches)
|
||
- vga memory read/write functions in text mode fixed
|
||
- implementation of CGA mode 320*200*4 (patch from Sebastien Bechet)
|
||
- VGA BIOS
|
||
- updated Christophe Bothamy's LGPL VGA BIOS to version 0.3a. This consists
|
||
of a bug fix for function ah=13 and VBE support by Jeroen Janssen.
|
||
- networking
|
||
- chipmem read/write limit fixed (Mike Lerwill)
|
||
- writing a byte in 16-bit mode now possible (Mike Lerwill)
|
||
- new ethertap interface for Linux, which allows Bochs to talk to
|
||
the local machine and the internet (Bryce Denney)
|
||
- NE2000 is now enabled by default on Win32, Cygwin, and Linux compiles
|
||
in the .conf.* scripts and release binaries.
|
||
- fix check for auto transmit disable, which was checking the wrong bit
|
||
(Peter Tattam)
|
||
- Win32 only
|
||
- niclist.exe has been revised to work on more Windows versions, and it
|
||
suggests a usable ne2k line (Dean Payne)
|
||
- fix timeout setting so that ne2000 does not slow down the whole
|
||
simulation (Don Becker)
|
||
- bug fix: be able to handle multiple packets that arrive at once
|
||
(Mike Lerwill)
|
||
- GUI changes
|
||
- cdrom button: click this to notify Bochs when you changed the CDROM (Volker)
|
||
- snapshot button: saves the text on the Bochs screen into a file called
|
||
snapshot.txt (Volker)
|
||
- copy button: on Win32 and X windows, copy the text on the Bochs screen
|
||
to the clipboard (Volker)
|
||
- paste button: on Win32 and X windows, paste the characters on the
|
||
clipboard into the Bochs window. This requires keyboard_mapping to
|
||
be enabled. (Bryce Denney)
|
||
- improved text mode cursor for Win32, X11, and SDL (Volker)
|
||
- new SDL interface (Dave Poirier, debugging by Christophe, Volker, Bryce)
|
||
SDL is a graphics library that has works on many platforms. This interface
|
||
is experimental, and is missing a few features of the standard Bochs
|
||
interfaces: extended keys (arrows, keypad).
|
||
- MacOS X: add MacOS X carbonized event handlers by Jeremy Parsons
|
||
- X windows: when not enough colors can be allocated, force use of
|
||
private colormap (Bryce Denney)
|
||
- bug #490570 fixed: OUTB set and command 0xaa encountered (Dave Poirier)
|
||
- keyboard
|
||
- completed keyboard emulation with the implementation of the three scancodes
|
||
sets (mf1, mf2, mf3) with or without translation. This is based on Ludovic
|
||
Lange's plex86 keyboard patch. (Christophe Bothamy)
|
||
- added a "keyboard_type" option, that defines the answer to an "identify
|
||
keybord" request to the keyboard controller. The available values are
|
||
"xt","at","mf". (Christophe Bothamy)
|
||
- added an optional keyboard_mapping option that enables to use your
|
||
country specific keyboard with Bochs. If enabled, the keymap file must be
|
||
specified in bochsrc. The available keymaps are US, German, Spanish and
|
||
French for PCs running X11. Contributions are welcomed. (Christophe
|
||
Bothamy)
|
||
- added Windows(tm) key definitions (Volker Ruppert)
|
||
- added paste button, which causes the emulated keyboard to type characters
|
||
from the system clipboard. This only works when keyboard_mapping is
|
||
enabled. (Bryce Denney)
|
||
- cdrom
|
||
- bug fix: win32 could not read a cdrom image file
|
||
- eject cd support for linux (patch from Petr Stehlik)
|
||
- BeOS fixes
|
||
- changing cdrom media is possible now with CDROM button
|
||
- sound blaster(tm) emulation (Volker)
|
||
- you can use --enable-sb16=freebsd now
|
||
- 16-bit DMA controller added
|
||
- 16-bit mode of the SB16 implemented (output to file works)
|
||
- floppy drive (Volker Ruppert)
|
||
- implementation of the floppy command 'format track'
|
||
- implementation of read / write operations with MT=0
|
||
- behaviour of a few floppy commands fixed
|
||
- floppy reset behaviour fixed
|
||
- lots of other fixes
|
||
- fixed bug [ #468340 ] pic:slave: OCW3 not implemented. Now the slave PIC
|
||
supports all the modes that the master PIC does, and nobody will see this
|
||
message again.
|
||
- serial port (by Volker Ruppert unless noted)
|
||
- improved IRQ handling
|
||
- now Windows 95 serial driver works correctly
|
||
- fixed the return value of the MCR (loopback bit)
|
||
- interrupt reasons LSR change and MSR change implemented
|
||
- the number of data bits is considered when sending data
|
||
- all serial port changes are tested in loopback mode only
|
||
- serial port emulation fixed for FreeBSD and OpenBSD (Stu Grossman)
|
||
- fix receiver poll frequency so that it doesn't slow emulation (Stu Grossman)
|
||
- Bochs debugger
|
||
- when tracing, print the instruction just before it is executed, instead
|
||
of just after (Greg Alexander)
|
||
- after a triple-fault panic, you can now return to the debugger
|
||
- symmetric multiprocessor (SMP) simulation
|
||
- no more panic if you read the EOI register
|
||
- fixed default destination format in local APIC
|
||
- fix SMP instruction tracing in bochs debugger
|
||
- fix deadlock when debugger enabled and all processors HLT
|
||
- MSR support added by Zwane Mwaikambo
|
||
- simulation of interrupts is more accurate (Volker)
|
||
- implemented edge triggered interrupt mode
|
||
- added functions raise_irq() and lower_irq()
|
||
- programmable interrupt timer (Greg Alexander)
|
||
- fixed the PIT gate and improved the PIT printing options
|
||
- experimental real-time PIT
|
||
- parallel port improvements (Volker Ruppert)
|
||
- bug fix: hard disk errors caused by overflowing imul in the BIOS code.
|
||
Sebastian Bechet and Peter Tattam tracked it down and fixed it.
|
||
- fix some memory leaks (patch from Darko Tominac)
|
||
- Double-Word IO is supported for ATA devices
|
||
- fix bash-specific syntax in install-x11-fonts script
|
||
- print stack_return_from_v86 error only the first 100 times
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 1.3 (December 10, 2001):
|
||
- networking works on Windows and Linux platforms
|
||
- emulated cdrom can now read from ISO image files, on any platform.
|
||
- new PIT model by Greg Alexander which is much more complete than the
|
||
old one. The new PIT is used by default, but you can switch back to
|
||
the old one if you configure with --disable-new-pit.
|
||
(PIT = 8254 programmable interrupt timer)
|
||
- new configuration menus by Bryce Denney, which allow you to change any
|
||
bochsrc option using text menus, then save the configuration into
|
||
a new bochsrc file for later use. You can disable the new code using
|
||
configure --disable-control-panel. Also you can use the command
|
||
line arguments -nocp or -nocontrolpanel. Also, there is a new
|
||
"Config" button on the GUI that allows limited changes to the
|
||
configuration at runtime, such as changing the floppy disk.
|
||
- add docbook documentation directory in the sources under doc/docbook.
|
||
The transition from HTML to docbook documentation is still in progress.
|
||
- Add new log action "ask", as shown in these example bochsrc lines:
|
||
panic: action=ask
|
||
error: action=ask
|
||
When an event occurs which is set to "ask", you get a beep and message
|
||
on the text terminal that asks what you want to do. Choices are: continue,
|
||
continue and disable future messages from this device, quit immediately,
|
||
or segfault (where abort() function is available). If compiled with
|
||
--enable-debugger, you can also choose to enter the debugger.
|
||
- Parallel port emulation cleaned up by Volker Ruppert. See .bochsrc for
|
||
syntax of new parport1 line in bochsrc.
|
||
- PCI support improved by Volker Ruppert, including BIOS changes. Still
|
||
not complete.
|
||
- floppy controller returns a proper error response if you try to write
|
||
a read-only disk image. For systems such as DOS that actually use the BIOS
|
||
services, it was also necessary to add code in int13_diskette_function to
|
||
recognize a write-protected error and return the correct error status code
|
||
(AH=3, Carry Set).
|
||
- the ROM BIOS now prints panic messages to the console. Thanks to Cliff
|
||
Hones for his console display code.
|
||
- the ROM BIOS detects nonbootable disks (Barry Allard), and prints a message
|
||
on the console. Barry Allard's patch who helped with checking the boot
|
||
signature.
|
||
- LBA support added for hard disks. (Not tested very much.)
|
||
- add dependencies to makefiles
|
||
- logging code moved into a separate file, logio.cc
|
||
- new option --enable-slowdown-timer, by Greg Alexander, which kicks in if
|
||
Bochs simulation time starts to run faster than real time. This helps to
|
||
keep the Bochs clock in sync with the real clock when the CPU is mostly
|
||
idle.
|
||
- new option --enable-iodebug, by Dave Poirier, which creates an I/O
|
||
interface to the debugger. This lets you write software to be emulated
|
||
in Bochs which can turn on instruction, register, or memory tracing
|
||
using I/O accesses.
|
||
- improved detection of readline in configure script
|
||
- configure substitutes the version number into many files, instead of
|
||
using sed in the makefile. There are still a few uses of sed remaining.
|
||
- you can now use environment variables in bochsrc values. For example,
|
||
diskd: file="$BOCHS_IMG/diskd.img", cyl=615, heads=6, spt=17
|
||
- configure with --prefix=PATH works now
|
||
- running configure from a different directory works now, thanks to
|
||
a patch from Edouard G. Parmelan
|
||
- fix [ #433759 ] virtual address checks can overflow.
|
||
> Bochs has been crashing in some cases when you try to access data which
|
||
> overlaps the segment limit, when the segment limit is near the 32-bit
|
||
> boundary. The example that came up a few times is reading/writing 4 bytes
|
||
> starting at 0xffffffff when the segment limit was 0xffffffff. The
|
||
> condition used to compare offset+length-1 with the limit, but
|
||
> offset+length-1 was overflowing so the comparison went wrong.
|
||
- cmpxchg8b patch from Michael Hohmuth <hohmuth@innocent.com>
|
||
- apply patch from Thomas Fitzsimmons <fitzsim@cygnus.com> to fix compile
|
||
problems when BX_SUPPORT_PAGING and BX_USE_TLB are turned off
|
||
- fix bug introduced in 1.2.1 which caused spurious exceptions.
|
||
See patch #439314, Exception 1 (debug) on HALT, from
|
||
thomas.petazzoni@meridon.com.
|
||
- add panic in ctrl_xfer32.cc where the IRET32 implementation is broken.
|
||
This only happens if you are NOT in vm8086 mode or protected mode.
|
||
The intent is to warn people when they are getting bad emulation, and
|
||
encourage people to report how they got to that point.
|
||
- apply patch from Santiago Bazerque. See this bug report:
|
||
[ #463018 ] retf not removing parameters sometimes
|
||
- fix bug [ #461730 ] IRETD causes problems if NT-flag is set
|
||
reported by Peter Lammich.
|
||
- apply patch [ #455014 ] CR0 bug in 80486, described as:
|
||
> In the register CR0, when the bit PM is enabled, the bit 4 is 0
|
||
> when should be 1.
|
||
- apply patch from Mike Rieker <mrieker@o3one.org> associated with this bug
|
||
report: [ #480422 ] gdt 'accessed' bit
|
||
- in task_switch when it tried to ensure that the old TSS was paged in,
|
||
it actually used the new TSS address, fixed.
|
||
- updated the instrumentation code, and added a working example. To try
|
||
it, configure --enable-instrumentation=instrument/example1. Then when
|
||
you run bochs, you will get one line for each instruction PC and for
|
||
each I/O access in a new file called bxevent.txt.
|
||
- set a bit in the CMOS that says the processor has an FPU. This is
|
||
from patch [ #455006 ] Device byte is not initialized aptly.
|
||
Author did not leave their name.
|
||
- add logging code to the "null ethernet" which does not require host OS
|
||
support. All this does is print the outgoing packets from the guest OS.
|
||
- cleanup of log functions (Todd Fries)
|
||
- add BX_ERROR for every command in ATAPI-6 that bochs does not support.
|
||
I still need to do add some commands from older specs that are obsolete
|
||
(and not listed) in ATAPI-6. Commands that aren't in the spec will still
|
||
panic.
|
||
- only put 0xf into the 2nd hard disk field when the cdrom is not present.
|
||
This is a patch from Volker Ruppert <Volker.Ruppert@t-online.de>, who
|
||
comments: "The fdisk command reports an unusable second harddisk if the cdrom
|
||
is enabled. This patch helps, but I don't know if it is the right way."
|
||
- make hard disk code return error codes when data is not available instead
|
||
of just panicing. In particular, if the logical sector is out of bounds
|
||
or the disk image cannot be read/written at the desired offset, we now
|
||
abort the ATA command and return an error code. Many of the old BX_PANIC
|
||
messages are turned to BX_ERROR, so they will still appear in the
|
||
log, but now the device model will try to communicate this fact to
|
||
the OS instead of simply giving up.
|
||
- don't blindly reject odd length atapi commands. There are cases when
|
||
it's really ok according to ATA-4.
|
||
- for big endian machines, reversed the bit fields in interrupt_reason.
|
||
This was pointed out by Nicholai Benalal.
|
||
- extended keyboard improvements by Dave Poirier
|
||
- major mouse patch from Dave Spring, that implements several missing
|
||
mouse modes.
|
||
- commit keyboard patch from David Haslam <dch@sirius.clara.co.uk>
|
||
posted to mailing list, that addresses the problem of each key press
|
||
printing ^@. See cvs log for details.
|
||
- mouse performance fixes by Greg Alexander and Robb Main
|
||
- NE2000 fixes by Frode Vatvedt Fjeld, ecelca@yahoo.com, Greg Alexander,
|
||
and angelos@openbsd.org.
|
||
- fix bug [ #468340 ] pic:slave: OCW3 not implemented. Some event handling
|
||
code appeared in the master pic but not the slave pic.
|
||
- fix compile problems in SB16 code, related to fpos_t being treated as
|
||
an integer.
|
||
- patch from Volker Ruppert <Volker.Ruppert@t-online.de> to fix
|
||
midi output file so that winamp can play it.
|
||
- some cleanup of serial code by Todd Fries and Volker Ruppert, but it
|
||
doesn't work yet.
|
||
|
||
X Windows specific:
|
||
- commit patch from David Haslam <dch@sirius.clara.co.uk>
|
||
[ #455763 ] Cursor trail with DOS Edit/Minix vi
|
||
- error for missing fonts now points to the documentation
|
||
- new option --enable-idle-hack, by Roland Mainz, which makes Bochs more
|
||
friendly toward other processes when its CPU is idle. Presently,
|
||
this option is specific to X windows.
|
||
|
||
Win32 specific:
|
||
- now Windows 95/98/ME can read the physical cdrom (Don Becker)
|
||
- The default configuration for Win32 VC++, given in .conf.win32-vcpp,
|
||
now enables the NE2000 and renames all .cc files to .cpp. This keeps VC++
|
||
happy but may make it hard to use CVS.
|
||
- The default configuration for Cygwin, given in .conf.win32-cygwin, now
|
||
enables cdrom and SB16.
|
||
- See "new docs" on the web site for compile instructions for VC++ and Cygwin.
|
||
- The sources include a VC++ workspace, in addition to the old "nmake"
|
||
makefile.
|
||
- ethernet support (emulated NE2000 card), coded by Don Becker. This
|
||
implementation requires a library called WinPCap, which you can
|
||
download from http://netgroup-serv.polito.it/winpcap.
|
||
- new utility called niclist.exe which lists the ID number of all your network
|
||
cards (well probably you just have one). The ID be used when setting up your
|
||
.bochsrc.
|
||
- patch [ #466403 ] make text colors more accurate. The author did not leave
|
||
his/her name.
|
||
- fix GUI bug [ #452159 ] win32: mouse stuck if bochs win partly off screen
|
||
Now we center the mouse periodically, whether or not the mouse has
|
||
wandered outside of the window or not.
|
||
- event handler recognizes the extended keycode flag
|
||
- fixes for raw floppy and floppy disk images (Don Becker)
|
||
|
||
Linux specific:
|
||
- Ethernet (emulated NE2000 card) now works in Linux! Contributed by
|
||
splite@purdue.edu. This has been tested using host OS kernel 2.2.14, and
|
||
works with telnet, ftp, irc, lynx, etc. Because it is a packet filter
|
||
solution, you aren't able to talk to the host machine, only to other
|
||
machines on the network.
|
||
- The default configuration for Linux, given in .conf.linux, now enables
|
||
the NE2000 model.
|
||
- RPM build process configures with --prefix=/usr so that everything is
|
||
installed in /usr/bochs instead of /usr/local/bochs.
|
||
- DLX Linux disk image is now installed so that only root can write it, to
|
||
avoid security problems. When you run the bochs-dlx script, it creates a
|
||
local copy in your home directory and then runs it.
|
||
- code that determines the capacity of a cdrom now works for both ATAPI
|
||
and SCSI drives (splite@purdue.edu)
|
||
- applied patch from bochs@sigint.cs.purdue.edu. The comments are:
|
||
> The Linux 2.4.5 CD-ROM driver sends a READ_DISC_INFO command which caused
|
||
> an "unrecognized ATAPI command" panic. Looks like READ_DISC_INFO is only
|
||
> recognized by CD-R and CD-RW drives, so I ignore it for now.
|
||
|
||
Amiga MorphOS specific:
|
||
- Bochs now compiles and works on Amiga MorphOS. Configure with
|
||
--with-amigaos. For AmigaOS only, see .bochsrc for use of fullscreeen and
|
||
screenmode options. The Amiga MorphsOS is written and maintained by
|
||
Nicholai Benalal <nicholai@chello.se>.
|
||
- raw cdrom supported if you configure with --enable-cdrom
|
||
|
||
BeOS specific:
|
||
- Bochs compiles and works on BeOS. Configure with --with-beos.
|
||
Bernd Thorsten Korz <bernd.korz@insidebeos.de> maintains the BeOS port.
|
||
- raw cdrom supported if you configure with --enable-cdrom
|
||
|
||
MacOS X specific:
|
||
- Bochs now compiles and works on MacOS X. Configure with --with-carbon.
|
||
Emmanuel Mailliard <e.rsz@libertysurf.fr> ported the Macintosh code to the
|
||
Carbon API.
|
||
- The MacOS X application is built using (gasp) mkdir, copy, and rez.
|
||
Surely this is not the right way, but it works.
|
||
- raw cdrom supported if you configure with --enable-cdrom
|
||
|
||
RFB mode:
|
||
- apply patch.rfb-mouse by MURANAKA Masaki (monaka@users.sf.net)
|
||
see this source forge bug [ #457968 ] Strange mouse motion on RFB
|
||
- add a retry loop in RFB code, so that if port 5900 is not available
|
||
it can try 5901, etc.
|
||
|
||
Bochs Debugger:
|
||
- do a vga update whenever you print a debugger prompt.
|
||
- added debugger command "info fpu" that prints the FPU registers. If you
|
||
do "info all" you get cpu and fpu registers.
|
||
- added debugger command "info ne2k" which prints all the registers
|
||
of the NE2000 model
|
||
- add ability to do register tracing and flag tracing (Dave Poirier).
|
||
Try the trace-reg-on and trace-reg-off commands.
|
||
- instruction trace now includes time ticks
|
||
- fixed problems in which bochs compiled with debugger measured time
|
||
differently from bochs compiled without debugger. Also when instruction
|
||
trace was enabled, breakpoints and control-C did not work. Also,
|
||
breakpoints at the beginning of an interrupt handler did not work.
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 1.2.1 (June 12, 2001):
|
||
- more work on makefile for building RPMs
|
||
- [ #432382 ] build debian packages patch
|
||
add build/debian directory from Rob Lemley <rjlemley@calypsoblue.org>
|
||
which allows us to make Debian packages!
|
||
- optimize for speed when simulating one processor. Now 1-processor
|
||
performance should be equivalent to 1.1.2.
|
||
- [ #425640 ] sb16 assumes fpos_t is long int
|
||
This fixes compiles of iodev/sb16.cc on linux systems with newer libraries
|
||
in which fpos_t is not an integer.
|
||
- [ #432488 ] SMP:assert "n_logfn < MAX_LOGFNS" fails
|
||
increase MAX_LOGFNS since we ran out of them on an SMP simulation with
|
||
4 processors
|
||
- changes to compile clean on cygwin:
|
||
- don't use the WIN32 snprintf define for cygwin
|
||
- add ssize_t definition for cygwin
|
||
- only compile "struct timeval tval" if select is available
|
||
on that platform.
|
||
- [ #432491 ] SMP: CPUID says no APIC feature
|
||
clean up inconsistent use of BX_SUPPORT_APIC and BX_APIC_SUPPORT, which
|
||
caused the CPUID to report no APIC was present
|
||
- [ #431025 ] --enable-external-device-models broken
|
||
removed configure options for external-device-models and
|
||
external-cpu-memory. These don't work and aren't going to be fixed.
|
||
- [ #429448 ] configure: -lreadline when not there
|
||
Now configure allows you to choose not to use readline, even if it's found
|
||
on your system.
|
||
- [ #428915 ] apply extended keyboard patch
|
||
extended keyboard patch by Dave Poirier <eks@void-core.2y.net>
|
||
- [ #428626 ] if no X11 found, configure&make fails
|
||
Now configure halts if X windows is selected but no X libraries are found.
|
||
- updated rombios to version 1.13. This fixes several problems:
|
||
- [ #430472 ] DOS HIMEM "A20 line" error
|
||
This problem was apparantly caused when Bryce added a function that prints
|
||
the BIOS version, and he called it too early in the boot process. Now the
|
||
same function is called later, and it doesn't break the A20.
|
||
- [ #431010 ] SMP structure overwritten in v1.2
|
||
SMP structures were getting overwritten by BCC-generated data,
|
||
preventing SMP operating systems from detecting that other processors
|
||
were available.
|
||
- [ #431016 ] bios: SMP struct has wrong entry count
|
||
SMP structure had the wrong entry counts
|
||
- very minor doc updates (typos, replace broken link to mtools info)
|
||
- quit when the user clicks the power button, even if they have disabled
|
||
panics.
|
||
- win32 now defaults to having mouse capture mode turned off. For new users,
|
||
it would be distressing for their mouse cursor to disappear until they
|
||
pressed F12.
|
||
- [ #428222 ] vga font not installed
|
||
added script called "install-x11-fonts" which should help people install
|
||
the VGA font on X windows systems, if it isn't already there.
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in 1.2 (June 3, 2001):
|
||
- [ #427259 ] rombios HALT calls don't print
|
||
Fixed bios/rombios.c HALT macro so that it writes the line number of the
|
||
panic to the PANIC_PORT (port 0x400) and then does NOT do a halt
|
||
instruction. Also changed iodev/unmapped.cc so that the line number written
|
||
to PANIC_PORT is displayed as a BX_PANIC message. Because the HALT
|
||
macro now triggers the normal panic behavior, it can be controlled by
|
||
the bochsrc.
|
||
- [ #429016 ] crash if no hard drive
|
||
rombios used to call HALT macro if no hard drive was found. Now it only
|
||
calls HALT if a hard drive has an illegal geometry.
|
||
- [ #425388 ] include source for simple disk img tool
|
||
[ #428478 ] mkimg tool creates image 1 byte too big
|
||
Added bximage tool, which makes empty floppy and hard disk images.
|
||
It is now included in the top level Makefile, so it will get built
|
||
by default on all platforms.
|
||
- [ #426036 ] eth_fbsd.cc compile problem on solaris26
|
||
added configure test so that "configure --enable-ne2000" only
|
||
includes the Berkeley Packet Filter code (eth_fbsd) if the header
|
||
file <net/bpf.h> can be found. If you don't have BPF the ne2000
|
||
will not actually move packets, but at least it will compile clean now.
|
||
- [ #428214 ] 1.2.pre1 need documentation for binaries
|
||
Write windows and linux specific documentation to be installed in
|
||
binary releases.
|
||
- [ #429258 ] disable RESET for version 1.2
|
||
Since soft reset was not completely working, I reverted the reset patch.
|
||
Now it does panics on reset instead of trying to reboot, as the old
|
||
bochs versions did.
|
||
- [ #428222 ] Should the linux RPM install vga font?
|
||
now font/vga.pcf will be installed in the RPM package
|
||
- [ #429020 ] stop renaming the BIOS!!!
|
||
new BIOS changes are now in BIOS-bochs-latest, instead of a BIOS
|
||
whose name changes every time we change anything! To help distinguish
|
||
different BIOS versions, the BIOS now prints its RCS Id into the
|
||
log file.
|
||
- [ #428625 ] compile problem if SHOW_IPS is on
|
||
removed extra paren that broke SHOW_IPS
|
||
- [ #428219 ] PCI doesn't compile with SMF=1
|
||
- [ #429375 ] pthreads detection broken
|
||
- [ #429073 ] configure: if no X11, makes bad config
|
||
- [ #429229 ] install current .bochsrc in binary rels
|
||
- install Tim's man pages on linux RPM
|
||
- BIOS prints messages in log in case of boot failure
|
||
- rewrote instructions for compiling in win32 (win32.txt)
|
||
- fixed link in HTML changelog.html to point to the real sources on SF.
|
||
- added missing LOG_THIS definition to gui/nogui.cc and gui/rfb.cc
|
||
- added additional check for null pointer in debugger exit routine
|
||
- added diskd to .bochsrc
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in version 1.2-pre1 (May 25, 2001):
|
||
- major cleanup of .bochsrc
|
||
- major cleanup of stderr output: prints bochs version information when
|
||
starting, and at the end it tries to print the message that caused
|
||
bochs to quit.
|
||
- two hard disk support (diskd). At present, you cannot have two
|
||
hard drives and a cdrom at the same time, because there is only
|
||
one IDE controller with two channels.
|
||
- split hard disk support allows different partitions to be stored in
|
||
different image files
|
||
- two new GUI choices: term mode and RFB mode. Term is a text-only
|
||
interface, and RFB creates a server that can be accessed using
|
||
the AT&T VNC viewer.
|
||
- now Bochs can simulate an SMP machine, if you configure with
|
||
--enable-processors=N. Configuring more than one processor has
|
||
a major performance impact, so the default is 1 processor.
|
||
See SMP documentation for more details.
|
||
- to make SMP work, bx_mem and bx_cpu have been replaced with
|
||
bx_mem_array[] and bx_cpu_array[]. The cpus are referenced through
|
||
the BX_CPU(n) macro and memories through the BX_MEM(n). Normal
|
||
mode has one cpu and one memory, SMP mode has multiple cpu's and
|
||
one memory, cosimulation mode has multiple cpus and multiple memories.
|
||
- use --enable-cpu-level=6 to make Bochs claim to be a Pentium Pro.
|
||
The only feature that requires CPU level 6 is apic support.
|
||
- new logging system by Todd Fries, which has 4 levels of event
|
||
severity (panic, error, info, debug). There are new .bochsrc
|
||
options that control what action to take when a
|
||
panic/error/info/debug event occurs.
|
||
- now searches for .bochsrc, bochsrc, bochsrc.txt, and (on unix only)
|
||
$HOME/.bochsrc.
|
||
- use GNU readline library if --enable-debugger is on, as long as readline
|
||
can be found on the machine
|
||
- configure checks for existence strtoull and strtouq. if neither exists,
|
||
Bochs uses its own implementation
|
||
- applied patches from Cliff Hones <cliff@aonix.co.uk> to fix up the
|
||
rombios. This includes many improvements, which you can list by
|
||
doing "cvs log -r 1.6 bios/rombios.c" or looking at cvsweb.
|
||
- added suggested geometries of larger disks to the documentation
|
||
- this is the first release to have official binary packages for win32
|
||
and Linux. There is a new "make rpm" in the top-level Makefile which
|
||
will create an RPM of the current bochs directory. To use this,
|
||
become root and type "configure; make rpm".
|
||
- applied some FreeBSD patches from Maxim Sobolev (cdrom and serial).
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in version 1.1.2 (bugfix3, May 16, 2001):
|
||
- updated Elpin VGA BIOS to version 2.40, and changed pointer in .bochsrc
|
||
- fixed .conf.x86 script so that it uses c++ instead of egcs for C++ files
|
||
- now Makefile targets that recurse into subdirectories use double colons,
|
||
so that it will always recurse into subdirectories. Now a single make
|
||
command should notice a modified source file in a subdir.
|
||
- fixed bug in bx_panic. If BX_PANIC_IS_FATAL==0 and a (non-fatal) panic
|
||
occurs, it used to call bx_atexit() and then return. It should never
|
||
call bx_atexit, which starts to shut down the simulator, unless it's
|
||
really going to quit!
|
||
- support 2.88 MB floppy disks
|
||
- since dataseghack is checked in as non-executable, invoke it with
|
||
"csh dataseghack"
|
||
- double fault patch from Thomas Petazzoni <thomas.petazzoni@ifrance.com>,
|
||
sourceforge patch #423726.
|
||
- removed -fno-builtin from fpu makefiles
|
||
- redefine u_char, u_short, etc. in order to not conflict with system
|
||
definitions of these same types.
|
||
- in cdrom.cc, remove the extern "C" { } structure around some of the
|
||
header files. This is no longer necessary.
|
||
- do not panic on hard disk command 0x1f2 (read sector count)
|
||
- in keyboard.cc:
|
||
- apply Todd Fries' reset patch
|
||
- recognize most of the "Grey" insert/delete/home/end/etc. keys the
|
||
same as keypad keys.
|
||
- removed panic on "kbd_ctrl_to_kbd(): got value of 0x??"
|
||
- implement mouse command 0xf6 (set defaults)
|
||
- apply Suboner@aol.com's Xwindows timing patch from
|
||
http://sourceforge.net/tracker/index.php?func=detail&aid=418730&group_id=12580&atid=312580
|
||
- remove all patches from patches subdir which have already been applied.
|
||
The remaining ones are under consideration but not applied.
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in version 1.1.1 (bugfix2, April 9, 2001):
|
||
- in soundwin.cc, arg 3 should be typecast to LPWAVEFORMATEX
|
||
- in fpu_entry.c, Bryce mistyped his own initials!
|
||
- in configure.in and configure, define good defaults for VC++
|
||
#define BX_64BIT_CONSTANTS_USE_LL 0
|
||
#define inline __inline
|
||
#define BX_NO_EMPTY_STRUCTS 1
|
||
#define BX_NO_ATTRIBUTES 1
|
||
#define BX_HAVE_HASH_MAP 0
|
||
- in config.h.in, fixed typo in #error message
|
||
|
||
-------------------------------------------------------------------------
|
||
Changes in version 1.1 (bugfix1, April 6, 2001):
|
||
|
||
(FIXED, patch #414360: update copyrights)
|
||
update headers. Change copyright to 2001, replace config.h.in header with
|
||
the standard mandrake header that every other file uses.
|
||
|
||
(FIXED, patch #414356: inlines)
|
||
make macro to replace inline and static/extern keywords. Then make
|
||
define the macro appropriately based on configure.
|
||
|
||
(FIXED: patch #414234: macos-no-strdup)
|
||
--with-macos should force HAVE_STRDUP=0.
|
||
|
||
(FIXED, patch #403027: Fix mouse bugs in Linux and BSD)
|
||
Linux and BSD (maybe others) cause panic in mouse code.
|
||
|
||
(FIXED, patch #413851: const64bit patch)
|
||
VC++ does not allow "LL" after 64-bit constant.
|
||
|
||
(FIXED, patch #413859: fabs symbol conflict)
|
||
fpu code contains fabs, which conflicts with math library fabs.
|
||
|
||
(FIXED, patch #403004: Implement aborts on a few SET FEATURE commands...)
|
||
Implement aborts on a few SET FEATURE commands for ATA.
|
||
|
||
(FIXED, patch #402991: Update to iodev/vga.cc to add 3c3h read support)
|
||
Implement VGA enable register, at 0x3c3.
|
||
|
||
(FIXED, patch #403027: Fix mouse bugs in Linux and BSD)
|
||
Mouse panic in linux/BSD:
|
||
KBD: io write 0x64: command = 0xD3(write mouse outb)
|
||
|
||
(FIXED, patch #414229: panic-is-fatal)
|
||
Allow user to decide if panic is fatal, or just a warning
|
||
|
||
(FIXED, patch #414230: sun-cdrom)
|
||
Support Sun CDROM
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
there are cases where a pointer is cast to a 32-bit int,
|
||
then later cast to a pointer and dereferenced, which crashes any 64-bit
|
||
machine.
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
some machines have no snprintf or strtoull. include a replacement function
|
||
when needed.
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
Some compilers don't allow "typedef struct { } foo;"
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
Some people don't have hash_map.h, used in dbg_main.cc. Disable this code
|
||
if hash_map.h not found.
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
Some compilers can't handle labels at the end of a block, as in
|
||
void main () { /*code*/ label: }
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
Most compilers can't handle __attribute__. Use macro to define it away.
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
if --enable-debugger, turn on --enable-disasm too.
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
ome compilers can't handle any chars after an #endif
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
wrong type arg1 of bx_dbg_watch and bx_dbg_unwatch. The code in
|
||
lexer.l was calling it with integers (not booleans)
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
in fpu code, "setcc" macro was implemented with braces inside parens,
|
||
which some compilers don't understand.
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
in fpu_entry.c, FPU_load_int32 was consistently called with arg1 of
|
||
type (s32 *), but should be (u32 *)
|
||
|
||
(FIXED, patch #413574: portable1)
|
||
comment out sigcontext structure in fpu/stubs/asm/sigcontext.h because
|
||
it conflicted with sigcontext of other machines. This struct was never
|
||
used by bochs anyway.
|
||
|
||
(FIXED, patch #414046: portable2)
|
||
move definition of missing library functions into osdep.h and osdep.cc,
|
||
include contents of macutils*.
|
||
|
||
(FIXED, patch #414061: win32-rawcd)
|
||
CDROM drive letter for WIN32 should not be hardcoded.
|
||
|
||
(FIXED, patch #414060: win32-rawfloppy)
|
||
Bypass fstat when opening WIN32 raw floppy disk.
|
||
|
||
(FIXED, patch #414226: pit-panic)
|
||
WinME install dies with panic:
|
||
bochs: panic, pit: outp(43h): comm Bh, mode 00, bcd 00 unhandled
|
||
I think I had a similar problem. All three timers should support modes
|
||
0, 2, and 3. Other modes really aren't implemented.
|