„Programmieren mit Turbo Pascal 4.0, 5.0 und 5.5“
(Gebrüder Kassera, Markt&Technik)
Dies war das erste Buch, das ich mir zur Thematik „Programmierung“ damals (noch in den 80ern) gekauft habe. Hintergrund war, dass ich von einem Bekannten den Turbo Pascal 5.0 Compiler geliehen bekommen hatte, nachdem dieser sich die neue Version 5.5 gekauft hatte. Da es sich hierbei immer um die amerikanische Version handelte, die Handbücher somit auf Englisch waren und meine damaligen Englisch-Kenntnisse noch schlechter als heute waren, musste ich mir ein Buch zu Turbo Pascal besorgen.
Die Wahl fiel auf „Programmieren mit Turbo Pascal 4.0, 5.0 und 5.5“, was eine sehr gute Wahl war. Das Buch hat – alles meiner Erinnerung nach - bei Null angefangen, sich in jedem Kapital detailliert mit einem gut ausgewählten Komplex befasst, diesen sehr verständlich und umfassend behandelt. Der Aufbau des Buches hat mir auch sehr gefallen: jedes Kapital war in sich abgeschlossen und umfasste nur einen Komplex (z.B. PROCEDURE-Aufrufe und Verwendung) und hatte stets zum Ziel, die sog. strukturierte Programmierung zu vermitteln. Ein Kapitel baute auf dem anderen auf. Dennoch gab es keine lästigen Querverweise. Sehr gut und bis heute nützlich fand ich auch die umfassende Behandlung der BGI-Grafik incl. den Grundlagen der Animationsdarstellung von HGC bis VGA. Auch wenn ich heute keine Grafik-Bibliothek mehr verwende, so verwende ich bis heute die in diesem Buch dargestellten Grundsatztechniken, wie z.B. die 2-Seiten-Technik zur Animationsdarstellung (=wechselseitige Darstellung von verschiedenen Bildschirmseiten zur Eliminierung von Flimmern, sog. Double Buffering).
Ein mir gefälliges Beispiel für guten Code ist auch derjenige über das Wechseln von zwei Werten zwischen 1 und 0. Dieses Problem (also das Wechseln eines Werts zwischen Null und Eins) könnte man via „brute force“ so lösen:
IF wert=0 THEN wert:=1 ELSE wert:=0;
Das Buch lehrt, dass man solche Probleme immer funktional lösen sollte, also
wert := 1-wert;
Dies ist viel kürzer, in meinen Augen viel leichter verständlich und im Übrigen auf x86 cpus auch wesentlich schneller in der Ausführung.
Ich habe eigentlich mein (nahezu) gesamtes Wissen über Pascal aus diesem Buch gewonnen.
Ein Bild kann ich leider nicht bieten, da ich dieses Buch noch in den 90ern verschenkt hatte. Die Rezension erfolgt daher nur aus der (ggf. getrübten) Erinnerung. Ich habe das Buch aber in diese Liste aufgenommen, weil es für mich die Messlatte für alle späteren Bücher war. Eine Messlatte, die nie mehr gerissen wurde …
Mein Fazit: Die beste Einführung in Turbo Pascal, die mir je untergekommen ist!
Meine Bewertung: (-) da nur noch in der Erinnerung vorhanden
„PC-Intern 3.0“
(M. Tischer, Data Becker, 1. Aufl. 1992)
Damals beworben als die PC-Bibel. Deswegen hatte ich mir das Buch (nach intensiven Abwägen, ob ich den Kaufpreis von damals heftigen 99 Mark nicht besser in ein Spiel investieren sollte) dann auch zugelegt.
Positiv an diesem Buch sehe ich
den gut durchdachten, sehr strukturierten Aufbau
und das breite Spektrum der behandelten Themen,
sowie die aus meiner Sicht gute Qualität des abgedruckten Codes
Mehr als dieses Buch (sowie die noch für 1 Mark damals erworbenen Assembler-Befehlstafeln, im Bild oben neben PC-Intern) benötige ich eigentlich auch heute nicht, wenn ich etwas auf 286-Niveau softwaremäßig basteln will.
Leider ist mir auch einiges negatives aufgefallen:
Vielzahl von kleinen Flüchtigkeitsfehlern und anderen Fehlern (Zahlendreher, vertauschte Register etc.)
schlechte Bindung (Buch ist sehr schnell zur Loseblattsammlung geworden)
manche Themenbereiche sind nur sehr oberflächlich behandelt (z.B. Bootvorgang)
Komplex Soundkarten fehlt komplett
langatmiger, geradezu prosaischer und umständlicher Sprachstil
Leseprobe (PC Intern 3.0, S. 212f):
So prosaisch ist das ganze Buch gehalten! Ich weiß nicht, ob man das noch umständlicher ausdrücken kann. Ich habe den Ausschnitt sogar um einen Absatz gekürzt! Es geht eigentlich nur darum herauszufinden, ob eine VGA-Karte vorhanden ist. Hierzu ruft man einen bestimmten Interrupt des VGA-BIOS auf. Anhand dessen Rückgabewerts weiß man dann, ob tatsächlich eine VGA – Karte installiert ist. Ditto für EGA. Das ist alles!„Kapitel 4.8.1: EGA- und VGA-Karten identifizieren
Wenn Sie in ihren Programmen auf verschiedene Leistungsmerkmale von EGA- und VGA-Karten zurückgreifen, die diesen eigen sind und womöglich auch den Anschluß eines bestimmten Monitor-Typs voraussetzen, sollten Sie an den Anfang Ihres Programms den Aufruf einer entsprechenden Abfrageroutine stellen. Mit Ihrer Hilfe können Sie zur Laufzeit eines Programms die Spreu vom Weizen, spricht: EGA- und VGA-Karten von ihren Vorgängern unterscheiden. Eine solche Routine möchte ich Ihnen in diesem Abschnitt vorstellen.
Sie trägt den Namen IsEgaVga und wurde als Funktion in einer Pascal- und C-Version realisiert. Ihre Basis bildet der Aufruf zweier BIOS-Funktionen, die nur im erweiterten BIOS von EGA- und VGA-Karten enthalten sind. Bereits dadurch wird die Unterscheidung zu den Vorgänger-Modellen von MDA bis CGA möglich, weil diese Funktionsaufrufe dort zwangsläufig scheitern müssen.
Eine der beiden genannten Funktionen ist jedoch auch nur bei der VGA-Karte verfügbar und hilft so bei der Unterscheidung zwischen EGA- und VGA-Karten. Es handelt sich um die Funktion 1Ah, die über zwei Unterfunktionen verfügt. Für unsere Zwecke relevant ist die Unterfunktion 00h, die Informationen über die aktive und passive Videokarte liefert.
[…]
Ruft man die Funktion 1Ah nun mit der Funktions- und Unterfunktionsnummer im AH- und AL-Register auf, wird man gleich nach dem Funktionsaufruf am Inhalt des AL-Registers feststellen können, ob die Funktion vom BIOS unterstützt wurde, also eine VGA-Karte und ein zugehöriges VGA-BIOS vorliegt. Das VGA-BIOS macht sich dabei nämlich den Umstand zunutze, dass das normale BIOS beim Aufruf einer unbekannten Funktion sofort zum Aufrufer zurückkehrt, die Inhalte aller Register aber unverändert läßt.
Im AL-Register liefert das normale BIOS dann unverändert den Wert 00h zurück, während das VGA-BIOS ganz bewußt die Funktionsnummer 1Ah in dieses Register lädt, um die erfolgreiche Ausführung des Funktionsaufrufs zu dokumentieren. [...]“
Mein Fazit: Kauf hat sich absolut gelohnt, auch wenn mich die umständliche Ausdrucksweise jedes Mal neu nervt.
Meine Bewertung: 7/10 Punkte
„Das PC Profibuch, Extended Edition“
(M. Althaus, Sybex, 6. Aufl. 1990)
Dieses Buch habe ich mir erst jetzt gebraucht gekauft, und ist auch der wahre Anlass bzw. der Ursprung der Idee zu diesem Thread. Denn offenkundig handelt es sich hier um ein Konkurrenzprodukt zur Vorgänger-Version von PC-Intern 3.0, nämlich PC-Intern 2.0.
PC-Intern 3.0 beschreibt den Bootvorgang, der ja für die normale Programmierung unter DOS nicht relevant ist, nur sehr oberflächlich. In diesem Buch bin ich endlich fündig geworden. Der Bootvorgang ist meines Erachtens sehr detailliert und sehr gut beschrieben.
Wohltuend positiv gegenüber dem Konkurrenzprodukt PC – Intern war für mich auch der Sprachstil: kurzweilig, leicht verständlich, ohne viel Gelaber.
Positiv weiter fand ich das umfassende Kapitel zur HGC – einschließlich der eigenen Entwicklung eines einfachen CGA-Emulators. Ebenso wie PC-Intern 3.0 behandelt das Buch MDA, CGA, HGC, EGA und VGA.
Gut gefallen hat mir auch die Vielzahl der Hardware-Beschreibungen, die ich sonst in keinem Buch für den Bereich „Programmierung“ so angetroffen habe, wie z.B. die (einfache) Beschreibung der ISA-Bus-Belegung, derjenigen des MCA-Busses etc. Das sind Sachen, die in PC-Intern überhaupt nicht auftauchen.
Allerdings sehe ich auch einen Haufen Kritikpunkte:
1.
katastrophaler Aufbau: die Kapital sind ohne jede Nachvollziehbarkeit „kunterbunt“ angeordnet. Nicht nachvollziehbar ist auch, warum das Buch anfangs ca. 370 Seiten Erläuterungen enthält. Dann kommen 460 Seiten Api-Dokumentation (Anhang), dann wieder 200 Seiten Erläuterungen und dann wieder 100 Seiten Api-Dokumentation(Anhang).
2.
Auch innerhalb der Kapitel wird kunterbunt zusammengewürfelt. So beschreibt Kapitel 12 den Tastaturpuffer, den File-Control-Block, die FAT und den Global Descriptor Table zum Zugriff auf den Protected Mode. Das hat alles nicht besonders viel miteinander zu tun.
3.
Beispiel-Code ist teilweise nicht lauffähig und damit offenkundig ungetestet. Der auf Seite 200 genannte Turbo Pascal Code zum Zugriff auf einzelne Zeichen im Textmode ist so gar nicht kompilierbar, weil Pascal eine Zuweisung mittels „=“ gar nicht kennt.
4.
Die Fehlerquote ist gefühlt bestimmt doppelt so hoch wie die von PC-Intern 3.0. Teils wird z.B. behauptet (S.86), der Speicher der EGA begänne bei A8000h (falsch; er beginnt bei A0000h); Ebenso falsch ist die mehrfache Behauptung (z.B. S. 211), die EGA besäße einen CRTC 6845 als Bildschirmkontroller...
Aus dem werberischen Klappentext (Rückseite):
“Dieses Standardwerk benötigt jeder professionelle Programmierer!
Hier finden Sie alle notwendigen Fakten zur Programmierung Ihres PC auf Maschinenebene. Neben der übersichtlichen Dokumentation von Soft- und Hardware des PC finden Sie hier leicht verständliche Erklärungen zur Funktionsweise Ihres Computers. So lernen Sie, die Arbeitsabläufe in Ihrem PC zu verstehen und das Gerät optimal zu nutzen. Dabei ist es unerheblich, ob Sie in Assembler, Basic, Pascal oder C programmieren. Der Auto zeigt, wie Sie von all diesen Sprachen aus auf das BIOS und DOS zugreifen und die Hardware direkt ansteuern können. „
Und noch eine Leseprobe („PC Profibuch“, S. 1032 zur Speichertechnologie):
Das waren also die Zeiten, als die Bibel noch ein Kriterium für Informationsgehalt war.„Eine immer weitere Verbreitung haben in den letzten Jahren optische Speicher erfahren. Bei ihnen werden die Bits durch 'Unebenheiten' der Oberfläche des Trägermaterials repräsentiert. Die Speichermedien nennt man CD-ROMs. Die Oberfläche der CD-ROMs wird mit Hilfe eines Laserstrahls abgetastet. Der Vorteil dieses Verfahrens liegt in der extrem hohen Speicherdichte, die zu erzielen ist. Schon heute gibt es für den AT CD-ROM-Lesegeräte, bei denen beispielsweise der gesamte Text der Bibel (neues und altes Testament) inklusive Inhaltsverzeichnis und Suchindex auf einem einzigen CD-ROM untergebracht ist.“
Mein Fazit: Super Lesespaß mit strukturellen Schwächen!
Meine Bewertung: 4/10 Punkte