FADDH

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Anmerkung: Dieser Artikel beschreibt die numerische FADDH-Routine zum Vorbereiten einer Rundung im BASIC-ROM.

Name: FADDH
Beschreibung: Fließkommaregister FAC um 0.5 erhöhen
Einsprungpunkt: $B849 / 47177
Übergebene Argumente:
Sonstige: FAC = Zu erhöhende Fließkommazahl A
Rückgabe-Werte:
Sonstige: FAC = Ergebnis der Addition A+0.5


FADDH — manchmal auch als ADD0.5[1] oder PLUS05[2] bezeichnet — addiert die Konstante 0.5 zum Fließkommaregister FAC. In Kombination mit einer der ROM-Routinen QINT oder INT kann somit der ursprüngliche Inhalt des Fließkommaregisters FAC zur nächsten ganzen Zahl hin auf- oder abgerundet werden.

Nach dem Aufruf steht in FAC das Ergebnis der Addition, während ARG den Wert 0.5 enthält. Neben dem Inhalt der Fließkommaregister FAC und ARG ändert FADDH auch das Rundungsbyte des Hilfspuffers FAC#3 an Adresse 86/$56 sowie den Hilfszeiger an den Adressen 34/$22 bis 35/$23.

Algorithmus

FADDH implementiert keine eigenständige Addition, sondern lädt nur den Akkumulator (Low-Byte) und das Y-Register (High-Byte) mit einem Zeiger auf die Konstante 0.5, die im BASIC-ROM an Adresse $BF11 hinterlegt ist. Anschließend springt FADDH zur ROM-Routine FADD.

Der von FADDH auf diese Weise mitverwendete Algorithmus sowie das Laufzeitverhalten sind ausführlich in der Beschreibung der ROM-Routine FADD dokumentiert. Zu den dort angegebenen Rechenzeiten ist noch die Zeit für das Laden des Zeigers und das Einspringen in FADD (insgesamt 7 Systemtakte) zu addieren.

Weblinks


Quellen