Pascal mit dem C64 und Pascal mit dem C128

Eine kleine weihnachtliche Computer-Nostalgie
Stand dieses Dokuments: 30.12.2001
Autor: Prof. Dr. Florian Matthes <matthes@in.tum.de>
Copyright: 1985-2004, Florian Matthes, alle Rechte vorbehalten.

Hintergrund

Während des Informatik-Grundstudiums entwickelte ich 1985 (dem Vorbild Niklaus Wirth folgend [1]) mit einem auf 32KB RAM aufgerüsteten VC-20 von Commodore("Volkscomputer" in Deutschland, VIC-20 in den USA) einen Pascal-Compiler. Das Ergebnis dieses Projekts bot ich dem Markt&Technik-Verlag zur Publikation mit einem Pascal-Kurs in einer der damaligen Szene-Computerzeitschriften (z.B. 64er) an. Stattdessen erhielt ich das Angebot, den Compiler an den Commodore 64 (C64) anzupassen und mit einem selbst geschriebenen Pascal-Buch zu veröffentlichen.

Das Buch Pascal mit dem C64 [2] erschien 1986 im Markt&Technik-Verlag, Haar bei München mit dem folgenden Klappentext:

Dem Buch liegt ein leistungsfähiges Pascal-System mit Beispiel-Programmen auf Diskette bei.

Buch und Compiler ermöglichen jedem Besitzer eines C64 den Einstieg in die moderne Programmierspraceh Pascal.

Dem Anfänger wird ein Einführungskurs in Pascal geboten, wobei viele überschaubare Beispiele aus der Praxis und Übungsaufgaben zum aktiven Lernen mit dem C64 auffordern. Beim Programmieren wird er durch eine ausführliche Bedienungsanleitung des Systems unterstützt. Für den Pascal-Profi gibt es neben nützlichen Beispielprogrammen ein spezielles Kapitel mit Tips und Tricks.

Der Compiler akzeptiert den gesamten Sprachumfang mit einigen Erweiterungen. Der Compiler bildet mit seinem sehr komfortablen Full-Screen-Editor eine schnelle Einheit, so daß der Programmentwicklungsaufwand minimal ist. Übersetzte Programme laufen ohne weitere Hilfsprogramme auf jedem C64, nutzen den gesamten Programmspeicher des C64 und sind 3-4mal schneller als vergleichbare Programme in BASIC.

Hardwareanforderungen: C64 mit Floppy 1541-Laufwerk.

Nach dem wirklich überwältigenden Erfolg des Buchs und der Software schrieb ich dann 1987 noch ein zweites (verbessertes) Pascal-Lehrbuch für den C128 mit einem erweiterten Pascal-Compiler für den C128, die gemeinsam unter dem Titel Pascal mit dem C128 [3] 1987 im gleichen Verlag veröffentlicht wurden.

Auf die Anregung von Spiro Trikaliotis per E-Mail im Sommer 2001 habe ich als einen kleinen Dienst für die immer noch aktive Commodore-Community (z.B. Project 64 oder iDOC) an zwei Tagen umWeihnachten 2001 herum die alten Commodore-Disketten gesichtet, dokumentiert und die Ergebnisse der alten Projekte auf diese Weise ins Internet gestellt.

Der Text und die Bilder des Buchs Pascal mit dem C128 wurde mit einem Atari ST erstellt und konnten relativ leicht in HTML-Texte und GIF-Bilder konvertiert werden.

Ich freue mich über Kommentare oder Feedback per E-Mail.

Erste Schritte mit dem Pascal-Compiler für den C64

Wenn Sie den Pascal-Compiler ausprobieren wollen, gehen Sie wie folgt vor:

  1. Einen C64-Emulator aus dem Internet herunterladen und installieren (z.B. empfehlenswert. VICE)

  2. Den C64-Emulator starten und das Pascal-System vom Diskettenabbild (disk image) der Systemdiskette PAS64.D64 laden.
  3. Ein Beispielprogramm mit dem Fullscreen-Editor laden (z.B. queen.p auf der Systemdiskette PAS64.D64)
  4. Das Beispielprogramm mit dem Pascal-Compiler übersetzen
  5. Das übersetzte Programm ausführen

Tipp: Das hier veröffentlichte Pascal-System hat die Versionsnummer 1.4A und wurde als Vorlage für die Disketten der Neuauflagen des Buchs verwendet. Es besitzt einige kleineVerbesserungen gegenüber der ursprünglich veröffentlichten Programmversion.

Dokumentation zum Pascal-Compiler für den C64

Wenn Sie mehr mit dem Pascal-System anfangen möchten, finden Sie auf den Diskettenabbildern C2 und C5 den kompletten Text des Buchs Pascal mit dem C64, den Sie mit dem C64-Programm Vizawrite (Diskettenabbild VIZAWRITE) angesehen oder ausdrucken können. Über die Zusendung einer in HTML konvertierten Textversion dieser Vizawrite-Dateien würde ich mich sehr freuen. Natürlich würde ich das Ergebnis an dieser Stelle mit Nennung des Spenders veröffentlichen.

