version 0.10.6:
  - e1000: ignore reset command (Kevin Wolf)
  - fix VNC memory allocation (Stefan Weil)
  - fix raw_pread_aligned return value (Christoph Hellwig)
  - allow monitor interaction when using -incoming exec: (Chris Lalancette)
  - fix -net socket,listen (Jan Kiszka)
  - live migration: don't send gratuitous packets all at once (Gleb Natapov)
  - serial: fix lost characters after sysrq (Jason Wessel)
  - Fix prototype of zfree (Stefan Weil)
  - Handle EINTR with exec: migration (Uri Lublin)
  - Delete io-handler before closing fd after migration (Uri Lublin)
  - Fix qemu_aio_flush (Andrea Arcangeli)
  - lsi53c895a: Implement additional registers (Sebastian Herbszt)
  - virtio-blk: fix warning (Gerd Hoffman)
  - i386: fix cpu reset (Nitin Kamble)
  - kvm: fix irq injection into full queue (Jan Kiszka)
  - Prevent CD-ROM eject while device is locked (Mark McLoughlin)
  - Fix screen dump with blank screen (Eduardo Habkost)
  - Fix memory leak with cpu_unregister_map_client (Isaku Yamahata)
  - Fix memory leak in SDL (Jan Kiszka)
  - Fix build on OS X 10.4 (John Arbuckle)
  - Fix leak of vlan clients after hot remove (Mark McLoughlin)
  - Fix migration after hot remove with eepro100 (Mark McLoughlin)
  - Don't start a VM after failed migration if stopped (Anthony Liguori)
  - Fix live migration under heavy IO load (Glauber Costa)
  - Honor -S on incoming migration (Paolo Bonzini)
  - Reset HPET config register on reset (Beth Kon)
  - Reset PS2 keyboard/mouse on reset (Dinesh Subraveti)

version 0.10.5:
  - kvm: trim unsupported cpu features from cpuid (Avi Kivity)
  - kvm: provide a better error message for -smp > 1 (Mark McLoughlin)
  - Remove initrd printfs (Richard Jones)
  - Initial variables found by valgrind (Jean-Christophe Dubois)
  - Fix -initrd with > 4GB guests (Glauber Costa)
  - Fix busy loop on live migration for certain platforms (Uri Lublin)
  - Remove GCC 3.x requirements from docs (Hollis Blanchard)
  - ETRAX: fixes for kernel command line, ethernet address, bmi (Edgar Iglesias)
  - CRIS: Fix bmi (Edgar Iglesias)
  - Fix bounce buffer errors (Avi Kivity)
  - Fix regression in -kernel (Anthony Liguori)

version 0.10.4:
  - Improve block range checks to remove integer overflow (Kevin Wolf)
  - e1000: do not re-init PCI config space 0 (Amit Shah)
  - fix AIO deletion race (Alex Graf)
  - reset option roms on reboot (Glauber Costa)
  - fix qcow2 corruption in cluster freeing (Gleb Natapov)
  - Enable power button event generation (Gleb Natapov)

version 0.10.3:
  - fix AIO cancellations (Avi Kivity)
  - fix live migration error path on incoming
  - avoid SEGV on pci hotplug failure (Chris Wright)
  - fix serial option in -drive
  - support DDIM for option roms (Glauber Costa)
  - avoid fork/exec on pre-2.6.27 kernels with KVM (Jan Kiszka)
  - block-vpc: don't silently create smaller images than requested (Kevin Wolf)
  - Fix non-ACPI timer interrupt routing (Beth Kon)
  - hpet: fix emulation of HPET_TN_SETVAL (Jan Kiszka)
  - kvm: fix cpuid initialization (Jan Kiszka)
  - qcow2: fix corruption on little endian hosts (Kevin Wolf)
  - avoid leaing memory on hot unplug (Mark McLoughlin)
  - fix savevm/migration after hot unplug (Mark McLoughlin)
  - Fix keyboard mapping on newer Xords with non-default keymaps (balrog)
  - Make PCI config status register read-only (Anthony Liguori)
  - Fix crash on resolution change -> screen dump -> vga redraw (Avi Kivity)

