crestwave / vgabios Goto Github PK
View Code? Open in Web Editor NEWThis project forked from qemu/vgabios
Mirror of git.qemu.org/vgabios.git
License: GNU Lesser General Public License v2.1
This project forked from qemu/vgabios
Mirror of git.qemu.org/vgabios.git
License: GNU Lesser General Public License v2.1
Plex86/Bochs VGABios -------------------- The goal of this project is to have a LGPL'd Video Bios in plex86, Bochs and qemu. This VGA Bios is very specific to the emulated VGA card. It is NOT meant to drive a physical vga card. Cirrus SVGA extension --------------------- The Cirrus SVGA extension is designed for the Cirrus emulation in Bochs and qemu. The initial patch for the Cirrus extension has been written by Makoto Suzuki (suzu). Install ------- To compile the VGA Bios you will need : - gcc - bcc - as86 - ld86 Untar the archive, and type make. You should get a "VGABIOS-lgpl-latest.bin" file. Alternatively, you can use the binary file "VGABIOS-lgpl-latest.bin", i have compiled for you. Edit your plex86/bochs conf file, and modify the load-rom command in the VGA BIOS section, to point to the new vgabios image file. Debugging --------- You can get a very basic debugging system: messages printed by the vgabios. You have to register the "unmapped" device driver in plex86 or bochs, and make sure it grabs port 0xfff0. Comment the #undef DEBUG at the beginning of vgabios.c. You can then use the "printf" function in the bios. Testing ------- Look at the "testvga.c" file in the archive. This is a minimal Turbo C 2.0 source file that calls a few int10 functions. Feel free to modify it to suit your needs. Copyright and License --------------------- This program has been written by Christophe Bothamy It is protected by the GNU Lesser Public License, which you should have received a copy of along with this package. Reverse Engineering ------------------- The VGA Bios has been written without reverse-engineering any existing Bios. Acknowledgment -------------- The source code contains code ripped from rombios.c of plex86, written by Kevin Lawton <[email protected]> The source code contains fonts from fntcol16.zip (c) by Joseph Gil avalable at : ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip These fonts are public domain The source code is based on information taken from : - Kevin Lawton's vga card emulation for bochs/plex86 - Ralf Brown's interrupts list avalaible at http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html - Finn Thogersons' VGADOC4b available at http://home.worldonline.dk/~finth/ - Michael Abrash's Graphics Programming Black Book - Francois Gervais' book "programmation des cartes graphiques cga-ega-vga" edited by sybex - DOSEMU 1.0.1 source code for several tables values and formulas Feedback -------- Please report any bugs, comments, patches for this VGA Bios to [email protected] You can find the latest release at : http://www.nongnu.org/vgabios/ For any information on bochs, visit the website http://bochs.sourceforge.net/ For any information on qemu, visit the website http://fabrice.bellard.free.fr/qemu/ History ------- vgabios-0.6c : Apr 08 2009 - Volker . added DPMS support to cirrus vgabios (patch from Gleb Natapov) . use VBE LFB address from PCI base address if present . added support for a lot more non-standard VBE modes (e.g. widescreen modes) . minor bugfixes vgabios-0.6b : May 30 2008 - Volker . added PCI data structure for the Cirrus VGABIOS images . minor bugfixes in biossums utility, VBE support and makefile vgabios-0.6a : Aug 19 2006 - Volker . added minimal support for the video parameter table (VPT) . Cirrus SVGA now supports the "no clear" bit in Cirrus and VESA mode . Bochs VBE protected mode interface improved . save/restore video state support for Bochs VBE and standard VGA added . generate vbetables.h dynamicly . VBE video memory increased to 8 MB (VBE dispi ID changed to B0C4) . lots of 4bpp VBE fixes (all 4bpp VBE modes now enabled) . VGA compatible setup for VBE modes added vgabios-0.5d : Dec 29 2005 - Volker . Bochs VBE protected mode interface added (based on a patch by [email protected]) . biossums utility now supports VGABIOS sizes up to 64 kBytes . VGA mode 0x11: all color planes must be enabled in this 2-color VGA mode vgabios-0.5c : Jul 07 2005 - Volker . BIOS configuration word usually reports initial mode 80x25 color text . vgabios function 0x0e (write teletype): linefeed (0x0a) only increments the cursor row value vgabios-0.5b : May 24 2005 - Volker . fixed return value for the default case in the VBE section (non-debug mode) . removed unused stuff vgabios-0.5a : Mar 07 2005 - Volker . Cirrus SVGA extension (initial patches from Makoto Suzuki, improvements from Fabrice Bellard) . vgabios image size is now exactly 32k with a checksum . a lot of vgabios and vbe functions rewritten in assembler . dynamicly generated VBE mode info list . write character function for CGA and LINEAR8 modes . read/write graphics pixel for some graphics modes . text scroll feature for some graphics modes . VBE 8-bit DAC support vgabios-0.4c : Nov 06 2003 - Christophe . fix font problem on initial screen of NT4 Loader vgabios-0.4b : Nov 04 2003 - Volker . fix offset of character tables . optimizations of CRT controller accesses . VBE i/o registers changed to 0x01CE/CF (suggestion from Daniel Gimpelevich) . "noclear" flag stored in BIOS area . fix character height returned by get_font_info function vgabios-0.4a : Aug 17 2003 - Volker . VBE mode search rewritten (VBE modes with LFB bit removed) . many bugfixes and optimizations . write character function implemented for graphics modes . support for 15bpp, 16bpp, 24bpp and 32bpp VBE modes added . SVGA mode 0x6A added . VBE modes 0x102, 0x117, 0x118 and 0x142 (Bochs specific) vgabios-0.3b : Nov 23 2002 - Christophe . added lfb-mode numbers (patch from mathis) . updated the Makefile . removed display of copyrights. . changed the Copyright string to "LGPL VGABios developers" - Volker . set the cursor shape depending on the current font height . clear BL before calling int 0x10 function 0x1103 in vgabios_init_func . added some text font functions - Jeroen . Forced to new DISPI (0xb0c1) interface (requires latest bochs vbe code) . Added multibuffering support . Added new DISPI interface for: virt width, height, x offset, y offset . Added LFB modes (to be used with the vbe-lfb patch in bochs) see VBE_HAVE_LFB in vbe.c (currently default enabled) . updated TODO & docs for changes after bochs 1.4 vgabios-0.3a : Mar 10 2002 - Christophe . Fixed bug in function ah=13 - Jeroen . updated vbebios implementation to new api . added vbe_display_api documentation . added 640x400x8, 640x480x8, 800x600x8, 1024x768 (>640x480 needs a special bochs patch atm) . added 320x200x8 vbe support (uses the standard 320x200x8 vga mode to display, this allows for testing & having something on screen as well, at least until bochs host side display is up & running) . adding lfbprof (vbe) testprogram (+some small fixes to it) . merging with vbebios 0.2 vgabios-0.2b : Nov 19 2001 - Christophe . Fixed bug in function ah=13 vgabios-0.2a : Nov 09 2001 - Christophe . Included bugfix from [email protected] about grayscale summing . Added the "IBM" string at org 0x1e as Bart Oldeman suggested . Fixed DS and ES that where inverted in the int10 parameters list! . The following have been implemented : - function ax=1a00, ax=1a01, ah=1b - function ax=1130 . Added debug messages for unimplemented/unknown functions Must be compiled with DEBUG defined. The output is trapped by the unknown-ioport driver of plex/bochs (port 0xfff0 is used) vgabios-0.1a : May 8 2001 - Christophe . First release. The work has been focused only on text mode. . The following have been implemented : - inits - int 10 handler - functions ah=00, ah=01, ah=02, ah=03, ah=05, ah=06, ah=07, ah=08 ah=09, ah=0a, ah=0e, ah=0f, ax=1000, ax=1001, ax=1002, ax=1003 ax=1007, ax=1008, ax=1009, ax=1010, ax=1012, ax=1013, ax=1015 ax=1017, ax=1018, ax=1019, ax=101a, ax=101b, ah=12 bl=10, ah=12 bl=30, ah=12 bl=31, ah=12 bl=32, ah=12 bl=33, ah=12 bl=34 ah=13
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.