Inhaltsverzeichnis
  Vorwort
1 Die Werkzeuge
  7 Unterkapitel
2 Einführung in Pascal
  45 Unterkapitel
3 Tipps und Tricks
  2 Unterkapitel
4 Dokumentation Pascal-System
  36 Unterkapitel
   
  Anhang
A Syntaxdiagramme Pascal 1.4 (SYNTAX1_1.4.E.txt und SYNTAX2_1.4.E.txt)
B Fehlernummern Pascal 1.4 (ERRORS.E.TXT und DMESSAGE1.4.E.txt)
C Laufzeitfehler
D Operatoren in Pascal
E Literaturhinweise
F Index

Pascal-Beispielprogramme und ein Blick hinter die Kulissen

Zusätzlich zu den im Buch beschriebenen Beispielprogrammen finden sich auf den folgenden Diskettenabbildern Beispiele für in sich geschlossene Pascal-Programme, die mit dem Pascal-Compiler übersetzt werden können.

Für den C64: PAS64 konvertiert, AI konvertiert, W6 konvertiert

Für den C128 zusätzlich: PAS128 konvertiert, W7 konvertiert, W5 konvertiert

Ein größeres Programmbeispiel ist der ein Pascal realisierter Assembler für den 6502 Microprozessor-Befehlssatz (1B konvertiert). Dieses Programm zeigt zum Beispiel, wie man Include-Dateien verwendet, und wie man aus Pascal heraus Unterprogramme in Maschinensprache aufruft.

Schließlich wurde (natürlich) der Pascal-Compiler selbst in Pascal realisiert. Die Quelltexte des Compilers finden sich auf dem Diskettenabbild R1 (R1 konvertiert).Das Hauptprogramm main.e verwendet verschiedene Include-Dateien. Der Quelltext kann gleichermaßen für den VC-20, C64 und den C128 verwendet werden. Die hierzu notwendigen Änderungen an die systemspezifischen Maschinenadressen sind im Quelltext mit strukturierten Kommentaren markiert. Die Dokumentation zum Programm findet sich auf dem Diskettenabbild C3 (C3 konvertiert).

Vielleicht haben Sie ja auch selbst noch das eine oder andere Pascal-Programm für den C64 oder C128 in der Schublade, die ich gerne hier veröffentliche.

Erste Schritte mit dem Pascal-Compiler für den C128

Die vollständige Dokumentation für das Pascal-System (ursprünglich 355 Seiten Buchtext) ist auch im HTML-Format verfügbar. Die ersten Schritte unter Windows sind hier kurz zusammengefaßt:

  1. Einen C128-Emulator aus dem Internet herunterladen und installieren (z.B. empfehlenswert VICE)

  2. Den C128-Emulator starten und das Pascal-System vom Diskettenabbild (disk image) der Systemdiskette PAS128.D64 laden.
  3. Ein Beispielprogramm mit dem Fullscreen-Editor laden (z.B. epizykloide.p auf der Systemdiskette PAS128.D64)
  4. Das Beispielprogramm mit dem Pascal-Compiler übersetzen
  5. Das übersetzte Programm ausführen

Diskettenabbilder sortiert nach Disketten-ID

Die Diskettenabbilder wurden am 8.9.2001 von Spiro Trikaliotis mit StarCommander von den Originaldisketten erzeugt (s.a Originalbeschriftung). Einige der Disketten sind Backup-Disketten und besitzen daher einen redundanten Inhalt.

Mit einem aktuellen Beta-Release des Programms StarCommander wurden alle Dateien der Diskettenabbilder in eigenständige Windows-Dateien exportiert. Anschließend wurden mit einem kleinen Java-Programm am 26.11.2001 alle Quelltexte unter diesen Dateien (Endung ".P" für Pascal und Endung ".E" für Editor) in Standard-Windows-Textdateien umgewandelt und ein Gesamtindex aller exportierten und konvertierten Textdateien erstellt.

Das Ziel der Umwandlung war es, mit einem Web-Browser einen schnellen Überblick über die Inhalte der Originaldisketten zu erhalten. Für die Arbeit mit dem Emulator müssen natürlich die Originaldisketten im d64- und im d71-Format verwendet werden.

Originaldisketten mit Originalbeschriftung

Disketteninhalt
(teilweise konvertiert)

1A.D71
128
Hilfsprogramme für den Bootstrap vom C64 zumC128 (XPAS-SYST,DRUCK.P, SCREEN-ED.64)
1541-Format, ca. 5/1986

1A konvertiert

1B.D64
128
ASSEMBLER V4: Quelltexte Pascal, M-Code und Mnemonic-Tabelle (für C-64 und PASCAL1.4)
1541 Format, 1.6.1986

1B konvertiert

AI.D64
INFORMATIK
Quelltexte Pascal (VC-20)
Übungsaufgaben (Informatik und  Numerik 3.Semester)
1541 Format

AI konvertiert

