Changes in 2.2.1 (July 8, 2005):
- Fixed several compilation warnings and errors for different platforms (Volker) - Fixed FPU tag word restore in FXRSTOR instruction (Stanislav) - Added missing scancodes for F11 and F12 to BIOS translation table (Volker) - Bochs disassembler bugfixes (h.johansson) - About 5% emulation speed improvement (h.johansson) - Handle writing of zero to APIC timer initial count register (Stanislav) - Enable Idle-Hack for 'TERM' GUI (h.johansson) - Reduced overhead of BX_SHOW_IPS option to minimum. Now every simulation could run with --enable-show-ips without significant performance penalty. (Stanislav) - Fixed pcipnic register access (Volker) - Limited write support for TFTP server in 'vnet' networking module added (Volker) - Changed some timing defaults changed to more useful values (Volker) - WinXP/2003 style common controls now supported (Vitaly Vorobyov) - Updated LGPL'd VGABIOS to version 0.5c (Volker)
------------------------------------------------------------------------- Changes in 2.2 (May 28, 2005):
Brief summary : - New floating point emulator based on SoftFloat floating point emulation library. - improved x86-64 emulation - Cirrus SVGA card emulation added - status bar with indicators for keyboard, floppy, cdrom and disk (gui dependant) - many improvements in Bochs emulated I/O devices (e.g. PCI subsystem)
Detailed change log :
- CPU - fixes for booting OS/2 by Dmitri Froloff - fixed v8086 priveleged instruction processing bug (was also reported by LightCone Aug 7 2003) - exception process bug (was reported by Diego Henriquez Sat Nov 15 01:16:51 CET 2003) - segment validation with IRET instruction - CS segment not present exception processing with IRET - several fixes by Kevin Lawton - add MSVC host asm instructions (patch by suzu) - fixed bug in HADDPD/HSUBPD (SSE3) instructions - fixed bug in float to integer SSE/SSE2 convert instructions - fixed BCD instructions implementation - execution speed improvements (sshwarts and psychosmur) - fix MSR_APICBASE base address (Kangmo Kim, Christian Neubert) - change BX_PANIC messages to BX_INFO when behaviour exactly matches Intel docs - EIP > CS.limit case should always cause #GP(0), even in real mode. Fixed all jump, call and ret instructions for 16/32 modes - fixed using invalid segment register for MOV instruction (h.johansson) - fixed ET bit mismatch between CR0 and SMSW instruction - fixed possible simulator #DIVZERO fault when executing IDIV instruction - fixed undocumented flags handling for BTS, BTR, SHR, SHLD, MUL and IMUL instructions (Stanislav Shwartsman) - added missed #GP(0) exception when loading incorrect flags combination to CR0 (Stanislav Shwartsman) - in case of --enable-ignore-bad-msr enabled read ignored MSRs as zero - enabled #DE, #TSD and #MCE bits in CR4 register, previosly setting of one of these bits generated #GP(0) (Stanislav, Volker Ruppert) - exceeding the instruction length limit of 15 bytes (this only can occur when redundant prefixes are placed before an instruction) generate #GP(0) (Stanislav Shwartsman) - corrected PAE functionality
- CPU (x86-64) - fetchdecode fixes for x86-64 and 3DNow! (Stanislav) - fixed CF flag handling for SHL instruction in x86-64 mode (Stanislav) - implemented CR8 register (aliased to APIC.TPR[7:4]) (Stanislav) - implemented NXE bit (No-Execute page protection) support (Stanislav) - STOSQ instruction emulation fixed (Avi Kivity) - allow null SS selector for MOV SS, POP SS, and LSS instructions in long mode (Avi Kivity) - ignore segment bases for all segments (except FS and GS) in long mode (Avi Kivity) - allow SYSENTER/SYSEXIT instructions together with x86-64 (Stanislav) - canonical address checking for RIP (Stanislav)
- FPU (Stanislav Shwartsman) - totally rewritten all FPU code based on softfloat library - significantly improved accuracy of all floating point instructions. - implemented all missed P6 and PNI floating point instructions. - hundreds of bug fixes in FPU code.
TODO: ! Unmasked underflow/overflow should correct the result by magic number for all operations, including float32 and float64.
- APIC (Zwane Mwaikambo) - APIC arbitration - Processor priority - Various interrupt delivery fixes - Focus processor checking - ExtINT delivery
- Disassembler - fixed MOV opcode 0x88, had exchanged the operands (h.johansson) - fixed MOV opcode 0xA3, had wrong operand size (h.johansson) - fixed BOUND opcode 0x62 (Stanislav) - fixed CALLW opcode 0xFF /3 and JMPW opcode 0xFF /5 (Stanislav) - fixed INS opcode 0x6D, had wrong operand size (Stanislav) - fixed disassembly for repeatable instructions (Stanislav) - fixed sign-extended immediate opcodes (Stanislav) - fixed MOVSS/MOVSD instructions opcode names (Stanislav) - fixed NEG instruction opcode name (Stanislav) - fixed CMPXCHG8B instruction, had wrong operand size (Stanislav) - fixed floating point instructions operands (Stanislav) - experimental support of AT&T syntax in disassembler (Stanislav)
- I/O devices - general - handle cpu reset through port 0x92 - new memory handler API for PCI i/o and memory handling (Frank Cornelis) - speaker emulation for Linux (David N. Welton) and Win32 (Volker Ruppert) added - pci - PCI slot configuration added for 5 slots (Volker) - PCI irq routing, irq sharing and level sensitive irq mode implemented - ne2k device appears as a Realtec 8029 NIC if connected to a PCI slot - PCI IDE controller dummy device added - PCI host device mapping for Linux (Frank Cornelis) - PCI Pseudo-NIC emulation (Michael Brown) - serial - multiple serial port support added (4 ports now available) - partial raw serial support on win32 (transmit data) - serial port i/o mode option added (modes: null, file, term, raw, mouse) - parallel - multiple parallel port support added (2 ports now available) - mouse - serial mouse support (Volker) - PS/2 and serial wheel mouse support (Ben Lunt) - usb - USB mouse and keypad support (Ben Lunt) - config option to specify devices connected to USB ports - vga - VBE 8 bit DAC support added - VBE memory now registered using DEV_register_memory_handlers() - CL-GD 54xx SVGA emulation added (Makoto Suzuki) - vga extension option added (choices: vbe, cirrus, none) (Volker) - floppy - raw floppy access now works on Win9x host (Ben Lunt) - sb16 - MacOSX sound support (Brian Huffman) - networking modules - new: 'eth_vnet' simulates ARP, DHCP, ICMP-echo and read-only TFTP (m_suzu, easeway) - new: 'eth_vde' for Virtual Distributed Ethernet (Renzo Davoli)
- System BIOS - turn floppy motor off 2 seconds after last read/write/recalibrate command (Ben Lunt) - int13_cdrom / 32 bit register update fixes for FreeBSD cdrom boot (Fabrice Bellard) - APM and system shutdown support (Fabrice Bellard) - checksum calculation for expansion ROMs - extended floppy parameter table (Mike Nordell, Derek Favcus) - PCI IRQ initialisation added - boot sequence with up to 3 boot devices added
- display libraries - status bar with indicators for cdrom, floppy, harddisk and keyboard added (done in rfb, sdl, win32, wx and x) - 3rd (middle) mouse button now supported (rfb, sdl, win32, wx, x) - mouse wheel support (sdl, win32, x) - CTRL key + middle mouse button now used to toggle the mouse capture mode (sdl, win32, wx, x) - text mode split screen feature added (sdl, win32, wx, x) - new gui function returns the display library capabilities (xres, yres, bpp) for the Bochs VBE support - display library specific options added - currently supported: rfb: timeout (time to wait for client connection) sdl: fullscreen (startup in fullscreen mode) win32: legacyF12 (use F12 to toggle mouse) - new graphics update API added (used by svga_cirrus) (Robin Kay)
- configuration interface - win32: gui runtime dialogs replace textconfig runtime dialogs - set default IPS to 10000000 in .bochsrc sample - SB16 options dmatimer and loglevel now available at runtime
- configure script / compile - --enable-ignore-bad-msr (ignore bad MSR references) option is enabled by default - --enable-mmx enabled by default only if cpu-level >= 5 - --enable-4meg-pages will be enabled by default if cpu-level >= 5 - fixes for Solaris SunPro (Robin Kay) - --enable-pni option added - --enable-show-ips option added, enable Instruction Per Second counter in log file - autodetection for lowlevel sound support added
- documentation - a bunch of updates in user and documentation docs (Alexander Schuch)
- SF patches applied [894595] MSR_APICBASE always returns APIC ADDRESS 0 by Kangmo Kim [907163] ctrl_xfer8 clean/speed up [907161] clean/speed up of io.cc [899972] data xfer performance patch V 2.0.4 [904549] imul gives incorrect result in long mode [877510] amd64 fixes... [903465] SEGV in iodev/ne2k.cc line 1211 on Alpha architecture by Christian Lestrade [903332] copy the bximage result to clipboard, etc by Lukewarm [950905] Do not PANIC on rare, bad input from user-mode by h.johansson [924428] ET bit mismatch between CR0 and MSW [869822] a real SVGA implementation by m_suzu [867045] fix for compiler errors on VC++ by m_suzu [838601] support for the over 2GB disk size with MSVC++ [874816] local ARP/ping/DHCP simulator by m_suzu [976066] Keyboard: Get controller version by Ben Lunt [832330] ROMBIOS improvement (reduce stack consumption, etc.) [977900] READ_CDROM_TOC and base address by Ben Lunt [961665] WinXP patch to read physical CDROM's TOC by Ben Lunt [978793] CDROM_SENSE_MODE medium_type by Ben Lunt [615457] gif to png migration [1021767] Portability in sb16ctrl.c by Robert Millan [690400] gzip is confused by GZIP variable in Makefile [567595] guess floppy image size from image file length by Tal Benavidor [888426] bochsrc to make vnet useful by m_suzu [1021758] GNU/k*BSD host support by Robert Millan [969967] int 15/ah=87h clearing cr0 by Ben Lunt [1048327] Russian Keymap by Dmitry Soshnikov [851332] DESTDIR support for install_dlx by Ville Skytt [970929] gdbstub support for MinGW tool chains by Muranaka Masaki [1021740] Turn gdb stub into a runtime option by Charles Duffy [1063329] RFB key press/release bug fix by Remko van der Vossen [1079240] Wheel Mouse by Ben Lunt [1087537] Fix for Win9x CD boot by lukewarm [1083218] Start of wheel for USB #2 by Ben Lunt [1098480] bochsrc: fixed floppya example by Alexander Schuch (ci-dev) [1094407] configure.in: changed wxWindows to wxWidgets by Alexander Schuch [1092058] serial.cc debug output cleanup by Ben Lunt [1101165] APIC base address by Christian Neubert (flashburn) [1093796] Fix for bug #1093786 (Nigel Horne) [1082584] The start of Bus mice and USB mice by Ben Lunt [1104695] msvc6 compatibility update (Royce Mitchell III) [1059199] VGA text font bug fix (Anonymous) [1108001] Null pointer on bx_atexit() (Ben Lunt) [1112093] Fixed mouse cursor remain area drawing (Anonymous) [1114826] Fix PCIBIOS (Destruction prevention of esi and edi) [1095473] Reading from a CDRW (Fixed) by Ben Lunt [1123895] x86-64 gdb/debugger fixes by Avi Kivity [1145423] stosq simulation bugfix by Avi Kivity [1151012] allow null ss on x86-64 by Avi Kivity [1153327] ignore segment bases in x86-64 by Avi Kivity [1153511] Fixed broken screen update (VBE) [1152808] use 'install' instead of 'cp' during installation by Avi Kivity [1159626] bugfix [1156776] keyboard scanmode fault by Rene Kootstra [843328] PATCH: support for Flat-style ToolBar with Win32GUI [1198308] PATCH: fix incorrect moving mouse cursor when wheel used [1200515] add TFTP server to vnet & ipv4 bug fix by easeway [1203305] tuntap incompatibility by Jan Kratochvil
- SF patches partially applied [896733] Lazy flags, for more instructions, only 1 src op [1005422] Improve mouse cursol Grub when 2 buttons-mouse use (WIN32) (TODO: improved japanese keyboard support)
- patches applied - patch.rombios.markevich (Start/Stop Wait Timer) (Kory Markevich) - patch.apic-zwane (APIC fixes) (Zwane Mwaikambo) - patch.v8086-exception.lightcone (LightCone)
- these S.F. bugs were closed #957660 >>PANIC<< APIC: R(curr timer count): delta < initial #1192654 60 x 90 text not quite right... #1189097 "configure --with-sdl --with-rfb" doesn't compile #1188980 Crash on XP when break into debugger #1186693 Improving quality of ./configure --help #1185245 Errors Making Bochs with Mingw32 #1185289 PSE is not enabled by default on Pentium #1170620 info cpu scrolls away, is too long #1157998 ips shown even when waiting for input #663108 APIC Timer Bug #831750 bochs unlike real PC in paging #1182698 PAE support doesn't work #954400 debugger causes segfaults when gcc 3.4.0 is used #1171312 Possible SMP problem with ICACHE pageWriteStamp #1179964 PANIC: RIP>CS.limit when jumping to longmode #1171067 configure fails to add -lpthread #1171065 Term UI needs -lncurses #1171061 SDL GUI startup failure #1022056 win32 error build debug version..c2146 #957190 error while attempting to compile sb16.cc #804797 Debugger: visualization problem (jmp) #675523 2.0.1 doesn't run on W2K? #1167358 When using 5430PCI in DR-DOS Bochs would panic with a PUSHAD #1164654 Bochs VBE bios causing exception 0B in Windows 95 (SVGA bios) #1162983 conflicts which configure could detect #1164536 Windows 95 B crashes during install #526978 cygwin: in an rxvt, stdout is flaky #542303 >>PANIC<< call_protected: CS selector null #859457 BRICKS game doesn't work #1159639 text modes on address A0000-BFFFF are not handled properly #1164225 define BX_SUPPORT_X86_64 0 #1163720 ROL bug #1156776 keyboard scanmode fault #1162042 Duke Nukem 3D: >>PANIC<< iret: VM set on stack, CPL!=0 #1161945 ctrl_xfer32 compile/make error #1157124 Bochs doesn't run with large amounts of memory in bochsrc #1154266 weird INT handling in V86 mode #1157051 default Bochs CVS doesn't work-out-of-the-box #923954 enter() with level > 0, >>PANIC<< iret: return CS selector #1098476 Privilege Problem after SYSEXIT #1121734 Bochs crashes when shutting down Win95 #1099294 VESA for Win98 bogus #1112836 PGE-Bit crashes Bochs #947586 The specification difference in x86-64 emulation #1117145 Push reset Button, APIC0 Error occur #1123043 fpu stack pointer changed *despite* fault occured (e.g. #pf) #1122066 PANIC: iret: IP > descriptor limit when installing os/2 warp #809574 rm -f segfaults #593952 SuSE rm segfaults #929783 floppy not recogniced since 2.1 #1099298 SB16 for Win98 Bogus #1079483 Reading from a CDRW #549793 flaw in interrupt gate handling(exception.cc) #692055 SMP Error #805479 Booting from disk causes illegal instruction warnings #909677 pc-speaker doesn't work #831751 behaviour unrealistic #661213 CR4.TSD is broken #685508 PANIC: prefetch: RIP > CS.limit #1037923 Non-executable page support missed (NX bit, x86-64) #1106530 wrong disassemble result #1105208 drive order for boot gets saved wrong #661060 Problem with Win98SE #837377 Norton Ghost don't boot #876689 Unknown register 0x17 [CPU] / WIN98SE #947282 Bochs segfault #963317 Persistent Win98SE #1101168 APIC base address change #680737 panic when installing winme #1097187 Install FC3 on bochs-win failed #875461 vgabios-lgpl should be default #594797 Bochs segfaults #602994 bochs breaks boot kernel #571539 FreeBSD Install from CD Fails #774257 Device doesn't work under W98 #759228 Installing Suse 8.2 in Bochs on WinME #792561 cant boot freebsd 5.1 from cdrom #804004 Live cd will halt on boot.. #956173 FreeBSD won't boot iso install images in Bochs v2.1 or 2.2. #864401 >>PANIC<< jmp_ev: IP out of CS limits! #853831 Error on int 15h #1094150 DR-DOS 7.03: panics when using multitasker #655592 win98 hardwaredetection #1093786 Solaris 9 installation CD fails #959585 USB UHCI IO-Device #963314 Redhat Fedora Installer Kernel Panic and Crash #1086920 Bochs (cvs) doesn't compile on FreeBSD 5 #879050 Bochs reports enabled APIC without support #1071199 dBaseII cause prefetch: RIP > CS limit #1070812 typecast error while compiling wx.cc #1068786 FSINCOS Cos value wrong at 90 degrees #675248 Panic: EIP > limit on win98 install #829793 [CPU ] prefetch: RIP > CS.limit #1034059 >>PANIC<< prefetch: running in bogus memory #1067813 pbm fpu_proto.h:144 ebuild gentoo bochs 2.1.1 #922034 bios not aliased at 0xFFFFF000, registers wrong after reset #912666 Configure fails on Yellow Dog Linux 3.0.1 #922038 Unexisting memory should read back as 0xFFFFFFFF #1019723 HD image #1057814 Shadow RAM not aligned #1057240 Invalid IRET32 implementation #809682 >> PANIC << : prefetch: RIP > CS.limit #618680 memory referencing problems #724262 A few things (Windows 2.03, Wolfenstein) #985375 Crash Mandrake 7.1 #913418 compiler errors with --enable-external-debugger option #708847 CR8 access should not panic X86-64 #1039499 Compile error pcipnic.cc (cygwin) #978024 compile against wxGTK-2.5.2 fails #639073 MacOSX: Networking not implemented #639074 MacOSX: Soundblaster not implemented #963264 Latest CVS --enable-pcidev fails to configue on YDL Linux
|
|