Turbo Pascal Power Tools

Ähnliche Dokumente
Das Turbo Pascal Lösungsbu

Arbeiten mit Turbo Pascal 5.0

Einführung in Automation Studio

H. Tornsdorf М. Tornsdorf. Das große Buch zu

jetzt lerne ich Der einfache Einstieg in Object Pascal Für alle Versionen bis einschließlich Delphi 2006 THOMAS BINZINGER

Hardware-Grundlagen Mainboard und CPU Der Aufbau einer CPU Das RAM

Klemens Mai Dirk laristh H. Tornsdorf M. Tornsdorf. Das große Bu<h zu BECKER

Vorwort. Hinweise zum Arbeiten mit dem Buch. 1 Einführung in Windows Das Einsatzspektrum von Windows Neuerungen der Version 3.

4.Grundsätzliche Programmentwicklungsmethoden

C++ für Ingenieure. Einführung in die objektorientierte Programmierung. Seite Programmverzeichnis VII HARALD NAHRSTEDT

Micro Focus Workbench

NiceMemMaster Anwenderhandbuch


Vorkurs C++ Programmierung

Deklarationen in C. Prof. Dr. Margarita Esponda

Computerorientierte Physik

Einleitung 1 Dieses Buch... 1 Was steht in diesem Buch? 1

Einstieg in die Informatik mit Java

Assembler und Hochsprachen

2. Installierung und Einbau

Fachreferat. EFI -BIOS Nachfolger-

Vorlesung Rechnerarchitektur. Einführung

Modellierung und Programmierung 1

Inhaltsverzeichnis. 4.1 Programme compilieren und starten 4.2 Arbeiten mit dem Editor 4.3 Der Objekt-Inspektor

Informationsverarbeitung im Bauwesen

Programmieren in Java

Inhaltsverzeichnis. Teil I Grundlagen der Programmarchitektur Vorwort... XIII XV XVI XVI

SUPER BIG BANG. SCSI - 2 HD-Kontroller für A2000

EX PCI & 2 PCI-E

Ergänzungen zum Manual OS V 2.05/2.06

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Mutterplatine, Hauptplatine, Systemplatine, Systemboard

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Peter Norton Paul Yao. f}oü r^v rjo I L) Deutsche Übersetzung: ADP Dripke GmbH. Markt&Technik Verlag AG

Remote-Debugging Allgemeines 8-1

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

Administrator. Blaulicht

EX Slot PCI Box Zur Erweiterung um 4 PCI Anschlüsse für lange Karten inklusive internem 220Watt Netzteil

Windows-Verwaltung mit WMI - Taschenratgeber für Administratoren

4 l Springer Vieweg. Keine Angst. vor Linux/Unix. Unix-Anwender. Ein Lehrbuch für Linux- und. Christine Wolfinger

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Programmierpraxis mit

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

C++-Entwicklung mit Linux

Informationsverarbeitung im Bauwesen

1.7 Assembler Programmierung

Programmieren von UNIX-Netzen

Inhalt. Teil I: Der Sprachkern von JavaScript

Informatik mit Delphi

Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy

Übungspaket 19 Programmieren eigener Funktionen

Informatik mit Delphi

Einführung in die Textverarbeitung mit Word. Flyer I

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken

Warum also mit einem 32-Bit-System arbeiten, wenn es Systeme für 64 Bit gibt?

Angewandte Informatik

Delphi eine Einführung

Kapitel 1: Einführung

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Anzeigen einer Liste der verfügbaren Schriftarten

D i g i t a l l a b o r

Betriebssysteme Teil 4: Übersetzung von C-Programmen

Andre Willms. Spielend C++ lernen. oder wie man Käfern Beine macht. Galileo Press

Bios-Update Anleitung mit Q-Flash. Wichtige Hinweise!

