"Effektives Programmieren mit Turbo Pascal" 4.0/5.0/5.5, Rainer Kolbeck, Markt&Technik Verlag AG, 1989, 331 S., ISBN 3-89090-771-7, DM 69,- Inhaltsverzeichnis 1. Turbo Pascal, arbeiten mit dem Compiler 9 1.1 Die neue Benutzeroberfläche 9 1.1.1 Der Kompiliervorgang 10 1.1.2 Der Turbo-Linker 11 1.1.3 Compiler-Schalter 14 2. Turbo Pascal, der Compiler 27 2.1 Ein EXE-Programm 28 2.2 Am Anfang waren die Daten 31 2.3 Funktionen und Prozeduren 36 2.3.1 Parameterlose Funktionen 37 2.3.2 Lokale Prozeduren, Funktionen und Variablen 44 2.4 Units 46 2.4.1 Die System-Unit 51 2.4.2 Die CRT- und DOS-Unit 53 2.4.3 Die Print-Unit 53 2.4.4 Die Graph-Unit 54 2.4.5 Die Turbo3- und Graph3-Unit 55 2.4.6 Die Overlay-Unit 55 2.5 Der prinzipielle Aufbau einer Unit 55 2.6 Verwendung der Turbo-Runtime-Library 56 2.6.1 Die System-Unit 56 2.6.2 Die CRT-Unit 58 2.6.3 Die DOS-Unit 58 2.6.4 Die Turbo3- und Graph3-Unit 58 2.7 Die Vektordefinition 60 3. Datenstrukturen, Rekursion, Zeiger 67 3.1 Das Daten-Segment 67 3.2 Das Stack-Segment 68 3.3 Der Heap-Bereich 68 3.4 Datenstrukturen 69 3.4.1 Rekursion 72 3.5 Pointer und dynamische Variablen 79 3.5.1 Der Datentyp Zeiger 80 3.5.2 Speicherzuweisung über New 80 3.5.3 Speicherzuweisung über GetMem 81 3.5.4 Freigabe von dynamisch allokiertem Speicherplatz 81 3.5.5 Bausteine der verketteten Liste 87 3.5.6 Knoten 88 3.5.7 Operationen mit verketteten Listen 89 3.5.8 Aufbau einer neuen Liste und Anfügen eines Elementes 89 3.5.9 Einfügen eines Elementes in eine Liste 90 3.6 Die Möglichkeiten von TURBO GUIDE 94 3.7 Der Aufbau einer TURBO-GUIDE-Datenbank 95 3.8 Arbeitsweise von TURBO GUIDE 95 3.8.1 Beschreibung der Unit LinkList 96 3.9 Ein kurzer Einschub zum Thema Protected Mode 102 4. Turbo Pascal und Assembler 111 4.1 Die DOS-Unit 111 4.2 Turbo Pascal und Assembler 115 4.2.1 Inline mit Werte- und Var-Parametern 118 4.2.2 Inline mit symbolischen Namen 122 4.2.3 Die Inline-Deklaration 123 4.3 Prozeduren und Funktionen in Maschinensprache 124 4.4 Die Verfügbarkeit des Daten-Segmentes 131 4.4.1 Externe Daten und Routinen 133 5. Speicherresidente Programme 135 5.1 Speicherresidente Programme mit Turbo 135 5.1.1 Noch ein bißchen Theorie 135 5.1.2 Die Interrupt-Vektor-Tabelle 136 5.1.3 Die Segmente 137 5.1.4 Die Interrupt-Service-Routinen - deren Funktionen und Notwendigkeit 138 5.1.5 Der Aufbau einer ISR 138 5.1.6 Der Aufbau eines TSR-Programmes 140 5.1.7 Passive TSR-Programme 140 5.1.8 Uppercase - ein Beispiel 140 5.1.9 Turbos TSR-Support 142 5.1.10 Die Interrupt-Deklaration 144 5.1.11 Set- und GetIntVec 146 5.1.12 Multitasking, ein Hintergrund-Druckerspooler 149 5.2 Die interne Struktur des Programmes SPOOL.PAS 153 5.2.1 Konstanten 153 5.2.2 Variablen 153 5.2.3 Prozeduren 154 5.2.4 Interrupt-Verkettung 154 5.2.5 Die PopUp-Unit 156 5.3 Der interne Aufbau der PopUp-Unit 165 5.3.1 Konstante 165 5.3.2 Variablen 165 5.3.3 Prozeduren (öffentlich) 166 5.4 Die TSR-Tools-Unit 167 5.4.1 Programm erkennen und aus dem Speicher entfernen 167 5.5 Der interne Aufbau der TSRTOOLS-Units 174 5.5.1 Konstanten (typisiert) 174 5.5.2 Konstanten (untypisiert) 175 5.5.3 Typen 175 5.5.4 Variablen 175 5.5.5 Funktionen 176 5.5.6 Prozeduren 176 6. Kommunikation mit Turbo 179 6.1 Datenkommunikation 179 6.1.1 Schutzerde 181 6.1.2 TXD (transmit data) 182 6.1.3 RXD (receive data) 182 6.1.4 RTS (request to send) 182 6.1.5 CTS (clear to send) 182 6.1.6 DSR (data set ready) 182 6.1.7 GND (data ground) 182 6.1.8 DCD (data carrier detect) 183 6.1.9 DTR (data terminal ready) 183 6.1.10 RI (ring indicator) 183 6.1.11 Programmierbare Baudrate 191 6.1.12 Polling oder interruptgesteuerter Empfang? 192 6.1.13 Programmierbares Interrupt 193 6.2 Ein kurzer Einschub zum Thema Interrupt-Kontroller 193 6.3 Der Aufbau der ASYNC-TPU 200 6.3.1 Konstanten 200 6.3.2 Variablen 203 6.3.3 Funktionen 204 6.3.4 Prozeduren 205 6.4 Überlegungen zur Datenkommunikation 206 6.5 Das XModem-Protokoll 208 6.5.1 SOH Beginn eines Blockes (Start of Header) 208 6.5.2 EOT Ende der Übertragung (End of Transmission) 209 6.5.3 ACK Alles in Ordnung (Acknowledge) 209 6.5.4 NAK Fehler aufgetreten (negative Acknowledge) 209 6.5.5 CAN Abbruch (Cancel) 209 6.6 Der Aufbau der XModem-TPU 216 6.6.1 Konstanten 216 6.6.2 Variablen 217 6.6.3 Funktionen 218 6.6.4 Prozeduren 219 7. Tools, Anwendungen, Tips und Tricks 221 7.1 Ein Wecker-Programm (Turbo Wecker) 221 7.2 MCB.EXE 226 7.2.1 Wie funktioniert MCB.EXE? 226 7.3 CHAIN.EXE 231 7.3.1 Die Funktionsweise von CHAIN.EXE 231 7.3.2 Eine Exit-Prozedur 236 7.3.3 Eine neue Printer-TPU 238 7.3.4 Die Gread-TPU 239 7.4 Der innere Aufbau der Gread-Unit 243 7.4.1 Variablen 243 7.4.2 Prozeduren 244 7.5 Die Pull-down-Unit 245 7.6 Die Tools-Unit 253 7.7 Statische lokale Variablen 269 7.8 Ermitteln des Programm-Namens 271 8. Objektorientierte Programmierung 273 8.1 Ein kurzer Überblick über verschiedene Programmiersprachen 273 8.1.1 Imperative Programmiersprachen 273 8.1.2 Funktionale Programmiersprachen 274 8.1.3 Deklarative Programmiersprachen 274 8.1.4 Objektorientierte Programmiersprachen 274 8.2 Was bedeutet objektorientierte Programmierung 275 8.2.1 Objekte bei Turbo Pascal 275 8.2.2 Objekt-Hierarchie 276 8.2.3 Daten in Objekten 280 8.3 Ein kurze Beschreibung zu VIRUS.EXE 281 8.3.1 Cell 281 8.3.2 Virus 281 8.3.3 AntiBody 282 8.4 Polymorphie, statische und virtuelle Methoden 283 8.5 Dynamische Objekte 288 Anhang 293 Anhang A - Allgemeines zum PC 293 Anhang B - Die CPU und Assemblerprogrammierung 303 (Anhang C)- Tabellen Units 319 Stichwortverzeichnis 325