plex86 Bochs

Plex86/Bochs LGPL VGABios


2011-10-30 vruppert   Version 0.7a of the LGPL'd VGABios with Cirrus support for Bochs and Qemu is available now. This version will be included in Bochs 2.5.
2009-04-08 vruppert   Version 0.6c has some improvements and minor bugfixes.
2008-05-30 vruppert   Version 0.6b has some improvements and minor bugfixes.
2006-08-19 vruppert   Version 0.6a of the LGPL'd VGABios with Cirrus support for Bochs and Qemu is available now. This version is to be included in Bochs 2.3.
2005-12-29 vruppert   Version 0.5d is a bugfix release.
2005-07-07 vruppert   Version 0.5c is a bugfix release.
2005-05-24 vruppert   Here is version 0.5b, with some bugfixes. This version is to be included in Bochs 2.2.
2005-03-07 vruppert   Version 0.5a of the LGPL'd VGABios with Cirrus support for Bochs and Qemu is available now. It will be included in the first pre-release of Bochs 2.2.
2003-11-06 cbothamy   Version 0.4c is a bugfix release.
2003-11-04 cbothamy   Here is version 0.4b, with several improvements and bugfixes. This version is to be included in Bochs 2.1
2003-08-17 cbothamy   Thanks to Volker's effort, we are able to release a 0.4a version to be included in the upcoming Bochs 2.1
2002-04-25 japj Latest Changes to the vbe code :
  • 4F06h Set/Get Logical Scan Line Length
  • 4F07h Set/Get Display Start
  • multibuffering support
  • 2002-03-27 cbothamy   vgabios v0.3a is shipping in Bochs 1.4 release !
    2002-03-10 cbothamy thanks to the great efforts of Jeroen, here is version 0.3a, including a start of implementation of the VESA Bios Extensions.
    2001-11-20 cbothamy version 0.2b is a bugfix release.
    2001-11-10 cbothamy eventually, here is version 0.2a of the vgabios. You will find bugfixes and new int10 functions implemented, but still no graphic mode working yet.
    2001-05-09 cbothamy The first release if the vgabios, labeled version 0.1a is available.

    See the ChangeLog for detailed information.
    Go to the download section.


    Go to the development home page hosted on


    Not yet available :-(


    Version Source Code Binary for Bochs VBE Binary for Bochs VBE with debug Binary for Cirrus emulation Binary for Cirrus emulation with debug
    latest via CVS VGABIOS-lgpl-latest.bin VGABIOS-lgpl-latest.debug.bin VGABIOS-lgpl-latest.cirrus.bin VGABIOS-lgpl-latest.cirrus.debug.bin
    0.7a vgabios-0.7a.tgz vgabios-0.7a.bin vgabios-0.7a.debug.bin vgabios-0.7a.cirrus.bin vgabios-0.7a.cirrus.debug.bin
    0.6c vgabios-0.6c.tgz vgabios-0.6c.bin vgabios-0.6c.debug.bin vgabios-0.6c.cirrus.bin vgabios-0.6c.cirrus.debug.bin
    0.6b vgabios-0.6b.tgz vgabios-0.6b.bin vgabios-0.6b.debug.bin vgabios-0.6b.cirrus.bin vgabios-0.6b.cirrus.debug.bin
    0.6a vgabios-0.6a.tgz vgabios-0.6a.bin vgabios-0.6a.debug.bin vgabios-0.6a.cirrus.bin vgabios-0.6a.cirrus.debug.bin
    0.5d vgabios-0.5d.tgz vgabios-0.5d.bin vgabios-0.5d.debug.bin vgabios-0.5d.cirrus.bin vgabios-0.5d.cirrus.debug.bin
    0.5c vgabios-0.5c.tgz vgabios-0.5c.bin vgabios-0.5c.debug.bin vgabios-0.5c.cirrus.bin vgabios-0.5c.cirrus.debug.bin
    0.5b vgabios-0.5b.tgz vgabios-0.5b.bin vgabios-0.5b.debug.bin vgabios-0.5b.cirrus.bin vgabios-0.5b.cirrus.debug.bin
    0.5a vgabios-0.5a.tgz vgabios-0.5a.bin vgabios-0.5a.debug.bin vgabios-0.5a.cirrus.bin vgabios-0.5a.cirrus.debug.bin
    0.4c vgabios-0.4c.tgz vgabios-0.4c.bin vgabios-0.4c.debug.bin
    0.4b vgabios-0.4b.tgz vgabios-0.4b.bin vgabios-0.4b.debug.bin
    0.4a vgabios-0.4a.tgz vgabios-0.4a.bin vgabios-0.4a.debug.bin
    0.3b vgabios-0.3b.tgz vgabios-0.3b.bin vgabios-0.3b.debug.bin
    0.3a vgabios-0.3a.tgz vgabios-0.3a.bin vgabios-0.3a.debug.bin
    0.2b vgabios-0.2b.tgz vgabios-0.2b.bin vgabios-0.2b.debug.bin
    0.2a vgabios-0.2a.tgz vgabios-0.2a.bin vgabios-0.2a.debug.bin
    0.1a vgabios-0.1a.tgz vgabios-0.1a.bin


    The goal of this project is to have a LGPL'd Video Bios for Plex86 and Bochs.
    This VGA Bios is very specific to the plex86/bochs emulated VGA card.
    It is NOT meant to drive a physical vga card.
    You will probably fry it if you try. You have been warned.


    To compile the VGA Bios you will need :

    Untar the source archive, and type make. You should get a "vgabios.bin" file.
    Alternatively, you can use the binary file "vgabios-XXX.bin", we have compiled for you.
    Edit your plex86/bochs conf file, and modify the load-rom command in the VGA BIOS section, to point to the new vgabios.bin file.


    You can get a very basic debugging system: messages printed by the vgabios. you have to register the unmapped port device in plex86/bochs. Be sure that port 0x0500 to 0x0503 are grabbed by the driver.
    Before compiling, you have to comment the #undef DEBUG at the beginning of vgabios.c. You can then use the "printf" function in the bios (only "%x" is available).


    Look at the "testvga.c" file in the archive. This is a minimal Turbo C 2.0 source file that calls a few int10 functions. Feel free to modify it to suit your needs.
    In its current state, the VGABios has been very little tested. What is know to work:

    Of course, executing unimplemented function will lead to unexpected results ;-)

    Copyright and License

    This program has been written by Christophe Bothamy, Jeroen Janssen and Volker Ruppert.
    It is protected by the GNU Lesser General Public License, which you should have received a copy of along with this package.

    Reverse Engineering

    The VGA Bios has been written without reverse-engineering any existing Bios.


    The source code contains code ripped from the LGPL rombios.c of plex86, written by Kevin Lawton

    The source code contains fonts from (c) by Joseph Gil avalable at :
    These fonts are public domain

    The source code is based on information taken from :


    You can find the latest release at
    This home page is located at

    For information on plex86, visit the website
    For information on bochs, visit the website


    Please report any bugs, comments, patches for this VGA Bios on savannah pages.