AZap - Bedienungsanleitung Grundsätzliches Diese Anleitung beschreibt die Version 2.14 des Programms AZap. Dieses Programm ist (c)1992-1993 by Denis GOUNELLE, jede kommerzielle Nutzung oder kommerzieller Vertrieb des Programms ohne die schriftliche Erlaubnis des Autors ist streng verboten. Sie dürfen das Programm unter folgenden Bedingungen kopieren und verbreiten: - das Programmpaket muß vollständig sein, es darf keine Datei fehlen - keine Datei darf in irgend einer Form verändert worden sein - die Kopiergebühr darf nicht höher als $6 sein Trotz vielfältiger Tests kann nicht garantiert werden, daß AZap völlig frei von Fehlern ist. SIE BENUTZEN DIESES PROGRAMM AUF IHR EIGENES RISIKO. Der Programmautor ist in keinem Fall für irgendwelche Schäden (direkte oder indirekte), die aus der Benutzung von AZap resultieren, haftbar. Einleitung AZap ist ein Binär-Editor der "neuen Generation", welcher die Bearbeitung sowohl von Dateien, Speicher (Memory) als auch Geräten (Devices) wie Festplatten ermöglicht. Es kann zeitgleich mehrere Fenster öffnen, und wenngleich dieses Programm nicht als ein Hilfs-werkzeug zur Wiederherstellung einer Disk betrachtet werden kann, so hat es doch viele nützliche Funktionen (Drucken und Füllen eines Blocks, Suchen nach Zeichenketten usw.). VORSICHT: Es ist absolut verboten, dieses Programm zur Veränderung von Urheberschutzhinweisen und für jegliche anderen illegalen Zwecke zu gebrauchen! Unerfahrene Benutzer sollten zudem bedenken, daß dieses Programm ihre Programme zerstören und erhebliche Datenverluste verursachen kann.  Verbesserungsvorschläge und sonstige Kritik sind stets willkommen. Bitte schicken Sie diese an folgende Adresse: M. GOUNELLE Denis 27, rue Jules GUESDE 45400 FLEURY-LES-AUBRAIS FRANCE Ebenfalls können Sie eine Nachricht an folgende Internet Adresse senden: "gounelle@alphanet.ch". Beachten Sie aber, daß dies nicht meine eigene Mailbox ist, senden Sie daher bitte nur kurze Mitteilungen. Da ich keinen direkten Zugriff auf die Nachrichten habe, sollten Sie eine Antwort nicht früher als nach 14 Tagen erwarten. Danksagungen Ich möchte folgenden Personen danken: Pierre Ardichvili, Reza Elghazi, Yves Perronoud, Jean-Yves Proux, für Beta-Tests und Vorschläge. Stefan Salewski, Michael Hensche, für die deutsche Anleitung. Installation Dieses Programm benötigt zum Ablauf die "reqtools.library" (Version 2.0c oder höher); kopieren Sie diese daher vor dem Start bitte in Ihr "LIBS:"-Verzeichnis. Die "reqtools.library" steht unter Urheberschutz (Copyright 1990-1993 by Nico FRANCOIS). AZap arbeitet nun regionalisiert; daher kann es sich an die von Ihnen bevorzugte Sprache anpassen. Dazu brauchen Sie nur die gewünschte Katalog-Datei in das für die betreffende Sprache zuständige Verzeichnis zu kopieren. Wenn Ihre voreingestellte Sprache beispielsweise Französisch ist, überweisen Sie die Datei "français.catalog" in das Verzeichnis "SYS:Locale/Catalogs/Français" und ändern ihren Namen dort in "AZap.catalog". Starten_vom_CLI Das Programm löst sich selbsttätig vom CLI-Fenster. Es versteht die folgenden Argumente: WBENCH Nimm den Workbench-Schirm anstatt eines Custom-Schirms. LACE Verwende einen Interlaced-Custom-Schirm. Diese Option wird ignoriert, wenn man mit "WBENCH" argumentiert. FONT name Gebrauche den genannten Schriftsatz an Stelle des internen 6*9-Fonts. "name" ist durch den Namen des Zeichensatzes plus die Höhe (Y-Größe) des Fonts zu ersetzen, wie etwa: "courier9". AZap verwendet den Zeichensatz nur, wenn seine Zeichen nicht proportional gestaltet sind und wenn er für die Darstellung eines 512-Byte-Blocks nicht zu groß ist. MEMORY Öffne ein Fenster zur Bearbeitung von Speicher ({RAM} Memory). DEVICE name Öffne ein Fenster zum Editieren des genannten Geräts (Device). Vergessen Sie dabei {in "name"} den abschließenden Doppelpunkt (":") nicht! Jedes andere Argument wird als Name einer zur Bearbeitung anstehenden Datei aufgefaßt. Es ist erlaubt, so viele Namen wie gewünscht anzugeben, allerdings werden nur die ersten acht berücksichtigt. Selbstverständlich dürfen Dateinamen-, MEMORY- und DEVICE-Argumente durcheinander gebracht werden. Falls die Argumente ganz ausbleiben, wird der Datei-Anforderer (File Requester) auf den Schirm gerufen (siehe dazu "Das_Projekt_Menü"), damit Sie eine zu bearbeitende Datei wählen können. Starten_von_der_Workbench Wenn Sie möchten, dürfen Sie folgende Optionen als "TOOL TYPES" des AZap-Icons angeben: OPTIONS=WBENCH oder OPTIONS=LACE Siehe hierzu die Beschreibung der Optionen "WBENCH" und "LACE" im Abschnitt "Starten_vom_CLI". FONT=name Siehe oben die Beschreibung des "FONT"-Arguments im Abschnitt "Starten_vom_CLI". Sie können AZap mit einem Icon als Argument starten. (Auf die übliche Weise, wie z.B. auch bei den meisten Textanzeigeprogrammen.) Dieses Icon kann entweder das Icon einer Datei oder das Icon eines Volumes (Diskette oder Festplattenpartition) sein. Sonst erscheint ein Datei-Anforderer, damit Sie eine zu bearbeitende Datei auswählen können (siehe dazu: "Das_Projekt_Menü"). Wichtige_Hinweise Sobald AZap startet, liest es die Execbase-Struktur aus, um Ihre {RAM-}Speicherkonfiguration kennenzulernen. Es können nur solche Speicherbereiche bearbeitet werden, welche in SpeicherVerwaltungslisten verzeichnet sind. Abgesehen von Suchvorgängen behandelt AZap diese Bereiche als zusammenhängend, und das Programm springt automatisch von einem Bereich zum anderen. Der Punkt "Infos" im "Das_Werkzeuge_Menü" bewirkt die Anzeige der Adressen aller Bereiche. Um Konflikte zu vermeiden, wird das Lesen und Beschreiben von Speicher nur nach {vorübergehendem} Außerkraftsetzen des TaskSchaltens (Task Switching) vorgenommen. AZap vermag den Typ des Geräts (Device), welches Sie editieren wollen, zu erkennen. Einige Vorgänge (wie "Nächster Block", "Vorheriger Block", "Root Block"; siehe dazu: "Das_Edit_Menü") werden unterbunden, sobald Devices bearbeitet werden sollen, welche nicht dem AmigaDOS angehören. Vergessen Sie dabei nicht, von der Prüfsummen-Option Gebrauch zu machen! AZap kennt sich sowohl im OFS (Altes Dateisystem) als auch FFS (Schnelles Dateisystem) aus und geht mit beiden Dateisystemen um. Das_Editier_Fenster Der linke Teil des Displays zeigt den Inhalt des Blocks hexadezimal, und zwar in Sätzen zu vier Bytes. Der rechte Teil zeigt dieselbe Information, allerdings alphanumerisch. Bytes, welche zu unsichtbaren Zeichen gehören, werden hier durch Punkte (".") repräsentiert. {Es werden leider nicht alle druckbaren Zeichen dargestellt.} Unten rechts im Fenster gibt es mehrere Informationen: die Block-Adresse in "Hex", und zwar in ihrem Verhältnis zum Anfang, der Block-Offset in gleicher Weise, die Block-Nummer (wieder relativ zum Start, nun aber dezimal) und schließlich der Block-Typ. Diese letztere Information ist ohne Bedeutung, falls Sie nicht ein DOS-Device bearbeiten möchten. Solange der Inhalt des Blocks zwar schon geändert, aber noch nicht geschrieben {gesichert} wurde, steht ein Stern ("*") zur Rechten der ersten Zeile. Wenn die Checksumme des Blocks stimmt, wird ein großes "V" {für "valid", gültig) zur rechten der zweiten Zeile dargestellt (auch dies ist bedeutungslos, solange Sie kein DOS-Device editieren). Sobald das Fenster öffnet, wird der erste Block dargestellt, und der Cursor steht auf dem ersten Zeichen im rechten Teil. Die betreffende Position im linken Teil wird durch eine andere Farbe gekennzeichnet. Der Cursor kann mit den Pfeil-Tasten bewegt werden. Um zwischen den linken und rechten Teil umzuschalten, drücke man die Tabulator-Taste (TAB). Wenn Sie die Maus benutzen, können Sie gleichfalls überallhin gelangen. Um Daten zu ändern, genügt das Überschreiben der alten Werte; im linken Teil sind allerdings nur die folgenden alphanumerischen Zeichen erlaubt: "0" bis "9", "a" bis "f" und "A" bis "F". AZap "merkt" sich die letzten zweiunddreißig Änderungen, und solange Sie sich im selben Block aufhalten, können Sie infolgedessen diese Modifizierungen mittels der FluchtTaste (ESC) rückgängig machen. Darüber hinaus haben folgende TastenKombinationen besondere Funktionen: CTRL-HOCH gehe zum ersten Block CTRL-RUNTER gehe zum letzten Block CTRL-LINKS gehe zum vorangehenden Block CTRL-RECHTS gehe zum folgenden Block SHIFT-HOCH gehe zur ersten Zeile SHIFT-RUNTER gehe zur letzten Zeile SHIFT-LINKS gehe zum ersten Byte der Zeile SHIFT-RECHTS gehe zum letzten Byte der Zeile Die Schalter am unteren Rand des Fensters gestatten (von links nach rechts) : den Gang zum ersten Block, den Gang zum vorangehenden Block, das Schreiben der Änderungen, den Gang zum folgenden Block, den Gang zum letzten Block und den Gang zu einer bestimmten Adresse. Im letzteren Falle erscheint ein Anforderer (Requester), so daß Sie die gewünschte Adresse eingeben können. Benutzen Sie bitte folgende Syntax: nbr springe zu Adresse "nbr" §nbr springe zu Block "nbr" @nbr springe zu der Adresse, welche durch Lesen des Langwortes an Adresse "nbr" bestimmt wird (nur beim Editieren von {RAM-}Speicher) #nbr springe zum Speicherabschnitt Nr. "nbr" (nur beim Editieren von {RAM-}Speicher) Diese Adresse kann aus einem Ausdruck bestehen, dessen Syntax im Abschnitt "Syntax der Ausdrücke" beschrieben wird. Auch die Benutzung des Schiebe-Schalters ist erlaubt (welcher sich am unteren Fensterrand befindet), um die Position zu ändern. Bitte berücksichtigen Sie dabei auf jedem Fall, daß alle Änderungen in einem Block annulliert werden, sobald sie zu einem anderen überwechseln, bevor Sie diese gespeichert haben! Um ein Editier-Fenster zu schließen, brauchen Sie nur den Schließ-Schalter anzuklicken {das ist derjenige an der linken oberen Fensterecke}. Falls Sie die Änderungen im Block noch nicht gesichert haben, wird nach einer Bestätigung nachgefragt. Das Programm räumt sich selbst beiseite, sobald das letzte EditierFenster geschlossen wurde {es endet also selbsttätig}. Das_Projekt_Menü Datei öffnen Hiermit öffnen Sie ein neues Fenster, um eine Datei zu bearbeiten. Ein Datei-Anforderer erscheint, so daß Sie die zu editierende Datei auswählen können. Ein Speicher-Fenster öffnet sich stattdessen, wenn Sie "RAM:" eingeben, und ein Geräte-Fenster erscheint, falls Sie ein Device (besipielsweise "DH0:") eingeben. Speicher öffnen Damit öffnen Sie ein Fenster zum SpeicherEditieren. Device öffnen Hierbei können Sie die Untermenü-Einträge zur Auswahl der Geräte benutzen. AZap öffnet dann ein EditierFenster. Hilfe... Hier wird der Gebrauch der Cursor-Tasten in Verbindung mit CTRL und SHIFT erläutert. Palette... Mit Hilfe eines Palette-Anforderers können Sie hier die Farben des Schirms ändern. Voreinstellungen speichern Speichert die Einstellungen von Zeichensatz und Farbpalette des Schirms. Außerdem werden die Optionen des aktuellen Fensters als Voreinstellung gesichert. Die Konfigurations-Datei heißt "AZap.config" und befindet sich im "S:"-Verzeichnis. Über... Einige Informationen über das Programm werden angezeigt. Beenden Leitet das Ende des Programms ein; es ist eine Bestätigung erforderlich. Das_Edit_Menü alles rückgängig machen Man liest den aktuellen Block neu ein, um ungesicherte Änderungen zu annullieren. Zurückspringen Jedesmal wenn ein anderer Block mittels Betätigung eines der Schalter für den Sprung zum ersten, letzten oder anzugebenen Block angesteuert wird, "merkt" sich das Program die gegenwärtige Position. Daher erlaubt dieses Kommando den Rücksprung in die gemerkte Position. Da auch hierbei ein Merkprozess einsetzt, kann auf einfache Weise beliebig zwischen zwei Blöcken umgeschaltet werden. Nächster Block Wenn ein DOS-Device bearbeitet wird, erlaubt Ihnen dieser Menüpunkt den Wechsel entweder (falls es sich bei dem aktuellen Block um einen Datei-Header handelt) zum ersten Daten-Block oder (falls es sich um einen Daten-Block einer OFS-Disk handelt {also einer für das alte Dateisystem formatierten Disk}) um den anschließenden Block. Vorheriger Block Wenn ein DOS-Device bearbeitet wird und es sich bei dem aktuellen Block um denjenigen eines Datei-Headers oder eines Verzeichnisses handelt, können Sie mit dieser Aufforderung zu dem zum nächsten übergeordneten Verzeichnis {"Mutterverzeichnis"} gehörenden Block umschalten. Root Block Wenn Sie ein DOS-Device bearbeiten, gelangen Sie hiermit zum Stamm-Block des Geräts. Header Block Wenn Sie ein DOS-Device bearbeiten, gelangen Sie mit diesem Kommando zum nächsten Header-Block. Sobald Sie einen der vier letztgenannten Menüpunkte anwählen, wird die bisherige Position für eine eventuelle Nutzung im Rahmen des Rücksprung-Befehls zwischengespeichert. Das_Werkzeuge_Menü Infos Anzeige einiger Angaben zur Datei, dem Speicher oder zum Gerät, welches gerade editiert wird. Untersuchen Wenn Sie ein DOS-Device bearbeiten und es sich bei dem aktuellen Block um denjenigen eines Datei-Headers handelt, erscheint entsprechend dem vorigen Menüpunkt ein Info über die zugehörige Datei bzw. über das betreffende Verzeichnis. Drucken... Druckt eine Anzahl von Blöcken beginnend mit dem aktuellen. Dazu erscheint ein Anforderer, in welchem ein anderes Medium als das voreingestellte "PRT:"- Device bestimmt werden kann {schon 'mal "SPEAK:" versucht?}. AZap fragt anschließend nach der Anzahl der auszugebenden Blöcke. {Falls Sie "SPEAK:" bestimmt haben, sollten Sie eine möglichst geringe Ziffer eingeben - voreingestellt ist "1" -, da der "Sprecher" sonst sehr lange beschäftigt sein würde!} Umwandeln Ein neues Fenster wird geöffnet, welches vier Zeichenketten-Schalter (String Gadgets) enthält, mit deren Hilfe Sie Umwandlungen zwischen binären ("BIN"), dezimalen ("DEC"), hexadezimalen ("HEX") und ASCII-Werten ("ASC") vornehmen können. Welchen Eintrag Sie auch immer wo vornehmen - dieser Wert erscheint stets analog in den anderen Feldern. Sie müssen dieses Umwandel-Fenster nicht schließen, wenn Sie Ihre Editionen fortsetzen möchten. Block speichern Ermöglicht das Speichern einer Anzahl von Blöcken beginnend mit dem aktuellen. Es erscheint ein Datei-Anforderer, mit dessen Hilfe Sie den Namen der Datei bestimmen können, in welcher die Blöcke gespeichert werden sollen. AZap fragt anschließend nach der Anzahl der zu speichernden Blöcke. Block füllen Alle Bytes des aktuellen Blocks erhalten den selben Wert. Dieser wird mittels eines Anforderers abgefragt. Geben Sie beispielsweise "c" ein, um diesen Buchstaben als "Füllmaterial" zu verwenden; Sie können auch den ASCII-Code des Buchstabens eingeben (eine Nummer), wobei im Falle einer hexadezimalen Schreibweise "0x" voranzustellen ist. Das_Suchen_Menü Suchen... Leitet die Suche nach einer Zeichenkette (String) oder einem hexadezimalen Wert ein. Dies wird mittels eines Anforderers bewerkstelligt. Geben Sie eine Zeichenkette ein (ASCII-Suche) oder eine Hexadezimalzahl, wobei "0x" voranzustellen ist. Wollen Sie nach einer Zeichenfolge suchen, welche mit "0x" beginnt, so müssen Sie den gesamten String in Anführungszeichen ("") setzen. Text suchen... Hier wird {gewissermaßen automatisch} nach einer Kette (Folge) druckbarer Zeichen gesucht; dies ist beispielsweise dann sinnvoll, wenn man nach Textbereichen forscht. Mittels eines Anforderers wird die Mindestanzahl der Textzeichen bestimmt, welche berücksichtigt werden sollen. Eine Zahl von weniger als vier wird für gewöhnlich kaum sinnvoll sein. {Es ist keine Zahl voreingestellt.} nächstes Vorkommen Setzt die zuletzt vorgenommene Suche an der aktuellen Position fort. Bei allen Suchvorgängen springt AZap an die zutreffende Stelle, oder es läßt {bei einem Mißerfolg} den Schirm aufblitzen. Die vorherige Position wird für einen Rücksprung bereitgehalten (siehe dazu den Punkt "Zurückspringen" im Abschnitt zum "Das_Edit_Menü"). Die Suche kann abgebrochen werden. AZap findet auch eine Zeichenkette, welche in einen anderen Block übergeht. Datei suchen Springt den Header einer Datei oder eines Verzeichnisses an. Es erscheint ein Datei-Anforderer, mit dessen Hilfe Sie den Namen einer Datei bestimmen können. Anschließend öffnet AZap ein Device-Fenster für das zugehörige Gerät, in welchem der Header ("Kopf") der ausgewählten Datei erscheint. Das_Optionen_Menü Beachten Sie bitte, daß die Optionen sich auf ein Fenster beziehen. Wenn Sie die Einstellungen für ein bestimmtes Fenster verändern, bleiben etwaige andere hiervon unberührt. Sollten Sie allerdings ein neues Fenster öffnen, werden die Optionen für dieses übernommen. Prüfsumme Dieser Punkt wird nur bei der Bearbeitung eines DOS-Device aktiv. Im Untermenü werden die Bedingungen für die Aktualisierung der Prüfsumme durch AZap angegeben. Immer Aktualisierung ALLER Blöcke. Fragen wenn AZap soll nachfragen. Boot Blöcke Aktualisierung nur der Blöcke 0 und 1. Automatisch Aktualisierung nur derjenigen Blöcke, deren Prüfsumme beim Einlesen stimmte. Automatisch speichern AZap speichert jeden modifizierten Block automatisch, sobald ein anderer Block angesprungen wird. Nur lesen Das Modifizieren von Daten wird unterbunden. lwr = UPR Ermöglicht eine Unterscheidung von Groß- und Kleinbuchstaben bei der Suche bestimmter Zeichenketten. Sicherheitskopie Damit können Sie bestimmen, daß AZap eine Sicherheitskopie modifizierter Dateien anlegt. Falls aktiviert, erscheint beim nächsten Schreibversuch ein Anforderer, in welchem ein Name für die Kopie angegeben werden kann. Nachdem dies geschehen ist, erstellt AZap die Kopie und speichert erst danach die Änderungen. Falls während des Kopiervorgangs ein Fehler auftritt, taucht der Anforderer wieder auf, damit Sie einen anderen Namen bestimmen können. Falls Sie es jedoch vorziehen, mittels Anklicken des dafür vorgesehenen Abbruch-Schalters ein vorzeitiges Ende der Aktion herbeizuführen, werden die Änderungen dennoch gespeichert. {Es gibt demnach keinen Weg zurück; seien Sie also vorsichtig!} Syntax_der_Ausdrücke AZap ist in der Lage, Rechenoperationen mit Ganzzahlen durchzuführen. Für Adressen ("GOTO"-Schalter) sind Dezimalzahlen als Basis voreingestellt. Die Basis kann sich auch auf den ausgewählten Schalter im Umwandel-Fenster beziehen. Sie wird durch ein vorangestelltes "%" als binär, durch "#" als dezimal und durch "$" oder "0x" als hexadezimal bestimmt. Gültige Operatoren sind: + Addition - Subtraktion | logisches Oder & logisches Und * Multiplikation / integrale Division % Rest einer integralen Division < Verschiebung nach links > Verschiebung nach rechts Von vornherein haben die Operatoren "*", "/", "%", "<" und ">" eine höhere Priorität als die übrigen, doch wird die Verwendung von Klammern unterstützt. Falls ein Fehler in der Syntax eines Ausdrucks auftritt, erscheint als Ergebnis "-1". Entwicklungsgeschichte AZap ist fast vollständig in der Programmiersprache C geschrieben, und wurde auf einem Amiga 3000 UNIX-1 (10 M RAM, internes HD Disklaufwerk, interne Festplatte mit 100 M und 160 M, externes SyQuest Laufwerk mit 88 M, externes Diskettenlaufwerk, 1960 Monitor und Star LC24-10 Drucker), welcher über ein Null-Modem Kabel mit einem A500 mit 1 M RAM verbunden ist, entwickelt. v1.00, 14-Oct-92, 36084 Bytes {Erste freigegebene Version} {Die hier ausgelassenen Entwicklungsstufen findet man in der englischen Anleitung.} v2.14, 26-Dec-93, 42776 Bytes {derzeit aktuelle Version}