home *** CD-ROM | disk | FTP | other *** search
- ALLGEMEINE FRAGEN UND ANTWORTEN ZU TURBO PASCAL 5.0
- ---------------------------------------------------
-
-
- 1. Ist die Größe des Programmcodes und der Daten in irgendeiner
- Form begrenzt (wie in der Version 3.0)?
-
- Jedes Modul eines Programms (d.h. jedes Unit und das
- Hauptprogramm) arbeitet mit einem (konstanten) Code-Segment
- und kann deshalb maximal 64 KByte umfassen. Die Gesamtgröße
- eines Programms ist nur durch den verfügbaren Hauptspeicher
- begrenzt (max. 640 KByte).
- Alle globalen Variablen und Konstanten eines Programms werden
- in einem Daten-Segment gespeichert und sind nach wie vor auf
- 64 KByte beschränkt.
- Der Heap hat (wie in der Version 3.0) keine Größenbe-
- schränkung. Die entsprechenden Verwaltungsroutinen arbeiten
- wesentlich schneller und effizienter (minimale Blockgröße der
- Version 3.0: 8 Bytes, in der Version 5.0: 1 Byte). Zusätzlich
- läßt sich eine Fehlerbehandlungsroutine installieren, die
- automatisch aufgerufen wird, wenn New oder GetMem der
- Speicherplatz ausgeht.
-
-
- 2. Ist Turbo Pascal auf MS-DOS-Maschinen lauffähig, die nicht
- direkt "kompatibel" sind?
-
- Die Kommandozeilen-Version des Compilers (TPC.EXE) macht überhaupt
- keinen Gebrauch von PC-spezifischen Eigenschaften, wenn sie mit dem
- Zusatzparameter /Q aufgerufen wird; die Routinen der Units System,
- Dos und Printer sollten auf allen DOS-Maschinen lauffähig sein.
- Mit Turbo Pascal erzeugte .EXE-Dateien sind deshalb 100%ig DOS-
- kompatibel, solange nicht ein oder mehrere der PC-spezifischen
- Units (Crt, Graph und Graph3) verwendet werden. Die Software-
- Fließkommafunktionen und der Emulator sind auf jeder DOS-Maschine
- verwendbar; die 8087-Bibliothek (Modus {$N+,E-}) setzt voraus,
- daß ein entsprechender Coprozessor installiert ist, der hardware-
- mäßig in derselben Weise angesteuert wird wie bei einem Computer
- der PC-Serie.
-
- 3. Unterstützt die Version 5.0 verschieden große Integerwerte?
-
- Sie tut es - und zwar in jeder denkbaren Form vordefinierter
- Integertypen mit 8 Bit (ShortInt, Byte), 16 Bit (Integer, Word)
- und 32 Bit (LongInt).
-
-
- 4. Kann man die 4.0-Toolboxen mit 5.0 verwenden?
-
- Ja. Alles, was sich hier geändert hat, sind zwei Compiler-Schal-
- ter: {$T} ("TPM-Datei erzeugen") existiert nicht mehr; {$A} (für
- byte- bzw. wortweise Anordnung von Variablen im Speicher) ist neu
- dazugekommen. Die Datei README beschreibt detailliert, in welchem
- Toolbox-Quelltext welche Zeile zu ändern ist - und die Liste für
- sämtliche Toolboxen ist gerade eine viertel Seite lang.
-
-
- 5. Läßt sich die Compilierung von Programmteilen von Bedingungen
- abhängig machen (wie in Turbo C)?
-
- Ja - wobei nicht nur die Definition von Symbolen (mit {$DEFINE} und
- {$UNDEF}) und Prüfungen (mit {$IFDEF..$ELSE..$ENDIF}) möglich sind,
- sondern auch Tests von Compiler-Schaltern. Damit lassen sich
- beispielsweise Real-Datentypen abhängig davon definieren, ob der
- Computer mit einem numerischen Coprozessor ausgerüstet ist oder
- nicht.
- Zusätzlich lassen sich Symbole zur bedingten Compilierung auch
- direkt beim Aufruf des Compilers (d.h. ohne Veränderung des
- Quelltextes) definieren.
-
-
- 6. Wieviel Platz im Daten-Segment belegt das System, wieviel ist
- tatsächlich für das Programm verfügbar?
-
- Der Platzbedarf der Laufzeitbibliothek im Daten-Segment des
- Programms hängt davon ab, welche Units aufgenommen werden:
-
- UNIT Datengröße (in Bytes)
- ---- ---------------------
- SYSTEM 664
- OVERLAY 10
- DOS 6
- CRT 20
- PRINTER 256
- GRAPH 1070
- TURBO3 256
- GRAPH3 0
- =========
- 2282
-
- Die Gesamtgröße des Daten-Segments beträgt 65520 Bytes. Einem
- Programm, das nur das Unit System verwendet, stehen also
-
- 65520 - 664 = 64856 Bytes
-
- für globale Variablen und Konstanten zur Verfügung.
-
-
- 7. Welche Größe kann eine Datenstruktur maximal haben?
-
- Ein Aufruf von GetMem oder New kann maximal 65521 Bytes auf dem
- Heap belegen. Diese Grenze gilt im Prinzip auch für die Deklara-
- tion statischer (globaler) Variablen.
-
-
- 8. Läßt sich feststellen, wieviel Bytes Code und wieviele Bytes
- Daten die Compilierung eines Programms oder Units erzeugt?
-
- Innerhalb der integrierten Entwicklungsumgebung compilieren Sie das
- entsprechende Modul und wählen dann "Get info" aus dem Menü
- Compile.
- Die Kommandozeilen-Version von Turbo Pascal gibt die ent-
- sprechenden Daten automatisch am Ende einer Compilierung aus.
-
-
- 9. Wie sieht es mit der Kompatibilität zwischen Turbo Pascal 5.0
- und .OBJ-Dateien aus, die mit Turbo C oder dem Turbo Assembler
- erzeugt worden sind?
-
- Mit Turbo C oder Turbo Assembler erzeugte .OBJ-Dateien können
- über den Compiler-Befehl {$L} in ein Pascal-Programm
- aufgenommen werden (siehe CPASDEMO.C und CPASDEMO.PAS auf der
- Diskette II). Turbo Pascal selbst erzeugt keine Object-, sondern
- .TPU-Dateien (wobei das Suffix TPU für "Turbo Pascal Unit" steht)
-
- Dafür gibt es mehere Gründe:
-
- - .TPU-Dateien enthalten neben dem Object-Code Informationen für
- die Fehlersuche und die strenge Typ-Prüfung von Pascal bei der
- Einbindung in ein Programm. Trotzdem sind sie wesentlich kleiner
- als .OBJ-Dateien.
- - .TPU-Dateien erlauben ein "intelligentes" Binden - nicht benutzte
- Code- und Datenbereiche werden vom Linker automatisch entfernt.
- - Das .TPU-Format ist wesentlich einfacher zu bearbeiten und einer
- der Gründe für die hohe Geschwindigkeit des Compilers (bis
- zu 34000 Zeilen pro Minute auf einem PS/2 Modell 60).
-
-
- 10. Lassen sich mit {$L} auch Dateien einbinden, die mit anderen
- Compilern erzeugt wurden (FORTRAN etc.)?
-
- Das hängt vom Compiler bzw. der Programmiersprache ab. Turbo Pascal
- erwartet den gesamten Programmcode einer .OBJ-Datei in *einem*
- Segment mit dem Namen CODE, sämtliche Daten müssen ebenfalls in
- einem Segment (mit dem Namen DATA) gespeichert sein.
- Wenn Sie Maschinenprogramme mit einem Assembler schreiben,
- lassen sich diese Bedingungen recht einfach erfüllen - anders
- sieht es dagegen mit einem Hochsprachen-Compiler aus, der in den
- meisten Fällen mit mehreren Segmenten für Code und Daten arbeiten
- wird. (Allerdings: Auch Turbo C arbeitet mit einer größeren
- Zahl von Segmenten - und mit dem Beispielprogramm CPASDEMO.C
- (auf der Diskette 3) haben wir bewiesen, daß die Sache so schwie-
- rig nicht ist).
-
-
- 11. Der Linker arbeitet "intelligent" und entfernt unbenutzten Code.
- Wie sieht es mit unbenutzten Datendeklarationen aus?
-
- Unbenutzte Datendeklarationen wurden in der Version 4.0 noch
- mitgeschleppt - in der Version 5.0 analyisert der Linker dagegen
- einzelne *Deklarationsabschnitte* und entfernt sie gegebenenfalls.
- (Im Kapitel 8 des Addendums finden Sie eine detaillierte Beschrei-
- bung des Wie und Wo).
-
-
- 12. Wenn ein Unit in zwei Modulen eines Programm mit uses angeführt
- ist, wird es dann auch doppelt in die .EXE-Datei aufgenommen?
-
- Nein. Unabhängig davon, wie komplex die gegenseitigen Abhängig-
- keiten einzelner Units und Programmteile aussehen, nimmt Turbo
- Pascal von jeder benötigten Prozedur oder Funktion exakt EINE
- Kopie in die .EXE-Datei auf - nicht mehr und nicht weniger.
-
-
- 13. Was passiert, wenn Compiler-Schalter in den Modulen eines
- Programms unterschiedlich gesetzt sind?
-
- Compiler-Befehle sind "lokal" zum jeweiligen Unit oder dem Haupt-
- programm; auch bei einem MAKE oder BUILD beginnt die Compilierung
- jedes Moduls mit den über die Menüs bzw. durch die Kommandozeilen-
- Parameter gesetzten Standardvorgaben. Die Schalterstellungen
- einzelner Module sind also unabhängig voneinander.
-
-
- 14. Ist die Erzeugung eigener Unit-Bibliotheken (.TPL-Dateien)
- möglich?
-
- Im Prinzip ja. Der Compiler verwendet allerdings nur eine
- einzige Bibliothek (TURBO.TPL). Mit dem Programm TPUMOVER können
- Sie TURBO.TPL eigene Units hinzufügen - es wäre also möglich, für
- jedes größere Projekt eine separate Version von TURBO.TPL zu
- erzeugen, die dann jeweils ins "Turbo directory" hineinkopiert
- werden müßte.
-
-
-
- 15. Welche Regeln sind bei der Erstellung von
- Interrupt-Behandlungsroutinen zu berücksichtigen?
-
- Abgesehen davon, daß Sie sich mit dem BIOS des Computers und mit
- Maschinensprache gut auskennen sollten, gibt es einige Punkte im
- Zusammenhang mit Turbo Pascal:
-
- - Verwenden Sie GetIntVec und SetIntVec (aus dem Unit Dos) zur
- Veränderung von Interrupt-Vektoren.
- - Deklarieren Sie die Behandlungsroutine als interrupt und
- verwenden Sie den Compiler-Befehl {$F+} - die Routine muß als FAR
- codiert werden.
- - Verwenden Sie innerhalb der Behandlungsroutine keine
- Aufrufe von DOS-Funktionen, der dynamischen Speicher-
- verwaltung oder der Overlay-Verwaltung - der entsprechende
- Code ist nicht reentrant.
- - Interrupt-Prozeduren und Funktionen müssen mit
- Compilerdirektive $F+ (far calls) compilert werden
- - ACHTUNG: Die Interrupt-Behandlungsroutine darf *nicht*
- als Teil eines Overlays codiert sein oder Routinen auf-
- rufen, die sich ihrerseits in Overlays befinden.
-
-
- 16. Wann ist eine Pascal-Routine als NEAR codiert, wann als FAR?
-
- Die allermeisten Programmierer werden sich um dieses Detail nie zu
- kümmern brauchen - schließlich wählt der Compiler die richtige Art
- des Aufrufs automatisch aus. FAR-Aufrufe und Rücksprünge werden nur
- benutzt, wenn
-
- - die Routine im Interface-Teil eines Units deklariert ist
- - oder der Compiler-Befehl {$F+} gegeben wurde. Dieser Befehl
- *muß* für die folgenden Routinen verwendet werden:
-
- + Interrupt-Behandlung
- + Fehlerbehandlung
- + Exit-Prozeduren
- + bei Verwendung von prozeduralen Typen
- + Overlays
-
-
- 17. Lassen sich mit Turbo Pascal reentrante Routinen schreiben?
-
- Ja, wenn Sie die folgenden Regeln berücksichtigen:
-
- - Alle Daten, die die Routine verändert, müssen sich auf dem Stack
- des Prozessors befinden (d.h. lokale Variablen oder übergebene
- Parameter sein).
- - Typisierte Konstanten werden auch dann im Datensegment
- gespeichert, wenn sie lokal deklariert sind. Sie dürfen durch die
- Routine nicht verändert werden.
- - Punkte, an denen die Routine nicht unterbrochen werden darf,
- müssen mit entsprechenden Befehlen (CLI / STI) eingefaßt werden.
- - Die Routine darf keine anderen Routinen aufrufen, die ihrerseits
- nicht ebenfalls reentrant sind (wie z.B. DOS).
-
-
- 18. Was muß bei Verwendung IEEE-Fließkommatypen beachtet werden ?
-
- Die Datentypen Single, Double, Extended und Comp sind nur
- im Modus {$N+} verfügbar. In der Version 5.0 setzt dieser
- Modus aber keinen numerischen Coprozessor voraus - mit dem
- Compiler-Befehl {$E+} läßt sich ein *Emulator* einbinden, der
- einen Coprozessor nötigenfalls softwaremäßig simuliert.
- Sie sollten allerdings überlegen, auf welchen Maschinen Ihr
- Programm später laufen wird: Wenn diese Maschinen überwiegend
- ohne Coprozessor auskommen müssen, dann empfiehlt sich trotz
- des Emulators der Modus {$N-} und der Datentyp Real: Variablen
- dieses Typs sind zwar um einiges ungenauer als das Format Double,
- werden aber auf Maschinen ohne Coprozessor erheblich schneller
- bearbeitet.
- Für Maschinen, die mit einem Coprozessor ausgerüstet sind, gilt
- das Gegenteil, weil der Typ Real vor jeder Rechenoperation soft-
- waremäßig in ein IEEE-Format umgerechnet werden muß - folglich
- sind hier der Modus {$N+} und die Datentypen Single..Extended
- immer die bessere Wahl.
-
-
- 19. Was bitte ist der Typ Comp?
-
- Der Datentyp Comp speichert extrem große Integerzahlen - ähnlich
- wie bei den BCD-Typen läßt er sich am besten für Operationen
- verwenden, bei denen keine Rundungsfehler auftreten dürfen.
- Obwohl Comp keine "Stellen nach dem Komma" definiert, lassen sich
- Geldbeträge sehr einfach mit Comp-Variablen berechnen, wenn man mit
- der Einheit "Pfennig" arbeitet und Ergebnisse bei der Ausgabe durch
- 100 dividiert.
-
-
- 20. Wieviele signifikante Stellen bieten die IEEE-Realtypen?
-
- Die Antwort auf diese Frage ist eine Tabelle:
-
- Typ signifikante Dezimalstellen Platzbedarf
- ------------------------------------------------------
- Single 7-8 4 Bytes
- Double 15-16 8 Bytes
- Extended 19-20 10 Bytes
- Comp 19-20 8 Bytes
-
-
- 21. Wo und wie werden Zwischenergebnisse bei Operationen mit
- IEEE-Realtypen gespeichert?
-
- Auf dem Stack des 8086. Dasselbe gilt für die Übergabe von
- Fließkomma-Werten an Prozeduren und Funktionen (die in der
- Version 4.0 noch direkt in die Rechenregister des 8087 geladen
- wurden).
-
-
- 22. Wie werden IEEE-Fließkommazahlen gerundet?
-
- Der numerische Coprozessor verwendet ein Rundungsverfahren aus dem
- Bankwesen, das sich von der Schulmathematik leicht unterscheidet -
- er rundet "Werte in der Mitte" immer zum nächsten *geradzahligen*
- Wert hin. Einige Beispiele dazu:
-
- Round(0.4) -> 0 Round(0.5) -> 0 Round(0.6) -> 1
- Round(1.4) -> 1 Round(1.5) -> 2 Round(1.6) -> 2
- ===============
-
-
- 23. Lassen sich Ein-/Ausgaben eines Turbo Pascal-Programms
- umleiten?
-
- Solange Sie das Unit Crt *nicht* benutzen, läßt sich ein Turbo
- Pascal-Programm beim Aufruf von der DOS-Kommandoebene aus in
- derselben Weise umleiten wie jedes andere Programm auch. Wenn
- Sie Crt verwenden und sich die Möglichkeit zu Umleitung der
- Ein-/Ausgabe offenhalten wollen, können Sie die Textdatei-
- Variablen Input und Output mit Assign den Standardwegen von DOS
- zuordnen:
-
- Assign(Output,''); Rewrite(Output);
- Assign(Input, ''); Rewrite(Input);
-
-
-
- 24. Wie lassen sich 3.0-Programme konvertieren, die mit
- Chain-Dateien arbeiten?
-
- Chain und Execute sind für .EXE-Dateien prinzipbedingt nicht
- anwendbar. Die Version 5.0 bietet aber eine ganze Reihe
- von Alternativen:
-
- - Compilierung der einzelnen Chain-Module als Units
-
- - Compilierung der Module als eigenständige Programme und
- Aufruf über die neue Prozedur Exec des Units DOS
-
- - Compilierung der einzelnen Chain-Module als Overlays (was
- in den meisten Fällen die beste Lösung sein dürfte).
-
- 25. Wie war das mit Overlays?
-
- *Das* ist eine der vielen Erweiterungen der Version 5.0 gegen-
- über der Version 4.0. (Siehe Addendum, Kapitel 5, Beispielpro-
- gramme OVRDEMO.PAS...)
-
-
- 26. Unterstützt Turbo Pascal 5.0 das Sperren von Dateien und
- einzelnen Records beim Betrieb in Netzwerken?
-
- Im Prinzip ja. Das Unit System enthält eine Variable namens
- FileMode, über die die Art der Öffnung von Dateien festgelegt
- werden kann. Die Laufzeitbibliothek enthält keine speziellen
- Funktionen für das Sperren von Records und Dateiteilen (was aber
- durch entsprechende Aufrufe von DOS ohne weiteres möglich ist).
-
-
- 27. Lassen sich Routinen über Zeigervariablen aufrufen?
-
- Ja - und zwar (im Gegensatz zu den Versionen 3.0 und 4.0) ohne
- Tricks sowie mit sämtlichen Prüfmöglichkeiten durch den Com-
- piler (Parameterzahl, -reihenfolge und -typ, Codierung als NEAR
- oder FAR etc). Kurz gesagt: die berüchtigten "prozeduralen Para.
- meter" werden voll und ganz unterstützt. (Siehe Addendum,
- Kapitel 7, Beispielprogramm PROCVAR.PAS, DIRDEMO.PAS...)
-
-
- 28. Kennt Turbo Pascal berechnete Konstanten (wie z.B. Turbo C)?
-
- Ja. Ab der Version 5.0 sind const-Deklarationen als *Ausdrücke*
- definiert, die zum Zeitpunkt der Compilierung berechnet werden.
- Die Möglichkeiten sind fast unbegrenzt:
-
- const
- ElemCount = 100;
-
- var
- SortArray: array[1..ElemCount-1] of Integer;
- const
- SortSize: Integer = ElemCount * SizeOf(Integer);
-
-
- 29. Wie sieht es mit der größeren Effektivität der Version 5.0 im
- direkten Vergleich zur Version 3.0 aus?
-
- Die Programme belegen rund 30% weniger Platz auf der Diskette, die
- "typische" Geschwindigkeitssteigerung liegt zwischen 15 und 30%.
-
-
- 30. Welche Lizenzgebühren müssen für die Weitergabe selbst-
- entwickelter Turbo Pascal-Programme an Borland gezahlt
- werden?
-
- Wie bitte? So etwas haben wir noch nie nötig gehabt.
-
-
- 31. Wie sieht es mit der Fehlersuche aus, d.h. einem Debugger?
-
- In der Version 5.0 haben Sie schon fast die Qual der Wahl:
-
- - die integrierte Entwicklungsumgebung enthält einen Debugger,
- der *auf der Quelltext-Ebene* und mit Pascal-Befehlen
- arbeitet. Er erlaubt die schrittweise Ausführung, die
- Ausgabe und *Veränderung* von Variablenwerten des laufenden
- Programms, Abbruchpunkte...
- - für die Fehlersuche auf der Ebene der Maschinensprache bieten
- wir den Turbo Debugger an - ein separates, eigenständiges
- Programm, mit dem nicht nur Pascal-Programme untersucht werden
- können.
- - Und schließlich: Die von Turbo Pascal 5.0 erzeugten .EXE-
- Dateien lassen sich mit jedem Debugger analysieren, der
- auch mit .MAP-Dateien arbeiten kann.
-
-
- 31. Gibt es etwas ähnliches wie die statischen lokalen Variablen von C?
-
- Globale Variablen, die im Implementations-Teil eines Units
- deklariert sind, werden als lokal zum entsprechenden Unit behandelt
- und können über den Initialisierungs-Teil des Units auf
- vordefinierte Werte gesetzt werden. Diese Variablen behalten ihre
- Werte zwischen mehreren Aufrufen des Units (wie andere globale
- Variablen auch).
- Typisierte Konstanten, die innerhalb einer Prozedur oder Funk-
- tion deklariert sind, werden im Daten-Segment gespeichert und ver-
- halten sich exakt wie statische lokale Variablen von C: sie
- behalten ihren Wert zwischen mehreren Aufrufen, sind aber lokal
- zur entsprechenden Routine.
-
-
-
- 32. Wo sind die größten Probleme bei der Konvertierung von
- 3.0-Programmen zu erwarten?
-
- Das hängt natürlich von der Art des Programms ab - mit UPGRADE.EXE
- (auf der Diskette II) und den in Kapitel 8 des Benutzerhandbuchs
- beschriebenen Schritten sollte eine Konvertierung aber nur in
- seltenen Fällen größere Probleme bereiten. UPGRADE kann sogar
- große Programme in Units unterteilen (und dabei selbständig die
- notwendigen Deklarationen der jeweiligen Interface-Teile erzeugen).
-
- - Die Übergabe von Parametern wird in der Version 5.0 wesentlich
- effizienter ausgeführt - dementsprechend dürften bei den meisten
- inline-Routinen Änderungen notwendig sein.
- - Der Compiler führt eine strengere Typ-Prüfung aus und wird
- getrennt deklarierte Typen in einigen Fällen als nicht mit
- einander kompatibel ausweisen.
- - Die Prozeduren MsDos und Intr erwarten einen Parameter des Typs
- Registers, der im Unit Dos deklariert ist und die in der Version
- 3.0 notwendige Typ-Definition Regs = record .. (AX, BX, CX, DX..)
- ersetzt.
-
-
- 33. Lassen sich kommerziell vertriebene .BIN-Dateien zusammen mit
- der Version 5.0 verwenden?
-
- Solange diese .BIN-Dateien nur Daten enthalten, ist eine
- Konvertierung mit BINOBJ.EXE (auf der Diskette II) in eine
- .OBJ-Datei und die nachfolgende Aufnahme in das Pascal-Programm
- mit dem Befehl {$L} problemlos.
- Die Konvertierung von .BIN-Dateien, die ausführbaren Maschinen-
- code enthalten, ist mit BINOBJ nicht ohne weiteres möglich - sie
- sollten beim Vertreiber der .BIN-Datei anfragen, ob die entspre-
- chenden Routinen auch im .OBJ-Format erhältlich sind.
-
-
- 34. Werden Erweiterungen des Hauptspeichers (EMS) unterstützt?
-
- Ja - in mehrfacher Hinsicht:
-
- - Die integrierte Entwicklungsumgebung nutzt in der Version
- 5.0 eine EMS-Karte als Puffer für den Editor und spart
- so bis zu 64 KByte Platz im Hauptspeicher ein.
- - Die Overlay-Verwaltung macht es mit einer speziellen Initia-
- lisierungsroutine (OvrInitEMS) möglich, sämtliche
- Overlays von der Diskette in die EMS-Karte und von dort aus
- bei Bedarf in den Hauptspeicher zu laden - was natürlich
- beim Wechsel von Overlays erhebliche Geschwindigkeitsvor-
- teile mit sich bringt.
- - Direkte Steuerungen der EMS-Karte durch ein Programm sind
- ebenfalls kein Problem, wie die Datei EMS.PAS (in DEMOS.ARC auf
- der Diskette 2) demonstriert.
-
-
- 35. Lassen sich nach wie vor eigene Puffer für Textdateien anlegen?
-
- Ja - allerdings nicht über eine entsprechende Deklaration der
- Textdatei-Variablen, sondern mit der Prozedur SetTextBuf, die auch
- mit dynamisch belegten Puffervariablen arbeiten kann (siehe Kapitel
- 8 und 26 im 4.0-Handbuch).
-
-
- 36. Nach der Installation von TURBO.EXE mit dem Programm TINST
- werden die neuen Einstellungen von Compiler-Schaltern nur teilweise
- benutzt. Wieso?
-
- Wahrscheinlich haben Sie im momentanen Directory (oder dem "Turbo
- Directory") eine Konfigurationsdatei (TURBO.TP) gespeichert.
- TURBO.EXE lädt diese Datei beim Start automatisch - in ihr
- enthaltene Parameter setzen die mit TINST festgelegten Vorgaben
- außer Kraft. Nach der Löschung dieser Konfigurationsdatei sollte
- TURBO.EXE auch die mit TINST gesetzten Vorgaben benutzen.
-
-
- 37. Sind Strings nach wie vor auf 255 Zeichen begrenzt?
-
- Ja. Zur Verwaltung längerer Zeichenketten müssen Sie eigene
- Routinen schreiben.
-
-
- 38. Sind Schreibaktionen zum Gerät CON nach wie vor möglich?
-
- 'Con' ist nicht mehr implementiert - solange das Unit Crt nicht
- verwendet wird, entspricht ein Aufruf von Write oder Writeln (ohne
- Angabe einer Datei-Variablen) aber exakt einer Ausgabe zu diesem
- DOS-Standardgerät.
- Die Dateiverwaltung und -systematik ist bereits in der Version
- 4.0 völlig neu geschrieben worden, um die Verwendung eigener
- Textdatei-Gerätetreiber zu ermöglichen. Mit derartigen Treibern
- lassen sich Schnittstellen zu beliebigen Geräten implementieren
- (wie den seriellen Ports, Fenster-Oberflächen usw).
-
-
- 39. Was bedeutet "constant merging"?
-
- Wenn ein und dieselbe String-Konstante mehrfach innerhalb eines
- Programms angegeben ist, belegt der Compiler nur einmal
- Speicherplatz dafür und verwendet ansonsten Zeiger.
-
-
- 40. Wie sieht es mit Laufzeitfehlern aus?
-
- Die Version 5.0 verwendet die Fehlercodes von DOS - IOResult
- liefert also andere Resultate als in der Version 3.0. Darüber
- hinaus werden nicht nur "normale", sondern auch "kritische" Fehler
- (wie "Laufwerk nicht bereit..") von Turbo Pascal abgefangen und
- können über IOResult ermittelt werden. Anhang F des Referenzhand-
- buchs enthält eine Liste der Fehlermeldungen und -codes.
-