Inhaltsverzeichnis. Teil I: Einführung. Teil II: OpenStreetMap für Mitmacher

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Einführung in Excel. Zur Verwendung im Experimentalphysik-Praktikum. für Studierende im Sem. P3

Inhalte der heutigen Vorlesung

Über den Autor 7. Teil I Los geht s mit Java für die Android-Entwicklung 25. Kapitel 1 Alles über Java und Android 27

Rechnerarchitektur Atmega Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester

Teil I Installation und erste Schritte 19

STRG + A = STRG + C = STRG + X = STRG + V = STRG + Alt + Entf = STRG + S =

Informationsverarbeitung im Bauwesen

Schach, Adventure Diagramm, Grafik und Bildbearbeitung Mathematisches Programm und Tabellenkalkulation. Rechner und Monitor einschalten

Rechner Architektur. Martin Gülck

C++ für Spieleprogrammierer

Computer: PC. Informationstechnik für Luft-und Raumfahrt Aerospace Information Technology

Einführung in die C-Programmierung

Speichern. Speichern unter

Lösungen entwickeln mit Microsoft Excel 95

A) Durchsuchen von Datenbanken im Internet durch Endnote

Inhaltsverzeichnis. Fritz Jobst. Programmieren in Java ISBN: Weitere Informationen oder Bestellungen unter

1 Einführung Erste Schritte Programmierkurs Datentypen Weiterführende Programmierung

Repetitorium Informatik (Java)

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ

Thomas Theis. Einstieg in Python. Galileo Press

Speicherverwaltung (Swapping und Paging)

USB DISK ANSCHLUSS WAHLTASTER. Vorteile dieses USB Interfaces:

Wiederholung und Vertiefung. Programmieren in C. Pointer und so... thoto. /dev/tal e.v. 6. April 2013 (Version vom 11. April 2013) Programmieren in C

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:

MPC Treiberinstallation

Effiziente Java Programmierung

Teil 2: OOP und JAVA (Vorlesung 11)

1.3 Begriff. Interaktives System Warum virtuelle Welten?

Aufgabe 2 - Erweiterung um PIC und Interrupts

Transkript:

Turbo Pascal Power Tools Michael-Alexander Beisecker und Peter Brickwede (Hrsg.)..,-- DUSSELDORF SAN FRANCISCO PARIS LONDON SOEST (NL)

VII Inhaltsverzeichnis Einleitung Wer sollte dieses Buch lesen? 1 Die behandelten Turbo Pascal-Versionen 1 Welchen Nutzen hat dieses Buch? 2 Wie dieses Buch anzuwenden ist 2 Der Aufbau dieses Buchs 3 Herausgeber und Autoren 5 l Teil I: Objektorientierte Programmierung Kapitel 1: OOP in Turbo-Pascal - eine Einführung 9 Objekte - was sind das? 11 Vererbung 15 Statisch oder virtuell? 20 Was kann man sonst noch mit Objekten anstellen? 25 Schluß 29 Kapitel 2: OOP-Programmierbeispiele 31 Boxen und Fenster: Die Unit Boxes 32 Der Objekttyp BOX - Unit Boxes 33 Die Datenfelder von BOX 34 Die externen Methoden von BOX 35 Die internen Methoden von BOX 40 Der Objekttyp FENSTER 45 Die Datenfelder von FENSTER 46 Die externen Methoden von FENSTER 46 Die internen Methoden von FENSTER 52 Der Initialisierungsteil 55

