VBEMP.DRV is a standard Windows 9x™ Video Display Driver. It supports ALL of MS Windows 9x™ Family (Windows 95, Windows 98, Windows 98SE, Windows Me) It supports a wide range of videocards emulated via virtualization software: Bochs, QEMU, VMware, Innotek VirtualBox, Microsoft VirtualPC. Latest Bootlin videos and slides. Live Embedded Event. Now for the bootdisk. You can use a physical bootdisk with bochs (easier), or you can use an image. You can use any bootdisk that boots into dos and loads the CD-ROM drivers, I used the win98 bootdisk, and it worked very good. If you are going to use a physical disk you can go to number 4 now.

How to Set Up and Run
The Bochs Emulator
on a Windows™ PC
Copyright©2012,2013 by Daniel B. Sedory
Almost a decade ago, we explained how BOCHS could be used to learn Linux commands on a Windows PC.
Now we'll show our readers how to use the Bochs Emulator to understand and debug Master Boot Records.
Although the Bochs Emulator has binaries and source code for a number of different OS Platforms (such as Linux), the following describes how Microsoft® Windows™ users in particular can set up and run various image files of other operating systems under the Bochs Emulator. First, download the latest Windows 32-bit Bochs install file. This SourceForge page will automatically find it on a site near you:
When last updated, the Bochs-2.6.2.exe download file is 4,691,702 bytes (4582 KiB; which can also be opened by the free 7-Zip program to inspect its contents). Bochs is easy on the Registry when installed, setting only an uninstall and file association for its '.bxrc' Configuration files; which then have a little 'box' icon next to them). The default install location: 'C:Program FilesBochs-2.6.2' has a number of subdirs, but it defaults to not installing 'dlxlinux,' so make sure you check the box for DLX part way through the install process, since we'll be using DLX to check your Bochs install.

