# Anhang

## 1. Die Dateien des Software-Experiments

Die folgende Liste gibt darüber Auskunft, in welchem Kapitel die Dateien auf der Software-Experiment-Diskette beschrieben werden und welche Bedeutung sie haben:

Dateiname | Kapitel | Bedeutung
--- | --- | ---
KOMFOL.BAS KOMGRA.BAS | 1 | Demonstriert komplexe Zahlenfolgen Erzeugt komplexe Grafiken (Fraktale)
REPRO.BAS LIFE.BAS | 2 | Erzeugt mehrfarbige Reproduktionsmuster Game of Life, Beispiel für Zellautomaten
OEKOEXP.BAS OEKOERW1 (*) OEKOERW2 (*) OEKOERW3 (*) | 3 | Hauptprogramm für das Ökologie-Experiment Erweiterungen zum Öko-Experiment (MERGE)
GOBANG.BAS | 4 | Programm für das Gobang-Brettspiel
KALAHA.BAS ZUGCOMV1 (*) ZUGKOMV2 (*) | 5 | Programm für das Kalaha-Bohnenspiel Experimentalversionen der Zugberechnung in Basic (MERGE)
MSCHACH.BAS BRUDER (*) | 6 | Lernfähiges Mini-Schachprogramm Modifikation für Mini-Schach (MERGE)
WMASTER.BAS LISTE4.DAT LISTE5.DAT | 7 | Wordmaster Wortrate-Programm Wortlisten für Wordmaster (4 u. 5-buchstabige Hauptwörter)
WKETTE1.BAS WKETTE2.BAS KETTEV2 | 8 | Wortkettenprogramm 1. Version Lader für Wortkettenprogramm 2. Version Maschinencode, wird von WKETTE2.BAS nachgeladen.
MORETTI.BAS (**) | 9 | Entwicklungshilfesimulation
ZAUTOMAT.BAS SOUND1.BAS SOUND2.BAS TRIANGLE.BAS | 10 | Demonstration eines eindimensionalen Zellautomaten Demoprogramme für neue Formen der Klangerzeugung Grafische Struktur des Pascalschen Dreiecks
EMU.BAS EMU.BIN | Anh. | Ladeprogramm für den 664/6128-Emulator Maschinencode für den Emulator

(*) Um einen Fehler in der MERGE-Funktion des CPC 464 zu umgehen, sind alle BasicProgrammteile, die nachträglich dazugeladen werden, im ASCII-Formt gespeichert. Falls Sie auf dem CPC 464 diese Dateien auf eine andere Diskette kopieren wollen, müssen Sie sie deshalb mit SAVE "Dateiname",A neu abspeichern. Auf dem CPC 664/6128 hat das Aufzeichnungsformat keine Bedeutung.

(**) Das Programm MORETTI.BAS läuft auf dem CPC 464 nur, wenn vorher der 664/6128Emulator mit RUN "EMU" installiert wurde. Um eine einwandfreie Zusammenarbeit mit dem Emulator zu gewährleisten, wurde das Programm im ASCII-Format abgespeichert, woraus eine relativ lange Ladezeit resultiert. Es ist aber möglich, das Programm normal (d.h. ohne die A-Option) neu abzuspeichern, worauf es schneller geladen wird, in dieser Form jedoch nur auf Ihrem Rechnertyp lauffähig ist.

## 2. Der 664/6128-Emulator für den CPC 464

Der Emulator ermöglicht es, den erweiterten Befehlssatz des Locomotive-Basic 1.1 auch auf dem CPC 464 zu benutzen. Das Programm besteht aus zwei Teilen: Durch den Start von EMU.BAS wird das Maschinenprogramm EMU.BIN in den Basic-Interpreter des CPC 464 eingehängt und sorgt für die Behandlung der neuen Befehle. Bevor Sie den Emulator mit RUN "EMU" installieren, sollten Sie den Rechner mit CTRL-SHIFT-ESC in den Einschaltzustand versetzen! Nach kurzer Ladezeit erscheint die Meldung BASIC 1.1 installiert auf dem Bildschirm. Der Emulator bleibt bis zum nächsten Zurücksetzen oder Ausschalten des Rechners aktiv.

