--VB0 --OZ1 11 topaz.font --OZ2 18 Bocklin.font --OZ3 27 bocklin.font --DF titelb --FF31 --ZS2 --SA0 --PA --SA1 --ZS0 --FF21 DEFEND --DF titelc --FF31 --ZS1 --SA0 --PA --SA1 --ZS0 --FF21 DEFEND --DF titelchen --FF31 --ZS0 --PA --ZS0 --FF21 DEFEND --DF climode --FF00 --PA --FF21 DEFEND --FF31 --ZS3 --SA0 3.5 Konfigurierung --SA1 --ZS0 --FF21 CoreWars kann in weiten Grenzen auf die persönlichen Bedürfnisse des Benützers eingestellt werden. Einerseits können während der Laufzeit mit Hilfe von Menüfunktionen sehr viele Parameter des Programmes verändert und anschliessend als Standardwerte für den nächsten Programmstart auf Diskette gesichert werden; andererseits sind alle Programmtexte sowie die Anordnung und Namen der Menüfunktionen in Textdateien abgelegt, die ebenfalls bei jedem Programmstart eingelesen werden. CoreWars benötigt zu einer vollständigen Konfigurierung die folgenden Dateien: a) cw_text Alle Programmtexte (Promptdatei) b) cw_config Standardwerte für veränderbare Parameter (Konfigurationsdatei) c) cw_editmenu Definition der Menüs im Editor (Editormenüdatei) d) cw_mainmenu Definition der Menüs im Hauptprogramm (Hauptmenüdatei) e) cw_editor Einstellungsdatei des Editors (Editorkonfigurationsdatei) In der Anleitung werden immer die obigen Namen verwendet, um eine der Einstellungsdateien zu identifizieren. Trotzdem ist es möglich, die Namen der Dateien `a)' bis `e)' zu verändern, um sie so an verschiedenen Stellen im System deponieren zu können. Die Namen der Dateien unter ` a)' bis `d)' können auch mit Hilfe von Schlüsselwörtern beim Programmstart geändert werden: Siehe Beschreibung der Optionen im Abschnitt 3.6. --titelb 3.5.1 Startvorgang Unabhängig davon, ob CoreWars vom CLI oder von der Workbench aus gestartet wird, führt das Programm die folgenden Aktionen in der folgenden Reihenfolge aus: 1. Die Kommandozeilen- oder Workbenchargumente werden interpretiert und die angegebenen Namen bzw. Schalterstellungen anstelle der Standardwerte ver- wendet. Anschliessend werden die Environment Variablen (siehe Abschnitt 3.6.3) überprüft und eventuelle Einstellungen übernommen. Die Kommandozei- len- und Workbenchargumente sowie die Environment Variablen können die folgenden Schritte beeinflussen. 2. Die Promptdatei cw_text wird zuerst im aktuellen Verzeichnis (`cw_text'), dann im Hauptverzeichnis des Gerätes, in dem sich das aktuelle Verzeichnis befindet (`:cw_text'), und zuletzt im S-Verzeichnis (`s:cw_text') ge- sucht. Die erste so gefundene cw_text-Datei wird eingelesen und interpre- tiert. Unter Anderem können in dieser Datei auch die Namen und Verzeich- nisse der noch folgenden Einstellungsdateien verändert werden. 3. Die Konfigurationsdatei cw_config wird in drei in der Promptdatei verän- derbaren Verzeichnissen gesucht. Die im Programm voreingestellten Ver- zeichnisse entsprechen den unter 2) angeführten: `cw_config', `:cw_config' und `s:cwconfig'. 4. Die Hauptmenüdatei cw_mainmenu wird in drei in der Promptdatei veränder- baren Verzeichnissen gesucht. Im Programm sind die Verzeichnisnamen `cw_mainmenu', `:cw_mainmenu' und `s:cw_mainmenu' voreingestellt. Wenn die Hauptmenüdatei nicht gefunden wird, ist ein normaler Betrieb von CoreWars nicht möglich. Jeweils nach dem erfolglosen Durchsuchen der drei obigen Verzeichnisse erscheint eine Dialogbox, in der auf das Problem der feh- lenden Menüdateien hingewiesen wird. Während der Anzeige der Box können die erforderlichen Menüdateien über die Workbench oder das CLI in die durchsuchten Verzeichnisse kopiert werden. Anschliessend kann ein neuer Suchvorgang mit der Wahl des wiederholen-Gadgets in der Dialogbox gestar- tet werden. 5. Die Editormenüdatei wird analog zur Hauptmenüdatei in drei Verzeichnissen gesucht. Es ist möglich, CoreWars auch ohne Editormenüdatei laufen zu lassen, dann darf jedoch der Editor nicht benützt werden. Wenn die Prompt- und die Konfigurationsdatei gesucht, aber nicht gefunden wird, erfolgt eine codierte Fehlermeldung in das CLI-Fenster, von dem aus CoreWars gestartet wurde. Die Meldung wird für jedes geprüfte Verzeichnis ausgegeben, wenn z.B. die Promptdatei nur im S-Verzeichnis enthalten ist, werden für die beiden zuvor erfolglos durchsuchten Verzeichnisse `cw_text' und `:cw_text' zwei Fehlermeldungen ausgegeben. Die codierten Meldungen sind deshalb nötig, weil beim Einlesen der Promptdatei die Texte für die Meldungen noch nicht in der gewünschten Sprache vorhanden sind und weil beim Einlesen der Konfigurationsdatei das Standardausgabefenster von CoreWars noch nicht geöffnet ist. Alle anderen Fehlermeldungen, die beim Verarbeiten der Menüdateien möglich sind, werden im Klartext in das Standardausgabefenster ausgegeben (eine Beschreibung der Meldungen folgt im Abschnitt 3.5.5). --titelb 3.5.2 Funktionen zur Konfigurierung --titelc 3.5.2.1 Hauptprogramm --titelchen Hauptmenü lesen: H-501 Nach erfolgreichem Start von CoreWars kann eine Hauptmenüdatei erneut eingelesen werden. Der Name ist beliebig und wird durch die Dateiauswahlbox eingegeben. Wenn die Menüdatei erfolgreich gelesen werden kann, wird das gesamte Hauptmenü durch die Definitionen in der gelesenen Menüdatei ersetzt, bei einem Fehler bleibt das alte Hauptmenü erhalten. In der neuen Menüdatei sollte unbedingt die Funktion H-103 (`Verlassen') definiert werden, sonst kann CoreWars nicht mehr verlassen werden. --titelchen Editormenu lesen: H-502 Liest analog zur Funktion `Hauptmenü lesen' die Editormenüdatei ein. Sie wird wirksam, sobald vom Hauptmenü aus der Editor aufgerufen wird. Wie oben sollte in der Editormenüdatei unbedingt die Editorfunktion 109 (`Verlassen') definiert werden, weil sonst der Editor (und damit CoreWars) nicht verlassen werden kann. --titelchen Konfiguration lesen: H-503 Liest eine zuvor mit der Funktion 504 (`Konfiguration sichern') erzeugte Konfigurationsdatei ein. Der Name kann durch die Dateiauswahlbox eingegeben werden und ist beliebig. Konfigurationsdateien von verschiedenen CoreWars-Versionen sind zueinander `nicht' kompatibel. Um Dateien zu verwenden, die mit einer älteren Version von CoreWars erzeugt wurden, müssen diese zuvor mit dem in jeder neuen Version veröffentlichten Konvertierungsprogramm CWCONVERT' (Beschreibung siehe Anhang A, Utilities) übersetzt werden. --titelchen Konfiguration sichern: H-504 Erzeugt eine Konfigurationsdatei, die die aktuellen Einstellungen von CoreWars enthält. Der Name der Datei ist beliebig und kann mit der Dateiauswahlbox eingegeben werden. Wenn unter dem angegebenen Namen bereits eine Datei existiert, wird diese ohne Rückfrage durch die neue Konfigurationsdatei überschrieben (weitere Informationen zu dieser Datei befinden sich in Abschnitt 3.5.3.2). --titelchen Texte lesen: H-505 Liest eine neue Promptdatei mit den sprachspezifischen Programmtexten ein. Alle Texte, die in der neuen Datei nicht definiert werden, bleiben erhalten. Der Name der zu lesenden Promptdatei wird mit einer Dateiauswahlbox eingegeben und ist beliebig (weitere Informationen in Abschnitt 3.5.3.1). --titelc 3.5.2.2 Editor --titelchen Einstellung lesen: E-104 Liest die Editorkonfigurationsdatei mit den aktuellen Einstellungen des Editors ein. Der Name der zu lesenden Konfigurationsdatei wird mit einer Dateiauswahlbox eingegeben und ist beliebig. Beim ersten Start des Editors wird eine Editorkonfigurationsdatei mit einem voreingestellten Namen automatisch eingelesen (weitere Informationen in Abschnitt 3.5.3.4). --titelchen Einstellung sichern: E-105 Erzeugt eine Editorkonfigurationsdatei, die die aktuellen Einstellungen des Editors enthält. Der Name der Datei ist beliebig und kann mit einer Dateiauswahlbox eingegeben werden. Wenn unter dem angegebenen Namen bereits eine Datei existiert, wird diese ohne Rückfrage durch die neue Editorkonfigurationsdatei überschrieben (weitere Informationen im Abschnitt 3.5.3.4). --titelb 3.5.3 Beschreibung der Dateien --titelc 3.5.3.1 Promptdatei In der Promptdatei sind sämtliche Programmtexte definiert, die von der jeweiligen Landessprache abhängig sind. Unter anderem sind dort alle Fehlermeldungen und Eingabeaufforderungen, einige wichtige Pfadnamen, die Texte in den Dialog- und Dateiauswahlboxen und besondere Formatierungszeichen für die Ausgabe von Texten auf dem Drucker enthalten. Der Name der Promptdatei ist von CoreWars auf cw_text voreingestellt, was aber mit Hilfe der Optionen verändert werden kann (siehe `Optionen'). Die Promptdatei ist eine normale Textdatei und kann mit einem Editor vom Benützer verändert werden. Sie kann für jeden Programmtext eine Neudefinition enthalten, die dann anstelle des ursprünglichen, vom Programm voreingestellten Textes verwendet wird. So kann CoreWars von jedem Benützer an eine beliebige Landessprache angepasst werden, ohne dass das Programm selbst verändert werden muss. Eine Textdefinition nimmt in der Regel eine Zeile der Promptdatei ein und muss der folgenden Syntax genügen (für Erklärung der Notation siehe Einleitung zum Turniermodus): --SA0 Promptdatei := {Gebiet {Objekt.Zeile`<'Text`>'}}. --SA1 --titelchen Gebiet Das Schlüsselwort für den Programmteil, der von den anschliessenden Textdefinitionen beeinflusst wird. Gross- und Kleinschreibung werden nicht berücksichtigt und ein Schlüsselwort muss nicht am Anfang einer Zeile stehen. Die nachstehenden Schlüsselwörter können verwendet werden: PROMPT: Prompttexte des Hauptprogrammes und des Editors sowie allgemeine und nicht einem anderen Programmteil zuzuordnende Texte. MENU: Prompttexte des Menümoduls. TOURN: Dialogboxen des Turniers. MAIN: Dialogboxen des Hauptprogrammes und besondere Texte wie Pfadnamen etc. EDIT: Dialogboxen des Editors. MARS: Dialogboxen während eines Kampfes. ASM: Dialogboxen des Assemblers DBUG: Dialogboxen während Einzelschrittmodus. ERROR: Titel und Texte der Fehlermeldungen. --titelchen Objekt Die Nummer des Programmtextes innerhalb eines durch das aktuelle Schlüsselwort definierten Programmteiles. Die möglichen Objektnummern und die Bedeutung der Nummern kann den beiden Promptdateien cw_text und cw_text_e entnommen werden. Die Objektnummern müssen nicht aufsteigend geordnet oder vollständig sein, d.h. die Reihenfolge ist beliebig und es müssen nicht alle möglichen Objekte in einer Promptdatei verwendet werden. --titelchen Zeile Die Nummer der Zeile innerhalb des aktuellen Objektes. Ein Objekt mit mehreren Zeilen ist in der Regel der Titel und der Text einer Dialogbox, ein Objekt mit einer einzigen Zeile ist ein normaler Programmtext. Dialogboxen können bis zu zehn Zeilen Text und eine Titelzeile enthalten, wobei die Zeilennummer `1' für den Titel und die Nummern `2' bis `10' für den Text gedacht sind. Die Reihenfolge der Zeilennummern ist analog zu den Objektnummern beliebig. Die Höhe einer Dialogbox ergibt sich aus der höchsten Zeilennummer dieser Box, für die ein Text mit mindestens einem Zeichen (kann auch Leerzeichen sein) definiert wurde. Textzeilen eines Objektes, die nicht neu definiert werden, bleiben mit dem Standardtext belegt. --titelchen Text Der Text, der anstelle des Standardtextes in die durch `Objekt' und `Zeile' bestimmte Position aufgenommen wird. Ein Text verschwindet, wenn die Begrenzer `<' und `>' unmittelbar nacheinander geschrieben werden: `<>' = leere Zeichenkette. Die Zeichenkette selbst wird analog zur Zeichenkette in einer Turnierdatei interpretiert. Mehr Informationen dazu befinden sich unter `Turniermodus'. Das Zeichen `#' dient als Kommentarzeichen. Alle nach dem `#'-Zeichen auf derselben Zeile folgenden Zeichen werden überlesen, die nächste Zeile wird wieder normal verarbeitet. Das Kommentarzeichen darf nicht innerhalb einer Zeichenkette verwendet werden, weil sonst das Schlusszeichen der Zeichenkette (`>') nicht gefunden wird (Fehlermeldung). Zwischen allen syntaktisch selbständigen Symbolen können beliebig viele Zwischenräume, Leerzeilen und Kommentarzeichen stehen. Auf der CoreWars-Diskette befindet sich unter dem Namen cw_text die Promptdatei mit den vom Programm voreingestellten Texten. Die Datei mit den englischen Aequivalenten heisst cw_text_e. Es ist zur Erstellung von neuen Promptdateien in anderen Sprachen empfehlenswert, eine dieser beiden Dateien als Ausgangsbasis zu verwenden. --titelchen Beispiel: --FF00 PROMPT # Texte Hauptprogramm, Editor, allgemeine Texte. 1.1 # Kopieren-Gadget im Farbrequester 2.1 # Bereich-Gadget im Farbrequester 18.1 # Pfad der Editormenüdatei 12.1 <\14\233\0\73\0\110> # (1) MAIN 3.1 3.2 3.3 <> # Der Originaltext dieser Dialogbox besitzt drei Zeilen, # die dritte Zeile muss deshalb "gelöscht" werden. --FF21 (1) ANSI-Sequenz zum Löschen des Bildschirmes. Die Werte der Zahlen nach den `\'-Zeichen ergeben die Zeichen, die anstelle der `\'-Sequenzen verwendet werden (siehe `Turniermodus'). Wenn im obigen Beispiel für das Objekt `MAIN 3.3' die Zeichenkette `<>' verwendet würde, wäre die resultierende Dialogbox eine Leerzeile länger. Eine Leerzeile inmitten einer Dialogbox kann jedoch auch mit `<>' erzeugt werden, wenn für diese Box noch höhere Zeilennummern definiert sind. Leere Zeichenketten löschen eine Zeile der Box, eine Zeichenkette mit mindestens einem Zeichen ersetzt die betreffende Zeile mit dem angegebenen Text. Die Höhe der Box wird der grössten Zeilennummer, für die noch Text definiert wurde, angepasst (gilt auch für voreingestellte Texte). --titelc 3.5.3.2 Konfigurationsdatei Die aktuellen, vom Benützer beeinflussbaren Einstellungen von CoreWars können als Konfigurationsdatei gesichert und bei jedem weiteren Aufstarten des Programmes wieder eingelesen werden. So ist es möglich, sich einmal eine eigene Arbeitsumgebung zu gestalten und diese zur Wiederverwendung auf Diskette/Festplatte zu sichern. Der Name der Konfigurationsdatei ist von CoreWars auf cw_config voreingestellt, er kann jedoch mit Hilfe der Promptdatei und der Option CONFIG beliebig gewählt werden. Es ist mit den Menüfunktionen `Konfiguration lesen: H-503' und `Konfiguration sichern: H-504' möglich, die Konfigurationsdatei abzuspeichern bzw. eine neue Konfigurationsdatei einzulesen. Die folgenden Parameter werden in der Konfigurationsdatei gesichert: * Anzahl Zyklen eines Kampfes zwischen zwei Redcode Programmen. (Anzahl Zyklen: H-304) * Bildschirmfarben. (Farben einstellen: H-506) * Vollständige Pfade aller Dateiauswahlboxen. Einige Funktionen benützen dieselbe Dateiauswahlbox, z.B. greifen die Einlesefunktionen des Assemblers und des Editors auf dieselbe Dateiauswahlbox zu. * Endung der assemblierten Kampfprogramme, die automatisch an die Namen der Quelltexte gefügt wird, um die Namen der Kampfprogramme zu erhalten. (Programmendung: H-509) * Positionen aller möglichen Fenster während eines Kampfes: Grafikfenster schnell und normal, Einzelschrittfenster, Statusfenster und Tiny-Fenster. Verwendet werden die Koordinaten der Fenster, wie sie beim letzten Kampf eingestellt wurden (Kampf: H-203, Status: H-301, Einzelschritt: H-302, Grafik: H-303, Schnelle Grafik: H-307, Position schnelle Grafik: H-318) * Anzahl der auf einmal angezeigten Zeilen des Einzelschrittfensters während eines Kampfes. (Anzahl Zeilen Einzelschritt: H-315) * Grösstmögliche Anzahl der Zeilen eines Programmes, das vom Assembler noch verarbeitet werden kann. (Anzahl Zeilen Assembler: H-314) * Grösstmögliche Anzahl der Zeilen eines Quelltextes, der in den Editor ein- gelesen wird. (Anzahl Zeilen Editor: H-313) * Anzahl der Symbole, die in einem einzelnen Redcode Programm höchstens ver- wendet werden dürfen. (Anzahl Symbole: H-316) * Stellung der Schalter für die automatische Generierung von Icons für Quell- texte, assemblierte Kampfprogramme und Konfigurationsdateien sowie die Art der zu erzeugenden Icons (eigene oder Standardicons, siehe Abschnitt 3.5.4). Funktionen im Hauptmenü: H-510 H-515. * Auflösung des Bildschirmes, entweder Interlace oder die normale Auflösung des Workbench Bildschirmes. (Interlace: H-507) * Anzahl der Zyklen, die bei jedem Betätigen des Gadgets zum schnellen Vor- lauf im Einzelschrittfenster abgearbeitet werden. (Vorspulen: H-317) * Tilt-Bildschirm nach einem Laufzeitfehler während dem Kampf zwischen zwei Programmen ein- oder ausgeschaltet (Tilt nach Fehler: H-516) * Absolute Ladeadressen der beiden Kampfprogramme ein- oder ausgeschaltet und die dafür gewählten Ladeadressen. Der Status des Schalters der Menüfunktion `Absolut laden' wird dagegen in der Hauptmenüdatei voreingestellt, siehe Beschreibung der Menüdateien. (Absolut laden: H-319, Absolut setzen: H-320) * Anzahl der Tausendstelsekunden (ms), nach denen eine durch blosse Bewegung der Maus beendbare Dialogbox wirklich abgebrochen wird. (Verzögerung: H-517) * Anzahl der Fehler, nach denen ein Turnier automatisch abgebrochen wird. (Fehlergrenze: H-403)' Wie bereits in der Beschreibung der Funktion `Konfiguration lesen: 503' erwähnt wurde, sind die von verschiedenen CoreWars-Versionen erzeugten Konfigurationsdateien zueinander nicht kompatibel. Mit dem Hilfsprogramm CWCONVERT' können die Konfigurationsdateien aller Programmversionen in die jeweils neuste Version umgewandelt werden (Anhang A, Hilfsprogramme). --titelc 3.5.3.3 Haupt- und Editormenüdatei Die Anordnung und die Namen der Menüfunktionen im Hauptprogramm und im Editor können beliebig verändert werden. Die Definition der Anordnung und der Namen geschieht in den beiden Menüdateien cwmain und cwedit. Jede Menüfunktion besitzt eine eigene Funktionsnummer, mit der die Funkion identifiziert wird. Die Definition eines Menüpunktes in der Menüdatei besteht aus der Funktionsnummer, dem Namen der Funktion (beliebig) und einer Tastenkombination, über die die Funktion alternativ zum Weg über die Maus aufgerufen werden kann. Die Definitionen müssen dabei der folgenden Syntax genügen: --SA0 Menüdatei := {Menüpunkt}. Menüpunkt := {`:' `<'Text`>' Nummer `<'Kombinationtr`>' `<'Flags`>'. --SA1 --titelchen Doppelpunkte Die Anzahl der Doppelpunkte vor der Definition des Menüpunktes bestimmt die Verschachtelungstiefe dieses Menüpunktes. Kein Doppelpunkt bedeutet ein im Titelbalken erscheinendes Hauptmenü, ein Doppelpunkt ein Untermenü des letzten Hauptmenüs, zwei Doppelpunkte ein Untermenü des letzten Untermenüs. Mehr als zwei Doppelpunkte sind nicht möglich, weil das Betriebssystem des Amiga nicht mehr als ein Untermenü eines Menüpunktes erlaubt. Die Anzahl der Doppelpunkte muss kontinuierlich steigen, wobei die Position eines Untermenüs jeweils vom zuletzt definierten übergeordneten Menüpunkt abhängt. Daraus folgt, dass die Anzahl der Doppelpunkte kontinuierlich steigen muss: Ein Menü mit zwei Doppelpunkten ohne vorheriges Menü mit einem Doppelpunkt ist nicht möglich und führt zu einer Fehlermeldung während dem Einlesen. --titelchen Text Der Text innerhalb der spitzen Klammern wird als Name dieses Menüpunktes verwendet. Die grösstmögliche Länge eines Namens ist theoretisch 255 Zeichen, auf einem Amiga mit einer normalen Bildschirmbreite von 640 Pixel sollten die Namen aber nicht länger als 78 Zeichen werden. Der Text ändert nichts an der Bedeutung des betreffenden Menüpunktes, massgebend ist allein die verwendete Funktionsnummer. --titelchen Nummer Eine Zahl, die die Funktion dieses Menüpunktes identifiziert: Die Funktionsnummer. Bei allen Beschreibungen von Menüfunktionen in dieser Anleitung sind jeweils zum Namen auch die Funktionsnummern und die Umgebung (Editor oder Hauptprogramm, `E' oder `H') angegeben. Editor- und Hauptmenüfunktionen sind nicht zu verwechseln: Beispielsweise bedeutet die Funktionsnummer 103 im Editormenü `Abspeichern als' und im Hauptmenü `Verlassen'. --titelchen Kombination Eine Tastenkombination, durch die der betreffende Menüpunkt aufgerufen werden kann. Es gibt zwei Arten von Tastenkombinationen: Die normalen Amiga-`Shortcuts' (Abkürzung) mit der rechten Amigataste und einer normalen Taste sowie die Kombination einer Mehrfunktionstaste mit einer beliebigen anderen Taste. Wenn sich innerhalb der spitzen Klammern nur ein einzelner Buchstabe oder eine einzelne Zahl befindet, bedeutet dies den vom Amiga unterstützten `Shortcut': Die Kombination der rechten Amigataste mit der angegebenen Zeichentaste ruft den Menüpunkt auf, z.B. Amiga-k. Die Kombinationen mit einer Mehrfunktionstaste müssen immer aus zwei Wörtern innerhalb der spitzen Klammern bestehen. Das erste Wort bezeichnet die Mehrfunktionstaste, die gleichzeitig mit einer durch das zweite Wort bestimmten Taste gedrückt werden muss. Als Bezeichner für die Mehrfunktionstasten sind die in Tabelle 2 enthaltenen Schlüsselwörter möglich. Tabelle 2: Bezeichner für Mehrfunktionstasten. Kürzel Taste ----------------------------------------------------------------------------- esc Esc-Taste (Escape) in der linken oberen Ecke der Tastatur. Die Esc-Taste muss im Gegensatz zu den folgenden Sondertasten nicht gleichzeitig mit der zweiten Taste gedrückt werden, sondern kann auch vor der zweiten Taste betätigt und wieder losgelassen werden. shift Die linke oder rechte Zweitfunktions-Taste, mit der normalerweise die Grossbuchstaben aufgerufen werden. alt Die linke oder rechte Alt-Taste, die sich unmittelbar neben den Amiga-Tasten befinden. Sie werden normalerweise verwendet, um die alternative Tastaturbelegung zu aktivieren (Sonderzeichen). ctrl Die Ctrl-Taste (Control). Mit der Ctrl-Taste kann die zweite Taste nicht frei gewählt werden, da einige Kombinationen vom Betriebssystem abgefangen werden. null Nur die zweite Taste der Kombination muss gedrückt werden, um den Menüpunkt aufzurufen. So kann z.B. die Help-Taste belegt werden, ohne dass dazu eine der obigen Sondertasten verwendet werden muss. ----------------------------------------------------------------------------- Diese Sondertasten dürfen nur als erstes Wort der Kombination benützt werden. Für das zweite Wort sind alle Zahlen- und Buchstaben möglich, die jeweils für die so beschriftete Taste stehen. Als weitere Bezeichner sind diese Kürzel möglich:`up', `down', `left', `right' für die vier Cursortasten (oben, unten, links, rechts); `space' für die Leertaste; `tab' für die Tabulatortaste; `cr' für die Return-Taste (cr = carriage return); `help' für die Hilfetaste; `del' für die Del-Taste (delete); bs' für die Backspace-Taste; `f1'...`f10' für die zehn Funktionstasten. Alle Schlüsselwörter der Sondertasten sind in Tabelle 3 aufgeführt. Tabelle 3: Bezeichner für Sondertasten. Aus technischen Gründen nur in der gedruckten Anleitung vorhanden. --titelchen Flags Ein Buchstabe als Indikator für den Zustand des Menüs beim Einlesen: `m' muss bei allen Menüpunkten stehen, die weitere Untermenüs besitzen und selbst keine Funktion aufrufen. Bei diesen Menüpunkten muss die Funktionsnummer immer 0 sein, ein anderer Wert führt zu einer Fehlermeldung. `n' muss bei allen Menüpunkten stehen, die eine Funktion ausführen (die eigentlichen Menüpunkte). Die Funktionsnummer identifiziert in diesem Fall die Bedeutung des Menüpunktes wie oben beschrieben. Wenn es sich bei einem Menüpunkt um einen Schalter handelt, der zwei verschiedene Zustände einnehmen kann, so muss anstelle von `n' entweder `c' für den ausgeschalteten Zustand oder `C' für den eingeschalteten Zustand verwendet werden. Einige Menüpunkte werden zusätzlich durch die Konfigurationsdatei beeinflusst, z.B. werden die Zustände der Menüpunkte H-510 H-515 von der Konfigurationsdatei bestimmt (siehe Liste bei Beschreibung der Konfigurationsdatei). Die folgenden Schalter des Hauptmenüs werden nicht in die Konfigurationsdatei aufgenommen und müssen über die Menüdatei cwmain mit Hilfe des Feldes `Flags' (`c' oder `C') voreingestellt werden: Status: H-301 Einzelschritt: H-302 Grafik: H-303 Schnelle Grafik: H-304 Norm Mai 86: H-305 Norm November 89: H-306 Löschen vor Editor: H-308 Löschen vor Assembler: H-309 Löschen vor Kampf: H-310 Löschen vor Turnier: H-311 Absolut laden: H-319 Drucker: H-405 Wecker: H-406 --titelchen Beispiele für Menüdefinitionen: --FF00 000 <> # Menü im Titelbalken : 301 # Normaler Menüpunkt : 302 # Normaler Menüpunkt : 000 <> # Titel eines Untermenüs :: 308 # Normaler Untermenüpunkt :: 309 # Normaler Untermenüpunkt --FF21 --titelchen Beispiele für Tastenkombinationen: --FF00 Gleichzeitiges Betätigen der Shift- und einer Funktionstaste: z. B. shift-F3. Help-Taste: help. Rechte Amiga-Taste und Buchstabentaste `k': Amiga-k. Zuerst die Esc-Taste drücken, anschliessend die Help-Taste: esc - help. --FF21 --titelc 3.5.3.4 Editorkonfigurationsdatei Die Einstellungen des Editors werden in einer besonderen Datei gespeichert, der Editorkonfigurationsdatei. Sie wird jeweils beim ersten Aufrufen des Editors eingelesen und kann nur aus dem Editor gesichert werden. Die Namen, unter denen die Konfigurationsdatei beim automatischen Lesen gesucht wird, sind auf `cw_editor', `:cw_editor' und `s:cw_editor voreingestellt. In der Promptdatei können sie als Objekte `MAIN 79.1', `MAIN 80.1' und `MAIN 81.1' verändert werden. Beim Erstellen einer Editorkonfigurationsdatei mit dem Menüpunkt im Editor `Einstellung sichern: E-104' werden folgende Ein- stellungen berücksichtigt: * Belegung der Funktionstasten mit Floskeln. (Floskel Eingeben: E-602) * Anzahl Zeichen eines Tabulatorsprunges. (Tabulator einstellen: E-601) * Schalter für Unterscheidung von Gross- und Kleinbuchstaben bei den Such- funktionen. (Gross/klein: E-505) * Schalter für Glocke (Bildschirmblitz) am Zeilenende. (Glocke: E-604) --titelb 3.5.4 Automatische Icons Mit den Hauptmenüfunktionen 510...515 kann die Erzeugung von Icons für CoreWars-Dateien gesteuert werden. CoreWars verwendet drei verschiedene Icons, die für lesbare Texte (Quelltexte, Menüdateien, Promptdateien), für assemblierte Kampfprogramme und für nicht lesbare Konfigurationsdateien (Konfigurationsdatei) automatisch erzeugt werden. Die genannten Menüfunktionen haben folgende Bedeutung: --titelchen H-510, H-511 und H-512: Schaltet jeweils die automatische Erzeugung von Icons nach jedem Schreibzugriff auf Quelltexte (H-510), Programme (H-511) und Konfigura- tionsdateien (H-512) ein. --titelchen H-513, H-514 und H-515: Bestimmt das Aussehen der erzeugten Icons für Quelltexte (H-513), Programme (H-514) und Konfigurationsdateien (H-515). Wenn der betreffende Schalter gesetzt ist, werden die Icons mit den folgenden Pfadnamen als neue Icons verwendet: :Icons/Redcode.info --> Quelltexte :Icons/Executable.info --> Assemblierte Programme :Icons/Config.info --> Konfigurationsdateien Alle drei Icons müssen vom Typ PROJECT sein, der z.B. mit dem IconEd (Iconeditor) der Extras-Diskette verändert werden kann. Als Eintrag in das `DEFAULT TOOL' Feld der Icons sollte der Pfadname des `View'-Programmes verwendet werden, auf der ursprünglichen CoreWars-Diskette ist dies `:c/View'. Die obigen drei Iconnamen können in der Promptdatei cw_text als Objekte MAIN 45.1', MAIN 46.1' und MAIN 47.1' verändert werden. Wenn der jeweilige Schalter nicht gesetzt ist, werden die im Programm CoreWars voreingestellten Icons verwendet. In diesem Fall können die Einträge im `DEAULT TOOL' der drei Icons in der Promptdatei cw_text als Objekte MAIN 99.1', MAIN 100.1' und MAIN 101.1' verändert werden. Vom Programm voreingestellt ist für alle drei Icons der Eintrag `:c/View'. --titelb 3.5.5 Fehlermeldungen beim Aufstarten Wie eingangs dieses Kapitels erwähnt wurde, können beim Aufstarten Fehler- meldungen in codierter Form entstehen. Eine codierte Meldung besteht aus einer Zeichenkette innerhalb spitzen Klammern, einer Positionsangabe bestehend aus Zeilen- und Zeichennummer und einer Fehlernummer. Die Zeichenkette enthält in der Regel den Namen der Datei, während deren Bearbeitung der Fehler aufgetreten ist. Die Positionsangabe zeigt die Nummer der Zeile und die Nummer des Zeichens in dieser Zeile an, bei dem der Fehler bemerkt wurde. Eine codierte Fehlermeldung sieht also folgendermassen aus: --SA0 Zeile.Spalte-#Fehler --SA1 Die möglichen Fehlernummern sind: --titelchen Fehler Nr. 1 Die gesuchte Datei konnte unter dem als `Dateiname' angegebenen Namen nicht gefunden werden. Während des Startvorganges kann diese Meldung mehrmals erscheinen, weil jede der Einstellungsdateien an drei verschiedenen Stellen gesucht wird (die Suchpfade können in der Promptdatei verändert werden). --titelchen Fehler Nr. 3 Die Zeichenkette an der angegebenen Stelle in der Promptdatei `Dateiname' ist zu lange oder nicht mit der schliessenden spitzen Klammer `>' beendet. --titelchen Fehler Nr. 5 Unbekanntes Schlüsselwort. Das Schlüsselwort in der Promptdatei `Dateiname' an der angegebenen Position wird nicht als Schlüsselwort erkannt. --titelchen Fehler Nr. 9 Kein Speicher mehr. Der Fehler tritt auf, wenn zum Einlesen der in der Promptdatei `Dateiname' definierten Programmtexte nicht genügend Speicher zur Verfügung steht. --titelchen Fehler Nr. 10 In der Promptdatei `Dateiname' wird an der angegebenen Stelle ein Schlüsselwort erwartet (z.B. MAIN', EDIT', etc.). --titelchen Fehler Nr. 49 An der angegebenen Stelle in der Promptdatei `Dateiname' wird eine Zeichenkette innerhalb spitzer Klammern erwartet. --titelchen Fehler Nr. 50 Die Objektnummer an der angegebenen Stelle in der Promptdatei `Dateiname' ist syntaktisch falsch aufgebaut. --titelchen Fehler Nr. 51 Zu grosse oder zu kleine Objekt- oder Zeilennummer eines Programmtextes in der Promptdatei `Dateiname' an der angegebenen Stelle. --titelchen Fehler Nr. 52 Die Konfigurationsdatei `Dateiname' ist nicht mit der aktuellen Version von CoreWars kompatibel. Mit dem Programm `CWCONVERT' können alte Konfigurationsdateien in das aktuelle Format umgewandelt werden.