VIII Turbo Pascal Power Tools Beispielprogramme 56 Die Unit Menüs 59 Der Objekttyp MENÜ 60 Die Datenfelder von MENÜ 61 Die externen Methoden von MENÜ 65 Die internen Methoden von MENÜ 74 Beispielprogramme 87 Teil II: Turbo Pascal und die Grafikprogrammierung Kapitel 3: Aufbau und Unterschiede der Grafikkarten 93 Die Arbeitsweise einer Grafikkarte 94 Der Aufbau eines Bildschirms im Textmodus 97 Der Aufbau eines Bildschirms im Grafikmodus 100 Die Ansteuerang des Bildschirms durch die Grafikkarte 104 Die Grafikkarten für PC- und PS/2-Computer 108 Der Monochrome Display Adapter (MDA) 110 Der Aufbau des Bildschirmspeichers des MDA 110 Die Register des MDA H2 Der Color Graphics Adapter (CGA) 116 Die Videomodi des CGA 116 Der Aufbau des Bildschirmspeichers des CGA 119 Die Register des CGA 120 Die Hercules Graphics Card (HGC) 127 Die Videomodi der HGC 127 Der Aufbau des Bildschirmspeichers der HGC 128 Die Register der HGC 130 Der Enhanced Graphics Adapter (EGA) 135 Die Videomodi der EGA-Karte 135 Die Organisation des Bildschirmspeichers 136 Die internen Register der EGA-Karte 139 Der Zugriff auf die EGA-Karte 142 Das Multi-Color Graphics Array (MCGA) 148 Die Videomodi des MCGA 148 Die Organisation des Bildschirmspeichers 149 Die internen Register des MCGA 150 Der Zugriff auf das MCGA 153

Inhaltsverzeichnis IX Das Video Graphics Array (VGA) 154 Die Videomodi der VGA-Karte 154 Die Organisation des Bildschirmspeichers 154 Die internen Register der VGA-Karte 157 Der Zugriff auf die VGA-Karte 158 Andere Grafikkarten 166 Die AGA-Karte 166 Die8514/A 167 Die Hercules Graphics Station Card 167 Kapitel 4: Programmierung der Grafikkarten 169 Verwendung des Grafik-BIOS - Unit BiosGraf 170 Auflösungen, Farben und Seiten 171 Grafikmodus einschalten - BiosSetGraphMode 172 Grafik ausschalten - BiosCloseGraph 173 Grafikpunkt setzen - BiosPutPixel 174 Farbe eines Bildpunktes ermitteln - BiosGetPixel 175 Aktive Grafikseite auswählen - BiosSetActivePage 175 Sichtbare Grafikseite auswählen - BiosSetVisualPage 176 Zeichnen einer Linie - BiosLine 176 Festlegen der Zeichenfarbe - BiosSetColor 178 Textausgabe im Grafikmodus - BiosGotoXY und BiosWrite 178 Farbpalette wählen - BiosSetPalette 180 Das Borland Graphic Interface (BGI) 182 Die Unit BGI 183 Skalieren von Vektor-Zeichensätzen 192 Grafiken speichern und laden mit Getlmage/Putlmage 194 Die Unit MOUSE - 197 Das Borland BGI-Driver Toolkit 214 Teil III: Turbo Pascal und die Maschinensprache Kapitel 5: Einführung in die Maschinensprache 219 Einleitung - Was erwartet Sie in diesem Kapitel? 220 Was ist Assembler? 220 Ein paar Begriffsklärungen 221

X Turbo Pascal Power Tools Die Arbeitsweise eines Assemblers Warum überhaupt Maschinensprache? Wie geht es weiter? Die 8086/88-CPU Eine Übersicht über die Intel 80x86-Familie Der allgemeine Aufbau der 8086/88-CPU Die CPU-Register Segmentregister Die allgemeinen Register Die Basisregister Die Indexregister Spezialregister Die arithmetischen Flags Die Kontrollflags Die Adressierung des Speichers Wie groß ist der adressierbare Arbeitsspeicher? Die Bildung der physikalischen Adresse Konsequenz der Adressierung: Segmente Adreßberechnung bei der Programmausführung Die Adressierungsarten der 8086/88-CPU Vor- und Nachteile von Segmenten Interrupts Was passiert beim Auftreten eines Interrupts? Welche Vorteile bieten Interrupts? Software-Interrupts Interrupts rufen BIOS- und DOS-Funktionen auf Der Stack Der Ein-/Ausgabebereich Übersicht über den Befehlssatz Datentransportbefehle Arithmetische Befehle Sprungbefehle Prozeduren 223 224 225 226 226 228 230 232 232 233 234 234 236 239 240 240 241 242 245 245 248 249 250 251 251 252 252 254 255 258 260 262 264 Kapitel 6: Inline-Code Die Inline-Anweisung Welche Register dürfen benutzt werden? Ein kleines Beispiel zur Optimierung Parameterübergabe an Inline-Funktionen Rückgabe von Parametern Inline-Deklarationen 267 268 271 272 277 282 287

