|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.