~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/vgabios/README

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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.6c : Apr 08 2009
 
94
  - Volker
 
95
    . added DPMS support to cirrus vgabios (patch from Gleb Natapov)
 
96
    . use VBE LFB address from PCI base address if present
 
97
    . added support for a lot more non-standard VBE modes (e.g. widescreen modes)
 
98
    . minor bugfixes
 
99
 
 
100
vgabios-0.6b : May 30 2008
 
101
  - Volker
 
102
    . added PCI data structure for the Cirrus VGABIOS images
 
103
    . minor bugfixes in biossums utility, VBE support and makefile
 
104
 
 
105
vgabios-0.6a : Aug 19 2006
 
106
  - Volker
 
107
    . added minimal support for the video parameter table (VPT)
 
108
    . Cirrus SVGA now supports the "no clear" bit in Cirrus and VESA mode
 
109
    . Bochs VBE protected mode interface improved
 
110
    . save/restore video state support for Bochs VBE and standard VGA added
 
111
    . generate vbetables.h dynamicly
 
112
    . VBE video memory increased to 8 MB (VBE dispi ID changed to B0C4)
 
113
    . lots of 4bpp VBE fixes (all 4bpp VBE modes now enabled)
 
114
    . VGA compatible setup for VBE modes added
 
115
 
 
116
vgabios-0.5d : Dec 29 2005
 
117
  - Volker
 
118
    . Bochs VBE protected mode interface added (based on a patch by malc@pulsesoft.com)
 
119
    . biossums utility now supports VGABIOS sizes up to 64 kBytes
 
120
    . VGA mode 0x11: all color planes must be enabled in this 2-color VGA mode
 
121
 
 
122
vgabios-0.5c : Jul 07 2005
 
123
  - Volker
 
124
    . BIOS configuration word usually reports initial mode 80x25 color text
 
125
    . vgabios function 0x0e (write teletype): linefeed (0x0a) only increments the
 
126
      cursor row value
 
127
 
 
128
vgabios-0.5b : May 24 2005
 
129
  - Volker
 
130
    . fixed return value for the default case in the VBE section (non-debug mode)
 
131
    . removed unused stuff
 
132
 
 
133
vgabios-0.5a : Mar 07 2005
 
134
  - Volker
 
135
    . Cirrus SVGA extension (initial patches from Makoto Suzuki, improvements
 
136
      from Fabrice Bellard)
 
137
    . vgabios image size is now exactly 32k with a checksum
 
138
    . a lot of vgabios and vbe functions rewritten in assembler
 
139
    . dynamicly generated VBE mode info list
 
140
    . write character function for CGA and LINEAR8 modes
 
141
    . read/write graphics pixel for some graphics modes
 
142
    . text scroll feature for some graphics modes
 
143
    . VBE 8-bit DAC support
 
144
 
 
145
vgabios-0.4c : Nov 06 2003
 
146
  - Christophe
 
147
    . fix font problem on initial screen of NT4 Loader
 
148
    
 
149
vgabios-0.4b : Nov 04 2003
 
150
  - Volker
 
151
    . fix offset of character tables
 
152
    . optimizations of CRT controller accesses
 
153
    . VBE i/o registers changed to 0x01CE/CF 
 
154
      (suggestion from Daniel Gimpelevich)
 
155
    . "noclear" flag stored in BIOS area
 
156
    . fix character height returned by get_font_info function
 
157
 
 
158
vgabios-0.4a : Aug 17 2003
 
159
  - Volker
 
160
    . VBE mode search rewritten (VBE modes with LFB bit removed)
 
161
    . many bugfixes and optimizations
 
162
    . write character function implemented for graphics modes
 
163
    . support for 15bpp, 16bpp, 24bpp and 32bpp VBE modes added
 
164
    . SVGA mode 0x6A added
 
165
    . VBE modes 0x102, 0x117, 0x118 and 0x142 (Bochs specific)
 
166
 
 
167
vgabios-0.3b : Nov 23 2002
 
168
  - Christophe
 
169
    . added lfb-mode numbers (patch from mathis)
 
170
    . updated the Makefile
 
171
    . removed display of copyrights.
 
172
    . changed the Copyright string to "LGPL VGABios developers"
 
173
  - Volker
 
174
    . set the cursor shape depending on the current font height
 
175
    . clear BL before calling int 0x10 function 0x1103 in vgabios_init_func
 
176
    . added some text font functions
 
177
  - Jeroen
 
178
    . Forced to new DISPI (0xb0c1) interface (requires latest bochs vbe code)
 
179
    . Added multibuffering support
 
180
    . Added new DISPI interface for: virt width, height, x offset, y offset
 
181
    . Added LFB modes (to be used with the vbe-lfb patch in bochs)
 
182
      see VBE_HAVE_LFB in vbe.c (currently default enabled)
 
183
    . updated TODO & docs for changes after bochs 1.4
 
184
 
 
185
vgabios-0.3a : Mar 10 2002
 
186
  - Christophe
 
187
    . Fixed bug in function ah=13
 
188
  - Jeroen
 
189
    . updated vbebios implementation to new api
 
190
    . added vbe_display_api documentation
 
191
    . added 640x400x8, 640x480x8, 800x600x8, 1024x768
 
192
      (>640x480 needs a special bochs patch atm)
 
193
    . added 320x200x8 vbe support (uses the standard 320x200x8 vga mode to
 
194
      display, this allows for testing & having something on screen as well,
 
195
      at least until bochs host side display is up & running)
 
196
    . adding lfbprof (vbe) testprogram (+some small fixes to it)
 
197
    . merging with vbebios 0.2
 
198
 
 
199
vgabios-0.2b : Nov 19 2001
 
200
  - Christophe
 
201
    . Fixed bug in function ah=13
 
202
 
 
203
vgabios-0.2a : Nov 09 2001
 
204
  - Christophe
 
205
    . Included bugfix from techt@pikeonline.net about grayscale summing
 
206
    . Added the "IBM" string at org 0x1e as Bart Oldeman suggested
 
207
    . Fixed DS and ES that where inverted in the int10 parameters list!
 
208
    . The following have been implemented :
 
209
        - function ax=1a00, ax=1a01, ah=1b
 
210
        - function ax=1130
 
211
    . Added debug messages for unimplemented/unknown functions
 
212
      Must be compiled with DEBUG defined. The output is trapped
 
213
      by the unknown-ioport driver of plex/bochs (port 0xfff0 is used)
 
214
 
 
215
vgabios-0.1a : May 8 2001
 
216
  - Christophe
 
217
    . First release. The work has been focused only on text mode.
 
218
    . The following have been implemented :
 
219
        - inits
 
220
        - int 10 handler
 
221
        - functions ah=00, ah=01, ah=02, ah=03, ah=05, ah=06, ah=07, ah=08
 
222
          ah=09, ah=0a, ah=0e, ah=0f, ax=1000, ax=1001, ax=1002, ax=1003
 
223
          ax=1007, ax=1008, ax=1009, ax=1010, ax=1012, ax=1013, ax=1015
 
224
          ax=1017, ax=1018, ax=1019, ax=101a, ax=101b, ah=12 bl=10,
 
225
          ah=12 bl=30, ah=12 bl=31, ah=12 bl=32, ah=12 bl=33, ah=12 bl=34
 
226
          ah=13