Inhaltsverzeichnis XI Parameterübergabe 288 Wann ist Inline-Code sinnvoll? 290 Kapitel 7: Die Schnittstelle zum Turbo Assembler 291 Warum gemischtsprachig programmieren? 292 Und warum Assembler? 292 Die Handhabung des Turbo Assemblers 293 Der Aufruf des Assemblers 295 Der Aufruf des Linkers 295 Der Aufbau eines Assemblerprogramms 296 Das Speichermodell 297 Definition von Assemblerprozeduren 298 Der Prozedurname muß öffentlich sein 298 Ein erstes Beispiel 299 Parameterübergabe 301 Entfernen des Stackrahmens 304 Rückkehr zum Pascal-Programm 305 TPASCAL baut einen Stackrahmen auf 306 Vorsicht bei TPASCAL! 306 Wie werden Parameter übergeben? 307 Übergabe von Zeigern 308 Rückgabe von Funktionswerten 309 Lokale Variablen 309 Die LOCAL-Anweisung 311 Die ARG-Anweisung 314 Zusätzliche Möglichkeiten 317 Ein weiteres Beispiel 317 Datenbereiche im Assemblerprogramm 321 Strings 323 Welche Register dürfen benutzt werden? 324 Ein Kochrezept für Turbo Pascal-Programme 325 Im Turbo Pascal-Programm 325 Im Assemblerprogramm 325 Kapitel 8: Der Turbo-Timer 329 Ein kurzer Überblick 330 Die Programmierung des Timers 8253 330 Ein Wort zum Programm 333 Anwendung 341

XII Turbo Pascal Power Tools Teil IV: Die UNITS-Bibliothek Kapitel 9: Turbo Pascal-Tuning Verändern der Heap-Größe im laufenden Programm Maximale Anzahl Dateien öffnen 345 346 347 Kapitel 10: Zeichenketten Strings länger als 255 Zeichen Technische Daten Prozeduren und Funktionen Quelltext 351 352 352 352 355 Kapitel 11: Mathematische Berechnungen Arithmetik Unit Technische Daten Prozeduren und Funktionen 369 370 370 371 Kapitel 12: Grafik und Zeichensätze Allgemeines über die Unit TxtWin Die technischen Daten zum Einsatz der Unit TxtWin Hauptspeicher Umfang der Unit Expanded/Extended Memory Residente Merkmale DOS-Version Turbo Pascal-Version Das Compilieren des Quelltextes der Unit TxtWin Ein Beispiel zur Programmierung mit der Unit TxtWin Anmerkungen und Erklärungen zu den Prozeduren und Funktionen Wichtige Termini Die exportierten Prozeduren der Unit TxtWin Die exportierten Funktionen der Unit TxtWin Erweiterungen der Unit TxtWin 399 400 401 401 401 402 402 402 402 403 405 405 407 408 524 548

