Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


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