version 0.10.2:

  - fix savevm/loadvm (Anthony Liguori)
  - live migration: fix dirty tracking windows (Glauber Costa)
  - live migration: improve error propogation (Glauber Costa)
  - qcow2: fix image creation for > ~2TB images (Chris Wright)
  - hotplug: fix error handling for if= parameter (Eduardo Habkost)
  - qcow2: fix data corruption (Nolan Leake)
  - virtio: fix guest oops with 2.6.25 kernels (Rusty Russell)
  - SH4: add support for -kernel (Takashi Yoshii, Aurelien Jarno)
  - hotplug: fix closing of char devices (Jan Kiszka)
  - hotplug: remove incorrect check for device name (Eduardo Habkost)
  - enable -k on win32 (Herve Poussineau)
  - configure: use LANG=C for grep (Andreas Faerber)
  - fix VGA regression (malc)
	
version 0.10.1:

  - virtio-net: allow masking of notifications on empty queue (Alex Williamson)
  - e1000: fix rx descriptor low threshold logic (Alex Willaimson)
  - x86 tcg: add NULL checks to lsl instruction (Jan Kiszka)
  - kvm vga: fix screen corruption with -std-vga and Windows (Avi Kivity)
  - kvm vga: fix screen corruption with Ubuntu installations (Glauber Costa)
  - virtio-net: check right return size on sg list (Alex Williamson)
  - Make qemu_announce_self handle holes (live migration after hotplug)
    (Marcelo Tosatti)
  - Revert r6804-r6808 (qcow2 allocation info).  This series of changes added
    a high cost to startup for large qcow2 images (Anthony Liguori)
  - qemu-img: fix help message (Aurelien Jarno)
  - Fix build for non-default installs of SDL (Anthony Liguori)
  - Fix race condition in env->interrupt_request.  When using TCG and a dynticks
    host timer, this condition could cause TCG to get stuck in an infinite
    loop (Aurelien Jarno)
  - Fix reading encrypted hard disk passwords during early startup (Jan Kiszka)
  - Fix encrypted disk reporting in 'info block' (Jan Kiszka)
  - Fix console size with tiny displays (MusicPal) (Jan Kiszka)
  - Improve error handling in bdrv_open2 (Jan Kiszka)
  - Avoid leaking data in mux'ed character devices (Jan Kiszka)
  - Fix initial character device reset (no banner in monitor) (Jan Kiszka)
  - Fix cpuid KVM crash on i386 host (Lubomir Rintel)
  - Fix SLES10sp2 installation by adding ISTAT1 register to LSI SCSI emulation
    (Ryan Harper)

version 0.10.0:

  - TCG support (No longer requires GCC 3.x)
  - Kernel Virtual Machine acceleration support
  - BSD userspace emulation
  - Bluetooth emulation and host passthrough support
  - GDB XML register description support
  - Intel e1000 emulation
  - HPET emulation
  - VirtIO paravirtual device support
  - Marvell 88w8618 / MusicPal emulation
  - Nokia N-series tablet emulation / OMAP2 processor emulation
  - PCI hotplug support
  - Live migration and new save/restore formats
  - Curses display support
  - qemu-nbd utility to mount supported block formats
  - Altivec support in PPC emulation and new firmware (OpenBIOS)
  - Multiple VNC clients are now supported
  - TLS encryption is now supported in VNC
  - MIPS Magnum R4000 machine (Hervé Poussineau)
  - Braille support (Samuel Thibault)
  - Freecom MusicPal system emulation (Jan Kiszka)
  - OMAP242x and Nokia N800, N810 machines (Andrzej Zaborowski)
  - EsounD audio driver (Frederick Reeve)
  - Gravis Ultrasound GF1 sound card (Tibor "TS" Schütz)
  - Many, many, bug fixes and new features

version 0.9.1:

  - TFTP booting from host directory (Anthony Liguori, Erwan Velu)
  - Tap device emulation for Solaris (Sittichai Palanisong)
  - Monitor multiplexing to several I/O channels (Jason Wessel)
  - ds1225y nvram support (Herve Poussineau)
  - CPU model selection support (J. Mayer, Paul Brook, Herve Poussineau)
  - Several Sparc fixes (Aurelien Jarno, Blue Swirl, Robert Reif)
  - MIPS 64-bit FPU support (Thiemo Seufer)
  - Xscale PDA emulation (Andrzej Zaborowski)
  - ColdFire system emulation (Paul Brook)
  - Improved SH4 support (Magnus Damm)
  - MIPS64 support (Aurelien Jarno, Thiemo Seufer)
  - Preliminary Alpha guest support (J. Mayer)
  - Read-only support for Parallels disk images (Alex Beregszaszi)
  - SVM (x86 virtualization) support (Alexander Graf)
  - CRIS emulation (Edgar E. Iglesias)
  - SPARC32PLUS execution support (Blue Swirl)
  - MIPS mipssim pseudo machine (Thiemo Seufer)
  - Strace for Linux userland emulation (Stuart Anderson, Thayne Harbaugh)
  - OMAP310 MPU emulation plus Palm T|E machine (Andrzej Zaborowski)
  - ARM v6, v7, NEON SIMD and SMP emulation (Paul Brook/CodeSourcery)
  - Gumstix boards: connex and verdex emulation (Thorsten Zitterell)
  - Intel mainstone II board emulation (Armin Kuster)
  - VMware SVGA II graphics card support (Andrzej Zaborowski)

