1-------------------------------------------------------------------------
2Changes in 2.7 (August 1, 2021):
3
4Brief summary :
5  - Bugfixes for CPU emulation correctness (CPUID/VMX/SVM fixes to support
6    Windows Hyper-V as guest in Bochs)
7  - Improvements for the plugin handling to simplify Bochs extensions
8  - Added "multiple NICs" support to the NE2000 and E1000 devices
9  - Added experimental FTP service for networking modules 'vnet' and 'socket'
10  - Fixes and improvements for all supported Voodoo graphics adapters
11  - Added USB keyboard emulation with most of the keys supported
12  - GUI "cmdmode": create a headerbar event with key combo starting with F7
13  - LGPL'd VGABIOS updated to version 0.8a (new VGABIOS for Voodoo Banshee)
14
15Detailed change log :
16
17- General
18  - Improved plugins handling: all available plugins in path are detected at
19    startup (including externally developed ones). These types are supported in
20    Bochs configuration: config interfaces, display libraries, VGA compatile
21    adapters, optional PCI/ISA devices, pluggable USB devices, disk image,
22    networking and sound driver modules.
23  - Save/Restore bugfixes
24  - Removed legacy "load32bitOShack" feature.
25  - Removed "svga" display library designed for the obsolete Linux SVGALib.
26
27- Configure and compile
28  - Added example shortcut script for cross compiling on Linux for Windows.
29  - Visual Studio workspace files upgraded to VS2019 format.
30
31- Config interface
32  - The config interfaces 'textconfig' and 'win32config' are now plugins.
33  - Switch config interface to 'textconfig' at runtime in case the gui doesn't
34    support dialogs (rfb and vncsrv on Windows).
35
36- CPU/CPUDB
37  - Bugfixes for CPU emulation correctness (CPUID/VMX/SVM fixes to support Windows Hyper-V as guest in Bochs)
38  ! CPUID: Added TigerLake CPU definition (features CET and CLWB support)
39
40- Memory
41  - Improved BIOS write support by implementing Intel(tm) flash chip emulation.
42
43- Bochs Debugger and Instrumentation
44  - Switching to new internal instruction disassembler implementation based on Bochs internal instruction decoder.
45    New disassembler supporting natively all instruction extensions that Bochs is able to emulate, including AVX512*.
46    Old disassembler module is outdate and was removed from the source tree.
47  - Add more symbol lookups to disasm methods
48
49- I/O Devices
50  - Networking
51    - Added "multiple NICs" support to the NE2000 and E1000 devices. Up to 4 devices
52      per model are supported. Use the zero-based "card" parameter to specify device.
53    - Added experimental FTP service for networking modules 'vnet' and 'socket'.
54    - Fixes for iPXE network boot support (modules 'slirp', 'socket', 'vnet').
55    - Added config file support for the 'vnet' module (similar to 'slirp').
56    - Added log file support to 'bxhub' utility (networking module 'socket').
57    - Packet logging in text format for the 'slirp' and 'vnet' modules controlled
58      by runtime option ("pktlog" option in config).
59  - VGA
60    - Voodoo (all models): Now using CLUT for gamma correction in 16 bpp modes.
61    - Voodoo2: Added most of the bitblt capabilities.
62    - Voodoo Banshee: Added "Polygon Fill" command and 2D colorkey support.
63    - Removed lfb_enabled switch from Bochs VBE code. Now banked and LFB writes
64      to VRAM are always valid. Fixes GRUB bootloader menu when using Bochs VBE.
65    - DDC: Added "ddc" parameter to the "vga" option to make it possible
66      either to disable the DDC feature or to read the monitor EDID from file.
67  - PCI (general)
68    - Added config parameter to set up advanced PCI options. Now it is possible
69      to disable ACPI or HPET in case the i440FX chipset is selected. For the
70      i440BX chipset it is possible to disable the incomplete AGP subsystem.
71  - USB
72    - Added keyboard emulation with most of the keys supported.
73    - Added support for USB packet logging in PCAP format.
74    - Changed handling of device options in the USB port configuration
75      (see bochsrc sample).
76  - Sound
77    - Added PC speaker volume control for the lowlevel sound support.
78
79- GUI and display libraries
80    - Added support for calling a headerbar handler after pressing F7 (enabled
81      with "cmdmode" option / present in sdl, sdl2, win32 and x).
82    - Added support for saving text mode snapshot in BMP format.
83    - Write marker to log file by pressing "m" button (guis with "cmdmode" on).
84    - X11 keymaps: added new one for Swiss-German and improved Italian map.
85    - RFB / vncsrv: VGA features h/v pel panning and split screen now supported.
86    - RFB: added support for the pixel format RGB332.
87    - added display library option for disabling the Bochs gui console to use
88      the default system console instead (rfb, sdl, sdl2, vncsrv, x).
89    - win32: added display library option "autoscale" to scale a small
90      simulation window by factor 2, 4 or 8 depending in desktop window size.
91    - wx: fixed status bar handling to avoid segfaults and deadlocks.
92
93- VGABIOS
94  - LGPL'd VGABIOS updated to version 0.8a.
95    - Added initial version of the VGABIOS for Voodoo Banshee adapters.
96    - Added 'write character' support for non-VGA 8-bpp modes (Bochs VBE /
97      Cirrus / Banshee). Cirrus code uses bitblt engine.
98    - Fixed text output and scrolling in VGA graphics modes.
99    - Some small fixes in the VBE code and several code optimizations.
100
101- Misc
102  - Added support for converting VDI images to another format with bximage.
103
104-------------------------------------------------------------------------
105Changes in 2.6.11 (January 5, 2020):
106
107- General
108  - Added 64-bit support to the NSIS installer script
109  - Several fixes in the build system based on Debian patches
110
111- CPU / CPUDB
112  - Bugfixes for CPU emulation correctness
113    - Many critical bugfixes for Protection Keys, AVX512*, VMX/SVM, SHA, GFNI emulation
114  ! Implemented CET (Control Flow Enforcement Technology) emulation according to Intel SDM rev071
115
116- I/O Devices
117  - Added missing Cirrus SVGA bitblt feature "transparent color compare"
118  - Some fixes in HPET emulation (patch by Oleg)
119  - Fixed disk image lock mechanism in the USB MSD case
120
121- BIOS / VGABIOS
122  - LGPL'd VGABIOS updated to version 0.7b (Fixed VESA extension 'read EDID'
123    for Bochs VBE and Cirrus)
124  - Updated SeaBIOS ROM image to current version 1.13.0
125  - Added SeaVGABIOS ROM image for the Cirrus adapter
126  - Bochs BIOS built to work with CPU level 5 again
127
128-------------------------------------------------------------------------
129Changes in 2.6.10 (December 1, 2019):
130
131Brief summary :
132  - CPU: Bugfixes for CPU emulation correctness (critical bugfixes for PCID, ADCX/ADOX, MOVBE, AVX/AVX-512 and VMX emulation)
133  - CPU: implemented AVX-512 VBMI2/VNNI/BITALG, VAES, VPCLMULQDQ / GFNI instructions emulation
134  - VMX: Implement EPT-Based Sub-Page Protection
135  - CPUID: Added new CPU models Skylake-X, Cannonlake and Icelake-U
136  - CPUID: Implemented side-channel attack prevention reporting and corresponding MSR registers, enabled for Icelake-U
137  - Added basic support for the i440BX PCI/AGP chipset.
138  - Added basic Voodoo Banshee / Voodoo3 emulation support.
139  - Added basic DDC support for the VGA-compatible adapters.
140  - Implemented HPET emulation (ported from Qemu).
141
142Detailed change log :
143
144- General
145  - Disabled legacy "load32bitOShack" feature.
146  - Improved NSIS win32 installer script.
147
148- CPU / CPUDB
149  - Significant speedup to simulation of milti-threaded guest (patch by Luigu.B)
150  - Bugfixes for CPU emulation correctness (critical bugfixes for PCID, ADCX/ADOX, MOVBE, AVX/AVX-512 and VMX emulation)
151  ! x87: implemented FOPCODE and FDP deprecation features
152  ! AVX-512: implemented AVX-512 VBMI2/VNNI/BITALG instructions
153  ! Crypto: Implemented VAES instructions / VPCLMULQDQ / GFNI instruction
154  ! VMX: Implement EPT-Based Sub-Page Protection
155  ! CPUID: Added Skylake-X CPU definition (features AVX-512 support)
156  ! CPUID: Added Cannonlake CPU definition (features more AVX-512 levels, UMIP, SHA, PKU support)
157  ! CPUID: Added Icelake-U CPU definition (features more AVX-512 levels, UMIP, SHA, GFNI, VAES, PKU support)
158  ! CPUID: Implemented SCA (Side-Channel-Attack) Prevention reporting and corresponding MSR registers, enabled for Icelake-U CPU definition
159
160- Bochs Debugger and Instrumentation
161  - Added support for conditional breakpoints and conditional step/continue to Bochs debugger
162  - Support 'info tab' command for 64-bit mode as well
163  - Bochs debugger improvements patch by Doug Gale
164    - better handling of 64-bit addresses in the debugger, added support for 64 bit symbols,
165      added more symbol lookups.
166
167- I/O Devices
168  - PCI
169    - Added basic support for the i440BX PCI/AGP chipset.
170  - Timers
171    - Implemented HPET emulation (ported from Qemu).
172  - Hard drive / HD image
173    - Added support for unlocking disk images (locks leftover from previous
174      Bochs session) with the new command line argument '-unlock'.
175    - Added ATAPI command "get event status notification".
176    - Bugfix: undoable/volatile mode images now inherit the base image geometry
177      if present.
178  - Voodoo
179    - Voodoo1 emulation speedup with combined PCI / memory FIFO implementation
180      and multi-threading support (separate FIFO thread).
181    - Voodoo2 model now working after some fixes and implementation of the
182      CMDFIFO (using FIFO thread) and one of the bitBLT functions.
183    - Added Voodoo Banshee / Voodoo3 emulation support (still under construction,
184      but basically usable). The AGP models are available if chipset is i440BX.
185  - Display (general)
186    - Added basic DDC support for Bochs VBE, Cirrus and Voodoo Banshee / Voodoo3
187      adapters (reporting plug&play monitor "Bochs Screen").
188  - USB
189    - Now creating separate plugins for each USB device implementation.
190    - Added sector size option for USB disks (size 1024 and 4096 supported).
191  - Networking
192    - bxhub: Added DNS service support for the server "vnet" and connected
193      clients.
194  - Sound
195    - PC speaker now can play digitized sound by driving speaker gate.
196
197- GUI and display libraries
198  - Added new win32 gui option "traphotkeys" for fullscreen mode.
199  - wx: Fixes and updates for wxWidgets 3.0 support.
200  - Removed legacy guis "macos" and "svga" from display library auto-
201    detection (still available using --with-XXX option).
202
203- LGPL'd VGABIOS updated from CVS (VESA extension 'read EDID' for Bochs VBE
204  and Cirrus added).
205
206- Misc
207  - Added sector size option to bximage for creating flat, sparse and growing
208    mode images with big sectors (size 1024 and 4096 currently supported).
209
210-------------------------------------------------------------------------
211Changes in 2.6.9 (April 9, 2017):
212
213Brief summary :
214  - CPU: implemented new instructions and x86 architecture extensions.
215  - Bugfixes for CPU emulation correctness.
216  - Added Android host platform support.
217  - Added USB EHCI device emulation support.
218  - Added USB floppy (UFI/CBI) support.
219  - Added ethernet module 'socket', designed to interconnect Bochs instances.
220  - Show textconfig at runtime in the Bochs VGA window (gui console).
221
222Detailed change log :
223
224- General
225  - Added new log action "warn", designed to show a message box on error events.
226  - Show message box before exit if log action is set to "fatal".
227  - Added macro BX_FATAL for all cases when continuing is not recommended, since
228    it can cause an application crash or incorrect simulation behaviour.
229
230- Configure and compile
231  - Added Android host platform support.
232  - Configure script now prints warnings for features not maintained yet.
233
234- GUI and display libraries
235  - Show the runtime configuration in the Bochs VGA window (gui console) instead
236    of console / xterm (rfb, sdl, sdl2, vncsrv and X11 guis).
237  - SDL2: Added get/set clipboard text support.
238
239- CPU / CPUDB
240  - Bugfixes for CPU emulation correctness (critical bugfix for x86-64 and AVX opcodes emulation,
241    fixed assertion failures in proc_ctrl.cc)
242  ! VMX: Implemented Page Modification Logging (PML)
243  ! VMX: Implemented TSC Scaling Extension
244  ! Paging: Implemented Protection Keys
245  ! Implemented UMIP: User Mode Instruction Prevention (don't allow execution of SLDT/SIDT/SGDT/STR/SMSW with CPL>0)
246  ! Implemented RDPID instruction
247  ! Implemented VPOPCNTD/VPOPCNTQ AVX512 instructions
248  ! Implemented XSAVES/XRSTORS instructions and IA32_XSS MSR
249  ! Implemented Translation Cache Extensions (TCE) for AMD CPUID and EFER.TCE control
250  ! Implemented CLZERO instruction (AMD), enabled in Ryzen CPU model
251  ! Implemented MONITORX/MWAITX instructions (AMD), enabled in Ryzen CPU model
252  ! CPUDB: Added AMD Ryzen configuration to CPUDB
253
254- I/O Devices
255  - Busmouse
256    - Added standard bus mouse support in addition to the existing InPort
257      emulation code. (patch by Ben Lunt).
258  - Hard drive
259    - Implemented lock mechanism for hard disk images. An image that is opened
260      in r/w mode cannot be used multiple times (e.g. by another Bochs session).
261    - Several fixes in some disk image modes.
262  - Serial / Parallel ports
263    - Added support for changing output file at runtime.
264  - Networking
265    - Added ethernet module 'socket', designed to interconnect Bochs instances
266      with external program 'bxhub' (simulating a multi-port ethernet hub).
267    - Now creating separate plugins for each network driver implementation
268      (slirp, win32, etc.).
269  - Sound
270    - Added PCM output data resampling in a separate thread. The resampler
271      requires either libsamplerate or the SoX resampler library installed.
272    - SDL: Added audio capture support (requires library version >= 2.0.5).
273    - Now creating separate plugins for each sound driver (alsa, win, etc.).
274  - USB
275    - Added USB EHCI device emulation support (EHCI core ported from Qemu).
276    - Added USB floppy (UFI/CBI) support (patch by Ben Lunt).
277    - Added asynchronus USB packet completion support (needed by disk/cdrom
278      seek and read/write latency emulation).
279    - Implemented USB remote wakeup mechanism.
280    - Fixed NAK response handling in all USB HCs.
281    - USB printer: added support for changing output file at runtime.
282    - Added common USB device option "debug" to turn on BX_DEBUG reporting at
283      connection time.
284
285- ROM BIOS
286  - Implemented Bochs BIOS option "fastboot" for skipping the boot menu delay.
287
288-------------------------------------------------------------------------
289Changes in 2.6.8 (May 3, 2015):
290
291- CPU / CPUDB
292  - Bugfixes for CPU emulation correctness (critical bugfix for x86-64 emulation)
293  - Memory type calculation support for Bochs debugger and instrumentation,
294    to enable configure with --enable-memtype option.
295  - CPUDB: Added Pentium (P54C) configuration to CPUDB
296  - CPUDB: Added Broadwell ULT configuration to CPUDB
297  - Updated definition of instrumentation callbacks, see description in
298    instrumentation.txt / Fixed instrumentation examples
299
300- Configure and compile
301  - Configure option --enable-fast-function-calls now also used for MSVC nmake.
302  - Some configure fixes for the GTK debugger support.
303
304- GUI and display libraries
305  - The VGA update timer mode now can be selected with the 'vga' option.
306  - Release all pressed keys when the simwindow gets back the keyboard focus.
307  - Win32 gui: Captured mouse cursor now really trapped in window.
308  - SDL2: Implemented yes/no dialog (e.g. for VVFAT commit).
309  - Some fixes for wxWidgets 3.0 and unicode version compatiblity.
310  - Full save/restore support for enhanced gui debugger settings (window+font).
311  - Added debugger support for the term gui using a pseudo-terminal.
312
313- I/O Devices
314  - Hard drive
315    - Added Oracle(tm) VM VirtualBox image support (VDI version 1.1)
316    - Re-enable "bulk I/O" repeat speedups extension.
317    - Some lowlevel cdrom code fixes for Windows and Linux.
318  - Sound
319    - SB16: Fixed OPL chip detection by implementing ISA bus delay.
320    - SB16: Ported OPL3 emulation from DOSBox and partly removed legacy code.
321    - ES1370: Added MIDI UART output support.
322    - ES1370: Fixed critical bug that made Win9x drivers crash.
323    - Major rewrite of the lowlevel sound code.
324      - Added mixer thread support (required for all modules except 'sdl').
325      - New mixer and SDL mixer are polling data from the PCM output buffers,
326        the PC speaker beep generator and the OPL3 FM generator.
327      - PCM format conversion to 16 bit signed little endian.
328      - Added sound 'file' module for VOC, WAV, MID and raw data output
329        and added dual output support (device+file) in midi/wave mode 3.
330      - Added capability to set up the sound driver per service.
331  - Floppy
332    - Fixed "Read ID" command for single-sided media (patch by Ben Lunt).
333
334- ROM BIOS
335  - Fixed keyboard scancode processing after keyboard intercept.
336  - Fixed rombios32 code to avoid incorrect ACPI table detection.
337
338-------------------------------------------------------------------------
339Changes in 2.6.7 (November 2, 2014):
340
341- CPU / CPUDB
342  - Implemented AVX-512BW/AVX-512DQ/AVX-512VL extensions emulation.
343  - implemented AVX512-IFMA532 instructions emulation.
344  - implemented AVX512-VBMI instructions emulation.
345  - Bugfixes for CPU emulation correctness (critical fixes for AVX-512, CMPXCHG16B and VMX)
346  - Fixed Bochs segmentation fault crash with Handlers Chaining Speedups enabled when
347    compiling with gcc, especially with low optimization levels.
348  - Reverted removal of reporting Architectural Perfmon support in pre-defined CPUID modules.
349    Windows 8 and Windows 10 require Performance Monitoring to be reported to boot.
350    To workaround possible Windows 7 64-bit installation issues: use bx_generic CPUID module,
351    which doesn't report Performance Monitoring in CPUID.
352
353- GUI and display libraries
354  - The VGA update timer and the status LED timer now always use the realtime mode
355    independent from the 'clock' option setting.
356  - Added native SDL2 GUI support to Bochs. To enable configure with --with-sdl2.
357  - Added new user shortcut "scrlck" (SDL/SDL2 using "Scroll Lock" for fullscreen toggle).
358  - Write enhanced gui debugger settings to file on exit and restore on initialization.
359
360- I/O Devices
361  - USB
362    - xHCI model now emulates a NEC/Renesas uPD720202 device (patch by Ben Lunt).
363    - Added USB port specific option 'size' for VVFAT disks (range 128M ... 128G).
364      If the size is not specified or invalid, it defaults to 504M.
365  - Hard drive / HD image
366    - Fixed crash when using a "fixed" type VPC image.
367
368- ROM BIOS
369  - Fixed int74_function() for 4-byte (wheel mouse) packets.
370
371- LGPL'd VGABIOS updated from CVS (fixed building VBE modes list)
372
373- Misc
374  - Visual Studio workspace files updated to VS2013Ex format.
375  - bximage_old/bxcommit: removed old obsolete image manipulation tools.
376  - Documentation fixes and updates.
377
378-------------------------------------------------------------------------
379Changes in 2.6.6 (June 15, 2014):
380
381- CPU / CPUDB
382  - allow sandy bridge configuration even when AVX is not compiled in
383
384- Configure and compile
385  - fixed compilation error when 3dnow support is enabled
386  - speedup Visual Studio build by almost 20% by adding /Gr compiler option
387
388- Misc
389  - fixed minimizing win32 gui window and resolution change while minimized
390  - added compiled SeaBIOS 1.7.5 image into Bochs tree along with Bochs BIOS images
391  - documentation fixes and updates
392
393-------------------------------------------------------------------------
394Changes in 2.6.5 (June 1, 2014):
395
396Brief summary :
397- CPU: extra 5-10% emulation speedup with new trace linking optimization
398- CPU: implemented new instructions (e.g. AVX-512, SHA, XSAVEC)
399- CPUDB: added 2 new CPU models
400- Bugfixes for CPU emulation correctness (including some critical ones)
401- Gui debugger output window now can be used as a log viewer
402- Added built-in slirp (user-mode networking) support (ported from Qemu)
403- Added global sound config option and volume control support to the devices
404- Added new experimental gui 'vncsrv" using the LibVNCServer library
405- Rewrite of the bximage utility in C++ for image creation, conversion and resize
406
407Detailed change log :
408
409- CPU
410  - Bugfixes for CPU emulation correctness (critical fixes for XSAVE, VMX, TBM/BMI and RDRAND instructions)
411  - Implemented FCS/FDS Deprecation CPU feature
412  - Implemented SHA instructions emulation
413  - Implemented XSAVEC instruction emulation and XINUSE optimization in the XSAVEOPT instruction
414  - Implemented AVX-512 instructions emulation (experimental)
415  ! CPUDB: Added Intel(R) Core(TM) i7-4770 CPU (Haswell) configuration to CPUDB
416  ! CPUDB: Added AMD A8-5600K APU (Trinity) configuration to CPUDB
417
418  - Replace 'SSE' and 'AVX' .bochsrc option with single 'SIMD' option which controls presence
419    of all CPU SIMD extensions from SSE to AVX-512
420
421  - Extra 5-10% emulation speedup with new trace linking optimization. The optimization
422    is enabled by default when configuring with --enable-all-optimizations option,
423    to disable trace linking optimization configure with --disable-trace-linking.
424    The optimization require to compile Bochs with at least -O2 optimization level on gcc.
425
426- Bochs Debugger and Instrumentation
427  - Added disasm for Bochs internal instruction representation, especially useful for instrumentation
428  - Updated definition of instrumentation callbacks, see description in
429    instrumentation.txt / Fixed instrumentation examples
430  - added capability to use the gui debugger output window as a log viewer
431
432- General
433  - Increased max. device log prefix size to 6 and added / modified prefixes
434  - plugin version now uses the native DLL handling code for all Windows ports
435  - critical bugfixes in save/restore functionality
436
437- Configure and compile
438  - configure and compilation fixes for Cygwin and Visual Studio environment
439  - configure option --enable-cdrom now only controls the presence of
440    platform-specific code for device access
441  - building plugin version with MSVC nmake now supported
442
443- Config interface
444  - Added global sound control option for the driver and wave input/output
445  - Added new bochsrc option to control the speaker output mode
446  - Added support to specify the initial time for 'clock' option in ctime(3) string format
447  - Added support for the LTDL_LIBRARY_PATH variable with MSVC plugins
448  - All SB16 / ES1370 options are now changeable at runtime
449  - textconfig: added menu item for saving configuration at runtime
450  - Added bochsrc option for the Voodoo Graphics emulation (experimental)
451
452- I/O Devices
453  - Hard drive / CD-ROM
454    - seek latency implemented for ATA/ATAPI read commands
455    - portable ISO image file access now available on all platforms
456  - Networking
457    - added built-in slirp (user-mode networking) support (ported from Qemu)
458    - removed the "slirp backend" support (required external slirp binary)
459    - slirp/vnet: all supported TFTP extension options implemented now
460  - Sound
461    - SB16 / ES1370: added volume control support for wave output
462    - SB16: fixed audio distortion when playing stereo wave files
463    - ES1370: added 'wavemode' support similar to the SB16
464    - soundwin: added capability to specify the ID of the MIDI device to use
465  - Serial
466    - Serial mouse detection fixes
467  - Busmouse
468    - Non-functional device rewritten to make it work in DOS and Win95 guests
469      (use --enable-busmouse to configure and "mouse: type=bus" at runtime)
470
471- ROM BIOS
472  - PS/2 mouse function: allow setting mouse packet size to 4 for wheel support
473
474- GUI and display libraries
475  - Added new experimental gui 'vncsrv" using the LibVNCServer library
476  - RFB: set maximum resolution to 1280x1024 (same as vncsrv)
477  - RFB: don't wait for client connection on startup if timeout is set to 0
478  - Added mouse wheel support to the rfb, vncsrv and wx guis
479  - wx: added viewer window for the Bochs log output
480  - win32: fixes and improvements for the fullscreen mode
481
482- Tools
483  - bximage utility rewritten in C++ for image creation, conversion, resize
484    and redolog commit. Now vmware4 and vpc images can be created.
485
486-------------------------------------------------------------------------
487Changes in 2.6.2 (May 26, 2013):
488
489- CPU
490  - VMX: implemented VMENTER to non-active guest state (HLT, SHUTDOWN, WAIT-FOR-SIPI)
491  - VMX: fixed write of guest segment access rights VMCS fields (32-bit field
492    was truncated to 16-bit)
493  - CPUID: Don't report Architectural Performance Monitoring in CPUID.
494    Reporting true capabilities without actually supporting them breaks Win7 x64 installation.
495  - CPUID: Fixed bx_generic CPUID std leafs (all std leafs > 2 were corrupted)
496  - CPUID: Enable all supported VMX capabilities for bx_generic CPUID configuration.
497  - CPUID: Enable X2APIC support for Ivy Bridge CPUDB configuration.
498
499- Configure and compile
500  - Enabled VMX compilation by default in shortcut scripts.
501  - Allow CPU_LEVEL=5 configurations (pentium_mmx and amd_k2_chomper) even when Bochs was
502    compiled with CPU_LEVEL > 5.
503
504- Misc
505  - Fixes for Bochs port on MorphOS (based on a patch by Thore Sittly):
506    missing functions, byte-swapping and cdrom support.
507
508-------------------------------------------------------------------------
509Changes in 2.6.1 (April 7, 2013):
510
511- CPU / CPUDB
512  - Bochs is fully aligned with rev45 of the of Intel(R) Architecture Manual.
513    - Implemented Supervisor Mode Access Prevention (SMAP) support
514    - Implemented VMX APIC Registers Virtualization and VMX Virtual Interrupt Delivery
515    - Implemented VMCS Shadowing and #VE exception secondary VMEXIT controls emulation
516    - Implemented RDRAND and RDSEED instructions
517  ! CPUDB: Added AMD FX-4100 (Zambezi) configuration to CPUDB
518  - Bugfixes for CPU emulation correctness (critical fixes for SVM and AVX2 emulation)
519
520- Bochs Debugger and Instrumentation
521  - Use Enhanced GUI Debugger instead of old-style wx debugger with wx gui.
522    The old-style wx debugger support was deprecated and removed from the source code.
523
524- I/O Devices
525  - Implemented 3dfx Voodoo Graphics card emulation based on DOSBox patch, to enable
526    configure with --enable-voodoo option.
527  - Hard drive / HD image
528    - Added full save restore support for most of the disk image formats
529    - undoable / volatile mode: added support of other types of r/o base images
530    - DLL HD support rewritten and enabled for WIN32 host
531  - PCI chipset
532    - Implemented i430FX chipset emulation
533    - USB UHCI always enabled in the i440FX case
534
535- Config interface
536  - Configure option --enable-misaligned-sse moved to runtime option in .bochsrc. The old
537    option is deprecated and should not be used anymore.
538  - moved 'user_shortcut' bochsrc option to the 'keyboard' option
539  - save log options per device to bochsrc
540  - win32: implemented scrollable dialog items for large parameter lists
541
542- GUI and display libraries
543  - Graphics snapshot feature rewritten to support all kinds of graphics modes
544  - wx: starting a second simulation without closing Bochs now almost possible
545
546- Tools
547  - bxcommit: added support for converting flat to growing mode images
548
549-------------------------------------------------------------------------
550Changes in 2.6 (September 2, 2012):
551
552Brief summary :
553- More than 10% CPU emulation speedup !
554- Support for AMD's SVM hardware emulation (including extended XAPIC support).
555- Implemented support for new x86 ISA extensions.
556  Bochs is fully aligned with rev043 of Intel(R) Architecture Manual.
557- Improved emulation accuracy (critical fixes for APIC, VMX and AVX/XOP emulation).
558- Bochs internal debugger: new command to show state of a device from the debugger.
559- ROM BIOS: improved PCI boot ROM support (for VGA and other devices)
560- Networking:
561    - Ported Intel(R) 82540EM Gigabit Ethernet adapter emulation from Qemu.
562    - Added PCI network boot ROM support to all network adapters.
563    - Added TFTP support to the 'slirp' networking module.
564- Harddrive: added support for VirtualPC disk images, fixed sparse disk images.
565- Sound:
566    - implemented PC speaker beep using the lowlevel sound interface.
567    - SDL audio output support.
568- Added ability to set log action per device from .bochsrc.
569- Moved disk imaging, networking, sound and USB devices to subdirectories
570  in the iodev folder.
571
572Detailed change log :
573
574- CPU
575  - Implemented EPT A/D extensions support.
576    Bochs is fully aligned with rev043 of the of Intel(R) Architecture Manual.
577  - Implemented ADX (ADCX/ADOX) instructions support, the feature can
578    be enabled using .bochsrc CPUID option.
579  - More than 10% CPU emulation speedup with even more optimal lazy flags
580    handling, stack access optimizations and cross branch trace linking.
581  - Support for AMD's SVM hardware emulation in Bochs CPU, to enable
582    configure with --enable-svm option
583  - Implemented AMD Extended XAPIC support, to enable set .bochsrc CPU
584    APIC option to 'xapic_ext'
585  ! Added Corei5 750 (Lynnfield) configuration to the CPUDB
586  ! Added Turion64 (Tyler) configuration to the CPUDB
587  ! Added AMD Phenom X3 8650 (Toliman) configuration to the CPUDB
588  ! Added Corei7 3770K (Ivy Bridge) configuration to the CPUDB
589  - Bugfixes for CPU emulation correctness and stability
590    (critical fixes for APIC/X2APIC, VMX and AVX/XOP emulation)
591
592- Bochs Debugger and Instrumentation
593  - Implemented new debugger command 'info device [string]' that shows the
594    state of the device specified in 'string'
595  - Improved debug dump for ne2k, pci, pic and vga/cirrus devices. Added
596    debug dump for pci2isa, i/o apic, cmos, pit, floppy and dma devices.
597  - Added TLB to CPU param tree - now it can be browsed from Bochs internal
598    debugger and Bochs debugger GUI through param tree interfaces
599  - Implemented 'writemem' debugger command to dump virtual memory block
600    starting from selected linear address into a file
601  - Updated definition of instrumentation callbacks, see description in
602    instrumentation.txt / Fixed instrumentation examples
603
604- Configure and compile
605  - Moved disk imaging, networking, sound and USB devices to subdirectories
606    in the iodev folder.
607  - pcidev: enable support for Linux kernel 3.x (Debian patch by Guillem Jover)
608  - debugger: generate parser / lexer files only if all required tools are present
609
610- Config interface
611  - Added support for direct device plugin loading with bochsrc directive for
612    devices which have the same name for the plugin and config option.
613  - The bochsrc option 'plugin_ctrl' can now be used to load/unload optional
614    plugins directly when parsing the config file or command line. See the bochsrc
615    sample for supported devices.
616  - Moved bochsrc parsing / writing and config parameter handling for networking,
617    sound and USB devices to the plugin device code. The options are only
618    available when the corresponding plugin device is loaded.
619  - Added ability to set log action per device from .bochsrc.
620  - Added new command line option '-noconsole' to disable the console
621    window on Windows host.
622  - Renamed PCI Pseudo NIC option to "pcipnic" (for direct plugin loading)
623  - Moved several related options to the new "keyboard" bochsrc option.
624  - Added new parameter 'rtc_sync' for the 'clock' option. If this option
625    is enabled together with the realtime synchronization, the RTC runs
626    at realtime speed.
627  - Moved MWAIT_IS_NOP bochsrc option from CPUID to CPU so it can be set
628    even if cpu was configured using pre-defined CPUDB profile.
629  - Allow larger CPU 'quantum' values when emulating SMP systems for speed
630    (quantum values up to 32 are allowed now).
631
632- I/O Devices
633  - Networking
634    - Ported Intel(R) 82540EM Gigabit Ethernet adapter emulation from Qemu,
635      to enable configure with option --enable-e1000
636    - Added PCI network boot ROM support to all network adapters
637    - Added TFTP support to the 'slirp' networking module
638  - PCI
639    - added "auto-assign to PCI slot" feature for PCI-only devices
640  - DMA
641    - Added the capability to transfer more then one byte / word per ISA DMA cycle
642  - VGA
643    - Major rewrite of the vga / cirrus code:
644      - vgacore (shared standard VGA emulation code)
645      - vga (Bochs VBE and PCI VGA)
646      - cirrus (CL-GD 5430 ISA / CL-GD 5446 PCI)
647    - Added VGA graphics blinking support
648    - More accurate vertical and horizontal retrace emulation
649      (based on the DOSBox implementation)
650  - hard drive / hdimage
651    - added new disk image mode 'vpc' for VirtualPC images
652    - undoable mode: added coherency check (flat image size and timestamp)
653    - sparse mode: fixed read support
654  - Sound
655    - implemented PC speaker beep using the lowlevel sound interface
656    - added SDL audio output support
657
658- ROM BIOS
659  - improved PCI boot ROM support (for VGA and other devices)
660  - added MADT entry for Interrupt Source Override to ACPI tables
661
662- GUI and display libraries
663  - implemented "auto-off" timer for status LEDs indicating a data transfer
664  - Added support for sending absolute mouse position values from the gui if an
665    absolute pointing device (USB tablet) is active (rfb, sdl, win32, wx, x).
666  - Gui debugger now supported when using sdl gui on Windows
667  - Implemented "hideIPS" option in rfb, sdl, win32 and wx libraries
668  - wx: fixed random freezes with wxGTK and "show ips" feature enabled
669  - rfb: the "show ips" feature now works on Windows host
670
671- Tools
672  - bxcommit: added support for converting growing to flat mode images
673  - bxcommit: support command line options and non-interactive (quiet) mode
674  - bximage: increased maximum disk size to 8 TB
675
676- SF patches applied
677  [3540389] Patch 5 : Change memory reference functions argument order by Yeong-uk Jo
678  [3539254] Patch 4 : Memory reference optimization 2 by Yeong-uk Jo
679  [3539251] Patch 3 : Memory reference optimization by Yeong-uk Jo
680  [3539237] Patch 2 : Some optimization by Yeong-uk Jo
681  [3539228] Patch 1 : ROM BIOS Compatibility patch by Yeong-uk Jo
682  [3505209] Fixed combo box size by Konrad Grochowski
683  [2864391] Gui debugger default regs by Thomas Nilsen
684  [3486555] Fix critical stack leak in Win32 GUI by Carlo Bramini
685
686- these S.F. bugs were closed/fixed
687  [625877]  wx: power button -> thread deadlock
688  [3534063] Configure does not check for flex presence
689  [3555237] NE2000 doesn't compile on OS/X
690  [3553168] X doesn't build in latest code on OS/X
691  [3550175] Crash when saving snapshot to directory instead of file
692  [3548109] VMX State Not Restored After Entering SMM on 32-bit Systems
693  [3548108] VMEXIT Instruction Length Not Always Getting Updated
694  [3545941] Typo in preprocessor symbol
695  [3538731] Missing CR8 register
696  [3538574] Missing XD flag ( Execute Disable ) when showing PTEs
697  [3537556] Missing initializations
698  [3537309] Unable to use the debug GUI with SDL and plugins
699  [3537473] GUI debugger only shows 32-bit CRx registers in x86-64 mode
700  [3533426] UHCI PCI interrupts
701  [3459359] svga cirrus initialization
702  [3535228] info gdt does not show long mode segments
703  [3531806] Bochs crashes (SIGSEGV) when starting via ssh console
704  [3531807] Various missing initialization values reported by Valgrind
705   [635789] mapping mode 0 not supported
706  [3307201] BOCHS panics when execute HBIOS.COM
707  [3528809] IO APIC index register width
708  [3528516] Missing #if in soundmod.h
709  [3526069] MADT:Interrupt Source Override missed
710  [3518753] update dump after manual chages to memory contents
711  [3516859] bug in svn e1000 module
712  [3516029] stepping not working in debugger GUI in case of smp vm
713  [3510403] closing config dialog box closes entire simulator
714  [3459998] Bochs cannot be compiled outside the source tree
715  [2905969] can't use --enable-gdb-stub on vs2008
716  [3294001] Bochs GUI doesn't appear properly for 2nd Bochs copy
717  [3493315] Changing VGA 9/8 dot mode causes screen corruption
718
719- these S.F. feature requests were closed/implemented
720  [3540441] automatically enable devices in plugin control
721  [1251456] command line method to query bochs for features
722  [3409396] sdl sound
723  [3519794] debugger's ability to save physical/linear memory dumps
724  [1429612] Idea how to speedup simulation - stack direct access
725  [1703452] Other Network Devices?
726  [2919376] Disable show the console window
727   [534271] can't set log action by device (bochsrc)
728
729-------------------------------------------------------------------------
730Changes in 2.5.1 (January 6, 2012):
731
732- CPU / CPUDB
733  ! Added Athlon64 (Venice) configuration to the CPUDB
734  - BMI: fixed EFLAGS after BMI instructions
735  - MSR: access to AMD extended MSR space was impossible due to a bug in RDMSR/WRMSR
736  - VMX: fixed VMFUNC instruction behavior to align with Intel SDM revision 041
737  - VMX: fixed Bochs PANIC when doing I/O access crossing VMX I/O permission bitmaps
738  - VMX: fixed VirtualBox VMX guest Guru Meditation - FS.BASE got corrupted after
739    saving/restoring unusable FS selector
740  - VMX: fixed VirtualBox failures with VMX+EPT enabled
741  - Better report of supported CPUID features when not using pre-defined CPUID profile
742
743- Debugger / Instrumentation
744  - fixed typo - closing SF bug [3461405] step all command fails in SMP mode
745  - instrumentation: added special indication for indirect call/jump
746
747- Configure and compile
748  - fixed compilation err in instrumentation call (tasking.cc)
749  - fixed compilation err with x86 hw breakpoint enabled and CPU_LEVEL < 6
750  - fixed compilation issue under win32 --with-nogui
751  - added missing dependencies for cdrom_osx.o
752  - removed very old deprecated configure options from configure script
753
754- I/O Devices
755  - fixed possible failures of PCI DMA transfers
756  - VVFAT: several fixes in the optional write support (passes test with XP)
757  - USB UHCI: some fixes to make it work in XP guest
758  - removed devices 'acpi', 'ioapic' and 'pci_ide' from optional plugin control
759    to avoid trouble
760
761- Config interface / GUI and display libraries
762  - added VMX .bochsrc option to control VMX support on runtime
763  - fix for x86-64 .bochsrc option parsing (patch from @SF)
764  - fix for @SF bug: Crash on WIN2K - ID: 3454214
765  - added 'nokeyrepeat' option for the SDL and win32 gui
766
767-------------------------------------------------------------------------
768Changes in 2.5 (November 27, 2011):
769
770         Bochs repository moved to the SVN version control !
771
772Brief summary :
773
774! Fully configurable CPU to emulate with a single .bochsrc option !
775- 10% (ST) to 50% (SMP) CPU emulation speedup !
776- Implemented support for new x86 ISA extensions, Bochs is aligned with
777  latest published Intel Architecture Manual (rev 040, AVX rev 011):
778     - XSAVEOPT, AVX/AVX2/FMA/F16C, BMI1/BMI2, SMEP, INVPCID, TSC-Deadline
779     - VMX: VMX Preemption Timer, Pause Loop Exiting and VM Functions
780- Implemented support for AMD SSE4A/XOP/FMA4/TBM instruction sets
781- Networking: introduced new networking module 'slirp'
782- Harddrive: fixed buffer overflow causing Bochs crash in LBA48 mode
783- VGA: Added PCI ROM support to cirrus and pcivga and moved ROM loading
784       for the ISA case to the vga code (SeaBIOS now usable by Bochs)
785- Sound: ported ES1370 soundcard emulation from Qemu
786- Continuing configure rework, check for more removed configure and .bochsrc
787  options and their replacements !
788- LGPL'd VGABIOS updated to version 0.7a
789
790Detailed change log :
791
792- CPU
793  - Now you can configure CPU to emulate using a single .bochsrc option !
794    The option selects CPU configuration to emulate from pre-defined list
795    of supported configurations. When this option is used, Bochs CPU emulation
796    engine is automatically configured to emulate a specific real hardware CPU,
797    including exact CPUID matching reference hardware. Check .bochsrc example
798    or check user manual for list of supported configurations and more details.
799  * It is also possible to choose the CPU to emulate from Bochs command line
800    using command line interface to .bochsrc: "cpu::model <cpu_name>"
801  * Query for supported CPU models using command line option: -help cpu.
802
803  - 10% emulation speedup with handlers chaining optimization implemented. The
804    feature is enabled by default when configure with --enable-all-optimizations
805    option, to disable handlers chaining speedups configure with
806        --disable-handlers-chaining
807  - New way of CPUs scheduling in SMP mode brings up to 50% speedup to the
808    SMP emulation. New implementation uses dynamic CPU quantum value and takes
809    full advantage of the trace cache. Each emulated processor will execute
810    the whole trace before switching to the next processor.
811  * It is also safe to use large (up to 16 instructions) quantum values for
812    the SMP emulation now and improve performance even further.
813
814  - Implemented Supervisor Mode Execution Protection (SMEP), the feature can
815    be enabled using .bochsrc CPUID option.
816  - Added support for XSAVEOPT instruction, the instruction can be enabled
817    using .bochsrc CPUID option.
818  - Added support for AVX and AVX2 instructions emulation, to enable configure
819    with --enable-avx option. When compiled in, AVX still has to be enabled
820    using .bochsrc CPUID option.
821  - Added emulation of AVX float16 convert instructions, the feature can be
822    enabled using .bochsrc CPUID option.
823  - Added support for AVX2 FMA instructions emulation. The implementation
824    was ported (with few bugfixes) from QEMU patch by Peter Maydell.
825    The FMA instructions support can be enabled using .bochsrc CPUID option.
826  - Added support for Bit Manipulation Instructions (BMI1/BMI2) emulation.
827    The BMI instructions support can be enabled using .bochsrc CPUID option.
828  - Added support for AMD SSE4A/XOP/FMA4/TBM extensions emulation, the
829    instructions can be enabled using .bochsrc CPUID option.
830  - Implemented VMX preemption timer VMEXIT control (patch by Jianan Hao)
831  - Implemented Pause-Loop Exiting Secondary VMEXIT control.
832  - Implemented VM Functions support and EPTP-Switching VM Function.
833  - Added INVPCID instruction emulation support.
834  - Added APIC timer TSC-Deadline mode emulation support.
835  - Now you could disable x86-64 from .bochsrc so it become possible to
836    emulate 32-bit CPUs using Bochs binary compiled with x86-64 support.
837  - Updated/fixed instrumentation callbacks.
838  - Bugfixes for CPU emulation correctness and stability.
839
840- Bochs Internal Debugger and Debugger GUI
841  - Bochs disassembler fixes / new instructions support.
842  - Fixed timer breakpoint handling in Bochs internal debugger.
843  - Fixed bug in Bochs internal debugger 'show off' command.
844  - Added Bochs internal debugger command 'vmexitbp' to set breakpoint on
845    VMX guest VMEXIT (patch by Jianan Hao). Type 'vmexitbp' in debugger
846    command window to switch it on/off (similar to modebp).
847  - Fixed linear to physical address translation by Bochs internal debugger
848    for EPT unrestricted guest (VMX guest with paging disabled under EPT)
849  - Fixed bug in GUI debugger SSE registers display.
850  - Correctly display current CPU mode in GUI debugger status bar.
851  - Turn off the mouse capture when the internal debugger or gdbstub enter
852    the input loop.
853
854- Memory
855  - Added new configure option which enables RAM file backing for large guest
856    memory with a smaller amount host memory, without causing a panic when
857    host memory is exhausted (patch by Gary Cameron). To enable configure with
858        --enable-large-ramfile option.
859
860- Configure and compile
861  - Fixed Bochs manifest for Win64 compilation using Microsoft Visual Studio
862    command line compiler.
863  - Added ability to configure CPUID family through .bochsrc.
864    The default family value determined by configure option --enable-cpu-level.
865  - Added ability to configure CPUID model through .bochsrc.
866    The default model value is 3.
867  - Added ability to configure x2apic support through .bochsrc.
868    The APIC configuration could be selected using new CPUID .bochsrc APIC option.
869    Possible configurations are: "legacy", "xapic" and "x2apic".
870    Configure option --enable-x2apic and Bochs 2.4.6 .bochsrc XAPIC option are
871    deprecated and should not be used anymore.
872  - Configure option --enable-vbe is deprecated and should not be used anymore.
873    The VBE support is always automatically compiled in, in order to enable
874    VBE support the .bochsrc option "vga: extension=" has to be set to "vbe".
875    If PCI is present, the "pcivga" device can be assigned to PCI slot.
876  - Configure option --enable-acpi is deprecated and should not be used anymore.
877    The ACPI support is always automatically compiled in if PCI is compiled in.
878    The ACPI still could be disabled using .bochsrc 'plugin_ctrl' option.
879  - Removed --enable-trace-cache configure option. The option will be always ON
880    for any Bochs configuration.
881  - Compile in MONITOR/MWAIT support by default for all cpu-level=6 configurations.
882  - added support for MSVC DLL plugins with a separate workspace package.
883    VS2008Ex can now create a BOCHS.EXE with a set of plugin DLLs.
884    TODO: nmake still cannot create plugin DLLs.
885  - removed some outdated / unmaintained parts from the Bochs code: BeOS host
886    support, plex86 support, networking module 'arpback', text snapshot check
887    feature.
888
889- I/O Devices
890  - Networking
891    - new networking module 'slirp' (user mode networking using Slirp and a
892      builtin DHCP server)
893  - Hard drive / cdrom
894    - fixed buffer overflow causing Bochs crash in LBA48 mode
895    - implemented ATA commands "READ NATIVE MAX ADDRESS" and
896      "READ NATIVE MAX ADDRESS EXT"
897  - Sound
898    - ported ES1370 soundcard emulation from Qemu, to enable configure with
899      the option --enable-es1370
900    - sound input implemented in the sound lowlevel modules for Windows and
901      Linux (ALSA / OSS)
902  - PCI
903    - added framework for PCI ROM support
904    - new bochsrc option 'pci' replaces the 'i440fxsupport' option. The 'chipset'
905      parameter for now only accepts the value 'i440fx'.
906  - VGA
907    - added PCI ROM support to cirrus and pcivga and moved ROM loading for the ISA
908      case to the vga code (SeaBIOS now usable by Bochs)
909    - log prefix now depends on the selected extension (new prefix BXVGA for
910      Bochs VBE support)
911  - USB
912    - experimental USB xHCI support (written by Ben Lunt)
913
914  - LGPL'd VGABIOS updated to version 0.7a
915    - implemented vgabios functions with AX=0x112x (patch by Hugo Mercier)
916    - fixed DAC palette in 8 bpp VBE and Cirrus modes (using the same palette
917      as VGA mode 0x13)
918    - VBE: added HDTV resolutions (patch by Tristan Schmelcher)
919    - VBE: added PCI ROM signature and data structure
920
921  - ROM BIOS
922    - Report memory above 4GB to BIOS (patch by Sebastian Herbszt)
923    - added PCI ROM init code for BIOS-bochs-latest
924      (WARNING: legacy BIOS no longer works with a PCI display adapter)
925
926- GUI and display libraries
927  - new parameter 'update_freq' for the 'vga' bochsrc option replaces the
928    'vga_update_interval' option
929  - vga update frequency now uses host timing if the realtime synchronization
930    is enabled with the "clock" option (FIXME: it should always be used -
931    independent from the "clock" setting)
932  - Implemented graphics mode snapshot for VBE, Cirrus and standard VGA modes.
933    CGA modes are not supported yet.
934  - added 'x' display library option 'nokeyrepeat' to turn off keyboard repeat
935
936- Config interface
937  - win32paramdlg: dialog size now adjusted to support larger label text
938  - win32paramdlg: added tooltip support using the parameter description
939
940- SF patches applied
941  [3412431] Enabling raw devices as hdimage by affiss
942  [3435049] rombios: fix package size in pointing device flags 2 by Sebastian Herbszt
943  [3426460] [PATCH] PIC: remove never-executed code by Christian Inci
944  [3370604] Ctrl-Break support for the bochs BIOS by Nikolay Nikolov
945  [3302668] VMX preemption timer by Jianan Hao
946  [3327510] Fix wrong address translation in debugger by Jianan Hao
947  [3323758] Ctrl-Break support for the Win32 gui by Nikolay Nikolov
948  [3316785] Ctrl-Break support for the X11 gui by Nikolay Nikolov
949  [3298173] Breakpoint on VMEXIT event by Jianan Hao
950  [3295737] Fix CopyHost*WordLittleEndian macros by Heikki Lindholm
951  [3289448] optimized powerpc byte swapping by Heikki Lindholm
952  [3292581] Core Audio first aid by Heikki Lindholm
953  [3205979] Compilation fixes for OpenBSD by Brad Smith
954  [3290979] acpi/muldiv64 endian bug by Heikki Lindholm
955  [3289459] Mac OS X audio missing framework dependency by Heikki Lindholm
956  [3267459] fix xrandr related crash by Heikki Lindholm
957  [3190995] add eth backend based on Slirp by Heikki Lindholm
958
959- these S.F. bugs were closed/fixed
960  [3365456] block device dimensions problem
961  [3441564] interrupts vectors 0x67 should also be NULL ! cf: 2902118
962  [2829847] Mouse locked during magic-break
963  [3418621] release mouse when debugger breakpoint was hit
964  [1947077] sb command bug
965  [2802677] Unable to install Cirrus SVGA driver in guest Windows ME
966  [3422638] large ramfile support broken on anything but Linux
967  [3312237] stepN command might be not working properly
968  [3392760] Bochs does not compile with linux3.0
969  [3403746] segfault crash with sparse disk images
970  [3062054] Problems with BIOS pointing device services (int 15h)
971  [3277639] incompatible colours in palette
972  [1788739] Abort on large memory setting
973  [3012207] Int 13h FN 48h incorrect return values
974  [3363289] holding shift key causes capslock hang
975  [1819639] Two incompatible crc32 modules
976  [3324111] configure for VCPP.NET issues
977  [3190970] Installing linux causes a crash in pci_ide
978  [3077616] Fedora 13 installation fails on Bochs 2.4.5
979  [3294671] ./configure --enable-pci --disable-cdrom
980  [3303818] wrong memory size is reported to GRUB (e820 problem?)
981  [3297475] trace cache disabled mode will miss SMC
982  [3170157] BIOS32 PCI service wrong length
983  [3025030] PIT mistakenly connected to IRQ0 IOAPIC instead of IRQ2
984  [3266738] GUI debugger does not update CPU mode correctly
985  [3292571] SB16 doesn't reinit correctly
986  [3175168] Cirrus CL-GD5446 emulation incorrect
987  [3260134] Failed to compile when trace cache disabled
988  [3197425] Error compile with vmx in vs2008/2010 and for correct x64
989
990- these S.F. feature requests were closed/implemented
991  [3424738] Legacy BIOS int13 AL=17/18h diskette issue
992  [1197067] Screenshot for graphical
993  [2800839] VMX-preemption timer
994  [1507519] configurable CPUID
995   [579002] Allow user to specify architecture
996  [1228567] CPU option
997
998-------------------------------------------------------------------------
999Changes in 2.4.6 (February 22, 2011):
1000
1001Brief summary :
1002- Support more host OS to run on:
1003  - Include win64 native binary in the release.
1004  - Fixed failures on big endian hosts.
1005- BIOS: Support for up to 2M ROM BIOS images.
1006- GUI: select mouse capture toggle method in .bochsrc.
1007- Ported most of Qemu's 'virtual VFAT' block driver
1008  (except runtime write support, but plus FAT32 support)
1009- Added write protect option for floppy drives.
1010- Bugfixes / improved internal debugger + instrumentation.
1011
1012Detailed change log :
1013
1014- CPU and internal debugger
1015  - Implemented Process Context ID (PCID) feature
1016  - Implemented FS/GS BASE access instructions support
1017    (according to document from http://software.intel.com/en-us/avx/)
1018  - Rewritten from scratch SMC detection algorithm
1019    - Implemented fine-grained SMC detection (on 128 byte granularity)
1020  - Bugfixes for CPU emulation correctness and stability
1021    - Fixed failures on Big Endian hosts !
1022  - Print detailed page walk information and attributes in
1023    internal debugger 'page' command
1024  - Updated/Fixed instrumentation callbacks
1025
1026- Configure and compile
1027  - Bochs now can be compiled as native Windows x86-64 application
1028    (tested with Mingw gcc 4.5.1 and Microsoft Visual Studio Express 2010)
1029  - Added ability to configure CPUID stepping through .bochsrc.
1030    The default stepping value is 3.
1031  - Added ability to disable MONITOR/MWAIT support through .bochsrc
1032    CPUID option. The option is available only if compiled with
1033    --enable-monitor-mwait configure option.
1034  - Determine and select max physical address size automatically at
1035    configure time:
1036    - 32-bit physical address for 386/486 guests
1037    - 36-bit physical address for PSE-36 enabled Pentium guest
1038    - 40-bit physical address for PAE enabled P6 or later guests
1039  - Update config.guess/config.sub scripts to May 2010 revisions.
1040  - Update Visual Studio 2008 project files in build/win32/vs2008ex-workspace.zip
1041  - Added Bochs compilation timestamp after Bochs version string.
1042
1043- GUI and display libraries (Volker)
1044  - Added new .bochsrc option to select mouse capture toggle method.
1045    In addition to the default Bochs method using the CTRL key and the
1046    middle mouse button there are now the choices:
1047    - CTRL+F10 (like DOSBox)
1048    - CTRL+ALT (like QEMU)
1049    - F12 (replaces win32 'legacyF12' option)
1050  - display library 'x' now uses the desktop size for the maximum guest resolution
1051
1052- ROM BIOS
1053  - Support for up to 2M ROM BIOS images
1054
1055- I/O Devices
1056  - 3 new 'pseudo device' plugins created by plugin separation (see below)
1057  - Fixes for emulated DHCP in eth_vnet (patch from @SF tracker)
1058  - Added support for VGA graphics mode with 400 lines (partial fix for SF bug #2948724)
1059  - NE2K: Fixed "send buffer" command issue on big endian hosts
1060  - USB
1061    - converted common USB code plus devices to the new 'usb_common' plugin
1062      Now the USB device classes no longer exist twice if both HC plugins are loaded.
1063    - added 'pseudo device' in common USB code for the device creation. This makes
1064      the HCs independent from the device specific code.
1065    - USB MSD: added support for disk image modes (like ATA disks)
1066    - USB printer: output file creation failure now causes a disconnect
1067    - re-implemented "options" parameter for additional options of connected
1068      devices (currently only used to set the speed reported by device and to
1069      specify an alternative redolog file of USB MSD disk image modes)
1070  - hard drive
1071    - new disk image mode 'vvfat'
1072      - ported the read-only part of Qemu's 'virtual VFAT' block driver
1073      - additions: configurable disk geometry, FAT32 support, read MBR and/or
1074        boot sector from file, volatile write support using hdimage redolog_t
1075        class, optional commit support on Bochs exit, save/restore file
1076        attributes, 1.44 MB floppy support, set file modification date/time
1077    - converted the complete hdimage stuff to the new 'hdimage' plugin
1078    - new hdimage method get_capabilities() that can return special flags
1079    - vmware3, vmware4 and vvfat classes now return HDIMAGE_HAS_GEOMETRY flag
1080    - other disk image modes by default return HDIMAGE_AUTO_GEOMETRY if
1081      cylinder value is set to 0
1082    - multiple sector read/write support for some image modes
1083    - new log prefix "IMG" for hdimage messages
1084  - floppy
1085    - added write protect option for floppy drives (based on @SF patch by Ben Lunt)
1086    - vvfat support
1087    - bugfix: close images on exit
1088  - SB16
1089    - converted the sound output module stuff to the new 'soundmod' plugin
1090
1091- SF patches applied
1092 [3164945] hack to compile under WIN64 by Darek Mihocka and Stanislav
1093 [3164073] Fine grain SMC invalidation by Stanislav
1094 [1539417] write protect for floppy drives by Ben Lunt
1095 [2862322] fixes for emulated DHCP in eth_vnet
1096
1097- these S.F. bugs were closed/fixed
1098 [2588085] Mouse capture
1099 [3140332] typo in mf3/ps2 mapping of BX_KEY_CTRL_R
1100 [3111577] No "back" option in log settings
1101 [3108422] Timing window in NE2K emulation
1102 [3084390] Bochs won't load floppy plugin right on startup
1103 [3043174] Docbook use of '_' build failure
1104 [3085140] Ia_arpl_Ew_Rw definition of error
1105 [3078995] ROL/ROR/SHL/SHR modeling wrong when dest reg is 32 bit
1106 [2864794] BX_INSTR_OPCODE in "cpu_loop" causes crash in x86_64 host
1107 [2884071] [AIX host] prefetch: EIP [00010000] > CS.limit [0000ffff]
1108 [3053542] 64 bit mode: far-jmp instruction is error
1109 [3011112] error compile vs2008/2010 with X2APIC
1110 [3002017] compile error with vs 2010
1111 [3009767] guest RFLAGS.IF blocks externel interrupt in VMX guest mode
1112 [2964655] VMX not enabled in MSR IA32_FEATURE_CONTROL
1113 [3005865] IDT show bug
1114 [3001637] CMOS MAP register meaning error
1115 [2994370] Cannot build with 3DNow support
1116
1117- these S.F. feature requests were closed/implemented
1118 [1510142] Native Windows XP x64 Edition binary
1119 [1062553] select mouse (de)activation in bochsrc
1120 [2930633] legacy mouse capture key : not specific enough
1121 [2930679] Let user change mouse capture control key
1122 [2803538] Show flags for pages when using "info tab"
1123
1124-------------------------------------------------------------------------
1125Changes in 2.4.5 (April 25, 2010):
1126
1127Brief summary :
1128- Major configure/cpu rework allowing to enable/disable CPU options at runtime
1129  through .bochsrc (Stanislav)
1130- Bugfixes for CPU emulation correctness and stability
1131- Implemented X2APIC extensions (Stanislav)
1132- Implemented Intel VMXx2 extensions (Stanislav)
1133  - Extended VMX capability MSRs, APIC Virtualization,
1134    X2APIC Virtualization, Extended Page Tables (EPT),
1135    VPID, Unrestricted Guests, new VMX controls.
1136- Implemented PCLMULQDQ AES instruction
1137- Extended Bochs internal debugger functionality
1138- USB HP DeskJet 920C printer device emulation (Ben Lunt)
1139
1140Detailed change log :
1141
1142- Configure rework
1143  - Deprecate --enable-popcnt configure option. POPCNT instruction will be
1144    enabled automatically iff SSE4_2 is supported (like in hardware).
1145
1146  - Make --ignore-bad-msrs runtime option in .bochsrc. Old --ignore-bad-msrs
1147    configure option is deprecated and should not be used anymore.
1148
1149  - Enable changing part of CPU functionality at runtime through .bochsrc.
1150    - Now you could enable/disable any of SSEx/AES/MOVBE/SYSENTER_SYSEXIT/XSAVE
1151      instruction sets using new CPUID option in .bochsrc.
1152    - When x86-64 support is compiled in, you could enable/disable long mode
1153      1G pages support without recompile using new CPUID option in .bochsrc.
1154    Configure options:
1155       --enable-mmx, --enable-sse, --enable-movbe, --enable-xsave,
1156       --enable-sep, --enable-aes, --enable-1g-pages
1157    are deprecated and should not be used anymore.
1158
1159  - Local APIC configure option --enable-apic is deprecated and should not
1160    be used anymore. The LAPIC option now automatically determined from
1161    other configure options. XAPIC functionality could be enabled using
1162    new CPUID .bochsrc option.
1163
1164  - Changed default CPU configuration (generated by configure script with
1165    default options) to BX_CPU_LEVEL=6 with SSE2 enabled.
1166
1167- CPU
1168  - Implemented PCLMULQDQ AES instruction
1169  - Implemented X2APIC extensions / enable extended topology CPUID leaf (0xb),
1170    in order to enable X2APIC configure with --enable-x2apic
1171  - Implemented Intel VMXx2 extensions:
1172    - Enabled extended VMX capability MSRs
1173    - Implemented VMX controls for loading/storing of MSR_PAT and MSR_EFER
1174    - Enabled/Implemented secondary proc-based vmexec controls:
1175       - Implemented APIC virtualization
1176       - Implemented Extended Page Tables (EPT) mode
1177       - Implemented Descriptor Table Access VMEXIT control
1178       - Implemented RDTSCP VMEXIT control
1179       - Implemented Virtualize X2APIC mode control
1180       - Implemented Virtual Process ID (VPID)
1181       - Implemented WBINVD VMEXIT control
1182       - Implemented Unrestricted Guest mode
1183    In order to enable emulation of VMXx2 extensions configure with
1184        --enable-vmx=2 option (x86-64 must be enabled)
1185  - Bugfixes for CPU emulation correctness
1186  - Fixed Bochs crash when accessing the first byte above emulated memory size
1187
1188- Internal Debugger
1189  - Introduced range read/write physical watchpoints
1190  - Allow reloading of segment registers from internal debugger
1191  - Improved verbose physical memory access tracing
1192
1193- BIOS
1194  - Fix MTRR configuration (prevented boot of modern Linux kernels)
1195  - Fix interrupt vectors for INT 60h-66h (reserved for user interrupt) by
1196    setting them to zero
1197  - Fix BIOS INT13 function 08 when the number of cylinders on the disk = 1
1198
1199- I/O Devices
1200  - USB HP DeskJet 920C printer device emulation (Ben Lunt)
1201
1202- Misc
1203  - Updated Bochs TESTFORM to version 0.5
1204
1205- SF patches applied
1206 [2864402] outstanding x2apic patches by Stanislav
1207 [2960379] Fix build with -Wformat -Werror=format-security by Per Oyvind Karlsen
1208 [2938273] allow instrumentation to change execute by Konrad Grochowski
1209 [2926072] Indirection operators in expressions by Derek Peschel
1210 [2914433] makesym.perl misses symbols by John R. Jackson
1211 [2908481] USB Printer by Ben Lunt
1212
1213- these S.F. bugs were closed/fixed
1214 [2861662] dbg_xlate_linear2phy needs to be updated
1215 [2956217] INT13 AH=8 returns wrong values when cylinders=1
1216 [2981161] Allow DMA transfers to continue when CPU is in HALT state
1217 [2795115] NX fault could be missed
1218 [2964824] bad newline sequence in aspi-win32.h
1219  [913419] configure options and build process needs some work
1220 [2938398] gdbstub compile error with x86_64 enabled
1221 [2734455] shutdown/reset type 05 should reinit the PICs
1222 [1921294] extended memory less than 1M wrong size
1223 [1947249] BX_USE_EBDA_TABLES and MP table placement
1224 [1933859] BX_USE_EBDA_TABLES and memory overlapping
1225 [2923680] "help dregs" is a syntax error
1226 [2919661] CPU may fail to do 16bit near call
1227 [2790768] Memory corruption with SMP > 32, Panic BIOS Keyboard Error
1228 [2902118] interrupts vectors 0x60 to 67 should be NULL !
1229 [2912502] Instruction Pointer behaving erratically
1230 [2901047] Bochs crashed, closed by guest os
1231 [2905385] Bochs crash
1232 [2901481] Instruction SYSRET and SS(PL)
1233 [2900632] Broken long mode RETF to outer priviledge with null SS
1234 [1429011] Use bx_phyaddr_t for physaddr vars and bx_address for lin adr
1235
1236- these S.F. feature requests were closed/implemented
1237 [2955911] RPM preuninstall scriptlet removes /core
1238 [2947863] don't abort on unrecognised options
1239 [2878861] numerics in the disassembler output
1240 [2900619] make more CPU state changeable
1241
1242-------------------------------------------------------------------------
1243Changes in 2.4.2 (November 12, 2009):
1244
1245- CPU and internal debugger
1246  - VMX: Implemented TPR shadow VMEXIT
1247  - Bugfixes for CPU emulation correctness (mostly for VMX support).
1248  - Bugfixes and updates for Bochs internal debugger
1249    - On SMP system stepN command now affects only current processor
1250
1251- Memory
1252  - Bugfixes for > 32-bit physical address space.
1253  - Allow to emulate more physical memory than host actually could or would
1254    like to allocate. For more details look for new .bochsrc 'memory' option.
1255
1256- Cleanup configure options
1257  - All paging related options now will be automatically determined according
1258    to  --enable-cpu-level option. Related configure options
1259        --enable-global-pages, --enable-large-pages,
1260        --enable-pae, --enable-mtrr
1261    are deprecated now. Only 1G paging option still remaining unchanged.
1262  - Deprecate --enable-daz configure option. Denormals-are-zeros MXCSR control
1263    will be enabled automatically iff SSE2 is supported (like in hardware).
1264  - Deprecate --enable-vme configure option, now it will be supported iff
1265    CPU_LEVEL >= 5 (like in hardware).
1266
1267- I/O Devices
1268  - Bugfixes for 8254 PIT, VGA, Cirrus-Logic SVGA, USB UCHI
1269
1270- SF patches applied
1271 [2817840] Make old_callback static by Mark Marshall
1272 [2874004] fix for VMWRITE instruction by Roberto Paleari
1273 [2873999] fix CS segment type during fast syscall invocation by Roberto Paleari
1274 [2864389] Debugger gui maximize on startup by Thomas Nilsen
1275 [2817868] Rework loops in the memory code by Mark Marshall
1276 [2812948] PIT bug by Derek
1277
1278- these S.F. bugs were closed/fixed
1279 [2833504] GUI debugger bug-about GDT display
1280 [2872244] BIOS writes not allowed value to MTRR MSR causing #GP
1281 [2885383] SDL GUI memory leak
1282 [2872290] compilation in AIX5.3 ML10 failes
1283 [2867904] crash with cirrus bx_vga_c::mem_write
1284 [2851495] BIOS PCI returns with INT flag = 0
1285 [2860333] vista 64 guest STOP 109 (GDT modification)
1286 [2849745] disassembler bug for 3DNow and SSE opcodes
1287 [1066748] Wrong registers values after #RESET, #INIT
1288 [2836893] Regression: Windows XP installer unable to format harddrive
1289 [2812239] VMX: VM-Exit: Incorrect instruction length on software int
1290 [2814130] bx_debug lex/yacc files incorrectly generated
1291 [2813199] MP Tables Missing From BIOS
1292 [2824093] VMX exception bug
1293 [2811909] VMX : CS Access-rights Type.Accessed stays 0
1294 [2810571] Compile Errors on OSX
1295 [2823749] GCC regression or VM_EXIT RDMSR/WRMSR bug
1296 [2815929] Vista/XP64 unnecessary panic
1297 [2803519] Wrong example in man page bochsrc
1298
1299- these S.F. feature requests were closed/implemented
1300  [422766] Large Memory configurations
1301 [1311287] Idea for a better GUI
1302  [455971] USB support
1303  [615363] debugger shortcut for repeat last cmd
1304
1305-------------------------------------------------------------------------
1306Changes in 2.4.1 (June 7, 2009):
1307
1308- Fixed bunch of CPUID issues
1309  - Bochs is now able to install and boot 64-bit Windows images!
1310    (special thanks to Mark Ebersole for his patch)
1311- Several bugfixes in CPU emulation (mostly for x87 instructions)
1312- Fixed two critical deadlock bugs in the Win32 gui (patches from @SF tracker)
1313- Fixes related to the 'show ips' feature
1314  - removed conflicting win32-specific alarm() functions ('win32' and 'sdl' gui)
1315  - feature now works in wx on win32
1316- Added support for gdb stub on big endian machine (patch by Godmar Back)
1317- Rewritten obsolete hash_map code in dbg symbols module (patch from @SF)
1318- BIOS: implemented missing INT 15h/89h (patch by Sebastian Herbszt)
1319
1320-------------------------------------------------------------------------
1321Changes in 2.4 (May 3, 2009):
1322
1323Brief summary :
1324
1325- Added graphical Bochs debugger frontend for most of the supported platforms.
1326  - Thanks for Chourdakis Michael and Bruce Ewing.
1327- Many new CPU features in emulation
1328  - Support for > 32 bit physical address space and configurable MSRs
1329  - VMX, 1G pages in long mode, MOVBE instruction
1330- Bugfixes for CPU emulation correctness, debugger and CPU instrumentation.
1331- New config interface 'win32config' with start and runtime menu
1332- USB: added OHCI support, external hub and cdrom
1333- Added user plugin interface support.
1334
1335Detailed change log :
1336
1337- CPU and internal debugger
1338  - Support for VMX hardware emulation in Bochs CPU, to enable configure with
1339        --enable-vmx option
1340    Nearly complete VMX implementation, with few exceptions:
1341       - Dual-monitor treatment of SMIs and SMM not implemented yet
1342       - NMI virtualization, APIC virtualization not implemented yet
1343       - VMENTER to not-active state not supported yet
1344       - No advanced features like Extended Page Tables or VPID
1345  - Support for configurable MSR registers emulation, to enable configure with
1346        --enable-configurable-msrs option
1347    Look for configuration example in .bochsrc and msrs.def
1348  - Support new Intel Atom(R) MOVBE instruction, to enable configure with
1349        --enable-movbe option
1350  - Support for 1G pages in long mode, to enable configure with
1351        --enable-1g-pages option
1352  - Support for > 32 bit physical address space in CPU. Up to 36 bit could be
1353    seen in legacy mode (PAE) and up to 40 bit in x86-64 mode.
1354    Still support the same amount of the physical memory in the memory object,
1355    so system with > 4Gb of RAM yet cannot be emulated.
1356    To enable configure with --enable-long-phy-address option.
1357  - Implemented modern BIOSes mode limiting max reported CPUID function
1358    to 3 using .bochsrc CPU option. The mode is required in order to
1359    correctly install and boot WinNT.
1360  - Added ability to configure CPUID vendor/brand strings through .bochsrc
1361    (patch from @SF by Doug Reed).
1362  - Many bugfixes for CPU emulation correctness (both x86 and x86-64).
1363  - Updated CPU instrumentation callbacks.
1364  - Fixed Bochs internal debugger breakpoints/watchpoints handling.
1365
1366- Configure and compile
1367  - Added ability to choose Bochs log file name and Bochs debugger log file
1368    name from Bochs command line (using new -log and -dbglog options)
1369  - Removed Peter Tattam's closed source external debugger interface from
1370    the code.
1371  - Removed --enable-guest2host-tlb configure option. The option is always
1372    enabled for any Bochs configuration.
1373  - Removed --enable-icache configure option. The option is always enabled
1374    for any Bochs configuration. Trace cache support still remains optional
1375    and could be configured off.
1376  - Added configure option to compile in GUI frontend for Bochs debugger,
1377    to enable configure with --enable-debugger-gui option.
1378    The GUI debugger frontend is enabled by default with Bochs debugger.
1379  - Removed --enable-port-e9-hack configure option. The feature now could be
1380    configured at runtime through .bochsrc.
1381  - Added configure option to enable/disable A20 pin support. Disabling the
1382    A20 pin support slightly speeds up the emulation.
1383  - reduced dependencies between source files for faster code generation
1384
1385- BIOS
1386  - Added S3 (suspend to RAM) ACPI state to BIOS (patch by Gleb Natapov)
1387  - Implemented MTRR support in the bios (patches by Avi Kivity and Alex
1388    Williamsion with additions by Sebastian Herbszt)
1389  - Bug fixes
1390
1391- I/O Devices
1392  - Added user plugin support
1393  - remaining devices converted to plugins: pit, ioapic, iodebug
1394  - added 'plugin_ctrl' bochsrc option to control the presence of optional
1395    device plugins without a separate option. By default all plugins are enabled.
1396  - added register mechanism for removable mouse and keyboard devices
1397  - Hard drive / cdrom
1398    - PACKET-DMA feature now supported by all ATAPI commands
1399    - ATAPI command 0x1A added (based on the Qemu implementation)
1400  - sb16
1401    - Added ALSA sound support on Linux (PCM/MIDI output)
1402    - FM synthesizer now usable with MIDI output (simple piano only)
1403      - Fixed OPL frequency to MIDI note translation
1404      - Fixed MIDI output command
1405  - keyboard
1406    - added keyboard controller commands 0xCA and 0xCB
1407  - USB
1408    - USB code reorganized to support more HC types and devices
1409    - added USB OHCI support written by Ben Lunt
1410    - added external USB hub support (initial code ported from Qemu)
1411    - added USB cdrom support (SCSI layer ported from Qemu)
1412    - added status bar indicators to show data transfer
1413  - VGA
1414    - VBE video memory increased to 16 MB
1415    - implemented changeable VBE LFB base address (PCI only, requires latest
1416      BIOS and VGABIOS images)
1417  - I/O APIC
1418    - implemented I/O APIC device hardware reset
1419
1420- Config interface
1421  - new config interface 'win32config' with start and runtime menu is now
1422    the default on Windows ('textconfig' is still available)
1423  - win32 device config dialogs are now created dynamicly from a parameter list
1424    (works like the wx ParamDialog)
1425  - changes in textcofig and the wx ParamDialog for compatibility with the new
1426    win32 dialog behaviour
1427  - Bochs param tree index keys are case independent now
1428  - some other additions / bugfixes in the simulator interface code
1429
1430- Misc
1431  - updated LGPL'd VGABIOS to version 0.6c
1432  - Updated Bochs TESTFORM to version 0.4
1433
1434- SF patches applied
1435 [2784858] IO Handler names are not compared properly
1436 [2712569] Legacy bios serial data buffer timeout bug by grybranix
1437 [2655090] 64 bit BSWAP with REX.W broken by M. Eby
1438 [2645919] CR8 bug when reading by M. Eby
1439 [1895665] kvm: bios: add support to memory above the pci hole by Izik Eidus
1440 [2403372] rombios: check for valid cdrom before using it by Sebastian
1441 [2307269] acpi: handle S3 by Sebastian
1442 [2354134] TAP networking on Solaris/Sparc repaired
1443 [2144692] The scsi device can not complete its writing data command by naiyue
1444 [1827082] [PATCH] Configurable CPU vendor by Marcel Sondaar
1445 [2217229] Panic on EBDA overflow in rombios32 by Sebastian
1446 [2210194] Log pci class code by Sebastian
1447 [1984662] red led for disk write and titlebar mod by ggbsf
1448 [2142955] Fix for monitor/mwait by Doug Gibson
1449 [2137774] Patch to fix bug: cdrom: read_block: lseek returned error by Gabor Olah
1450 [2134642] Fix scan_to_scanascii table for F11 and F12 by Ben Guthro & Steve Ofsthun
1451 [2123036] sdl fullscreen fix by ggbsf
1452 [2073039] Remove CMOS accsess from AML code by Gleb Natapov
1453 [2072168] smbios: add L1-L3 cache handle to processor information by Sebastian
1454 [2055416] bochsrc cpu options for cpuid vendor and brand string by Doug Reed
1455 [2035278] rombios: Fix return from BEV via retf by Sebastian
1456 [2035260] rombios: El Torito load segment fix by Sebastian
1457 [2031978] Fix VMware backdoor command 0Ah by Jamie Lokier
1458 [2015277] Remove obsolete comment about DATA_SEG_DEFS_HERE hack by Sebastian
1459 [2011268] Set new default format and unit only if both are supported by Sebastian
1460 [2001919] gdbstub: fix qSupported reply by Sebastian
1461 [2001912] gdbstub: enclose packet data by apostrophes by Sebastian
1462 [1998071] fix missing SIGHUP and SIGQUIT with term ui on mingw by Sebastian
1463 [1998063] fix wrong colors with term ui by Sebastian
1464 [1995064] Compile fix needed for --enable-debugger and gcc 4.3 by Hans de Goede
1465 [1994564] Fix typo in RDMSR BX_MSR_MTRRFIX16K_A0000 by Sebastian
1466 [1994396] Change hard_drive_post #if by Sebastian
1467 [1993235] TESTFORM email address update by Sebastian
1468 [1992322] PATCH: fix compilation of bochs 2.3.7 on bigendian machines by Hans de Goede
1469 [1991280] Shutdown status code 0Ch handler by Sebastian
1470 [1990108] Shutdown status code 0Bh handler by Sebastian
1471 [1988907] Shutdown status code 0Ah handler by Sebastian
1472 [1984467] two typos in a release! (2.3.7)
1473 [1981505] Init PIIX4 PCI to ISA bridge and IDE by Sebastian
1474
1475- these S.F. bugs were closed/fixed
1476 [2784148] an integer overflow BUG of Bochs-2.3.7 source code
1477 [2695273] MSVC cpu.dsp failure in 2.3.7.zip
1478  [616114] Snapshot/Copy crash on Win2K
1479 [2628318] 'VGABIOS-latest' bug
1480 [1945055] can't 'make install' lastest bochs on loepard
1481 [2031993] Mac OS X Makefile bug
1482 [1843199] install error on mac osx
1483 [2710931] Problem compiling both instrumentation and debugger
1484 [2617003] ExceptionInfo conflicts with OS X api
1485 [2609432] stepping causes segfault (CVS)
1486 [2605861] compile error with --enable-smp
1487 [1757068] current cvs(Jul19, 07) failed to boot smp
1488 [2426271] cannot get correct symbol entry
1489 [2471982] VGA character height glitches
1490 [1659659] wrong behaviour a20 at boot
1491 [1998027] minwg + --with-term + --with-out-win32 = link failure
1492 [1871936] bochs-2.3.6 make fails on wx.cc
1493 [1684666] info idt for long mode
1494 [2105989] could not read() hard drive image file at byte 269824
1495 [1173093] Debugger totally not supports x86-64
1496 [1803018] new win32debug dialog problems
1497 [2141679] windows vcc build broken
1498 [2162824] latest cvs fails to compile
1499 [2164506] latest bochs fails to start
1500 [2129223] MOV reg16, SS not working in real mode due to dead code
1501 [2106514] RIS / startrom.com install ALMOST works
1502 [2123358] SMP (HTT): wbinvd executed by CPU1 crashes CPU0
1503 [2002758] Arch Linux: >>PANIC<< ATAPI command with zero byte count
1504 [2026501] El Torito incorrect boot segment:offset
1505 [2029758] BEV can return via retf instead of int 18h
1506 [2010173] x command breaks after one error about x/s or x/i
1507 [1830665] harddrv PANIC: ATAPI command with zero byte count
1508 [1985387] fail to make using gcc4 with --enable-debugger
1509 [1990187] testform feedback
1510 [1992138] Misspell in cpu/ia_opcodes.h
1511
1512- these S.F. feature requests were closed/implemented
1513 [2175153] Update MSVC project files
1514  [658800] front end program and bios
1515 [1883370] Make cd and floppy images more usable
1516  [422783] change floppy size without restarting
1517 [2552685] param tree names should be case insensitive
1518 [1214659] PC Speaker emu turnoff. Plugin Controll.
1519 [1977045] support 40 bit physical address
1520 [1506385] Intel Core Duo VT features
1521 [1429015] Support for user plugins
1522 [1488136] debugger access to floppy controller
1523 [1363136] Full debugger SMP and 64 bit support
1524 [2068304] Support for ACPI
1525  [431032] debugger "x" command
1526  [423420] profiling ideas (SMF)
1527  [445342] Add FM support?
1528  [928439] alsa
1529
1530-------------------------------------------------------------------------
1531Changes in 2.3.7 (June 3, 2008):
1532
1533Brief summary :
1534
1535+ More optimizations in CPU code - Bochs 2.3.7 is more than 2x faster
1536  than Bochs 2.3.5 build !
1537- Implemented LBA48 support in BIOS
1538- Added memory access tracing for Bochs internal debugger
1539- Implemented Intel(R) XSAVE/XRSTOR and AES instruction set extensions
1540- Many fixes in CPU emulation and internal debugger
1541  - MenuetOS64 floppy images booting perfect again !
1542- updated LGPL'd VGABIOS to version 0.6b
1543
1544Detailed change log :
1545
1546- CPU
1547  - Support of XSAVE/XRSTOR CPU extensions, to enable configure with
1548        --enable-xsave option
1549  - Support of AES CPU extensions, to enable configure with
1550        --enable-aes option
1551  - Fixed Bochs failure on RISC host machines with BxRepeatSpeedups
1552    optimization enabled
1553  - Implemented SYSENTER/SYSEXIT instructions in long mode
1554  - More than 100 bugfixes for CPU emulation correctness (both x86 and x86-64)
1555    - MenuetOS64 floppy images booting perfect again !
1556  - Updated CPU instrumentation callbacks
1557
1558- Bochs Internal Debugger and Disassembler
1559  - Added memory access tracing for Bochs internal debugger, enable
1560    by typing 'trace-mem on' in debugger command line
1561  - Many bug fixes in Bochs internal debugger and disassembler
1562
1563- System BIOS (Volker)
1564  - Implemented LBA48 support
1565  - Added generation of SSDT ACPI table that contains definitions
1566    for available processors
1567  - Added RTC device to ACPI DSDT table
1568  - Added implementation of SMBIOS
1569
1570- I/O devices (Volker)
1571  - VGA
1572    - Implemented screen disable bit in sequencer register #1
1573    - Implemented text mode cursor blinking
1574  - Serial
1575    - new serial modes 'pipe-server' and 'pipe-client' for win32
1576    - new serial mode 'socket-server'
1577
1578- Configure and compile
1579  - Fixed configure bug with enabling of POPCNT instruction, POPCNT
1580    instruction should be enabled by default when SSE4.2 is enabled.
1581  - Removed --enable-magic-breakpoint configure option. The option is
1582    automatically enabled  if Bochs internal debugger is compiled in.
1583    It is still possible to turn on/off the feature through .bochsrc.
1584  - Allow boot from network option in .bochsrc
1585  - Added Bochs version info for Win32
1586
1587- Display libraries
1588  - implemented text mode character blinking in some guis
1589  - improved 'X' gui runtime dialogs
1590
1591- SF patches applied
1592 [1980833] Fix shutdown status code 5h handler by Kevin O'Connor
1593 [1928848] "pipe" mode for serial port (win32 only) by Eugene Toder
1594 [1956843] Set the compatible pci interrupt router back to PIIX by Sebastian
1595 [1956366] Do not announce C2 & C3 cpu power state support by Igor Lvovsky
1596 [1921733] support for LBA48 by Robert Millan
1597 [1938185] Fix link problem with --enable-debugger by Sebastian
1598 [1938182] Makefile.in - use @IODEV_LIB_VAR@ by Sebastian
1599 [1928945] fix for legacy rombios - e820 map and ACPI_DATA_SIZE by Sebastian
1600 [1925578] rombios32.c - fix ram_size in ram_probe for low memory setup by Sebastian
1601 [1908921] rombios32.c - move uuid_probe() call by Sebastian
1602 [1928902] improvements to load-symbols by Eugene Toder
1603 [1925568] PATCH: msvc compilation by Eugene Toder
1604 [1913150] rombios.c - e820 cover full size if memory <= 16 mb by Alexander van Heukelum
1605 [1919804] rombios.c - fix and add #ifdef comments by Sebastian
1606 [1909782] rombios.c - remove segment values from comment by Sebastian
1607 [1908918] SMBIOS - BIOS characteristics fix by Sebastian
1608 [1901027] BIOS boot menu support (take 3)
1609 [1902579] rombios32.c - define pci ids by Sebastian
1610 [1859447] Pass segment:offset to put_str and introduce %S by Sebastian
1611 [1889057] rombios.c - boot failure message by Sebastian
1612 [1891469] rombios.c - print BEV product string by Sebastian
1613 [1889851] Win32 version information FILEVERSION for bochs.exe by Sebastian
1614 [1889042] rombios.c - fix comment by Sebastian
1615 [1881500] bochsrc, allow boot: network by Sebastian
1616 [1880755] Win32 version information for bochs.exe by Sebastian
1617 [1880471] SMBIOS fix type 0 by Sebastian
1618 [1878558] SMBIOS fixes by Sebastian
1619 [1864692] SMBIOS support by Filip Navara
1620 [1865105] Move bios_table_area_end to 0xcc00 by Sebastian
1621 [1875414] Makefile.in - change make use by Sebastian
1622 [1874276] Added instrumentation for sysenter/sysexit by Lluis
1623 [1873221] TLB page flush: add logical address to instrumentation by Lluis
1624 [1830626] lba32 support by Samuel Thibault
1625 [1861839] Move option rom scan after floppy and hard drive post by Sebastian
1626 [1838283] Early vga bios init by Sebastian
1627 [1838272] rom_scan range parameter by Sebastian
1628 [1864680] Save CPUID signature by Filip Navara
1629
1630- these S.F. bugs were closed
1631 [1976171] Keyboard missing break code for enter (0x9C)
1632  [666433] physical read/write breakpoint sometimes fails
1633 [1744820] info gdt and info idt shows the entire tables
1634 [1755652] graphics: MenuetOS64 shows black screen
1635 [1782207] Windows Installer malfunction, Host=Linux, Guest=Win98SE
1636 [1697762] OS/2 Warp Install Failed
1637 [1952548] String to char * warnings
1638 [1940714] SYSENTER/SYSEXIT doesn't work in long mode
1639 [1422342] SYSRET errors
1640 [1923803] legacy rombios - e820 map and ACPI_DATA_SIZE
1641 [1936132] Link problem with --enable-debugger & --enable-disasm
1642 [1934477] Linear address wrap is not working
1643 [1424984] virtual machine freezes in Bochs 2.2.6
1644 [1902928] with debugger cpu_loop leaves CPU with unstable state
1645 [1898929] Bochs VESA BIOS violates specs (banks == 1)
1646 [1569256] bug in datasegment change in long mode
1647 [1830662] ACPI: no DMI BIOS year, acpi=force is required
1648 [1868806] VGA blink enable & screen disable
1649 [1875721] Bit "Accessed" in LDT/GDT descriptors & #PF
1650 [1874124] bx_Instruction_c::ilen() const
1651 [1873488] bochs-2.3.6 make fails on dbg_main.cc
1652
1653- these S.F. feature requests were implemented
1654 [1422769] SYSENTER/SYSEXIT support in x86-64 mode
1655 [1847955] Version information for bochs(dbg).exe
1656  [939797] SMBIOS support
1657
1658-------------------------------------------------------------------------
1659Changes in 2.3.6 (December 24, 2007):
1660
1661Brief summary :
1662
1663+ More than 25% emulation speedup vs Bochs 2.3.5 release!
1664
1665      - Thanks to Darek Mihocka (http://www.emulators.com)
1666        for providing patches and ideas that made the
1667        speedup possible!
1668
1669+ Up to 40% speedup vs Bochs 2.3.5 release with trace cache optimization!
1670
1671- Lots of bugfixes in CPU emulation
1672- Bochs benchmarking support
1673- Added emulation of Intel SSE4.2 instruction set
1674
1675Detailed change log :
1676
1677- CPU
1678  - Added emulation of SSE4.2 instruction set, to enable use
1679        --enable-sse=4 --enable-sse-extension configure options
1680    to enable POPCNT instruction only use configure option
1681        --enable-popcnt
1682  - Implemented MTRR emulation, to enable use --enable-mtrr configure
1683    option. MTRRs is enabled by default when cpu-level >= 6.
1684  - Implemented experimental MONITOR/MWAIT support including optimized
1685    MWAIT CPU state and hardware monitoring of physical address range,
1686    to enable use --enable-monitor-mwait configure option.
1687  - Removed hostasm optimizations, after Bochs rebenchmarking it was found
1688    that the feature bringing no speedup or even sometimes slows down
1689    emulation!
1690  - Merged trace cache optimization patch, the trace cache optimization
1691    is enabled by default when configure with --enable-all-optimizations
1692    option, to disable trace cache optimization configure with
1693        --disable-trace-cache
1694  - Many minor bugfixes in CPU emulation (both ia32 and x86-64)
1695  - Updated CPU instrumentation callbacks
1696
1697- Bochs Internal Debugger and Disassembler
1698  - Many fixes in Bochs internal debugger and disassembler, some debugger
1699    interfaces significantly changed due transition to the param tree
1700    architecture
1701  - Added support for restoring of the CPU state from external file
1702    directly from Bochs debugger
1703
1704- Configure and compile
1705  - Renamed configure option --enable-4meg-pages to --enable-large-pages.
1706    The option enables page size extensions (PSE) which refers to 2M pages
1707    as well.
1708  - Removed --enable-save-restore configure option, save/restore feature
1709    changed to be one of the basic Bochs features and compiled by default
1710    for all configurations.
1711  - Added new Bochs benchmark mode. To run Bochs in benchmark mode execute
1712    it with new command line option 'bochs -benchmark time'. The emulation
1713    will be automatically stopped after 'time' millions of emulation
1714    cycles executed.
1715  - Another very useful option for benchmarking of Bochs could be enabled
1716    using new 'print_timestamps' directive from .bochsrc:
1717        print_timestamps: enable=1
1718  - Added --enable-show-ips option to all configuration scripts used to
1719    build release binaries, so all future releases will enjoy IPS display.
1720  - Enable alignment check in the CPU and #AC exception by default for
1721    --cpu-level >= 4 (like in real hardware)
1722
1723- SF patches applied
1724 [1491207] Trace Cache Speedup patch by Stanislav
1725 [1857149] Define some IPL values by Sebastian
1726 [1850183] Get memory access mode in BX_INSTR_LIN_READ by Lluis Vilanova
1727 [1841421] pic: keep slave_pic.INT and master_pic.IRQ_in bit 2 in sync by Russ Cox
1728 [1841420] give segment numbers in exception logs by Russ Cox
1729 [1801696] Allow Intel builds on Mac OS X
1730 [1830658] Fix >32GB disk banner by Samuel Thibault
1731 [1813314] Move #define IPL_* and typedef ipl_entry by Sebastian
1732 [1809001] Save PnP Option ROM Product Name string in IPL Boot Table by Sebastian
1733 [1821242] Fix for #1801285, Niclist.exe broken by Sebastian
1734 [1819567] Code warning cleanup
1735 [1816162] Update comment on bios_printf() by Sebastian
1736 [1811139] Trivial Fix when BX_PCIBIOS and BX_ROMBIOS32 not defined by Myles Watson
1737 [1811190] Improve HD recognition and CD boot by Myles Watson
1738 [1811860] Implement %X in bios_printf by Sebastian
1739 [1809649] printf %lx %ld %lu by Myles Watson
1740 [1809651] move BX_SUPPORT_FLOPPY by Myles Watson
1741 [1809652] dpte and Int13DPT fixes by Myles Watson
1742 [1809669] clip cylinders to 16383 in hard drive by Myles Watson
1743 [1799903] Build BIOS on amd64 by Robert Millan
1744 [1799877] Fix for parallel build (make -j2) by Robert Millan
1745
1746- these S.F. bugs were closed
1747 [1837354] website bug: View the Source link broken
1748 [1801268] Reset from real mode no longer working
1749 [1843250] Using forward slashes gives invalid filename
1750 [1823446] BIOS bug, local APIC #0 not detected
1751 [1801285] Niclist.exe broken
1752 [1364472] breakpoints sometimes don't work
1753  [994451] breakpoint bug
1754 [1801295] NSIS installer vs Windows Notepad
1755 [1715328] Unreal mode quirk
1756 [1503972] debugger doesn't debug first instruction on exception
1757 [1069071] div al, byte ptr [ds:0x7c18] fails to execute
1758 [1800080] Wrong "BX_MAX_SMP_THREADS_SUPPORTED" assertion
1759
1760- these S.F. feature requests were implemented
1761 [1662687] Download for Win32-exe with x64 Mode and debugging
1762  [604221] Debugger command: query lin->phys mapping
1763
1764-------------------------------------------------------------------------
1765Changes in 2.3.5 (September 16, 2007):
1766
1767Brief summary :
1768- Critical problems fixed for x86-64 support in CPU and Bochs internal debugger
1769- ACPI support
1770- The release compiled with x86-64 and ACPI
1771- Hard disk emulation supports ATA-6 (LBA48 addressing, UDMA modes)
1772- Added emulation of Intel SSE4.1 instruction set
1773
1774Detailed change log :
1775
1776- CPU
1777  - Fixed critical bug with 0x90 opcode (NOP) handling in x86-64 mode
1778  - implied stack references where the stack address is not in canonical form
1779    should causes a stack exception (#SS)
1780  - Added emulation of SSE4.1 instruction set (Stanislav)
1781  - Do not save and restore XMM8-XMM15 registers when not in x86-64 mode
1782  - Fixed zero upper 32-bit part of GPR in x86-64 mode
1783  - CMOV_GdEd should zero upper 32-bit part of GPR register even if the
1784    'cmov' condition was false !
1785  - Implemented CLFLUSH instruction, report non-zero cache size in CPUID
1786  - Fixed PUSHA/POPA instructions behavior in real mode
1787  - Fixed detection of inexact result by FPU
1788  - Fixed denormals-are-zero (DAZ) handling by SSE convert instructions
1789  - Implemented Misaligned Exception Mask support for SSE (MXCSR[17])
1790  - Implemented Alignment Check in the CPU and #AC exception, to enable
1791    use --enable-alignment-check configure option
1792
1793- General
1794  - 2nd simulation support in wxBochs now almost usable (simulation cleanup
1795    code added and memory leaks fixed)
1796
1797- Configure and compile
1798  - several fixes for MacOSX, OpenBSD and Solaris 10
1799  - enable save/restore feature by default for all configurations
1800  - reorganized SSE configure options to match Intel(R) Programming
1801    Reference Manual, new option introduced for SSE extensions enabling.
1802    To enable Intel Core Duo 2 new instructions use
1803        --enable-sse=3 --enable-sse-extension
1804    enabling of SSE4.1 (--enable-sse=4) will enable SSE3 extensions as well
1805  - removed old PIT, always use new PIT written by Greg Alexander,
1806    removed configure option --enable-new-pit
1807
1808- I/O devices (Volker)
1809  - Floppy
1810    - partial non-DMA mode support (patch by John Comeau)
1811  - Hard drive / cdrom
1812    - hard disk emulation now supports ATA-6 (LBA48 addressing, UDMA modes)
1813    - VMWare version 4 disk image support added (patch by Sharvil Nanavati)
1814  - PCI
1815    - initial support for the PIIX4 ACPI controller
1816  - Serial
1817    - added support for 3-button mouse with Mousesystems protocol
1818  - USB
1819    - experimental USB device change support added
1820    - rewrite of the existing USB devices code
1821    - new USB devices 'disk' and 'tablet' (ported from the Qemu project)
1822
1823- Bochs internal debugger
1824  - fixed broken debugger "rc file" option (execute debugger command from file)
1825  - implementation of a gui frontend ("windebug") for win32 started
1826  - gdbstub now accepts connection from any host
1827  - several documentation updates
1828  - a lot of disasm and internal debugger x86_64 support fixes
1829
1830- Configuration interface
1831  - fixes and improvements to the save state dialog handling
1832
1833- Display libraries
1834  - text mode color handling improved in some guis
1835  - win32 fullscreen mode (patch by John Comeau)
1836
1837- System BIOS (Volker)
1838  - 32-bit PM BIOS init code for ACPI, PCI, SMP and SMM (initial patches by
1839    Fabrice Bellard)
1840  - PCI BIOS function "find class code" implemented
1841
1842- SF patches applied
1843 [1791000] 15h 8600h is reading the wrong stack frame by Sebastian
1844 [1791016] rombios32.c, ram_probe(), BX_INFO missing value by Sebastian
1845 [1786429] typo in bochsrc.5 by Sebastian
1846 [1785204] Extend acpi_build_table_header to accept a revision number by Sebastian
1847 [1766536] Partial Patch for Bug Report 1549873 by Ben Lunt
1848 [1763578] ACPI Table Revision 0 -> 1
1849 [1642490] implement alignment check and #AC exception by Stanislav Shwartsman
1850 [1695652] [PATCH] .pcap pktlog and vnet PXE boot by Duane Voth
1851 [1741153] Add expansion-ROM boot support to the ROMBIOS
1852 [1734159] Implemented INT15h, fn 0xC2 (mouse), subfn 3, set resolution
1853 [1712970] bios_printf %s fix
1854 [1573297] PUSHA/POPA real mode fix by Stanislav Shwartsman
1855 [1641816] partial support for non-DMA access to floppy by John Comeau
1856 [1624032] shows where write outside of memory occurred by John Comeau
1857 [1607793] allow fullscreen when app requests it by John Comeau
1858 [1603013] Bugfix for major NOP problem on x64 by mvysin
1859 [1600178] Make tap and tuntap compile on OpenBSD by Jonathan Gray
1860 [1149659] improve gdbstub network efficiency by Avi Kivity
1861 [1554502] Trivial FPU exception handling fix
1862
1863- these S.F. bugs were closed
1864 [1316008] Double faults when it shouldn't - gcc 4.0.2
1865 [1787289] broken ABI for redolog class when enable-compressed-hd
1866 [1787500] tftp_send_optack not 64bit clean
1867 [1264540] Security issue with Bochs website
1868 [1767217] Debugger Faults including ud2
1869 [1729822] Various security issues in io device emulation
1870 [1675202] mptable hosed (bad entry count in header)
1871 [1197141] 'make install' installs to bad location
1872 [1157623] x86Solaris10 cannot recoginize ACPI RSD PTR
1873 [1768254] large HDD in Bochs/bximage
1874 [1496157] Windows Vista Beta2 dosn't boot
1875 [1755915] Illegal Hard Disk Signature Output
1876 [1717790] info gdt and info idt scrolls away, too long result
1877 [1726640] Debugger displays incorrect segment for mov instruction
1878 [1719156] Typo in misc_mem.cpp
1879 [1715270] Debugger broken in/beyond 2.3
1880 [1689107] v8086 mode priviledge check failed
1881 [1704484] A few checks when CPU_LEVEL < 4
1882 [1678395] Problem with zero sector...
1883  [876990] SA-RTL OS fails on PIC configuration
1884 [1673582] save/restore didn't restore simulation correctly
1885 [1586662] EDD int 13h bug, modify eax
1886  [666618] POP_A Panic in DOS EMU
1887 [1001485] panic: not enough bytes on stack
1888 [1667336] delay times an order of magnitude slow
1889 [1665601] crash disassembling bootcode
1890 [1657065] CVS sources won't compile
1891 [1653805] bochs's gdbstub uses incorrect protocol
1892 [1640737] ASM sti command frezzes guest OS
1893 [1636439] latest CVS sources don't compile under Cygwin
1894 [1634357] disasm incorrect (no sign ext) displacement in 64-bit mode
1895 [1376453] pcidev segfaults bochs
1896 [1180890] IOAPIC in BOCHS - WinXP 64 in MP version
1897 [1597528] 2.3 fails to compile on amd64
1898 [1526255] FLD1 broken when compaling with gcc 4.0.x
1899 [1597451] eth_fbsd is broken under FreeBSD
1900 [1571949] Bochs will not compile under Solaris
1901 [1500216] Bochs fails to boot BeOs CD
1902 [1458339] bochs-2.2.6 WinXP Binary ACPI error installing FreeBSD 6.0
1903 [1440011] patches needed for FreeBSD 6.0 to compile Bochs
1904  [431674] some devices don't have a prefix
1905  [458150] QNX demo disk crashes with new pit
1906  [818322] Bochs 2.1 cvs: OS/2 - read verify on non disk
1907  [906840] KBD: bogus scan codes generated in set 3
1908 [1005053] No keyboard codes translation
1909 [1109374] Problem with Scancodeset 2
1910 [1572345] Bochs won't continue
1911 [1568153] Bochs looks for (and loads?) unspecified display libraries
1912 [1563462] Errors in /iodev/harddrv.h
1913 [1562172] TLB_init() fails to initialize priv_check array if USE_TLB 0
1914 [1385303] debugger crashes after panic
1915 [1438227] crc.cpp missing in bx_debug version 2.2.6
1916 [1501825] debugger crashes on to high input
1917 [1420959] Memory leak + buffer overflow in Bochs debugger
1918 [1553289] Error in Dis-assembler
1919  [542464] I cannot use FLAT
1920 [1548270] Bochs won't die with its pseudo terminal
1921 [1545588] roundAndPackFloatx80 does not detect round up correctly
1922
1923-------------------------------------------------------------------------
1924Changes in 2.3 (August 27, 2006):
1925
1926Brief summary :
1927- limited save/restore support added (config + log options, hardware state)
1928- configuration parameter handling rewritten to a parameter tree
1929- lots of cpu and internal debugger fixes
1930- hard disk geometry autodetection now supported by most of the image types
1931- hard disk emulation now supports ATA-3 (multiple sector transfers)
1932- VBE memory size increased to 8MB and several VGA/VBE fixes
1933- updated LGPL'd VGABIOS to version 0.6a
1934
1935Detailed change log :
1936
1937- CPU and internal debugger fixes
1938  - Fixed bug in FSTENV instruction (Stanislav Shwartsman)
1939  - Recognize #XF exception (19) when SSE is enabled
1940  - Fixed bug in PSRAW/PSRAD MMX and SSE instructions
1941  - Save and restore RIP/RSP only for FAULT-type exceptions, not for traps
1942  - Correctly decode, disassemble and execute multi-byte NOP '0F F1' opcode
1943  - Raise A20 line after system reset (Stanislav Shwartsman)
1944  - Implemented SMI and NMI delivery (APIC) and handling in CPU (Stanislav)
1945  - Experimental implementation of System Management Mode (Stanislav)
1946  - Added emulation of SSE3E instructions (Stanislav Shwarstman)
1947  - Save and restore FPU opcode, FIP and FDP in FXSAVE/FRSTOR instructions
1948  - Fixed bug in MOVD_EdVd opcode (always generated #UD exception)
1949  - Fixed critical issue, Bochs was not supporting > 16 bit LDT.LIMIT values
1950  - Many fixes in Bochs internal debugger and disassembler
1951
1952- CPU x86-64 fixes
1953  - Fixed SYSRET instruction implementation
1954  - Fixed bug in CALL/JMP far through 64-bit callgate in x86-64 mode
1955  - Correctly decode, disassemble and execute 'XCHG R8, rAX' instruction
1956  - Correctly decode and execute 'BSWAP R8-R15' instructions
1957  - Fixed ENTER and LEAVE instructions in x86-64 mode (Stanislav)
1958  - Fixed CR4 exception condition (No Name)
1959  - Fixed x86 debugger to support x86-64 mode (Stanislav)
1960
1961- APIC and SMP
1962  - Support for Dual Core and Intel(R) HyperThreading Technology. Now you
1963    could choose amount of cores per processor and amount of HT threads per
1964    core from .bochsrc for SMP simulation (Stanislav Shwartsman)
1965  - Allow to control SMP quantum value through .bochsrc CPU
1966    option parameter. Previous Bochs versions used hardcoded quantum=5
1967    value.
1968  - Fixed interrupt priority bug in service_local_apic()
1969  - Fixed again reading of APIC IRR/ISR/TMR registers. Finally it becomes
1970    fully correct :-)
1971
1972- Configure and compile
1973  - Moved configure time --enable-reset-on-triple-fault option to runtime,
1974    the 'cpu' option in .bochsrc is extended and the old configure option
1975    is deprecated (Stanislav Shwartsman)
1976  - Removed --enable-pni configure option, to compile with PNI use
1977    --enable-sse=3 instead (Stanislav Shwartsman)
1978  - enable SEP (SYSENTER/SYSEXIT) support by default for Penitum II+
1979    processor emulation (i.e. if cpu-level >= 6 and MMX is enabled)
1980
1981- general
1982  - Limited save/restore support added. The state of CPU, memory and all
1983    devices can be saved now (state of harddisk images not handled yet).
1984  - Fixed several memory leaks
1985
1986- configuration interface
1987  - Configuration parameter handling rewritten to a parameter tree. This is
1988    required for dynamic menus/dialogs, user-defined options and save/restore.
1989  - Support for user-defined bochsrc options added
1990  - help support at the parameter prompt in textconfig added
1991
1992- I/O devices (Volker)
1993  - Floppy
1994    - partial sector transfers fixed
1995  - Hard drive / cdrom
1996    - several fixes to the IDE register behaviour (e.g. in case of a channel
1997      with only one drive connected)
1998    - fixed data alignment of 'growing' hard drive images (sharing images
1999      between Windows and Linux now possible)
2000    - disk geometry autodetection now supported by most of the image types
2001      (unsupported: external, dll and compressed modes)
2002    - multi sector read/write commands implemented
2003    - hard disk now reporting ATA-3 supported
2004    - ATAPI 'inquiry' now returns a unique device name
2005  - Keyboard
2006    - reset sent to keyboard has no effect on the 8042 (scancode translation)
2007  - PCI
2008    - forward PIRQ register changes to the I/O APIC (if present)
2009    - attempt to fix and update the emulation part of 'pcidev' (untested)
2010  - VGA
2011    - VBE memory size increased to 8MB and several VBE fixes
2012    - VGA memory read access fixed (bit plane access and read mode)
2013    - VGA memory is now a part of the common video memory
2014
2015- System BIOS (Volker)
2016  - enable interrupts before executing INT 19h
2017  - fixed ATA device detection in case of one drive only connected to controller
2018  - improved INT 15h function AX=E820h
2019  - real mode PCI BIOS now returns IRQ routing information (function 0Eh)
2020  - keyboard LED flags handling fixed and improved
2021  - fixed handling of extended keys in INT 09h
2022  - Updated LGPL'd VGABIOS to version 0.6a
2023
2024- SF patches applied
2025 [1340111] fixes and updates to usb support by Ben Lunt
2026 [1539420] minor addition to pci_usb code by Ben Lunt
2027 [1455958] call/jmp through call gate in 64-bit mode
2028 [1433107] PATCH: fix compile with wxwindows 2.6 (unicode / utf8) by jwrdegoede
2029 [1386671] Combined dual core and hyper-threading patch
2030
2031- these S.F. bugs were closed
2032  [833927] TTD: System Error TNT.40025: Unexpected processor exception
2033  [789230] Sending code that shows lock up when setting idt
2034  [909670] Problems with Symantec Ghost
2035 [1540241] include missing in osdep.cc
2036 [1539373] Incorrect disasm for "mov moffset,bla" in 64bit
2037 [1538419] incorrect disassembly of [rip+disp] with rex.b
2038 [1535432] shift+cursor key maps to a digit
2039 [1504891] Knoopix 5.0.1 error
2040 [1424355] bochs-2.2.6 ata failure in windoze 98se
2041 [1533979] wrong disassembly of IN instruction
2042  [620059] paste won't stop
2043 [1164904] status bar doesn't show num/caps/scroll lock status
2044 [1061720] ATA Support level for HD
2045 [1522196] Broken CHANGES link in main page
2046 [1438415] crash if screen scrolled downwards
2047  [778441] Shouldn't interrupts be enable after BIOS?
2048 [1514949] I got a problem with the 8253 timer
2049 [1513544] disasm of 0xec (in AL,DX) returns ilen of 2 instead of 1
2050 [1508947] APIC interrupt priority checking and interrupt delivery
2051  [766286] Debugger halts after any GPF exception
2052  [639143] va_list is not a pointer on linuxppc
2053 [1501815] debugger examines memory over page-boundary wrong
2054 [1503978] movsb/w/d doesn't work when direction is stored
2055 [1499405] WinPCap has changed URL hosting
2056 [1498519] APIC IRR bits not set while interrupts disabled
2057 [1498193] Bochs segfaults on LTR instruction
2058  [787140] Guest2HostTLB optimization bug
2059 [1492070] instrument stop
2060 [1487772] No SEP on P4
2061 [1488335] Growing hard disk images severe interoperability errors!
2062 [1076312] Shadow RAM and TLB
2063 [1282249] The real i440FX chipset Award bios hangs
2064 [1479763] mistake "mov ax,[es:di]" for "mov ax,[ds:di]"
2065 [1453575] Misconfigured floppy DMA transfers do not terminate.
2066 [1460068] Incorrect handling for the Options Menu Item
2067  [910203] bochs-2.1.1 wx.lo failed
2068 [1438654] PANIC when trying to run install-amd64-minimal-2005.0.iso
2069 [1458320] compile hdimage.h fails
2070 [1455880] bochs-2.2.6,2: make error on FreeBSD
2071  [696890] Network wouldn't run under W2k hosting MSDOS
2072  [673391] SMP timer problems
2073 [1291059] wxWindows GUI on non-windows/configure issue
2074 [1356450] bochs 2.2.1 errors-omittions
2075 [1178017] Win98 guest cannot receive network packets from host
2076 [1076315] a20_mask after restarting
2077 [1436323] real hw does not panic when bad Ib in CMPSS_VssWssIb
2078 [1435269] cdrom_amigaos is not compilable
2079 [1433314] disasm issues
2080 [1170614] relative jumps/calls wrong in debugger
2081  [758121] user might get confused when interrupt handler invoked
2082 [1170622] You cannot toggle OFF "show" flags
2083 [1406387] JMP instruction should display absolute address
2084 [1428813] PANIC: ROM address space out of range
2085 [1426288] DR-DOSs EMM386 problem
2086 [1412036] Bochs cannot recognize PCI NIC correctly
2087  [435115] dbg: modebp broken and no docs
2088 [1419366] disasm cs:eip does not work anymore
2089 [1419393] SSE's #XF exception -> "exception(19): bad vector"
2090 [1419429] disassembly of "260f6f00" show DS: instead of ES: prefix
2091 [1417583] Interrupt behaviour changed from 2.2.1 to 2.2.5
2092 [1418281] 'push' (6A) incorrectly disassembled
2093 [1417791] FLDENV generating exception when real hw does not.
2094 [1264583] OS/2 1.1 doesn't run
2095
2096-------------------------------------------------------------------------
2097Changes in 2.2.6 (January 29, 2006):
2098
2099- First major SMP release !
2100  - several APIC and I/O APIC fixes make SMP Bochs booting Windows NT4.0
2101    or Knoppix 4.0.2 without noapic kernel option in SMP configuration.
2102  - critical APIC timer bug fixed
2103  - obsolete SMP BIOS images removed (MP tables created dynamicaly)
2104  - determine number of processors in SMP configuration through .bochsrc
2105    new .bochsrc option 'CPU' allows to choose number of processors to emulate
2106  - new configure option --enable-smp to configure Bochs for SMP support,
2107    the old --enable-processors=N option is deprecated
2108- CPU and internal debugger fixes
2109  - enabled #PCE bit in CR4 register, previosly setting of this bit
2110    generated #GP(0) fault
2111  - enabled LAHF/SAHF instructions in x86-64 mode
2112  - fixed bug in PMULUDQ SSE2 instruction
2113  - fixes in Bochs debugger
2114- Configure and compile
2115  - enable VME (virtual 8086 mode extensions) by default if cpu-level >= 5
2116  - enable Bochs disassembler by default for all configurations
2117  - win32 installer script improvements
2118  - ips parameter moved to new 'CPU' option
2119  - show IPS value in status bar if BX_SHOW_IPS is enabled
2120- Other
2121  - several fixes in the hard drive, keyboard, timer, usb and vga code
2122  - new user button shortcut "bksl" (backslash)
2123  - updated Bochs instrumentation examples
2124  - user and development documentation improved
2125
2126-------------------------------------------------------------------------
2127Changes in 2.2.5 (December 30, 2005):
2128
2129Brief summary :
2130- added virtual 8086 mode extensions (VME) implementation
2131- several fixes/improvements in x86-64 emulation, debugger and disassembler
2132- new serial mode 'socket' connects a network socket
2133- IDE busmaster DMA feature for harddisks and cdroms completed and enabled
2134- many improvements in Bochs emulated I/O devices (e.g. floppy, cdrom)
2135- Updated LGPL'd VGABIOS to version 0.5d
2136
2137Detailed change log :
2138
2139- CPU
2140  - fixed XMM registers restore in FXRSTOR instruction (Andrej Palkovsky)
2141  - print registers dump to the log if tripple fault occurred
2142  - fixed PANIC in LTR instruction (Stanislav)
2143  - added virtual 8086 mode extensions (VME) implementation, to enable
2144    configure with --enable-vme (Stanislav)
2145  - flush caches and TLBs when executing WBINVD and INVD instructions
2146  - do not modify segment limit and AR bytes when modifying segment
2147    register in real mode (support for unreal mode)
2148  - fixed init/reset values for LDTR and TR registers
2149  - reimplemented hardware task switching mechanism (Stanislav)
2150  - generate #GP(0) when fetching instruction cross segment boundary
2151
2152- CPU (x86-64) (Stanislav Shwartsman)
2153  - implemented call_far/ret_far/jmp_far instructions in long mode
2154  - fixed IRET operation in long mode
2155  - fixed bug prevented setting of NXE/FFXSR bits in MSR.EFER register
2156  - implemented RDTSCP instruction
2157  - do not check CS.limit when prefetching instructions in long mode
2158  - fixed masked write instructions (MASKMOVQ/MASKMOVDQU) in long mode
2159  - fetchdecode fixes for x86-64
2160
2161- APIC
2162  - Fixed bug in changing local APIC id (Stanislav)
2163  - Fixed reading of IRR/ISR/TMR registers (patch by wmrieker)
2164  - Implemented spurious interrupt register (Stanislav, patch by wmrieker)
2165  - Fixed interrupt delivery bug (anonymous #SF patch)
2166  - Correctly implemented ESR APIC register (Stanislav)
2167
2168- Bochs debugger
2169  - Fixed bug in bochs debugger caused breakpoints doesn't fire sometimes
2170    (Alexander Krisak)
2171  - watchpoints in device memory fixed (Nickolai Zeldovich)
2172  - new debug interface to access Bochs CPU general purpose registers
2173    with support for x86-64
2174
2175- Disassembler (Stanislav Shwartsman)
2176  - Fixed disassembly for FCOMI/FUCOMI instructions
2177  - Full x86-64 support in disassembler. The disassembler module extended
2178    to support x86-64 extensions. Still limited by Bochs debugger which
2179    is not supporting x86-64 at all ;(
2180
2181- I/O devices (Volker)
2182  - general
2183    - memory management prepared for large BIOS images (up to 512k)
2184    - slowdown timer sleep rate fixed (now using 1 msec on all platforms)
2185    - some device specific parameter handlers moved into the device code
2186  - serial
2187    - new serial mode 'socket' connects a network socket (#SF patch by Andrew Backer)
2188  - hard drive / cdrom
2189    - assign a unique serial number to each drive (fixes harddrive detection
2190      problems with Linux kernels 2.6.x: "ignoring undecoded slave")
2191    - geometry autodetection for 'flat' hard disk images added. Works with
2192      images created with bximage (heads = 16, sectors per track = 63)
2193    - ATAPI command 'read cd' implemented, some other commands improved
2194    - cdrom read block function now tries up to 3 times before giving up
2195    - emulation of raw cdrom reads added, some other lowlevel cdrom fixes
2196    - IDE busmaster DMA feature for harddisks and cdroms completed and enabled
2197    - disk image size limit changed from 32 to 127 GB
2198    - split ATA/ATAPI emulation code and image handling code
2199  - floppy
2200    - fixes for OS/2 (patch by Robin Kay)
2201    - disk change line behaviour fixed (initial patch by Ben Lunt)
2202    - end-of-track (EOT) condition handling implemented
2203    - more accurate timing for read/write data and format track commands using
2204      a motor speed of 300 RPM
2205    - timing of recalibrate and seek commands now depends on the step rate,
2206      date rate and the steps to do
2207    - floppy controller type changed to 82077AA
2208  - cmos
2209    - RTC 12-hour and binary mode implemented
2210    - number of CMOS registers changed from 64 to 128
2211    - bochsrc option 'cmosimage' improved
2212    - save cmos image on exit if enabled
2213  - speaker
2214    - simple speaker support for OS X added (patch by brianonn@telus.net)
2215  - pci
2216    - BeOS boot failure fix in the PCI IDE code
2217    - don't register i/o and memory regions during PCI probe
2218  - vga
2219    - memory allocation for vga extensions fixed
2220  - usb
2221    - some bugfixes by Ben Lunt (mouse and keypad are usable now)
2222  - networking modules
2223    - VDE networking module now enabled on Linux
2224
2225- display libraries
2226  - general
2227    - new syntax for the userbutton shortcut string and more keys supported
2228  - win32
2229    - fixed keycode generation for right alt/ctrl/shift keys
2230    - runtime dialog is now a property sheet
2231  - x11
2232    - simple dialog boxes for the "ask" and "user shortcut" feature implemented
2233    - Slovenian keymap added (contributed by Mitja Ursic)
2234
2235- configuration interface
2236  - ask dialog is now enabled by default for win32, wx and x display libraries
2237  - bochsrc option floppy_command_delay is obsolete now (floppy timing now based
2238    on hardware specs)
2239  - floppy image size detection now available in the whole config interface
2240  - some device specific parameter handlers moved into the device code
2241  - calculate BIOS ROM start address from image if not specified
2242
2243- System BIOS (Volker)
2244  - PCI i/o and memory base address initialization added
2245  - several keyboard interrupt handler fixes (e.g. patch by japheth)
2246  - several floppy fixes (e.g. OS/2 works with patch by Robin Kay)
2247  - some more APM functions added
2248  - Updated LGPL'd VGABIOS to version 0.5d
2249  - generate SMP specific tables dynamicly by the Bochs memory init code
2250
2251- SF patches applied
2252 [1389776] Disk sizes over 64 Gbytes by Andrzej Zaborowski
2253 [1359162] disasm support for x86-64 by Stanislav Shwartsman
2254  [857235] task priority and other APIC bugs, etc by wmrieker
2255 [1359011] build breaks for 386 + debugger + disasm by shirokuma
2256 [1352761] Infinite loop when trying to debug a triple exception
2257 [1311170] small APIC bug fix (interrupt sent to the wrong CPU)
2258 [1309763] Watchpoints don't work in device memory by Nickolai Zeldovich
2259 [1294930] change line status on floppy by Ben Lunt
2260 [1282033] SSE FXRESTORE not working correctly by Ondrej Palkovsky
2261  [816979] wget generalizations by Lyndon Nerenberg
2262 [1214886] No more pageWriteStamp / unified icache by H. Johansson
2263 [1107945] com->socket redirection support by Andrew Backer
2264
2265- these S.F. bugs were closed
2266  [669180] win95 install : unknown SET FEATURES subcommand 0x03
2267 [1346692] bochs 2.2.1 VGA BIOS error
2268 [1354963] floppy in KolibriOS
2269 [1378204] error: bochs-2.2.1, --enable-sb16, --disable-gameport
2270 [1368412] VDE problems in BOCHS
2271  [533446] CPU and APIC devices appear twice
2272 [1000796] bximage fails to create image of specified size
2273 [1170793] Quarterdeck QEMM doesn't work
2274  [923704] Multiple opcode prefixes don't reflect Trap 13
2275 [1166392] DocBook/documentation issues
2276 [1368239] broken grater than 4GB size of sparse type hd image
2277 [1365830] i386 compile breaks on paging
2278  [427550] Incomplete IRETD implementation
2279 [1215081] MSVC workspace STILL not fixed
2280  [736279] Jump to Task
2281 [1356488] FD change fail & occur error
2282  [957615] [CPU ] prefetch: RIP > CS.limit
2283 [1353866] not booting linux-2.6.14
2284 [1351667] load32bitOSImage does not work with --enable-x86-debugger
2285 [1217476] Incorrect (?) handling of segment registers in real mode
2286 [1184711] OS2 DOS crash [2.2.pre2]
2287  [624330] support for disks > 32GiB
2288 [1348368] bochs 2.2.1 bximage error
2289 [1342081] Configuration Menu option failed
2290 [1138616] OS/2 Warp 4 hangs when booting
2291 [1049840] mouse and video conflict
2292 [1164570] Unable to perform Fedora Core 4 test 1 installation
2293 [1183201] Windows 2000 (MSDN build 2150?) does not completely install
2294 [1194284] Can't boot from CD-ROM (Windows NT)
2295  [962969] Windows NT crashes while trying to intall them.
2296 [1054594] WinXP install halts (redo)
2297 [1153107] Windows XP fails with BSOD on 'vga'
2298  [938518] Win XP installation fails
2299  [645420] getHostMemAddr vetoed direct read
2300 [1179985] MS XENIX: >>PANIC<< VGABIOS panic at vgabios.c, line 0
2301 [1329600] WBINVD and INVD should flush caches and TLB
2302  [638924] eliminate BX_USE_CONFIG_INTERFACE
2303 [1048711] Funny behaviour with CTRL
2304 [1288450] keyboard BIOS error
2305 [1310706] Keyboard - about key SHIFT
2306 [1295981] Ubuntu 5.04 Live-CD won't boot in Bochs
2307  [879047] APIC timer behavior different before reset and after
2308 [1188506] I still can't install the german Windows XP!
2309 [1301847] Windows XP dosn't boot - FXRSTOR problem ?
2310  [661259] does not boot QNX under WinX
2311  [924412] Keyboard lock states all whacked
2312  [681127] MIPSpro compiler (IRIX) is allergic to ^M
2313 [1285923] BIOS keyboard handler
2314  [516639] ATA controller revisited...
2315  [657918] does not boot BeOS under WinX
2316  [649245] BeOS CD locks halfway on boot
2317 [1094385] Attachment for bug 1090339 (beos failure)
2318 [1183196] BeOS 4.5 developer CD does not install
2319 [1090339] BeOS fails to boot
2320  [639484] panics when int 13 is called
2321  [711701] divide by zero
2322  [704295] ATAPI/BIOS call missing
2323  [682856] hard drive problems
2324  [627691] Cursor keys problem
2325  [588011] keyboard not working
2326  [542260] os/2 warp crashes with floppy handling
2327 [1273878] SB16 doesn't work in pure DOS
2328  [542254] OS/2 FDC driver dies
2329 [1099610] Windows 98 SE Does not install
2330  [875479] cr3 problem on task switch
2331  [731423] NE2000 causing PANIC on Win2K detection
2332 [1156155] bochs fails to boot plan9 iso
2333 [1251979] --enable-cpu-level=3 should assume --without-fpu
2334 [1257538] Interupt 15h 83h - set wait event interval
2335  [658396] Panic for DR DOS emm386
2336  [679339] /? doesn't divulge Bochs command-line syntax
2337 [1167016] call/jump/return_protected doesn't support x86-64
2338 [1252432] Mac OS X compile bug
2339  [881442] Bochs 2.1 PANIC when loading DOS Turbo Pascal protected mode
2340 [1249324] Boch2.2.1 Buffer Overfollow in void bx_local_apic_c::init ()
2341 [1197144] 'make install' has dependency on wget
2342 [1079595] LTR:386TSS: loading tr.limit < 103
2343 [1244070] Compilation Error in gui/rfb.cc
2344  [761707] CPU error when trying to start Privateer
2345  [517281] Crash running Privateer in DOS...
2346
2347-------------------------------------------------------------------------
2348Changes in 2.2.1 (July 8, 2005):
2349
2350- Fixed several compilation warnings and errors for different platforms (Volker)
2351- Fixed FPU tag word restore in FXRSTOR instruction (Stanislav)
2352- Added missing scancodes for F11 and F12 to BIOS translation table (Volker)
2353- Bochs disassembler bugfixes (h.johansson)
2354- About 5% emulation speed improvement (h.johansson)
2355- Handle writing of zero to APIC timer initial count register (Stanislav)
2356- Enable Idle-Hack for 'TERM' GUI (h.johansson)
2357- Reduced overhead of BX_SHOW_IPS option to minimum. Now every simulation
2358  could run with --enable-show-ips without significant performance
2359  penalty. (Stanislav)
2360- Fixed pcipnic register access (Volker)
2361- Limited write support for TFTP server in 'vnet' networking module added (Volker)
2362- Changed some timing defaults to more useful values (Volker)
2363- WinXP/2003 style common controls now supported (Vitaly Vorobyov)
2364- Updated LGPL'd VGABIOS to version 0.5c (Volker)
2365- Added new BX_INSTR_HLT callback to instrumentation (Stanislav)
2366
2367-------------------------------------------------------------------------
2368Changes in 2.2 (May 28, 2005):
2369
2370Brief summary :
2371- New floating point emulator based on SoftFloat floating point
2372  emulation library.
2373- improved x86-64 emulation
2374- Cirrus SVGA card emulation added
2375- status bar with indicators for keyboard, floppy, cdrom and disk (gui dependant)
2376- many improvements in Bochs emulated I/O devices (e.g. PCI subsystem)
2377
2378Detailed change log :
2379
2380- CPU
2381  - fixes for booting OS/2 by Dmitri Froloff
2382    - fixed v8086 priveleged instruction processing bug (was also reported
2383      by LightCone Aug 7 2003)
2384    - exception process bug (was reported by Diego Henriquez Sat Nov 15
2385      01:16:51 CET 2003)
2386    - segment validation with IRET instruction
2387    - CS segment not present exception processing with IRET
2388  - several fixes by Kevin Lawton
2389  - add MSVC host asm instructions (patch by suzu)
2390  - fixed bug in HADDPD/HSUBPD (SSE3) instructions
2391  - fixed bug in float to integer SSE/SSE2 convert instructions
2392  - fixed BCD instructions implementation
2393  - execution speed improvements (sshwarts and psychosmur)
2394  - fix MSR_APICBASE base address (Kangmo Kim, Christian Neubert)
2395  - change BX_PANIC messages to BX_INFO when behaviour exactly
2396    matches Intel docs
2397  - EIP > CS.limit case should always cause #GP(0), even in real mode.
2398    Fixed all jump, call and ret instructions for 16/32 modes
2399  - fixed using invalid segment register for MOV instruction (h.johansson)
2400  - fixed ET bit mismatch between CR0 and SMSW instruction
2401  - fixed possible simulator #DIVZERO fault when executing IDIV instruction
2402  - fixed undocumented flags handling for BTS, BTR, SHR, SHLD, MUL and IMUL
2403    instructions (Stanislav Shwartsman)
2404  - added missed #GP(0) exception when loading incorrect flags combination
2405    to CR0 (Stanislav Shwartsman)
2406  - in case of --enable-ignore-bad-msr enabled read ignored MSRs as zero
2407  - enabled #DE, #TSD and #MCE bits in CR4 register, previosly setting
2408    of one of these bits generated #GP(0) (Stanislav, Volker Ruppert)
2409  - exceeding the instruction length limit of 15 bytes (this only can
2410    occur when redundant prefixes are placed before an instruction)
2411    generate #GP(0) (Stanislav Shwartsman)
2412  - corrected PAE functionality
2413
2414- CPU (x86-64)
2415  - fetchdecode fixes for x86-64 and 3DNow! (Stanislav)
2416  - fixed CF flag handling for SHL instruction in x86-64 mode (Stanislav)
2417  - implemented CR8 register (aliased to APIC.TPR[7:4]) (Stanislav)
2418  - implemented NXE bit (No-Execute page protection) support (Stanislav)
2419  - STOSQ instruction emulation fixed (Avi Kivity)
2420  - allow null SS selector for MOV SS, POP SS, and LSS instructions
2421    in long mode (Avi Kivity)
2422  - ignore segment bases for all segments (except FS and GS) in long
2423    mode (Avi Kivity)
2424  - allow SYSENTER/SYSEXIT instructions together with x86-64 (Stanislav)
2425  - canonical address checking for RIP (Stanislav)
2426
2427- FPU (Stanislav Shwartsman)
2428  - totally rewritten all FPU code based on softfloat library
2429  - significantly improved accuracy of all floating point
2430    instructions.
2431  - implemented all missed P6 and PNI floating point instructions.
2432  - hundreds of bug fixes in FPU code.
2433
2434  TODO:
2435    ! Unmasked underflow/overflow should correct the result
2436      by magic number for all operations, including float32
2437      and float64.
2438
2439- APIC (Zwane Mwaikambo)
2440  - APIC arbitration
2441  - Processor priority
2442  - Various interrupt delivery fixes
2443  - Focus processor checking
2444  - ExtINT delivery
2445
2446- Disassembler
2447  - fixed MOV opcode 0x88, had exchanged the operands (h.johansson)
2448  - fixed MOV opcode 0xA3, had wrong operand size (h.johansson)
2449  - fixed BOUND opcode 0x62 (Stanislav)
2450  - fixed CALLW opcode 0xFF /3 and JMPW opcode 0xFF /5 (Stanislav)
2451  - fixed INS opcode 0x6D, had wrong operand size (Stanislav)
2452  - fixed disassembly for repeatable instructions (Stanislav)
2453  - fixed sign-extended immediate opcodes (Stanislav)
2454  - fixed MOVSS/MOVSD instructions opcode names (Stanislav)
2455  - fixed NEG instruction opcode name (Stanislav)
2456  - fixed CMPXCHG8B instruction, had wrong operand size (Stanislav)
2457  - fixed floating point instructions operands (Stanislav)
2458  - experimental support of AT&T syntax in disassembler (Stanislav)
2459
2460- I/O devices
2461  - general
2462    - handle cpu reset through port 0x92
2463    - new memory handler API for PCI i/o and memory handling (Frank Cornelis)
2464  - speaker emulation for Linux (David N. Welton) and Win32 (Volker Ruppert) added
2465  - pci
2466    - PCI slot configuration added for 5 slots (Volker)
2467    - PCI irq routing, irq sharing and level sensitive irq mode implemented
2468    - ne2k device appears as a Realtec 8029 NIC if connected to a PCI slot
2469    - PCI IDE controller dummy device added
2470    - PCI host device mapping for Linux (Frank Cornelis)
2471    - PCI Pseudo-NIC emulation (Michael Brown)
2472  - serial
2473    - multiple serial port support added (4 ports now available)
2474    - partial raw serial support on win32 (transmit data)
2475    - serial port i/o mode option added (modes: null, file, term, raw, mouse)
2476  - parallel
2477    - multiple parallel port support added (2 ports now available)
2478  - mouse
2479    - serial mouse support (Volker)
2480    - PS/2 and serial wheel mouse support (Ben Lunt)
2481  - usb
2482    - USB mouse and keypad support (Ben Lunt)
2483    - config option to specify devices connected to USB ports
2484  - vga
2485    - VBE 8 bit DAC support added
2486    - VBE memory now registered using DEV_register_memory_handlers()
2487    - CL-GD 54xx SVGA emulation added (Makoto Suzuki)
2488    - vga extension option added (choices: vbe, cirrus, none) (Volker)
2489  - floppy
2490    - raw floppy access now works on Win9x host (Ben Lunt)
2491  - sb16
2492    - MacOSX sound support (Brian Huffman)
2493  - networking modules
2494    - new: 'eth_vnet' simulates ARP, DHCP, ICMP-echo and read-only TFTP
2495      (m_suzu, easeway)
2496    - new: 'eth_vde' for Virtual Distributed Ethernet (Renzo Davoli)
2497
2498- System BIOS
2499  - turn floppy motor off 2 seconds after last read/write/recalibrate command
2500    (Ben Lunt)
2501  - int13_cdrom / 32 bit register update fixes for FreeBSD cdrom boot
2502    (Fabrice Bellard)
2503  - APM and system shutdown support (Fabrice Bellard)
2504  - checksum calculation for expansion ROMs
2505  - extended floppy parameter table (Mike Nordell, Derek Favcus)
2506  - PCI IRQ initialisation added
2507  - boot sequence with up to 3 boot devices added
2508
2509- display libraries
2510  - status bar with indicators for cdrom, floppy, harddisk and keyboard added
2511    (done in rfb, sdl, win32, wx and x)
2512  - 3rd (middle) mouse button now supported (rfb, sdl, win32, wx, x)
2513  - mouse wheel support (sdl, win32, x)
2514  - CTRL key + middle mouse button now used to toggle the mouse capture mode
2515    (sdl, win32, wx, x)
2516  - text mode split screen feature added (sdl, win32, wx, x)
2517  - new gui function returns the display library capabilities (xres, yres, bpp)
2518    for the Bochs VBE support
2519  - display library specific options added - currently supported:
2520    rfb:   timeout (time to wait for client connection)
2521    sdl:   fullscreen (startup in fullscreen mode)
2522    win32: legacyF12 (use F12 to toggle mouse)
2523  - new graphics update API added (used by svga_cirrus) (Robin Kay)
2524
2525- configuration interface
2526  - win32: gui runtime dialogs replace textconfig runtime dialogs
2527  - set default IPS to 10000000 in .bochsrc sample
2528  - SB16 options dmatimer and loglevel now available at runtime
2529
2530- configure script / compile
2531  - --enable-ignore-bad-msr (ignore bad MSR references) option is enabled
2532    by default
2533  - --enable-mmx enabled by default only if cpu-level >= 5
2534  - --enable-4meg-pages will be enabled by default if cpu-level >= 5
2535  - fixes for Solaris SunPro (Robin Kay)
2536  - --enable-pni option added
2537  - --enable-show-ips option added, enable Instruction Per Second counter
2538    in log file
2539  - autodetection for lowlevel sound support added
2540
2541- documentation
2542  - a bunch of updates in user and documentation docs (Alexander Schuch)
2543
2544- SF patches applied
2545  [894595] MSR_APICBASE always returns APIC ADDRESS 0 by Kangmo Kim
2546  [907163] ctrl_xfer8 clean/speed up
2547  [907161] clean/speed up of io.cc
2548  [899972] data xfer performance patch V 2.0.4
2549  [904549] imul gives incorrect result in long mode
2550  [877510] amd64 fixes...
2551  [903465] SEGV in iodev/ne2k.cc line 1211 on Alpha architecture by Christian Lestrade
2552  [903332] copy the bximage result to clipboard, etc by Lukewarm
2553  [950905] Do not PANIC on rare, bad input from user-mode by h.johansson
2554  [924428] ET bit mismatch between CR0 and MSW
2555  [869822] a real SVGA implementation by m_suzu
2556  [867045] fix for compiler errors on VC++ by m_suzu
2557  [838601] support for the over 2GB disk size with MSVC++
2558  [874816] local ARP/ping/DHCP simulator by m_suzu
2559  [976066] Keyboard: Get controller version by Ben Lunt
2560  [832330] ROMBIOS improvement (reduce stack consumption, etc.)
2561  [977900] READ_CDROM_TOC and base address by Ben Lunt
2562  [961665] WinXP patch to read physical CDROM's TOC by Ben Lunt
2563  [978793] CDROM_SENSE_MODE medium_type by Ben Lunt
2564  [615457] gif to png migration
2565 [1021767] Portability in sb16ctrl.c by Robert Millan
2566  [690400] gzip is confused by GZIP variable in Makefile
2567  [567595] guess floppy image size from image file length by Tal Benavidor
2568  [888426] bochsrc to make vnet useful by m_suzu
2569 [1021758] GNU/k*BSD host support by Robert Millan
2570  [969967] int 15/ah=87h clearing cr0 by Ben Lunt
2571 [1048327] Russian Keymap by Dmitry Soshnikov
2572  [851332] DESTDIR support for install_dlx by Ville Skytt�
2573  [970929] gdbstub support for MinGW tool chains by Muranaka Masaki
2574 [1021740] Turn gdb stub into a runtime option by Charles Duffy
2575 [1063329] RFB key press/release bug fix by Remko van der Vossen
2576 [1079240] Wheel Mouse by Ben Lunt
2577 [1087537] Fix for Win9x CD boot by lukewarm
2578 [1083218] Start of wheel for USB #2 by Ben Lunt
2579 [1098480] bochsrc: fixed floppya example by Alexander Schuch (ci-dev)
2580 [1094407] configure.in: changed wxWindows to wxWidgets by Alexander Schuch
2581 [1092058] serial.cc debug output cleanup by Ben Lunt
2582 [1101165] APIC base address by Christian Neubert (flashburn)
2583 [1093796] Fix for bug #1093786 (Nigel Horne)
2584 [1082584] The start of Bus mice and USB mice by Ben Lunt
2585 [1104695] msvc6 compatibility update (Royce Mitchell III)
2586 [1059199] VGA text font bug fix (Anonymous)
2587 [1108001] Null pointer on bx_atexit() (Ben Lunt)
2588 [1112093] Fixed mouse cursor remain area drawing (Anonymous)
2589 [1114826] Fix PCIBIOS (Destruction prevention of esi and edi)
2590 [1095473] Reading from a CDRW (Fixed) by Ben Lunt
2591 [1123895] x86-64 gdb/debugger fixes by Avi Kivity
2592 [1145423] stosq simulation bugfix by Avi Kivity
2593 [1151012] allow null ss on x86-64 by Avi Kivity
2594 [1153327] ignore segment bases in x86-64 by Avi Kivity
2595 [1153511] Fixed broken screen update (VBE)
2596 [1152808] use 'install' instead of 'cp' during installation by Avi Kivity
2597 [1159626] bugfix [1156776] keyboard scanmode fault by Rene Kootstra
2598  [843328] PATCH: support for Flat-style ToolBar with Win32GUI
2599 [1198308] PATCH: fix incorrect moving mouse cursor when wheel used
2600 [1200515] add TFTP server to vnet & ipv4 bug fix by easeway
2601 [1203305] tuntap incompatibility by Jan Kratochvil
2602
2603- SF patches partially applied
2604  [896733] Lazy flags, for more instructions, only 1 src op
2605 [1005422] Improve mouse cursol Grub when 2 buttons-mouse use (WIN32)
2606           (TODO: improved japanese keyboard support)
2607
2608- patches applied
2609  - patch.rombios.markevich (Start/Stop Wait Timer) (Kory Markevich)
2610  - patch.apic-zwane (APIC fixes) (Zwane Mwaikambo)
2611  - patch.v8086-exception.lightcone (LightCone)
2612
2613- these S.F. bugs were closed
2614  #957660 >>PANIC<< APIC: R(curr timer count): delta < initial
2615 #1192654 60 x 90 text not quite right...
2616 #1189097 "configure --with-sdl --with-rfb" doesn't compile
2617 #1188980 Crash on XP when break into debugger
2618 #1186693 Improving quality of ./configure --help
2619 #1185245 Errors Making Bochs with Mingw32
2620 #1185289 PSE is not enabled by default on Pentium
2621 #1170620 info cpu scrolls away, is too long
2622 #1157998 ips shown even when waiting for input
2623  #663108 APIC Timer Bug
2624  #831750 bochs unlike real PC in paging
2625 #1182698 PAE support doesn't work
2626  #954400 debugger causes segfaults when gcc 3.4.0 is used
2627 #1171312 Possible SMP problem with ICACHE pageWriteStamp
2628 #1179964 PANIC: RIP>CS.limit when jumping to longmode
2629 #1171067 configure fails to add -lpthread
2630 #1171065 Term UI needs -lncurses
2631 #1171061 SDL GUI startup failure
2632 #1022056 win32 error build debug version..c2146
2633  #957190 error while attempting to compile sb16.cc
2634  #804797 Debugger: visualization problem (jmp)
2635  #675523 2.0.1 doesn't run on W2K?
2636 #1167358 When using 5430PCI in DR-DOS Bochs would panic with a PUSHAD
2637 #1164654 Bochs VBE bios causing exception 0B in Windows 95 (SVGA bios)
2638 #1162983 conflicts which configure could detect
2639 #1164536 Windows 95 B crashes during install
2640  #526978 cygwin: in an rxvt, stdout is flaky
2641  #542303 >>PANIC<< call_protected: CS selector null
2642  #859457 BRICKS game doesn't work
2643 #1159639 text modes on address A0000-BFFFF are not handled properly
2644 #1164225 define BX_SUPPORT_X86_64 0
2645 #1163720 ROL bug
2646 #1156776 keyboard scanmode fault
2647 #1162042 Duke Nukem 3D: >>PANIC<< iret: VM set on stack, CPL!=0
2648 #1161945 ctrl_xfer32 compile/make error
2649 #1157124 Bochs doesn't run with large amounts of memory in bochsrc
2650 #1154266 weird INT handling in V86 mode
2651 #1157051 default Bochs CVS doesn't work-out-of-the-box
2652  #923954 enter() with level > 0, >>PANIC<< iret: return CS selector
2653 #1098476 Privilege Problem after SYSEXIT
2654 #1121734 Bochs crashes when shutting down Win95
2655 #1099294 VESA for Win98 bogus
2656 #1112836 PGE-Bit crashes Bochs
2657  #947586 The specification difference in x86-64 emulation
2658 #1117145 Push reset Button, APIC0 Error occur
2659 #1123043 fpu stack pointer changed *despite* fault occurred (e.g. #pf)
2660 #1122066 PANIC: iret: IP > descriptor limit when installing os/2 warp
2661  #809574 rm -f segfaults
2662  #593952 SuSE rm segfaults
2663  #929783 floppy not recogniced since 2.1
2664 #1099298 SB16 for Win98 Bogus
2665 #1079483 Reading from a CDRW
2666  #549793 flaw in interrupt gate handling(exception.cc)
2667  #692055 SMP Error
2668  #805479 Booting from disk causes illegal instruction warnings
2669  #909677 pc-speaker doesn't work
2670  #831751 behaviour unrealistic
2671  #661213 CR4.TSD is broken
2672  #685508 PANIC: prefetch: RIP > CS.limit
2673 #1037923 Non-executable page support missed (NX bit, x86-64)
2674 #1106530 wrong disassemble result
2675 #1105208 drive order for boot gets saved wrong
2676  #661060 Problem with Win98SE
2677  #837377 Norton Ghost don't boot
2678  #876689 Unknown register 0x17 [CPU] / WIN98SE
2679  #947282 Bochs segfault
2680  #963317 Persistent Win98SE
2681 #1101168 APIC base address change
2682  #680737 panic when installing winme
2683 #1097187 Install FC3 on bochs-win failed
2684  #875461 vgabios-lgpl should be default
2685  #594797 Bochs segfaults
2686  #602994 bochs breaks boot kernel
2687  #571539 FreeBSD Install from CD Fails
2688  #774257 Device doesn't work under W98
2689  #759228 Installing Suse 8.2 in Bochs on WinME
2690  #792561 cant boot freebsd 5.1 from cdrom
2691  #804004 Live cd will halt on boot..
2692  #956173 FreeBSD won't boot iso install images in Bochs v2.1 or 2.2.
2693  #864401 >>PANIC<< jmp_ev: IP out of CS limits!
2694  #853831 Error on int 15h
2695 #1094150 DR-DOS 7.03: panics when using multitasker
2696  #655592 win98 hardwaredetection
2697 #1093786 Solaris 9 installation CD fails
2698  #959585 USB UHCI IO-Device
2699  #963314 Redhat Fedora Installer Kernel Panic and Crash
2700 #1086920 Bochs (cvs) doesn't compile on FreeBSD 5
2701  #879050 Bochs reports enabled APIC without support
2702 #1071199 dBaseII cause prefetch: RIP > CS limit
2703 #1070812 typecast error while compiling wx.cc
2704 #1068786 FSINCOS Cos value wrong at 90 degrees
2705  #675248 Panic: EIP > limit on win98 install
2706  #829793 [CPU ] prefetch: RIP > CS.limit
2707 #1034059 >>PANIC<< prefetch: running in bogus memory
2708 #1067813 pbm fpu_proto.h:144 ebuild gentoo bochs 2.1.1
2709  #922034 bios not aliased at 0xFFFFF000, registers wrong after reset
2710  #912666 Configure fails on Yellow Dog Linux 3.0.1
2711  #922038 Unexisting memory should read back as 0xFFFFFFFF
2712 #1019723 HD image
2713 #1057814 Shadow RAM not aligned
2714 #1057240 Invalid IRET32 implementation
2715  #809682 >> PANIC << : prefetch: RIP > CS.limit
2716  #618680 memory referencing problems
2717  #724262 A few things (Windows 2.03, Wolfenstein)
2718  #985375 Crash Mandrake 7.1
2719  #913418 compiler errors with --enable-external-debugger option
2720  #708847 CR8 access should not panic X86-64
2721 #1039499 Compile error pcipnic.cc (cygwin)
2722  #978024 compile against wxGTK-2.5.2 fails
2723  #639073 MacOSX: Networking not implemented
2724  #639074 MacOSX: Soundblaster not implemented
2725  #963264 Latest CVS --enable-pcidev fails to configue on YDL Linux
2726  #586282 Mac OS X, will not "make"
2727  #699532 CVS (as of 2003/03/07) cannot read disk images
2728  #639275 wrong more than 2GB size DVD-ROM
2729  #766020 info registers / dump_cpu get old eflags
2730  #655920 QuickBasic (qbx.exe) panics
2731  #676188 Error BX_MAX_DIRTY_PAGE_TABLE_MEGS
2732  #923821 LOCK not generating exceptions properly
2733 #1007747 Wrong configure?
2734 #1022577 show "call" command crashes bochs every time
2735  #681849 SuSE 8.1 Compile problem
2736  #660322 Install bochs 2.0 on SuSe 8,0
2737 #1022587 "Unrecognized args" message wrong after invalid show command
2738  #833118 TUN/TAP interface bug
2739 #1022178 tuntap module mangles incoming broadcast packets
2740 #1028682 Report incorrect disk parameters of floppy
2741 #1026234 make fails on Cygwin because of missing .exe extension
2742 #1026241 --enable-cpp needed for .conf.win32-cygwin
2743  #855323 BIOS Panic at rombios.c, line 1563
2744  #762773 ROM checksum is not checked in rom_scan_loop
2745  #657604 concat_image_t.lseek to byte -1378816 fa
2746  #800140 No AH=83h INT15h implemented
2747  #831965 Win32.zip BIOSes in wrong directory
2748  #873280 bximage crashes after createing "growing"
2749  #892223 bochsrc-sample.txt/vgaromimage option error
2750 #1014361 Bximage on WinXP won't create image
2751  #651510 bximage won't create larger than 2GB
2752  #759206 bximage fails on Win32 for hd images over 2Gb
2753  #759210 Bochs fails on image files over 2Gb on Win32
2754  #799785 bximage doesn't work
2755  #903345 Problem compiling harddrv.cc
2756  #933303 Bochs cannot lseek() HD images > 2GB on W32 platforms
2757  #888438 bximage crashes...(hacked fix included)
2758  #871720 bximage 2GB file size limit
2759  #930368 Can't create big hard drives (>2 GB)
2760  #912496 IDIV can cause simulator divide error
2761  #522111 Host os SIGILL, booting grub from hd
2762 #1005052 DMA Controller Model Problem
2763  #552939 Bochs window doesn't resize when win311
2764  #989478 I-Cache and undefined Instructions
2765  #661008 make install fails
2766  #845691 Workaround: Ne2k and Windows 2000 not working
2767  #923662 BIOS diskette motor countdown byte broken
2768  #848141 VGA problems running Scitech Display Driver on Win95
2769  #799370 Problem booting ReactOS 0.1.3
2770  #670143 No rule to make config.h
2771  #653444 with vbe/lgpl bios, scrn updates broken
2772  #655696 quickstart broken?
2773  #659350 FDC
2774  #620853 Ne2000 ethernet card *NOT* supported
2775  #607611 Numlock
2776  #543476 Sound card does not work in Windows 95
2777  #529554 unsupported VBE features DISPI update
2778  #487316 Access violation on Win32
2779  #576253 RTC too fast
2780  #489748 io read from address 000003c0, len=2
2781  #656861 Gentoo Linux panics in VGA code
2782  #787184 Video BIOS's don't checksum correctly
2783  #988529 textconfig [Save options to] function output obsolete option
2784  #987293 Cannot accesss header/toolbar
2785  #988246 floppy read error
2786  #933199 speedup Bochs compilation 4x -> suggestion
2787  #979106 Incorrect disassembly table entry
2788  #658374 FPU incorrect emulation
2789  #706933 Problem with the F12-Key
2790  #477043 math_abort panic in RH 7.1
2791  #634371 Floating point problems
2792  #681138 // is not valid in C
2793  #643300 cpuid feature flag 15, cmov and fcmov
2794  #913697 missing division by 0 exeption in fpu emuation
2795  #923682 FSTENV/FINIT problems
2796  #923855 FPTAN doesn't work right with full NPX stack
2797  #924379 ET bit mismatch between CR0 and MSW
2798  #716116 Direct floppy access
2799  #962919 Mac: iodev/cdrom.cc disordered
2800  #954751 Two FPU.CPP in project
2801  #954359 Compile faile is 3dnow support is selected without SSE support
2802  #906412 FreeSCO error
2803  #942060 FDC Controller not conforming to specifications
2804  #938522 Win XP installation fails
2805  #923613 BOUND instruction exception handling is broken
2806  #923223 memtest86 errors
2807  #593342 autoconf script doesn't regenerate clean
2808  #616116 Crash on exit...
2809  #922042 shutdown through port 92 does not work
2810  #891633 02839990390p[CPU0 ] >>PANIC<< RDMSR: Unknown register 0x17
2811  #923653 DAA instruction is broken
2812  #911225 obscure AAA / AAS bugs
2813  #837206 Problems with numerical keys
2814  #658765 BOCHS halts in runtime config
2815  #890734 Bochsrc Parser Bug with commas included in strings
2816  #877285 MSR_APICBASE zero upon startup
2817  #526984 SDL compiled in cygwin just quits
2818  #886406 I/O permissions bug
2819  #883239 undefined symbols in gui/siminterface.h:1215
2820  #419647 on OSF1, cxx hates C++ inlines
2821  #809790 "No rule to make target `devices.cc?..."
2822  #873654 How compile without plug-in support ?
2823  #837161 Test case for BX_CPU_C::IRET32
2824  #888116 mmx.cc compile error
2825
2826-------------------------------------------------------------------------
2827Changes in 2.1.1 (February 8, 2004):
2828
2829- fix bug in int15h function 0xe820 (Christian Neubert)
2830- fix vmware3 disk support on big-endian platforms (Christophe Bothamy)
2831- fix conditions for NM exception on FWAIT instruction (Christophe)
2832- fix symbol conflict in rfb and x display libraries (Volker Ruppert)
2833- allow 16 bit writes to ne2k page 0 (Kenneth Stailey)
2834- notify display libraries on change of bpp (Volker)
2835- fix bug in int13h function 0x10 (Volker)
2836- fix floppy dialog error on win2k (Volker)
2837- fix address check in TSS IO permission bitmap (Christophe)
2838- fix buffer overflow vulnerability pointed out by SeSoX (Christophe)
2839- updates for MacOS compile (Daniel Gimpelevich)
2840
2841-------------------------------------------------------------------------
2842Changes in 2.1 (January 9, 2004):
2843
2844Brief summary :
2845- New disassembler
2846- 3DNow!/SSE/SSE2/PNI instruction support
2847- Vmware3/Sparse/Undoable/Growing harddisk images support
2848- many VGA emulation improvements (e.g. high/true color VBE modes added)
2849- No more X11 vga font required
2850
2851Detailed change log :
2852
2853- CPU
2854  - added emulation of AMD 3DNow! instructions set. (Stanislav Shwartsman)
2855    Bochs now could decode all AMD 3DNow! instructions.
2856    Most of instructions still not implemented, but the basis already presents.
2857    Configure --enable-3dnow to enable 3DNow! support.
2858    Notes :
2859      - These instructions are not implemented yet:
2860	PFPNACC_PqQq, PF2IW_PqQq, PFNACC_PqQq, PFCMPGE_PqQq, PFMIN_PqQq,
2861	PFRCP_PqQq, PFRSQRT_PqQq, PFSUB_PqQq, PFADD_PqQq, PFCMPGT_PqQq,
2862	PFMAX_PqQq, PFRCPIT1_PqQq, PFRSQIT1_PqQq, PFSUBR_PqQq, PFACC_PqQq,
2863	PFCMPEQ_PqQq, PFMUL_PqQq, PFRCPIT2_PqQq
2864     - CPUID does not report 3DNow! instruction set.
2865  - added emulation of SSE/SSE2 floating point instructions. (Stanislav)
2866    All SSE/SSE2 floating point instructions are fully implemented using
2867    free softfloat library (including DAZ support and floating point
2868    exceptions). Correctness of the emulation checked with heavily random
2869    testing.
2870  - added emulation of SSE3 (PNI) instructions (Stanislav)
2871    Currently only 3 PNI opcodes still not implemented:
2872	FISTTP m16int, FISTTP m32int, FISTTP m64int
2873  - added P4 CPU support to CPUID instruction. (Stanislav)
2874  - fixed implementation of FXSAVE/FXRSTOR instructions. (Stanislav)
2875  - bugfix: unallowed lock prefix cases must cause #UD exception. (Stanislav)
2876  - fixed fetchdecode bug caused #UD in SYSENTER/SYSEXIT instructions
2877    in 32bit mode. (Stanislav)
2878  - fixed fetchdecode64 bug caused wrong decoding of opcodes containing
2879    BxImmediate_IvIw or BxImmediate_IwIb in x86-64. (Stanislav)
2880  - fixed bug in int01 (opcode 0xF1) emulation. (Vitaly Vorobyov)
2881  - fixed bug in x86 debugger with dr0-dr3 registers (Vitaly)
2882  - fixed bug with mov to/from dr register in v86mode.
2883    (now exception is generated (according to Intel documentation)
2884    instead of panic) (Vitaly)
2885  - fixed stack limit checking, now message is generated as BX_DEBUG,
2886    rather then BX_PANIC, and exception code is executed. (Vitaly)
2887  - instrumentation code updated. (Stanislav)
2888  - fix flaw in IO bitmap permission of TSS (Christophe Bothamy)
2889  - cpu resets on triple fault (Christophe)
2890  - remove calculation on cr3 in dtranslate_linear to increase
2891    emulation speed (Conn Clark)
2892  - numerous x86-64 fixes (Peter Tattam)
2893
2894- FPU
2895  - hundreds of bugfixes in FPU emulation after checking of the emulation
2896    with testfloat (Scott Duplichan).
2897    - Fixed cases:
2898        - floatx80_to_int32,   floatx80_to_float32
2899        - floatx80_to_float64, floatx80_round_to_int
2900        - floatx80_add,        floatx80_sub,
2901        - floatx80_mul,        floatx80_div
2902  - implemented FCMOVcc instructions (Stanislav)
2903  - 64-bit addressing support for x86-64 mode (Peter)
2904
2905- Disassembler
2906  - replaced Bochs disassember. New table-based disassembler fully supports
2907    all IA-32 instruction sets including all FPU/MMX/SSE/SSE2/SSE3 opcodes.
2908    (Stanislav)
2909
2910- I/O devices
2911  - general
2912    - i/o access mask implemented, unallowed cases are now handled in the devices
2913      code and cause a BX_ERROR (Volker Ruppert)
2914    - include slowdown timer as a runtime option (Christophe)
2915    - netBSD : fix serial, ethernet, cdrom (fredb, uebayasi and David Laight)
2916  - VGA
2917    - color depth 15, 16, 24 and 32 bpp supported by VBE (Volker and
2918      Christopher Nelson for 32 bpp on win32). Supported by sdl, x, win32 and wx.
2919    - SVGA mode 0x6A (800x600x4bpp) implemented (Volker)
2920    - new CGA graphics modes 640x200x1bpp and 160x100x4bpp (text mode 80x100) (Volker)
2921    - raster operations AND, OR and XOR in write mode 2 (based on SF patch #707931) (Volker)
2922    - 'split screen' in standard VGA graphics mode implemented (Volker)
2923    - 'double scan' and 'double width' now handled in the VGA code (Volker)
2924    - more accurate emulation of the horizontal and vertical retrace (Volker)
2925    - changeable start address and variable line length supported by all
2926      graphics modes (Volker)
2927    - VBE: preserve video memory feature implemented (Volker)
2928    - additional text mode features prepared (handled in the display library
2929      code) (Volker)
2930  - PCI
2931    - add experimental PCI VGA card (Mike Nordell)
2932    - add experimental PCI USB card (Ben Lunt)
2933  - Harddisks
2934    - per device selectable harddisk modes :
2935      - undoable, volatile, growing disks support (Christophe)
2936      - sparse disks support (justinSB)
2937      - vmware3 disks support (Sharvil Nanavati)
2938    - fix non detection of hard drives by minix2 (Christophe)
2939    - implement atapi command 0xA8 read (12)  (Christophe)
2940    - mode sense command updated (Hartmut Birr)
2941  - sb16
2942    - opl2 support enhanced (James E. Flemer)
2943  - ne2k
2944    - tap support for FreeBSD (Ronald Klop and Gen Otsuji)
2945    - fix when booting with grub (Keir Fraser)
2946  - cmos
2947    - date/time change support added (Volker)
2948    - UIP bit and divider chain reset implemented (Volker)
2949    - initial time can now be set to local time or utc (Christophe, Daniel Gimpelevich)
2950  - keyboard
2951    - keyboard reset function (0xff) now resets the keyboard (Volker)
2952  - gameport
2953    - new standard PC gameport device (real joystick connected on Linux and
2954      win32 only). Enable it with --enable-gameport or the SB16 emulation (Volker)
2955  - serial
2956    - FIFO emulation (UART type 16550A) implemented (Volker)
2957  - floppies
2958    - 160k,180k,320k floppies support (Ben Lunt)
2959
2960- display libraries
2961  - X11
2962    - onboard vgacard charmap usage (no need for external X11 vga font any more) (Christophe)
2963    - vgacard charmap change support (Christophe)
2964    - fix black stripes on partial exposes (Dirk Thierbach)
2965    - headerbar redraw optimizations (Dirk Thierbach)
2966    - external font files and their installation mechanism removed (Volker)
2967    - belgian keymap support (Wouter Verhelst, Eric Brasseur)
2968  - win32 + wx + x: new application/window icon (bochs.ico / icon_bochs.xpm) (Volker)
2969  - sdl + win32 + wx + x: new textmode features: variable line length,
2970    char width switch, horizontal and vertical pel panning (Volker)
2971  - win32 + wxMSW: key event handling rewritten (Volker)
2972  - win32: status bar at the bottom of the simulation window added (Volker)
2973  - wxMSW: resource problems fixed - wx dll plugin works now without errors (Volker)
2974  - term: variable line length and cursor enable/disable feature implemented (Volker)
2975  - rfb
2976    - textmode: charmap change, better cursor emulation, variable line length (Volker)
2977    - headerbar works now (power, reset and user button are okay) (Volker)
2978    - key event handling rewritten (Volker)
2979    - Bochs-RFB waits up to 30 seconds for a client connection. The emulation
2980      starts after connecting the client. (Volker)
2981  - carbon: Alt/Ctrl/Shift key handling rewritten & SysRq/Ctrl-Break key support added
2982    (Daniel)
2983
2984- configuration interface
2985  - gui dialogs as an extension of the textconfig interface on win32 added (Volker)
2986    * ask dialog
2987    * save text snapshot
2988    * user button shortcut
2989    * floppy image change
2990  - wxwindows configuration dialogs improved (Volker, Christophe)
2991
2992- support tools
2993  - bximage : added support for
2994    - growing disks (Christophe)
2995    - sparse disks (justinSB)
2996  - created bxcommit tool for undoable disk images (Christophe)
2997
2998- System BIOS :
2999  - fixed int15 function e801 (get memory size) (Christophe)
3000  - added int75_handler for FPU Dos Exceptions (Christophe)
3001  - added int16 function 0a (Get Keyboard ID) (Volker)
3002  - added support for ElTorito Harddisk-on-CD emulation (Christophe)
3003  - fixed ATA/Serial ioport conflict (Daniel)
3004
3005- VGA BIOS : updated to version 0.4c (Christophe)
3006
3007- configure script/compile/porting to other OSes/installation
3008  - fixes for compilation with MSVC (Andrew Zabolotny)
3009  - fixes for cross-compilation (Jeroen Janssen)
3010  - win32 nsis installer script updates (Volker)
3011  - small configure fixes for MacOS (Christophe)
3012  - optimizations & compile fixes for MacOS/X (Daniel)
3013
3014- configuration files. The following options have been deprecated :
3015  diskc, diskd, cdromd, time0, pit, newharddrivesupport.
3016
3017- documentation
3018  - already ported and obsolete parts of the old documentation removed (Volker)
3019  - user documentation updated and extended :
3020    - improved section "What does Bochs need" (Volker)
3021    - command line arguments (Volker)
3022    - search order for the configuration file (Volker)
3023    - the configuration interface 'textconfig' (Volker)
3024    - FreeDOS Beta 8 installation instructions (Volker)
3025    - disk modes (Christophe)
3026    - LBA translation  (Christophe)
3027    - cdboot error codes (Christophe)
3028    - SCO OpenServer install section (Carl Sopchak)
3029    - MacOS-X DMG install guide (Aard Vark)
3030    - update Win98 install guide (Dirk Thierbach)
3031
3032- SF patches applied
3033  #658950  Bug in FPU                                                  (Anonymous)
3034  #678117  build fail due to bad SGML punctuation                      (Anonymous)
3035  #671873  minimal USB support (UHCI)                                  (Ben Lunt)
3036  #682539  Fix CapsLock and NumLock behavior                           (rock at gimp.org)
3037  #720776  REX MOVB immediate broken for x86_64                        (Arnd Bergmann)
3038  #729450  new keymap x11-pc-be.map                                    (Wouter Verhelst)
3039  #735990  Limited patches for VC++                                    (Anonymous)
3040  #742670  fix library dependencies in GUI plugins                     (Robert Millan)
3041  #742782  LFB bugfix                                                  (Jan L. Hauffa)
3042  #748414  load32bitOShack bug                                         (kyriazis at nvidia.com)
3043  #830079  Fix bochs's application error if unsupported key pressed    (Anonymous)
3044  #724466  enable building with CC=gcc-3.2 CXX=g++-3.2; dist-clean adds(Leonard Norrgard)
3045  #834962  Fixed drawing graphics is broken                            (Anonymous)
3046  #838401  Fixed redrawing of ToolBar on Win32GUI                      (Anonymous)
3047  #850236  Fixed accessing DVD-ROM with direct device access on Win32  (Anonymous)
3048  #847822  Bochs crash when exmining memory that crosses page boundary (ortal at jungo.com)
3049
3050- SF patches partially applied
3051  #707931  Support EGA/VGA write mode 2 and others                     (Anonymous)
3052           already applied: disable IME, split screen, write mode 2,
3053           BIOS INT16h/AH=05h
3054  #856506/#856510  Patch to fix compile-time iodev/cd-rom.cc error     (alden.dima at nist.gov)
3055           Correct patch provided in SF bug report #843433             (birkhofer at users.sourceforge.net)
3056
3057- patches applied
3058  - patch.highmem  (memory allocation) (Zwane Mwaikambo)
3059  - patch.floppy-160k-180k-320k-benlunt (exotic floppies) (Ben Lunt)
3060  - patch.perf-regparm-cclark (performance) (Conn Clark)
3061
3062- new patches present in the patches directory :
3063        patch.pipelined-asm-cclark
3064        patch.mingw-resources
3065        patch.v8086-exception.lightcone
3066        patch.pit-vitaly-vorobyov
3067        patch.rombios-vitaly-vorobyov
3068        patch.win32-vitaly-vorobyov
3069        patch.win32-new-files-vitaly-vorobyov.tgz
3070        patch.rombios.markevich
3071        patch.rombios.dirk.thierbach
3072
3073- these S.F. bugs were closed
3074   #865354 ">>PANIC<< CRA: divider chain control 0x07" in Linux 1.1
3075   #725796 configure script bug
3076   #859768 cpuid
3077   #863964 panic in duron 2000
3078   #843433 cdrom.cc on MacOSX: wrong const names
3079   #818493 EMU][ (DJGPP app running on FreeDOS) broken
3080   #787005 Some MOV instructions are not implemented!!!
3081   #840664 2200136693936p[CPU ] >>PANIC<< prefetch: RIP > CS.limit
3082   #837416 V2 OS not compatible !?
3083   #650917 Serial port broken under win95
3084   #829863 Make bochs 2.0.2 build with gcc3
3085   #816971 main.cc: getcwd() missing argument
3086   #813556 Compile error under gcc 3.3.1
3087   #809758 RIGHT ALT does not function properly
3088   #809695 CVS complains about unknown files after compilation
3089   #628762 Error in Floppy Booting
3090   #474526 Crash under win32 (access violation)
3091   #687619 test case for BX_CPU_C::IRET32
3092   #664544 Panic in IRET32 - Reporting test case
3093   #637822 test case for BX_CPU_C::IRET32
3094   #603410 BX_CP U_C::IRET32
3095   #537047 IRET32 incomplete emulation, panic
3096   #805541 Compile fails on i686, gcc 3.3
3097   #798829 Problem booting from ISO image
3098   #688163 Panic at rombios.c
3099   #688161 rombios.c crashes when boot from a CD.
3100   #796339 int 15h, e801h broken?
3101   #666946 Slowdown Timer should be a module
3102   #783826 the clock is extremely fast
3103   #645609 Real Time Clock is too *FAST*
3104   #663320 flaw in IO bitmap permission handling
3105   #764929 Timing is off.
3106   #659510 Bochs timing off by x10
3107   #787138 No ROM BIOS character map
3108   #787134 Config options not saved
3109   #689201 Disassembler bug
3110   #666202 Windows 2000 - random screen blanking with linux DLX demo
3111   #629242 reset during Doom -> BIOS panic
3112   #695434 minix floppies won't boot.
3113   #764473 Freesco Linux crashes on boot
3114   #656026 error when trying to run some stuff
3115   #614202 HD: non-byte IO read to 01f4
3116   #777357 Strange FPU compiler error
3117   #583758 gag bootloader doesn't run
3118   #658639 ne2k panics with MS lanman Client/DOS62
3119   #536711 problem running smart bootmanager
3120   #741433 Disabling all ata# results in HD error.
3121   #753200 lock instruction doesn't do an illegal instruction trap
3122   #679389 libbx_wx.so.0: undefined symbol
3123   #758936 Problem Installing Bochs
3124   #742580 I configured fants but bochs still give me the same error
3125   #772242 iodev/vga.cc wrong memory access.
3126   #739222 Cannot change resultion
3127   #693344 libwx_gtk2.3.so.2 RedHat linux 8.0
3128   #639320 sparc: needs -lm to compile
3129   #587422 Windows 95j doesn't boot
3130   #547817 sparc: rfb needs -lsocket
3131   #480963 RFB: option to wait for client
3132   #763893 i've got problems with a "libvga.so.1" and another file
3133   #766490 Documentation mistake
3134   #766481 Bochs 2.0.2 Fails to compile on YDL3.0
3135   #626144 %lld is not portable
3136   #752241 lock prefix erronously allowed for some instructions
3137   #743305 fetchdecode.c probs
3138   #658707 Automatic exit?
3139   #696758 BeOS can't mount image disk, won't complete boot.
3140   #737048 Enabling keyboard resets controllers translation mode
3141   #717713 Bochs panics on startup on RH 9
3142   #741108 VGA PANIC
3143   #730922 seg fault on "bochs boot: cdrom"
3144   #658905 VGA read write error
3145   #564218 Panic on vga_mem_write
3146   #614231 X11 doesn't support charmap change
3147   #708311 Missing CGA low-res emulation
3148   #720776 REX MOVB immediate broken for x86_64
3149   #643296 lock prefix, unallowed cases
3150   #716964 [sb16] OPL.timer_running not initialized
3151   #662074 little mistake in the default config example
3152   #470701 CD-ROM on Win2K needs FILE_SHARE_READ
3153   #706454 bug??
3154   #653861 Win32 build bug
3155   #421155 panic on vga read 0x3c7,0x3cb
3156   #666434 VGA BIOS: Incompatible mode reporting
3157   #681819 Incorrent return value from cdrom reads
3158   #648222 Lotus Agenda futuristic dates off
3159   #657455 doesn't boot plan9
3160   #658938 SGDT in VM8086
3161
3162-------------------------------------------------------------------------
3163Changes in 2.0.2 (January 21, 2003):
3164
3165- fix possible segfault in wxWindows (Volker Ruppert)
3166- fix instrumentation (Stanislav Shwartsman)
3167- fix cdrom read_toc() function for *BSD (Keith Matthew Jones)
3168- fix NetBSD boot from cdrom (Christophe Bothamy)
3169- fix cmos checksum (Volker)
3170- fix "refresh bit" behaviour in pit (Volker)
3171- fix .bochsrc parsing (Volker)
3172- fix vga resize/redraw problems (Volker)
3173- fix compilation issues on Irix and Tru64 (Christophe)
3174- fix MMX/SSE bugs (Stanislav, Peter Tattam)
3175
3176-------------------------------------------------------------------------
3177Changes in 2.0.1 (January 4, 2003):
3178
3179- fix corrupt saved configuration files (Christophe Bothamy)
3180- fix missing break statements in apic (Shai Fultheim)
3181- fix compiling sb16 under FreeBSD (Volker Ruppert)
3182- updates to the documentation (Volker)
3183- fix text mode colors 8 to 15 (Volker)
3184- fix FPU integer load bug (Volker)
3185- stop pasting on hardware reset (Volker)
3186
3187-------------------------------------------------------------------------
3188Changes in 2.0 (December 21, 2002):
3189
3190Since the change log is hundreds of lines long, here is a very brief summary.
3191- 2x emulation speedup!!!
3192- added plugin devices and guis. Now you can compile with many more
3193  options, and choose between them at runtime.
3194- added emulation of AMD x86-64, MMX, SSE, SSE2 instructions
3195- add wxWindows port (a graphical configuration interface and display lib)
3196  and SVGAlib port (full screen display for Linux without X11)
3197- improvements in many I/O devices: for example up to 8 hard disks/cdroms,
3198  TUN/TAP network interface, 360k floppies,
3199- improved MacOSX/Carbon interface and updated MacOS9 port
3200- GDB remote stub, allows symbolic debugging with Bochs simulation.
3201- support for up to 32gig hard disk images
3202
3203Detailed change log follows.
3204
3205- documentation
3206  - manpages updated (Volker, Christophe)
3207  - install HTML rendering of docbook documentation instead of
3208    docs-html (Bryce)
3209  - doc/docbook/Makefile is now generated by configure script.
3210    if configure detects docbook2html on your system, it will turn on
3211    --enable-docbook and run make in the doc/docbook directory.  Also
3212    make install will install documentation into $(docdir).  You can use
3213    --disable-docbook to turn this off, if necessary. (Bryce)
3214  - add "make bochsdoc.tar.gz" target to create a documentation tarball.
3215    If you do "make webinst" and you have write access on SF shell server,
3216    it updates doc/docbook/* on the website (Bryce)
3217  - user documentation additions:
3218    - new options (Bryce, Volker, Christophe)
3219    - Bios tips section (Christophe)
3220    - Tuntap section (Christophe)
3221    - Serial Port section (Christophe)
3222    - "Will it Work for Me" / "Is Bochs Right for Me" sections
3223      (N. David Guarneri)
3224    - VESA section (Jeroen Janssen)
3225    - several documents, previously existing as separate html files, have
3226      been included :
3227      - internal debugger section (Christophe)
3228      - gdb stub debugger section (Christophe)
3229      - WinME, WinNT, WinXP, The Hurd, Japanese Win95 install tips (Christophe)
3230      - Win95, Win98 install tips (N. David)
3231      - SB16 section (N. David)
3232
3233- configure script/compile/porting to other OSes/installation
3234  - added plugin architecture
3235    - plugin code written by Bryce, Christophe, Volker based on
3236      plex86's plugin code by Kevin.  Testing help from Psyon and Br'fin.
3237    - Plugins are shared libraries that can be loaded on demand.  Example:
3238      the serial device is implemented as a plugin.  In UNIX, the
3239      serial plugin is called libbx_serial.so.  When Bochs reads its
3240      configuration file, if the serial device is enabled it loads
3241      libbx_serial.so.
3242    - all display libraries, most I/O devices are converted to plugins now
3243    - plugins supported on Linux, Solaris, and MacOS X using libtool,
3244      Cygwin using dlltool.  On MacOSX, you must have dlcompat installed
3245      and in your include/library paths at configure time.  (See .conf.macosx
3246      for an example.)
3247    - we use libtool's LTDL library from libtool 1.4.2, with a number of
3248      critical bug fixes (Bryce Denney)
3249    - the Linux binary RPMs are built with plugin support
3250    - to compile with plugins, configure with --enable-plugins
3251    - the LTDL_LIBRARY_PATH variable tells Bochs where its plugins can be
3252      found.  Bochs has a compile-time default for this variable which is
3253      correct if you do a make install.  You would only need to set the
3254      variable if the default is wrong.
3255    - for win32 plugins we added "BOCHSAPI" in front of many classes
3256      and methods, to aid in building DLLs.  This turns into __declspecs
3257      which are used when making an export library for Bochs.
3258  - allow many display libraries to be configured and compiled at
3259    a time.  For example --with-win32 --with-sdl --with-rfb.
3260    Also, we added an experimental option --with-all-libs which
3261    tries to detect which --with-* options will work.  If the
3262    autodetection fails, just type the --with-* options explicitly. (Bryce)
3263  - add #if's around all files which are conditionally compiled such
3264    as cdrom.cc and sb16.cc.  This makes it possible to compile every
3265    source file all the time, which has the potential to simplify the
3266    configure script and makefiles.  At present we only take advantage
3267    of this capability in the win32 VC++ workspace. (Bryce)
3268  - the MacOS9 port has been updated so that it works again.  It had
3269    not been updated in at least 2 years, maybe more.  (Christophe Bothamy)
3270  - improve support for FHS standard (Robert Millan, Volker Ruppert)
3271    See patches 551811 and 650066.
3272  - keep separate CFLAGS and CXXFLAGS for Bochs (usually a graphical
3273    program) and console programs such as bximage and niclist.  Some
3274    sdl and wx compile flags were making bximage and niclist unusable.(Bryce)
3275  - add concept of cross-configuring in the configure script.  If you
3276    use the --target option to generate makefiles to be used on another
3277    machine, some detection of compilers and libraries is disabled. (Bryce)
3278  - fix term compile on Cygwin, but it has to be done without -mno-cygwin,
3279    which means that several win32 features such as networking do not work.
3280  - add "-Wno-multichar" on beos
3281  - test for largefile support, and add required CFLAGS (Bryce)
3282  - add -lm when it's needed, and not when it's not (Bryce)
3283  - add configure support for 8 processors. Bochs can support up to 15
3284    with some work on the BIOS.
3285  - fix nmake makefile generation (Psyon)
3286  - improved pthread detection function from ac-archive project on SF
3287  - add installer package for Windows, using Nullsoft (Michael Rich, Bryce)
3288  - on MacOSX, add startup script that creates a text console and then
3289    runs Bochs.  Also add make target to create a DMG disk image (Br'fin)
3290  - do not restart the font server on Unix/X11, if vga.pcf was already
3291    installed.  On several modern machines, if you restart the font
3292    server the user has to restart X windows. (Bryce)
3293  - update most .conf.* files with modern options such as
3294    --enable-all-optimizations. (Bryce)
3295  - The MacosX .conf script adds /sw/include and /sw/lib to the compile/link
3296    path list because it is a common place to put dlcompat.  Dlcompat is
3297    required when building with plugins. (Bryce)
3298  - rpms can now be built without root privileges (Bryce)
3299
3300- command line
3301  - fixed up our command line options (Volker, Bryce, Christophe)
3302      Usage: bochs [flags] [bochsrc options]
3303      -n               no configuration file
3304      -f configfile    specify configuration file
3305      -q               quick start (skip configuration interface)
3306      --help           display this help and exit
3307
3308- configuration file (bochsrc)
3309  - There are several new options. See the documentation for more details.
3310    - config_interface: select text mode menus or wxWindows for configuration
3311    - display_library: select which display lib to use
3312    - optromimage: load optional rom images
3313    - ataN (N=0,1,2,3): up to 4 ATA controllers for hard disks, cdroms
3314    - ataN-master, ataN-slave, N=0,1,2,3: defines a hard disk or cdrom.
3315      The "ata*" options replace diskc, diskd, and cdromd, which are
3316      now deprecated.
3317    - floppy_bootsig_check: control the 0xaa55 signature check on boot floppies
3318    - logprefix: lets you change the format of log messages
3319      (patch by Carl Sopchak, help from Christophe)
3320    - debugger_log: log all output from bochs debugger
3321    - user_shortcut: allow you to type key combinations like Ctrl-Alt-Del
3322    - pit: control the PIT model, including realtime option to try to
3323      keep in sync with real time.
3324    - Credits: Christophe added optromimage, everything about ATA,
3325      floppy_bootsig_check, debugger_log.  Bryce added config_interface
3326      and display_library.  Volker did the user_shortcut button.
3327      Greg Alexander wrote the PIT model and added the realtime option.
3328  - since v1.3 we've been able to use environment variables in pathnames
3329    in the bochsrc file.  Now, a few variables have default values, set at
3330    compile time, that are used if the user does not set a value.  If Bochs
3331    is installed correctly, the defaults will be correct and the user will
3332    not need to override them.
3333    - $LTDL_LIBRARY_PATH is the path name where the plugins can be found.
3334      The default value comes from $(plugdir) in the makefile.  This is only
3335      important if plugins are enabled. (Bryce)
3336    - $BXSHARE is the path where the BIOSes and keymaps are installed.
3337      The default value comes from $(sharedir) in the makefile.  Disk
3338      images on the Bochs website will begin to use BIOS pathnames like
3339      $BXSHARE/BIOS-bios-latest.  On win32, the $BXSHARE default is
3340      set by the NSIS installer and read from the registry.  On MacoSX,
3341      the $BXSHARE default is set to the path containing bochs.app.
3342      (Bryce, Volker, Br'fin)
3343  - new option in the configuration interface to reset all bochsrc
3344    settings to initial defaults.  A reset occurs just before reading
3345    a new configuration file, so that leftover parameters from a
3346    previous configuration do not affect the new configuration.  Also,
3347    you can request a reset using the configuration interface. (Volker, Bryce)
3348  - ne2k line can now specify a script to set up the interface (Christophe)
3349  - on Unix, also search /etc/bochsrc (Bernhard Bablok)
3350  - you can use #include in the bochsrc to read configuration from other
3351    files (Volker)
3352
3353- CPU
3354  - speed optimizations from Kevin Lawton, yielding around 2x speedup
3355    - guest2host_tlb : for entries in the paging TLB which point to normal
3356      physical memory pages, a pointer to the host address of the emulated
3357      physical memory (from malloc()) page is stored in the TLB entry.  In
3358      many cases, this pointer can be used in memory accesses to directly
3359      read/write the guest memory address.  In exceptional cases, the physical
3360      memory access routines are used.  Turn on with --enable-guest2host-tlb.
3361    - repeat IO/string : for some variants of repeatable IO and string
3362      instructions, the segmentation and paging checks are done in batch along
3363      with the data transfers, constrained within page boundaries and the
3364      segment limits.  Turn on with --enable-repeat-speedups.
3365    - icache : The structure holding instruction decode information was
3366      reduced to 32 bytes.  24 bytes for the actual decode data, and 4 each
3367      for pointers to the address resolution routine (not always needed) and
3368      the instruction emulation routine.  With a reasonably small
3369      per-instruction decode size, an instruction cache (iCache) was created,
3370      which is simply a hash table.  The main cpu loop looks in the table
3371      first; if the instruction has already been decoded, execution can begin
3372      immediately without decoding.  Turn on with --enable-icache.
3373    - host specific asm : when compiling on an x86 platform, use of
3374      x86-specific asms can be enabled to accelerate several facets of
3375      emulating instructions.  For example, the EFLAGS values are much more
3376      efficient to calculate when the actual x86 instructions are used to
3377      generate the EFLAGS values.  Turn on with --enable-host-specific-asms.
3378      (Kevin, with help from Jas Sandys-Lumsdaine)
3379    - if you want to enable all the speed optimizations that we believe
3380      to be stable, use --enable-all-optimizations.  The release binaries
3381      are built with this option.
3382  - add support for AMD's x86-64 instruction set.  To enable, configure with
3383    --enable-x86-64.  The AMD x86-64 support is about 90% complete and is
3384    still experimental.  We've implemented the core x86-64 instruction set and
3385    the changes to the rest of Bochs necessary to operate in long mode, but
3386    we've still to implement checking for canonical 64 bit addresses. The code
3387    has been tested on a limited number of test programs.  It has been able to
3388    successfully boot a x86-64 Linux kernel and run a 64 bit userland
3389    application.  It has also successfully run a DOS based 64 bit protected
3390    mode test application. (Peter Tattam, with merge/bugfix help from Kevin
3391    Lawton and Bryce Denney)
3392  - add MMX support. To enable, configure with --enable-mmx.
3393    (Stanislav Shwartsman)
3394  - add SSE and SSE2 support. To enable, configure with --enable-sse=1
3395    or --enable-sse=2. (Stanislav)
3396  - fixed the behaviour of the bcd instructions AAM, AAD and DAA based on
3397    SF patch #537146 (Volker)
3398  - stop printing an error for VERR/VERW. According to the i386 opcode
3399    description there is no error present. (Volker)
3400  - fix bug [ 625878 ] reset doesn't reset something(?). Fix cpu reset
3401    when executing a rep instruction (Christophe)
3402  - use accessors methods for CFLAGS and several other registers, so that
3403    the implementation can be changed transparently later (Bryce, Stanislav)
3404  - add support for page size extensions, also known as 4meg pages.
3405    Turn on with --enable-4meg-pages. (Kevin Lawton)
3406  - add support for page global extensions.  Turn on with
3407    --enable-global-pages.   (Kevin)
3408  - add support for physical address extensions.  Turn on with --enable-pae.
3409    (Peter Tattam)
3410  - implement RDMSR and WRMSR. not all MSRs are supported (Zwane Mwaikambo)
3411  - new configure option --enable-ignore-bad-msr, which makes unrecognized
3412    MSR reads and writes into just a warning
3413  - fix PIC/APIC interrupt problem that caused Linux 2.4.19 to hang
3414    during boot (Peter)
3415  - CMPXCHG8B patch (Michael Hohmuth)
3416  - EFLAGS are now stored in the same form as the native EFLAGS on an x86,
3417    so that we can use native machine instructions in some cases (Kevin)
3418  - instrumentation code updated (Stanislav)
3419
3420- FPU
3421  - fixed bug [ 452275 ] fprem emulation bug (Volker)
3422  - fixed bug [ 648579 ] Mac OSX >>PANIC<< FPU_printall. There was an
3423    endianness issue with the fpu (Christophe)
3424
3425- I/O devices
3426  - rewrote pc_system timers (Kevin)
3427  - biosdev
3428    - this new device handles the panic/error/info/debug messages sent
3429      by the Bios and VGABios.  It was previously done in the unmapped device.
3430  - cdrom
3431    - implementation of the function READ TOC for cdrom image files. (Volker)
3432    - function capacity() for win32 fixed. Now it returns the number of blocks
3433      instead of bytes. (Volker)
3434    - added multiple cdrom support for win32 (NT/2000 version untested). The
3435      ASPI version uses the cdrom drives in the system's order. Drive letters
3436      are not used by ASPI. (Volker)
3437    - fix configure script's cdrom detection on BeOS (Bryce)
3438    - fix physical CD change at runtime (Bryce)
3439  - cmos
3440    - fix panic when WinXP read port 70h (Christophe)
3441    - add ps/2 style century at index 37 to allow WinXP to boot. (Bryce)
3442  - dma
3443    - DMA register and unregister functions for DMA channels added and macros
3444      for DMA functions defined. The changes are based on the Plex86 functions.
3445      (Volker)
3446    - implementation of the DMA controller reset (Volker)
3447    - the value of the command register must be always 0x00 (BX_ERROR fixed)
3448  - floppy (Volker)
3449    - implemented Tape Drive Register (Dave Poirier)
3450    - added support for 360k floppy images
3451    - the skip flag (SK) in command 'read sector' is ignored now
3452    - floppy read and write function do not set the 'seek end' bit in status
3453      register 0 (fixes SF bug #553377)
3454    - the status of the 'disk changed' line depends on the selected drive.
3455      The digital input register is now an array (DIR[4]).
3456    - apply patch [ 635021 ] floppy cleanup by Alex Thiel
3457    - distinguish between floppy drive type and media type
3458  - hard drive
3459    - add largefiles support, to allow disk images larger than 2gig.
3460      (Stu Grossman)
3461    - missing conditions for lower_irq() added (Volker)
3462    - several noncritical panics replaced with BX_ERRORS and the controller
3463      returns an error code until we implement the features (Volker)
3464    - applied patch from Carl Sopchak for booting  sco openserver
3465    - allow disk block access only if concatenated images are not used
3466      (Christophe)
3467    - fix bug [ 419415 ] netbsd 1.5 rescue disk won't boot (Volker)
3468    - multiple drq atapi data transfers corruption fixed (Christophe)
3469    - added some commands to the unsupported "Set Feature" commands (Christophe)
3470    - speedups in repeated IO transfers (Kevin)
3471    - support for Peter Tattam's external disk simulator (Bryce)
3472    - 4 channels / 8 devices support (Christophe)
3473    - "inquiry" atapi command results corrected (Volker)
3474    - check for incomplete devices configuration before starting the
3475      simulation (Bryce)
3476    - implemented the different bios disk translation schemes (Christophe)
3477  - keyboard and mouse
3478    - add commands 0xd2, 0xdd and 0xdf (Dave)
3479    - fix bug [ 613975 ] wxWindows: params redefined on restart (Bryce)
3480    - in function mouse_motion(): added parentheses to fix compilation problems
3481      with MSVC. See SF bug #575301. (Volker)
3482    - added missing register_irq() for the PS/2 mouse IRQ12 (Volker)
3483    - fix "AltGr" key on European keyboards wxWindows/win32, SDL (Volker)
3484  - NE2000
3485    - function reset() clears the IRQ line (Volker)
3486    - added TUN/TAP interface (Renzo Davoli, Christophe)
3487    - fix DOS based packet drivers that use an odd count for the NE2000 DMA (Peter)
3488    - changed "TCR write, reserved bits set" panic into an error, fixes
3489      networking with debian image (Bryce)
3490  - parallel
3491    - parport1 enable/disable support added (Volker)
3492  - PCI (Volker)
3493    - implementation of the PCI device register mechanism
3494    - PCI memory handling moved to the memory code
3495    - replaced memcpy() in pci_read() by a more portable code. Problems with
3496      PCI on big-endian machines are fixed now (SF bug #638481).
3497    - implementation of the PCI-to-ISA bridge started (still incomplete)
3498  - PIC
3499    - fixed detection of single mode and level senistive mode in ICW1 (Volker)
3500    - fixed handling of rotate_on_autoeoi for master PIC (Volker)
3501    - irq mask is now cleared on initialization (Dave)
3502    - fixed lockup during mouse movements during win98 install. (patch from
3503      Wilfried Weissmann)
3504  - PIT
3505    - Added realtime PIT support (Greg)
3506  - Sound Blaster 16
3507    - it used to enable itself all the time; now only when you ask
3508    - fix memory leaks (Bryce)
3509  - serial
3510    - don't cause problems when serial device is disabled (Volker)
3511  - unmapped
3512    - add programmatic shutdown feature at port 0x8900 (Christophe)
3513  - vga
3514    - VBE fixes (Jeroen, Volker)
3515    - CRTC fixes (Volker)
3516    - sequencer reset with bits 'reset1' and 'reset2' implemented (Volker)
3517    - add charmap change support (used by SDL, win32 and wxWindows gui) (Volker)
3518    - screen dimensions / updates for some graphics and text modes fixed (Volker)
3519    - use the start address when calculating the byte offset for standard
3520      EGA/VGA modes (Volker)
3521    - byte offset for modeX fixed (use value of CRT register 0x13) (Volker)
3522    - text mode memory mappings 0 and 1 support (Christophe)
3523    - fix bug [ 612741 ] VBE mem conflicts w/ local APIC address (Jeroen)
3524    - fix bug #635223: VGA tiles array access out of bounds (Bryce)
3525
3526- ROM BIOS
3527  - improve compile process. Now bioses for 1, 2, 4 and 8 processors
3528    are built at the same time (Bryce)
3529  - fixes to be able to compile the bios with gcc2 or gcc3 (Jeroen and
3530    Christophe)
3531  - changes on boot signature check (Christophe):
3532    - never done for cdroms
3533    - always done for hard-disks
3534    - conditional for floppies
3535  - add keyboard int16 functions 0x09 (get keyboard functionality) and
3536    0x0a (get keyboard id) (Christophe)
3537  - fix bug [ 629810 ] int 16/ah=01 broken? Enable interrupt on entering
3538    int16 handler (Christophe)
3539  - new keyboard init in POST (patch from Adam Sulmicki)
3540  - flush input and output keyboard buffer before keyboard self test
3541    (Volker and Christophe)
3542  - fix bug [ 547603 ] kbd up/down arrows in dos install (Christophe)
3543  - fix bug [ 549815 ] bios wrongly loads CS,ES.  CS and ES are set to 0
3544    before the bootloader code is called. (Christophe)
3545  - PCI functions support (Volker) :
3546    - BIOS32 service directory
3547    - real mode PCI int1a functions
3548    - protected mode PCI int1a functions
3549  - fix reset for MS-DOS and Win95 (Volker)
3550  - 360K floppy support (Volker)
3551  - enhanced ata/atapi support (Christophe) :
3552    - 4 channels / 8 devices
3553    - device auto detection (with help from Adam Sulmicki)
3554    - EDD3.0
3555    - 32bits device access
3556    - optional disk translation "large", "r-echs" or "lba" (up to 8.4GiB)
3557  - re-enable harddisk controller interrupt after reads/writes.
3558    Win95 can now use native access to harddisks and cdroms. (Volker)
3559  - shutdown status handling (cmos index 0x0f) (Christophe) :
3560    - fix bug [ 601166 ] CMOS Problem @ "0x0F Index 0x05 data". After reset
3561      execution will resume by a jump to [0x40:0x67] if the shutdown status
3562      is 5
3563    - the bios don't panic any more if the shutdown status is 9
3564  - two parallel ports detection in POST (Volker)
3565  - two serial ports detection in POST (Volker)
3566  - add int15 extended memory function 0xe820 (patch from osmaker) and
3567    0xe801 (patch from Hartmut Birr)
3568  - fix return values on some int15 functions (Bryce)
3569  - fix int70 handler overlapping int08 handler (Christophe)
3570  - simplify 8 processors BIOS for operating systems which don't do
3571    paranoia/sanity checks (Zwane)
3572
3573- configuration interface
3574  - wxWindows config interface now allows you to change every bochsrc
3575    option using menus and dialog boxes.  There is also the beginning of
3576    a wxWindows graphical debugger, but it needs a lot of work before it
3577    will be useful.
3578  - renamed control.cc to textconfig.cc.  Now we're calling it a
3579    text configuration interface, instead of a control panel.
3580
3581- display libraries
3582  - Even though we've had them for years, the term "display library" is new in
3583    release 2.0.  In the gui directory, Bochs has a number of different C++
3584    files which you can select to display the text and graphics on the
3585    simulated monitor.  Each of these is a display library.  The display
3586    libraries are:
3587      x          use X windows interface, cross platform
3588      win32      use native win32 libraries
3589      carbon     use Carbon library (for MacOS X)
3590      beos       use native BeOS libraries
3591      macintosh  use MacOS pre-10
3592      amigaos    use native AmigaOS libraries
3593      sdl        use SDL library, cross platform
3594      svga       use SVGALIB library for Linux, allows graphics without X
3595      term       text only, uses curses/ncurses library, cross platform
3596      rfb        provides an interface to AT&T's VNC viewer, cross platform
3597      wx         use wxWindows library, cross platform
3598      nogui      no display at all
3599  - it is now possible to compile Bochs with support for many different
3600    display libraries and select the one to use at runtime (even without
3601    plugins).  See the display_library directive in .bochsrc.
3602  - add new svgalib display library by Igor Popik
3603  - fix bug [ 614724 ] SDL can get stuck in full screen mode
3604    display libraries such as SDL which have a full screen mode can be
3605    dangerous, if Bochs does not switch back to normal display mode at
3606    the right time.  This is fixed for SDL and the new svga.
3607  - keymap support added in SDL interface (Bryce, Volker)
3608  - new keymap files: SDL keymaps for US and DE keyboards,  X11 keymap
3609    for Danish keyboard.
3610  - use keyboard mapping for keyup messages too
3611  - renamed almost all references to data type "Boolean" to "bx_bool".
3612    The Boolean data type was defined in Carbon.h headers, and conflicted
3613    with Bochs's definition.  See bug [ 618388 ] Unable to boot under MacOS X
3614    Exceptions: When talking to the Carbon library, you must use Boolean.
3615    Also, siminterface.h uses standard "bool" instead of bx_bool.
3616  - "User" button added in toolbar. It can send keyboard shortcuts to
3617    the guest OS. (Volker)
3618  - snapshot improvement and memory leak fixed (Volker)
3619  - testing framework, based on comparing screen content, added (Greg)
3620  - term display library:
3621    - support for color terminal, function keys, clear screen (Volker)
3622    - solaris compilation problem (bug #613393) fixed (Bryce)
3623  - win32 display library:
3624    - use native win32 toolbar for headerbar, use system palette (Volker)
3625  - many Carbon interface improvements:
3626    - patch [ 549248 ] Fix Carbon key & menu handling (Chris Thomas)
3627    - partial keymap support, copy&paste, menu items fixed, new toolbar
3628      behavior, dialog box display for panics (Br'fin)
3629  - sdl display library:
3630    - keyboard fixes and key mapping added (Bryce)
3631    - when captured, the mouse is forced to stay in the window. fix bug
3632      [ 619283 ] SDL: os mouse pointer leaves the window (Bryce)
3633  - x display library:
3634    - bug [ #537593 ] vga font not being found fixed. If vga font not
3635      found, search for a font called "-*-vga-*" (Bryce)
3636    - keyboard problems fixed (Bryce, Christophe)
3637  - beos platform, any display library: add a nice icon to the executable
3638    (Bernd Korz)
3639
3640- wxWindows
3641  - wxWindows is a cross-platform C++ user interface library which you can
3642    download for free at http://wxwindows.org.  wxWindows provides C++
3643    classes for all sorts of GUI controls (buttons, menubars, etc.) and
3644    implements all of them using the native controls on the platform.
3645  - The new wxWindows port of Bochs provides both a graphical configuration
3646    interface (for editing bochsrc options) and a display.  It was
3647    written by Bryce Denney, Don Becker, Dave Poirier, and Volker Ruppert.
3648  - In release 2.0, we concentrated on making the wxWindows port as stable
3649    and functional as the other interfaces.  wxWindows provides a great
3650    toolbox that we can use to make Bochs easier to learn and use.
3651  - wxWindows supports charmap changes, keyboard mapping, cut and paste,
3652    text and graphics modes, text mode cursor size, and mouse (Volker, Bryce)
3653  - To compile Bochs with wxWindows, you should install wxWindows 2.3.3
3654    or later.  Then configure Bochs with --with-wx.
3655  - if you have multiple versions of wxWindows installed (e.g. a debug
3656    and a release version), you can set $WX_CONFIG before configuring
3657    to select between them. (Bryce)
3658
3659- Bochs debugger
3660  - [ 609616 ] remote GDB stub
3661    add GDB Stub support from Johan Rydberg, with bug fixes by Stu Grossman
3662  - add hooks for external debugger for win32.  The external debugger
3663    that connects to Bochs is distributed in
3664    build/win32/tattam-external-debugger.zip in binary form. Turn on
3665    with --enable-external-debugger.  (Peter)
3666  - add "debugger_log" option to bochsrc, which logs all debug output
3667    into a file. feature [ 629068 ] (Christophe)
3668  - debugger is now usable in fullscreen SDL and SVGA guis.  It will
3669    switch back to text mode for each debug prompt (Bryce)
3670  - disassembly output cleaned up and improved
3671    (Kernel Panic, Peter Tattam, Jonathan Shapiro, Luiz Henrique Shigunov)
3672  - fix [ 628806 ] debug: x/c prints unprintable chars (Bryce)
3673  - add the beginnings of a wxWindows debugger. Not ready for mainstream use
3674    yet. CPU register display is implemented, and you can type any debugger
3675    command you want into the Debug Console window. (Bryce)
3676  - add help command (Alexander Krisak)
3677  - symbol table lookups cleaned up a bit (Bryce)
3678  - displays the address of the caught watchpoint, feature #435271 (Dave)
3679  - remove obsolete "loader"
3680
3681- utilities
3682  - fixed bug [ 487758 ] bximage fails on file creation >2048meg
3683    Bximage should now work up to 32gig. (Bryce)
3684  - on win32, both bximage and niclist now ask the user to press
3685    return before exiting, so that you have time to read the results
3686    before the window disappears. (Bryce)
3687
3688-------------------------------------------------------------------------
3689Changes in 1.4.1 (June 22, 2002):
3690
3691- now cdrom is enabled in configure, unless you specifically disable
3692  it with --disable-cdrom. (Christophe)
3693- fix compile error in main.cc when SMP or APIC is enabled (Dave)
3694- the runtime menu now displays 11 (continue) by default (Bryce)
3695- initialize DMA controller before floppy and SB16
3696- fix DMA panic when installing win95 (Volker)
3697- first character of the vga bitmap is blank on win32 (Volker)
3698  Before, it was incorrectly coded as a '@'.
3699- AltGr key on European keyboards works now on win32 (Volker)
3700- fix problem with console/serial port on Bochs exit (Volker)
3701- enable serial port for GNU and GNU/Linux (Volker)
3702- small documentation fixes (Volker)
3703- remove unnecessary include statements for X11 (Volker)
3704- italian keymap added (Emanuele Goldoni)
3705- fix win32 ethernet frames error. It will no longer reject packets
3706  that are less than 60 bytes long. (Peter Tattam)
3707- BIOS fixes :
3708  - win2k cd-boot (Christophe)
3709  - emm386 crash (Dave)
3710  - cs=0 at boot time (Christophe)
3711  - keyboard failure in scandisk (Dave)
3712- fix bug in forming the 64-bit APIC base address from two 32-bit registers.
3713  A compiler warning in cpu/proc_ctrl.cc pointed this out.
3714- fix default choice in the runtime options menu
3715
3716-------------------------------------------------------------------------
3717Changes in 1.4 (March 27, 2002):
3718- ROM BIOS
3719  - Boot from CDROM!  Christophe Bothamy added partial El Torito support in
3720    rombios.c, which allows Bochs to boot cdroms.  Booting from win2k or winXP
3721    cdrom is not supported yet.  The default BIOS includes El Torito functions.
3722    the boot line must say "cdrom".
3723    Example:
3724      boot: cdrom
3725  - implementation of int13 diskette function 5 (format track) (Volker)
3726  - initialisation of PIC and DMA-2 added to POST code (Volker)
3727- configure script (Bryce Denney)
3728  - the configure script now detects your platform and provides a default
3729    GUI and the required compiler flags.  All supported platforms should
3730    compile with simply "configure" and "make".
3731  - default guis by platform:
3732     - win32/windows/cygwin: win32 gui
3733     - MacOS X: carbon gui
3734     - MacOS 9 or earlier: macos gui
3735     - BeOS: beos gui
3736     - AmigaOS: amigaos gui
3737     - all other platforms: X windows gui
3738  - compile arguments supplied by configure script
3739    - win32: too many to list here; see documentation
3740    - cygwin: -mno-cygwin -DWIN32
3741	- MacOS X: -fpascal-strings -fno-common -arch ppc -Wno-four-char-constants
3742	           -Wno-unknown-pragmas -Dmacintosh
3743  - the --with-GUINAME configure option is only needed if you want to override
3744    the default GUI.  This is the only way to use the Term, RFB, and SDL
3745    GUIs.
3746- VGA
3747  - added VESA BIOS Extensions code by Jeroen Janssen (banked mode only, LFB
3748	support in patches)
3749  - vga memory read/write functions in text mode fixed
3750  - implementation of CGA mode 320*200*4 (patch from Sebastien Bechet)
3751- VGA BIOS
3752  - updated Christophe Bothamy's LGPL VGA BIOS to version 0.3a.  This consists
3753    of a bug fix for function ah=13 and VBE support by Jeroen Janssen.
3754- networking
3755  - chipmem read/write limit fixed (Mike Lerwill)
3756  - writing a byte in 16-bit mode now possible (Mike Lerwill)
3757  - new ethertap interface for Linux, which allows Bochs to talk to
3758    the local machine and the internet (Bryce Denney)
3759  - NE2000 is now enabled by default on Win32, Cygwin, and Linux compiles
3760    in the .conf.* scripts and release binaries.
3761  - fix check for auto transmit disable, which was checking the wrong bit
3762    (Peter Tattam)
3763  - Win32 only
3764    - niclist.exe has been revised to work on more Windows versions, and it
3765      suggests a usable ne2k line (Dean Payne)
3766    - fix timeout setting so that ne2000 does not slow down the whole
3767      simulation (Don Becker)
3768    - bug fix: be able to handle multiple packets that arrive at once
3769      (Mike Lerwill)
3770- GUI changes
3771  - cdrom button: click this to notify Bochs when you changed the CDROM (Volker)
3772  - snapshot button: saves the text on the Bochs screen into a file called
3773    snapshot.txt (Volker)
3774  - copy button: on Win32 and X windows, copy the text on the Bochs screen
3775    to the clipboard (Volker)
3776  - paste button: on Win32 and X windows, paste the characters on the
3777    clipboard into the Bochs window.  This requires keyboard_mapping to
3778    be enabled. (Bryce Denney)
3779  - improved text mode cursor for Win32, X11, and SDL (Volker)
3780  - new SDL interface (Dave Poirier, debugging by Christophe, Volker, Bryce)
3781    SDL is a graphics library that has works on many platforms.  This interface
3782    is experimental, and is missing a few features of the standard Bochs
3783    interfaces: extended keys (arrows, keypad).
3784  - MacOS X: add MacOS X carbonized event handlers by Jeremy Parsons
3785  - X windows: when not enough colors can be allocated, force use of
3786    private colormap (Bryce Denney)
3787  - bug #490570 fixed: OUTB set and command 0xaa encountered (Dave Poirier)
3788- keyboard
3789  - completed keyboard emulation with the implementation of the three scancodes
3790    sets (mf1, mf2, mf3) with or without translation. This is based on Ludovic
3791    Lange's plex86 keyboard patch. (Christophe Bothamy)
3792  - added a "keyboard_type" option, that defines the answer to an "identify
3793    keybord" request to the keyboard controller. The available values are
3794    "xt","at","mf".  (Christophe Bothamy)
3795  - added an optional keyboard_mapping option that enables to use your
3796    country specific keyboard with Bochs.  If enabled, the keymap file must be
3797    specified in bochsrc.  The available keymaps are US, German, Spanish and
3798    French for PCs running X11.  Contributions are welcomed.  (Christophe
3799    Bothamy)
3800  - added Windows(tm) key definitions (Volker Ruppert)
3801  - added paste button, which causes the emulated keyboard to type characters
3802    from the system clipboard.  This only works when keyboard_mapping is
3803    enabled. (Bryce Denney)
3804- cdrom
3805  - bug fix: win32 could not read a cdrom image file
3806  - eject cd support for linux (patch from Petr Stehlik)
3807  - BeOS fixes
3808  - changing cdrom media is possible now with CDROM button
3809- sound blaster(tm) emulation (Volker)
3810  - you can use --enable-sb16=freebsd now
3811  - 16-bit DMA controller added
3812  - 16-bit mode of the SB16 implemented (output to file works)
3813- floppy drive (Volker Ruppert)
3814  - implementation of the floppy command 'format track'
3815  - implementation of read / write operations with MT=0
3816  - behaviour of a few floppy commands fixed
3817  - floppy reset behaviour fixed
3818  - lots of other fixes
3819- fixed bug [ #468340 ] pic:slave: OCW3 not implemented.  Now the slave PIC
3820  supports all the modes that the master PIC does, and nobody will see this
3821  message again.
3822- serial port (by Volker Ruppert unless noted)
3823  - improved IRQ handling
3824  - now Windows 95 serial driver works correctly
3825  - fixed the return value of the MCR (loopback bit)
3826  - interrupt reasons LSR change and MSR change implemented
3827  - the number of data bits is considered when sending data
3828  - all serial port changes are tested in loopback mode only
3829  - serial port emulation fixed for FreeBSD and OpenBSD (Stu Grossman)
3830  - fix receiver poll frequency so that it doesn't slow emulation (Stu Grossman)
3831- Bochs debugger
3832  - when tracing, print the instruction just before it is executed, instead
3833    of just after (Greg Alexander)
3834  - after a triple-fault panic, you can now return to the debugger
3835- symmetric multiprocessor (SMP) simulation
3836  - no more panic if you read the EOI register
3837  - fixed default destination format in local APIC
3838  - fix SMP instruction tracing in bochs debugger
3839  - fix deadlock when debugger enabled and all processors HLT
3840  - MSR support added by Zwane Mwaikambo
3841- simulation of interrupts is more accurate (Volker)
3842  - implemented edge triggered interrupt mode
3843  - added functions raise_irq() and lower_irq()
3844- programmable interrupt timer (Greg Alexander)
3845  - fixed the PIT gate and improved the PIT printing options
3846  - experimental real-time PIT
3847- parallel port improvements (Volker Ruppert)
3848- bug fix: hard disk errors caused by overflowing imul in the BIOS code.
3849  Sebastian Bechet and Peter Tattam tracked it down and fixed it.
3850- fix some memory leaks (patch from Darko Tominac)
3851- Double-Word IO is supported for ATA devices
3852- fix bash-specific syntax in install-x11-fonts script
3853- print stack_return_from_v86 error only the first 100 times
3854
3855-------------------------------------------------------------------------
3856Changes in 1.3 (December 10, 2001):
3857- networking works on Windows and Linux platforms
3858- emulated cdrom can now read from ISO image files, on any platform.
3859- new PIT model by Greg Alexander which is much more complete than the
3860  old one.  The new PIT is used by default, but you can switch back to
3861  the old one if you configure with --disable-new-pit.
3862  (PIT = 8254 programmable interrupt timer)
3863- new configuration menus by Bryce Denney, which allow you to change any
3864  bochsrc option using text menus, then save the configuration into
3865  a new bochsrc file for later use.  You can disable the new code using
3866  configure --disable-control-panel.  Also you can use the command
3867  line arguments -nocp or -nocontrolpanel.  Also, there is a new
3868  "Config" button on the GUI that allows limited changes to the
3869  configuration at runtime, such as changing the floppy disk.
3870- add docbook documentation directory in the sources under doc/docbook.
3871  The transition from HTML to docbook documentation is still in progress.
3872- Add new log action "ask", as shown in these example bochsrc lines:
3873    panic: action=ask
3874    error: action=ask
3875  When an event occurs which is set to "ask", you get a beep and message
3876  on the text terminal that asks what you want to do.  Choices are: continue,
3877  continue and disable future messages from this device, quit immediately,
3878  or segfault (where abort() function is available).  If compiled with
3879  --enable-debugger, you can also choose to enter the debugger.
3880- Parallel port emulation cleaned up by Volker Ruppert.  See .bochsrc for
3881  syntax of new parport1 line in bochsrc.
3882- PCI support improved by Volker Ruppert, including BIOS changes.  Still
3883  not complete.
3884- floppy controller returns a proper error response if you try to write
3885  a read-only disk image.  For systems such as DOS that actually use the BIOS
3886  services, it was also necessary to add code in int13_diskette_function to
3887  recognize a write-protected error and return the correct error status code
3888  (AH=3, Carry Set).
3889- the ROM BIOS now prints panic messages to the console.  Thanks to Cliff
3890  Hones for his console display code.
3891- the ROM BIOS detects nonbootable disks (Barry Allard), and prints a message
3892  on the console.  Barry Allard's patch who helped with checking the boot
3893  signature.
3894- LBA support added for hard disks.  (Not tested very much.)
3895- add dependencies to makefiles
3896- logging code moved into a separate file, logio.cc
3897- new option --enable-slowdown-timer, by Greg Alexander, which kicks in if
3898  Bochs simulation time starts to run faster than real time.  This helps to
3899  keep the Bochs clock in sync with the real clock when the CPU is mostly
3900  idle.
3901- new option --enable-iodebug, by Dave Poirier, which creates an I/O
3902  interface to the debugger.  This lets you write software to be emulated
3903  in Bochs which can turn on instruction, register, or memory tracing
3904  using I/O accesses.
3905- improved detection of readline in configure script
3906- configure substitutes the version number into many files, instead of
3907  using sed in the makefile.  There are still a few uses of sed remaining.
3908- you can now use environment variables in bochsrc values.  For example,
3909  diskd: file="$BOCHS_IMG/diskd.img", cyl=615, heads=6, spt=17
3910- configure with --prefix=PATH works now
3911- running configure from a different directory works now, thanks to
3912  a patch from Edouard G. Parmelan
3913- fix [ #433759 ] virtual address checks can overflow.
3914  > Bochs has been crashing in some cases when you try to access data which
3915  > overlaps the segment limit, when the segment limit is near the 32-bit
3916  > boundary.  The example that came up a few times is reading/writing 4 bytes
3917  > starting at 0xffffffff when the segment limit was 0xffffffff.  The
3918  > condition used to compare offset+length-1 with the limit, but
3919  > offset+length-1 was overflowing so the comparison went wrong.
3920- cmpxchg8b patch from Michael Hohmuth <hohmuth@innocent.com>
3921- apply patch from Thomas Fitzsimmons <fitzsim@cygnus.com> to fix compile
3922  problems when BX_SUPPORT_PAGING and BX_USE_TLB are turned off
3923- fix bug introduced in 1.2.1 which caused spurious exceptions.
3924  See patch #439314, Exception 1 (debug) on HALT, from
3925  thomas.petazzoni@meridon.com.
3926- add panic in ctrl_xfer32.cc where the IRET32 implementation is broken.
3927  This only happens if you are NOT in vm8086 mode or protected mode.
3928  The intent is to warn people when they are getting bad emulation, and
3929  encourage people to report how they got to that point.
3930- apply patch from Santiago Bazerque.  See this bug report:
3931  [ #463018 ] retf not removing parameters sometimes
3932- fix bug [ #461730 ] IRETD causes problems if NT-flag is set
3933  reported by Peter Lammich.
3934- apply patch [ #455014 ] CR0 bug in 80486, described as:
3935  > In the register CR0, when the bit PM is enabled, the bit 4 is 0
3936  > when should be 1.
3937- apply patch from Mike Rieker <mrieker@o3one.org> associated with this bug
3938  report: [ #480422 ] gdt 'accessed' bit
3939- in task_switch when it tried to ensure that the old TSS was paged in,
3940  it actually used the new TSS address, fixed.
3941- updated the instrumentation code, and added a working example.  To try
3942  it, configure --enable-instrumentation=instrument/example1.  Then when
3943  you run bochs, you will get one line for each instruction PC and for
3944  each I/O access in a new file called bxevent.txt.
3945- set a bit in the CMOS that says the processor has an FPU.  This is
3946  from patch [ #455006 ] Device byte is not initialized aptly.
3947  Author did not leave their name.
3948- add logging code to the "null ethernet" which does not require host OS
3949  support.  All this does is print the outgoing packets from the guest OS.
3950- cleanup of log functions (Todd Fries)
3951- add BX_ERROR for every command in ATAPI-6 that bochs does not support.
3952  I still need to do add some commands from older specs that are obsolete
3953  (and not listed) in ATAPI-6.  Commands that aren't in the spec will still
3954  panic.
3955- only put 0xf into the 2nd hard disk field when the cdrom is not present.
3956  This is a patch from Volker Ruppert <Volker.Ruppert@t-online.de>, who
3957  comments: "The fdisk command reports an unusable second harddisk if the cdrom
3958  is enabled. This patch helps, but I don't know if it is the right way."
3959- make hard disk code return error codes when data is not available instead
3960  of just panicing.  In particular, if the logical sector is out of bounds
3961  or the disk image cannot be read/written at the desired offset, we now
3962  abort the ATA command and return an error code.  Many of the old BX_PANIC
3963  messages are turned to BX_ERROR, so they will still appear in the
3964  log, but now the device model will try to communicate this fact to
3965  the OS instead of simply giving up.
3966- don't blindly reject odd length atapi commands.  There are cases when
3967  it's really ok according to ATA-4.
3968- for big endian machines, reversed the bit fields in interrupt_reason.
3969  This was pointed out by Nicholai Benalal.
3970- extended keyboard improvements by Dave Poirier
3971- major mouse patch from Dave Spring, that implements several missing
3972  mouse modes.
3973- commit keyboard patch from David Haslam <dch@sirius.clara.co.uk>
3974  posted to mailing list, that addresses the problem of each key press
3975  printing ^@.  See cvs log for details.
3976- mouse performance fixes by Greg Alexander and Robb Main
3977- NE2000 fixes by Frode Vatvedt Fjeld, ecelca@yahoo.com, Greg Alexander,
3978  and angelos@openbsd.org.
3979- fix bug [ #468340 ] pic:slave: OCW3 not implemented.  Some event handling
3980  code appeared in the master pic but not the slave pic.
3981- fix compile problems in SB16 code, related to fpos_t being treated as
3982  an integer.
3983- patch from Volker Ruppert <Volker.Ruppert@t-online.de> to fix
3984  midi output file so that winamp can play it.
3985- some cleanup of serial code by Todd Fries and Volker Ruppert, but it
3986  doesn't work yet.
3987
3988X Windows specific:
3989- commit patch from David Haslam <dch@sirius.clara.co.uk>
3990  [ #455763 ] Cursor trail with DOS Edit/Minix vi
3991- error for missing fonts now points to the documentation
3992- new option --enable-idle-hack, by Roland Mainz, which makes Bochs more
3993  friendly toward other processes when its CPU is idle.  Presently,
3994  this option is specific to X windows.
3995
3996Win32 specific:
3997- now Windows 95/98/ME can read the physical cdrom (Don Becker)
3998- The default configuration for Win32 VC++, given in .conf.win32-vcpp,
3999  now enables the NE2000 and renames all .cc files to .cpp.  This keeps VC++
4000  happy but may make it hard to use CVS.
4001- The default configuration for Cygwin, given in .conf.win32-cygwin, now
4002  enables cdrom and SB16.
4003- See "new docs" on the web site for compile instructions for VC++ and Cygwin.
4004- The sources include a VC++ workspace, in addition to the old "nmake"
4005  makefile.
4006- ethernet support (emulated NE2000 card), coded by Don Becker.  This
4007  implementation requires a library called WinPCap, which you can
4008  download from http://netgroup-serv.polito.it/winpcap.
4009- new utility called niclist.exe which lists the ID number of all your network
4010  cards (well probably you just have one).  The ID be used when setting up your
4011  .bochsrc.
4012- patch [ #466403 ] make text colors more accurate.  The author did not leave
4013  his/her name.
4014- fix GUI bug [ #452159 ] win32: mouse stuck if bochs win partly off screen
4015  Now we center the mouse periodically, whether or not the mouse has
4016  wandered outside of the window or not.
4017- event handler recognizes the extended keycode flag
4018- fixes for raw floppy and floppy disk images (Don Becker)
4019
4020Linux specific:
4021- Ethernet (emulated NE2000 card) now works in Linux!  Contributed by
4022  splite@purdue.edu.  This has been tested using host OS kernel 2.2.14, and
4023  works with telnet, ftp, irc, lynx, etc.  Because it is a packet filter
4024  solution, you aren't able to talk to the host machine, only to other
4025  machines on the network.
4026- The default configuration for Linux, given in .conf.linux, now enables
4027  the NE2000 model.
4028- RPM build process configures with --prefix=/usr so that everything is
4029  installed in /usr/bochs instead of /usr/local/bochs.
4030- DLX Linux disk image is now installed so that only root can write it, to
4031  avoid security problems.  When you run the bochs-dlx script, it creates a
4032  local copy in your home directory and then runs it.
4033- code that determines the capacity of a cdrom now works for both ATAPI
4034  and SCSI drives (splite@purdue.edu)
4035- applied patch from bochs@sigint.cs.purdue.edu.  The comments are:
4036  > The Linux 2.4.5 CD-ROM driver sends a READ_DISC_INFO command which caused
4037  > an "unrecognized ATAPI command" panic.  Looks like READ_DISC_INFO is only
4038  > recognized by CD-R and CD-RW drives, so I ignore it for now.
4039
4040Amiga MorphOS specific:
4041- Bochs now compiles and works on Amiga MorphOS.  Configure with
4042  --with-amigaos.  For AmigaOS only, see .bochsrc for use of fullscreeen and
4043  screenmode options.  The Amiga MorphsOS is written and maintained by
4044  Nicholai Benalal <nicholai@chello.se>.
4045- raw cdrom supported if you configure with --enable-cdrom
4046
4047BeOS specific:
4048- Bochs compiles and works on BeOS.  Configure with --with-beos.
4049  Bernd Thorsten Korz <bernd.korz@insidebeos.de> maintains the BeOS port.
4050- raw cdrom supported if you configure with --enable-cdrom
4051
4052MacOS X specific:
4053- Bochs now compiles and works on MacOS X.  Configure with --with-carbon.
4054  Emmanuel Mailliard <e.rsz@libertysurf.fr> ported the Macintosh code to the
4055  Carbon API.
4056- The MacOS X application is built using (gasp) mkdir, copy, and rez.
4057  Surely this is not the right way, but it works.
4058- raw cdrom supported if you configure with --enable-cdrom
4059
4060RFB mode:
4061- apply patch.rfb-mouse by MURANAKA Masaki (monaka@users.sf.net)
4062  see this source forge bug [ #457968 ] Strange mouse motion on RFB
4063- add a retry loop in RFB code, so that if port 5900 is not available
4064  it can try 5901, etc.
4065
4066Bochs Debugger:
4067- do a vga update whenever you print a debugger prompt.
4068- added debugger command "info fpu" that prints the FPU registers.  If you
4069  do "info all" you get cpu and fpu registers.
4070- added debugger command "info ne2k" which prints all the registers
4071  of the NE2000 model
4072- add ability to do register tracing and flag tracing (Dave Poirier).
4073  Try the trace-reg-on and trace-reg-off commands.
4074- instruction trace now includes time ticks
4075- fixed problems in which bochs compiled with debugger measured time
4076  differently from bochs compiled without debugger.  Also when instruction
4077  trace was enabled, breakpoints and control-C did not work.  Also,
4078  breakpoints at the beginning of an interrupt handler did not work.
4079
4080-------------------------------------------------------------------------
4081Changes in 1.2.1 (June 12, 2001):
4082- more work on makefile for building RPMs
4083- [ #432382 ] build debian packages patch
4084  add build/debian directory from Rob Lemley <rjlemley@calypsoblue.org>
4085  which allows us to make Debian packages!
4086- optimize for speed when simulating one processor.  Now 1-processor
4087  performance should be equivalent to 1.1.2.
4088- [ #425640 ] sb16 assumes fpos_t is long int
4089  This fixes compiles of iodev/sb16.cc on linux systems with newer libraries
4090  in which fpos_t is not an integer.
4091- [ #432488 ] SMP:assert "n_logfn < MAX_LOGFNS" fails
4092  increase MAX_LOGFNS since we ran out of them on an SMP simulation with
4093  4 processors
4094- changes to compile clean on cygwin:
4095  - don't use the WIN32 snprintf define for cygwin
4096  - add ssize_t definition for cygwin
4097  - only compile "struct timeval tval" if select is available
4098    on that platform.
4099- [ #432491 ] SMP: CPUID says no APIC feature
4100  clean up inconsistent use of BX_SUPPORT_APIC and BX_APIC_SUPPORT, which
4101  caused the CPUID to report no APIC was present
4102- [ #431025 ] --enable-external-device-models broken
4103  removed configure options for external-device-models and
4104  external-cpu-memory.  These don't work and aren't going to be fixed.
4105- [ #429448 ] configure: -lreadline when not there
4106  Now configure allows you to choose not to use readline, even if it's found
4107  on your system.
4108- [ #428915 ] apply extended keyboard patch
4109  extended keyboard patch by Dave Poirier <eks@void-core.2y.net>
4110- [ #428626 ] if no X11 found, configure&make fails
4111  Now configure halts if X windows is selected but no X libraries are found.
4112- updated rombios to version 1.13.  This fixes several problems:
4113  - [ #430472 ] DOS HIMEM "A20 line" error
4114    This problem was apparantly caused when Bryce added a function that prints
4115    the BIOS version, and he called it too early in the boot process.  Now the
4116    same function is called later, and it doesn't break the A20.
4117  - [ #431010 ] SMP structure overwritten in v1.2
4118    SMP structures were getting overwritten by BCC-generated data,
4119    preventing SMP operating systems from detecting that other processors
4120    were available.
4121  - [ #431016 ] bios: SMP struct has wrong entry count
4122    SMP structure had the wrong entry counts
4123- very minor doc updates (typos, replace broken link to mtools info)
4124- quit when the user clicks the power button, even if they have disabled
4125  panics.
4126- win32 now defaults to having mouse capture mode turned off.  For new users,
4127  it would be distressing for their mouse cursor to disappear until they
4128  pressed F12.
4129- [ #428222 ] vga font not installed
4130  added script called "install-x11-fonts" which should help people install
4131  the VGA font on X windows systems, if it isn't already there.
4132
4133-------------------------------------------------------------------------
4134Changes in 1.2 (June 3, 2001):
4135- [ #427259 ] rombios HALT calls don't print
4136  Fixed bios/rombios.c HALT macro so that it writes the line number of the
4137  panic to the PANIC_PORT (port 0x400) and then does NOT do a halt
4138  instruction.  Also changed iodev/unmapped.cc so that the line number written
4139  to PANIC_PORT is displayed as a BX_PANIC message.  Because the HALT
4140  macro now triggers the normal panic behavior, it can be controlled by
4141  the bochsrc.
4142- [ #429016 ] crash if no hard drive
4143  rombios used to call HALT macro if no hard drive was found. Now it only
4144  calls HALT if a hard drive has an illegal geometry.
4145- [ #425388 ] include source for simple disk img tool
4146  [ #428478 ] mkimg tool creates image 1 byte too big
4147  Added bximage tool, which makes empty floppy and hard disk images.
4148  It is now included in the top level Makefile, so it will get built
4149  by default on all platforms.
4150- [ #426036 ] eth_fbsd.cc compile problem on solaris26
4151  added configure test so that "configure --enable-ne2000" only
4152  includes the Berkeley Packet Filter code (eth_fbsd) if the header
4153  file <net/bpf.h> can be found.  If you don't have BPF the ne2000
4154  will not actually move packets, but at least it will compile clean now.
4155- [ #428214 ] 1.2.pre1 need documentation for binaries
4156  Write windows and linux specific documentation to be installed in
4157  binary releases.
4158- [ #429258 ] disable RESET for version 1.2
4159  Since soft reset was not completely working, I reverted the reset patch.
4160  Now it does panics on reset instead of trying to reboot, as the old
4161  bochs versions did.
4162- [ #428222 ] Should the linux RPM install vga font?
4163  now font/vga.pcf will be installed in the RPM package
4164- [ #429020 ] stop renaming the BIOS!!!
4165  new BIOS changes are now in BIOS-bochs-latest, instead of a BIOS
4166  whose name changes every time we change anything!  To help distinguish
4167  different BIOS versions, the BIOS now prints its RCS Id into the
4168  log file.
4169- [ #428625 ] compile problem if SHOW_IPS is on
4170  removed extra paren that broke SHOW_IPS
4171- [ #428219 ] PCI doesn't compile with SMF=1
4172- [ #429375 ] pthreads detection broken
4173- [ #429073 ] configure: if no X11, makes bad config
4174- [ #429229 ] install current .bochsrc in binary rels
4175- install Tim's man pages on linux RPM
4176- BIOS prints messages in log in case of boot failure
4177- rewrote instructions for compiling in win32 (win32.txt)
4178- fixed link in HTML changelog.html to point to the real sources on SF.
4179- added missing LOG_THIS definition to gui/nogui.cc and gui/rfb.cc
4180- added additional check for null pointer in debugger exit routine
4181- added diskd to .bochsrc
4182
4183-------------------------------------------------------------------------
4184Changes in version 1.2-pre1 (May 25, 2001):
4185- major cleanup of .bochsrc
4186- major cleanup of stderr output: prints bochs version information when
4187  starting, and at the end it tries to print the message that caused
4188  bochs to quit.
4189- two hard disk support (diskd).  At present, you cannot have two
4190  hard drives and a cdrom at the same time, because there is only
4191  one IDE controller with two channels.
4192- split hard disk support allows different partitions to be stored in
4193  different image files
4194- two new GUI choices: term mode and RFB mode.  Term is a text-only
4195  interface, and RFB creates a server that can be accessed using
4196  the AT&T VNC viewer.
4197- now Bochs can simulate an SMP machine, if you configure with
4198  --enable-processors=N.  Configuring more than one processor has
4199  a major performance impact, so the default is 1 processor.
4200  See SMP documentation for more details.
4201- to make SMP work, bx_mem and bx_cpu have been replaced with
4202  bx_mem_array[] and bx_cpu_array[].  The cpus are referenced through
4203  the BX_CPU(n) macro and memories through the BX_MEM(n).  Normal
4204  mode has one cpu and one memory, SMP mode has multiple cpu's and
4205  one memory, cosimulation mode has multiple cpus and multiple memories.
4206- use --enable-cpu-level=6 to make Bochs claim to be a Pentium Pro.
4207  The only feature that requires CPU level 6 is apic support.
4208- new logging system by Todd Fries, which has 4 levels of event
4209  severity (panic, error, info, debug).  There are new .bochsrc
4210  options that control what action to take when a
4211  panic/error/info/debug event occurs.
4212- now searches for .bochsrc, bochsrc, bochsrc.txt, and (on unix only)
4213  $HOME/.bochsrc.
4214- use GNU readline library if --enable-debugger is on, as long as readline
4215  can be found on the machine
4216- configure checks for existence strtoull and strtouq. if neither exists,
4217  Bochs uses its own implementation
4218- applied patches from Cliff Hones <cliff@aonix.co.uk> to fix up the
4219  rombios.  This includes many improvements, which you can list by
4220  doing "cvs log -r 1.6 bios/rombios.c" or looking at cvsweb.
4221- added suggested geometries of larger disks to the documentation
4222- this is the first release to have official binary packages for win32
4223  and Linux.  There is a new "make rpm" in the top-level Makefile which
4224  will create an RPM of the current bochs directory.  To use this,
4225  become root and type "configure; make rpm".
4226- applied some FreeBSD patches from Maxim Sobolev (cdrom and serial).
4227
4228-------------------------------------------------------------------------
4229Changes in version 1.1.2 (bugfix3, May 16, 2001):
4230- updated Elpin VGA BIOS to version 2.40, and changed pointer in .bochsrc
4231- fixed .conf.x86 script so that it uses c++ instead of egcs for C++ files
4232- now Makefile targets that recurse into subdirectories use double colons,
4233  so that it will always recurse into subdirectories.  Now a single make
4234  command should notice a modified source file in a subdir.
4235- fixed bug in bx_panic.  If BX_PANIC_IS_FATAL==0 and a (non-fatal) panic
4236  occurs, it used to call bx_atexit() and then return.  It should never
4237  call bx_atexit, which starts to shut down the simulator, unless it's
4238  really going to quit!
4239- support 2.88 MB floppy disks
4240- since dataseghack is checked in as non-executable, invoke it with
4241  "csh dataseghack"
4242- double fault patch from Thomas Petazzoni <thomas.petazzoni@ifrance.com>,
4243  sourceforge patch #423726.
4244- removed -fno-builtin from fpu makefiles
4245- redefine u_char, u_short, etc. in order to not conflict with system
4246  definitions of these same types.
4247- in cdrom.cc, remove the extern "C" { } structure around some of the
4248  header files.  This is no longer necessary.
4249- do not panic on hard disk command 0x1f2 (read sector count)
4250- in keyboard.cc:
4251  - apply Todd Fries' reset patch
4252  - recognize most of the "Grey" insert/delete/home/end/etc. keys the
4253    same as keypad keys.
4254  - removed panic on "kbd_ctrl_to_kbd(): got value of 0x??"
4255  - implement mouse command 0xf6 (set defaults)
4256- apply Suboner@aol.com's Xwindows timing patch from
4257  http://sourceforge.net/tracker/index.php?func=detail&aid=418730&group_id=12580&atid=312580
4258- remove all patches from patches subdir which have already been applied.
4259  The remaining ones are under consideration but not applied.
4260
4261-------------------------------------------------------------------------
4262Changes in version 1.1.1 (bugfix2, April 9, 2001):
4263- in soundwin.cc, arg 3 should be typecast to LPWAVEFORMATEX
4264- in fpu_entry.c, Bryce mistyped his own initials!
4265- in configure.in and configure, define good defaults for VC++
4266   #define BX_64BIT_CONSTANTS_USE_LL 0
4267   #define inline __inline
4268   #define BX_NO_EMPTY_STRUCTS 1
4269   #define BX_NO_ATTRIBUTES 1
4270   #define BX_HAVE_HASH_MAP 0
4271- in config.h.in, fixed typo in #error message
4272
4273-------------------------------------------------------------------------
4274Changes in version 1.1 (bugfix1, April 6, 2001):
4275
4276(FIXED, patch #414360: update copyrights)
4277update headers.  Change copyright to 2001, replace config.h.in header with
4278the standard mandrake header that every other file uses.
4279
4280(FIXED, patch #414356: inlines)
4281make macro to replace inline and static/extern keywords.  Then make
4282define the macro appropriately based on configure.
4283
4284(FIXED: patch #414234: macos-no-strdup)
4285--with-macos should force HAVE_STRDUP=0.
4286
4287(FIXED, patch #403027: Fix mouse bugs in Linux and BSD)
4288Linux and BSD (maybe others) cause panic in mouse code.
4289
4290(FIXED, patch #413851: const64bit patch)
4291VC++ does not allow "LL" after 64-bit constant.
4292
4293(FIXED, patch #413859: fabs symbol conflict)
4294fpu code contains fabs, which conflicts with math library fabs.
4295
4296(FIXED, patch #403004: Implement aborts on a few SET FEATURE commands...)
4297Implement aborts on a few SET FEATURE commands for ATA.
4298
4299(FIXED, patch #402991: Update to iodev/vga.cc to add 3c3h read support)
4300Implement VGA enable register, at 0x3c3.
4301
4302(FIXED, patch #403027: Fix mouse bugs in Linux and BSD)
4303Mouse panic in linux/BSD:
4304KBD: io write 0x64: command = 0xD3(write mouse outb)
4305
4306(FIXED, patch #414229: panic-is-fatal)
4307Allow user to decide if panic is fatal, or just a warning
4308
4309(FIXED, patch #414230: sun-cdrom)
4310Support Sun CDROM
4311
4312(FIXED, patch #413574: portable1)
4313there are cases where a pointer is cast to a 32-bit int,
4314then later cast to a pointer and dereferenced, which crashes any 64-bit
4315machine.
4316
4317(FIXED, patch #413574: portable1)
4318some machines have no snprintf or strtoull.  include a replacement function
4319when needed.
4320
4321(FIXED, patch #413574: portable1)
4322Some compilers don't allow "typedef struct { } foo;"
4323
4324(FIXED, patch #413574: portable1)
4325Some people don't have hash_map.h, used in dbg_main.cc.  Disable this code
4326if hash_map.h not found.
4327
4328(FIXED, patch #413574: portable1)
4329Some compilers can't handle labels at the end of a block, as in
4330   void main () { /*code*/ label: }
4331
4332(FIXED, patch #413574: portable1)
4333Most compilers can't handle __attribute__.  Use macro to define it away.
4334
4335(FIXED, patch #413574: portable1)
4336if --enable-debugger, turn on --enable-disasm too.
4337
4338(FIXED, patch #413574: portable1)
4339ome compilers can't handle any chars after an #endif
4340
4341(FIXED, patch #413574: portable1)
4342wrong type arg1 of bx_dbg_watch and bx_dbg_unwatch.  The code in
4343lexer.l was calling it with integers (not booleans)
4344
4345(FIXED, patch #413574: portable1)
4346in fpu code, "setcc" macro was implemented with braces inside parens,
4347which some compilers don't understand.
4348
4349(FIXED, patch #413574: portable1)
4350in fpu_entry.c, FPU_load_int32 was consistently called with arg1 of
4351type (s32 *), but should be (u32 *)
4352
4353(FIXED, patch #413574: portable1)
4354comment out sigcontext structure in fpu/stubs/asm/sigcontext.h because
4355it conflicted with sigcontext of other machines.  This struct was never
4356used by bochs anyway.
4357
4358(FIXED, patch #414046: portable2)
4359move definition of missing library functions into osdep.h and osdep.cc,
4360include contents of macutils*.
4361
4362(FIXED, patch #414061: win32-rawcd)
4363CDROM drive letter for WIN32 should not be hardcoded.
4364
4365(FIXED, patch #414060: win32-rawfloppy)
4366Bypass fstat when opening WIN32 raw floppy disk.
4367
4368(FIXED, patch #414226: pit-panic)
4369WinME install dies with panic:
4370bochs: panic, pit: outp(43h): comm Bh, mode 00, bcd 00 unhandled
4371I think I had a similar problem.  All three timers should support modes
43720, 2, and 3.  Other modes really aren't implemented.
4373