Abschnitt
19
:
Flags
297
Verwenden von
I
STOFlAG
I. Mit
der
F
unktion
l
STOFlAG
I
können
Sie den Status einiger oder aller
Flags
zwischen
00 und
43
wiederherstellen.
•
Um
den
Status
der
Flags 00 bis
43
wiederherzusteUen,
rufen
Sie die Statusdaten
in
das X-Register zurück
und
führen
Sie
die
Funktion
I
STOFlAG
I
aus.
•
Um den Status eines Flagblocks
wiederherzustellen,
können
Sie
folgendermaßen
vorgehen:
Rufen
Sie die
Statusdaten
wie
oben erläutert
in das X-Register
zurück.
Legen
Sie im X-Register
die
Steuerzahl bb.ee ab;
dabei repräsentiert
bb
den ersten
Flag
und
ee
den letzten
Flag
des
Blocks. (Dadurch werden
die
Statusdaten
in
das
V-Register
gehoben.) Führen
Sie die
Funktion
ISTOFlAG
]
aus.
Die
Funktion
!STOFlAG
I
hat keine
Auswirkungen auf den Stack (vergleiche
I
STO
I).
Wenn
gilt bb
~
ee,
wird
nur
der
Status von Flag bb wiederhergestellt.
Beispiel.
Ein Programm
rundet
Zahlen
a
uf
die
nächste
ganze
Za
hl
(unter Verwendung der Funktion
IAND
I
in
Zusammenhang
mit
dem
Format
!BK!
0)
;
zu
r Zahleneingabe und
Ergebnisausga
be soll
jedoch das
vom Benutzer
gewählte Anzeigeformat benutzt werden.
I.
Nach
Beendigung
der
Zahleneingabe
im
gewählten
Anzeigeformat
wird
mit
der Funktion
I
ACLFLAG
I
der Status
der
Flags
00 bis 43 in
das
X-Register
zurückgerufen. Die
Anweisung
ISTo
l
nn
speichert
diese
Statusdaten in
R"n"
2.
Die Anweisung
!BK!
0
spezifiziert das Anzeigeformat
«
keine Dezimalstellen
».
3. Die Funktion
IRNol
rundet
die
im
X-Register abgelegte Zahl.
4. Bevor
das
Ergebnis ausgegeben
wird,
ruft
die
Anweisung
IRel
l
nn
die Statusdaten
zurück.
Die Zahl
36.41
spezifiziert die
Flags 36
bis
41
(die Anzeigeformatftags)
und die
Funktion
I
STOFLAG
I
stellt
den ursprünglichen
Status
der
Flags 36
bis
41
wieder
her.
Dadurch
kann
die
Zahleneingabe
und
Ergebnisausgabe
in
einem
beliebigen
Anzeigeformat vorgenommen werden
und
trotzdem
ist während
der
Programmausführung
das
Format
0RJ
0
wirksam.
Mehrfache
Kopien
von Flags. Sie können die
Funktionen
I
RCLFlAG
I
und
I
STOFlAG
I
anstalt der Funktion
Ix<
>FI
verwenden,
um mehrfache
Kopien von Flags zu erstellen.
Beachten
Sie dabei folgendes:
•
Sie
haben
Zugriff auf einen beliebigen
Block
von Flags (einschließlich des gesamten
Blocks vo
n
Flag
00
bis
Flag
10). Bei
Verwenden
der
Funktion
Ix<
>v
i
haben
Sie nur Zugriff auf einen
Block,
Flag
00
bis 07.
•
Sie können die durch
I
RClFlAG
]
abgerufenen
Flagdaten nur
dazu
verwenden,
den vorhergehenden Status der
Flags wiederherzustellen.
Das letzte
Beispiel zu
Ix<
>F
I
zeigt, wie die
mit dem
Flagstatus
zusammenhängende
Zahl (Ergebnis
der Funktion
I x<
>FI
)
direkt verwendet
werden
kann.