Arthur Burda VGA und SuperVGA professionell programmiert Mit notzlichen Tips, Tricks und Power-Tools auf Diskette
~-- Aus dem Bereich Computerliteratur Effektiv Starten mit Turbo Pascal 6.0 von Axel Kotulla Grafikprogrammierung mit Turbo Pascal 6.0 von Andreas Bartel MS-DOS Profi Utilities mit Turbo Pascal von Georg Fischer 100 Rezepte fur Turbo Pascal von Erik Wischnewski Units und Utilities fur Turbo Pascal 6.0 von Anton Liebetrau Das Vieweg Buch zu Turbo Pascal fur Windows von Ekbert Hering und Alexander Mendler VGA und SuperVGA professionell programmiert Mit notzlichen Tips, Tricks und Power-Tools auf Diskette von Arthur Burda Effektiv Starten mit Visual Basic von Dagmar Sieberichs und Hans-Joachim KrOger Das Vieweg Buch zu Visual Basic von Andreas Maslo Computer Animation... yom feinsten von Marc Schneider Das Vieweg Buch zu Borland C++ 3.0 von Axel Kotulla Objektorientiert mit Turbo C++ von Martin Aupperle Vieweg ----------------
Arthur Burda VGA und SuperVGA professionell programmiert Mit nutzlichen Tips, Tricks und Power-Tools auf Diskette II Vleweg
Die Deutsche Bibliothek - CIP-Einheitsaufnahme Burda, Arthur: VGA und SuperVGA professionell progranuniert : mit niitzlichen Tips, Tricks und Power-Tools auf Diskette / Arthur Burda. - Braunschweig; Wiesbaden : Vieweg, 1992 Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor und der Verlag ubemehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung ubemehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. Aile Rechte vorbehalten Springer Fachmedien Wiesbaden 1992 Urspriinglich erschienen bei Friedr. Vieweg & Sohn Verlagsgesellschaft mbh, BraunschweiglWiesbaden, 1992. Das Werk einschlieblich aller seiner Teile ist urheberrechtlich geschutzt. Jede Verwertung auberhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulassig und strafbar. Das gilt insbesondere rur Vervielfaltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlagsgestaltung: Schrimpf & Partner, Wiesbaden Gedruckt auf saurefreiem Papier ISBN 978-3-528-05429-8 ISBN 978-3-663-13889-1 (ebook) DOI 10.1007/978-3-663-13889-1
v Vorwort Sicherlich werden Sie als Leser zu denjenigen gehoren, die nach umfassendem und kompaktem Informationsmaterial zum Thema VGA Grafikprogrammierung suchen. Das Buch, das Sie in Ihren Handen halten, soil Ihnen auf der Suche nach neuesten Informationen zu diesem Thema helfen. Ganz gleich, ob sie Einsteiger oder Profi sind, wurde ich mich freuen, wenn die Lekture dieses Buches Ihnen viel Nutzen und SpaB bringen wird. Das Buch und die Diskette enthalten viele nutzliche Tools und Anwendungen rund um VGA und Super-VGA, die ausfuhrlich und verstandlich anhand einer Vielzahl von Beispielen erlautert werden. AIle Programme, die sich auch auf der beiliegenden Diskette befinden, habe ich in Turbo Pascal (ab Version 5.0) erstellt. Fur diejenigen unter Ihnen, die uber Turbo Assembler (ab Version 1.0), Makro Assembler (ab Version 5.0) oder Turbo Pascal 6.0 mit integriertem Assembler verfugen, habe ich einige Beispielroutinen in Assemblersprache geschrieben. Sie finden in diesem Buch unter anderem ein Snapshot-Programm fur die 256-Farben-Modi, einen Fraktalgenerator zur Berechnung von Grafiken mittels mathematischer Formeln und viele umfangreiche Sammlungen von Grafikroutinen, zusammengefabt in den sogenannten Turbo-Pascal-Units. AIle Programme finden Sie auch in ausfuhrbaren EXE-Dateien auf der Diskette (fur aile Programme wurde ein 286-Code generiert). Ich hoffe, dab dieses Buch Gefallen findet und Sie das erworbene Wissen in Ihren eigenen Applikationen einsetzen werden. Fur die Veroffentlichung dieses Buches mochte ich mich ganz besonders bei den Mitarbeitern des Vieweg Verlages bedanken, deren Interesse an diesem Projekt mir die Motivation gab, es in der vorliegenden Form zu realisieren. Arthur Burda Bochum, Oktober 1992
VII Inhaltsverzeichnis Inhaltsverzeichnis 1 Einfiihrung... 1 1.1 VGA und andere Grafikadapter im Vergleich... 1 1.2 Unterschiede zwischen Standard- und Super-VGA... 4 1.3 Aufbau der VGA-Karte... 6 1.4 VRAM-Speichertechnologie fur Super-VGA-Karten... 10 1.5 Speicherverwaltung der Standard-Betriebsarten: 16- und 256-Farben-Modi... 11 1.6 Was versteht man unter HiColor und CEG?... 13 1.7 Speicherverwaltung in den HiColor-Modi... 15 1.8 Worauf sollten Sie beim Kauf einer VGA-Karte achten?... 16 1.9 Ubersicht der bekanntesten Super-VGA-Karten... 17 2 Erste Schritte... 21 2.1 Programmiertechniken... 21 2.2 Fiillen von rechteckigen Bildschirmbereichen... 29 2.3 Erstellung von beliebigen Farbnuancen durch Anderung der Standardpalette... 31 2.4 Umwandlung von Farben in Graustufen... 39 3 Modus 19 der 256-Farben-Standard... 43 3.1 Gliederung der Unit MODUS_19... 43 3.2 Compilereinstellungen und Interface-Teil... 44 3.3 Implementationsteil... 47. 3.4 Zeicheneditor fur VGA-Units... 74 3.5 Demoprogramme fur die Unit MODUS_19... 85
VIII Inhaltsverzeichnis 4 Hochauflosende Super-VGA-Grafik... 93 4.1 Konzeption der Unit SVGA... 93 4.2 Compilereinstellungen und Interface-Teil... 95 4.3 Implementationsteil... 100 4.4 3D-Grafik am Beispiel von Raumgitterkurven... 128 4.5 Dreidimensionale Simulation eines Sternbimmels... 138 5 Bildschirmschoner mit speziellen VGA-Effekten... 147 5.1 Grundlagen, Funktionsweise und Gestaltung der TSR-Programme im Hinblick auf den Bildschirmschoner.., 148 5.2 Welche Leistungsmerkmale sallte ein guter Bildschirmschoner fur VGA aufweisen?... 150 5.3 Implementation des Bildschirmschoners... 153 6 PCX-Bilder mit 256 Farben... 187 6.1 Allgemeines zum PCX-Format... 187 6.2 Interner Aufbau der PCX-Dateien und Komprimierungsverfahren... 188 6.3 PCX-Unit... 192 6.4 Slideshow mit PCX-Bildem in 256 Farben... 215 7 Snapshot-Programm und Slideshow-Maker... 219 7.1 Als erstes kommt das Snapshot-Programm... 219 7.2 SHOW _256 - der Slideshow-Maker... 237
Inhaltsverzeichnis IX 8 Die Wunderwelt der Fraktale... 261 8.1 Allgemeines zu Frakta1en?... 261 8.2 Komplexe Zahlen als Basis fur die Berechnung von Fraktalen. 265 8.3 Die Mandelbrot Menge... 268 8.4 Fraktalgenerator nach Newton... 274 9 Echtzeit-Animation im Modus 19... 291 9.1 Unit ANIMATOR... 291 9.2 Animation mit Apfelmannchen... 301 10 VGA-Know-How... 305 10.1 HiColor Modi beim Tseng ET-4000 Chip mit Extended DAC... 305 10.2 Bildschirm Splitting und Smooth Scrolling... 326 10.3 Spielereien mit den internen VGA-Registern... 344 10.4 ROM-Zeichensatze... 350 10.5 Neue unbekannte Grafikmodi... 353 Anhang A - Die wichtigsten Funktionen des VGA-BIOS... 373 Anhang B - Ubersicht aller Register der Standard-VGAKarte... 385 Sachwortverzeichnis... 391