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

1 Die Utilities von RSys

In diesem Kapitel werden nun alle Utilities von ‘RSYS’ beschrieben. Alle Utilities können per HotKey aufgerufen werden. In späteren Versionen von ‘RSYS’ werden sie als eigenständige Tasks laufen, sodaß auch mehrere Utilities gleichzeitig laufen können.


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

1.1 CRC-Check - Berechnung von Checksummen

Mit dieser kleinen Utility kann die CRC-Checksumme von beliebigen Dateien berechnet werden. Entsprechend der Größe der Datei, dessen CRC berechnet werden soll, muß die CRC-16- oder die CRC-32-Methode gewählt werden.

Ich habe mehrere Programme, die CRC-Summen berechnen, zum Vergleich mit meinen Routinen gestartet. Alle Programme gaben für ein und dieselbe Datei andere Werte aus, als meine Routine. Ich suche den Fehler heute noch. Wenn sich also eine hilfreiche Seele finden sollte, die den Fehler findet, dieser ist eine Tüte Gummibärchen sicher :-)

Das erscheinende Window enthält mehrere Steuerelemente, die jetzt im einzelnen besprochen werden.

Text-Gadget: File

In diesem Text-Gadget wird der Dateiname der ausgewählten Datei, deren CRC-Summe berechnet werden soll, angezeigt.

Cycle-Gadget: Type

Mit diesem Gadget kann die zu verwendete Berechnungsart (CRC-16 oder CRC-32) gewählt werden.

Gadget: Select

Nach dem Anklicken dieses Gadgets erscheint ein FileRequester, der zu einer Eingabe einer Datei auffordert. Wird eine existierende Datei angewählt, wird sofort das File-Gadget aktualisiert.

Text-Gadget: CRC

In diesem Gadget wird die berechnete Checksumme in Hexadezimalschreibweise dargestellt.

Gadget: Compute

Das Gadget startet die Berechnung der CRC-Checksumme.


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

1.2 Crypt File - Verschluesseln von Dateien

Bei der Verschlüsselung der Daten werden zwei Methoden verwendet. Die ROT 13-Methode ist ein einfaches Verschlüsselungsverfahren, das die Buchstaben eines Textes einfach um 13 Zeichen nach vorn oder zurück gezählte Buchstaben macht. Dazu ein Beispiel: aus der Zeile

            "Das ist ein Satz, der 1 mal kodiert werden soll!"

34 68 97 115 32 105 115 116 32 101 105 110 32 83 97 116 122 44 32 100 101
114 32 49 32 109 97 108 32 107 111 100 105 101 114 116 32 119 101 114 100
101 110 32 115 111 108 108 33 34

macht das ROT 13-Verfahren

            "Qnf vfg rva Fngm, qre 1 zny xbqvreg jreqra fbyy!"

34 81 110 102 32 118 102 103 32 114 118 97 32 70 110 103 109 44 32 113 114
101 32 49 32 122 110 121 32 120 98 113 118 114 101 103 32 106 114 101 113
114 97 32 102 98 121 121 33 34

Darunter habe ich mal die entsprechenden ASCII-Kodierungen geschrieben. Es ist deutlich zu erkennen, daß nur Buchstaben kodiert (verschoben) werden. Interpunktionen und Zahlen werden nicht berücksichtigt.

Das zweite Verfahren basiert auf einen zellularen Automaten ähnlich dem der Spielsimulation ‘Life’. Dabei wird ein Ring von Zellen angelegt, der dann durch ein vorgegebenes Paßwort mit Nummern aufgefüllt wird. Mit diesen Nummern schließlich, wird eine Datei kodiert. Diese Methode stammt von der Verschlüsselungsmethode, die in Olaf "Olsen" Barthels ‘term’ zur Kodierung des Telefonbuches verwendet wird.

Anm.: Das Paßwort ist überaus WICHTIG! Es sollte erstens nie vergessen und zweitens ein echtes Paßwort verwendet werden. Das Paßwort-Gadget sollte also nie leer sein, da sonst die Methode zufällige Verschlüsselungen erzeugt und diese Datei nie wieder restauriert werden kann!

Im weiteren werden die Bedienungselemente des Crypt-Windows vorgestellt.

Gadget: Source/Select

Mit diesem Gadget kann mit einem FileRequester die Datei ausgewählt werden, die verschlüsselt werden soll. Der Dateiname kann direkt eingegeben werden oder über Select per FileRequester.

String-Gadget: Dest/Select

Mit diesem Gadget kann mit einem FileRequester die Datei ausgewählt werden, in der die verschlüsselten Daten abgespeichert werden sollen. Der Dateiname kann direkt eingegeben werden oder über Select per FileRequester.

