[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Viele Daten, die in früheren Version von ‘RSYS’ noch im Programm eingebaut waren, wurden in externe Dateien verlagert. Dabei wurde zum Einlesen dieser Daten ein einheitliches Format verwendet, das im folgenden beschrieben wird.
Jedes Datum in diesen Dateien hat den folgenden Aufbau
[keyword] = [keyvalue] oder [keyword] oder [keyvalue] ^ | Spalte 1
Das Schlüsselword END
legt das Ende einer Datengruppe fest. Die
Zeichen <#> und <;> leiten Kommentare ein, wenn sie als erstes
Zeichen in einer Zeile auftreten. Alle dem Kommentarzeichen nachfolgenden
Zeichen werden ignoriert. Die keywords
müssen in der
ersten Spalte einer Datei erscheinen. Leerzeilen werden, wie Kommentare
überlesen.
Im folgenden werden alle externen Dateien mit ihrem Aufbau besprochen.
1.1 Die Hardware-Daten | ||
1.2 Die Library-Offsets | ||
1.3 Die AmigaGuide-Context-Nodes | ||
1.4 Die Action-Anweisungen |
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Die Datei mit den Produktdaten hat generell folgenden Aufbau:
<Anzahl n der Firmennamen> <Firmenname 1> <Firmenname 2> [...] <Firmenname n-1> <unknown> <Anzahl m der Hardware-Daten> NAME = <Name des 1. Eintrags> MANUFACTURER = <Manufacturer-Nummer des 1. Eintrags> PRODUCT = <Product-Nummer des 1. Eintrags (-1, wenn unbekannt)> TYPE = <Typnummer des 1. Eintrags> COMPANY = <Nummer des Firmennamens (s.o.)> END NAME = <Name des 2. Eintrags> MANUFACTURER = <Manufacturer-Nummer des 2. Eintrags> PRODUCT = <Product-Nummer des 2. Eintrags (-1, wenn unbekannt)> TYPE = <Typnummer des 2. Eintrags> COMPANY = <Nummer des Firmennamens (s.o.)> END [...] NAME = <Name des m-1. Eintrags> MANUFACTURER = <Manufacturer-Nummer des m-1. Eintrags> PRODUCT = <Product-Nummer des m-1. Eintrags (-1, wenn unbekannt)> TYPE = <Typnummer des m-1. Eintrags> COMPANY = <Nummer des Firmennamens (s.o.)> END NAME = <unknown> MANUFACTURER = -1 PRODUCT = -1 TYPE = -1 COMPANY = n END ^ | Spalte 1
Hierbei ist zu beachten, daß der NAME
-Eintrag einen
Gruppenanfang bildet und die Kennung END
die Gruppe beendet. Die
Reihenfolge der Schlüsselwörter MANUFACTURER
, PRODUCT
,
TYPE
und COMPANY
ist innerhalb der Gruppe beliebig.
Weiterhin müssen mindestens soviele Einträge vorhaneden sein, wie die
jeweiligen Anzahlen zu Beginn angeben. Werden zuviele oder zuwenig
Gruppeneinträge angegeben, kann keine korrekte Zuordnung von ‘RSYS’
erfolgen. Hinter dem Schlüsselwort COMPANY
kommt die Nummer der
entsprechenden Firma, die am Anfang der Datei gelesen wird.
Der letzte Eintrag <unknown>
ist zwingend, ebenso wie mindestens
ein Hardware-Datensatz vorhanden sein muß! Eine minimale Datei hat also
folgenden Aufbau:
1 <unknown> 1 NAME = <unknown> MANUFACTURER = -1 PRODUCT = -1 TYPE = -1 COMPANY = 1 END
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Die Datei mit den Library-Offsets hat generell folgenden Aufbau:
LIBNAME = <Name der Library> TYP = <L oder D für Library oder Device> BASE = <Name der Library-Struktur> FUNCTION = <Name der Funktion>,<Offset der Funktion>,<1: public, 0:private> [...] END ^ | Spalte 1
Eine Datengruppe wird mit LIBNAME
eingeleitet, hinter welcher
der Name der aufgeführten Library folgt, und mit END
beendet.
Dazischen können in beliebiger Reihenfolge die Kennungen TYP
,
BASE
und FUNCTION
(dieser Typ beliebig oft) kommen.
Der Typ L
oder D
hinter dem Schlüsselwort TYPE
gibt an, ob es sich bei der Library um ein Device handelt. Bekanntlich
sind Device und Library strukturell fast identisch.
Die Kennung FUNCTION
beschreibt eine Library-Funktion mit dem
Namen, ihrem Offset und einer Zahl, die die Zugänglichkeit der Funktion
charakterisiert. Steht hier eine 0
, ist diese Funktion privat und
sollte von Programmierern nicht benutzt werden. Eine 1
markiert
diese Funktion als public
, also als öffentlich nutzbar.
Auch diese Datei sollte nicht leer sein. Eine Beispieldatei für das ‘console.device’ sieht z.B.~so aus:
LIBNAME = console.device TYP = D BASE = _ConsoleDevice FUNCTION = CDInputHandler,42,1 FUNCTION = RawKeyConvert,48,1 ##--- functions in V36 or higher (distributed as Release 2.0) --- FUNCTION = consolePrivate1,54,0 FUNCTION = consolePrivate2,60,0 FUNCTION = consolePrivate3,66,0 FUNCTION = consolePrivate4,72,0 END
Der Kommentar mit ##
ist in den FD-Files enthalten und wird
automatisch als Kommentar in die ‘RSYS’-Datei übernommen.
Die FD-Files, aus denen diese Datei erzeugt wird, sind von Commodore geschützt. Aus diesem Grunde habe ich ein kleines ‘AREXX’-Programm geschrieben (‘fd2rsys.rexx’), das diese Datei aus den Dateien im logischen Verzeichnis ‘FD:’ generiert. So kann ‘RSYS’ auch an neuere Betriebssystemversionen einfach angepaßt werden.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
‘RSYS’ besitzt einen Help
-Modus, der auf dem HyperText-System
‘AmigaGuide’ basiert. Damit die Hilfe den richtigen Menüpunkt in der
Dokumentdatei bei entsprechender Aktion anspringen kann, müssen diese
Nodes
vorher bekannt sein. Der Aufbau einer Context-Datei sieht
wie folgt aus:
"<Node 1>" "<Node 2>" [...] "<Node 127>"
Hierbei ist anzumerken, daß die Anführungsstriche sinnvollerweise mit angegeben werden sollten, da die Referenzen auch Leerzeichen enthalten können. Durch diese Leerzeichen erkennt das ‘AmigaGuide’-System einen Laufzeitfehler, da vermeintlich zwei Paramter übergeben wurden.
Die Anzahl 127 ist von ‘RSYS’ vorgegeben, womit der Aufbau der Datei also auch weitestgehend festgelegt ist. Damit die Hilfe korrekt referenziert werden kann, ist es von größter Wichtigkeit, daß die Anzahl der Daten und die Reihenfolge in der externen Datei erhalten bleibt!
Natürlich können Kommentare eingefügt werden, da sie von ‘RSYS’ überlesen werden. Damit die Daten zügig eingelesen werden können, sollten die Kommentare jedoch sparsam verwendet werden.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Das Format einer Action
-Anweisung sieht wie folgt aus:
<Filetyp-Nummer>#<Filetyp-Beschreibung>#<Aktionsname>#<Befehl>#<W oder C>#
Die <Filetyp-Nummer>
ist vorgeschrieben, ebenso wie die
<Filetyp-Beschreibung>
. Der <Aktionsname>
, der
<Befehl>
und die Kennung <W>
oder <C>
ist frei wählbar.
Steht als <Aktionsname>
die Zeichenkette NO ACTION
, so wird
keine Aktion ausgelöst, wenn der entsprechende Eintrag angeklickt wurde.
Der <Befehl>
sollte ein gültiger CLI-Befehl sein. Wird hinten die
Kennung W
angegeben, bleibt das ListView-Fenster offen und weitere
Aktionen können gestartet werden. Wird die Kennung C
für
Continue
angegeben, wird nur eine Aktion ausgeführt und das
Aktionsfenster schließt sich nach dieser Aktion. Hierzu ein Beispiel:
Für LHA-Archive existieren folgende Einträge:
39#LHArc archive#Archiv listen#OwnC:LZ l #W# 39#LHArc archive#Archiv testen#OwnC:LZ t #W#
In der Titelzeile erscheint der Eintrag LHArc archive
und in dem
ListView die Einträge Archiv listen
und Archiv testen
. Wird
der Eintrag Archiv listen
angeklickt, wird der Befehl ‘OwnC:LZ l <objektname>’
ausgeführt.
[Top] | [Contents] | [Index] | [ ? ] |
This document was generated on January 17, 2023 using texi2html 5.0.
The buttons in the navigation panels have the following meaning:
Button | Name | Go to | From 1.2.3 go to |
---|---|---|---|
[ << ] | FastBack | Beginning of this chapter or previous chapter | 1 |
[ < ] | Back | Previous section in reading order | 1.2.2 |
[ Up ] | Up | Up section | 1.2 |
[ > ] | Forward | Next section in reading order | 1.2.4 |
[ >> ] | FastForward | Next chapter | 2 |
[Top] | Top | Cover (top) of document | |
[Contents] | Contents | Table of contents | |
[Index] | Index | Index | |
[ ? ] | About | About (help) |
where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:
This document was generated on January 17, 2023 using texi2html 5.0.