Annotation of qemu/roms/vgabios/README, revision 1.1.1.2

1.1       root        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 <[email protected]>
                     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 [email protected]
                     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: -------
1.1.1.2 ! root       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: 
1.1       root      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 [email protected])
                    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 [email protected] 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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.