VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/BIOS/README@ 1959

Last change on this file since 1959 was 1, checked in by vboxsync, 55 years ago

import

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.9 KB
Line 
1Plex86/Bochs VGABios
2--------------------
3
4The goal of this project is to have a LGPL'd Video Bios in plex86,
5Bochs and qemu.
6This VGA Bios is very specific to the emulated VGA card.
7It is NOT meant to drive a physical vga card.
8
9
10Cirrus SVGA extension
11---------------------
12
13The Cirrus SVGA extension is designed for the Cirrus emulation in Bochs and
14qemu. The initial patch for the Cirrus extension has been written by Makoto
15Suzuki (suzu).
16
17
18Install
19-------
20To compile the VGA Bios you will need :
21- gcc
22- bcc
23- as86
24- ld86
25
26Untar the archive, and type make. You should get a "VGABIOS-lgpl-latest.bin"
27file. Alternatively, you can use the binary file "VGABIOS-lgpl-latest.bin",
28i have compiled for you.
29
30Edit your plex86/bochs conf file, and modify the load-rom command in the
31VGA BIOS section, to point to the new vgabios image file.
32
33
34Debugging
35---------
36You can get a very basic debugging system: messages printed by the vgabios.
37You have to register the "unmapped" device driver in plex86 or bochs, and make
38sure it grabs port 0xfff0.
39
40Comment the #undef DEBUG at the beginning of vgabios.c.
41You can then use the "printf" function in the bios.
42
43
44Testing
45-------
46Look at the "testvga.c" file in the archive. This is a minimal Turbo C 2.0
47source file that calls a few int10 functions. Feel free to modify it to suit
48your needs.
49
50
51Copyright and License
52---------------------
53This program has been written by Christophe Bothamy
54It is protected by the GNU Lesser Public License, which you should
55have received a copy of along with this package.
56
57
58Reverse Engineering
59-------------------
60The VGA Bios has been written without reverse-engineering any existing Bios.
61
62
63Acknowledgment
64--------------
65The source code contains code ripped from rombios.c of plex86, written
66by Kevin Lawton <[email protected]>
67
68The source code contains fonts from fntcol16.zip (c) by Joseph Gil avalable at :
69ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip
70These fonts are public domain
71
72The source code is based on information taken from :
73- Kevin Lawton's vga card emulation for bochs/plex86
74- Ralf Brown's interrupts list avalaible at
75 http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
76- Finn Thogersons' VGADOC4b available at http://home.worldonline.dk/~finth/
77- Michael Abrash's Graphics Programming Black Book
78- Francois Gervais' book "programmation des cartes graphiques cga-ega-vga"
79 edited by sybex
80- DOSEMU 1.0.1 source code for several tables values and formulas
81
82
83Feedback
84--------
85Please report any bugs, comments, patches for this VGA Bios to [email protected]
86You can find the latest release at : http://www.nongnu.org/vgabios/
87For any information on bochs, visit the website http://bochs.sourceforge.net/
88For any information on qemu, visit the website http://fabrice.bellard.free.fr/qemu/
89
90
91History
92-------
93vgabios-0.5c : Jul 07 2005
94 - Volker
95 . BIOS configuration word usually reports initial mode 80x25 color text
96 . vgabios function 0x0e (write teletype): linefeed (0x0a) only increments the
97 cursor row value
98
99vgabios-0.5b : May 24 2005
100 - Volker
101 . fixed return value for the default case in the VBE section (non-debug mode)
102 . removed unused stuff
103
104vgabios-0.5a : Mar 07 2005
105 - Volker
106 . Cirrus SVGA extension (initial patches from Makoto Suzuki, improvements
107 from Fabrice Bellard)
108 . vgabios image size is now exactly 32k with a checksum
109 . a lot of vgabios and vbe functions rewritten in assembler
110 . dynamicly generated VBE mode info list
111 . write character function for CGA and LINEAR8 modes
112 . read/write graphics pixel for some graphics modes
113 . text scroll feature for some graphics modes
114 . VBE 8-bit DAC support
115
116vgabios-0.4c : Nov 06 2003
117 - Christophe
118 . fix font problem on initial screen of NT4 Loader
119
120vgabios-0.4b : Nov 04 2003
121 - Volker
122 . fix offset of character tables
123 . optimizations of CRT controller accesses
124 . VBE i/o registers changed to 0x01CE/CF
125 (suggestion from Daniel Gimpelevich)
126 . "noclear" flag stored in BIOS area
127 . fix character height returned by get_font_info function
128
129vgabios-0.4a : Aug 17 2003
130 - Volker
131 . VBE mode search rewritten (VBE modes with LFB bit removed)
132 . many bugfixes and optimizations
133 . write character function implemented for graphics modes
134 . support for 15bpp, 16bpp, 24bpp and 32bpp VBE modes added
135 . SVGA mode 0x6A added
136 . VBE modes 0x102, 0x117, 0x118 and 0x142 (Bochs specific)
137
138vgabios-0.3b : Nov 23 2002
139 - Christophe
140 . added lfb-mode numbers (patch from mathis)
141 . updated the Makefile
142 . removed display of copyrights.
143 . changed the Copyright string to "LGPL VGABios developers"
144 - Volker
145 . set the cursor shape depending on the current font height
146 . clear BL before calling int 0x10 function 0x1103 in vgabios_init_func
147 . added some text font functions
148 - Jeroen
149 . Forced to new DISPI (0xb0c1) interface (requires latest bochs vbe code)
150 . Added multibuffering support
151 . Added new DISPI interface for: virt width, height, x offset, y offset
152 . Added LFB modes (to be used with the vbe-lfb patch in bochs)
153 see VBE_HAVE_LFB in vbe.c (currently default enabled)
154 . updated TODO & docs for changes after bochs 1.4
155
156vgabios-0.3a : Mar 10 2002
157 - Christophe
158 . Fixed bug in function ah=13
159 - Jeroen
160 . updated vbebios implementation to new api
161 . added vbe_display_api documentation
162 . added 640x400x8, 640x480x8, 800x600x8, 1024x768
163 (>640x480 needs a special bochs patch atm)
164 . added 320x200x8 vbe support (uses the standard 320x200x8 vga mode to
165 display, this allows for testing & having something on screen as well,
166 at least until bochs host side display is up & running)
167 . adding lfbprof (vbe) testprogram (+some small fixes to it)
168 . merging with vbebios 0.2
169
170vgabios-0.2b : Nov 19 2001
171 - Christophe
172 . Fixed bug in function ah=13
173
174vgabios-0.2a : Nov 09 2001
175 - Christophe
176 . Included bugfix from [email protected] about grayscale summing
177 . Added the "IBM" string at org 0x1e as Bart Oldeman suggested
178 . Fixed DS and ES that where inverted in the int10 parameters list!
179 . The following have been implemented :
180 - function ax=1a00, ax=1a01, ah=1b
181 - function ax=1130
182 . Added debug messages for unimplemented/unknown functions
183 Must be compiled with DEBUG defined. The output is trapped
184 by the unknown-ioport driver of plex/bochs (port 0xfff0 is used)
185
186vgabios-0.1a : May 8 2001
187 - Christophe
188 . First release. The work has been focused only on text mode.
189 . The following have been implemented :
190 - inits
191 - int 10 handler
192 - functions ah=00, ah=01, ah=02, ah=03, ah=05, ah=06, ah=07, ah=08
193 ah=09, ah=0a, ah=0e, ah=0f, ax=1000, ax=1001, ax=1002, ax=1003
194 ax=1007, ax=1008, ax=1009, ax=1010, ax=1012, ax=1013, ax=1015
195 ax=1017, ax=1018, ax=1019, ax=101a, ax=101b, ah=12 bl=10,
196 ah=12 bl=30, ah=12 bl=31, ah=12 bl=32, ah=12 bl=33, ah=12 bl=34
197 ah=13
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette