CBMPET: Umwandlungen
Aus CBMPET.DE
Inhaltsverzeichnis |
4. Umwandlungen
Folgende Umwndlungen werden in diesem Kapitel beschrieben: ganze in reelle
Zahlen, reelle Zahlen in Strings, Hex-Byte in ASCII-Code (jeweils beide
Unwand ungsrichtungen).
Die verwendeten ROM-Routinen und Speicherplaetze sind:
Name 2001 3001 8001 Beschreibung
------------------------------------------------------
ADRFP $DB1B $DB55 $CD7F Adresse in real-Zahl
ASCII ---- $E78D $D73A Hex-Byte in ASCII-Code
FPINT $DB6D $DBA7 $CDD1 Real- in integer-Zahl
FPSTR $DCAF $DCE9 $CF93 Real-Zahl in String
HEXIT ---- $E7E0 $D78D ASCII-Code in Hex-Byte
INTFP $D278 $D26D $C4BC Integer- in real-Zahl
STRFP $D68D $D68F $C8EB String in real-Zahl
FAC1 $B0-B6 $5E-64 $5E-64 Floating Akkumulator #1
STRADR $71-72 $1F-20 $1F-20 Stringadresse (low, high)
4.1 Umwandlung String in reelle Zahl
Ein ASCII-String mit Ziffern (ev. Dezimalpunkt und Exponent) wird in eine
reelle Zahl umgewandelt. Die Anfangsadresse des Strings muss in STRADR stehen,
die Laenge des Strings im A-Register. Das Ergebnis steht im FAC1.
JSR STRFP
4.2 Umwandlung reelle Zahl in String
Eine reelle Zahl in FAC1 wird in einen String umgewandelt. Der String beginnt
bei Adresse $0100 (Vorsicht: Stack-Bereich!) und endet mit einem 00-Byte.
JSR FPSTR
4.3 Umwandlung integer-real
Eine vorzeichenlose ganze Zahl (Adresse, Bereich 0-65535) wird in eine reelle
Zahl umgewandelt. Die ganze Zahl wird im Adressenformat (low Byte, high Byte)
ab Byte 2 des FAC1 ($B1-B2/$5F-60/$5F-60) bereitgestellt. Das Ergebnis steht
im FAC1.
LDX #$98
SEC
JSR ADRFP
4.4 Umwandlung integer-real
Eine vorzeichenbehaftete ganze Zahl (Bereich: -32767 bis +32767) wird in eine reelle Zahl umgewandelt.
Die ganze Zahl wird im A-Register (high Byte) und Y-Register (low Byte) uebergeben.
Das Ergebnis steht im FAC1.
JSR INTFP
4.5 Umwandlung real-integer
Eine reelle Zahl im FAC1 wird in eine ganze Zahl (Bereich -32767 bis +32767) umgewandelt.
Das Ergebnis steht ab Byte 3 des FAC1 ($B3-B4/$61-62/$61-62) im Format: high Byte - low Byte (!).
JSR FPINT
4.6 Umwandlung Hex-Byte in ASCII-Code
Umwandlung einer Hexadezimalzahl im A-Register in das aequivalente ASCII-Zeichen
im A-Register fuehrt folgende Routine durch (nur 3001/8001):
JSR ASCII
4.7 Umwandlung ASCII-Code in Hex-Byte
Umwandlung eines ASCII-Zeichens im A-Register in die aequivalente Hexadezimalzahl im A-Register
fuehrt folgende Routine durch (nur 3001/8001):
JSR HEXIT