String-Gadget: Passwd

Dieses String-Gadget enthält das Paßwort zum Verschlüsseln der Datei nach dem Verfahren mit dem zellularen Automaten. Das Paßwort ist zwingend erforderlich, jedoch wird die Korrektheit nicht überprüft. Wird also keins angegeben, so ist das eine Einbahnstraßen-Verschlüsselung! Die Datei kann nie wieder restauriert werden! Dieses Gadget ist abgeschaltet, falls die ROT13-Methode verwendet wird.

Cycle-Gadget: Crypt-ROT13

Hiermit kann die Methode gewählt werden, mit der die Daten verschlüsselt werden sollen.

Gadget: Encrypt

Mit diesem Gadget wird die Verschlüsselung der Daten gestartet.

Gadget: Decrypt

Mit diesem Gadget wird die Entschlüsselung der Daten gestartet.


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

1.3 List Hunks - Hunk-Struktur ermitteln

Es kommt immer mal vor, daß man sich für den Aufbau von Dateien beschäftigt. Ein wichtige Dateiart ist hierbei die ladbare oder ausführbare Datei. Diese Dateien können vom System in den Arbeitsspeicher geladen und direkt ausgeführt werden.

Damit dieses korrekt vom System durchgeführt werden kann, müssen die Dateien (Executables) einen bestimmten Aufbau besitzen, die sogenannte Hunk-Struktur. Eine Beschreibung dieser Hunk-Struktur würde an dieser Stelle zu weit führen. Hierbei sei auf weiterführende Literatur verwiesen, die diese Struktur in allen Einzelheiten erläutert.

Mit dieser Utility kann die Hunk-Struktur jeder ladbaren Datei ermittelt und angezeigt werden. Zu diesen Dateien gehören beispielsweise Libraries, Executables, Font-Dateien und Objekt-Bibliotheken. Desweiteren können auch Fehler in der Hunk-Struktur angezeigt werden. Bei einem eventuell aufgetretenen Fehler wird noch fünfmal versucht, einen korrekten Hunk-Eintrag zu finden, danach wird abgebrochen. Die Anzeige der Struktur kann jederzeit mit einem Klick auf das CloseGadget abgebrochen werden.

Nun zu der Beschreibung der einzelnen Gadgets.

ListView: ListView