Inhaltsverzeichnis xm Teil V: Die Utilities Kapitel 13: DOS-Utilities 553 Verwendete Units 554 Die Unit EXTDOS.PAS 554 Die Unit STRINGS 572 Erweitertes Löschen von Dateien: XDEL.PAS 594 Beschreibung des Quelltextes 595 Der Quelltext 59g Verzeichnisse schnell und einfach löschen: DELDIR.PAS 602 Beschreibung des Quelltextes 602 Der Quelltext 606 Dateiattribute ändern: ATTRIB.PAS 610 Beschreibung des Quelltextes 612 Der Quelltext 514 Festplatten parken: PARK.PAS 618 Beschreibung des Quelltextes 618 Der Quelltext 621 Anlegen eines versteckten Verzeichnisses: MHD.PAS 624 Beschreibung des Quelltextes 625 Der Sourcecode 626 Wechseln in ein verstecktes Verzeichnis: CHD.PAS 627 Beschreibung des Quelltextes 628 Der Quelltext 629 Löschen eines versteckten Verzeichnisses: RHD.PAS 630 Beschreibung des Quelltextes 630 Der Quelltext 631 Dateien physikalisch löschen: KILLFILE.PAS 632 Beschreibung des Quelltextes 633 Der Quelltext 635 Erinnerung an die Festplatten-Datensicherung: BACKTEST.PAS 637 Beschreibung des Quelltextes 638 Der Quelltext 640 Suchen von Dateien auf Festplatte oder Diskette: SEARCH.PAS 642 Beschreibung des Quelltextes 642 Der Quelltext 645 Kapitel 14: Turbo Pascal-Utilities 651 Formatierte Ausgabe von Quelltexten: PR.PAS 652

XIV Turbo Pascal Power Tools Beschreibung des Quelltextes 654 Der Quelltext 658 Quelltexte verschlüsseln: CHIFF.PAS 665 Beschreibung des Quelltextes 666 Der Quelltext 669 STRUKTer - ein Programm-Generator in Turbo Pascal 672 Einführung 673 Allgemeine Regeln 675 Kontrollstrukturen 676 Syntaxdiagramme 684 Prozeduren und Funktionen 688 Langer Text in schmalen Boxen, Breite und Einrückung 690 Die Bedienung 692 Zur Formatierungssprache 695 Zum Programm 696 Source-Code 700 Teil VI: Hardware-Manipulationen Kapitel 15: Rechnergeschwindigkeit ändern 731 Beschreibung des Quelltextes 733 Verwendete Units 733 Prozeduren und Funktionen 733 Das Hauptprogramm 733 Der Quelltext 734 Kapitel 16: Die serielle Schnittstelle 737 Unit SERIELL.PAS 738 Technische Daten 738 Testumgebung 738 Anwendung 739 Beschreibung des Source-Codes 739 Beschreibung der globalen Konstanten, Typen und Variablen 739 Beschreibung der Prozeduren und Funktionen 743 Kapitel 17: Tips und Units von Borland 759 Wieso arbeitet READ/LN nicht wie bei Version 3.0? 760

Inhaltsverzeichnis XV Cursormanipulation - die Unit CURSOR.PAS 762 Technische Daten 762 Testumgebung 762 Anwendung 763 Beschreibung des Source-Codes 763 Beschreibung der globalen Konstanten, Typen und Variablen 763 Beschreibung der Prozeduren und Funktionen 764 Hardcopy-Routine für Turbo Pascal 4.0 und höher (Epson FX80) 778 Hardcopy-Routine für Turbo Pascal 4.0 und höher (NEC P6) 779 HGC - Hardcopy im DIN-A4-Format 781 Unit HPLASER.PAS 783 Technische Daten 783 Testumgebung 783 Anwendung 783 Beschreibung des Source-Codes 784 Beschreibung der globalen Konstanten, Typen und Variablen 784 Beschreibung der Prozeduren und Funktionen 785 Printer - Unit für Turbo Pascal 4.0 und höher 794 Serielle Datenübertragung - Unit AuxInOut 799 Ersatz für die Read-Prozedur 799 Anhang A: Verzeichnis von Toolboxen und Utilities 803 Anhang B: Inhalt der beigefügten Disketten 827 Stichwortverzeichnis 833