Nahezu alle für den CPC 664/6128 geschriebenen Basic-Programme laufen mit Hilfe des Emulators auf dem CPC 464. Probleme können sich jedoch ergeben, wenn die Programme einen Maschinencode-Anteil enthalten, der den gleichen Speicherbereich wie der Emulator benutzt (ab &A200). Weiterhin löst der Befehl CLEAR INPUT in einem auf dem 664/6128 geschriebenen Programm trotz Emulator auf dem CPC 464 einen Syntax Error aus, bei dem wie gewohnt die entsprechende Zeile auf dem Bildschirm angezeigt wird. Drücken Sie in diesem Fall <ENTER>, um die Zeile unverändert wieder einzugeben, und starten Sie das Programm neu. Der Emulator sorgt automatisch für eine Anpassung. Dieses Problem tritt nicht auf, wenn das 664/6128-Programm mit SAVE "Name",A im ASCII-Format abgespeichert wurde.

Hier nun die Liste der neuen Kommandos:

CLEAR INPUT

Löscht den Tastaturpuffer und verhindert, daß während eines Programmablaufs eingegebene Zeichen ungewollt durch INPUT oder INKEY$ übernommen werden.

COPYCHR$(#<window>)

Diese Funktion gibt das Zeichen an der aktuellen Cursorposition im angegeben Textfenster zurück.

CURSOR <Schalterl>, <Schalter2>

Schaltet den Cursor während eines Programmablaufs aus oder ein. Die Wirkung der Schalter beschreibt die folgende Tabelle:

CURSOR 0,0 aus/aus bei INPUT
CURSOR 0,1 aus/ein bei INPUT
CURSOR 1,0 aus/aus bei INPUT
CURSOR 1,1 ein/ein bei INPUT

DEC$ <numerischer Ausdruck>, <Formatstring>

Gibt den Wert des angegebenen numerischen Ausdrucks als formatierte Zeichenkette zurück. Die Angabe des Formats erfolgt wie bei PRINT USING (siehe CPC Anleitungsbuch). Beispiel:

    a$ = DEC$(PI,"#.###"): PRINT a$

Die Funktion ist eigentlich schon auf dem CPC 464 vorhanden, verlangt aber aufgrund eines Fehlers im Interpreter immer zwei offene Klammern nach DEC$.

FILL <Farbstift>

Füllt eine beliebig umrandete Fläche mit der angegebenen Farbe. Als Umrandung oder Begrenzung gelten nur Linien, die mit der aktuellen Grafikfarbe (GRAPHICS PEN) oder der Füllfarbe gezeichnet wurden. Der Füllvorgang beginnt an der aktuellen Position des Grafikcursors, der also vorher mit MOVE in die Fläche gesetzt werden muß.

FRAME

Wartet auf den Strahlrücklauf des Monitors und erleichtert damit die Programierung flackerfreier animierter Grafik.

GRAPHICS PAPER <Farbstift>

Bestimmt die Farbe des Grafikhintergrundes bei Textausgaben auf Grafikcursorposition (nach TAG) und bei Anwendung des MASKBefehls.

GRAPHICS PEN <Farbstift>, <Hintergrund>

Wählt die Schreibfarbe und den Hintergrundmodus für Grafik. Der zweite optionale Parameter hat folgende Bedeutung:

0 = normal überschreiben, 1 = transparent.

MASK <Bitmaske>

Eine Bitmaske ist ein Wert von 0...255, der den Status von jeweils acht benachbarten Bildpunkten beim Zeichnen einer Linie bestimmt. Damit können beliebig unterbrochene beziehungsweise gestrichelte Linien erzeugt werden.

PEN <#window>, <Farbstift>, <Hintergrund>

Wie beim CPC 464, nur kann jetzt mit dem letzten Parameter der Hintergrundmodus für Textausgaben bestimmt werden (0= normal, l= transparent). Von den letzten beiden Werten kann wahlweise einer entfallen.

MERGE und CHAIN MERGE "Dateiname"

Diese Kommandos funktionieren jetzt auch bei Diskettenbetrieb einwandfrei.

Parameterübergabe bei CALL und RSX-Befehlen:

Beim CALL-Befehl und bei RSX-Kommandos können Strings direkt ohne den Umweg über den Klammeraffen (@) übergeben werden. Beispiel: |ERA, "TESTPROG. BAK"

Zusätzliche Grafikparameter

:

- Alle Grafikbefehle werden auf das Format KOMMANDO x, y, Farbstift, Schreibmodus erweitert. Das gilt für die Befehle MOVE, MOVER, PLOT, PLOTR, DRAW, DRAWR. Der optionale Parameter Schreibmodus gibt an, wie die neuen Bildpunkte mit dem Hintergrund verknüpft werden:

0 = Überschreiben, 1 = XOR-Modus, 2 = AND-Modus, 3 = OR-Modus