Der EDT kann im F-Modus den Inhalt der Arbeitsdateien in hexadezimaler Form darstellen und editierbar machen. Diese Art der Darstellung wird als Hexadezimalmodus oder kurz HEX
-Modus bezeichnet. Dazu dient die Anweisung @PAR HEX=ON bzw. die nur im F-Modus verfügbare Anweisung @HEX ON. Mit @PAR HEX=OFF bzw. @HEX OFF wird der HEX
-Modus wieder abgeschaltet. Mit der Kurzanweisung H
kann auch eine einzelne Zeile in hexadezimaler Form dargestellt und editierbar gemacht werden.
Die Darstellung im HEX
-Modus ist abhängig vom Zeichensatz, mit dem die Daten in der Arbeitsdatei codiert sind. Für 7-Bit- und 8-Bit-Zeichensätze wird jedes Zeichen durch zwei hexadezimale Ziffern codiert, UTF16
benötigt für jedes Zeichen vier hexadezimale Ziffern, bei UTF8
variiert die Anzahl der benötigten hexadezimalen Ziffern je nach Zeichen zwischen zwei, vier und sechs, bei UTFE
sogar zwischen zwei und acht. Zusätzlich wird immer noch die abdruckbare Form der Zeile dargestellt.
Die erste Bildschirmzeile zeigt den Satzinhalt in abdruckbarer Form. Unter jedem abdruckbaren Zeichen dieser Bildschirmzeile steht vertikal der hexadezimale Code des Zeichens auf mehrere Bildschirmzeilen aufgeteilt. Diese Bildschirmzeilen werden im Folgenden als Hexzeilen bezeichnet. Bei der Darstellung von 7- und 8-Bit-Zeichensätzen sind es zwei Hexzeilen, bei UTF16
vier, bei UTF8
sechs und bei UTFE
acht. Es folgt ein Spaltenzähler wie bei @PAR SCALE=ON. Ein evtl. mit @PAR SCALE=ON pro Datenfenster eingeschalteter Spaltenzähler wird im HEX
-Modus nicht ausgegeben.
In den Hexzeilen werden nur Hexadezimalziffern (0..9,A..F
) und NIL
-Zeichen dargestellt und auch nur solche oder das Leerzeichen als Eingabe zugelassen. Nullbytes am Satzende werden nicht entfernt und noch leere Sätze hinter dem Dateiende, die noch im Datenfenster angezeigt werden, werden auch in den Hexzeilen durch NIL
-Zeichen dargestellt.
Der HEX
-Modus gilt für die aktuelle Arbeitsdatei, unabhängig vom Arbeitsfenster, d.h. wenn die gleiche Arbeitsdatei in unterschiedlichen Arbeitsfenstern dargestellt wird, werden beide Arbeitsfenster in der gleichen Darstellung gezeigt.
Der HEX
-Modus wird auch durch @PAR EDIT-LONG=ON ausgeschaltet.
Ändern von Sätzen im HEX-Modus
Änderungen können sowohl in der ersten Bildschirmzeile (abdruckbare Form) als auch in den Hexzeilen vorgenommen werden. Wurden in einem Dialogschritt im gleichen Satz sowohl in der Zeichendarstellung als auch in den Hexzeilen Zeichen eingegeben, werden die Änderungen in der Zeichendarstellung ignoriert.
In den Hexzeilen sind als Eingabe bei 7- oder 8-Bit Zeichensätzen nur Hexadezimal-Zeichen (0..9, A..F
) und bei Unicode-Zeichensätzen müssen diese eine legale Codierung ergeben.
Werden nicht zugelassene Zeichen oder Codierungen eingegeben, wird ein Korrekturdialog eröffnet, d.h. der Bildschirm wird erneut ausgegeben, wobei die fehlerhaften Zeichen bzw. Codierungen mit einem Fragezeichen überschrieben sind. Die Schreibmarke steht in der ersten fehlerhaften Bildschirmzeile. Die restlichen, fehlerfreien Zeichen oder Codierungen werden am Bildschirm geändert dargestellt aber noch nicht in die Arbeitsdatei übernommen. Will man das fehlerhafte Zeichen nicht korrigieren, kann der Korrekturdialog verlassen werden, indem der Bildschirm unverändert mit DUE abgeschickt wird. Es wird dann der alte Inhalt der fehlerhaften Zeile wiederhergestellt, fehlerfreie Zeilen werden in die Arbeitsdatei übernommen. Demgegenüber wird mit [K3] der Korrekturdialog nicht verlassen sondern nur die letzte Änderung durch Tastatureingabe annuliert. Hexziffern dürfen auch gelöscht (mit NIL
-Zeichen überschrieben) oder ausgefügt werden. Beim Ausfügen ist darauf zu achten, dass sich die Halbbytes einer Zeichencodierung nicht gegeneinander verschieben.
Darstellung bei geteiltem Bildschirm
Bei geteiltem Bildschirm (@PAR SPLIT) ist die Darstellung im HEX
-Modus von der Anzahl der Datenzeilen (Bildschirmzeilen im Datenfenster) des jeweiligen Bildschirmes abhängig:
Fehlt nur eine Bildschirmzeile, wird auf die Spaltenzählerzeile verzichtet.
Reicht der Platz nicht um alle Hexzeilen darzustellen, wird nur noch die Zeichendarstellungszeile angezeigt. Auf die Spaltenzählerzeile wird, im Gegensatz zur Darstellungsform des Kompatibilitäts-Modus verzichtet, da sie an dieser Stelle nicht hilfreich erscheint.
Noch verbleibende Bildschirmzeilen werden für Darstellung der nachfolgenden Sätze verwendet. Für diese gelten dann diese Regeln rekursiv.
Da im HEX
-Modus ein Satz immer durch mehrere Bildschirmzeilen dargestellt wird, ist er nur dann sinnvoll, wenn mindestens ein Satz mit all seinen Hexzeilen dargestellt werden kann. Ist dies nicht der Fall, wird beim Einschalten des HEX
-Modus die Meldung EDT2404
ausgegeben, der HEX
-Modus wird aber eingeschaltet. Der Anwender kann dann durch Vergrößern des Datenfensters die Hexzeilen sichtbar machen.
Besonderheiten bei der Darstellung von UTFE und UTF8
In den im BS2000 unterstützten Teilmengen von UTF8
und UTFE
werden Zeichen mit ein bis drei bzw. ein bis vier Bytes pro Zeichen codiert. Dennoch wird jeder Satz mit sechs bzw. acht Hexzeilen dargestellt. Für Zeichen, die mit weniger als sechs bzw. acht Bytes codiert sind, stehen in den restlichen Hexzeilen nur NIL
-Zeichen.
Beispiel
Die Daten im Beispiel sind in UTF8
codiert.