4 The goal of this project is to have a LGPL'd Video Bios in plex86
6 This VGA Bios is very specific to the emulated VGA card.
7 It is NOT meant to drive a physical vga card.
12 To compile the VGA Bios you will need :
18 Untar the archive, and type make. You should get a "vgabios.bin" file.
19 Alternatively, you can use the binary file "vgabios-XXX.bin", i have
22 Edit your plex86/bochs conf file, and modify the load-rom command in the
23 VGA BIOS section, to point to the new vgabios.bin file.
28 You can get a very basic debugging system: messages printed by the vgabios.
29 You have to register the "unmapped" device driver in plex86 or bochs, and make
30 sure it grabs port 0xfff0.
32 Comment the #undef DEBUG at the beginning of vgabios.c.
33 You can then use the "printf" function in the bios.
38 Look at the "testvga.c" file in the archive. This is a minimal Turbo C 2.0
39 source file that calls a few int10 functions. Feel free to modify it to suit
41 The VGA Bios in its current version has been very little tested.
46 This program has been written by Christophe Bothamy
47 It is protected by the GNU Lesser Public License, which you should
48 have received a copy of along with this package.
53 The VGA Bios has been written without reverse-engineering any existing Bios.
58 The source code contains code ripped from rombios.c of plex86, written
59 by Kevin Lawton <kevin2001@yahoo.com>
61 The source code contains fonts from fntcol16.zip (c) by Joseph Gil avalable at :
62 ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip
63 These fonts are public domain
65 The source code is based on information taken from :
66 - Kevin Lawton's vga card emulation for bochs/plex86
67 - Ralf Brown's interrupts list avalaible at
68 http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
69 - Finn Thogersons' VGADOC4b available at http://home.worldonline.dk/~finth/
70 - Michael Abrash's Graphics Programming Black Book
71 - Francois Gervais' book "programmation des cartes graphiques cga-ega-vga"
73 - DOSEMU 1.0.1 source code for several tables values and formulas
78 Please report any bugs, comments, patches for this VGA Bios to cbothamy@free.fr
79 You can find the latest release at : http://www.nongnu.org/vgabios/
80 For any information on bochs, visit the website http://bochs.sourceforge.net/
85 vgabios-0.4c : Nov 06 2003
87 . fix font problem on initial screen of NT4 Loader
89 vgabios-0.4b : Nov 04 2003
91 . fix offset of character tables
92 . optimizations of CRT controller accesses
93 . VBE i/o registers changed to 0x01CE/CF
94 (suggestion from Daniel Gimpelevich)
95 . "noclear" flag stored in BIOS area
96 . fix character height returned by get_font_info function
98 vgabios-0.4a : Aug 17 2003
100 . VBE mode search rewritten (VBE modes with LFB bit removed)
101 . many bugfixes and optimizations
102 . write character function implemented for graphics modes
103 . support for 15bpp, 16bpp, 24bpp and 32bpp VBE modes added
104 . SVGA mode 0x6A added
105 . VBE modes 0x102, 0x117, 0x118 and 0x142 (Bochs specific)
107 vgabios-0.3b : Nov 23 2002
109 . added lfb-mode numbers (patch from mathis)
110 . updated the Makefile
111 . removed display of copyrights.
112 . changed the Copyright string to "LGPL VGABios developers"
114 . set the cursor shape depending on the current font height
115 . clear BL before calling int 0x10 function 0x1103 in vgabios_init_func
116 . added some text font functions
118 . Forced to new DISPI (0xb0c1) interface (requires latest bochs vbe code)
119 . Added multibuffering support
120 . Added new DISPI interface for: virt width, height, x offset, y offset
121 . Added LFB modes (to be used with the vbe-lfb patch in bochs)
122 see VBE_HAVE_LFB in vbe.c (currently default enabled)
123 . updated TODO & docs for changes after bochs 1.4
125 vgabios-0.3a : Mar 10 2002
127 . Fixed bug in function ah=13
129 . updated vbebios implementation to new api
130 . added vbe_display_api documentation
131 . added 640x400x8, 640x480x8, 800x600x8, 1024x768
132 (>640x480 needs a special bochs patch atm)
133 . added 320x200x8 vbe support (uses the standard 320x200x8 vga mode to
134 display, this allows for testing & having something on screen as well,
135 at least until bochs host side display is up & running)
136 . adding lfbprof (vbe) testprogram (+some small fixes to it)
137 . merging with vbebios 0.2
139 vgabios-0.2b : Nov 19 2001
141 . Fixed bug in function ah=13
143 vgabios-0.2a : Nov 09 2001
145 . Included bugfix from techt@pikeonline.net about grayscale summing
146 . Added the "IBM" string at org 0x1e as Bart Oldeman suggested
147 . Fixed DS and ES that where inverted in the int10 parameters list!
148 . The following have been implemented :
149 - function ax=1a00, ax=1a01, ah=1b
151 . Added debug messages for unimplemented/unknown functions
152 Must be compiled with DEBUG defined. The output is trapped
153 by the unknown-ioport driver of plex/bochs (port 0xfff0 is used)
155 vgabios-0.1a : May 8 2001
157 . First release. The work has been focused only on text mode.
158 . The following have been implemented :
161 - functions ah=00, ah=01, ah=02, ah=03, ah=05, ah=06, ah=07, ah=08
162 ah=09, ah=0a, ah=0e, ah=0f, ax=1000, ax=1001, ax=1002, ax=1003
163 ax=1007, ax=1008, ax=1009, ax=1010, ax=1012, ax=1013, ax=1015
164 ax=1017, ax=1018, ax=1019, ax=101a, ax=101b, ah=12 bl=10,
165 ah=12 bl=30, ah=12 bl=31, ah=12 bl=32, ah=12 bl=33, ah=12 bl=34