AI2.D64
Die ersten Buchkapitel im Pascal-Editor-Format (obsolet)

AI2 konvertiert

C2.D64
BUCH2
Vizawrite-Texte Buch C64
Kapitel 1 bis 2.14
1541 Format, ca. 11/1985

C2 konvertiert

C3.D64
BAK.DOKU.PAS
Ausführliche Dokumentation im Editor-Format
Memory-Maps, Syntaxdiagramme, Dokumentation, Fehlertexte
1541 Format      22.3.1987

C3 konvertiert

C4.D64
SCREEN-C64
SCREEN-EDITOR, INIT, PCODE und Scanner (Pascal 1.4)
1541 Format      24.11.1985

C4 konvertiert

C5.D64
BUCH5
Vizawrite-Texte Buch C64
2.15.V bis 4/4.V sowie KORREKTUR.V
1541 Format       ca. 11/1985

C5 konvertiert

LL.D64
PASCAL1.4A
Pascal 1.4A Quelltexte C-64 (VC-20/CROSS)
Neues Pascal-System
1541 Format         21.3.1987

LL konvertiert

PAS128.D64
(M&T - Originaldiskette)
Diskette zum Buch Pascal auf dem C 128
Floppy 1541/1570/1571
Bestell-Nr. 90386 / 06049063rv

PAS128 konvertiert

PAS64.D64
(M&T - Originaldiskette - Release 1.4a)
Diskette zum Buch
Pascal mit dem C64
Floppy 1541-Format
Bestell-Nr. 90222 / 02018743

PAS64 konvertiert

R0.D64
Assemblerquelltexte Pascal
Version 1.4A für C-64
(incl. FETCH1.4A)
1541 Format         21.3.1987

R0 konvertiert

R1.D64
PASCAL1.4A
Pascal 1.4A Quelltexte
C-64 (VC-20/CROSS)
Neues Pascal-System
1541 Format         21.3.1987

R1 konvertiert

R4.D64
Backup-Diskette
Pascal 1.4 Quelltexte
VC20 (C-64/CROSS)
1541 Format         9.12.1985

R4 konvertiert

VIZAWRITE.D64
Vizawrite Textverarbeitung

VIZAWRITE konvertiert

W1.D64
BACKUP64
Backup-Diskette
ASSEMBLER V4: Quelltexte Pascal
M-Code und Mnemonic-Tabelle
(für C-64 und Pascal 1.4)
1541 Format      1.6.1986

W1 konvertiert

W2.D64
EDITOR64
Assemblerquelltexte (C-64, neu)
SCREEN-EDITOR (für Assembler Version 4)
1541 Format      3.6.1986

W2 konvertiert

W3.D64
EDITOR128
Screen-Editor für C128
(Pascal 2.0) in der Syntax für ASSEMBLER V4
1541 Format      26.6.1989

W3 konvertiert

W4.D71
BACK-EDITOR128
Backup-Diskette
Screen-Editor für C128 (Pascal 2.0) in der Syntax für ASSEMBLER V4
1541 Format      25.9.1986

W4 konvertiert

W5.D71
SYSTEM.DISK
System-Diskette (Pascal 2.0)
System-Dateien, Beispiele / Bilder und Listings für den Buchtext
1571 Format       8.7.1989

W5 konvertiert

W6.D64
SOURCE.P
Quelltexte Pascal VC-20
(verwendbar für C64 und C128)
1541 Format

W6 konvertiert

W7.D64
TEST.P
Quelltexte Pascal C128 längere Programmbeispiele im Buch für den C128
1541 Format

W7 konvertiert

W8.D71
XPASCAL128
Pascal 2.0: Quelltexte und Fehlermeldungsdatei
1571 Format       8.7.1989

W8 konvertiert

W9.D64
MCODE-NEU
Pascal 2.0: P-Code Interpreter und Scanner (Assembler V4)
1541 Format       6.9.1986

W9 konvertiert

WA.D71
BACK.COMP128
Backup-Diskette (Pascal 2.0)
Quelltext, P-Code Interpreter,Scanner, SYSTEM.P und M-Code (keine Fehlertexte)
1571 Format       6.9.1986

WA konvertiert

Referenzen

[1] Niklaus Wirth: Compilerbau, Teubner, 1981.

[2] Florian Matthes: Pascal mit dem C64: Compiler-Beschreibung, Pascal-Kurs, Tips und Tricks für Fortgeschrittene, ISBN 3-89090-222-7, Markt&Technik-Verlag, Haar bei München, 1986, 215 S. : graph. Darst. ; 24 cm + 1 Diskette.

[3] Florian Matthes: Pascal mit dem C128: Compiler-Beschreibung, Pascal-Kurs, Tips und Tricks für Fortgeschrittene, ISBN 3-89090-386-X, Markt&Technik-Verlag, Haar bei München, 1987, 355 S. ; 24 cm + 1 Diskette. (HTML-Version)

[4] Niklaus Wirth: Algorithmen und Datenstrukturen, LAMM Studienbücher Informatik, Teubner, 1979.