Das Schneider CPC Systembuch

Einleitung

BASIC

Die erste Programmiersprache, die Sie auf dem Schneider CPC kennenlernen werden, ist Einleitung: BASIC
Anhang: Basic
BASIC
. Dabei bedeutet 'Einleitung: BASIC
Anhang: Basic
BASIC
' soviel wie grundlegend, am einfachsten. Gleichzeitig ist es aber auch die Abkürzung für:

beginners all-purpose symbolic instruction code

Auf Deutsch etwa: Symbolische Programmiersprache für Anfänger und alle Zwecke.

Diese Sprache soll also einfach sein, für Anfänger geeignet. Gleichzeitig aber keine 'Spielsprache', mit der man nichts anfangen kann. Beides ist auch tatsächlich gegeben. Das 'symbolisch' deutet auf einen weiteren, leider nur für Englisch-kundige erfreulichen Aspekt hin: Die Befehlsworte in Einleitung: BASIC
Anhang: Basic
BASIC
entstammen der englischen Umgangssprache und bezeichnen zum Teil sehr treffend, was die einzelnen Befehle bewirken sollen.

Das 'Einleitung: BASIC
Anhang: Basic
BASIC
' im Schneider CPC ist ein Interpreter. wie die meisten anderen BASIC-Implementierungen auch. Ein Interpreter behandelt das Basicprogramm wie einen Text: Er liest ihn und veranlasst entsprechende Opertionen. Dieses Verfahren ist vergleichsweise langsam, weil Einleitung: BASIC
Anhang: Basic
BASIC
immer erst den Sinn einer Anweisung entschluesseln muss, bevor es notwendige Die Fließkomma-Routinen: OperationenOperationen veranlassen kann.

Außerdem müssen die Referenzen während des Programmlaufs ausgewertet werden. Einen Sprung zu einer bestimmten Zeilennummer ist nur eine Referenz zu dieser Zeile. Wo aber im Speicher steht sie? Einleitung: BASIC
Anhang: Basic
BASIC
muss suchen. Genauso ergeht es auch den Unterprogramme: VariablenVariablen: Der Name ist angegeben, aber wo im Speicher ist die Unterprogramme: VariablenVariable tatsächlich abgelegt?

Ein wesentlicher Teil eines Interpreter-Lebens besteht so aus Suchen, Suchen und noch 'mal Suchen.

Bedeutend schneller sind da Compiler. Bei dieser 'Technologie' wird der gesamte Programmtext nur einmal interpretiert und ein entsprechendes Maschinencode-Programm erzeugt. Das so gewonnene Programm kann dann von der Die ICs im Überblick: Die CPU Z80
Das Innenleben der CPC-Rechner: Die CPU Z80
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80
CPU
direkt ausgeführt werden. Der Nachteil dabei ist, dass man beim Programmlauf nicht mehr den Programmtext im Speicher hat. Die Fehlerbehandlung ist wesentlich erschwert. Solche Compilate sind meist auch viel länger als die Textdatei, aus der sie erzeugt wurden. Bei längeren Programmen kann da schon 'mal der Speicherplatz knapp werden.

Außerdem muss man nach der kleinsten Änderung im Programmtext das gesamte Programm neu compilieren und den so gewonnenen Maschinencode wieder neu einladen und starten. Vor allem für Anfänger ist das zu umständlich und erfordert auch bereits zuviel Kenntnisse darüber, wie ein Programm überhaupt abgearbeitet wird.

Beim Locomotive Einleitung: BASIC
Anhang: Basic
Basic
, also dem 'Dialekt', der im Schneider CPC eingebaut ist, werden die Vorzüge eines Interpreters mit denen eines Compilers verknüpft. Nach außen hin hat man zwar einen waschechten Interpreter. Für den Anwender unsichtbar compiliert er aber auch ein wenig: Die Adressen von Sprungzielen und Unterprogramme: VariablenVariablen werden bei jedem Durchlauf nämlich nur noch einmal bestimmt. Wird eine Anweisung mehr als nur einmal durchlaufen, findet der Interpreter beim nächsten Mal bereits die richtige Adresse vor, und muss nicht mehr lange suchen. Klar, dass er dadurch schneller wird. Locomotive Einleitung: BASIC
Anhang: Basic
Basic
gehört deshalb mit zum Schnellsten, was an Basic-Interpretern auf einem Home Computer läuft.

