ROUND

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Anmerkung: Dieser Artikel beschreibt die numerische ROUND-Routine zum Runden im BASIC-ROM.

Name: ROUND
Beschreibung: Fließkommaregister FAC runden
Einsprungpunkt: $BC1B / 48155
Übergebene Argumente:
Sonstige: FAC = Zu rundende Fließkommazahl A
Rückgabe-Werte:
Sonstige: FAC = Gerundeter Wert von A


Die ROM-Routine ROUND [1][2] rundet den Inhalt des Fließkommaregisters FAC, erhöht die Mantisse von FAC also um 1, falls durch eine vorausgegangene Rechenoperation das höchstwertige Bit des Rundungsbytes gesetzt wurde.

Nach dem Aufruf von ROUND enthält FAC den gerundeten Wert, während das Rundungsbyte an Adresse 112/$70 in jedem Fall auf 0 gesetzt wird. In sehr seltenen Fällen ist nach dem Runden der Inhalt von FAC nicht mehr als Fließkommazahl auf dem C64 darstellbar, in diesem Fall löst ROUND einen ?OVERFLOW ERROR aus.

Laufzeitverhalten

Falls FAC = 0 oder falls das höchstwertige Bit des Rundungsbytes an Adresse 112/$70 gelöscht ist, so verändert das Runden den Wert von FAC nicht, und ROUND benötigt nur 18 bzw. 25 Systemtakte. Andernfalls liegt der Aufwand für das Erhöhen und eventuell für das Normalisieren der Mantisse zwischen 47 und 99 Systemtakten.

Ein Systemtakt entspricht auf dem Commodore 64 rund einer Mikrosekunde (μs).

Weblinks

Quellen