8. Online Calculator
8.1. Bedienung
mbedit verfügt über einen eingebauten Taschenrechner, der mit dem
Kommando "C"alc aufgerufen wird. Der zu berechnende Ausdruck wird
in Status-Zeile 2 eingegeben und das Ergebnis (dezimal, hex und ASCII)
ebenfalls dort angezeigt.
Beispiel:
Eingabe: C (((7 + 3) * 2) >> 2) + '0'
Anzeige: Calc: 53 = 0x00000035 = '5'
Calc kann außerdem numerische und String-Variable behandeln.
Bei den String-Variablen gibt es einige, die eine fest definierte
Bedeutung haben. Mit ihrer Hilfe kann man interne Parameter von mbedit
abfragen, z.B. das Zeichen unter dem Cursor.
8.2. Operatoren / Prioritäten
Die Operatoren entsprechen der c- bzw. PLM-Syntax und werden daher nicht
weiter erläutert. Hier folgt eine Aufzählung:
Priorität | Operatoren
----------+--------------------------------------------------------------
0 (high)| (
1 | ! ~
2 | **
3 | * / % \\
4 | + -
5 | << >> SAL SAR SHL SHR ROL ROR
6 | < <= > >=
7 | == != <>
8 | &
9 | ^
10 | |
11 | &&
12 | ||
13 | = *= /= %= | += -= <<= >>= &= ^= |=
14 | )
15 (low) | ;
8.3. Calc Variablen, numerisch
Calc kennt numerische Variablen, die durch einen Namen identifiziert
werden.
Beispiel:
Eingabe: C alfa=3
Anzeige: Calc: 3 = 0x00000003
Eingabe: C beta=4
Anzeige: Calc: 4 = 0x00000004
Eingabe: C alfa + beta
Anzeige: Calc: 7 = 0x00000007
Eine Sonderrolle nehmen die Variablen mit den Namen "n0" bis "n9" ein.
Auf diese Variablen kann mit dem Control Zeichen ^N zugegriffen werden.
In der Status-Zeile 2 werden die Werte immer dezimal eingesetzt, im Text
(Insert / Exchange Mode) abhängig von der eingestellten Zahlenbasis
(Set Radix). Siehe auch die Kapitel "Eingaben in Status-Zeile 2" und
"Set Options" !
Beispiel:
Eingabe: C n1=1023
Anzeige: Calc: 1023 = 0x000003ff
Eingabe: SRH (Set Radix Hex)
I ^N1
Anzeige: 3ff (Text)
Eingabe: F ^N1
Anzeige: Find:"1023" (Status-Zeile 2)
8.4. Calc Variablen, Strings
Calc kennt ferner String-Variablen, die durch einen Namen identifiziert
werden.
Eine Sonderrolle nehmen die String-Variablen mit den Namen "s0" bis "s9"
ein. Auf diese Variablen kann mit dem Control Zeichen ^S bzw. ^V zugegriffen
werden.
Beispiel:
Eingabe: C Paul="Harry"
Anzeige: Calc: "Harry"
Eingabe: C s3="Peter"
Anzeige: Calc: "Peter"
Eingabe: I ^V3
Anzeige: Peter (Text)
Eingabe: F ^V3
Anzeige: Find:"Peter" (Status-Zeile 2)
8.5. Vordefinierte Variablen
Einige Variablen in mbedit haben eine besondere Bedeutung. Mit Hilfe
von Calc können sie ausgelesen werden:
Typ | Name | Beschreibung
------+--------+------------------------------------
int | BOF | begin of file
| |
long | CNTEXE | macro execution
int | CNTFND | no of "(-)Find"
long | CNTMAC | macro completed
int | CNTREP | no of "(?)Replace"
| |
int | COL | current column (in file)
byte | CURCH | current character
long | CURPOS | current position in file
word | CURWD | current word
| |
long | DATE | (mm*10000 + dd)*100 + yy) = mmddyy
int | EOF | end of file
int | INOTHR | no of file: (0...n)
int | ISDEL | current character is delimiter
int | ISWHTE | current character is white space
| | = <space>, <tab>, <cr>, <lf>
long | LINACT | actual line no
long | LINTOT | total lines in file
byte | LOWCH | = tolower (CURCH)
| |
int | LSTFND | last Find command successful
int | NSTLVL | macro nesting level
byte | NXTCH | next char
int | NXTTAB | next tab position
word | NXTWD | next word
int | ROW | current row (in file)
| |
char* | SB | string Block buffer
char* | SE | string Edit file
char* | SG | string Get file
char* | SI | string Input file
char* | SM | string Macro File
char* | SO | string Other file
char* | SP | string Put file
char* | SR | string "Replace"
char* | ST | string "Find" ('T'arget)
char* | SW | string Write file
| |
long | SLx | string length x (0...9 or 2nd character)
| |
long | TAGA | offset of tag A
long | TAGB | offset of tag B
long | TAGC | offset of tag C
long | TAGD | offset of tag D
| |
long | TIME | (hh*10000 + mm)*100 + ss) = hhmmss
byte | UPCH | = toupper (CURCH)
Beispiel:
Eingabe: C date
Anzeige: Calc: 81293 = 0x00013d8d (12. Aug 1993)
8.6. Vordefinierte String-Variablen
Die String-Variablen SB, SE, usw ... können auch im Insert / Exchange Mode
sowie in der Status-Zeile 2 durch die Eingabe von ^S / ^V gefolgt von dem
2. Buchstaben angewählt werden.
2. Buchstabe | Spezieller String
-------------+----------------------
B | Block Buffer
E | Edit <filename>
G | Get <filename>
I | Input <filename>
M | Macro <filename>
O | Other <filename>
P | Put <filename>
R | Replace String
T | Find String (T=Target)
W | Write <filename>
Y | sYntax <filename>
Beispiel:
Eingabe: I ^VM
Anzeige: Text: ... C:\BIN\mbedit.mac ...
Eingabe: QI ^VM
Anzeige: Read Filename:"C:\BIN\mbedit.mac"
8.7. Fehlermeldungen
Falsche Eingaben im Calc-Kommando können folgende Fehlermeldungen erzeugen:
- Invalid symbol in expression
- Invalid expression
- Unbalanced parentheses
- Not a constant
- Not a number
- Numeric constant too large
- Identifier too long
- Too many variables
- Assignment to constant
- Divide by zero