Es ist aber nicht nur beeindruckend, wie schnell Locomotive Einleitung: BASIC
Anhang: Basic
Basic
arbeitet, sondern auch die lange Trees: ListenListe an Befehlen, die es versteht. Der Schneider CPC hat ein sehr ausgefeiltes Betriebssystem, und Locomotive Einleitung: BASIC
Anhang: Basic
Basic
unterstuetzt fast alle Aspekte davon.

Die Eingaben von der Tastatur können in jeder nur denkbaren Form verarbeitet werden. Man kann Erklärung der Anschlussbelegung: Testtesten, ob eine spezielle Taste gedrückt ist. Man kann aber auch Zeichen von der Tastatur 'abholen', wobei man sich nicht mehr um die Tastenbelegung zu kümmern brauch. Außerdem kann man mit INPUT und LINE INPUT den Zeileneditor für einfache Eingaben benutzen. Die Tastenbelegung ist in jeder Beziehung frei definierbar. Ebenso die Die Tastatur: ErweiterungszeichenErweiterungszeichen, mit denen man auf Tastendruck ein ganzes Wort oder noch mehr erhält.

Auf dem Bildschirm kann man in jedem Die 3 verschiedenen Betriebsarten der PIO 8255: Modus 0
Die 3 verschiedenen Betriebsarten der PIO 8255: Modus 1
Die 3 verschiedenen Betriebsarten der PIO 8255: Modus 2
Modus
arbeiten (im Gegensatz zu Einleitung: CP/MCP/M oder Einleitung: LOGO
Übergabe von Argumenten und Ergebnissen: LOGO:
Logo
).

Man kann gleichzeitig in acht Textfenstern Text ausgeben. Dabei sind Textfenster Ausschnitte aus dem Bildschirm, die sich fast wieder wie kleine Bildschirme verhalten. Auch der Grafikausgabe ist ein Die Text-VDU: FensterFenster zugeordnet.

Text kann in verschiedenen Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farben
ausgegeben werden, wobei sowohl die Vordergrund- als auch die Hintergrundfarbe wählbar ist. Zusätzlich gibt es den Transparentmodus, bei dem nur der Vordergrund, also die Punkte des Buchstabens selbst gezeichnet werden. Der Hintergrund bleibt dabei unverändert. Als Bonbon können Texte sogar an jeder beliebigen Grafikposition ausgegeben werden. Garbage Collection: ... beim CPC 664 und 6128Beim CPC 664 und 6128 ist es auch möglich, Buchstaben wieder vom Bildschirm zu lesen.

Zur Erstellung von Grafiken stehen Befehle zur Verfügung, die Punkte setzen oder ganze Linien zeichnen, in jeder nur möglichen Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farbe
und mit verschiedenen logischen Verknüpfungen mit der alten Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farbe
der übermalten Punkte. Bei den CPCs 664 und 6128 wurden die Grafikfähigkeiten sogar noch erheblich erweitert: Hier sind auch jetzt auch gestrichelte Linien möglich und eine schnelle Ausmal-Routine wurde implementiert.

Alle Die Fließkomma-Routinen: FunktionenFunktionen der Tonausgabe werden unterstuetzt: Drei Kanäle, Rauschen, je 15 Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Hüllkurven für Frequenz und Amplitude, Rendevous- und Interrupt-Technik.

Gerade die Interrupt-Technik wurde auch für normale Unterbrechungen voll übernommen: Es gibt 4 interne Uhren, die nach einer einstellbaren Zeit eine Unterbrechung des Laufenden Programms auslösen und ein Grundlagen: UnterprogrammeUnterprogramm ausführen. Diese Timer sind dabei mit AFTER für einen einmaligen Aufruf, mit EVERY aber auch für ständig wiederholte Unterbrechungen programmierbar.

Weitere Sonderfälle können zu Unterbrechungen führen: Der Linien-Algorithmus: Fehler 3Fehler sind mit ON ERROR GOTO in eigenen Routinen abfangbar, außer den Diskettenfehlern Garbage Collection: ... beim CPC 464beim CPC 464. Auch ein Druck auf die ESC-Taste (Break) kann zum Bearbeiten eines dafür vorgesehenen Grundlagen: UnterprogrammeUnterprogramms führen. Auch hier tanzt der 464 wieder unangenehm aus der Reihe: Bei ihm sind Breaks Breaks während eines INPUTs oder LINE INPUTs nicht abfangbar.

