~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Bochs x86 Emulator
bochs/CHANGES

Version: ~ [ 2.3.5 ] ~ [ 2.3 ] ~

  1 Changes in 2.3.5 (September 16, 2007):
  2 
  3 Brief summary :
  4 - Critical problems fixed for x86-64 support in CPU and Bochs internal debugger
  5 - ACPI support
  6 - The release compiled with x86-64 and ACPI
  7 - Hard disk emulation supports ATA-6 (LBA48 addressing, UDMA modes)
  8 - Added emulation of Intel SSE4.1 instruction set
  9 
 10 Detailed change log :
 11 
 12 - CPU
 13   - Fixed critical bug with 0x90 opcode (NOP) handling in x86-64 mode
 14   - implied stack references where the stack address is not in canonical form 
 15     should causes a stack exception (#SS)
 16   - Added emulation of SSE4.1 instruction set (Stanislav)
 17   - Do not save and restore XMM8-XMM15 registers when not in x86-64 mode
 18   - Fixed zero upper 32-bit part of GPR in x86-64 mode
 19   - CMOV_GdEd should zero upper 32-bit part of GPR register even if the
 20     'cmov' condition was false !
 21   - Implemented CLFLUSH instruction, report non-zero cache size in CPUID
 22   - Fixed PUSHA/POPA instructions behavior in real mode
 23   - Fixed detection of inexact result by FPU
 24   - Fixed denormals-are-zero (DAZ) handling by SSE convert instructions
 25   - Implemented Misaligned Exception Mask support for SSE (MXCSR[17])
 26   - Implemented Alignment Check in the CPU and #AC exception, to enable
 27     use --enable-alignment-check configure option
 28 
 29 - General
 30   - 2nd simulation support in wxBochs now almost usable (simulation cleanup
 31     code added and memory leaks fixed)
 32 
 33 - Configure and compile
 34   - several fixes for MacOSX, OpenBSD and Solaris 10
 35   - enable save/restore feature by default for all configurations
 36   - reorganized SSE configure options to match Intel(R) Programming 
 37     Reference Manual, new option introduced for SSE extensions enabling.
 38     To enable Intel Core Duo 2 new instructions use 
 39         --enable-sse=3 --enable-sse-extension
 40     enabling of SSE4.1 (--enable-sse=4) will enable SSE3 extensions as well
 41   - removed old PIT, always use new PIT written by Greg Alexander,
 42     removed configure option --enable-new-pit
 43 
 44 - I/O devices (Volker)
 45   - Floppy
 46     - partial non-DMA mode support (patch by John Comeau)
 47   - Hard drive / cdrom
 48     - hard disk emulation now supports ATA-6 (LBA48 addressing, UDMA modes)
 49     - VMWare version 4 disk image support added (patch by Sharvil Nanavati)
 50   - PCI
 51     - initial support for the PIIX4 ACPI controller
 52   - Serial
 53     - added support for 3-button mouse with Mousesystems protocol
 54   - USB
 55     - experimental USB device change support added
 56     - rewrite of the existing USB devices code
 57     - new USB devices 'disk' and 'tablet' (ported from the Qemu project)
 58 
 59 - Bochs internal debugger
 60   - fixed broken debugger "rc file" option (execute debugger command from file)
 61   - implementation of a gui frontend ("windebug") for win32 started
 62   - gdbstub now accepts connection from any host
 63   - several documentation updates
 64   - a lot of disasm and internal debugger x86_64 support fixes
 65 
 66 - Configuration interface
 67   - fixes and improvements to the save state dialog handling
 68 
 69 - Display libraries
 70   - text mode color handling improved in some guis
 71   - win32 fullscreen mode (patch by John Comeau)
 72 
 73 - System BIOS (Volker)
 74   - 32-bit PM BIOS init code for ACPI, PCI, SMP and SMM (initial patches by
 75     Fabrice Bellard)
 76   - PCI BIOS function "find class code" implemented
 77 
 78 - SF patches applied
 79  [1791000] 15h 8600h is reading the wrong stack frame by Sebastian
 80  [1791016] rombios32.c, ram_probe(), BX_INFO missing value by Sebastian
 81  [1786429] typo in bochsrc.5 by Sebastian
 82  [1785204] Extend acpi_build_table_header to accept a revision number by Sebastian
 83  [1766536] Partial Patch for Bug Report 1549873 by Ben Lunt
 84  [1763578] ACPI Table Revision 0 -> 1  
 85  [1642490] implement alignment check and #AC exception by Stanislav Shwartsman
 86  [1695652] [PATCH] .pcap pktlog and vnet PXE boot by Duane Voth
 87  [1741153] Add expansion-ROM boot support to the ROMBIOS
 88  [1734159] Implemented INT15h, fn 0xC2 (mouse), subfn 3, set resolution
 89  [1712970] bios_printf %s fix  
 90  [1573297] PUSHA/POPA real mode fix by Stanislav Shwartsman
 91  [1641816] partial support for non-DMA access to floppy by John Comeau 
 92  [1624032] shows where write outside of memory occurred by John Comeau
 93  [1607793] allow fullscreen when app requests it by John Comeau
 94  [1603013] Bugfix for major NOP problem on x64 by mvysin
 95  [1600178] Make tap and tuntap compile on OpenBSD by Jonathan Gray
 96  [1149659] improve gdbstub network efficiency by Avi Kivity 
 97  [1554502] Trivial FPU exception handling fix  
 98 
 99 - these S.F. bugs were closed
100  [1316008] Double faults when it shouldn't - gcc 4.0.2
101  [1787289] broken ABI for redolog class when enable-compressed-hd
102  [1787500] tftp_send_optack not 64bit clean
103  [1264540] Security issue with Bochs website  
104  [1767217] Debugger Faults including ud2
105  [1729822] Various security issues in io device emulation
106  [1675202] mptable hosed (bad entry count in header)
107  [1197141] 'make install' installs to bad location
108  [1157623] x86Solaris10 cannot recoginize ACPI RSD PTR
109  [1768254] large HDD in Bochs/bximage
110  [1496157] Windows Vista Beta2 dosn't boot
111  [1755915] Illegal Hard Disk Signature Output
112  [1717790] info gdt and info idt scrolls away, too long result  
113  [1726640] Debugger displays incorrect segment for mov instruction
114  [1719156] Typo in misc_mem.cpp
115  [1715270] Debugger broken in/beyond 2.3
116  [1689107] v8086 mode priviledge check failed
117  [1704484] A few checks when CPU_LEVEL < 4  
118  [1678395] Problem with zero sector...
119   [876990] SA-RTL OS fails on PIC configuration
120  [1673582] save/restore didn't restore simulation correctly
121  [1586662] EDD int 13h bug, modify eax
122   [666618] POP_A Panic in DOS EMU
123  [1001485] panic: not enough bytes on stack
124  [1667336] delay times an order of magnitude slow  
125  [1665601] crash disassembling bootcode
126  [1657065] CVS sources won't compile
127  [1653805] bochs's gdbstub uses incorrect protocol
128  [1640737] ASM sti command frezzes guest OS
129  [1636439] latest CVS sources don't compile under Cygwin
130  [1634357] disasm incorrect (no sign ext) displacement in 64-bit mode
131  [1376453] pcidev segfaults bochs
132  [1180890] IOAPIC in BOCHS - WinXP 64 in MP version
133  [1597528] 2.3 fails to compile on amd64
134  [1526255] FLD1 broken when compaling with gcc 4.0.x
135  [1597451] eth_fbsd is broken under FreeBSD
136  [1571949] Bochs will not compile under Solaris
137  [1500216] Bochs fails to boot BeOs CD
138  [1458339] bochs-2.2.6 WinXP Binary ACPI error installing FreeBSD 6.0
139  [1440011] patches needed for FreeBSD 6.0 to compile Bochs
140   [431674] some devices don't have a prefix
141   [458150] QNX demo disk crashes with new pit
142   [818322] Bochs 2.1 cvs: OS/2 - read verify on non disk
143   [906840] KBD: bogus scan codes generated in set 3
144  [1005053] No keyboard codes translation
145  [1109374] Problem with Scancodeset 2
146  [1572345] Bochs won't continue
147  [1568153] Bochs looks for (and loads?) unspecified display libraries
148  [1563462] Errors in /iodev/harddrv.h
149  [1562172] TLB_init() fails to initialize priv_check array if USE_TLB 0
150  [1385303] debugger crashes after panic
151  [1438227] crc.cpp missing in bx_debug version 2.2.6
152  [1501825] debugger crashes on to high input
153  [1420959] Memory leak + buffer overflow in Bochs debugger
154  [1553289] Error in Dis-assembler
155   [542464] I cannot use FLAT
156  [1548270] Bochs won't die with its pseudo terminal
157  [1545588] roundAndPackFloatx80 does not detect round up correctly  
158 
159 -------------------------------------------------------------------------
160 Changes in 2.3 (August 27, 2006):
161 
162 Brief summary :
163 - limited save/restore support added (config + log options, hardware state)
164 - configuration parameter handling rewritten to a parameter tree
165 - lots of cpu and internal debugger fixes
166 - hard disk geometry autodetection now supported by most of the image types
167 - hard disk emulation now supports ATA-3 (multiple sector transfers)
168 - VBE memory size increased to 8MB and several VGA/VBE fixes
169 - updated LGPL'd VGABIOS to version 0.6a
170 
171 Detailed change log :
172 
173 - CPU and internal debugger fixes
174   - Fixed bug in FSTENV instruction (Stanislav Shwartsman)
175   - Recognize #XF exception (19) when SSE is enabled
176   - Fixed bug in PSRAW/PSRAD MMX and SSE instructions
177   - Save and restore RIP/RSP only for FAULT-type exceptions, not for traps
178   - Correctly decode, disassemble and execute multi-byte NOP '0F F1' opcode
179   - Raise A20 line after system reset (Stanislav Shwartsman)
180   - Implemented SMI and NMI delivery (APIC) and handling in CPU (Stanislav)
181   - Experimental implementation of System Management Mode (Stanislav)
182   - Added emulation of SSE3E instructions (Stanislav Shwarstman)
183   - Save and restore FPU opcode, FIP and FDP in FXSAVE/FRSTOR instructions
184   - Fixed bug in MOVD_EdVd opcode (always generated #UD exception)
185   - Fixed critical issue, Bochs was not supporting > 16 bit LDT.LIMIT values
186   - Many fixes in Bochs debugger and disassembler
187 
188 - CPU x86-64 fixes
189   - Fixed SYSRET instruction implementation
190   - Fixed bug in CALL/JMP far through 64-bit callgate in x86-64 mode
191   - Correctly decode, disassemble and execute 'XCHG R8, rAX' instruction
192   - Correctly decode and execute 'BSWAP R8-R15' instructions
193   - Fixed ENTER and LEAVE instructions in x86-64 mode (Stanislav)
194   - Fixed CR4 exception condition (No Name)
195   - Fixed x86 debugger to support x86-64 mode (Stanislav)
196 
197 - APIC and SMP
198   - Support for Dual Core and Intel(R) HyperThreading Technology. Now you
199     could choose amount of cores per processor and amount of HT threads per
200     core from .bochsrc for SMP simulation (Stanislav Shwartsman)
201   - Allow to control SMP quantum value through .bochsrc CPU
202     option parameter. Previous Bochs versions used hardcoded quantum=5
203     value.
204   - Fixed interrupt priority bug in service_local_apic()
205   - Fixed again reading of APIC IRR/ISR/TMR registers. Finally it becomes
206     fully correct :-)
207 
208 - Configure and compile 
209   - Moved configure time --enable-reset-on-triple-fault option to runtime, 
210     the 'cpu' option in .bochsrc is extended and the old configure option
211     is deprecated (Stanislav Shwartsman)
212   - Removed --enable-pni configure option, to compile with PNI use 
213     --enable-sse=3 instead (Stanislav Shwartsman)
214   - enable SEP (SYSENTER/SYSEXIT) support by default for Penitum II+
215     processor emulation (i.e. if cpu-level >= 6 and MMX is enabled)
216 
217 - general
218   - Limited save/restore support added. The state of CPU, memory and all
219     devices can be saved now (state of harddisk images not handled yet).
220   - Fixed several memory leaks
221 
222 - configuration interface
223   - Configuration parameter handling rewritten to a parameter tree. This is
224     required for dynamic menus/dialogs, user-defined options and save/restore.
225   - Support for user-defined bochsrc options added
226   - help support at the parameter prompt in textconfig added
227 
228 - I/O devices (Volker)
229   - Floppy
230     - partial sector transfers fixed
231   - Hard drive / cdrom
232     - several fixes to the IDE register behaviour (e.g. in case of a channel
233       with only one drive connected)
234     - fixed data alignment of 'growing' hard drive images (sharing images
235       between Windows and Linux now possible)
236     - disk geometry autodetection now supported by most of the image types
237       (unsupported: external, dll and compressed modes)
238     - multi sector read/write commands implemented
239     - hard disk now reporting ATA-3 supported
240     - ATAPI 'inquiry' now returns a unique device name
241   - Keyboard
242     - reset sent to keyboard has no effect on the 8042 (scancode translation)
243   - PCI
244     - forward PIRQ register changes to the I/O APIC (if present)
245     - attempt to fix and update the emulation part of 'pcidev' (untested)
246   - VGA
247     - VBE memory size increased to 8MB and several VBE fixes
248     - VGA memory read access fixed (bit plane access and read mode)
249     - VGA memory is now a part of the common video memory
250 
251 - System BIOS (Volker)
252   - enable interrupts before executing INT 19h
253   - fixed ATA device detection in case of one drive only connected to controller
254   - improved INT 15h function AX=E820h
255   - real mode PCI BIOS now returns IRQ routing information (function 0Eh)
256   - keyboard LED flags handling fixed and improved
257   - fixed handling of extended keys in INT 09h
258   - Updated LGPL'd VGABIOS to version 0.6a
259 
260 - SF patches applied
261  [1340111] fixes and updates to usb support by Ben Lunt
262  [1539420] minor addition to pci_usb code by Ben Lunt
263  [1455958] call/jmp through call gate in 64-bit mode
264  [1433107] PATCH: fix compile with wxwindows 2.6 (unicode / utf8) by jwrdegoede
265  [1386671] Combined dual core and hyper-threading patch
266 
267 - these S.F. bugs were closed
268   [833927] TTD: System Error TNT.40025: Unexpected processor exception
269   [789230] Sending code that shows lock up when setting idt
270   [909670] Problems with Symantec Ghost
271  [1540241] include missing in osdep.cc
272  [1539373] Incorrect disasm for "mov moffset,bla" in 64bit
273  [1538419] incorrect disassembly of [rip+disp] with rex.b
274  [1535432] shift+cursor key maps to a digit
275  [1504891] Knoopix 5.0.1 error
276  [1424355] bochs-2.2.6 ata failure in windoze 98se
277  [1533979] wrong disassembly of IN instruction
278   [620059] paste won't stop
279  [1164904] status bar doesn't show num/caps/scroll lock status
280  [1061720] ATA Support level for HD
281  [1522196] Broken CHANGES link in main page
282  [1438415] crash if screen scrolled downwards
283   [778441] Shouldn't interrupts be enable after BIOS?
284  [1514949] I got a problem with the 8253 timer
285  [1513544] disasm of 0xec (in AL,DX) returns ilen of 2 instead of 1
286  [1508947] APIC interrupt priority checking and interrupt delivery
287   [766286] Debugger halts after any GPF exception
288   [639143] va_list is not a pointer on linuxppc
289  [1501815] debugger examines memory over page-boundary wrong
290  [1503978] movsb/w/d doesn't work when direction is stored
291  [1499405] WinPCap has changed URL hosting
292  [1498519] APIC IRR bits not set while interrupts disabled
293  [1498193] Bochs segfaults on LTR instruction
294   [787140] Guest2HostTLB optimization bug
295  [1492070] instrument stop
296  [1487772] No SEP on P4
297  [1488335] Growing hard disk images severe interoperability errors!
298  [1076312] Shadow RAM and TLB
299  [1282249] The real i440FX chipset Award bios hangs
300  [1479763] mistake "mov ax,[es:di]" for "mov ax,[ds:di]"
301  [1453575] Misconfigured floppy DMA transfers do not terminate.
302  [1460068] Incorrect handling for the Options Menu Item
303   [910203] bochs-2.1.1 wx.lo failed
304  [1438654] PANIC when trying to run install-amd64-minimal-2005.0.iso
305  [1458320] compile hdimage.h fails
306  [1455880] bochs-2.2.6,2: make error on FreeBSD
307   [696890] Network wouldn't run under W2k hosting MSDOS
308   [673391] SMP timer problems
309  [1291059] wxWindows GUI on non-windows/configure issue
310  [1356450] bochs 2.2.1 errors-omittions
311  [1178017] Win98 guest cannot receive network packets from host
312  [1076315] a20_mask after restarting
313  [1436323] real hw does not panic when bad Ib in CMPSS_VssWssIb
314  [1435269] cdrom_amigaos is not compilable
315  [1433314] disasm issues
316  [1170614] relative jumps/calls wrong in debugger
317   [758121] user might get confused when interrupt handler invoked
318  [1170622] You cannot toggle OFF "show" flags
319  [1406387] JMP instruction should display absolute address
320  [1428813] PANIC: ROM address space out of range
321  [1426288] DR-DOSs EMM386 problem
322  [1412036] Bochs cannot recognize PCI NIC correctly
323   [435115] dbg: modebp broken and no docs
324  [1419366] disasm cs:eip does not work anymore
325  [1419393] SSE's #XF exception -> "exception(19): bad vector"
326  [1419429] disassembly of "260f6f00" show DS: instead of ES: prefix
327  [1417583] Interrupt behaviour changed from 2.2.1 to 2.2.5
328  [1418281] 'push' (6A) incorrectly disassembled
329  [1417791] FLDENV generating exception when real hw does not.
330  [1264583] OS/2 1.1 doesn't run  
331  
332 -------------------------------------------------------------------------
333 Changes in 2.2.6 (January 29, 2006):
334 
335 - First major SMP release ! 
336   - several APIC and I/O APIC fixes make SMP Bochs booting Windows NT4.0 
337     or Knoppix 4.0.2 without noapic kernel option in SMP configuration.
338   - critical APIC timer bug fixed 
339   - obsolete SMP BIOS images removed (MP tables created dynamicaly) 
340   - determine number of processors in SMP configuration through .bochsrc 
341     new .bochsrc option 'CPU' allows to choose number of processors to emulate
342   - new configure option --enable-smp to configure Bochs for SMP support, 
343     the old --enable-processors=N option is deprecated 
344 - CPU and internal debugger fixes 
345   - enabled #PCE bit in CR4 register, previosly setting of this bit 
346     generated #GP(0) fault 
347   - enabled LAHF/SAHF instructions in x86-64 mode 
348   - fixed bug in PMULUDQ SSE2 instruction 
349   - fixes in Bochs debugger 
350 - Configure and compile 
351   - enable VME (virtual 8086 mode extensions) by default if cpu-level >= 5 
352   - enable Bochs disassembler by default for all configurations 
353   - win32 installer script improvements 
354   - ips parameter moved to new 'CPU' option 
355   - show IPS value in status bar if BX_SHOW_IPS is enabled 
356 - Other 
357   - several fixes in the hard drive, keyboard, timer, usb and vga code 
358   - new user button shortcut "bksl" (backslash) 
359   - updated Bochs instrumentation examples 
360   - user and development documentation improved 
361 
362 -------------------------------------------------------------------------
363 Changes in 2.2.5 (December 30, 2005):
364 
365 Brief summary :
366 - added virtual 8086 mode extensions (VME) implementation
367 - several fixes/improvements in x86-64 emulation, debugger and disassembler
368 - new serial mode 'socket' connects a network socket
369 - IDE busmaster DMA feature for harddisks and cdroms completed and enabled
370 - many improvements in Bochs emulated I/O devices (e.g. floppy, cdrom)
371 - Updated LGPL'd VGABIOS to version 0.5d
372 
373 Detailed change log :
374 
375 - CPU
376   - fixed XMM registers restore in FXRSTOR instruction (Andrej Palkovsky)
377   - print registers dump to the log if tripple fault occured
378   - fixed PANIC in LTR instruction (Stanislav)
379   - added virtual 8086 mode extensions (VME) implementation, to enable
380     configure with --enable-vme (Stanislav)
381   - flush caches and TLBs when executing WBINVD and INVD instructions
382   - do not modify segment limit and AR bytes when modifying segment
383     register in real mode (support for unreal mode)
384   - fixed init/reset values for LDTR and TR registers
385   - reimplemented hardware task switching mechanism (Stanislav)
386   - generate #GP(0) when fetching instruction cross segment boundary
387 
388 - CPU (x86-64) (Stanislav Shwartsman)
389   - implemented call_far/ret_far/jmp_far instructions in long mode
390   - fixed IRET operation in long mode
391   - fixed bug prevented setting of NXE/FFXSR bits in MSR.EFER register
392   - implemented RDTSCP instruction
393   - do not check CS.limit when prefetching instructions in long mode
394   - fixed masked write instructions (MASKMOVQ/MASKMOVDQU) in long mode
395   - fetchdecode fixes for x86-64
396 
397 - APIC
398   - Fixed bug in changing local APIC id (Stanislav)
399   - Fixed reading of IRR/ISR/TMR registers (patch by wmrieker)
400   - Implemented spurious interrupt register (Stanislav, patch by wmrieker)
401   - Fixed interrupt delivery bug (anonymous #SF patch)
402   - Correctly implemented ESR APIC register (Stanislav)
403 
404 - Bochs debugger
405   - Fixed bug in bochs debugger caused breakpoints doesn't fire sometimes
406     (Alexander Krisak)
407   - watchpoints in device memory fixed (Nickolai Zeldovich)
408   - new debug interface to access Bochs CPU general purpose registers
409     with support for x86-64
410 
411 - Disassembler (Stanislav Shwartsman)
412   - Fixed disassembly for FCOMI/FUCOMI instructions
413   - Full x86-64 support in disassembler. The disassembler module extended
414     to support x86-64 extensions. Still limited by Bochs debugger which 
415     is not supporting x86-64 at all ;(
416 
417 - I/O devices (Volker)
418   - general
419     - memory management prepared for large BIOS images (up to 512k)
420     - slowdown timer sleep rate fixed (now using 1 msec on all platforms)
421     - some device specific parameter handlers moved into the device code
422   - serial
423     - new serial mode 'socket' connects a network socket (#SF patch by Andrew Backer)
424   - hard drive / cdrom
425     - assign a unique serial number to each drive (fixes harddrive detection 
426       problems with Linux kernels 2.6.x: "ignoring undecoded slave")
427     - geometry autodetection for 'flat' hard disk images added. Works with 
428       images created with bximage (heads = 16, sectors per track = 63)
429     - ATAPI command 'read cd' implemented, some other commands improved
430     - cdrom read block function now tries up to 3 times before giving up
431     - emulation of raw cdrom reads added, some other lowlevel cdrom fixes
432     - IDE busmaster DMA feature for harddisks and cdroms completed and enabled
433     - disk image size limit changed from 32 to 127 GB
434     - split ATA/ATAPI emulation code and image handling code
435   - floppy
436     - fixes for OS/2 (patch by Robin Kay)
437     - disk change line behaviour fixed (initial patch by Ben Lunt)
438     - end-of-track (EOT) condition handling implemented
439     - more accurate timing for read/write data and format track commands using
440       a motor speed of 300 RPM
441     - timing of recalibrate and seek commands now depends on the step rate,
442       date rate and the steps to do
443     - floppy controller type changed to 82077AA
444   - cmos
445     - RTC 12-hour and binary mode implemented
446     - number of CMOS registers changed from 64 to 128
447     - bochsrc option 'cmosimage' improved
448     - save cmos image on exit if enabled
449   - speaker
450     - simple speaker support for OS X added (patch by brianonn@telus.net)
451   - pci
452     - BeOS boot failure fix in the PCI IDE code
453     - don't register i/o and memory regions during PCI probe
454   - vga
455     - memory allocation for vga extensions fixed
456   - usb
457     - some bugfixes by Ben Lunt (mouse and keypad are usable now)
458   - networking modules
459     - VDE networking module now enabled on Linux
460 
461 - display libraries
462   - general
463     - new syntax for the userbutton shortcut string and more keys supported
464   - win32
465     - fixed keycode generation for right alt/ctrl/shift keys
466     - runtime dialog is now a property sheet
467   - x11
468     - simple dialog boxes for the "ask" and "user shortcut" feature implemented
469     - Slovenian keymap added (contributed by Mitja Ursic)
470 
471 - configuration interface
472   - ask dialog is now enabled by default for win32, wx and x display libraries
473   - bochsrc option floppy_command_delay is obsolete now (floppy timing now based
474     on hardware specs)
475   - floppy image size detection now available in the whole config interface
476   - some device specific parameter handlers moved into the device code
477   - calculate BIOS ROM start address from image if not specified
478 
479 - System BIOS (Volker)
480   - PCI i/o and memory base address initialization added
481   - several keyboard interrupt handler fixes (e.g. patch by japheth)
482   - several floppy fixes (e.g. OS/2 works with patch by Robin Kay)
483   - some more APM functions added
484   - Updated LGPL'd VGABIOS to version 0.5d
485   - generate SMP specific tables dynamicly by the Bochs memory init code
486 
487 - SF patches applied
488  [1389776] Disk sizes over 64 Gbytes by Andrzej Zaborowski
489  [1359162] disasm support for x86-64 by Stanislav Shwartsman
490   [857235] task priority and other APIC bugs, etc by wmrieker
491  [1359011] build breaks for 386 + debugger + disasm by shirokuma
492  [1352761] Infinite loop when trying to debug a triple exception
493  [1311170] small APIC bug fix (interrupt sent to the wrong CPU)
494  [1309763] Watchpoints don't work in device memory by Nickolai Zeldovich
495  [1294930] change line status on floppy by Ben Lunt
496  [1282033] SSE FXRESTORE not working correctly by Ondrej Palkovsky
497   [816979] wget generalizations by Lyndon Nerenberg
498  [1214886] No more pageWriteStamp / unified icache by H. Johansson
499  [1107945] com->socket redirection support by Andrew Backer
500 
501 - these S.F. bugs were closed
502   [669180] win95 install : unknown SET FEATURES subcommand 0x03
503  [1346692] bochs 2.2.1 VGA BIOS error
504  [1354963] floppy in KolibriOS
505  [1378204] error: bochs-2.2.1, --enable-sb16, --disable-gameport
506  [1368412] VDE problems in BOCHS
507   [533446] CPU and APIC devices appear twice
508  [1000796] bximage fails to create image of specified size
509  [1170793] Quarterdeck QEMM doesn't work
510   [923704] Multiple opcode prefixes don't reflect Trap 13
511  [1166392] DocBook/documentation issues
512  [1368239] broken grater than 4GB size of sparse type hd image
513  [1365830] i386 compile breaks on paging
514   [427550] Incomplete IRETD implementation
515  [1215081] MSVC workspace STILL not fixed
516   [736279] Jump to Task
517  [1356488] FD change fail & occur error
518   [957615] [CPU ] prefetch: RIP > CS.limit
519  [1353866] not booting linux-2.6.14
520  [1351667] load32bitOSImage does not work with --enable-x86-debugger
521  [1217476] Incorrect (?) handling of segment registers in real mode
522  [1184711] OS2 DOS crash [2.2.pre2]
523   [624330] support for disks > 32GiB
524  [1348368] bochs 2.2.1 bximage error
525  [1342081] Configuration Menu option failed
526  [1138616] OS/2 Warp 4 hangs when booting
527  [1049840] mouse and video conflict
528  [1164570] Unable to perform Fedora Core 4 test 1 installation
529  [1183201] Windows 2000 (MSDN build 2150?) does not completely install
530  [1194284] Can't boot from CD-ROM (Windows NT)
531   [962969] Windows NT crashes while trying to intall them.
532  [1054594] WinXP install halts (redo)
533  [1153107] Windows XP fails with BSOD on 'vga'
534   [938518] Win XP installation fails
535   [645420] getHostMemAddr vetoed direct read
536  [1179985] MS XENIX: >>PANIC<< VGABIOS panic at vgabios.c, line 0
537  [1329600] WBINVD and INVD should flush caches and TLB
538   [638924] eliminate BX_USE_CONFIG_INTERFACE
539  [1048711] Funny behaviour with CTRL
540  [1288450] keyboard BIOS error
541  [1310706] Keyboard - about key SHIFT
542  [1295981] Ubuntu 5.04 Live-CD won't boot in Bochs
543   [879047] APIC timer behavior different before reset and after
544  [1188506] I still can't install the german Windows XP!
545  [1301847] Windows XP dosn't boot - FXRSTOR problem ?
546   [661259] does not boot QNX under WinX
547   [924412] Keyboard lock states all whacked
548   [681127] MIPSpro compiler (IRIX) is allergic to ^M
549  [1285923] BIOS keyboard handler
550   [516639] ATA controller revisited...
551   [657918] does not boot BeOS under WinX
552   [649245] BeOS CD locks halfway on boot
553  [1094385] Attachment for bug 1090339 (beos failure)
554  [1183196] BeOS 4.5 developer CD does not install
555  [1090339] BeOS fails to boot
556   [639484] panics when int 13 is called
557   [711701] divide by zero
558   [704295] ATAPI/BIOS call missing
559   [682856] hard drive problems
560   [627691] Cursor keys problem
561   [588011] keyboard not working  
562   [542260] os/2 warp crashes with floppy handling
563  [1273878] SB16 doesn't work in pure DOS
564   [542254] OS/2 FDC driver dies
565  [1099610] Windows 98 SE Does not install
566   [875479] cr3 problem on task switch
567   [731423] NE2000 causing PANIC on Win2K detection
568  [1156155] bochs fails to boot plan9 iso
569  [1251979] --enable-cpu-level=3 should assume --without-fpu
570  [1257538] Interupt 15h 83h - set wait event interval
571   [658396] Panic for DR DOS emm386
572   [679339] /? doesn't divulge Bochs command-line syntax
573  [1167016] call/jump/return_protected doesn't support x86-64
574  [1252432] Mac OS X compile bug
575   [881442] Bochs 2.1 PANIC when loading DOS Turbo Pascal protected mode
576  [1249324] Boch2.2.1 Buffer Overfollow in void bx_local_apic_c::init ()
577  [1197144] 'make install' has dependency on wget
578  [1079595] LTR:386TSS: loading tr.limit < 103
579  [1244070] Compilation Error in gui/rfb.cc
580   [761707] CPU error when trying to start Privateer
581   [517281] Crash running Privateer in DOS...  
582  
583 -------------------------------------------------------------------------
584 Changes in 2.2.1 (July 8, 2005):
585 
586 - Fixed several compilation warnings and errors for different platforms (Volker)
587 - Fixed FPU tag word restore in FXRSTOR instruction (Stanislav)
588 - Added missing scancodes for F11 and F12 to BIOS translation table (Volker)
589 - Bochs disassembler bugfixes (h.johansson)
590 - About 5% emulation speed improvement (h.johansson)
591 - Handle writing of zero to APIC timer initial count register (Stanislav)
592 - Enable Idle-Hack for 'TERM' GUI (h.johansson)
593 - Reduced overhead of BX_SHOW_IPS option to minimum. Now every simulation 
594   could run with --enable-show-ips without significant performance 
595   penalty. (Stanislav)
596 - Fixed pcipnic register access (Volker)
597 - Limited write support for TFTP server in 'vnet' networking module added (Volker)
598 - Changed some timing defaults to more useful values (Volker)
599 - WinXP/2003 style common controls now supported (Vitaly Vorobyov)
600 - Updated LGPL'd VGABIOS to version 0.5c (Volker)
601 - Added new BX_INSTR_HLT callback to instrumentation (Stanislav)
602 
603 -------------------------------------------------------------------------
604 Changes in 2.2 (May 28, 2005):
605 
606 Brief summary :
607 - New floating point emulator based on SoftFloat floating point 
608   emulation library.
609 - improved x86-64 emulation
610 - Cirrus SVGA card emulation added
611 - status bar with indicators for keyboard, floppy, cdrom and disk (gui dependant)
612 - many improvements in Bochs emulated I/O devices (e.g. PCI subsystem)
613 
614 Detailed change log :
615 
616 - CPU
617   - fixes for booting OS/2 by Dmitri Froloff
618     - fixed v8086 priveleged instruction processing bug (was also reported
619       by LightCone Aug 7 2003)
620     - exception process bug (was reported by Diego Henriquez Sat Nov 15
621       01:16:51 CET 2003)
622     - segment validation with IRET instruction
623     - CS segment not present exception processing with IRET
624   - several fixes by Kevin Lawton
625   - add MSVC host asm instructions (patch by suzu)
626   - fixed bug in HADDPD/HSUBPD (SSE3) instructions
627   - fixed bug in float to integer SSE/SSE2 convert instructions
628   - fixed BCD instructions implementation
629   - execution speed improvements (sshwarts and psychosmur)
630   - fix MSR_APICBASE base address (Kangmo Kim, Christian Neubert)
631   - change BX_PANIC messages to BX_INFO when behaviour exactly 
632     matches Intel docs
633   - EIP > CS.limit case should always cause #GP(0), even in real mode.
634     Fixed all jump, call and ret instructions for 16/32 modes
635   - fixed using invalid segment register for MOV instruction (h.johansson)
636   - fixed ET bit mismatch between CR0 and SMSW instruction
637   - fixed possible simulator #DIVZERO fault when executing IDIV instruction
638   - fixed undocumented flags handling for BTS, BTR, SHR, SHLD, MUL and IMUL
639     instructions (Stanislav Shwartsman)
640   - added missed #GP(0) exception when loading incorrect flags combination 
641     to CR0 (Stanislav Shwartsman)
642   - in case of --enable-ignore-bad-msr enabled read ignored MSRs as zero
643   - enabled #DE, #TSD and #MCE bits in CR4 register, previosly setting
644     of one of these bits generated #GP(0) (Stanislav, Volker Ruppert)
645   - exceeding the instruction length limit of 15 bytes (this only can
646     occur when redundant prefixes are placed before an instruction)
647     generate #GP(0) (Stanislav Shwartsman)
648   - corrected PAE functionality
649 
650 - CPU (x86-64)
651   - fetchdecode fixes for x86-64 and 3DNow! (Stanislav)
652   - fixed CF flag handling for SHL instruction in x86-64 mode (Stanislav)
653   - implemented CR8 register (aliased to APIC.TPR[7:4]) (Stanislav)
654   - implemented NXE bit (No-Execute page protection) support (Stanislav)
655   - STOSQ instruction emulation fixed (Avi Kivity)
656   - allow null SS selector for MOV SS, POP SS, and LSS instructions 
657     in long mode (Avi Kivity)
658   - ignore segment bases for all segments (except FS and GS) in long
659     mode (Avi Kivity)
660   - allow SYSENTER/SYSEXIT instructions together with x86-64 (Stanislav)
661   - canonical address checking for RIP (Stanislav)
662 
663 - FPU (Stanislav Shwartsman)
664   - totally rewritten all FPU code based on softfloat library 
665   - significantly improved accuracy of all floating point
666     instructions.
667   - implemented all missed P6 and PNI floating point instructions.
668   - hundreds of bug fixes in FPU code.
669 
670   TODO:
671     ! Unmasked underflow/overflow should correct the result 
672       by magic number for all operations, including float32 
673       and float64.
674 
675 - APIC (Zwane Mwaikambo)
676   - APIC arbitration
677   - Processor priority
678   - Various interrupt delivery fixes
679   - Focus processor checking
680   - ExtINT delivery
681 
682 - Disassembler
683   - fixed MOV opcode 0x88, had exchanged the operands (h.johansson)
684   - fixed MOV opcode 0xA3, had wrong operand size (h.johansson)
685   - fixed BOUND opcode 0x62 (Stanislav)
686   - fixed CALLW opcode 0xFF /3 and JMPW opcode 0xFF /5 (Stanislav)
687   - fixed INS opcode 0x6D, had wrong operand size (Stanislav)
688   - fixed disassembly for repeatable instructions (Stanislav)
689   - fixed sign-extended immediate opcodes (Stanislav)
690   - fixed MOVSS/MOVSD instructions opcode names (Stanislav)
691   - fixed NEG instruction opcode name (Stanislav)
692   - fixed CMPXCHG8B instruction, had wrong operand size (Stanislav)
693   - fixed floating point instructions operands (Stanislav)
694   - experimental support of AT&T syntax in disassembler (Stanislav)
695 
696 - I/O devices
697   - general
698     - handle cpu reset through port 0x92
699     - new memory handler API for PCI i/o and memory handling (Frank Cornelis)
700   - speaker emulation for Linux (David N. Welton) and Win32 (Volker Ruppert) added
701   - pci
702     - PCI slot configuration added for 5 slots (Volker)
703     - PCI irq routing, irq sharing and level sensitive irq mode implemented
704     - ne2k device appears as a Realtec 8029 NIC if connected to a PCI slot
705     - PCI IDE controller dummy device added
706     - PCI host device mapping for Linux (Frank Cornelis)
707     - PCI Pseudo-NIC emulation (Michael Brown)
708   - serial
709     - multiple serial port support added (4 ports now available)
710     - partial raw serial support on win32 (transmit data)
711     - serial port i/o mode option added (modes: null, file, term, raw, mouse)
712   - parallel
713     - multiple parallel port support added (2 ports now available)
714   - mouse
715     - serial mouse support (Volker)
716     - PS/2 and serial wheel mouse support (Ben Lunt)
717   - usb
718     - USB mouse and keypad support (Ben Lunt)
719     - config option to specify devices connected to USB ports
720   - vga
721     - VBE 8 bit DAC support added
722     - VBE memory now registered using DEV_register_memory_handlers()
723     - CL-GD 54xx SVGA emulation added (Makoto Suzuki)
724     - vga extension option added (choices: vbe, cirrus, none) (Volker)
725   - floppy
726     - raw floppy access now works on Win9x host (Ben Lunt)
727   - sb16
728     - MacOSX sound support (Brian Huffman)
729   - networking modules
730     - new: 'eth_vnet' simulates ARP, DHCP, ICMP-echo and read-only TFTP
731       (m_suzu, easeway)
732     - new: 'eth_vde' for Virtual Distributed Ethernet (Renzo Davoli)
733 
734 - System BIOS
735   - turn floppy motor off 2 seconds after last read/write/recalibrate command
736     (Ben Lunt)
737   - int13_cdrom / 32 bit register update fixes for FreeBSD cdrom boot
738     (Fabrice Bellard)
739   - APM and system shutdown support (Fabrice Bellard)
740   - checksum calculation for expansion ROMs
741   - extended floppy parameter table (Mike Nordell, Derek Favcus)
742   - PCI IRQ initialisation added
743   - boot sequence with up to 3 boot devices added
744 
745 - display libraries
746   - status bar with indicators for cdrom, floppy, harddisk and keyboard added
747     (done in rfb, sdl, win32, wx and x)
748   - 3rd (middle) mouse button now supported (rfb, sdl, win32, wx, x)
749   - mouse wheel support (sdl, win32, x)
750   - CTRL key + middle mouse button now used to toggle the mouse capture mode
751     (sdl, win32, wx, x)
752   - text mode split screen feature added (sdl, win32, wx, x)
753   - new gui function returns the display library capabilities (xres, yres, bpp)
754     for the Bochs VBE support
755   - display library specific options added - currently supported:
756     rfb:   timeout (time to wait for client connection)
757     sdl:   fullscreen (startup in fullscreen mode)
758     win32: legacyF12 (use F12 to toggle mouse)
759   - new graphics update API added (used by svga_cirrus) (Robin Kay)
760 
761 - configuration interface
762   - win32: gui runtime dialogs replace textconfig runtime dialogs
763   - set default IPS to 10000000 in .bochsrc sample
764   - SB16 options dmatimer and loglevel now available at runtime
765 
766 - configure script / compile
767   - --enable-ignore-bad-msr (ignore bad MSR references) option is enabled 
768     by default
769   - --enable-mmx enabled by default only if cpu-level >= 5
770   - --enable-4meg-pages will be enabled by default if cpu-level >= 5
771   - fixes for Solaris SunPro (Robin Kay)
772   - --enable-pni option added
773   - --enable-show-ips option added, enable Instruction Per Second counter 
774     in log file 
775   - autodetection for lowlevel sound support added
776 
777 - documentation
778   - a bunch of updates in user and documentation docs (Alexander Schuch)
779 
780 - SF patches applied
781   [894595] MSR_APICBASE always returns APIC ADDRESS 0 by Kangmo Kim
782   [907163] ctrl_xfer8 clean/speed up
783   [907161] clean/speed up of io.cc
784   [899972] data xfer performance patch V 2.0.4
785   [904549] imul gives incorrect result in long mode
786   [877510] amd64 fixes...
787   [903465] SEGV in iodev/ne2k.cc line 1211 on Alpha architecture by Christian Lestrade
788   [903332] copy the bximage result to clipboard, etc by Lukewarm
789   [950905] Do not PANIC on rare, bad input from user-mode by h.johansson
790   [924428] ET bit mismatch between CR0 and MSW
791   [869822] a real SVGA implementation by m_suzu
792   [867045] fix for compiler errors on VC++ by m_suzu
793   [838601] support for the over 2GB disk size with MSVC++
794   [874816] local ARP/ping/DHCP simulator by m_suzu
795   [976066] Keyboard: Get controller version by Ben Lunt
796   [832330] ROMBIOS improvement (reduce stack consumption, etc.)
797   [977900] READ_CDROM_TOC and base address by Ben Lunt
798   [961665] WinXP patch to read physical CDROM's TOC by Ben Lunt
799   [978793] CDROM_SENSE_MODE medium_type by Ben Lunt
800   [615457] gif to png migration
801  [1021767] Portability in sb16ctrl.c by Robert Millan
802   [690400] gzip is confused by GZIP variable in Makefile
803   [567595] guess floppy image size from image file length by Tal Benavidor
804   [888426] bochsrc to make vnet useful by m_suzu
805  [1021758] GNU/k*BSD host support by Robert Millan
806   [969967] int 15/ah=87h clearing cr0 by Ben Lunt
807  [1048327] Russian Keymap by Dmitry Soshnikov
808   [851332] DESTDIR support for install_dlx by Ville Skyttä
809   [970929] gdbstub support for MinGW tool chains by Muranaka Masaki
810  [1021740] Turn gdb stub into a runtime option by Charles Duffy
811  [1063329] RFB key press/release bug fix by Remko van der Vossen
812  [1079240] Wheel Mouse by Ben Lunt
813  [1087537] Fix for Win9x CD boot by lukewarm
814  [1083218] Start of wheel for USB #2 by Ben Lunt
815  [1098480] bochsrc: fixed floppya example by Alexander Schuch (ci-dev)
816  [1094407] configure.in: changed wxWindows to wxWidgets by Alexander Schuch
817  [1092058] serial.cc debug output cleanup by Ben Lunt
818  [1101165] APIC base address by Christian Neubert (flashburn)
819  [1093796] Fix for bug #1093786 (Nigel Horne)
820  [1082584] The start of Bus mice and USB mice by Ben Lunt
821  [1104695] msvc6 compatibility update (Royce Mitchell III)
822  [1059199] VGA text font bug fix (Anonymous)
823  [1108001] Null pointer on bx_atexit() (Ben Lunt)
824  [1112093] Fixed mouse cursor remain area drawing (Anonymous)
825  [1114826] Fix PCIBIOS (Destruction prevention of esi and edi)
826  [1095473] Reading from a CDRW (Fixed) by Ben Lunt
827  [1123895] x86-64 gdb/debugger fixes by Avi Kivity
828  [1145423] stosq simulation bugfix by Avi Kivity
829  [1151012] allow null ss on x86-64 by Avi Kivity
830  [1153327] ignore segment bases in x86-64 by Avi Kivity
831  [1153511] Fixed broken screen update (VBE)
832  [1152808] use 'install' instead of 'cp' during installation by Avi Kivity
833  [1159626] bugfix [1156776] keyboard scanmode fault by Rene Kootstra
834   [843328] PATCH: support for Flat-style ToolBar with Win32GUI
835  [1198308] PATCH: fix incorrect moving mouse cursor when wheel used
836  [1200515] add TFTP server to vnet & ipv4 bug fix by easeway
837  [1203305] tuntap incompatibility by Jan Kratochvil
838 
839 - SF patches partially applied
840   [896733] Lazy flags, for more instructions, only 1 src op
841  [1005422] Improve mouse cursol Grub when 2 buttons-mouse use (WIN32)
842            (TODO: improved japanese keyboard support)
843 
844 - patches applied
845   - patch.rombios.markevich (Start/Stop Wait Timer) (Kory Markevich)
846   - patch.apic-zwane (APIC fixes) (Zwane Mwaikambo)
847   - patch.v8086-exception.lightcone (LightCone)
848 
849 - these S.F. bugs were closed
850   #957660 >>PANIC<< APIC: R(curr timer count): delta < initial
851  #1192654 60 x 90 text not quite right... 
852  #1189097 "configure --with-sdl --with-rfb" doesn't compile
853  #1188980 Crash on XP when break into debugger
854  #1186693 Improving quality of ./configure --help
855  #1185245 Errors Making Bochs with Mingw32
856  #1185289 PSE is not enabled by default on Pentium
857  #1170620 info cpu scrolls away, is too long
858  #1157998 ips shown even when waiting for input
859   #663108 APIC Timer Bug 
860   #831750 bochs unlike real PC in paging
861  #1182698 PAE support doesn't work
862   #954400 debugger causes segfaults when gcc 3.4.0 is used
863  #1171312 Possible SMP problem with ICACHE pageWriteStamp
864  #1179964 PANIC: RIP>CS.limit when jumping to longmode
865  #1171067 configure fails to add -lpthread
866  #1171065 Term UI needs -lncurses 
867  #1171061 SDL GUI startup failure
868  #1022056 win32 error build debug version..c2146
869   #957190 error while attempting to compile sb16.cc
870   #804797 Debugger: visualization problem (jmp) 
871   #675523 2.0.1 doesn't run on W2K?
872  #1167358 When using 5430PCI in DR-DOS Bochs would panic with a PUSHAD
873  #1164654 Bochs VBE bios causing exception 0B in Windows 95 (SVGA bios)
874  #1162983 conflicts which configure could detect
875  #1164536 Windows 95 B crashes during install
876   #526978 cygwin: in an rxvt, stdout is flaky
877   #542303 >>PANIC<< call_protected: CS selector null
878   #859457 BRICKS game doesn't work
879  #1159639 text modes on address A0000-BFFFF are not handled properly
880  #1164225 define BX_SUPPORT_X86_64 0
881  #1163720 ROL bug
882  #1156776 keyboard scanmode fault
883  #1162042 Duke Nukem 3D: >>PANIC<< iret: VM set on stack, CPL!=0
884  #1161945 ctrl_xfer32 compile/make error 
885  #1157124 Bochs doesn't run with large amounts of memory in bochsrc 
886  #1154266 weird INT handling in V86 mode
887  #1157051 default Bochs CVS doesn't work-out-of-the-box
888   #923954 enter() with level > 0, >>PANIC<< iret: return CS selector
889  #1098476 Privilege Problem after SYSEXIT
890  #1121734 Bochs crashes when shutting down Win95 
891  #1099294 VESA for Win98 bogus
892  #1112836 PGE-Bit crashes Bochs
893   #947586 The specification difference in x86-64 emulation
894  #1117145 Push reset Button, APIC0 Error occur 
895  #1123043 fpu stack pointer changed *despite* fault occured (e.g. #pf)
896  #1122066 PANIC: iret: IP > descriptor limit when installing os/2 warp 
897   #809574 rm -f segfaults
898   #593952 SuSE rm segfaults
899   #929783 floppy not recogniced since 2.1
900  #1099298 SB16 for Win98 Bogus
901  #1079483 Reading from a CDRW 
902   #549793 flaw in interrupt gate handling(exception.cc)
903   #692055 SMP Error
904   #805479 Booting from disk causes illegal instruction warnings
905   #909677 pc-speaker doesn't work 
906   #831751 behaviour unrealistic
907   #661213 CR4.TSD is broken
908   #685508 PANIC: prefetch: RIP > CS.limit 
909  #1037923 Non-executable page support missed (NX bit, x86-64)
910  #1106530 wrong disassemble result 
911  #1105208 drive order for boot gets saved wrong
912   #661060 Problem with Win98SE
913   #837377 Norton Ghost don't boot
914   #876689 Unknown register 0x17 [CPU] / WIN98SE
915   #947282 Bochs segfault
916   #963317 Persistent Win98SE  
917  #1101168 APIC base address change
918   #680737 panic when installing winme
919  #1097187 Install FC3 on bochs-win failed
920   #875461 vgabios-lgpl should be default
921   #594797 Bochs segfaults
922   #602994 bochs breaks boot kernel
923   #571539 FreeBSD Install from CD Fails
924   #774257 Device doesn't work under W98
925   #759228 Installing Suse 8.2 in Bochs on WinME
926   #792561 cant boot freebsd 5.1 from cdrom
927   #804004 Live cd will halt on boot..
928   #956173 FreeBSD won't boot iso install images in Bochs v2.1 or 2.2.
929   #864401 >>PANIC<< jmp_ev: IP out of CS limits!
930   #853831 Error on int 15h
931  #1094150 DR-DOS 7.03: panics when using multitasker
932   #655592 win98 hardwaredetection
933  #1093786 Solaris 9 installation CD fails
934   #959585 USB UHCI IO-Device 
935   #963314 Redhat Fedora Installer Kernel Panic and Crash
936  #1086920 Bochs (cvs) doesn't compile on FreeBSD 5
937   #879050 Bochs reports enabled APIC without support
938  #1071199 dBaseII cause prefetch: RIP > CS limit 
939  #1070812 typecast error while compiling wx.cc
940  #1068786 FSINCOS Cos value wrong at 90 degrees 
941   #675248 Panic: EIP > limit on win98 install
942   #829793 [CPU ] prefetch: RIP > CS.limit
943  #1034059 >>PANIC<< prefetch: running in bogus memory
944  #1067813 pbm fpu_proto.h:144 ebuild gentoo bochs 2.1.1 
945   #922034 bios not aliased at 0xFFFFF000, registers wrong after reset
946   #912666 Configure fails on Yellow Dog Linux 3.0.1
947   #922038 Unexisting memory should read back as 0xFFFFFFFF
948  #1019723 HD image
949  #1057814 Shadow RAM not aligned
950  #1057240 Invalid IRET32 implementation
951   #809682 >> PANIC << : prefetch: RIP > CS.limit
952   #618680 memory referencing problems
953   #724262 A few things (Windows 2.03, Wolfenstein)
954   #985375 Crash Mandrake 7.1
955   #913418 compiler errors with --enable-external-debugger option
956   #708847 CR8 access should not panic X86-64
957  #1039499 Compile error pcipnic.cc (cygwin)
958   #978024 compile against wxGTK-2.5.2 fails
959   #639073 MacOSX: Networking not implemented
960   #639074 MacOSX: Soundblaster not implemented
961   #963264 Latest CVS --enable-pcidev fails to configue on YDL Linux
962   #586282 Mac OS X, will not "make"
963   #699532 CVS (as of 2003/03/07) cannot read disk images
964   #639275 wrong more than 2GB size DVD-ROM
965   #766020 info registers / dump_cpu get old eflags
966   #655920 QuickBasic (qbx.exe) panics
967   #676188 Error BX_MAX_DIRTY_PAGE_TABLE_MEGS
968   #923821 LOCK not generating exceptions properly
969  #1007747 Wrong configure?
970  #1022577 show "call" command crashes bochs every time
971   #681849 SuSE 8.1 Compile problem
972   #660322 Install bochs 2.0 on SuSe 8,0
973  #1022587 "Unrecognized args" message wrong after invalid show command
974   #833118 TUN/TAP interface bug
975  #1022178 tuntap module mangles incoming broadcast packets
976  #1028682 Report incorrect disk parameters of floppy
977  #1026234 make fails on Cygwin because of missing .exe extension
978  #1026241 --enable-cpp needed for .conf.win32-cygwin
979   #855323 BIOS Panic at rombios.c, line 1563
980   #762773 ROM checksum is not checked in rom_scan_loop
981   #657604 concat_image_t.lseek to byte -1378816 fa
982   #800140 No AH=83h INT15h implemented
983   #831965 Win32.zip BIOSes in wrong directory
984   #873280 bximage crashes after createing "growing"
985   #892223 bochsrc-sample.txt/vgaromimage option error
986  #1014361 Bximage on WinXP won't create image
987   #651510 bximage won't create larger than 2GB
988   #759206 bximage fails on Win32 for hd images over 2Gb
989   #759210 Bochs fails on image files over 2Gb on Win32
990   #799785 bximage doesn't work
991   #903345 Problem compiling harddrv.cc
992   #933303 Bochs cannot lseek() HD images > 2GB on W32 platforms
993   #888438 bximage crashes...(hacked fix included)
994   #871720 bximage 2GB file size limit
995   #930368 Can't create big hard drives (>2 GB)
996   #912496 IDIV can cause simulator divide error
997   #522111 Host os SIGILL, booting grub from hd
998  #1005052 DMA Controller Model Problem
999   #552939 Bochs window doesn't resize when win311
1000   #989478 I-Cache and undefined Instructions
1001   #661008 make install fails
1002   #845691 Workaround: Ne2k and Windows 2000 not working
1003   #923662 BIOS diskette motor countdown byte broken
1004   #848141 VGA problems running Scitech Display Driver on Win95
1005   #799370 Problem booting ReactOS 0.1.3
1006   #670143 No rule to make config.h
1007   #653444 with vbe/lgpl bios, scrn updates broken
1008   #655696 quickstart broken?
1009   #659350 FDC
1010   #620853 Ne2000 ethernet card *NOT* supported
1011   #607611 Numlock
1012   #543476 Sound card does not work in Windows 95
1013   #529554 unsupported VBE features DISPI update
1014   #487316 Access violation on Win32
1015   #576253 RTC too fast
1016   #489748 io read from address 000003c0, len=2
1017   #656861 Gentoo Linux panics in VGA code
1018   #787184 Video BIOS's don't checksum correctly
1019   #988529 textconfig [Save options to] function output obsolete option
1020   #987293 Cannot accesss header/toolbar
1021   #988246 floppy read error
1022   #933199 speedup Bochs compilation 4x -> suggestion
1023   #979106 Incorrect disassembly table entry
1024   #658374 FPU incorrect emulation
1025   #706933 Problem with the F12-Key
1026   #477043 math_abort panic in RH 7.1
1027   #634371 Floating point problems
1028   #681138 // is not valid in C
1029   #643300 cpuid feature flag 15, cmov and fcmov
1030   #913697 missing division by 0 exeption in fpu emuation
1031   #923682 FSTENV/FINIT problems
1032   #923855 FPTAN doesn't work right with full NPX stack
1033   #924379 ET bit mismatch between CR0 and MSW 
1034   #716116 Direct floppy access
1035   #962919 Mac: iodev/cdrom.cc disordered
1036   #954751 Two FPU.CPP in project
1037   #954359 Compile faile is 3dnow support is selected without SSE support
1038   #906412 FreeSCO error
1039   #942060 FDC Controller not conforming to specifications
1040   #938522 Win XP installation fails
1041   #923613 BOUND instruction exception handling is broken
1042   #923223 memtest86 errors
1043   #593342 autoconf script doesn't regenerate clean
1044   #616116 Crash on exit...
1045   #922042 shutdown through port 92 does not work
1046   #891633 02839990390p[CPU0 ] >>PANIC<< RDMSR: Unknown register 0x17
1047   #923653 DAA instruction is broken
1048   #911225 obscure AAA / AAS bugs
1049   #837206 Problems with numerical keys
1050   #658765 BOCHS halts in runtime config
1051   #890734 Bochsrc Parser Bug with commas included in strings
1052   #877285 MSR_APICBASE zero upon startup
1053   #526984 SDL compiled in cygwin just quits
1054   #886406 I/O permissions bug
1055   #883239 undefined symbols in gui/siminterface.h:1215
1056   #419647 on OSF1, cxx hates C++ inlines
1057   #809790 "No rule to make target `devices.cc?..."
1058   #873654 How compile without plug-in support ?
1059   #837161 Test case for BX_CPU_C::IRET32
1060   #888116 mmx.cc compile error
1061 
1062 -------------------------------------------------------------------------
1063 Changes in 2.1.1 (February 8, 2004):
1064 
1065 - fix bug in int15h function 0xe820 (Christian Neubert)
1066 - fix vmware3 disk support on big-endian platforms (Christophe Bothamy)
1067 - fix conditions for NM exception on FWAIT instruction (Christophe)
1068 - fix symbol conflict in rfb and x display libraries (Volker Ruppert)
1069 - allow 16 bit writes to ne2k page 0 (Kenneth Stailey)
1070 - notify display libraries on change of bpp (Volker)
1071 - fix bug in int13h function 0x10 (Volker)
1072 - fix floppy dialog error on win2k (Volker)
1073 - fix adress check in TSS IO permission bitmap (Christophe)
1074 - fix buffer overflow vulnerability pointed out by SeSoX (Christophe)
1075 - updates for MacOS compile (Daniel Gimpelevich)
1076 
1077 -------------------------------------------------------------------------
1078 Changes in 2.1 (January 9, 2004):
1079 
1080 Brief summary :
1081 - New disassembler
1082 - 3DNow!/SSE/SSE2/PNI instruction support
1083 - Vmware3/Sparse/Undoable/Growing harddisk images support
1084 - many VGA emulation improvements (e.g. high/true color VBE modes added)
1085 - No more X11 vga font required
1086 
1087 Detailed change log :
1088 
1089 - CPU
1090   - added emulation of AMD 3DNow! instructions set. (Stanislav Shwartsman)
1091     Bochs now could decode all AMD 3DNow! instructions. 
1092     Most of instructions still not implemented, but the basis already presents.
1093     Configure --enable-3dnow to enable 3DNow! support.
1094     Notes : 
1095       - These instructions are not implemented yet:
1096         PFPNACC_PqQq, PF2IW_PqQq, PFNACC_PqQq, PFCMPGE_PqQq, PFMIN_PqQq,
1097         PFRCP_PqQq, PFRSQRT_PqQq, PFSUB_PqQq, PFADD_PqQq, PFCMPGT_PqQq,
1098         PFMAX_PqQq, PFRCPIT1_PqQq, PFRSQIT1_PqQq, PFSUBR_PqQq, PFACC_PqQq,
1099         PFCMPEQ_PqQq, PFMUL_PqQq, PFRCPIT2_PqQq
1100      - CPUID does not report 3DNow! instruction set.
1101   - added emulation of SSE/SSE2 floating point instructions. (Stanislav)
1102     All SSE/SSE2 floating point instructions are fully implemented using 
1103     free softfloat library (including DAZ support and floating point
1104     exceptions). Correctness of the emulation checked with heavily random 
1105     testing. 
1106   - added emulation of SSE3 (PNI) instructions (Stanislav)
1107     Currently only 3 PNI opcodes still not implemented:
1108         FISTTP m16int, FISTTP m32int, FISTTP m64int
1109   - added P4 CPU support to CPUID instruction. (Stanislav)
1110   - fixed implementation of FXSAVE/FXRSTOR instructions. (Stanislav)
1111   - bugfix: unallowed lock prefix cases must cause #UD exception. (Stanislav)
1112   - fixed fetchdecode bug caused #UD in SYSENTER/SYSEXIT instructions
1113     in 32bit mode. (Stanislav)
1114   - fixed fetchdecode64 bug caused wrong decoding of opcodes containing
1115     BxImmediate_IvIw or BxImmediate_IwIb in x86-64. (Stanislav)
1116   - fixed bug in int01 (opcode 0xF1) emulation. (Vitaly Vorobyov)
1117   - fixed bug in x86 debugger with dr0-dr3 registers (Vitaly)
1118   - fixed bug with mov to/from dr register in v86mode.
1119     (now exception is generated (according to Intel documentation)
1120     instead of panic) (Vitaly)
1121   - fixed stack limit checking, now message is generated as BX_DEBUG,
1122     rather then BX_PANIC, and exception code is executed. (Vitaly)
1123   - instrumentation code updated. (Stanislav)
1124   - fix flaw in IO bitmap permission of TSS (Christophe Bothamy)
1125   - cpu resets on triple fault (Christophe)
1126   - remove calculation on cr3 in dtranslate_linear to increase
1127     emulation speed (Conn Clark)
1128   - numerous x86-64 fixes (Peter Tattam)
1129 
1130 - FPU
1131   - hundreds of bugfixes in FPU emulation after checking of the emulation
1132     with testfloat (Scott Duplichan).
1133     - Fixed cases:
1134         - floatx80_to_int32,   floatx80_to_float32
1135         - floatx80_to_float64, floatx80_round_to_int
1136         - floatx80_add,        floatx80_sub, 
1137         - floatx80_mul,        floatx80_div
1138   - implemented FCMOVcc instructions (Stanislav)
1139   - 64-bit addressing support for x86-64 mode (Peter)
1140 
1141 - Disassembler
1142   - replaced Bochs disassember. New table-based disassembler fully supports
1143     all IA-32 instruction sets including all FPU/MMX/SSE/SSE2/SSE3 opcodes.
1144     (Stanislav)
1145 
1146 - I/O devices
1147   - general
1148     - i/o access mask implemented, unallowed cases are now handled in the devices
1149       code and cause a BX_ERROR (Volker Ruppert)
1150     - include slowdown timer as a runtime option (Christophe)
1151     - netBSD : fix serial, ethernet, cdrom (fredb, uebayasi and David Laight)
1152   - VGA
1153     - color depth 15, 16, 24 and 32 bpp supported by VBE (Volker and
1154       Christopher Nelson for 32 bpp on win32). Supported by sdl, x, win32 and wx.
1155     - SVGA mode 0x6A (800x600x4bpp) implemented (Volker)
1156     - new CGA graphics modes 640x200x1bpp and 160x100x4bpp (text mode 80x100) (Volker)
1157     - raster operations AND, OR and XOR in write mode 2 (based on SF patch #707931) (Volker)
1158     - 'split screen' in standard VGA graphics mode implemented (Volker)
1159     - 'double scan' and 'double width' now handled in the VGA code (Volker)
1160     - more accurate emulation of the horizontal and vertical retrace (Volker)
1161     - changeable start address and variable line length supported by all
1162       graphics modes (Volker)
1163     - VBE: preserve video memory feature implemented (Volker)
1164     - additional text mode features prepared (handled in the display library
1165       code) (Volker)
1166   - PCI
1167     - add experimental PCI VGA card (Mike Nordell)
1168     - add experimental PCI USB card (Ben Lunt)
1169   - Harddisks 
1170     - per device selectable harddisk modes :
1171       - undoable, volatile, growing disks support (Christophe)
1172       - sparse disks support (justinSB)
1173       - vmware3 disks support (Sharvil Nanavati)
1174     - fix non detection of hard drives by minix2 (Christophe)
1175     - implement atapi command 0xA8 read (12)  (Christophe)
1176     - mode sense command updated (Hartmut Birr)
1177   - sb16 
1178     - opl2 support enhanced (James E. Flemer)
1179   - ne2k
1180     - tap support for FreeBSD (Ronald Klop and Gen Otsuji)
1181     - fix when booting with grub (Keir Fraser)
1182   - cmos
1183     - date/time change support added (Volker)
1184     - UIP bit and divider chain reset implemented (Volker)
1185     - initial time can now be set to local time or utc (Christophe, Daniel Gimpelevich)
1186   - keyboard
1187     - keyboard reset function (0xff) now resets the keyboard (Volker)
1188   - gameport
1189     - new standard PC gameport device (real joystick connected on Linux and
1190       win32 only). Enable it with --enable-gameport or the SB16 emulation (Volker)
1191   - serial
1192     - FIFO emulation (UART type 16550A) implemented (Volker)
1193   - floppies 
1194     - 160k,180k,320k floppies support (Ben Lunt)
1195 
1196 - display libraries
1197   - X11
1198     - onboard vgacard charmap usage (no need for external X11 vga font any more) (Christophe)
1199     - vgacard charmap change support (Christophe)
1200     - fix black stripes on partial exposes (Dirk Thierbach)
1201     - headerbar redraw optimizations (Dirk Thierbach)
1202     - external font files and their installation mechanism removed (Volker)
1203     - belgian keymap support (Wouter Verhelst, Eric Brasseur)
1204   - win32 + wx + x: new application/window icon (bochs.ico / icon_bochs.xpm) (Volker)
1205   - sdl + win32 + wx + x: new textmode features: variable line length,
1206     char width switch, horizontal and vertical pel panning (Volker)
1207   - win32 + wxMSW: key event handling rewritten (Volker)
1208   - win32: status bar at the bottom of the simulation window added (Volker)
1209   - wxMSW: resource problems fixed - wx dll plugin works now without errors (Volker)
1210   - term: variable line length and cursor enable/disable feature implemented (Volker)
1211   - rfb
1212     - textmode: charmap change, better cursor emulation, variable line length (Volker)
1213     - headerbar works now (power, reset and user button are okay) (Volker)
1214     - key event handling rewritten (Volker)
1215     - Bochs-RFB waits up to 30 seconds for a client connection. The emulation
1216       starts after connecting the client. (Volker)
1217   - carbon: Alt/Ctrl/Shift key handling rewritten & SysRq/Ctrl-Break key support added
1218     (Daniel)
1219  
1220 - configuration interface
1221   - gui dialogs as an extension of the textconfig interface on win32 added (Volker)
1222     * ask dialog
1223     * save text snapshot
1224     * user button shortcut
1225     * floppy image change
1226   - wxwindows configuration dialogs improved (Volker, Christophe)
1227 
1228 - support tools
1229   - bximage : added support for 
1230     - growing disks (Christophe)
1231     - sparse disks (justinSB)
1232   - created bxcommit tool for undoable disk images (Christophe)
1233 
1234 - System BIOS :
1235   - fixed int15 function e801 (get memory size) (Christophe)
1236   - added int75_handler for FPU Dos Exceptions (Christophe)
1237   - added int16 function 0a (Get Keyboard ID) (Volker)
1238   - added support for ElTorito Harddisk-on-CD emulation (Christophe)
1239   - fixed ATA/Serial ioport conflict (Daniel)
1240 
1241 - VGA BIOS : updated to version 0.4c (Christophe)
1242 
1243 - configure script/compile/porting to other OSes/installation
1244   - fixes for compilation with MSVC (Andrew Zabolotny)
1245   - fixes for cross-compilation (Jeroen Janssen)
1246   - win32 nsis installer script updates (Volker)
1247   - small configure fixes for MacOS (Christophe)
1248   - optimizations & compile fixes for MacOS/X (Daniel)
1249 
1250 - configuration files. The following options have been deprecated :
1251   diskc, diskd, cdromd, time0, pit, newharddrivesupport.
1252 
1253 - documentation
1254   - already ported and obsolete parts of the old documentation removed (Volker)
1255   - user documentation updated and extended :
1256     - improved section "What does Bochs need" (Volker)
1257     - command line arguments (Volker)
1258     - search order for the configuration file (Volker)
1259     - the configuration interface 'textconfig' (Volker)
1260     - FreeDOS Beta 8 installation instructions (Volker)
1261     - disk modes (Christophe)
1262     - LBA translation  (Christophe)
1263     - cdboot error codes (Christophe)
1264     - SCO OpenServer install section (Carl Sopchak)
1265     - MacOS-X DMG install guide (Aard Vark)
1266     - update Win98 install guide (Dirk Thierbach)
1267 
1268 - SF patches applied
1269   #658950  Bug in FPU                                                  (Anonymous)
1270   #678117  build fail due to bad SGML punctuation                      (Anonymous)
1271   #671873  minimal USB support (UHCI)                                  (Ben Lunt)
1272   #682539  Fix CapsLock and NumLock behavior                           (rock at gimp.org)
1273   #720776  REX MOVB immediate broken for x86_64                        (Arnd Bergmann)
1274   #729450  new keymap x11-pc-be.map                                    (Wouter Verhelst)
1275   #735990  Limited patches for VC++                                    (Anonymous)
1276   #742670  fix library dependencies in GUI plugins                     (Robert Millan)
1277   #742782  LFB bugfix                                                  (Jan L. Hauffa)
1278   #748414  load32bitOShack bug                                         (kyriazis at nvidia.com)
1279   #830079  Fix bochs's application error if unsupported key pressed    (Anonymous)
1280   #724466  enable building with CC=gcc-3.2 CXX=g++-3.2; dist-clean adds(Leonard Norrgard)
1281   #834962  Fixed drawing graphics is broken                            (Anonymous)
1282   #838401  Fixed redrawing of ToolBar on Win32GUI                      (Anonymous)
1283   #850236  Fixed accessing DVD-ROM with direct device access on Win32  (Anonymous)
1284   #847822  Bochs crash when exmining memory that crosses page boundary (ortal at jungo.com)
1285 
1286 - SF patches partially applied
1287   #707931  Support EGA/VGA write mode 2 and others                     (Anonymous)
1288            already applied: disable IME, split screen, write mode 2,
1289            BIOS INT16h/AH=05h
1290   #856506/#856510  Patch to fix compile-time iodev/cd-rom.cc error     (alden.dima at nist.gov)
1291            Correct patch provided in SF bug report #843433             (birkhofer at users.sourceforge.net)
1292 
1293 - patches applied
1294   - patch.highmem  (memory allocation) (Zwane Mwaikambo)
1295   - patch.floppy-160k-180k-320k-benlunt (exotic floppies) (Ben Lunt)
1296   - patch.perf-regparm-cclark (performance) (Conn Clark)
1297 
1298 - new patches present in the patches directory :
1299         patch.pipelined-asm-cclark
1300         patch.mingw-resources
1301         patch.v8086-exception.lightcone
1302         patch.pit-vitaly-vorobyov
1303         patch.rombios-vitaly-vorobyov
1304         patch.win32-vitaly-vorobyov
1305         patch.win32-new-files-vitaly-vorobyov.tgz
1306         patch.rombios.markevich
1307         patch.rombios.dirk.thierbach
1308 
1309 - these S.F. bugs were closed 
1310    #865354 ">>PANIC<< CRA: divider chain control 0x07" in Linux 1.1
1311    #725796 configure script bug 
1312    #859768 cpuid 
1313    #863964 panic in duron 2000 
1314    #843433 cdrom.cc on MacOSX: wrong const names 
1315    #818493 EMU][ (DJGPP app running on FreeDOS) broken 
1316    #787005 Some MOV instructions are not implemented!!! 
1317    #840664 2200136693936p[CPU ] >>PANIC<< prefetch: RIP > CS.limit 
1318    #837416 V2 OS not compatible !? 
1319    #650917 Serial port broken under win95 
1320    #829863 Make bochs 2.0.2 build with gcc3 
1321    #816971 main.cc: getcwd() missing argument 
1322    #813556 Compile error under gcc 3.3.1 
1323    #809758 RIGHT ALT does not function properly 
1324    #809695 CVS complains about unknown files after compilation 
1325    #628762 Error in Floppy Booting 
1326    #474526 Crash under win32 (access violation) 
1327    #687619 test case for BX_CPU_C::IRET32 
1328    #664544 Panic in IRET32 - Reporting test case 
1329    #637822 test case for BX_CPU_C::IRET32 
1330    #603410 BX_CP U_C::IRET32 
1331    #537047 IRET32 incomplete emulation, panic 
1332    #805541 Compile fails on i686, gcc 3.3 
1333    #798829 Problem booting from ISO image 
1334    #688163 Panic at rombios.c 
1335    #688161 rombios.c crashes when boot from a CD. 
1336    #796339 int 15h, e801h broken? 
1337    #666946 Slowdown Timer should be a module 
1338    #783826 the clock is extremely fast 
1339    #645609 Real Time Clock is too *FAST* 
1340    #663320 flaw in IO bitmap permission handling
1341    #764929 Timing is off.
1342    #659510 Bochs timing off by x10
1343    #787138 No ROM BIOS character map 
1344    #787134 Config options not saved
1345    #689201 Disassembler bug
1346    #666202 Windows 2000 - random screen blanking with linux DLX demo
1347    #629242 reset during Doom -> BIOS panic
1348    #695434 minix floppies won't boot.
1349    #764473 Freesco Linux crashes on boot
1350    #656026 error when trying to run some stuff
1351    #614202 HD: non-byte IO read to 01f4
1352    #777357 Strange FPU compiler error
1353    #583758 gag bootloader doesn't run
1354    #658639 ne2k panics with MS lanman Client/DOS62
1355    #536711 problem running smart bootmanager
1356    #741433 Disabling all ata# results in HD error.
1357    #753200 lock instruction doesn't do an illegal instruction trap
1358    #679389 libbx_wx.so.0: undefined symbol
1359    #758936 Problem Installing Bochs
1360    #742580 I configured fants but bochs still give me the same error
1361    #772242 iodev/vga.cc wrong memory access.
1362    #739222 Cannot change resultion
1363    #693344 libwx_gtk2.3.so.2 RedHat linux 8.0
1364    #639320 sparc: needs -lm to compile 
1365    #587422 Windows 95j doesn't boot
1366    #547817 sparc: rfb needs -lsocket
1367    #480963 RFB: option to wait for client
1368    #763893 i've got problems with a "libvga.so.1" and another file
1369    #766490 Documentation mistake
1370    #766481 Bochs 2.0.2 Fails to compile on YDL3.0
1371    #626144 %lld is not portable
1372    #752241 lock prefix erronously allowed for some instructions 
1373    #743305 fetchdecode.c probs
1374    #658707 Automatic exit?
1375    #696758 BeOS can't mount image disk, won't complete boot.
1376    #737048 Enabling keyboard resets controllers translation mode
1377    #717713 Bochs panics on startup on RH 9
1378    #741108 VGA PANIC
1379    #730922 seg fault on "bochs boot: cdrom"
1380    #658905 VGA read write error
1381    #564218 Panic on vga_mem_write
1382    #614231 X11 doesn't support charmap change
1383    #708311 Missing CGA low-res emulation 
1384    #720776 REX MOVB immediate broken for x86_64
1385    #643296 lock prefix, unallowed cases
1386    #716964 [sb16] OPL.timer_running not initialized
1387    #662074 little mistake in the default config example
1388    #470701 CD-ROM on Win2K needs FILE_SHARE_READ
1389    #706454 bug??
1390    #653861 Win32 build bug
1391    #421155 panic on vga read 0x3c7,0x3cb
1392    #666434 VGA BIOS: Incompatible mode reporting
1393    #681819 Incorrent return value from cdrom reads
1394    #648222 Lotus Agenda futuristic dates off
1395    #657455 doesn't boot plan9
1396    #658938 SGDT in VM8086 
1397 
1398 -------------------------------------------------------------------------
1399 Changes in 2.0.2 (January 21, 2003):
1400 
1401 - fix possible segfault in wxWindows (Volker Ruppert)
1402 - fix instrumentation (Stanislav Shwartsman)
1403 - fix cdrom read_toc() function for *BSD (Keith Matthew Jones)
1404 - fix NetBSD boot from cdrom (Christophe Bothamy)
1405 - fix cmos checksum (Volker)
1406 - fix "refresh bit" behaviour in pit (Volker)
1407 - fix .bochsrc parsing (Volker)
1408 - fix vga resize/redraw problems (Volker)
1409 - fix compilation issues on Irix and Tru64 (Christophe)
1410 - fix MMX/SSE bugs (Stanislav, Peter Tattam)
1411 
1412 -------------------------------------------------------------------------
1413 Changes in 2.0.1 (January 4, 2003):
1414 
1415 - fix corrupt saved configuration files (Christophe Bothamy)
1416 - fix missing break statements in apic (Shai Fultheim)
1417 - fix compiling sb16 under FreeBSD (Volker Ruppert)
1418 - updates to the documentation (Volker)
1419 - fix text mode colors 8 to 15 (Volker)
1420 - fix FPU integer load bug (Volker)
1421 - stop pasting on hardware reset (Volker)
1422 
1423 -------------------------------------------------------------------------
1424 Changes in 2.0 (December 21, 2002):
1425 
1426 Since the change log is hundreds of lines long, here is a very brief summary.
1427 - 2x emulation speedup!!!
1428 - added plugin devices and guis. Now you can compile with many more
1429   options, and choose between them at runtime.
1430 - added emulation of AMD x86-64, MMX, SSE, SSE2 instructions
1431 - add wxWindows port (a graphical configuration interface and display lib)
1432   and SVGAlib port (full screen display for Linux without X11)
1433 - improvements in many I/O devices: for example up to 8 hard disks/cdroms,
1434   TUN/TAP network interface, 360k floppies,
1435 - improved MacOSX/Carbon interface and updated MacOS9 port
1436 - GDB remote stub, allows symbolic debugging with Bochs simulation.
1437 - support for up to 32gig hard disk images
1438 
1439 Detailed change log follows.
1440 
1441 - documentation
1442   - manpages updated (Volker, Christophe)
1443   - install HTML rendering of docbook documentation instead of 
1444     docs-html (Bryce)
1445   - doc/docbook/Makefile is now generated by configure script.
1446     if configure detects docbook2html on your system, it will turn on
1447     --enable-docbook and run make in the doc/docbook directory.  Also
1448     make install will install documentation into $(docdir).  You can use
1449     --disable-docbook to turn this off, if necessary. (Bryce)
1450   - add "make bochsdoc.tar.gz" target to create a documentation tarball.
1451     If you do "make webinst" and you have write access on SF shell server,
1452     it updates doc/docbook/* on the website (Bryce)
1453   - user documentation additions:
1454     - new options (Bryce, Volker, Christophe)
1455     - Bios tips section (Christophe)
1456     - Tuntap section (Christophe)
1457     - Serial Port section (Christophe)
1458     - "Will it Work for Me" / "Is Bochs Right for Me" sections 
1459       (N. David Guarneri)
1460     - VESA section (Jeroen Janssen)
1461     - several documents, previously existing as separate html files, have
1462       been included :
1463       - internal debugger section (Christophe)
1464       - gdb stub debugger section (Christophe)
1465       - WinME, WinNT, WinXP, The Hurd, Japanese Win95 install tips (Christophe)
1466       - Win95, Win98 install tips (N. David)
1467       - SB16 section (N. David)
1468 
1469 - configure script/compile/porting to other OSes/installation
1470   - added plugin architecture
1471     - plugin code written by Bryce, Christophe, Volker based on
1472       plex86's plugin code by Kevin.  Testing help from Psyon and Br'fin.
1473     - Plugins are shared libraries that can be loaded on demand.  Example:
1474       the serial device is implemented as a plugin.  In UNIX, the
1475       serial plugin is called libbx_serial.so.  When Bochs reads its
1476       configuration file, if the serial device is enabled it loads
1477       libbx_serial.so.
1478     - all display libraries, most I/O devices are converted to plugins now
1479     - plugins supported on Linux, Solaris, and MacOS X using libtool,
1480       Cygwin using dlltool.  On MacOSX, you must have dlcompat installed
1481       and in your include/library paths at configure time.  (See .conf.macosx
1482       for an example.)
1483     - we use libtool's LTDL library from libtool 1.4.2, with a number of
1484       critical bug fixes (Bryce Denney)
1485     - the Linux binary RPMs are built with plugin support
1486     - to compile with plugins, configure with --enable-plugins
1487     - the LTDL_LIBRARY_PATH variable tells Bochs where its plugins can be
1488       found.  Bochs has a compile-time default for this variable which is
1489       correct if you do a make install.  You would only need to set the
1490       variable if the default is wrong.
1491     - for win32 plugins we added "BOCHSAPI" in front of many classes
1492       and methods, to aid in building DLLs.  This turns into __declspecs
1493       which are used when making an export library for Bochs.
1494   - allow many display libraries to be configured and compiled at
1495     a time.  For example --with-win32 --with-sdl --with-rfb.
1496     Also, we added an experimental option --with-all-libs which
1497     tries to detect which --with-* options will work.  If the
1498     autodetection fails, just type the --with-* options explicitly. (Bryce)
1499   - add #if's around all files which are conditionally compiled such
1500     as cdrom.cc and sb16.cc.  This makes it possible to compile every
1501     source file all the time, which has the potential to simplify the
1502     configure script and makefiles.  At present we only take advantage
1503     of this capability in the win32 VC++ workspace. (Bryce)
1504   - the MacOS9 port has been updated so that it works again.  It had
1505     not been updated in at least 2 years, maybe more.  (Christophe Bothamy)
1506   - improve support for FHS standard (Robert Millan, Volker Ruppert)
1507     See patches 551811 and 650066.
1508   - keep separate CFLAGS and CXXFLAGS for Bochs (usually a graphical
1509     program) and console programs such as bximage and niclist.  Some
1510     sdl and wx compile flags were making bximage and niclist unusable.(Bryce)
1511   - add concept of cross-configuring in the configure script.  If you
1512     use the --target option to generate makefiles to be used on another
1513     machine, some detection of compilers and libraries is disabled. (Bryce)
1514   - fix term compile on Cygwin, but it has to be done without -mno-cygwin,
1515     which means that several win32 features such as networking do not work.
1516   - add "-Wno-multichar" on beos
1517   - test for largefile support, and add required CFLAGS (Bryce)
1518   - add -lm when it's needed, and not when it's not (Bryce)
1519   - add configure support for 8 processors. Bochs can support up to 15
1520     with some work on the BIOS.
1521   - fix nmake makefile generation (Psyon)
1522   - improved pthread detection function from ac-archive project on SF
1523   - add installer package for Windows, using Nullsoft (Michael Rich, Bryce)
1524   - on MacOSX, add startup script that creates a text console and then
1525     runs Bochs.  Also add make target to create a DMG disk image (Br'fin)
1526   - do not restart the font server on Unix/X11, if vga.pcf was already
1527     installed.  On several modern machines, if you restart the font 
1528     server the user has to restart X windows. (Bryce)
1529   - update most .conf.* files with modern options such as 
1530     --enable-all-optimizations. (Bryce)
1531   - The MacosX .conf script adds /sw/include and /sw/lib to the compile/link
1532     path list because it is a common place to put dlcompat.  Dlcompat is
1533     required when building with plugins. (Bryce)
1534   - rpms can now be built without root privileges (Bryce)
1535 
1536 - command line
1537   - fixed up our command line options (Volker, Bryce, Christophe)
1538       Usage: bochs [flags] [bochsrc options]
1539       -n               no configuration file
1540       -f configfile    specify configuration file
1541       -q               quick start (skip configuration interface)
1542       --help           display this help and exit
1543 
1544 - configuration file (bochsrc)
1545   - There are several new options. See the documentation for more details.
1546     - config_interface: select text mode menus or wxWindows for configuration
1547     - display_library: select which display lib to use
1548     - optromimage: load optional rom images
1549     - ataN (N=0,1,2,3): up to 4 ATA controllers for hard disks, cdroms
1550     - ataN-master, ataN-slave, N=0,1,2,3: defines a hard disk or cdrom.
1551       The "ata*" options replace diskc, diskd, and cdromd, which are
1552       now deprecated.
1553     - floppy_bootsig_check: control the 0xaa55 signature check on boot floppies
1554     - logprefix: lets you change the format of log messages
1555       (patch by Carl Sopchak, help from Christophe)
1556     - debugger_log: log all output from bochs debugger
1557     - user_shortcut: allow you to type key combinations like Ctrl-Alt-Del
1558     - pit: control the PIT model, including realtime option to try to
1559       keep in sync with real time.
1560     - Credits: Christophe added optromimage, everything about ATA, 
1561       floppy_bootsig_check, debugger_log.  Bryce added config_interface
1562       and display_library.  Volker did the user_shortcut button.
1563       Greg Alexander wrote the PIT model and added the realtime option.
1564   - since v1.3 we've been able to use environment variables in pathnames
1565     in the bochsrc file.  Now, a few variables have default values, set at
1566     compile time, that are used if the user does not set a value.  If Bochs 
1567     is installed correctly, the defaults will be correct and the user will 
1568     not need to override them.
1569     - $LTDL_LIBRARY_PATH is the path name where the plugins can be found.
1570       The default value comes from $(plugdir) in the makefile.  This is only
1571       important if plugins are enabled. (Bryce)
1572     - $BXSHARE is the path where the BIOSes and keymaps are installed.
1573       The default value comes from $(sharedir) in the makefile.  Disk
1574       images on the Bochs website will begin to use BIOS pathnames like
1575       $BXSHARE/BIOS-bios-latest.  On win32, the $BXSHARE default is 
1576       set by the NSIS installer and read from the registry.  On MacoSX,
1577       the $BXSHARE default is set to the path containing bochs.app.
1578       (Bryce, Volker, Br'fin)
1579   - new option in the configuration interface to reset all bochsrc 
1580     settings to initial defaults.  A reset occurs just before reading
1581     a new configuration file, so that leftover parameters from a
1582     previous configuration do not affect the new configuration.  Also, 
1583     you can request a reset using the configuration interface. (Volker, Bryce)
1584   - ne2k line can now specify a script to set up the interface (Christophe)
1585   - on Unix, also search /etc/bochsrc (Bernhard Bablok)
1586   - you can use #include in the bochsrc to read configuration from other 
1587     files (Volker)
1588 
1589 - CPU
1590   - speed optimizations from Kevin Lawton, yielding around 2x speedup
1591     - guest2host_tlb : for entries in the paging TLB which point to normal
1592       physical memory pages, a pointer to the host address of the emulated
1593       physical memory (from malloc()) page is stored in the TLB entry.  In
1594       many cases, this pointer can be used in memory accesses to directly
1595       read/write the guest memory address.  In exceptional cases, the physical
1596       memory access routines are used.  Turn on with --enable-guest2host-tlb.
1597     - repeat IO/string : for some variants of repeatable IO and string
1598       instructions, the segmentation and paging checks are done in batch along
1599       with the data transfers, constrained within page boundaries and the
1600       segment limits.  Turn on with --enable-repeat-speedups.
1601     - icache : The structure holding instruction decode information was
1602       reduced to 32 bytes.  24 bytes for the actual decode data, and 4 each
1603       for pointers to the address resolution routine (not always needed) and
1604       the instruction emulation routine.  With a reasonably small
1605       per-instruction decode size, an instruction cache (iCache) was created,
1606       which is simply a hash table.  The main cpu loop looks in the table
1607       first; if the instruction has already been decoded, execution can begin
1608       immediately without decoding.  Turn on with --enable-icache.
1609     - host specific asm : when compiling on an x86 platform, use of
1610       x86-specific asms can be enabled to accelerate several facets of
1611       emulating instructions.  For example, the EFLAGS values are much more
1612       efficient to calculate when the actual x86 instructions are used to
1613       generate the EFLAGS values.  Turn on with --enable-host-specific-asms.
1614       (Kevin, with help from Jas Sandys-Lumsdaine)
1615     - if you want to enable all the speed optimizations that we believe
1616       to be stable, use --enable-all-optimizations.  The release binaries
1617       are built with this option.
1618   - add support for AMD's x86-64 instruction set.  To enable, configure with
1619     --enable-x86-64.  The AMD x86-64 support is about 90% complete and is
1620     still experimental.  We've implemented the core x86-64 instruction set and
1621     the changes to the rest of Bochs necessary to operate in long mode, but
1622     we've still to implement checking for canonical 64 bit addresses. The code
1623     has been tested on a limited number of test programs.  It has been able to
1624     successfully boot a x86-64 Linux kernel and run a 64 bit userland
1625     application.  It has also successfully run a DOS based 64 bit protected
1626     mode test application. (Peter Tattam, with merge/bugfix help from Kevin
1627     Lawton and Bryce Denney)
1628   - add MMX support. To enable, configure with --enable-mmx. 
1629     (Stanislav Shwartsman)
1630   - add SSE and SSE2 support. To enable, configure with --enable-sse=1
1631     or --enable-sse=2. (Stanislav)
1632   - fixed the behaviour of the bcd instructions AAM, AAD and DAA based on
1633     SF patch #537146 (Volker)
1634   - stop printing an error for VERR/VERW. According to the i386 opcode
1635     description there is no error present. (Volker)
1636   - fix bug [ 625878 ] reset doesn't reset something(?). Fix cpu reset
1637     when executing a rep instruction (Christophe)
1638   - use accessors methods for CFLAGS and several other registers, so that
1639     the implementation can be changed transparently later (Bryce, Stanislav)
1640   - add support for page size extensions, also known as 4meg pages.
1641     Turn on with --enable-4meg-pages. (Kevin Lawton)
1642   - add support for page global extensions.  Turn on with
1643     --enable-global-pages.   (Kevin)
1644   - add support for physical address extensions.  Turn on with --enable-pae.
1645     (Peter Tattam)
1646   - implement RDMSR and WRMSR. not all MSRs are supported (Zwane Mwaikambo)
1647   - new configure option --enable-ignore-bad-msr, which makes unrecognized
1648     MSR reads and writes into just a warning
1649   - fix PIC/APIC interrupt problem that caused Linux 2.4.19 to hang 
1650     during boot (Peter)
1651   - CMPXCHG8B patch (Michael Hohmuth)
1652   - EFLAGS are now stored in the same form as the native EFLAGS on an x86,
1653     so that we can use native machine instructions in some cases (Kevin)
1654   - instrumentation code updated (Stanislav)
1655 
1656 - FPU
1657   - fixed bug [ 452275 ] fprem emulation bug (Volker)
1658   - fixed bug [ 648579 ] Mac OSX >>PANIC<< FPU_printall. There was an 
1659     endianness issue with the fpu (Christophe)
1660 
1661 - I/O devices
1662   - rewrote pc_system timers (Kevin)
1663   - biosdev
1664     - this new device handles the panic/error/info/debug messages sent 
1665       by the Bios and VGABios.  It was previously done in the unmapped device. 
1666   - cdrom
1667     - implementation of the function READ TOC for cdrom image files. (Volker)
1668     - function capacity() for win32 fixed. Now it returns the number of blocks
1669       instead of bytes. (Volker)
1670     - added multiple cdrom support for win32 (NT/2000 version untested). The
1671       ASPI version uses the cdrom drives in the system's order. Drive letters
1672       are not used by ASPI. (Volker)
1673     - fix configure script's cdrom detection on BeOS (Bryce)
1674     - fix physical CD change at runtime (Bryce)
1675   - cmos
1676     - fix panic when WinXP read port 70h (Christophe)
1677     - add ps/2 style century at index 37 to allow WinXP to boot. (Bryce)
1678   - dma
1679     - DMA register and unregister functions for DMA channels added and macros
1680       for DMA functions defined. The changes are based on the Plex86 functions.
1681       (Volker)
1682     - implementation of the DMA controller reset (Volker)
1683     - the value of the command register must be always 0x00 (BX_ERROR fixed)
1684   - floppy (Volker)
1685     - implemented Tape Drive Register (Dave Poirier)
1686     - added support for 360k floppy images
1687     - the skip flag (SK) in command 'read sector' is ignored now
1688     - floppy read and write function do not set the 'seek end' bit in status
1689       register 0 (fixes SF bug #553377)
1690     - the status of the 'disk changed' line depends on the selected drive.
1691       The digital input register is now an array (DIR[4]).
1692     - apply patch [ 635021 ] floppy cleanup by Alex Thiel 
1693     - distinguish between floppy drive type and media type
1694   - hard drive
1695     - add largefiles support, to allow disk images larger than 2gig.
1696       (Stu Grossman)
1697     - missing conditions for lower_irq() added (Volker)
1698     - several noncritical panics replaced with BX_ERRORS and the controller
1699       returns an error code until we implement the features (Volker)
1700     - applied patch from Carl Sopchak for booting  sco openserver
1701     - allow disk block access only if concatenated images are not used
1702       (Christophe)
1703     - fix bug [ 419415 ] netbsd 1.5 rescue disk won't boot (Volker)
1704     - multiple drq atapi data transfers corruption fixed (Christophe)
1705     - added some commands to the unsupported "Set Feature" commands (Christophe)
1706     - speedups in repeated IO transfers (Kevin)
1707     - support for Peter Tattam's external disk simulator (Bryce)
1708     - 4 channels / 8 devices support (Christophe)
1709     - "inquiry" atapi command results corrected (Volker)
1710     - check for incomplete devices configuration before starting the
1711       simulation (Bryce)
1712     - implemented the different bios disk translation schemes (Christophe)
1713   - keyboard and mouse
1714     - add commands 0xd2, 0xdd and 0xdf (Dave)
1715     - fix bug [ 613975 ] wxWindows: params redefined on restart (Bryce)
1716     - in function mouse_motion(): added parentheses to fix compilation problems
1717       with MSVC. See SF bug #575301. (Volker)
1718     - added missing register_irq() for the PS/2 mouse IRQ12 (Volker)
1719     - fix "AltGr" key on European keyboards wxWindows/win32, SDL (Volker)
1720   - NE2000
1721     - function reset() clears the IRQ line (Volker)
1722     - added TUN/TAP interface (Renzo Davoli, Christophe)
1723     - fix DOS based packet drivers that use an odd count for the NE2000 DMA (Peter)
1724     - changed "TCR write, reserved bits set" panic into an error, fixes
1725       networking with debian image (Bryce)
1726   - parallel
1727     - parport1 enable/disable support added (Volker)
1728   - PCI (Volker)
1729     - implementation of the PCI device register mechanism
1730     - PCI memory handling moved to the memory code
1731     - replaced memcpy() in pci_read() by a more portable code. Problems with
1732       PCI on big-endian machines are fixed now (SF bug #638481).
1733     - implementation of the PCI-to-ISA bridge started (still incomplete)
1734   - PIC
1735     - fixed detection of single mode and level senistive mode in ICW1 (Volker)
1736     - fixed handling of rotate_on_autoeoi for master PIC (Volker)
1737     - irq mask is now cleared on initialization (Dave)
1738     - fixed lockup during mouse movements during win98 install. (patch from 
1739       Wilfried Weissmann)
1740   - PIT
1741     - Added realtime PIT support (Greg)
1742   - Sound Blaster 16
1743     - it used to enable itself all the time; now only when you ask
1744     - fix memory leaks (Bryce)
1745   - serial
1746     - don't cause problems when serial device is disabled (Volker)
1747   - unmapped
1748     - add programmatic shutdown feature at port 0x8900 (Christophe)
1749   - vga
1750     - VBE fixes (Jeroen, Volker)
1751     - CRTC fixes (Volker)
1752     - sequencer reset with bits 'reset1' and 'reset2' implemented (Volker)
1753     - add charmap change support (used by SDL, win32 and wxWindows gui) (Volker)
1754     - screen dimensions / updates for some graphics and text modes fixed (Volker)
1755     - use the start address when calculating the byte offset for standard
1756       EGA/VGA modes (Volker)
1757     - byte offset for modeX fixed (use value of CRT register 0x13) (Volker)
1758     - text mode memory mappings 0 and 1 support (Christophe)
1759     - fix bug [ 612741 ] VBE mem conflicts w/ local APIC address (Jeroen)
1760     - fix bug #635223: VGA tiles array access out of bounds (Bryce)
1761 
1762 - ROM BIOS
1763   - improve compile process. Now bioses for 1, 2, 4 and 8 processors 
1764     are built at the same time (Bryce)
1765   - fixes to be able to compile the bios with gcc2 or gcc3 (Jeroen and
1766     Christophe)
1767   - changes on boot signature check (Christophe):
1768     - never done for cdroms
1769     - always done for hard-disks
1770     - conditional for floppies
1771   - add keyboard int16 functions 0x09 (get keyboard functionality) and 
1772     0x0a (get keyboard id) (Christophe)
1773   - fix bug [ 629810 ] int 16/ah=01 broken? Enable interrupt on entering
1774     int16 handler (Christophe)
1775   - new keyboard init in POST (patch from Adam Sulmicki)
1776   - flush input and output keyboard buffer before keyboard self test
1777     (Volker and Christophe)
1778   - fix bug [ 547603 ] kbd up/down arrows in dos install (Christophe)
1779   - fix bug [ 549815 ] bios wrongly loads CS,ES.  CS and ES are set to 0
1780     before the bootloader code is called. (Christophe)
1781   - PCI functions support (Volker) :
1782     - BIOS32 service directory
1783     - real mode PCI int1a functions 
1784     - protected mode PCI int1a functions 
1785   - fix reset for MS-DOS and Win95 (Volker)
1786   - 360K floppy support (Volker)
1787   - enhanced ata/atapi support (Christophe) :
1788     - 4 channels / 8 devices
1789     - device auto detection (with help from Adam Sulmicki)
1790     - EDD3.0 
1791     - 32bits device access
1792     - optional disk translation "large", "r-echs" or "lba" (up to 8.4GiB)
1793   - re-enable harddisk controller interrupt after reads/writes. 
1794     Win95 can now use native access to harddisks and cdroms. (Volker)
1795   - shutdown status handling (cmos index 0x0f) (Christophe) :
1796     - fix bug [ 601166 ] CMOS Problem @ "0x0F Index 0x05 data". After reset
1797       execution will resume by a jump to [0x40:0x67] if the shutdown status 
1798       is 5 
1799     - the bios don't panic any more if the shutdown status is 9
1800   - two parallel ports detection in POST (Volker)
1801   - two serial ports detection in POST (Volker)
1802   - add int15 extended memory function 0xe820 (patch from osmaker) and
1803     0xe801 (patch from Hartmut Birr)
1804   - fix return values on some int15 functions (Bryce)
1805   - fix int70 handler overlapping int08 handler (Christophe)
1806   - simplify 8 processors BIOS for operating systems which don't do 
1807     paranoia/sanity checks (Zwane)
1808 
1809 - configuration interface
1810   - wxWindows config interface now allows you to change every bochsrc
1811     option using menus and dialog boxes.  There is also the beginning of
1812     a wxWindows graphical debugger, but it needs a lot of work before it
1813     will be useful.
1814   - renamed control.cc to textconfig.cc.  Now we're calling it a 
1815     text configuration interface, instead of a control panel.
1816 
1817 - display libraries
1818   - Even though we've had them for years, the term "display library" is new in
1819     release 2.0.  In the gui directory, Bochs has a number of different C++
1820     files which you can select to display the text and graphics on the
1821     simulated monitor.  Each of these is a display library.  The display
1822     libraries are:
1823       x          use X windows interface, cross platform
1824       win32      use native win32 libraries
1825       carbon     use Carbon library (for MacOS X)
1826       beos       use native BeOS libraries
1827       macintosh  use MacOS pre-10
1828       amigaos    use native AmigaOS libraries
1829       sdl        use SDL library, cross platform
1830       svga       use SVGALIB library for Linux, allows graphics without X
1831       term       text only, uses curses/ncurses library, cross platform
1832       rfb        provides an interface to AT&T's VNC viewer, cross platform
1833       wx         use wxWindows library, cross platform
1834       nogui      no display at all
1835   - it is now possible to compile Bochs with support for many different
1836     display libraries and select the one to use at runtime (even without
1837     plugins).  See the display_library directive in .bochsrc.
1838   - add new svgalib display library by Igor Popik
1839   - fix bug [ 614724 ] SDL can get stuck in full screen mode
1840     display libraries such as SDL which have a full screen mode can be
1841     dangerous, if Bochs does not switch back to normal display mode at
1842     the right time.  This is fixed for SDL and the new svga.
1843   - keymap support added in SDL interface (Bryce, Volker)
1844   - new keymap files: SDL keymaps for US and DE keyboards,  X11 keymap
1845     for Danish keyboard.
1846   - use keyboard mapping for keyup messages too
1847   - renamed almost all references to data type "Boolean" to "bx_bool".
1848     The Boolean data type was defined in Carbon.h headers, and conflicted
1849     with Bochs's definition.  See bug [ 618388 ] Unable to boot under MacOS X
1850     Exceptions: When talking to the Carbon library, you must use Boolean.
1851     Also, siminterface.h uses standard "bool" instead of bx_bool.
1852   - "User" button added in toolbar. It can send keyboard shortcuts to
1853     the guest OS. (Volker)
1854   - snapshot improvement and memory leak fixed (Volker)
1855   - testing framework, based on comparing screen content, added (Greg)
1856   - term display library:
1857     - support for color terminal, function keys, clear screen (Volker)
1858     - solaris compilation problem (bug #613393) fixed (Bryce)
1859   - win32 display library:
1860     - use native win32 toolbar for headerbar, use system palette (Volker)
1861   - many Carbon interface improvements:
1862     - patch [ 549248 ] Fix Carbon key & menu handling (Chris Thomas)
1863     - partial keymap support, copy&paste, menu items fixed, new toolbar
1864       behavior, dialog box display for panics (Br'fin)
1865   - sdl display library:
1866     - keyboard fixes and key mapping added (Bryce)
1867     - when captured, the mouse is forced to stay in the window. fix bug
1868       [ 619283 ] SDL: os mouse pointer leaves the window (Bryce)
1869   - x display library:
1870     - bug [ #537593 ] vga font not being found fixed. If vga font not 
1871       found, search for a font called "-*-vga-*" (Bryce)
1872     - keyboard problems fixed (Bryce, Christophe)
1873   - beos platform, any display library: add a nice icon to the executable
1874     (Bernd Korz)
1875 
1876 - wxWindows
1877   - wxWindows is a cross-platform C++ user interface library which you can
1878     download for free at http://wxwindows.org.  wxWindows provides C++
1879     classes for all sorts of GUI controls (buttons, menubars, etc.) and
1880     implements all of them using the native controls on the platform.
1881   - The new wxWindows port of Bochs provides both a graphical configuration
1882     interface (for editing bochsrc options) and a display.  It was
1883     written by Bryce Denney, Don Becker, Dave Poirier, and Volker Ruppert.
1884   - In release 2.0, we concentrated on making the wxWindows port as stable
1885     and functional as the other interfaces.  wxWindows provides a great
1886     toolbox that we can use to make Bochs easier to learn and use.
1887   - wxWindows supports charmap changes, keyboard mapping, cut and paste,
1888     text and graphics modes, text mode cursor size, and mouse (Volker, Bryce)
1889   - To compile Bochs with wxWindows, you should install wxWindows 2.3.3
1890     or later.  Then configure Bochs with --with-wx.
1891   - if you have multiple versions of wxWindows installed (e.g. a debug
1892     and a release version), you can set $WX_CONFIG before configuring 
1893     to select between them. (Bryce)
1894 
1895 - Bochs debugger
1896   - [ 609616 ] remote GDB stub
1897     add GDB Stub support from Johan Rydberg, with bug fixes by Stu Grossman
1898   - add hooks for external debugger for win32.  The external debugger 
1899     that connects to Bochs is distributed in 
1900     build/win32/tattam-external-debugger.zip in binary form. Turn on
1901     with --enable-external-debugger.  (Peter)
1902   - add "debugger_log" option to bochsrc, which logs all debug output
1903     into a file. feature [ 629068 ] (Christophe)
1904   - debugger is now usable in fullscreen SDL and SVGA guis.  It will
1905     switch back to text mode for each debug prompt (Bryce)
1906   - disassembly output cleaned up and improved 
1907     (Kernel Panic, Peter Tattam, Jonathan Shapiro, Luiz Henrique Shigunov)
1908   - fix [ 628806 ] debug: x/c prints unprintable chars (Bryce)
1909   - add the beginnings of a wxWindows debugger. Not ready for mainstream use
1910     yet. CPU register display is implemented, and you can type any debugger
1911     command you want into the Debug Console window. (Bryce)
1912   - add help command (Alexander Krisak)
1913   - symbol table lookups cleaned up a bit (Bryce)
1914   - displays the address of the caught watchpoint, feature #435271 (Dave)
1915   - remove obsolete "loader"
1916 
1917 - utilities
1918   - fixed bug [ 487758 ] bximage fails on file creation >2048meg 
1919     Bximage should now work up to 32gig. (Bryce)
1920   - on win32, both bximage and niclist now ask the user to press
1921     return before exiting, so that you have time to read the results
1922     before the window disappears. (Bryce)
1923 
1924 -------------------------------------------------------------------------
1925 Changes in 1.4.1 (June 22, 2002):
1926 
1927 - now cdrom is enabled in configure, unless you specifically disable
1928   it with --disable-cdrom. (Christophe)
1929 - fix compile error in main.cc when SMP or APIC is enabled (Dave)
1930 - the runtime menu now displays 11 (continue) by default (Bryce)
1931 - initialize DMA controller before floppy and SB16
1932 - fix DMA panic when installing win95 (Volker)
1933 - first character of the vga bitmap is blank on win32 (Volker)
1934   Before, it was incorrectly coded as a '@'.
1935 - AltGr key on European keyboards works now on win32 (Volker)
1936 - fix problem with console/serial port on Bochs exit (Volker)
1937 - enable serial port for GNU and GNU/Linux (Volker)
1938 - small documentation fixes (Volker)
1939 - remove unnecessary include statements for X11 (Volker)
1940 - italian keymap added (Emanuele Goldoni)
1941 - fix win32 ethernet frames error. It will no longer reject packets
1942   that are less than 60 bytes long. (Peter Tattam)
1943 - BIOS fixes :
1944   - win2k cd-boot (Christophe)
1945   - emm386 crash (Dave)
1946   - cs=0 at boot time (Christophe)
1947   - keyboard failure in scandisk (Dave)
1948 - fix bug in forming the 64-bit APIC base address from two 32-bit registers.
1949   A compiler warning in cpu/proc_ctrl.cc pointed this out.
1950 - fix default choice in the runtime options menu
1951 
1952 -------------------------------------------------------------------------
1953 Changes in 1.4 (March 27, 2002):
1954 - ROM BIOS
1955   - Boot from CDROM!  Christophe Bothamy added partial El Torito support in
1956     rombios.c, which allows Bochs to boot cdroms.  Booting from win2k or winXP
1957     cdrom is not supported yet.  The default BIOS includes El Torito functions.
1958     the boot line must say "cdrom".
1959     Example:
1960       boot: cdrom
1961   - implementation of int13 diskette function 5 (format track) (Volker)
1962   - initialisation of PIC and DMA-2 added to POST code (Volker)
1963 - configure script (Bryce Denney)
1964   - the configure script now detects your platform and provides a default
1965     GUI and the required compiler flags.  All supported platforms should
1966     compile with simply "configure" and "make".
1967   - default guis by platform: 
1968      - win32/windows/cygwin: win32 gui
1969      - MacOS X: carbon gui
1970      - MacOS 9 or earlier: macos gui
1971      - BeOS: beos gui
1972      - AmigaOS: amigaos gui
1973      - all other platforms: X windows gui
1974   - compile arguments supplied by configure script
1975     - win32: too many to list here; see documentation
1976     - cygwin: -mno-cygwin -DWIN32
1977         - MacOS X: -fpascal-strings -fno-common -arch ppc -Wno-four-char-constants
1978                    -Wno-unknown-pragmas -Dmacintosh
1979   - the --with-GUINAME configure option is only needed if you want to override
1980     the default GUI.  This is the only way to use the Term, RFB, and SDL
1981     GUIs.
1982 - VGA
1983   - added VESA BIOS Extensions code by Jeroen Janssen (banked mode only, LFB
1984         support in patches)
1985   - vga memory read/write functions in text mode fixed
1986   - implementation of CGA mode 320*200*4 (patch from Sebastien Bechet)
1987 - VGA BIOS
1988   - updated Christophe Bothamy's LGPL VGA BIOS to version 0.3a.  This consists
1989     of a bug fix for function ah=13 and VBE support by Jeroen Janssen.
1990 - networking
1991   - chipmem read/write limit fixed (Mike Lerwill)
1992   - writing a byte in 16-bit mode now possible (Mike Lerwill)
1993   - new ethertap interface for Linux, which allows Bochs to talk to 
1994     the local machine and the internet (Bryce Denney)
1995   - NE2000 is now enabled by default on Win32, Cygwin, and Linux compiles
1996     in the .conf.* scripts and release binaries.
1997   - fix check for auto transmit disable, which was checking the wrong bit
1998     (Peter Tattam)
1999   - Win32 only
2000     - niclist.exe has been revised to work on more Windows versions, and it
2001       suggests a usable ne2k line (Dean Payne)
2002     - fix timeout setting so that ne2000 does not slow down the whole
2003       simulation (Don Becker)
2004     - bug fix: be able to handle multiple packets that arrive at once
2005       (Mike Lerwill)
2006 - GUI changes
2007   - cdrom button: click this to notify Bochs when you changed the CDROM (Volker)
2008   - snapshot button: saves the text on the Bochs screen into a file called
2009     snapshot.txt (Volker)
2010   - copy button: on Win32 and X windows, copy the text on the Bochs screen
2011     to the clipboard (Volker)
2012   - paste button: on Win32 and X windows, paste the characters on the 
2013     clipboard into the Bochs window.  This requires keyboard_mapping to
2014     be enabled. (Bryce Denney)
2015   - improved text mode cursor for Win32, X11, and SDL (Volker)
2016   - new SDL interface (Dave Poirier, debugging by Christophe, Volker, Bryce)
2017     SDL is a graphics library that has works on many platforms.  This interface
2018     is experimental, and is missing a few features of the standard Bochs
2019     interfaces: extended keys (arrows, keypad).
2020   - MacOS X: add MacOS X carbonized event handlers by Jeremy Parsons
2021   - X windows: when not enough colors can be allocated, force use of 
2022     private colormap (Bryce Denney)
2023   - bug #490570 fixed: OUTB set and command 0xaa encountered (Dave Poirier)
2024 - keyboard
2025   - completed keyboard emulation with the implementation of the three scancodes
2026     sets (mf1, mf2, mf3) with or without translation. This is based on Ludovic 
2027     Lange's plex86 keyboard patch. (Christophe Bothamy)
2028   - added a "keyboard_type" option, that defines the answer to an "identify 
2029     keybord" request to the keyboard controller. The available values are
2030     "xt","at","mf".  (Christophe Bothamy)
2031   - added an optional keyboard_mapping option that enables to use your
2032     country specific keyboard with Bochs.  If enabled, the keymap file must be 
2033     specified in bochsrc.  The available keymaps are US, German, Spanish and
2034     French for PCs running X11.  Contributions are welcomed.  (Christophe
2035     Bothamy)
2036   - added Windows(tm) key definitions (Volker Ruppert)
2037   - added paste button, which causes the emulated keyboard to type characters
2038     from the system clipboard.  This only works when keyboard_mapping is
2039     enabled. (Bryce Denney)
2040 - cdrom
2041   - bug fix: win32 could not read a cdrom image file
2042   - eject cd support for linux (patch from Petr Stehlik)
2043   - BeOS fixes
2044   - changing cdrom media is possible now with CDROM button
2045 - sound blaster(tm) emulation (Volker)
2046   - you can use --enable-sb16=freebsd now
2047   - 16-bit DMA controller added
2048   - 16-bit mode of the SB16 implemented (output to file works)
2049 - floppy drive (Volker Ruppert)
2050   - implementation of the floppy command 'format track'
2051   - implementation of read / write operations with MT=0
2052   - behaviour of a few floppy commands fixed
2053   - floppy reset behaviour fixed
2054   - lots of other fixes
2055 - fixed bug [ #468340 ] pic:slave: OCW3 not implemented.  Now the slave PIC
2056   supports all the modes that the master PIC does, and nobody will see this
2057   message again.
2058 - serial port (by Volker Ruppert unless noted)
2059   - improved IRQ handling
2060   - now Windows 95 serial driver works correctly
2061   - fixed the return value of the MCR (loopback bit)
2062   - interrupt reasons LSR change and MSR change implemented
2063   - the number of data bits is considered when sending data
2064   - all serial port changes are tested in loopback mode only
2065   - serial port emulation fixed for FreeBSD and OpenBSD (Stu Grossman)
2066   - fix receiver poll frequency so that it doesn't slow emulation (Stu Grossman)
2067 - Bochs debugger
2068   - when tracing, print the instruction just before it is executed, instead
2069     of just after (Greg Alexander)
2070   - after a triple-fault panic, you can now return to the debugger
2071 - symmetric multiprocessor (SMP) simulation
2072   - no more panic if you read the EOI register
2073   - fixed default destination format in local APIC
2074   - fix SMP instruction tracing in bochs debugger
2075   - fix deadlock when debugger enabled and all processors HLT
2076   - MSR support added by Zwane Mwaikambo
2077 - simulation of interrupts is more accurate (Volker)
2078   - implemented edge triggered interrupt mode
2079   - added functions raise_irq() and lower_irq()
2080 - programmable interrupt timer (Greg Alexander)
2081   - fixed the PIT gate and improved the PIT printing options
2082   - experimental real-time PIT
2083 - parallel port improvements (Volker Ruppert)
2084 - bug fix: hard disk errors caused by overflowing imul in the BIOS code.  
2085   Sebastian Bechet and Peter Tattam tracked it down and fixed it.
2086 - fix some memory leaks (patch from Darko Tominac)
2087 - Double-Word IO is supported for ATA devices
2088 - fix bash-specific syntax in install-x11-fonts script
2089 - print stack_return_from_v86 error only the first 100 times
2090 
2091 -------------------------------------------------------------------------
2092 Changes in 1.3 (December 10, 2001):
2093 - networking works on Windows and Linux platforms
2094 - emulated cdrom can now read from ISO image files, on any platform.
2095 - new PIT model by Greg Alexander which is much more complete than the
2096   old one.  The new PIT is used by default, but you can switch back to 
2097   the old one if you configure with --disable-new-pit.
2098   (PIT = 8254 programmable interrupt timer)
2099 - new configuration menus by Bryce Denney, which allow you to change any
2100   bochsrc option using text menus, then save the configuration into
2101   a new bochsrc file for later use.  You can disable the new code using
2102   configure --disable-control-panel.  Also you can use the command
2103   line arguments -nocp or -nocontrolpanel.  Also, there is a new
2104   "Config" button on the GUI that allows limited changes to the 
2105   configuration at runtime, such as changing the floppy disk.
2106 - add docbook documentation directory in the sources under doc/docbook.
2107   The transition from HTML to docbook documentation is still in progress.
2108 - Add new log action "ask", as shown in these example bochsrc lines:
2109     panic: action=ask
2110     error: action=ask
2111   When an event occurs which is set to "ask", you get a beep and message
2112   on the text terminal that asks what you want to do.  Choices are: continue,
2113   continue and disable future messages from this device, quit immediately,
2114   or segfault (where abort() function is available).  If compiled with
2115   --enable-debugger, you can also choose to enter the debugger.
2116 - Parallel port emulation cleaned up by Volker Ruppert.  See .bochsrc for
2117   syntax of new parport1 line in bochsrc.
2118 - PCI support improved by Volker Ruppert, including BIOS changes.  Still
2119   not complete.
2120 - floppy controller returns a proper error response if you try to write
2121   a read-only disk image.  For systems such as DOS that actually use the BIOS
2122   services, it was also necessary to add code in int13_diskette_function to
2123   recognize a write-protected error and return the correct error status code
2124   (AH=3, Carry Set).
2125 - the ROM BIOS now prints panic messages to the console.  Thanks to Cliff
2126   Hones for his console display code.
2127 - the ROM BIOS detects nonbootable disks (Barry Allard), and prints a message
2128   on the console.  Barry Allard's patch who helped with checking the boot
2129   signature.
2130 - LBA support added for hard disks.  (Not tested very much.)
2131 - add dependencies to makefiles
2132 - logging code moved into a separate file, logio.cc
2133 - new option --enable-slowdown-timer, by Greg Alexander, which kicks in if
2134   Bochs simulation time starts to run faster than real time.  This helps to
2135   keep the Bochs clock in sync with the real clock when the CPU is mostly
2136   idle.
2137 - new option --enable-iodebug, by Dave Poirier, which creates an I/O
2138   interface to the debugger.  This lets you write software to be emulated
2139   in Bochs which can turn on instruction, register, or memory tracing
2140   using I/O accesses.
2141 - improved detection of readline in configure script
2142 - configure substitutes the version number into many files, instead of
2143   using sed in the makefile.  There are still a few uses of sed remaining.
2144 - you can now use environment variables in bochsrc values.  For example,
2145   diskd: file="$BOCHS_IMG/diskd.img", cyl=615, heads=6, spt=17
2146 - configure with --prefix=PATH works now
2147 - running configure from a different directory works now, thanks to 
2148   a patch from Edouard G. Parmelan
2149 - fix [ #433759 ] virtual address checks can overflow.
2150   > Bochs has been crashing in some cases when you try to access data which
2151   > overlaps the segment limit, when the segment limit is near the 32-bit
2152   > boundary.  The example that came up a few times is reading/writing 4 bytes
2153   > starting at 0xffffffff when the segment limit was 0xffffffff.  The
2154   > condition used to compare offset+length-1 with the limit, but
2155   > offset+length-1 was overflowing so the comparison went wrong.
2156 - cmpxchg8b patch from Michael Hohmuth <hohmuth@innocent.com>
2157 - apply patch from Thomas Fitzsimmons <fitzsim@cygnus.com> to fix compile
2158   problems when BX_SUPPORT_PAGING and BX_USE_TLB are turned off
2159 - fix bug introduced in 1.2.1 which caused spurious exceptions.
2160   See patch #439314, Exception 1 (debug) on HALT, from
2161   thomas.petazzoni@meridon.com.
2162 - add panic in ctrl_xfer32.cc where the IRET32 implementation is broken.
2163   This only happens if you are NOT in vm8086 mode or protected mode.
2164   The intent is to warn people when they are getting bad emulation, and
2165   encourage people to report how they got to that point.
2166 - apply patch from Santiago Bazerque.  See this bug report:
2167   [ #463018 ] retf not removing parameters sometimes
2168 - fix bug [ #461730 ] IRETD causes problems if NT-flag is set
2169   reported by Peter Lammich.
2170 - apply patch [ #455014 ] CR0 bug in 80486, described as:
2171   > In the register CR0, when the bit PM is enabled, the bit 4 is 0
2172   > when should be 1.
2173 - apply patch from Mike Rieker <mrieker@o3one.org> associated with this bug
2174   report: [ #480422 ] gdt 'accessed' bit
2175 - in task_switch when it tried to ensure that the old TSS was paged in,
2176   it actually used the new TSS address, fixed.
2177 - updated the instrumentation code, and added a working example.  To try
2178   it, configure --enable-instrumentation=instrument/example1.  Then when
2179   you run bochs, you will get one line for each instruction PC and for
2180   each I/O access in a new file called bxevent.txt.
2181 - set a bit in the CMOS that says the processor has an FPU.  This is
2182   from patch [ #455006 ] Device byte is not initialized aptly.
2183   Author did not leave their name.
2184 - add logging code to the "null ethernet" which does not require host OS
2185   support.  All this does is print the outgoing packets from the guest OS.
2186 - cleanup of log functions (Todd Fries)
2187 - add BX_ERROR for every command in ATAPI-6 that bochs does not support.
2188   I still need to do add some commands from older specs that are obsolete
2189   (and not listed) in ATAPI-6.  Commands that aren't in the spec will still
2190   panic.
2191 - only put 0xf into the 2nd hard disk field when the cdrom is not present.
2192   This is a patch from Volker Ruppert <Volker.Ruppert@t-online.de>, who
2193   comments: "The fdisk command reports an unusable second harddisk if the cdrom
2194   is enabled. This patch helps, but I don't know if it is the right way."
2195 - make hard disk code return error codes when data is not available instead
2196   of just panicing.  In particular, if the logical sector is out of bounds
2197   or the disk image cannot be read/written at the desired offset, we now
2198   abort the ATA command and return an error code.  Many of the old BX_PANIC
2199   messages are turned to BX_ERROR, so they will still appear in the
2200   log, but now the device model will try to communicate this fact to
2201   the OS instead of simply giving up.
2202 - don't blindly reject odd length atapi commands.  There are cases when
2203   it's really ok according to ATA-4.
2204 - for big endian machines, reversed the bit fields in interrupt_reason.
2205   This was pointed out by Nicholai Benalal.
2206 - extended keyboard improvements by Dave Poirier
2207 - major mouse patch from Dave Spring, that implements several missing 
2208   mouse modes.
2209 - commit keyboard patch from David Haslam <dch@sirius.clara.co.uk>
2210   posted to mailing list, that addresses the problem of each key press
2211   printing ^@.  See cvs log for details.
2212 - mouse performance fixes by Greg Alexander and Robb Main
2213 - NE2000 fixes by Frode Vatvedt Fjeld, ecelca@yahoo.com, Greg Alexander,
2214   and angelos@openbsd.org.
2215 - fix bug [ #468340 ] pic:slave: OCW3 not implemented.  Some event handling
2216   code appeared in the master pic but not the slave pic.
2217 - fix compile problems in SB16 code, related to fpos_t being treated as 
2218   an integer.
2219 - patch from Volker Ruppert <Volker.Ruppert@t-online.de> to fix
2220   midi output file so that winamp can play it.
2221 - some cleanup of serial code by Todd Fries and Volker Ruppert, but it
2222   doesn't work yet.
2223 
2224 X Windows specific:
2225 - commit patch from David Haslam <dch@sirius.clara.co.uk>
2226   [ #455763 ] Cursor trail with DOS Edit/Minix vi
2227 - error for missing fonts now points to the documentation
2228 - new option --enable-idle-hack, by Roland Mainz, which makes Bochs more
2229   friendly toward other processes when its CPU is idle.  Presently, 
2230   this option is specific to X windows.
2231 
2232 Win32 specific:
2233 - now Windows 95/98/ME can read the physical cdrom (Don Becker)
2234 - The default configuration for Win32 VC++, given in .conf.win32-vcpp,
2235   now enables the NE2000 and renames all .cc files to .cpp.  This keeps VC++
2236   happy but may make it hard to use CVS.
2237 - The default configuration for Cygwin, given in .conf.win32-cygwin, now
2238   enables cdrom and SB16.
2239 - See "new docs" on the web site for compile instructions for VC++ and Cygwin.
2240 - The sources include a VC++ workspace, in addition to the old "nmake"
2241   makefile.
2242 - ethernet support (emulated NE2000 card), coded by Don Becker.  This
2243   implementation requires a library called WinPCap, which you can 
2244   download from http://netgroup-serv.polito.it/winpcap.
2245 - new utility called niclist.exe which lists the ID number of all your network
2246   cards (well probably you just have one).  The ID be used when setting up your
2247   .bochsrc.
2248 - patch [ #466403 ] make text colors more accurate.  The author did not leave
2249   his/her name.
2250 - fix GUI bug [ #452159 ] win32: mouse stuck if bochs win partly off screen
2251   Now we center the mouse periodically, whether or not the mouse has
2252   wandered outside of the window or not.
2253 - event handler recognizes the extended keycode flag
2254 - fixes for raw floppy and floppy disk images (Don Becker)
2255 
2256 Linux specific:
2257 - Ethernet (emulated NE2000 card) now works in Linux!  Contributed by
2258   splite@purdue.edu.  This has been tested using host OS kernel 2.2.14, and
2259   works with telnet, ftp, irc, lynx, etc.  Because it is a packet filter
2260   solution, you aren't able to talk to the host machine, only to other 
2261   machines on the network.  
2262 - The default configuration for Linux, given in .conf.linux, now enables
2263   the NE2000 model.
2264 - RPM build process configures with --prefix=/usr so that everything is
2265   installed in /usr/bochs instead of /usr/local/bochs.
2266 - DLX Linux disk image is now installed so that only root can write it, to
2267   avoid security problems.  When you run the bochs-dlx script, it creates a
2268   local copy in your home directory and then runs it.
2269 - code that determines the capacity of a cdrom now works for both ATAPI
2270   and SCSI drives (splite@purdue.edu)
2271 - applied patch from bochs@sigint.cs.purdue.edu.  The comments are:
2272   > The Linux 2.4.5 CD-ROM driver sends a READ_DISC_INFO command which caused
2273   > an "unrecognized ATAPI command" panic.  Looks like READ_DISC_INFO is only
2274   > recognized by CD-R and CD-RW drives, so I ignore it for now.
2275 
2276 Amiga MorphOS specific:
2277 - Bochs now compiles and works on Amiga MorphOS.  Configure with
2278   --with-amigaos.  For AmigaOS only, see .bochsrc for use of fullscreeen and
2279   screenmode options.  The Amiga MorphsOS is written and maintained by
2280   Nicholai Benalal <nicholai@chello.se>.
2281 - raw cdrom supported if you configure with --enable-cdrom
2282 
2283 BeOS specific:
2284 - Bochs compiles and works on BeOS.  Configure with --with-beos.
2285   Bernd Thorsten Korz <bernd.korz@insidebeos.de> maintains the BeOS port.
2286 - raw cdrom supported if you configure with --enable-cdrom
2287 
2288 MacOS X specific:
2289 - Bochs now compiles and works on MacOS X.  Configure with --with-carbon.
2290   Emmanuel Mailliard <e.rsz@libertysurf.fr> ported the Macintosh code to the
2291   Carbon API.
2292 - The MacOS X application is built using (gasp) mkdir, copy, and rez.
2293   Surely this is not the right way, but it works.
2294 - raw cdrom supported if you configure with --enable-cdrom
2295 
2296 RFB mode:
2297 - apply patch.rfb-mouse by MURANAKA Masaki (monaka@users.sf.net)
2298   see this source forge bug [ #457968 ] Strange mouse motion on RFB
2299 - add a retry loop in RFB code, so that if port 5900 is not available
2300   it can try 5901, etc.
2301 
2302 Bochs Debugger:
2303 - do a vga update whenever you print a debugger prompt.
2304 - added debugger command "info fpu" that prints the FPU registers.  If you
2305   do "info all" you get cpu and fpu registers.
2306 - added debugger command "info ne2k" which prints all the registers
2307   of the NE2000 model
2308 - add ability to do register tracing and flag tracing (Dave Poirier).
2309   Try the trace-reg-on and trace-reg-off commands.
2310 - instruction trace now includes time ticks
2311 - fixed problems in which bochs compiled with debugger measured time 
2312   differently from bochs compiled without debugger.  Also when instruction
2313   trace was enabled, breakpoints and control-C did not work.  Also,
2314   breakpoints at the beginning of an interrupt handler did not work.
2315 
2316 -------------------------------------------------------------------------
2317 Changes in 1.2.1 (June 12, 2001):
2318 - more work on makefile for building RPMs
2319 - [ #432382 ] build debian packages patch
2320   add build/debian directory from Rob Lemley <rjlemley@calypsoblue.org>
2321   which allows us to make Debian packages!
2322 - optimize for speed when simulating one processor.  Now 1-processor
2323   performance should be equivalent to 1.1.2.
2324 - [ #425640 ] sb16 assumes fpos_t is long int
2325   This fixes compiles of iodev/sb16.cc on linux systems with newer libraries
2326   in which fpos_t is not an integer.
2327 - [ #432488 ] SMP:assert "n_logfn < MAX_LOGFNS" fails
2328   increase MAX_LOGFNS since we ran out of them on an SMP simulation with
2329   4 processors
2330 - changes to compile clean on cygwin:
2331   - don't use the WIN32 snprintf define for cygwin
2332   - add ssize_t definition for cygwin
2333   - only compile "struct timeval tval" if select is available
2334     on that platform.
2335 - [ #432491 ] SMP: CPUID says no APIC feature
2336   clean up inconsistent use of BX_SUPPORT_APIC and BX_APIC_SUPPORT, which
2337   caused the CPUID to report no APIC was present
2338 - [ #431025 ] --enable-external-device-models broken
2339   removed configure options for external-device-models and 
2340   external-cpu-memory.  These don't work and aren't going to be fixed.
2341 - [ #429448 ] configure: -lreadline when not there
2342   Now configure allows you to choose not to use readline, even if it's found
2343   on your system.
2344 - [ #428915 ] apply extended keyboard patch
2345   extended keyboard patch by Dave Poirier <eks@void-core.2y.net>
2346 - [ #428626 ] if no X11 found, configure&make fails
2347   Now configure halts if X windows is selected but no X libraries are found.
2348 - updated rombios to version 1.13.  This fixes several problems:
2349   - [ #430472 ] DOS HIMEM "A20 line" error
2350     This problem was apparantly caused when Bryce added a function that prints
2351     the BIOS version, and he called it too early in the boot process.  Now the
2352     same function is called later, and it doesn't break the A20.
2353   - [ #431010 ] SMP structure overwritten in v1.2
2354     SMP structures were getting overwritten by BCC-generated data, 
2355     preventing SMP operating systems from detecting that other processors
2356     were available.
2357   - [ #431016 ] bios: SMP struct has wrong entry count
2358     SMP structure had the wrong entry counts
2359 - very minor doc updates (typos, replace broken link to mtools info)
2360 - quit when the user clicks the power button, even if they have disabled
2361   panics.
2362 - win32 now defaults to having mouse capture mode turned off.  For new users,
2363   it would be distressing for their mouse cursor to disappear until they
2364   pressed F12.
2365 - [ #428222 ] vga font not installed
2366   added script called "install-x11-fonts" which should help people install
2367   the VGA font on X windows systems, if it isn't already there.
2368 
2369 -------------------------------------------------------------------------
2370 Changes in 1.2 (June 3, 2001):
2371 - [ #427259 ] rombios HALT calls don't print
2372   Fixed bios/rombios.c HALT macro so that it writes the line number of the
2373   panic to the PANIC_PORT (port 0x400) and then does NOT do a halt 
2374   instruction.  Also changed iodev/unmapped.cc so that the line number written
2375   to PANIC_PORT is displayed as a BX_PANIC message.  Because the HALT
2376   macro now triggers the normal panic behavior, it can be controlled by
2377   the bochsrc.
2378 - [ #429016 ] crash if no hard drive
2379   rombios used to call HALT macro if no hard drive was found. Now it only
2380   calls HALT if a hard drive has an illegal geometry.
2381 - [ #425388 ] include source for simple disk img tool
2382   [ #428478 ] mkimg tool creates image 1 byte too big
2383   Added bximage tool, which makes empty floppy and hard disk images.
2384   It is now included in the top level Makefile, so it will get built
2385   by default on all platforms.
2386 - [ #426036 ] eth_fbsd.cc compile problem on solaris26
2387   added configure test so that "configure --enable-ne2000" only
2388   includes the Berkeley Packet Filter code (eth_fbsd) if the header
2389   file <net/bpf.h> can be found.  If you don't have BPF the ne2000
2390   will not actually move packets, but at least it will compile clean now.
2391 - [ #428214 ] 1.2.pre1 need documentation for binaries
2392   Write windows and linux specific documentation to be installed in
2393   binary releases.
2394 - [ #429258 ] disable RESET for version 1.2
2395   Since soft reset was not completely working, I reverted the reset patch.
2396   Now it does panics on reset instead of trying to reboot, as the old
2397   bochs versions did.
2398 - [ #428222 ] Should the linux RPM install vga font?
2399   now font/vga.pcf will be installed in the RPM package
2400 - [ #429020 ] stop renaming the BIOS!!!
2401   new BIOS changes are now in BIOS-bochs-latest, instead of a BIOS 
2402   whose name changes every time we change anything!  To help distinguish
2403   different BIOS versions, the BIOS now prints its RCS Id into the
2404   log file.
2405 - [ #428625 ] compile problem if SHOW_IPS is on
2406   removed extra paren that broke SHOW_IPS
2407 - [ #428219 ] PCI doesn't compile with SMF=1
2408 - [ #429375 ] pthreads detection broken
2409 - [ #429073 ] configure: if no X11, makes bad config
2410 - [ #429229 ] install current .bochsrc in binary rels
2411 - install Tim's man pages on linux RPM
2412 - BIOS prints messages in log in case of boot failure
2413 - rewrote instructions for compiling in win32 (win32.txt)
2414 - fixed link in HTML changelog.html to point to the real sources on SF.
2415 - added missing LOG_THIS definition to gui/nogui.cc and gui/rfb.cc
2416 - added additional check for null pointer in debugger exit routine
2417 - added diskd to .bochsrc
2418 
2419 -------------------------------------------------------------------------
2420 Changes in version 1.2-pre1 (May 25, 2001):
2421 - major cleanup of .bochsrc
2422 - major cleanup of stderr output: prints bochs version information when
2423   starting, and at the end it tries to print the message that caused 
2424   bochs to quit.
2425 - two hard disk support (diskd).  At present, you cannot have two 
2426   hard drives and a cdrom at the same time, because there is only
2427   one IDE controller with two channels.
2428 - split hard disk support allows different partitions to be stored in
2429   different image files
2430 - two new GUI choices: term mode and RFB mode.  Term is a text-only
2431   interface, and RFB creates a server that can be accessed using
2432   the AT&T VNC viewer.
2433 - now Bochs can simulate an SMP machine, if you configure with
2434   --enable-processors=N.  Configuring more than one processor has
2435   a major performance impact, so the default is 1 processor.
2436   See SMP documentation for more details.
2437 - to make SMP work, bx_mem and bx_cpu have been replaced with
2438   bx_mem_array[] and bx_cpu_array[].  The cpus are referenced through
2439   the BX_CPU(n) macro and memories through the BX_MEM(n).  Normal
2440   mode has one cpu and one memory, SMP mode has multiple cpu's and 
2441   one memory, cosimulation mode has multiple cpus and multiple memories.
2442 - use --enable-cpu-level=6 to make Bochs claim to be a Pentium Pro.
2443   The only feature that requires CPU level 6 is apic support.
2444 - new logging system by Todd Fries, which has 4 levels of event
2445   severity (panic, error, info, debug).  There are new .bochsrc
2446   options that control what action to take when a 
2447   panic/error/info/debug event occurs.
2448 - now searches for .bochsrc, bochsrc, bochsrc.txt, and (on unix only)
2449   $HOME/.bochsrc.
2450 - use GNU readline library if --enable-debugger is on, as long as readline
2451   can be found on the machine
2452 - configure checks for existence strtoull and strtouq. if neither exists, 
2453   Bochs uses its own implementation
2454 - applied patches from Cliff Hones <cliff@aonix.co.uk> to fix up the
2455   rombios.  This includes many improvements, which you can list by
2456   doing "cvs log -r 1.6 bios/rombios.c" or looking at cvsweb.
2457 - added suggested geometries of larger disks to the documentation
2458 - this is the first release to have official binary packages for win32
2459   and Linux.  There is a new "make rpm" in the top-level Makefile which
2460   will create an RPM of the current bochs directory.  To use this,
2461   become root and type "configure; make rpm".
2462 - applied some FreeBSD patches from Maxim Sobolev (cdrom and serial).
2463 
2464 -------------------------------------------------------------------------
2465 Changes in version 1.1.2 (bugfix3, May 16, 2001):
2466 - updated Elpin VGA BIOS to version 2.40, and changed pointer in .bochsrc
2467 - fixed .conf.x86 script so that it uses c++ instead of egcs for C++ files
2468 - now Makefile targets that recurse into subdirectories use double colons,
2469   so that it will always recurse into subdirectories.  Now a single make
2470   command should notice a modified source file in a subdir.
2471 - fixed bug in bx_panic.  If BX_PANIC_IS_FATAL==0 and a (non-fatal) panic 
2472   occurs, it used to call bx_atexit() and then return.  It should never
2473   call bx_atexit, which starts to shut down the simulator, unless it's
2474   really going to quit!
2475 - support 2.88 MB floppy disks
2476 - since dataseghack is checked in as non-executable, invoke it with 
2477   "csh dataseghack"
2478 - double fault patch from Thomas Petazzoni <thomas.petazzoni@ifrance.com>,
2479   sourceforge patch #423726.
2480 - removed -fno-builtin from fpu makefiles
2481 - redefine u_char, u_short, etc. in order to not conflict with system
2482   definitions of these same types.
2483 - in cdrom.cc, remove the extern "C" { } structure around some of the
2484   header files.  This is no longer necessary.
2485 - do not panic on hard disk command 0x1f2 (read sector count)
2486 - in keyboard.cc:
2487   - apply Todd Fries' reset patch
2488   - recognize most of the "Grey" insert/delete/home/end/etc. keys the
2489     same as keypad keys.
2490   - removed panic on "kbd_ctrl_to_kbd(): got value of 0x??"
2491   - implement mouse command 0xf6 (set defaults)
2492 - apply Suboner@aol.com's Xwindows timing patch from
2493   http://sourceforge.net/tracker/index.php?func=detail&aid=418730&group_id=12580&atid=312580
2494 - remove all patches from patches subdir which have already been applied.
2495   The remaining ones are under consideration but not applied.
2496 
2497 -------------------------------------------------------------------------
2498 Changes in version 1.1.1 (bugfix2, April 9, 2001):
2499 - in soundwin.cc, arg 3 should be typecast to LPWAVEFORMATEX
2500 - in fpu_entry.c, Bryce mistyped his own initials!
2501 - in configure.in and configure, define good defaults for VC++
2502    #define BX_64BIT_CONSTANTS_USE_LL 0
2503    #define inline __inline
2504    #define BX_NO_EMPTY_STRUCTS 1
2505    #define BX_NO_ATTRIBUTES 1
2506    #define BX_HAVE_HASH_MAP 0
2507 - in config.h.in, fixed typo in #error message
2508 
2509 -------------------------------------------------------------------------
2510 Changes in version 1.1 (bugfix1, April 6, 2001):
2511 
2512 (FIXED, patch #414360: update copyrights)
2513 update headers.  Change copyright to 2001, replace config.h.in header with
2514 the standard mandrake header that every other file uses.
2515 
2516 (FIXED, patch #414356: inlines)
2517 make macro to replace inline and static/extern keywords.  Then make 
2518 define the macro appropriately based on configure.
2519 
2520 (FIXED: patch #414234: macos-no-strdup)
2521 --with-macos should force HAVE_STRDUP=0.
2522 
2523 (FIXED, patch #403027: Fix mouse bugs in Linux and BSD)
2524 Linux and BSD (maybe others) cause panic in mouse code.
2525 
2526 (FIXED, patch #413851: const64bit patch)
2527 VC++ does not allow "LL" after 64-bit constant.
2528 
2529 (FIXED, patch #413859: fabs symbol conflict)
2530 fpu code contains fabs, which conflicts with math library fabs.
2531 
2532 (FIXED, patch #403004: Implement aborts on a few SET FEATURE commands...)
2533 Implement aborts on a few SET FEATURE commands for ATA.
2534 
2535 (FIXED, patch #402991: Update to iodev/vga.cc to add 3c3h read support)
2536 Implement VGA enable register, at 0x3c3.
2537 
2538 (FIXED, patch #403027: Fix mouse bugs in Linux and BSD)
2539 Mouse panic in linux/BSD: 
2540 KBD: io write 0x64: command = 0xD3(write mouse outb)
2541 
2542 (FIXED, patch #414229: panic-is-fatal)
2543 Allow user to decide if panic is fatal, or just a warning
2544 
2545 (FIXED, patch #414230: sun-cdrom)
2546 Support Sun CDROM
2547 
2548 (FIXED, patch #413574: portable1)
2549 there are cases where a pointer is cast to a 32-bit int,
2550 then later cast to a pointer and dereferenced, which crashes any 64-bit
2551 machine.
2552 
2553 (FIXED, patch #413574: portable1)
2554 some machines have no snprintf or strtoull.  include a replacement function
2555 when needed.
2556 
2557 (FIXED, patch #413574: portable1)
2558 Some compilers don't allow "typedef struct { } foo;"
2559 
2560 (FIXED, patch #413574: portable1)
2561 Some people don't have hash_map.h, used in dbg_main.cc.  Disable this code
2562 if hash_map.h not found.
2563 
2564 (FIXED, patch #413574: portable1)
2565 Some compilers can't handle labels at the end of a block, as in
2566    void main () { /*code*/ label: }  
2567 
2568 (FIXED, patch #413574: portable1)
2569 Most compilers can't handle __attribute__.  Use macro to define it away.
2570 
2571 (FIXED, patch #413574: portable1)
2572 if --enable-debugger, turn on --enable-disasm too.
2573 
2574 (FIXED, patch #413574: portable1)
2575 ome compilers can't handle any chars after an #endif
2576 
2577 (FIXED, patch #413574: portable1)
2578 wrong type arg1 of bx_dbg_watch and bx_dbg_unwatch.  The code in
2579 lexer.l was calling it with integers (not booleans)
2580 
2581 (FIXED, patch #413574: portable1)
2582 in fpu code, "setcc" macro was implemented with braces inside parens,
2583 which some compilers don't understand.
2584 
2585 (FIXED, patch #413574: portable1)
2586 in fpu_entry.c, FPU_load_int32 was consistently called with arg1 of
2587 type (s32 *), but should be (u32 *)
2588 
2589 (FIXED, patch #413574: portable1)
2590 comment out sigcontext structure in fpu/stubs/asm/sigcontext.h because
2591 it conflicted with sigcontext of other machines.  This struct was never
2592 used by bochs anyway.
2593 
2594 (FIXED, patch #414046: portable2)
2595 move definition of missing library functions into osdep.h and osdep.cc,
2596 include contents of macutils*.
2597 
2598 (FIXED, patch #414061: win32-rawcd)
2599 CDROM drive letter for WIN32 should not be hardcoded.
2600 
2601 (FIXED, patch #414060: win32-rawfloppy)
2602 Bypass fstat when opening WIN32 raw floppy disk.
2603 
2604 (FIXED, patch #414226: pit-panic)
2605 WinME install dies with panic:
2606 bochs: panic, pit: outp(43h): comm Bh, mode 00, bcd 00 unhandled
2607 I think I had a similar problem.  All three timers should support modes
2608 0, 2, and 3.  Other modes really aren't implemented.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.