In diesem ListView wird die Hunk-Struktur in übersichtlicher Form dargestellt. In der ersten Zeile stehen der Name der Datei und die Größe. Dannach kommt hierarchisch angeordnet der Aufbau der Datei. Hier als Beispiel das Hunk-Listing des Programms ‘RSYS’ selbst.

   File name : cprogs2:RSysDir/RSys
   File size : 140156

   hunk_header (o: $0,#0 t: $3F3,#1011)
     Count hunks : #3
     First hunk  : #0
     Last hunk   : #2
       Hunk #0, Length $1DE8C, #122508
       Hunk #1, Length $4D58, #19800
       Hunk #2, Length $4, #4

     hunk_code (o: $20,#32 t: $3E9,#1001)
       Size: $1DE8C, #122508 (MEMF_FAST)

       hunk_reloc32 (o: $1DEB4,#122548 t: $3EC,#1004)
        #17  offsets in Hunk #0
        #2   offsets in Hunk #1
     hunk_end (o: $1DF18,#122648 t: $3F2,#1010)

     hunk_data (o: $1DF1C,#122652 t: $3EA,#1002)
       Size: $365C, #13916 (MEMF_FAST)

       hunk_reloc32 (o: $21580,#136576 t: $3EC,#1004)
        #17  offsets in Hunk #1
        #868 offsets in Hunk #0
     hunk_end (o: $2236C,#140140 t: $3F2,#1010)

     hunk_bss (o: $22370,#140144 t: $3EB,#1003)
       Size: $4, #4 (MEMF_FAST)
     hunk_end (o: $22378,#140152 t: $3F2,#1010)
Gadget: Load

Es erscheint ein FileRequester, mit dem die ladbare Datei ausgewählt werden kann. Danach wird die Struktur analysiert und als Liste angezeigt.

Gadget: Save List

Mit einem FileRequester kann eine Datei ausgewählt werden, in der die Liste abgespeichert werden soll. Ist der Text-Formatter aktiviert, erscheint nach einer postiven Auswahl das Text-Formatter-Window.


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

1.4 Find File - Suche nach Dateien

Es gibt viele Programme, die das komfortable Suchen nach Dateien in Filesystemen unterstützen. Allerdings sind einige Programme mit Sonder- und Spezialfunktionen überladen, sodaß man schon eine Menge Hintergrundwissen einbringen muß, um die Programm überhaupt korrekt bedienen zu können. Dem habe ich hoffentlich Abhilfe schaffen können. Einfach, klein und fein macht diese Utility genau das, was sie soll: Dateien suchen.

Diese Utility arbeitet intensiv mit der Funktion ExAll() und den Funktionen MatchPattern()/MatchPatternNoCase() der DOS-Library. Dabei werden zuächst alle Dateien bestimmt und währenddessen untersucht, ob es sich jeweils um ein Verzeichnis oder eine Datei handelt. Trifft dann auch das Suchmuster zu, wird es in das ListView eingetragen.

Hier eine Beschreibung der Bedienungselemente.

ListView: Devices

In diesem ListView stehen alle angemeldeten Devices und Assigns. Wenn ein Eintrag angeklickt wird, erscheint der Eintrag in dem danebenliegenden ListView.

ListView: Selected Devices

Damit werden alle die Verzeichnisse angewählt auf denen Dateien gesucht werden sollen. Jeder Eintrag, der in den beiden ListViews angeklickt wird, erscheint automatisch in dem anderen ListView. Bei einem Eintrag mit einem ‘-’ davor handelt es sich um ein Assign. Ich habe diese Kennzeichnung deshalb so gewählt, weil ich dann entsprechend die Einträge sortieren kann. Erst die echten, dann die logischen Devices.

Cycle-Gadget: Case/No case

Hier kann gewählt werden, ob die Dateien case sensitive (Groß- und Kleinschreibung wird berücksichtigt) oder case insensitive (Groß- und Kleinschreibung werden nicht unterschieden) gesucht werden. Lautet z.B. das Suchmuster ‘Test.exe’, so wird mit No case sense sowohl die Datei ‘Test.exe’, als auch die Datei ‘TeSt.ExE’ gefunden.

Gadget: Sel all/Sel none

Damit können alle Einträge vom linken ListView in das rechte gebracht werden (Sel all: alle Verzeichnisse werden durchsucht) und umgekehrt (Sel none: Kein Verzeichnis soll durchsucht werden).

Gadget: Start/Stop

Wurden Verzeichnisse ausgewählt und im Pattern-Gadget ein Suchmuster eingegeben, so ist dieses Gadget anwählbar und startet die Suche in den Verzeichnissen des Selected Devices-ListViews. Wird das Gadget während eine Suche angeklickt, wird nach einer Sicherheitabfrage der Suchvorgang abgebrochen.

Gadget: Save found list

Nach der Anwahl erscheint ein Filerequester, in dem die Namen der gefundenen Dateien in eine auszuwählende Datei abgespeichert werden können. Ist der Text-Formatter aktiviert, erscheint nach einer postiven Auswahl das Text-Formatter-Window.

String-Gadget: Pattern

Hier kann ein Suchmuster (Dateiname oder Pattern) eingegeben werden. Hierbei gelten die üblichen Wildcards und Suchmuster des AmigaOS.

Cycle-Gadget: Dirs + Files/Files/Directories

Hier kann gewählt werden, was für ein Typ von Datei gefunden werden soll.

ListView: Found files/dirs

In diesem ListView erscheinen alle gefunden Einträge mit vollständiger Pfadbezeichnung. Diese Liste kann nach dem Anklicken des Save found list-Gadgets in eine Datei abgespeichert werden.


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

1.5 Format Disk - Format-Schnittstelle

Mit Format Disk wird eine kleine Schnittstelle zum ‘Format’-Befehl des AmigaDOS angeboten. Die einzelnen Gadgets werden im folgenden näher beschrieben.

String-Gadget: Format-Gadget/Select

In diesem Gadget steht der vollständige Pfadprogrammname des zu verwendenden ‘Format’-Befehls. Dieser lautet üblicherweise

SYS:System/Format’.

Mit dem nebenstehenden Select-Gadget kann das ‘Format’-Programm mit einem Filerequester ausgewählt werden.

ListView: Devices

In diesem ListView erscheinen alle formatierbaren Devices alphabetisch geordnet. Das ausgewählte Device wird dann im zugehörigen Textgadget darunter angezeigt.

Gadget: Disk label

Hier wird der Name des Mediums (voreingestellt und systemkonform ‘Empty’) eingetragen.

Cycle-Gadget: Icons/No Icons

Mit dieser Einstellung wird festgelegt, ob der ‘TrashCan’ samt Icon nach der Formatierung auf die frische Diskette kopiert werden soll.

Cycle-Gadget: OFS/FFS

Damit wird festgelegt, ob die Diskette mit dem neuen FastFileSystem des AmigaOS 2.0 formatiert werden soll, oder im alten Datenformat.

Cycle-Gadget: No international/International

Hiermit wird das Handling der länderspezifischen Sonderzeichen in Dateinamen festgelegt.

String-Gadget: Befehls-Gadget

In diesem Stringgadget ohne Namen steht der vollständige Befehl, der nach Festlegung aller Kriterien als eigenständiger Prozeß ausgeführt wird.

Gadget: Format

Damit wird der ‘Format’-Befehl in einem Shell-Window aufgerufen.

Gadget: Quick

Damit wird der ‘Format’-Befehl in einem Shell-Window aufgerufen. Zuvor wird die Option QUICK an den Befehl drangehängt. Diese Option startet die Formatierung des Directory-Bereiches der Diskette, also nicht der ganzen Diskette.


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

1.6 Save Windows - IFF-Dateien von Windows

Hierbei kam auch eine Routine zum Einsatz, die ich von Olsens ‘term’ geratzt habe. Leider funktioniert Olsens Routine nicht mit allen Fenstern, was an der Verwendung der Funktion ClipBlit() liegt, die zwar die ausgewählte BitMap eines Windows berücksichtigt, aber die überlappenden Bereiche anderer Fenster mit Datenmüll füllt. Außerdem verwendet Olsen die BitMap des zu einem Fenster gehörenden Screen-RastPorts anstelle des Window-RastPorts.

Dieses Problem der Überlappung habe ich durch die Verwendung der Routinen BltBitMap() und WindowToFront() behoben. Damit wird das zu speichernde Fenster nach vorne geholt, weswegen auch keine Überlappungen mit anderen Fenstern auftreten. Dieses Verfahren funktioniert natürlich nicht mit Backdrop-Fenstern.

Es muß aber eine Möglichkeit geben, nur den Fensterinhalt abspeichern zu können. Immerhin kann es die DumpRastPort-Routine des ‘printer.device’ auch. Wer also sachdienliche Hinweise zu diesem Thema hat, möge sich bitte mit mir in Verbindung setzen.

Gadget: Windows

In diesem ListView erscheinen alle geöffneten Windows, die im System bekannt sind. Dabei werden auch die aufgeführt, die auf anderen Screens als dem WorkBench Screen geöffnet wurden.

Gadget: IFF File

Wurde ein Fenster angewählt, wird dieses Gadget aktiviert. Nach dem Anklicken erscheint ein Filerequester mit der Aufforderung, eine Datei auszuwählen, in der das angewählte Window als IFF-Datei abgespeichert werden soll.

Gadget: Rescan windows

Damit kann die Window-Liste aktualisiert werden. Dies geschieht nach dem Abspeichern eines Windows automatisch.


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

1.7 Check Libraries - Testen der ROM-Libraries

Alle im ROM angelegten Libraries werden gecheckt, ob sie von anderen Programmen gepatcht wurden. Sehr nützlich, um eventuell installierte Viren aufzuspüren.

Dazu wird eine externe Datei verwendet, die in einem bestimmten Format vorliegt. In dieser stehen alle Libraries und Library-Offsets drin, deren Einträge im System überprüft werden sollen. Mit einem mitgelieferten ‘AREXX’-Programm kann diese Datei einfach aus den FD-Files erzeugt werden.


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

1.8 Search - Die Suchfunktion von RSys

Mit dieser komfortablen Suchfunktion hat der Benutzer die Möglichkeit, in der Liste des Hauptfensters nach einem String suchen zu lassen. Die Suchmethode ist einfach implementiert worden, d.h. es wird die Liste von Anfang an (oder vom letzten gefundenen Eintrag aus) durchsucht und dabei getestet, ob sich der eingegebene String als Teilstring im Listeneintrag befindet.

War der Test erfolgreich, wird der gefundene Eintrag zum obersten Eintrag im ListView gemacht. Der String ist hierbei "case-sensitiv" einzugeben, Groß- und Kleinschreibung ist also zu berücksichtigen! Die Taste ESC beendet die Eingabe und betrachtet die Eingabe als abgebrochen, ebenso wie das Cancel- und das Closegadget.

Nach der Anwahl des entsprechenden Menüpunktes erscheint ein kleines Fenster mit drei Gadgets:

Gadget: String-Gadget

In diesem Gadget kann der Suchstring eingegeben werden. Groß- und Kleinschreibung muß berücksichtigt werden. Die Länge des Strings ist maximal 40 Zeichen lang. Nach dem Öffnen des Eingabefensters ist dieses Gadget automatisch aktiv.

Gadget: Search-Gadget Taste S

Ist die Eingabe abgeschlossen, wird nach dem Gadget-Klick der String intern übernommen und eine Vorwärtssuche gestartet.

Gadget: Cancel-Gadget

Die Eingabe wird abgebrochen. Der eventuell eingegebene String wird NICHT intern übernommen.


[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.