= Rechnen und Konvertieren
CFS-Kommandos, die mit dem Zeichen '=' beginnen, werden von einem internen Rechen- und Konvertierungsmodul ausgewertet. Das Ergebnis wird in der Systemzeile (Zeile 25) ausgegeben. Es stehen folgende Funktionen zur Verfügung:
Arithmetische und logische Operationen:
Es werden die vier Grundrechenarten + - * /, sowie %-Rechnung und die logischen Operationen .AND., .OR., .XOR. angeboten. Als Operanden können hexadezimale oder dezimale Zahlen angegeben werden. Die Rechenausdrücke sind in folgendem Format anzugeben:
=zahl [ op zahl ] ...
zahl Dezimal oder Hexadezimalzahl.
Zahlen, die nur Ziffern 0 bis 9 enthalten, werden als Dezimalzahlen interpretiert. Enthält eine Zahl die Zeichen A bis F, so wird sie als Hexadezimalzahl interpretiert. Das Anhängen des Zeichens H oder X an eine Zahl in dezimaler Schreibweise (z.B. 10H) bewirkt, daß diese Zahl als Hexadezimalzahl interpretiert wird.
op Arithmetischer oder logischer Operator. Es stehen die folgenden Operatoren zur Verfügung:
+ Addition
- Subtraktion
* Multiplikation
/ Division
% %-Rechnung
.+. Addition ohne Berücksichtigung des Vorzeichens (Adressrechnung)
.-. Subtraktion ohne Berücksichtigung des Vorzeichens (Adressrechnung)
.AND. logische UND-Verknüpfung
.OR. logische ODER-Verknüpfung
.XOR. logisches Exklusiv-ODER
Die Abarbeitung der einzelnen Operationen erfolgt rein linear. Beispiel: =10+10*2 ergibt als Ergebnis 40 und nicht 30, wie dies nach der Regel "Punkt vor Strich" zu erwarten wäre. Gleiches gilt für alle logischen Operationen.
Beispiele:
=16+80H
In der Systemzeile wird als Ergebnis der Addition der Wert 144 in dezimaler und hexadezimaler Darstellung (90H) ausgegeben.
=7FFFFD45.+.FFF
Als Ergebnis der logischen Addition wird der Wert 80000D44 ausgegeben. Die arithmetische Addition =7FFFFD45+FFF würde zu der Fehlermeldung 'result too big ...' führen, da die größtmögliche positive Hexadezimalzahl 7FFFFFFF überschritten wird (Festpunktüberlauf).
=1200%14+1200%85
Der angegebene Ausdruck wird in folgender Reihenfolge berechnet:
14% von 1200=168, 168+1200=1368, 85% von 1368=1162.
=7C
Für die angegebene Zahl wird die dezimale und hexadezimale Darstellung ausgegeben: 7C= 124 (7C)
=1.OR.2.OR.4.OR.8
Die vier Hexadezimaloperanden werden mit einem logischen Oder verknüpft. Als Ergebnis wird der Hexadezimalwert F ausgegeben.
=AFFE.AND.5001H
Die zwei Hexadezimaloperanden werden mit einem logischen Und verknüpft. Als Ergebnis wird der Hexadezimalwert 0H ausgegeben.
=7FFE.XOR.FF0
Die zwei Hexadezimaloperanden werden mit einem logischen Exklusiv-Oder verknüpft. Als Ergebnis wird der Hexadezimalwert 700EH ausgegeben.
Character- und Hexadezimalkonvertierung:
In hexadezimaler Schreibweise angegebene Strings werden in Character Darstellung konvertiert. In Character Darstellung angegebene Strings werden in hexadezimale Form konvertiert. Die zu konvertierenden Strings sind in folgendem Format anzugeben:
=X'string' | =[C]'string'
Bei der Konvertierung in Character-Format werden nicht darstellbare Zeichen als '?' angezeigt.
Beispiele:
=X'C1C442'
In der Systemzeile wird für X'C1C442' die Character-Darstellung C'AD?' angezeigt. Im Characterformat nicht darstellbare Zeichen werden durch '?' repräsentiert.
='AFFE'
In der Systemzeile wird für C'AFFE' die hexadezimale Darstellung X'C1C6C6C5' angezeigt.