Turbo Pascal Profibuch Martin Althaus SVBEX вшшшшшшвшаш DÜSSELDORF SAN FRANCISCO ' PARIS LONDON SOEST (NL)
Inhaltsverzeichnis Vorwort 1 Einleitung 3 Wie dieses Buch gelesen werden sollte 5 Teil I: Interne Details von Turbo Pascal 7 Kapitel 1: Die Speicherverwaltung von Turbo Pascal 9 Das Laden eines Turbo Pascal-Programms 10 Die Segmentierung des Speichers 10 Die Relozierung des Programms 12 Die interne Aufteilung eines Turbo Pascal-Programms 15 Die Programm-Umgebung 17 Der Programmsegment-Vorspann 17 Die Umgebungs variablen 19 Der Programm-Code 20 Die Routinen der Units 20 Die Laufzeitbibliothek 21 Die Datenbereiche 21 Die Variablen 21 Die Konstanten 22 Der Overlay-Puffer 22 Der Stack 22 Der Heap 26 Kapitel 2: Die Variablenspeicherung von Turbo Pascal 29 Das interne Format von Bytes, Chars, Booleans und Words 31 Das interne Format von Shortints, Integers und Longints 32 Das interne Format von Strings 34 Das interne Format von Reals. 35 Das interne Format von Arrays 38 Das interne Format von Records 39 Die Speicherung globaler und lokaler Variablen 39
VI Turbo Pascal Profibuch Kapitel 3: Der Aufruf von Unterprogrammen durch Turbo Pascal 41 Die Logik eines Unterprogramm-Aufrufs 42 Die Übergabe der Parameter 42 Die Übergabe statischer Parameter - 43 Die Übergabe dynamischer Parameter 45 Der Aufruf des Unterprogramms 46 Die Ausführung des Unterprogramms 46 Der Zugriff auf statische Parameter 47 Der Zugriff auf dynamische Parameter 49 Der Zugriff auf lokale Variablen 50 Die Übergabe der Funktionsergebnisse 52 Die Rückkehr zum aufrufenden Programm 54 Kapitel 4: Das Einbinden von Modulen in Turbo Pascal 57 Das Einbinden von Inline-Code 58 Das Einbinden von Objekt-Code 59 Module in Assembler 59 Assembler-Module als externe OBJ-Dateien 60 Aufruf von Assembler-Routinen durch ein Pascal-Programm 60 Aufruf von Pascal-Routinen durch ein Assembler-Programm 66 Assembler-Module bei Verwendung des Turbo Assemblers 72 Assembler-Module beim Einsatz von Turbo Pascal 6.0 74 Assembler-Module als Inline-Code 79 Assembler-Module in eigenen Units 82 Module in С 83 Module in anderen Programmiersprachen 83 Kapitel 5: Systemprogrammierung mit Turbo Pascal 85 Der Aufruf von Interrupts 86 Der direkte Zugriff auf Speicheradressen 97 Die BIOS-Variablen 104 Der direkte Zugriff auf Port-Adressen 113 Kapitel 6: Die Erstellung eigener Units in Turbo Pascal 129 Die Struktur einer Unit 130 Der Interface-Teil 132 Der Implementationsteil 133 Der Initialisierungsteil 134
Inhaltsverzeichnis. VII Die Erstellung großer Programme durch Modularisierung 135 Die Übersetzung von Units 136 Die interne Struktur von Units 136 Das Einbinden der Units 138 Teil II: Hilfsmittel für professionelle Programmentwicklung 141 Kapitel 1: Hilfsmittel für professionelle Programmentwicklung 143 Die Verwaltung großer Projekte mit Make-Dateien 144 Die Fehlersuche mit dem integrierten Debugger 148 Kapitel 2: Zeiger und dynamische Listen 161 Die Funktion von Zeigern 163 Die Vorteile von Zeigern 164 Das Erstellen dynamischer Datenstrukturen mit Zeigern 166 Die Vorteile von dynamischen Datenstrukturen 167 Kapitel 3: Objektorientierte Programmierung 181 Prinzipien objektorientierter Programmierung 183 Objektorientierte Programmierung in Turbo Pascal 183 Variable Dimensionierung von Arrays 184 Klassen, Objekte und Methoden 188 Vererbung 193 Kapselung 202 Dynamische Objekte 203 Virtuelle Methoden 207 Interna von Objekten 212 Kapitel 4: Fenstertechnik 217 Die Funktion von Fenstern in Programmen 218 Die Realisierung von Fenster-Techniken 218 Das Sichern des Fensterhintergrundes 218 Das Zeichnen des Fensters 228 Die Verwendung des Fensters 235 Das Wiederherstellen des Fensterhintergrundes 235 Das Erstellen eigener Fenster-Programme mit der Unit TPPWIN 236 Die Verwendung der Unit 237 Das Programm in Pascal 250
VIII Turbo Pascal Profibuch Hinweise zur Benutzung 290 Doppel-Fenster mit Schatten und Kopfzeile im Fenster 291 Einfach-Fenster ohne Schatten mit Titelzeile im Rahmen 291 Kapitel 5: Pulldown-Menüs 297 Die Funktion von Menüs 298 Die Realisierung von Pulldown-Menüs 299 Das Festlegen der Menüs 300 Das Zeichnen des Menüs 304 Die Verwendung der Menüs 307 Das Erstellen eigener Pulldown-Menüs mit der Unit TPPMENU 315 Das Programm in Pascal 340 Hinweise zur Benutzung 396 Kapitel 6: Speicherresidente Programme 399 Prinzipien von TSR-Programmen 402 Das Umleiten von Interrupts 403 Das Verbleiben im Speicher 403 Bestandteile von TSR-Programmen 408 Kontrollprogramme 410 Grundstruktur eines TSR-Kontrollprogramms 410 Der Aufruf eines TSR-Kontrollprogramms 414 Pop-Ups 418 Die Grundstruktur eines Pop-Ups 419 Installation und Deinstallation 420 Die Überwachung der Tastatur 426 Die Unterbrechung von kritischen Programmteilen 440 Das Reentranz-Problem 442 Das Sichern des Kontextes 449 Das Lesen der EGA-Palette 469 Die Initialisierung des Bildschirms 472 Der Aufruf eines Pop-Ups 473 Das Zurückschalten in das unterbrochene Programm 473 Die Programmierung der Hercules-Karte auf Register-Ebene 476 Die Deinstallation 483 Das Erstellen eigener TSR-Programme mit der Unit TPPTSR 490 Die Struktur der Unit TPPTSR 498 Der Pascal-Teil 499 Der Assembler-Teil 534 Die Entwicklung von eigenen TSR-Programmen 572
Inhaltsverzeichnis IX Kapitel 7: Overlays 595 Die Funktion von Overlays 596 Overlays zur Modularisierung großer Programme 596 Die Erstellung eigener Overlay-Programme mit der Unit OVERLAY 597 Das Zusammenfassen der Overlays in eigenen Units 597 Das Starten von Overlay-Prozeduren aus einem Pascal-Programm 599 Das Auslagern der Overlays in das Expanded Memory 607 Die interne Struktur von Overlay-Dateien 608 Die OVR-Datei 608 Der OVR-Steuerblock 610 Der interne Aufruf von Overlay-Routinen 611 Kapitel 8: Grafik für Fortgeschrittene 617 BGI-Treiber direkt in ein Programm einbinden 618 Zeichensätze direkt in ein Programm einbinden 623 Prinzipien der Grafikdarstellung 624 Die Grafikmodi des Betriebssystems 627 Die direkte Programmierung der Grafikkarten 627 Die Verwendung nichtunterstützter Grafikmodi 628 Erkennen von VGA-Karten 628 320 mal 200 Punkte in 256 Farben auf MCGA- und VGA-Karten 630 Die Aufteilung des Bildschirmspeichers 631 Das Setzen und Lesen von Punkten 631 Die Nutzung des Modus mit der Unit TPP256 631 Die Verwendung von 262144 Farben 637 Volle Farbkontrolle mit der Unit TPPDAC 641 Die Struktur der Unit TPPDAC 642 Neue Videomodi mit der VGA-Karte 650 Warum VGA-Karten nur 320x200 Punkte in 256 Farben bieten 651 Wie sich höhere Auflösungen erreichen lassen 652 Die Programmierung der VGA-Karte auf Hardware-Ebene 653 Die Veränderung der Parameter der Bilddarstellung 653 Das Konzept der Bit-Planes 654 Die Lese- und Schreib-Modi 657 320 mal 400 Punkte in 256 Farben 661 Die Initialisierung des Modus 661 Die Aufteilung des Bildschirmspeichers 665 Die Darstellung von Punkten 666 Die Realisierung von zwei Grafikseiten 668 360 mal 480 Punkte in 256 Farben 669
X Turbo Pascal Profibuch Die Initialisierung des Modus 669 Die Darstellung von Punkten 675 Einschränkungen 677 Die Nutzung der neuen VGA-Modi mit der Unit TPPVGA 678 Die Struktur der Unit TPPVGA 678 Programmierung von Super-VGA-Karten 701 Merkmale von Super-VGA-Karten 701 Probleme mit den Super-VGA-Modi 702 800 mal 600 Punkte in 16 Farben 702 Das Setzen des Modus 703 Die Aufteilung des Bildschirmspeichers 704 Das Lesen und Setzen von Punkten 705 Vorteile des 800x600-Modus 708 Die Nutzung des Modus mit der Unit TPPSVGA 709 Die Struktur der Unit TPPSVGA 709 Kapitel 9: Das Sprengen der Speichergrenzen 721 Die Speicherverwaltung des Betriebssystems 722 Warum sich nur 640 KByte Speicher ansprechen lassen 722 Wie sich die Speichergrenze überwinden läßt 723 Expanded Memory 724 Die Funktion von Expanded Memory. 724 Das Erkennen von Expanded Memory 726 Die Programmierung von Expanded Memory 730 Die Nutzung des Expanded Memory mit der Unit TPPEMS 745 Die Struktur der Unit TPPEMS 756 Extended Memory 768 Die Funktion von Extended Memory 769 Erkennen von Extended Memory 770 Wie der Prozessor Extended Memory adressiert 773 Die Belegung von Extended Memory 778 Die Interrupt-15h-Methode 778 Die RAM-Disk-Methode 780 Die Nutzung des Extended Memory mit der Unit TPPXMS 783 Die Struktur der Unit TPPXMS 796 Extended Memory ohne Protected Modus 812 64 KByte zusätzlicher Speicher unter DOS auf ATs 813 Wie sich der Speicher adressieren läßt 813 Die Nutzung des Speichers mit der Unit TPPHIMEM 816 Die Struktur der Unit TPPHIMEM 823 Nutzen des Gesamtspeicherplatzes bis 4 Gigabyte 842
Inhaltsverzeichnis XI Wie sich der gesamte Speicher linear adressieren läßt 843 Die Nutzung des Speichers mit der Unit TPPHI386 850 Die Struktur der Unit TPPHI386 851 Kapitel 10: Die Programmierung mit Turbo Vision unter Turbo Pascal 6.0 879 Neuerungen von Turbo Pascal 6.0 880 Was ist Turbo Vision? 880 Ereignisgesteuerte Programme 881 Das Rüstzeug: objektorientierte Programmierung 882 Die Elemente einer Turbo Vision-Anwendung 883 Ein Turbo Vision-Programm 886 Anhang A: Einführung in das Binärsystem 927 Anhang B: Einführung in das Hexadezimalsystem 933 Anhang C: Die Programme auf der beiliegenden Diskette 937 Anhang D: Die SYBEX-Quicklnfo auf der beiliegenden Diskette 945 Der Einsatz der Quickinfo 947 Ein praktisches Beispiel 947 Die Tasten zur Steuerung der Quickinfo 948 Die Strukturierung der Informationen 949 Die Installation der Quickinfo 950 Die Verträglichkeit der Quickinfo mit anderen Programmen 951 Anhang E: Quellen und weiterführende Literatur 953 Anhang F: Abbildungsverzeichnis 957 Anhang G: Tabellenverzeichnis 963 Stichwortverzeichnis 971