Its 'docs' folder includes HTML documentation, of which only parts of the 'User Guide' will likely be helpful. You can read more about Bochs here: http://bochs.sourceforge.net/.
After you install Bochs, click on the new 'Linux Demo in Bochs 2.6.2' icon (a 'shortcut' to run.bat in the dlxlinux subfolder under Bochs-2.6.2). This will open both the 'Bochs for Windows - Console' and the 'Bochs for Windows - Display' in which you'll see the Bochs Emulator run through its own BIOS code similar to a real PC:
If you pressed the F12 key soon enough (start right after clicking on the icon to be sure), you would see the following appear in the Bochs for Windows Display:
Press F12 for boot menu.
Select boot device:
1. Floppy
2. Hard Disk
3. CD-Rom
_
This can be useful if you include a Floppy diskette image file in the Configuration file. Of course, without it, or a CD-ROM image file referenced there, pressing a '1' or '3' will simply result in an error message before Bochs moves on to booting from the hard disk. After Bochs starts booting from the DLX disk image file, you'll see the following scroll by on the display:
Quick Guide to Using Bochs (beginning with 'dlx linux'):
Note: It's perfectly normal for the 'dlxlinux' emulation screen to go completely 'blank' (all black) after a short time... unless you keep typing data into it. (Pressing the 'SHIFT' key will cause it to reappear; as will many other keys, but SHIFT is very safe, since it doesn't enter anything on the command line.)
Holding down the 'SHIFT' key and pressing the 'PageUp' key, will allow you to scroll back up towards the beginning of the screen output. For each press of the PageUp key, it will scroll about 1/2 (one half) the number of lines in a full screen. This is a very common linux/Unix keyboard function. The 'SHIFT + PageDown' key combination will scroll back down towards the current command line.
Under dlx you only need to ENTER the word 'root' at the command line to login as the 'root' user. Once you have logged in, ENTER the following commands to see the common linux executables included with 'DLX' :
ls /bin /sbin /usr/bin /usr/sbin
Note: You'll also find a halt command in /etc that isn't even started (it's only one line: #!/bin/sh).
DLX does not include any man (manual) or info pages. You can try adding ' --help' after a command, but if you're not already familiar with UNIX/Linux commands, we'd recommend also searching online help pages to understand what each of these might be used for.
Please note; especially, if this is your first experience with linux, that DLX is an old and very limited linux distribution, and its version 1.3.89kernel (which is all that linux truly is from an operating system perspective) is very out-of-date, having come from a time when changes were being made to it almost daily. Kernel version 1.0.0 had only been released in March 1994 and 1.2.0 in March 1995, but by June 1996, versions of 2.0.x were already being released. Three rather important kernel releases were: 2.2.0 in January 1999, 2.4.0 in January 2001 and 2.6.0 in December 2003. So, you should obtain a more recent linux distribution, which along with the linux kernel, includes a great deal of GNU ('Gnu's Not Unix') software - free Unix-like utilities and applications. A Linux Live! CD or DVD can be run without installation, to see why having and learning how to use a Linux distribution can be very useful; even for a Windows PC tech. In summary, DLX is nothing like a recent Linux CD/DVD or full-blown GUI distribution that comes with more pre-installed applications than Windows ever will. If you wish to truly experience what Linux is like today, we'd recommend obtaining or downloading the .ISO image file of a recent Linux Distro such as the Ubuntu distribution which allows you to try running it directly from the CD; many online help forums exist for Ubuntu. (Note: Do not install it to your PC without first understanding everything about creating and using a dual-boot PC. A very useful alternative for many today would be to first install either Oracle's GNU licensed VirtualBox (only a 95 MiB D/L for Windows) or VMWare's free Player program, and install Ubuntu or any other Linux distro directly from its .ISO file as a virtual computerrunning under your Windows OS.)
A very nice and fairly recent alternative to DLX for running Linux under Bochs would be the 'Virtio i486' version of ttylinux (v 16.1 at this time). Although this is still a rather small .ISO image file (only 14 MiB; but note: You'll need a program like 7-Zip, WinRAR or WinZip to extract the .ISO file from inside the .GZ archive), it runs Linux kernel version 2.6.34.7. Please read our page on installing ttylinux under Bochs.
If you'd like learn more about Linux commands using DLX or Tom's RTBT and how create and install more elaborate Linux OS distributions under Bochs, such as Ubuntu, then read our older Linux Page here.
For the complete User Guide to Bochs, this file link should open in your PC's web browser: Bochs User Manual (if you installed Bochs as instructed to do so above), provided you first copy this web page to your local PC. Below is a quick guide (with notes) to the most commonly used Bochs Windows Display buttons (they're all explained in detail here: 5.3.2. The Bochs headerbar).
Drivers Booster 7
BUTTON | DESCRIPTION |
---|---|
USER | Allows user to enter a keystroke (or combination of keystrokes) directly into the Bochs Emulator without the Host OS intercepting them. For example, you can send the 'CRTL + ALT + DEL' combination to the emulated OS and the Host OS will do nothing. Only one keystroke line is allowed in the Configuration File, but you can edit it in the pop-up box before pressing the 'OK' button (or even change the stored line using the CONFIG button; see below, in its Misc section). |
Copy | Places all the text characters from current view of the Bochs Emulator screen into your Windows Clipboard. |
Paste | Emulates keystroke entries for whatever characters are in the Clipboard; do not use this button on a Command Line without first being sure of what's in the Clipboard! |
snapshot | Saves the same text data as the 'Copy' button does, but to a file of your choice and location (default name: 'snapshot.txt'); this can be very useful. |
CONFIG | This stops the running simulation and puts it into 'Runtime Configuration' mode. When you use this, do not click the 'Quit' button under the 'Simulation' section, unless you want to power-off the Bochs emulator! Instead, use the 'Continue' button. (See Bochs User guide here for more.) |
Reset | Does the same as a PC: Powers-off the Bochs Emulator and then turns it back ON again! Don't use this unless you're running a rather simple OS emulation (like DLX or DOS); unless your OS is 'hung'. |
SUSPEND | Supposed to save the simulation in its current state, but functionality is limited (should not be used with hard disk image files). Read section 5.4 Save and restore simulation. |
Power | Will immediately power off the emulated computer... so do not use this until after you have tried entering the halt or the poweroff commands under a more complex Linux OS (or shutting down a Windows OS correctly). (Note: We've been unable to get any of the switches for 'shutdown' to function under this 'dlx' version; it only prints the same help message! And if you ENTER: shutdown now (not even listed), you'll still be disappointed, since that simply results in the message: 'shutdown: cannot get into single user mode' (So you must use the 'Power button' to turn off Bochs when running the Demo 'dlx' linux version.) |
Using Bochs to Learn Exactly How a PC Boots Up
For most of you who read our pages here at The Starman's Realm, the debugger program that comes with the Bochs Windows install package will be more important than simply running another OS in its Emulator! After you've become somewhat familiar with Bochs, our next page will show you how to set up, start and run debug sessions to learn how a computer's Master Boot Record or other IPLs (Initial Program Loaders) function step by step!
Revised: March 28, 2012 (28.03.12).
Updated: May 2, 2012 (02.05.2012); May 10, 2012 (10.05.2012); May 19, 2012 (19.05.2012); July 21, 2013 (21.07.2013).
Last Update:July 28, 2013 (28.07.2013).
You can write to me using this: online reply form. (It opens in a new window.)
The Starman's x86 ASSEMBLY Pages
The Starman's Realm Index Page
Plex86/Bochs LGPL VGABios
News
2020-01-03 | vruppert | Version 0.7b of the LGPL'd VGABios with Cirrus support for Bochs and Qemu is available now. This version will be included in Bochs 2.6.11. |
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 : |
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.
Development
Go to the development home page hosted on savannah.gnu.org
Screenshots
Drivers Booster
Not yet available :-(
Download
Drivers Boost 6
Version | Source Code | Binary for Bochs VBE / Archive with all binaries (*) | Binary for Bochs VBE with debug | Binary for Cirrus emulation | Binary for Cirrus emulation with debug |
---|---|---|---|---|---|
latest | via SVN | VGABIOS-lgpl-latest.bin | VGABIOS-lgpl-latest.debug.bin | VGABIOS-lgpl-latest.cirrus.bin | VGABIOS-lgpl-latest.cirrus.debug.bin |
0.7b | vgabios-0.7b.tgz | vgabios-0.7b-bin.tgz (*) | - | - | - |
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 | - | - |
NOTE: Versions prior to 0.4c are no longer available for download.
Introduction
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.
Installation
To compile the VGA Bios you will need the following packages:
- make
- gcc (for 'biossums', 'vbetables-gen' and VGABIOS preprocessing)
- dev86 (bcc, as86)
Alternatively, you can use one of the precompiled binary files present inthe archive.
Edit your bochs config file, and modify the 'vgaromimage' directive to pointit to the VGABIOS image you want to use.
Debugging
You can get a very basic debugging system: the VGABIOS sends messages to ausually unused ISA i/o port. The emulator prints the received characters tolog file or console. In Bochs the 'unmapped' device plugin must be loaded.It registers the VGABIOS info port 0x500.
VGABIOS images compiled with the DEBUG symbol set, will use the 'printf'function to write the messages to the info port.
Testing
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 knowto work:
- MS-Dos
- FreeDos
- Win95
- Various kind of linuxes in text mode
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 shouldhave received a copy of along with this package.
Reverse Engineering
The VGA Bios has been written without reverse-engineering any existing Bios.
Acknowledgment
The source code contains code ripped from the LGPL rombios.c of plex86, writtenby Kevin Lawton
The source code contains fonts from fntcol16.zip (c) by Joseph Gil avalable at :ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip
These fonts are public domain
The source code is based on information taken from :
- Kevin Lawton's vga card emulation for Bochs/Plex86
- Ralf Brown's interrupts list avalaible at http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
- Finn Thogersons' VGADOC4b available at http://home.worldonline.dk/~finth/
- Michael Abrash's Graphics Programming Black Book
- Francois Gervais' book 'programmation des cartes graphiques cga-ega-vga' edited by sybex
- DOSEMU 1.0.1 source code for several tables values and formulas
Links
You can find the latest release at http://savannah.gnu.org/projects/vgabios/
This home page is located athttp://www.freesoftware.fsf.org/vgabios/
For information on plex86, visit the website http://www.plex86.org/
For information on bochs, visit the website http://bochs.sourceforge.net/
Feedback
Please report any bugs, comments, patches for this VGA Bios on savannah pages.
