[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1 Externe Dateien und Formate

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.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 Die Hardware-Daten

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] [ ? ]

1.2 Die Library-Offsets

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] [ ? ]

1.3 Die AmigaGuide-Context-Nodes

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] [ ? ]

1.4 Die Action-Anweisungen

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] [ ? ]

About This Document

This document was generated on February 6, 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 February 6, 2023 using texi2html 5.0.