Zur Fehlersuche stehen die Befehle TRON und TROFF zur Verfügung. Nach TRON werden immer die Zeilennummern der gerade bearbeiteten Zeile im Die Text-VDU: FensterFenster 0 ausgegeben. Leider ist diese Ausgabe nicht so ohne weiteres zu einem anderen Die Text-VDU: FensterFenster oder gar dem Drucker umzuleiten. Die selben Probleme hat man beim Ausgeben des Inhaltsverzeichnisses von Disketten oder Kassetten.

Auch größere Programmpakete können auf dem CPC entwickelt werden: Grundlagen: UnterprogrammeUnterprogramme sind mit Datenspeicherung und Datenstrukturen: ChainsCHAIN oder Datenspeicherung und Datenstrukturen: ChainsCHAIN MERGE jederzeit nachladbar.

Bei den Unterprogramme: VariablenVariablen werden drei verschiedene Typen unterschieden: Integer (kleine, ganze Zahlen), Datentypen: RealReal (große und Kommazahlen) und Datentypen: StringsStrings (Zeichenketten). Für die Variablennamen sind dabei allgemeine Einstellungen möglich, um bestimmten Variablennamen aufgrund ihres ersten Buchstabens einem Typ zuzuordnen.

Der Typ lässt sich aber auch noch explizit durch einen Postfix, also einen AnhangAnhang am Variablennamen bestimmen: '!' für Datentypen: RealReal, '%' für Integer und '$' für Datentypen: StringsStrings.

Diese Regelungen gelten übrigens auch für die selbstdefinierbaren Die Fließkomma-Routinen: FunktionenFunktionen.

Zur Erstellung eines Programms steht eine Mischung aus Zeilen- und Bildschirmeditor zur Verfügung. Ein Text (im Normalfall eine Programmzeile) kann bis zu 255 Zeichen lang sein. Mit der COPY-Taste kann man Buchstaben von jeder Stelle des aktiven Textfensters in die Programmzeile übernehmen. Das ist sehr praktisch, wenn man größere Umstellungen innerhalb des Programmes vornehmen will.

Zur Textaufbereitung stehen außerdem Befehle wie Editor: BD3A / BD5B / BD5E: EDITEDIT, AUTO, Trees: ListenLIST und RENUM zur Verfügung. Mit Editor: BD3A / BD5B / BD5E: EDITEDIT übernimmt man eine existierende Programmzeile in den Zeileneditor, kann sie dort bearbeiten und wieder abspeichern. AUTO erspart das Eintippen der Zeilennummern, die nun automatisch erzeugt werden. Mit Trees: ListenLIST kann man sich den aktuellen Inhalt der Programmdatei anzeigen lassen: Auf dem Bildschirm, Drucker oder (manchmal sehr nützlich) auch in eine Datei auf Kassette oder Diskette hinein. Mit RENUM schließlich kann man die Zeilennummern wieder in ein gleichmäßiges Raster bringen. Das ist zum Beispiel sinnvoll, wenn durch ständiges Einfügen an einer Stelle keine Zeilennummern mehr verfügbar sind.

Auch eine komfortable Schnittstelle zu Maschinencode-Programmen wurde dankbarerweise ins Einleitung: BASIC
Anhang: Basic
Basic
integriert: Mit Maschinencode über HIMEM: CALLCALL können Maschinencode-Routinen mit einer bekannten Anfangsadresse aufgerufen werden. Dabei können bis zu 32 Zahlenwerte als Argumente an den Maschinencode übergeben werden.

Eine spezielle Form der Maschinenprogramme sind die RSX-Befehlserweiterungen. Diese Programme sind meist zu Mehreren in Programm-Paketen zusammengefasst und müssen initialisiert werden. Dann stehen Sie dem Anwender aber mit einem Namen zur Verfügung. In Einleitung: BASIC
Anhang: Basic
Basic
werden solche RSX-Namen mit einem vorangestellten senkrechten Strich '|' gekennzeichnet. Auch hier können wieder bis zu 32 Zahlen an das Programm übergeben werden. In der Praxis wird man auf solche Maschinencode über HIMEM: RSXRSXes zuerst beim Diskettenbetriebssystem Die Abteilungen des Betriebssystems: AmsdosAMSDOS stoßen. Das stellt seine zusätzlichen Die Fließkomma-Routinen: FunktionenFunktionen nämlich alle über RSX-Erweiterungen zur Verfügung.

Valid HTML   Valid CSS