[vbox-dev] win 95/98 guest additions ?

Michael Thayer michael.thayer at oracle.com
Mon Sep 12 12:37:25 PDT 2011

Hello Huihong,

On 09/12/2011 06:30 PM, Huihong Luo wrote:
> We are exploring the possibility of implementing this old stuff. In
> particular, the mouse and graphics drivers.
> Seems mouse integration shouldn't be that difficult. However, for video
> cards, it will take quite some time.
> I have a question, does
> C:\virtualbox-dev\vbox\include\VBox\Hardware\VBoxVideoVBE.h contains all
> the video card's registry information? In other words, do these
> constants sufficient to develop the display driver? 95/98 uses totally
> different driver model, and needs to implment in real mode using
> assembly code.
> So wanted to know what is the minimum requirement?

See the files in src/VBox/Additions/common/VBoxVideo for a first
approximation. Those were my first attempt at sharing video driver code
between Linux and Windows. For a minimal driver, the functions
VBoxVideoGetVRAMSize() and VBoxVideoSetModeRegisters() in
Modesetting.cpp which can be used without any of the rest. Those
functions are so basic they ought to be re-usable in 16bit code, or let
me know if that can be achieved with trivial changes. If you wish to go
further, HGSMIBase.cpp contains APIs for setting up the buffers used for
communicating with the graphics device (sending commands and receiving
replies and notifications) and for doing the actual communication.
Modesetting.cpp uses them to set multi-monitor graphics modes (and the
older APIs I mentioned for single-monitor mode-setting). VBVABase.cpp
contains dirty rectangle notification code, particularly for
accelerating remote display.

Feel free to send API documentation patches! I wrote the existing
documentation as I was getting to grips with the API (which was win32
only, and I am a Linux developer...) so it is a bit unclear. See
src/VBox/Additions/x11/vboxvideo/vbva.c for am example of how to set up
the graphics card. pointer.c and setmode.c in that directory build on
top of that.

Hope that helps a bit.


ORACLE Deutschland B.V. & Co. KG   Michael Thayer
Werkstrasse 24                     VirtualBox engineering
71384 Weinstadt, Germany           mailto:michael.thayer at oracle.com

Hauptverwaltung: Riesstr. 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603

Komplementärin: ORACLE Deutschland Verwaltung B.V.
Hertogswetering 163/167, 3543 AS Utrecht, Niederlande
Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697
Geschäftsführer: Jürgen Kunz, Marcel van de Molen, Alexander van der Ven

More information about the vbox-dev mailing list