1Changes in 1.4.3 2 3Yury Starkov <yury1@mail.lv>: 4 fix banshee.c setdisplaystart(). 5 fix gl_enablepageflipping() call in demos/fun.c 6 7Hans de Goede <hans@highrise.nl>: 8 fix vesa.c for modes where logical width is not the minimum necessary. 9 10Morris Michael Slutsky <mslutsky@umich.edu>: 11 A new mouse driver for DR mouse with two wheels. (DRMOUSE4DS) 12 13Chris Purnell <cjp@oit.net>: 14 fbdev driver. 15 16Matan Ziv-Av <matan@svgalib.org>: 17 doc/Makefile changed to have the man pages uncompressed in the distribution. 18 GeForce support in nv3.c. 19 Matrox G450 driver (called g400.c). 20 ATI Rage 128 driver. 21 S3 Savage driver. 22 23Changes in 1.4.2: 24 25Bart Oldeman <Bart.Oldeman@bristol.ac.uk>: 26 vga_simple_init, vga_chipset_setregs, vga_chipset_saveregs - for dosemu. 27 fix sis driver to program 25 and 28MHz clocks correctly, in case 28 bios misporgrammed them. 29 other fixes for sis.c 30 31Klaus Stehle <klaus.stehle@uni-tuebingen.de>: 32 Fix gl_writen to behave as per the man page (not stop at nul char). 33 34Ben Winslow <rain@insane.loonybin.net>: 35 support for Wacom Graphire tablet/mouse. 36 37malekith@ikar.mps.com.pl: 38 support for mouse type pnp (explanation of this type in gpm). 39 40Krzysztof Nikiel <krzych00@priv7.onet.pl>: 41 move mouse_init to vga_init (before giving up root privileges), and 42 not closing mouse upon return to text mode. This enables svgalib 43 programs to use the mouse device even when the device is only readable 44 by root. 45 46Matan Ziv-Av <matan@svgalib.org>: 47 Banshee fixes to support high resolution modes. 48 nv3 fix to support nv3 (Riva128) cards again. 49 nv3 fix to restore memory page number. 50 fix gl_hline to do nothing if x1>x2 (rather than segfault) + man page. 51 workaround for double clock speed for some rage cards 52 laguna (Cirrus logic 546X) driver. 53 54Changes in 1.4.1: 55 56Shigehiro Nomura <s.nomura@mba.nifty.ne.jp>: 57 neomagic driver. 58 59Jay Link <jlink@svgalib.org>: 60 Functions gl_fillcircle(3) and gl_bcircle(3), for greater flexibility. 61 Main algorithm of gl_bcircle(3) provided by Chris Atenasio: 62 <chris@svgalib.org>. 63 64Sergey A. Kononenko <sergk@ssu.ccssu.crimea.ua>: 65 s3 driver update to support linear mode with Trio64 + small fixes. 66 67Matan Ziv-Av: 68 sis, banshee, i740 drivers. 69 nv3 updated for TNT and GeForce. 70 scitech's gtf in timing.c (not used yet). 71 vgapci can now be used to find more than one vga card. 72 73Robert J. Ragno <rjr@MIT.EDU>: 74 fix compile problems with gcc-2.95 75 76Greg Alexander <galexand@acm.org> 77 add support for fourth button of Trackman Marble. 78 79 80Changes in 1.4.0: 81 82Matan Ziv-Av <matan@svgalib.org> 83 vgapci uses /proc/bus/pci kernel interface, when available. 84 Rage driver. 85 Added static modes. 86 Extended dynamic mode creation with vga_addtiming(3), vga_guesstiming(3), 87 vga_addmode(3) and newmode config file option. 88 Functions vga_cetcurrenttiming(3) and vga_changetiming(3), for mode 89 tuning at runtime. 90 All mmaps of /dev/mem are done by driver initialize function and 91 vga_init, so /dev/mem file descriptor is closed when relinquishing root 92 privileges. 93 Moved mach64.c driver to a different directory. 94 vga_reset utility added to facilitate restoring textmode without 95 rebooting, in case svgalib fails to do it properly. 96 97Christian Groessler <cpg@aladdin.de>: 98 Chips&tech driver fixes. 99 Changing vga_setlinearaddressing to return error when in mode that does 100 support linear. 101 102Luke Angel <luke@illuminated.com.au>: 103 FPC (Pascal) demo. 104 105Don Secrest <secrest@aries.scs.uiuc.edu>: 106 Rewrite of et6000 driver to comply with newer svgalib driver interface. 107 108Russell Marks <rus@forfree.at>: 109 Fixed bug in console switching when in background mode (it used to 110 effectively disable console-switching after the first switch, which 111 broke zgv). 112 Made vga_getscansegment() and vga_drawscansegment() work correctly 113 for non-4-pixel-aligned x locations in mode-X modes, and made 114 mode-X vga_getscansegment() set page to *read*, not write. 115 116 117Changes in v1.3.1: (16 Aug 98): 118 119Wichert Akkermann <wakkerma@debian.org> & Kevin Vajk <kvajk@ricochet.net>: 120 Ensure stdin/out/err don't point to sensitive files (/dev/mem) by accident. 121 122David Bateman <dbateman@ee.uts.edu.au>: 123 C&T: Added support for 65555, 68554, 69000 and 64300 chips 124 Some smaller fixes (65554 memory probing, max. pixel clock) 125 126David Grant <dave@reach.net>: 127 Remove some egcs warnings. 128 129Christian Groessler <cpg@aladdin.de>: 130 C&T: Further 65550 enhancements, fix text-mode stretching. 131 C&T: does not need iopl(3) anymore. 132 map_framebuffer() also works for non root now. 133 vga_setmode() typo fixed 134 Increase buffers for vgapci 135 136Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>: 137 Lrmi.c support under egcs, nested int calls. 138 139Don Secrest <secrest@aries.scs.uiuc.edu>: 140 Support for linear frame buffer. 141 142Scott Stone <sstone@ume.pht.co.jp>: 143 Glibc adaptions for lrmi.c. 144 145Brion Vibber <brion@pobox.com>: 146 Variation of lrmi glibc adaptions. 147 148Matan Ziv-Av <matan@svgalib.org>: 149 Minor apm/nv3/vesa patches. 150 Vgapci enhanced (some buffer sizes changed). 151 MX driver added. 152 TextProg option added. 153 154Changes in v1.3.0: (11 June 98): 155 156Daniel Engstr�m <daniel.engstrom@riksnett.no>: 157 Provided an svgalib-style joystick driver. 158 159Harald Hoyer <HarryH@Royal.Net>: 160 Readjust speed for certain Logitech Mousemen. 161 162Jan Hubicka <hubicka@atrey.karlin.mff.cuni.cz>: 163 Some internal additions for cards with no VGA functionality. 164 165Elliot Lee <sopwith@circ.us.eu.org>: 166 Yet another ViRGE/VX id for autodetection. 167 168Attila Lendvai (101) <101@kempelen.inf.bme.hu>: 169 Logarithmic mouse acceleration. 170 Mouse acceleration config by config file. 171 Rename GSVGAMODE to SVGALIB_DEFAULT_MODE 172 Parse ~/.svgalibrc and SVGALIB_CONFIG_FILE. 173 Mouse emulation in raw keyboard mode 174 Changed his email 175 176Lalo Martins <lalo@webcom.com>: 177 Fix misinterpretation of monitor freq limits in Mach32 interlaced (fix 178 generalized and applied to a related code segment as well: eowmob, below) 179 180Marek Mintal <mintal@chelin.chtf.stuba.sk>: 181 Fixed gl_copyfrom/tocontext in more than 8bpp. 182 183Don Secrest <secrest@aries.scs.uiuc.edu>: 184 ET6000 Support. 185 A tiny ET4000 fix. 186 187Trek <trek00@freenet.hut.fi>, <trek@mediaservice.net>: 188 Added gl_printf. 189 190Brion Vibber <brion@pobox.com>: 191 Added Intellimouse support, PS/2 and serial. 192 Fake keyboard events for using wheel with legacy apps. 193 Updated mousetest demo to do something with middle button and wheel (RX axis). 194 Added limited keyboard layout remapping for raw keyboard. 195 196Michael Weller <eowmob@exp-math.uni-essen.de>: 197 demos/Makefile misused $* in chown accel and others. 198 Makefile now robust for comments in /etc/ld.so.conf (Problem cause/fix found 199 by <martinp@gmx.de>) 200 Makefile failed to remove certain library stubs not removed by ldconfig on 201 Slack 3.3 reported by Jacek Tokarski <tokarsk@us.edu.pl> 202 Various rewritings of gl_printf(). 203 Documentation fixes. 204 Mach32 lowered iopl() accidently on occasion. 205 Allow disabling sigint in graphicsmode. 206 Made apm test more grateful to VGA cards. 207 Mach32 proper accel bitmap (RD_MASK) in 32K colors. 208 Allow joystick sharing and multiple joystick support, bind joystick 209 interface into svgalib. 210 211Matan Ziv-Av <matan@svgalib.org>: 212 Added apm driver for AT3D. 213 Added nv3 driver for Riva128. 214 Added a driver for 'nicely behaved' Vesa bioses. 215 216Changes in v1.2.13: (4 Dec 97): 217 218Pekka T. Alaruikka <alaruik@cc.hut.fi> & Michael Friman <no email>: 219 Modified the VC switch queue & other clean up. 220 221Mike Chapman <mike@paranoia.com>: 222 Added mouse acceleration. 223 224Ryan Rubley <rubleyr@river.it.gvsu.edu>: 225 Added TVGA9440 support. 226 Provided trap-out tool. 227 228Frodo Looijaard <frodol@dds.nl>: 229 Email changed. 230 231Michael Weller <eowmob@exp-math.uni-essen.de>: 232 Fix the 512 chars console font fix. 233 234Changes in v1.2.12: (4 Sep 97): 235Pekka T. Alaruikka <alaruik@cc.hut.fi> & Michael Friman <no email>: 236 Fix a bug in the background mode support, introduced by Michael. 237 Optimizing speed of the background mode support. 238 239Greg Alexander: 240 Autodetect S3Trio64V2/DX. 241 New 640x480 example timing. 242 243Ricardas Cepas <rch@pub.osf.lt> 244 Save 512 chars of console font (needed for newer kernels). 245 246Michael Talbot-Wilson <talmg@wren.forensic.sa.gov.au>: 247 Some more glibc modification & success reports. 248 249Michael Weller <eowmob@exp-math.uni-essen.de>: 250 Transformed all README's in a bunch of man pages and even documented 251 previously unknown stuff. 252 Makefile modifications to allow installation of man pages. 253 Makefile modifications to ensure default configuration is for ELF. 254 Fixed accelerated gl_fillbox for more than 8bpp problem reported by 255 Anthony Chu <anthony@av4800.tatung.com.tw> 256 257Changes in v1.2.11: (29 Jun 97): 258 259Pekka T. Alaruikka <alaruik@cc.hut.fi> & Michael Friman <no email>: 260 Background mode support. 261 262David Bateman <dbateman@ee.uts.edu.au>: 263 Support for Chips & Technologies 655xx chipsets 264 265Gary Clark <GaryC@mail.jeld-wen.com>: 266 Allow S3 virge to be autodetected as S3 Trio 64 267 268Jeff Epler <jepler@inetnebr.com>: 269 Allow for coexistance of GPM and svgalib 270 271David Goldsmith <dhg@dec.net>: 272 Pointed out buffer overrun security flaws using saved uids and provided a fix. 273 274H. Hanemaayer <H.Hanemaayer@inter.nl.net>: 275 Some Cirrus 5436 fixes and changes to mode timings for Cirrus 276 Remove lock from a few Ark registers. 277 278Dr Stephen Henson <shenson@bigfoot.com> (former Stephen Henson 279 <shenson@nyx.net>): 280 Fix an ELF/gcc flaw in inlstring.h (former BugsNotFound) 281 282Ron Koerner <koerne00@marvin.informatik.uni-dortmund.de>: 283 Enhanced ALI driver. 284 285Jae-Hyuck Lee <jalee@grail.cba.csuohio.edu>: 286 Makefile problems (probably due to new gmake, used to work b4). 287 288Stephen Lee <sl14@cornell.edu>: 289 Detects the Trio64V+. 290 A few patch to Trio64 RAMDAC code to make it work better on the V+. 291 292Robert Lupton <rhl@astro.Princeton.EDU>: 293 Typo in vga_waitevent(). 294 Possible race condition releasevt_signal() when restoring signal. 295 296Szeredi Miklos <mszeredi@eik.bme.hu>: 297 Reset keystates on a VC switch in keyboard.c 298 299David Mosberger-Tang <davidm@AZStarNet.com>: 300 Some (more) changes for clean Linux/Alpha support. 301 302Tomi Sarvela <tsarvela@nether.tky.hut.fi>: 303 Added support for Cirrus 5436. 304 305Paul Sheer <psheer@icon.co.za>: 306 Gl line drawing routine with inlined set_pixel. 307 308Lodewijk Voge <lodewijk@reddwarf.xs4all.nl>: 309 Autodetect Hercules Stingray 64/Video as ark2000pv. 310 311Vernon C. Hoxie <vern@zebra.alphacdc.com>: 312 Solved (hopefully) the Mach32-AST problem. 313 314Michael Weller <eowmob@exp-math.uni-essen.de>: 315 Search free console on startup as zgv did. Should also fix a problem with 316 /dev/tty & zgv on newer kernels (reported by Mike Castle <mcastle@cris.com>). 317 Various Makefile fixes and changes. (Most useful reports by: 318 Kieron Brown <kieron@acfd.bris.ac.uk> & 319 Don Secrest <secrest@aries.scs.uiuc.edu>) 320 321Oliver White <owhite@nla.gov.au>: 322 Fix typo that broke G1024x768x32K and G640x480x16M32 and higher in ark.c 323 324Eric Sharkey <sharkey@superk.physics.sunysb.edu>: 325 Added 6-D mouse support 326 Added Spacetec Spaceball/Spaceorb mouse protocol (special thanks to 327 Brett Viren <bviren@superk.physics.sunysb.edu> for reverse engineering 328 this protocol and providing many lines of code which I've included 329 in svgalib) 330 Added spin demo, adapted and expanded from the original spin program 331 by Jason Lyons <jason_l@hotmail.com> 332 Added mdev config file option to set mouse device 333 Fixed scale bug in mouse_setposition() 334 335Changes in v1.2.10: (20 Mar 96) 336 337Andreas Arens <ari@av.rwth-aachen.de>: 338 Support for new S3 clockchip ICD 2061A in a new clockchip module. 339 Sierra SC1148X ramdac support 340 Sierra SC15025 ramdac support 341 New `DacSpeed' config option 342 Fix for 928 modes. 343 344Stefan Kanthak <kanthak@Gazelle.Informatik.RWTH-Aachen.DE>: 345 Several changes for support of Alpha _JENSEN_ system as well. 346 347Stephen Lee <sl14@cornell.edu>: 348 Makefile patches: 349 - LFLAGS is for lex, use LDFLAGS instead. 350 - Changed default target. 351 - Create symlinks for new binutils. 352 - Moved ramdac and clockchip into their own directory. 353 - 3dkit can now compile in a separate directory. 354 - use $(CC) $(INCLUDE) instead of just gcc for making dependency files. 355 Cleanup ATI driver (also fix for a buglet). 356 Partial S3 868 support. 357 SDAC 24bpp support (probably wouldn't work with 864, though). 358 Allow 1152x864 & 1600x1200 modes for drivers that can use modeline 359 in libvga.conf (e.g. S3). 360 S3 4bpp doesn't like Linear Bank Switching. 361 SDAC doesn't seem to do pixel multiplexing at 4/8bpp. 362 ramdac.c bugfix and cleanup. 363 okay, so some people still have pixel swapping problem on the 805. (sigh) 364 I've put in an experimental fix for it. 365 split ramdac.c into individual files. 366 968/IBMRGB support. Only 256 colors for now. 367 Merged Trio64 patch from Moto Kawamura <kawamura@mmp.cl.nec.co.jp>. 368 Changed handling of S3 CR34 for VGA modes at Andreas' suggestion. 369 Updated libvga.config and README.config. 370 Small fix for libvga.h macros. 371 Rewrote __vga_dumpregs(). 372 373Bill Randle <billr@master.CNA.TEK.COM>: 374 Patches to allow compiling only some of the ramdac drivers. 375 Enhanced vga_drawscansegment() to remove it's limitations. 376 New function: vga_getscansegment(); 377 Allow intermixing of vga_setpalette()/vga_getpalette calls. 378 379Tomi Sarvela <tsarvela@nether.tky.hut.fi>: 380 Some more scancodes for vgakeyboard.h 381 382Paul Sheer <psheer@icon.co.za>: 383 Routine to draw quick triangles and some 3d demos in 3dkit/ 384 385Erik Troan <ewt@redhat.com> 386 Renamed a read[bwl] and write[bwl] for ALPHA support under latest kernels. 387 388Michael Weller <eowmob@exp-math.uni-essen.de>: 389 Fixed security leak from linux-security@vger in restorefont -r. 390 Fixed Fix for vgapal.c so it started working again. Added index register sets 391 back to vgadrawscansegment for ATI SVGA cards. 392 Cleaned support to compile only few RAMDACS in (still not happy with it though) 393 Even more scancodes to vgakeyboard.h 394 New function vga_waitevent() plus eventtest demo due to request for libgrx by 395 Daniel Lee Jackson <djackson@ichips.intel.com> (although there was no such 396 flexible solution required) 397 Docs for vga_(draw/get)scansegment(), vga_waitevent(); 398 399Changes in v1.29: (11 Nov 95) 400 401Stephen Lee <sl14@crux1.cit.cornell.edu>: 402 Minor Makefile patches. 403 16 color modes work on the S3 805. 404 405Scott Snyder <SNYDER@D0SB10.FNAL.GOV> 406 Fix to have Mach32 not remap the location of some ELF libs (modified by Michael). 407 408Heiko Schroeder <heiko@pc73121.dialup.rwth-aachen.de> 409 Implemented a modeline config command for libvga.conf to userdefine 410 modes for all drivers using timing.c 411 412Andreas Arens <ari@av.rwth-aachen.de>: 413 ET4000 patches to avoid problems with 132 column consoles and with IOPERM 414 in ET4000/W32. 415 RAMDAC (SC15025) for S3 416 417Ron Koerner <koerne00@marvin.informatik.uni-dortmund.de>: 418 New driver for ALI2301 (keyword: ALI) cards in all SVGA 256 colormodes. 419 420Peter Ekberg <peda@pulkan.rydnet.lysator.liu.se> 421 Waiting for console activation could be interrupted by signals. 422 423Michael Weller <eowmob@exp-math.uni-essen.de>: 424 Fixed fix of Oak, modifies mode timings depending on detected chipset 425 Minor typo in egadrv.c 426 Documented unavailability of SIGUSR1/2 as Peter suggested. 427 Fixed a problem in raw keyboard mode noticed by Stephen (matter of 428 seconds coz of good description) 429 430Changes in v1.28: (7 Oct 95) 431 432Koen Gadeyne <kmg@barco.be>: 433 Typo for S3 genDac (S3 SDAC, S3 Trio) made all clocks unusable. 434 Support for 24bpp (true-color) on S3 805 cards with GenDAC. 435 436Honza alias Jan Hubicka <hubicka@limax.paru.cas.cz>: 437 Possible segfault in gl/cbitmap, fixed gl_regioncode for clipping 438 on Dec Alpha. 439 440Sven Grothklags <sven@uni-paderborn.de>: 441 Bugfixes for compressed fonts in vgagl. 442 443Stephen Lee <sl14@crux1.cit.cornell.edu>: 444 Several pixel swapping fixes on S3-805, New Dacspeed keyword for ATT20C490 445 Changed monitor setup to accept seperate h/vsync values (see README.config), 446 Reintroduced lost (?) et3000 support in distribution shared lib. 447 Rejoined ELF/a.out Makefiles, in fact rewrote all Makefiles. 448 Again many code cleanups to pass -Wstrict-prototypes 449 450Michael Weller <eowmob@exp-math.uni-essen.de>: 451 Fixed confusion about termios setting between keyboard.c and vga.c (console 452 lockup at <VC-switch>-Enter) 453 Catched ALL fatal signals for gentle touch down. 454 Patched mach32 to accept new h/vsync monitor setup. 455 Some tiny a.out patches to Stephen's Makefile's 456 Even more code cleanups. Now EVERY sourcefile passes -Wstrict-prototypes 457 and even the esp. pedantic warnings of my vanilla a.out gcc 2.6.3 458 (who seems to be more pecular than other compilers) 459 Reformatted ALL sources due to requests. 460 Minimal fix to allow using chipset ATI on Mach32 (doesn't give you much, 461 though) 462 vga_safety_fork() enhanced, uses iopl now. (which has its own security issues, 463 see README) 464 465Frodo Looijaard <frodol@dds.nl>: 466 Fixed Oak driver to support Oak-67 again. Note: The fix might have broken 467 Oak-87 support by accident. 468 469Christopher Wiles <wileyc@moscow.com>: 470 Slight modifications of above Oak fix. 471 472Peter Ekberg <peda@pulkan.rydnet.lysator.liu.se>: 473 Some more scancodes in vgakeyboard.h and doc fix for vga_getkey(); 474 475Changes in v1.27: (21 August 95) 476 477Mach32 related changes(M. Weller <eowmob@exp-math.uni-essen.de>): 478 cosmetic fixes, new config commands svgaclocks, ramdac, vendor to 479 help support alien (not conforming to original ATI specs) cards 480 (should work for dell now). Fixed several NULL ptr dereferences 481 that delurked under ELF. 482 483David Mosberger-Tang <davidm@AZStarNet.com>: 484 Patches to make svgalib work on Linux/Alpha. (Only known to work with #9 GXE 485 PCI, other cards may or may not work) 486 487Harm Haanemayer <hhanemaa@cs.ruu.nl>: 488 Change duplicate include check vgamouse.h. 489 Fix bug in gl_getpixel in 3-bytes-per-pixel modes. 490 Allow ctrl-c detection to be disabled in raw keyboard interface. 491 492Gregory Margo <gmargo@newton.vip.best.com>: 493 Support for the Logitech Mouseman mouse series. 494 Override mouse mode from environment (SVGA_MOUSE_OVERRIDE) (useful for doom) 495 496Stephen Lee <sl14@crux1.cit.cornell.edu>: 497 ELF support, countless patches for code clean up, bugfixes in S3 15/16/24 bpp, 498 autodection for more chips (but alas, no support for them) 499 500Moved config files to /etc/vga due to requests, patched makefiles for automatic 501 reconfiguration. (M. Weller <eowmob@exp-math.uni-essen.de>) 502 503Changes in v1.26: (27 April 95) 504 505Really fix console-switching in raw-keyboard mode. 506Fix SDAC support. 507Fix Trio64 detect. Modes don't work though (use Ramdac "normal"). 508Move ET4000 chiptype detection so that it works when chipset is 509forced in config file. 510Fix Cirrus 5420/22/24 support. 511Mach32 related changes: 512Minor typos in mach32info fixed. 68800-6 should now be reported correctly. 513Fixed compiler warnings in mach32.c due to changed interface (no new accel 514interface yet). 515Newflag for red first in 24bpp returned for Mach32 with DAC 4 516Support for 24bpp red first in whole svgalib + vgagl. 517Added support for 32bpp in vgadraw.c 518Added detection for 24bpp red first in vgatest. 519TODO: Fix raw-keyboard console switching when alt is kept pressed (e.g. 520Doom). 521 522Changes in v1.25: (7 March 95) 523 524Problem with programs that don't call vga_init finally fixed. 525Fix console-switching in svgalib raw-keyboard mode (vgakeyboard.h). 526Working ARK driver (includes acceleration). 527Linear addressing detection changed (supports partial framebuffers). 528Add more RAMDAC support -- AT&T490-compatible truecolor DACs supported 529for S3. 530Tweak mouse/keyboard header files to fix conflict with libgrx compile. 531 532Changes in v1.24: 533 534Fix bug causing "not running in ..." messages if vga_init wasn't called. 535Better structure for driver interface ("DriverSpecs"). Fields other 536than the basic driver functions can be included. Type checking is also 537better. Most drivers haven't been updated for the new return types; 538feel free to send patches. Something might be broken, watch out. 539Better acceleration inferface. 540Fix ARK chiptype detection. 541Untested ARK chip support. 542Largely fixed S3-864 + SDAC support. 543Untested clock/DAC support for the Trio64 in the S3 driver. 544Unlock extended registers when forcing Cirrus in config file. 545Try to avoid Cirrus hardware lock-up when switching certain modes. 546Add "accel" program to test new acceleration interface. 547 548Changes in v1.23: (8 Feb 95) 549 550ET4000/W32 tweaks. 551Added gl_allocatecontext. Use this instead of declaring GraphicsContext 552variables statically. Demo programs changed accordingly. 553Safer VC switching with blits. 554Allow Cirrus SVGA modes with 512K memory. 555Possible Cirrus 5422 MCLK detection fix. 556Incorporate ATI 'driver' from Scott Heavner (allows VGA with 132-column 557textmode). 558Untested ARK driver and untested generic S3 support (640x480x256 @ 60 Hz). 559Unused acceleration interface sketch (accel.h/cirrus.c). 560 561Changes in v1.22: 562 563ET4000 additions for STG170x DAC (tseng3.c and driver), linear addressing 564support for W32p, better general linear addressing handling with new driver 565function, 8-bit color components CLUT support for AT&T DAC (David 566Etherton). 567Cirrus driver tweaks. 568S3 driver rewritten for S3-864 + SDAC (doesn't work yet) using new 569interface. 570Linear addressing probing with vga_setlinearaddressing. Console switching 571is not a good idea with linear addressing enabled. 572Treat Oak 077 as standard VGA (incompatible with OTI-087 mode dumps). 573Fix planar getpixel (untested). 574VC switching in RAW keyboard mode (e.g. Doom) (doesn't always work) 575[was typo, fixed in 1.25]. 576 577'VGAGL' status: 578 Should be usable seperate from svgalib with minor changes. 579 GraphicsContext should be allocated dynamically (malloc) 580 by library for compatibility/extensibility. 581 Non-expanded font text write functions added (untested...). 582 Missing is proper direct page flipping support (double-buffering 583 in video memory). This would require all operations to be 584 performanced at a certain offset into the framebuffer. 585 586Changes in v1.21: (23 Dec 94) 587 588Partially restructured Cirrus driving using clean, XFree86-style 589SVGA-generalized interface. Check out timing.*, vgaregs.* and cirrus.c. 590Cirrus driver itself should now support all 542x/543x cards. 591Fix MouseSystems movement overflow. 592Fix PS/2 mouse support finally (sorry). 593Fix (old) Logitech protocol mouse handling (hopefully - I lost the 594message that contained the fix). 595Fix Cirrus bitblt bug. 596gvga6400 driver BIOS check changed; munmap seems to mess things up. 597Add vga_getpixel() (untested). 598Incorporate restorepalette patch from Charles Blake, allows custom 599textmode console colors (see utils/README). 600 601Changes from Michael Weller: 602Made GSVGAMODE parsing case insensitive, and added names for 16M32 modes. 603vgatest displays info about 16M32 modes better. 604mach32 - Support for 8bit clut on type 2 DACS. 605Added testaccel demo. 606mach32 - Support for all accelerator functions. 607Added vga_hlinelist(), vga_blitwait(), vga_ext_set(), [vga_accel()] 608mach32 - eeprom interpretation more robust and configurable for stupid AST 609 boards. 610mach32 - changed 16M4 -> 16M32 for compatibility 611Fix: reserve memory for one screen on EACH setmode call (as the README 612 states). 613mach32 - Added support for AST style EEPROM checksums. 614Added commands to control RTS/DTR lines for multiprotocol mice. 615Fix: mach32 - VGA modes should work now even in 132 columns text modes. 616Sanity check for MAX_REGS in vga.c 617Fix: Raised MAX_REGS as was actually needed. 618Fix: Textmode utils now give errors on problems with accessing files. 619Fix: Restore of Mach32 regs after clock probe was broken (cosmetic, no 620 problems reported). 621Fix: Mach32 Dac1&4 have to use double/triple clocks in 16/24bpp. 622 623 624Changes in v1.20: (25 Nov 94) 625 626Clean up VT code a bit. 627Slight ET4000/W32p detection fix. 628Possible mach32 32bpp copyscreen fix. 629Allow VT-switching with mouse support (it was disabled because of 630interaction with an old version of selection, I take it things are 631better now?). 632Preliminary Cirrus 5434 support (untested, only 1280x1024x256 for now), 633will be fixed soon. 634New Oak driver (Christopher Wiles). 635Use seteuid instead of setuid to give up setuid-root permissions. 636Hack that may fix 132-column textmode/VGA mode problems on ET4000. 637Fix color/mono config option (mono was broken). 638Disable 320x200x256 page flipping for ET4000. 639Fix Cirrus fillblt register corruption problem. 640GVGA6400 driver (Arno Schaefer). 641vga_init now returns -1 if not on a suitable console (0 otherwise); hard 642 exit can only happen in vga_setmode (David Liu). This should help 643 programs with multiple output devices like gnuplot. 644Added mouse_init_return_fd and keyboard_init_return_fd for select() use. 645Add SIGKILL catch to raw keyboard interface. 646PS/2 mouse support possibly fixed. 647Shared library 1.2.0 (corresponds with main svgalib version number). 648 649 650Changes in v1.12: (17 June 1994) 651 652Delay console checking until actually setting a mode (should fix problems 653with device-probing programs like gnuplot). 654Fix planar mode getmodeinfo bug for Trident and others (should fix floating 655point exceptions in zgv). 656Support PS/2 mouse in config file. 657Fix one-byte-per-pixel gl_putboxmask. 658Shared library 1.1.8. 659 660Changes in v1.11: (19 May 94). 661 662Better fix for ET4000/W32 auto-detection. 663Fix typo that prevented ET3000 auto-detection. 664Clipping bug with compiled bitmaps fixed. 665Shared library 1.1.7. 666 667Changes in v1.10: (9 May 94) 668 669Possible fix for ET4000/W32 auto-detection (does iopl(3) now). 670Logitech mouse fix. 671Repeated keyboard_init/keyboard_close fix. 672vgagl fixes for mach32 'misordered' 32bpp truecolor and 32bpp paged fillbox. 673mach32 - Forgot to disable write mask for VGA framebuffer (zgv2.2 screen 674 corruption after online help) 675mach32 - Wrong assumption about BIOS enabling the mem aperture.. was actually 676 done by Xfree.. driver will setup linear framebuffer itself using 677 info from the EEPROM now. 678mach32 - added mach32/mach32.std-modes info file.. 679mach32 - ran a spell checker over my README's to throw away the worst errors. 680mach32 - Patched vgapix for correct RGB_MISORDERED support. 681mach32 - This needed an additional global for the modeinfo-flags (short cut is MODEFLAGS). 682mach32 - Changed blankadjust for 32bpp modes and DAC-type 2. 683mach32 - Patched mach32 autodetection code. 684mach32 - Changed 32bpp setting at all by defining a new dacmode (needed for dac-types 5) 685mach32 - Changed VFIFO handling and vfifo defaults for 16/24/32bpp modes. 686mach32 - Added fuzz factor of 0.5KHz when obeying monitor horz restriction. 687mach32 - deleted dacwidth config command (was not useful) 688mach32 - Added setuplinear command for mach32 (would be useful for cirrus too) 689mach32 - Changed order of restore of extended ati registers to obey locking.. 690 may need even more fixing..that is ensure restore of vgaregs before they are locked 691 again when restoring extended ATI lock registers. 692mach32 - Had to change order of entries in save-/setregs array for mach32 for this. 693Shared library v1.1.6. 694 695Changes in v1.09: (2 May 94) 696 697Significant mach32 driver/docs update (potentially dangerous bug fixed). 698Some vga_draw primitives now support 32-bit pixel modes (better support is 699in vgagl). 700Cirrus 320x200x256 registers redefined to support page flipping (setmodeX 701doesn't work anymore). 702Trident 320x200x256 page-flipping disabled. 703Shared library 1.1.5. 704 705Changes in v1.08: (27 Apr 94) 706 707Improved vgagl 24-bit physical/32-bit virtual screen support (pageflipping 708really fixed, speed increase (alignment)). 709S3 driver hacked (try it if you are bold). 710Sierra 15025/26 DAC support should work for 32K modes now. 711Added PS/2 mouse support (untested). 712More vgagl 32bpp primitives. 713320x200x256 vgagl page flipping fix (this is a big one). 714Added ctrl-c detection to low-level keyboard interface. 715vgagl copyboxfromcontext added, and more efficient copyboxtocontext. 716Shared library 1.1.4. 717 718Changes in v1.07: (19 Apr 94) 719 720Moved main library source into src/. Cleaned up shared library making. 721Fix permissions of utils/convfont. 722Fix tty behaviour: 723Open /dev/tty instead of /dev/tty0 (previously non-root users could not run 724programs if /dev/tty0 was not world-readable, like in the recent slackware). 725Don't kill the terminal settings when detecting a non-graphics capable 726virtual console (stupid bug related to use of atexit()). 727Limited support for ioperm(1) by Olaf Titz. Allows non-root users to run 728svgalib binaries which are not setuid-root. 729Emulated paged copybox in vgagl (untested). 730Utility to read out the ATI mach32 EEPROM. 731Shared library 1.1.3. 732 733Changes in v1.06: (11 Apr 94) 734 735vgagl pageflipping fix for 24-bit/32-bit virtual screen. 736Fix 16 color mode availability on ATI mach32. 737Possible ET4000/W32 Sierra 15025/26 64K color fix. 738vgagl compiled bitmaps enhanced (not completely compatible with v1.05), 739but still untested. 740Possible Trident 320x200 page flipping fix. 741Shared library 1.1.2 742 743Changes in v1.05: (2 Apr 94) 744 745Some unfinished SVPMI stuff (feedback strongly encouraged). 746Added vgagl compiled bitmap functions (256 color only, untested). 747Added definitions for 32 bits per pixel truecolor modes (not used yet). I 748don't feel like adding vga_draw* functions for these; use vgagl. 749vgagl now supports VGA 16 color modes indirectly. 750Added RAW mode keyboard interface (vgakeyboard.h). 751Mouse driver fix. 752Shared library 1.1.1. 753 754Changes in v1.04: (29 Mar 94) 755 756Support for more than 1Mbyte of memory on ET4000W32i/W32p and 24-bit Sierra 757DAC (15025/6) (untested). Fixed copying 4 bytes per pixel virtual screen to 758three bytes per pixel screen (e.g. '3d' in truecolor modes). Fixed missing 759gl_enablepageflipping. Fixed Cirrus linear addressing. 760Amazing alpha ATI mach32 driver by Michael Weller; configuration file format 761extended. 762Shared library version 1.1. 763 764Changes in v1.03: 765 766EGA support fixed (Kapil Paranjabe). Added vga_safety_fork. 767utils/Makefile fixed. 768 769Changes in v1.02: 770 771vgagl bitmap scaling improved. vga_lockvc/unlockvc should be useful now to 772avoid corruption of certain VGA registers used for drawing. 773 774Changes in v1.01: 775 776Fixed copying to planar 256 color mode in vgagl, and added page flipping 777support. Setting an SVGA mode after a planar 256 color mode clears the 778screen properly now. Shared library 1.0.10. 779 780Changes in v1.00: (Jan 94) 781 782[The version number doesn't say anything about stability/completeness etc.] 783A number of bug fixes related to Mode X (display start, console switching, 784planar 320x200x256 allowed with vga_setmodeX()). 785Added vga_copytoplanar256 for Mode X-like modes. Added smooth scrolling demo 786program. Demo programs moved to demos/. 787Cirrus linear addressing works (if you have less than 16Mb of memory); see 788demos/testlinear. Added ET3000 driver. Trident 8900 reboot-beep problem should 789be fixed. 790Shared library 1.0.9 791 792Changes in v0.99: 793 794ET4000 patches by Hartmut Schirmer: ET4000 register dumps now have extra 795registers, so old register dumps won't work; register dump program (tseng3, 796moved to et4000/ directory) supports VESA modes. Microsoft mouse handling 797bug fixed. Shared library 1.0.8. 798 799Changes in v0.98: 800 801Some minor bugfixes, low-level mouse handling rewritten (was very slow). 802Added vga_runinbackground and vga_oktowrite as a kludge to allow a graphics 803program to run in the background (not entirely safe). Disabled ET4000 clock 804detection (wasn't used yet). 805Shared library version 1.0.7. 806 807Changes in v0.97: 808 809Fixed Cirrus 1024x768x256 non-interlaced. Other modes use default (lowest) 810frequencies. Fixed bad virtual screen bug in vgagl (copyscreen). 811Incorporates patches from Hartmut Schirmer (et4000 clock frequency 812determination). Shared library 1.0.6. 813 814Changes in v0.96: 815 816Corrected et4000/et4000.default. Cirrus 1024x768x256 non-interlaced. 817Hopefully fixed Cirrus monitor settings. Cirrus blitting works again. Fixes 818in vgagl truecolor framebuffer support. Shared library 1.0.5. 819 820Changes in v0.95: 821 822Avoid writing to some reserved registers on ET4000 and Trident (fixes dual 823monitor setups) (David Monro). Cirrus 1024x768x256 was doing scary things if 824the svgalib monitor type was set to allow non-interlaced. Added Cirrus 8251024x768x16 non-interlaced and 1280x1024x16 interlaced. Shared library 8261.0.4. 827 828Changes in v0.94: 829 830Added 132x43 textmode tweaking utility. Put utilities in utils/. 831restoretextmode was not saving/restoring extended registers anymore. Shared 832library 1.0.3. Hack to prevent standard VGA modes from failing to work after 833having run XFree86 on Cirrus. gl_setcontextwidth fixed. 834 835Changes in v0.93: 836 837Oops, version 0.92 was not quite up to date. Shared library is 1.0.2. We'll 838get libvga.so.1.0.99 before the end of the year at this rate :-). 839gl_copybox truly fixed. 840 841Changes in v0.92: 842 843Fixed broken configuration file reading; some minor changes. 844Shared library is now version 1.0.1. Source is flawed. 845 846Changes in v0.91: 847 848Various fixes. Dumpreg should work better in X now. The default dynamically 849defined ET4000 registers are now in /usr/local/lib/libvga.et4000. 850Added vga_getgraphmem. 851Shared library support (requires tools 2.8 to build). This greatly reduces 852executable size and is good for binary compatibility. 853__svgalib_graph_mem is now shadowed in a read-only user-visible global 854variable (graph_mem) for easier shared library building. 855Fixed console switching bug when a textmode is set in between the setting 856of graphics modes. 857 858Oak 640x480x256 should work now. 859 860vgalgl updates. Added 4 bytes per pixel virtual screen support. 861 862Added vga_init. This will detect and initialize the driver, and give up 863supervisor rights, having obtained I/O permissions. This is the recommended 864first line of any program that uses svgalib. 865 866Should do chmod a+s on restorefont. 867 868EGA support from egalib by Kapil Paranjabe integrated into svgalib. This 869is currently untested. 870 871Mouse support (can also be used independently). Added vga_lockvc and 872vga_unlockvc; vga_getkey (read keyboard without waiting). Using the mouse 873means no console switching for now. 874 875Initial untested S3 driver. Goal is to provide support for truecolor modes 876on the 801/805/928, in SVGA mode. Properly uses monitor type variable. 877[doesn't work] 878 879Configuration file for mouse/monitor type. Monitor type not used by drivers 880yet, except Cirrus. 881 882 883Changes in v0.9: 884 885Extensive changes and restructuring, by Hartmut Schirmer. Dynamic 886(run-time) register loading from a configuration file for ET4000 cards, 887providing binary compatibility. High resolution 16-color modes (for ET4000 888at least). More stable virtual console switching. 889 890copybox, and gl_setpalettecolor bugs fixed in vgagl. 891 892Fixed setting of standard VGA mode after SVGA mode. 893 894 895Changes in v0.82: 896 897Virtual console switching cleanup. 898 899The dumpreg program now also shows extended registers. 900 901Added Oak driver, but extended registers have not been filled in. Somebody 902should run XFree86 with the Oak driver, dump the extended registers with the 903dumpreg program (make sure the Oak driver is enabled in config.h), and put 904them in oak.c. With some luck it'll work. 905 906 907Changes in v0.81: 908 909Restorefont (write option) was broken again due to bug in vga.c; gl/text.c 910was missing in v0.8. Added vga_disabledriverreport. 911 912 913Changes in v0.8: 914 915Fixed major bug in vga_getmodeinfo in vgadrv.c. This may have caused 916spic to fail on unsupported SVGA cards in 320x200x256. 917 918vga.c split, and other changes (Hartmut Schirmer). Note that mode numbers 919beyond 1024x768x256 have changed. Standard VGA modes 720x350x16 and 920720x480x16 added. 921 922Virtual console switching improved (bank/linewidth/displaystart preserved). 923 924 925Changes in v0.7: 926 927Trident textmode restoration and SVGA modes should work now on 1M cards 928(thanks to Scott Heavner). 929 930Bug fixes in vgagl. 931 932 933Changes in v0.6: 934 935Trident driver bug fixed; detection cleaned up. 800x600 and 1024x768 on 1Mb 936cards don't work correctly. 937 938Added Cirrus 800x600x16M NI (at 50 Hz), and program to set the Cirrus memory 939clock to a higher value (setmclk.c). 940 941Added framebuffer graphics library for one, two and three byte-per-pixel 942modes. Documentation improved. 943 944vga_setrgbcolor added. 945 946ET4000 Hicolor fixes (thanks to Savio Lam), and other fixes (Scott Heavner). 947 948 949Changes in v0.5: 950 951Fixed palette register timing bug (caused occasional corruption of textmode 952palette). 953 954Added function that checks the environment variable GSVGAMODE for a 955default mode (vga_getdefaultmode). The environment string can either be a 956mode number (compatible with VGAlib Ghostscript), or a mode name as 957in (G640x480x2, G640x480x16, G640x480x256, G640x480x32K, G640x480x64K, 958G640x480x16M, PROMPT (ignore)). 959 960 961Changes in v0.4: 962 963restorefont.c as distributed in v0.3 missed a case line in a switch 964statement which made it useless. 965 966Each VGA register write in the library was producing silly debugging code 967(I forgot to restore the macro definition), making everything significantly 968larger than neccessary. 969 970Added vga_getchipset function. vgatest now only lists modes that are 971available. 972 973The ET4000 driver has been improved, including Hicolor DAC detection 974(thanks to David Monro and Daniel Jackson). 975 976Cirrus driver: 977Fixed 5420/2/4 bug, cleaned up detection, changed the 800x600 timings, and 978added missing modes 1024x768x256/32K/64K, as well as 320x200x15/16/24bit. 979Also, there's support for some of the accelerated features of the Cirrus 9805426, the driver provides bitblt (move box), fillblt (fill box), and 981imageblt (write bitmap from system memory) functions. 982 983Display start address can now be meaningfully changed in 16-color and planar 984256 color VGA modes for page-flipping (address is expressed as number of 985pixels). 986 987Fixed the vga_flip() functionality; if you press escape during 988vga_getch() the console is switched to textmode until another key is 989pressed. [note: this has been obsoleted by console switching] 990The default amount of video memory saved in SVGA modes is the size 991of one screen. If the program uses more (if it uses page-flipping, for 992example), you must indicate it with the vga_claimvideomemory function. This 993prevents 2048 or 1024K being saved when only a few hundred K is required. 994 995svgalib now waits until the virtual console it is running in becomes active 996before setting the first graphics mode. 997 998Implemented transparent virtual console switching (which uses vga_flip). 999 1000