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

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

unix.superglobalmegacorp.com

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