version 0.9.0:

  - Support for relative paths in backing files for disk images
  - Async file I/O API
  - New qcow2 disk image format
  - Support of multiple VM snapshots
  - Linux: specific host CDROM and floppy support
  - SMM support
  - Moved PCI init, MP table init and ACPI table init to Bochs BIOS
  - Support for MIPS32 Release 2 instruction set (Thiemo Seufer)
  - MIPS Malta system emulation (Aurelien Jarno, Stefan Weil)
  - Darwin userspace emulation (Pierre d'Herbemont)
  - m68k user support (Paul Brook)
  - several x86 and x86_64 emulation fixes
  - Mouse relative offset VNC extension (Anthony Liguori)
  - PXE boot support (Anthony Liguori)
  - '-daemonize' option (Anthony Liguori)

version 0.8.2:

  - ACPI support
  - PC VGA BIOS fixes
  - switch to OpenBios for SPARC targets (Blue Swirl)
  - VNC server fixes
  - MIPS FPU support (Marius Groeger)
  - Solaris/SPARC host support (Juergen Keil)
  - PPC breakpoints and single stepping (Jason Wessel)
  - USB updates (Paul Brook)
  - UDP/TCP/telnet character devices (Jason Wessel)
  - Windows sparse file support (Frediano Ziglio)
  - RTL8139 NIC TCP segmentation offloading (Igor Kovalenko)
  - PCNET NIC support (Antony T Curtis)
  - Support for variable frequency host CPUs
  - Workaround for win32 SMP hosts
  - Support for AMD Flash memories (Jocelyn Mayer)
  - Audio capture to WAV files support (malc)

version 0.8.1:

  - USB tablet support (Brad Campbell, Anthony Liguori)
  - win32 host serial support (Kazu)
  - PC speaker support (Joachim Henke)
  - IDE LBA48 support (Jens Axboe)
  - SSE3 support
  - Solaris port (Juergen Keil)
  - Preliminary SH4 target (Samuel Tardieu)
  - VNC server (Anthony Liguori)
  - slirp fixes (Ed Swierk et al.)
  - USB fixes
  - ARM Versatile Platform Baseboard emulation (Paul Brook)

version 0.8.0:

  - ARM system emulation: Arm Integrator/CP board with an arm1026ej-s
    cpu (Paul Brook)
  - SMP support
  - Mac OS X cocoa improvements (Mike Kronenberg)
  - Mac OS X CoreAudio driver (Mike Kronenberg)
  - DirectSound driver (malc)
  - ALSA audio driver (malc)
  - new audio options: '-soundhw' and '-audio-help' (malc)
  - ES1370 PCI audio device (malc)
  - Initial USB support
  - Linux host serial port access
  - Linux host low level parallel port access
  - New network emulation code supporting VLANs.
  - MIPS and MIPSel User Linux emulation
  - MIPS fixes to boot Linux (Daniel Jacobowitz)
  - NX bit support
  - Initial SPARC SMP support (Blue Swirl)
  - Major overhaul of the virtual FAT driver for read/write support
    (Johannes Schindelin)

version 0.7.2:

  - x86_64 fixes (Win2000 and Linux 2.6 boot in 32 bit)
  - merge self modifying code handling in dirty ram page mecanism.
  - MIPS fixes (Ralf Baechle)
  - better user net performances

version 0.7.1:

  - read-only Virtual FAT support (Johannes Schindelin)
  - Windows 2000 install disk full hack (original idea from Vladimir
    N. Oleynik)
  - VMDK disk image creation (Filip Navara)
  - SPARC64 progress (Blue Swirl)
  - initial MIPS support (Jocelyn mayer)
  - MIPS improvements (Ralf Baechle)
  - 64 bit fixes in user networking (initial patch by Gwenole Beauchesne)
  - IOAPIC support (Filip Navara)

version 0.7.0:

  - better BIOS translation and HDD geometry auto-detection
  - user mode networking bug fix
  - undocumented FPU ops support
  - Cirrus VGA: support for 1280x1024x[8,15,16] modes
  - 'pidfile' option
  - .dmg disk image format support (Johannes Schindelin)
  - keymaps support (initial patch by Johannes Schindelin)
  - big endian ARM support (Lennert Buytenhek)
  - added generic 64 bit target support
  - x86_64 target support
  - initial APIC support
  - MMX/SSE/SSE2/PNI support
  - PC parallel port support (Mark Jonckheere)
  - initial SPARC64 support (Blue Swirl)
  - SPARC target boots Linux (Blue Swirl)
  - armv5te user mode support (Paul Brook)
  - ARM VFP support (Paul Brook)
  - ARM "Angel" semihosting syscalls (Paul Brook)
  - user mode gdb stub support (Paul Brook)
  - Samba 3 support
  - initial Cocoa support (Pierre d'Herbemont)
  - generic FPU emulation code
  - Virtual PC read-only disk image support (Alex Beregszaszi)

version 0.6.1:

  - Mac OS X port (Pierre d'Herbemont)
  - Virtual console support
  - Better monitor line edition
  - New block device layer
  - New 'qcow' growable disk image support with AES encryption and
    transparent decompression
  - VMware 3 and 4 read-only disk image support (untested)
  - Support for up to 4 serial ports
  - TFTP server support (Magnus Damm)
  - Port redirection support in user mode networking
  - Support for not executable data sections
  - Compressed loop disk image support (Johannes Schindelin)
  - Level triggered IRQ fix (aka NE2000 PCI performance fix) (Steve
    Wormley)
  - Fixed Fedora Core 2 problems (now you can run qemu without any
    LD_ASSUME_KERNEL tricks on FC2)
  - DHCP fix for Windows (accept DHCPREQUEST alone)
  - SPARC system emulation (Blue Swirl)
  - Automatic Samba configuration for host file access from Windows.
  - '-loadvm' and '-full-screen' options
  - ne2000 savevm support (Johannes Schindelin)
  - Ctrl-Alt is now the default grab key. Ctrl-Alt-[0-9] switches to
    the virtual consoles.
  - BIOS floppy fix for NT4 (Mike Nordell, Derek Fawcus, Volker Ruppert)
  - Floppy fixes for NT4 and NT5 (Mike Nordell)
  - NT4 IDE fixes (Ben Pfaf, Mike Nordell)
  - SDL Audio support and SB16 fixes (malc)
  - ENTER instruction bug fix (initial patch by Stefan Kisdaroczi)
  - VGA font change fix
  - VGA read-only CRTC register fix

version 0.6.0:

  - minimalist FPU exception support (NetBSD FPU probe fix)
  - cr0.ET fix (Win95 boot)
  - *BSD port (Markus Niemisto)
  - I/O access fix (signaled by Mark Jonckheere)
  - IDE drives serial number fix (Mike Nordell)
  - int13 CDROM BIOS fix (aka Solaris x86 install CD fix)
  - int15, ah=86 BIOS fix (aka Solaris x86 hardware probe hang up fix)
  - BSR/BSF "undefined behaviour" fix
  - vmdk2raw: convert VMware disk images to raw images
  - PCI support
  - NE2K PCI support
  - dummy VGA PCI support
  - VGA font selection fix (Daniel Serpell)
  - PIC reset fix (Hidemi KAWAI)
  - PIC spurious irq support (aka Solaris install bug)
  - added '-localtime' option
  - Cirrus CL-GD54xx VGA support (initial patch by Makoto Suzuki (suzu))
  - APM and system shutdown support
  - Fixed system reset
  - Support for other PC BIOSes
  - Initial PowerMac hardware emulation
  - PowerMac/PREP OpenFirmware compatible BIOS (Jocelyn Mayer)
  - initial IDE BMDMA support (needed for Darwin x86)
  - Set the default memory size for PC emulation to 128 MB

version 0.5.5:

  - SDL full screen support (initial patch by malc)
  - VGA support on PowerPC PREP
  - VBE fixes (Matthew Mastracci)
  - PIT fixes (aka Win98 hardware probe and "VGA slowness" bug)
  - IDE master only fixes (aka Win98 CD-ROM probe bug)
  - ARM load/store half word fix (Ulrich Hecht)
  - FDC fixes for Win98

version 0.5.4:

  - qemu-fast fixes
  - BIOS area protection fix (aka EMM386.EXE fix) (Mike Nordell)
  - keyboard/mouse fix (Mike Nordell)
  - IDE fixes (Linux did not recognized slave drivers)
  - VM86 EIP masking fix (aka NT5 install fix) (Mike Nordell)
  - QEMU can now boot a PowerPC Linux kernel (Jocelyn Mayer)
  - User mode network stack
  - imul imm8 fix + 0x82 opcode support (Hidemi KAWAI)
  - precise self modifying code (aka BeOS install bug)

version 0.5.3:

  - added Bochs VESA VBE support
  - VGA memory map mode 3 access fix (OS/2 install fix)
  - IDE fixes (Jens Axboe)
  - CPU interrupt fixes
  - fixed various TLB invalidation cases (NT install)
  - fixed cr0.WP semantics (XP install)
  - direct chaining support for SPARC and PowerPC (faster)
  - ARM NWFPE support (initial patch by Ulrich Hecht)
  - added specific x86 to x86 translator (close to native performance
    in qemu-i386 and qemu-fast)
  - shm syscalls support (Paul McKerras)
  - added accurate CR0.MP/ME/TS emulation
  - fixed DMA memory write access (Win95 boot floppy fix)
  - graphical x86 linux loader
  - command line monitor
  - generic removable device support
  - support of CD-ROM change
  - multiple network interface support
  - initial x86-64 host support (Gwenole Beauchesne)
  - lret to outer priviledge fix (OS/2 install fix)
  - task switch fixes (SkyOS boot)
  - VM save/restore commands
  - new timer API
  - more precise RTC emulation (periodic timers + time updates)
  - Win32 port (initial patch by Kazu)

version 0.5.2:

  - improved soft MMU speed (assembly functions and specializing)
  - improved multitasking speed by avoiding flushing TBs when
    switching tasks
  - improved qemu-fast speed
  - improved self modifying code handling (big performance gain in
    softmmu mode).
  - fixed IO checking
  - fixed CD-ROM detection (win98 install CD)
  - fixed addseg real mode bug (GRUB boot fix)
  - added ROM memory support (win98 boot)
  - fixed 'call Ev' in case of paging exception
  - updated the script 'qemu-binfmt-conf.sh' to use QEMU automagically
    when launching executables for the supported target CPUs.
  - PowerPC system emulation update (Jocelyn Mayer)
  - PC floppy emulation and DMA fixes (Jocelyn Mayer)
  - polled mode for PIC (Jocelyn Mayer)
  - fixed PTE dirty bit handling
  - fixed xadd same reg bug
  - fixed cmpxchg exception safeness
  - access to virtual memory in gdb stub
  - task gate and NT flag fixes
  - eflags optimisation fix for string operations

version 0.5.1:

  - float access fixes when using soft mmu
  - PC emulation support on PowerPC
  - A20 support
  - IDE CD-ROM emulation
  - ARM fixes (Ulrich Hecht)
  - SB16 emulation (malc)
  - IRET and INT fixes in VM86 mode with IOPL=3
  - Port I/Os use TSS io map
  - Full task switching/task gate support
  - added verr, verw, arpl, fcmovxx
  - PowerPC target support (Jocelyn Mayer)
  - Major SPARC target fixes (dynamically linked programs begin to work)

version 0.5.0:

  - full hardware level VGA emulation
  - graphical display with SDL
  - added PS/2 mouse and keyboard emulation
  - popw (%esp) fix
  - mov to/from segment data width fix
  - added real mode support
  - added Bochs BIOS and LGPL'ed VGA BIOS loader in qemu
  - m68k host port (Richard Zidlicky)
  - partial soft MMU support for memory mapped I/Os
  - multi-target build
  - fixed: no error code in hardware interrupts
  - fixed: pop ss, mov ss, x and sti disable hardware irqs for the next insn
  - correct single stepping thru string operations
  - preliminary SPARC target support (Thomas M. Ogrisegg)
  - tun-fd option (Rusty Russell)
  - automatic IDE geometry detection
  - renamed 'vl' to qemu[-fast] and user qemu to qemu-{cpu}.
  - added man page
  - added full soft mmu mode to launch unpatched OSes.

version 0.4.3:

  - x86 exception fix in case of nop instruction.
  - gcc 3.2.2 bug workaround (RedHat 9 fix)
  - sparc and Alpha host fixes
  - many ARM target fixes: 'ls' and 'bash' can be launched.

version 0.4.2:

 - many exception handling fixes (can compile a Linux kernel inside vl)
 - IDE emulation support
 - initial GDB stub support
 - deferred update support for disk images (Rusty Russell)
 - accept User Mode Linux Copy On Write disk images
 - SMP kernels can at least be booted

version 0.4.1:

 - more accurate timer support in vl.
 - more reliable NE2000 probe in vl.
 - added 2.5.66 kernel in vl-test.
 - added VLTMPDIR environment variable in vl.

version 0.4:

 - initial support for ring 0 x86 processor emulation
 - fixed signal handling for correct dosemu DPMI emulation
 - fast x86 MMU emulation with mmap()
 - fixed popl (%esp) case
 - Linux kernel can be executed by QEMU with the 'vl' command.

version 0.3:

 - initial support for ARM emulation
 - added fnsave, frstor, fnstenv, fldenv FPU instructions
 - added FPU register save in signal emulation
 - initial ARM port
 - Sparc and Alpha ports work on the regression test
 - generic ioctl number conversion
 - fixed ioctl type conversion

version 0.2:

 - PowerPC disassembly and ELF symbols output (Rusty Russell)
 - flock support (Rusty Russell)
 - ugetrlimit support (Rusty Russell)
 - fstat64 fix (Rusty Russell)
 - initial Alpha port (Falk Hueffner)
 - initial IA64 port (Matt Wilson)
 - initial Sparc and Sparc64 port (David S. Miller)
 - added HLT instruction
 - LRET instruction fix.
 - added GPF generation for I/Os.
 - added INT3 and TF flag support.
 - SHL instruction C flag fix.
 - mmap emulation for host page size > 4KB
 - self-modifying code support
 - better VM86 support (dosemu works on non trivial programs)
 - precise exception support (EIP is computed correctly in most cases)
 - more precise LDT/GDT/IDT emulation
 - faster segment load in vm86 mode
 - direct chaining of basic blocks (faster emulation)

version 0.1.6:

 - automatic library search system. QEMU can now work with unpatched
   ELF dynamic loader and libc (Rusty Russell).
 - ISO C warning fixes (Alistair Strachan)
 - first self-virtualizable version (works only as long as the
   translation cache is not flushed)
 - RH9 fixes

version 0.1.5:

 - ppc64 support + personality() patch (Rusty Russell)
 - first Alpha CPU patches (Falk Hueffner)
 - removed bfd.h dependancy
 - fixed shrd, shld, idivl and divl on PowerPC.
 - fixed buggy glibc PowerPC rint() function (test-i386 passes now on PowerPC).

version 0.1.4:

 - more accurate VM86 emulation (can launch small DOS 16 bit
   executables in wine).
 - fixed push/pop fs/gs
 - added iret instruction.
 - added times() syscall and SIOCATMARK ioctl.

version 0.1.3:

 - S390 support (Ulrich Weigand)
 - glibc 2.3.x compile fix (Ulrich Weigand)
 - socketcall endian fix (Ulrich Weigand)
 - struct sockaddr endian fix (Ulrich Weigand)
 - sendmsg/recvmsg endian fix (Ulrich Weigand)
 - execve endian fix (Ulrich Weigand)
 - fdset endian fix (Ulrich Weigand)
 - partial setsockopt syscall support (Ulrich Weigand)
 - more accurate pushf/popf emulation
 - first partial vm86() syscall support (can be used with runcom example).
 - added bound, cmpxchg8b, cpuid instructions
 - added 16 bit addressing support/override for string operations
 - poll() fix

version 0.1.2:

 - compile fixes
 - xlat instruction
 - xchg instruction memory lock
 - added simple vm86 example (not working with QEMU yet). The 54 byte
   DOS executable 'pi_10.com' program was released by Bertram
   Felgenhauer (more information at http://www.boo.net/~jasonp/pipage.html).

version 0.1.1:

 - glibc 2.2 compilation fixes
 - added -s and -L options
 - binary distribution of x86 glibc and wine
 - big endian fixes in ELF loader and getdents.

version 0.1:

 - initial public release.
