USR

Aus C64-Wiki

Wechseln zu: Navigation, Suche

Anmerkung: Dieser Artikel beschreibt die numerische Funktion USR unter BASIC V2 des Commodore 64.

Typ: Gleitpunkt-Funktion
Allgemeine Programmier-Syntax: USR(<Zahl>)

Die BASIC-Funktion USR() ruft aus einem BASIC-Programm ein Maschinensprache-Unterprogramm auf, gibt an dieses das Argument (Zahl) weiter und gibt selbst einen (anderen) Zahlenwert in einer Gleitpunktvariablen an das BASIC-Programm zurück.

Die Startadresse des Maschinenprogramms muss sich beim Aufruf von USR() in den Speicheradressen 785 und 786 befinden - ggf. muss sie zuvor mit dem BASIC-Befehl POKE dort hinein geschrieben werden. Der Rückgabewert wird im Gleitpunkt-Akkumulator bei der Speicheradresse 97 gespeichert, bevor er an das BASIC-Programm übergeben wird.

Befindet sich keine richtige Startadresse für ein Maschinenspracheprogramm in den Speicheradressen 785 und 786, so erscheint die BASIC-Fehlermeldung ?ILLEGAL QUANTITY ERROR in Zeilennummer. Es werden nur Zahlen aus dem Wertebereich -1e+38 bis 1e+38 verarbeitet, ansonsten wird die BASIC-Fehlermeldung ?OVERFLOW ERROR IN Zeilennummer ausgegeben. Fehlt das numerische Argument, so erscheint ?SYNTAX ERROR IN Zeilennummer. Bei der Verwendung von falschen Variablentypen wird die BASIC-Fehlermeldung ?TYPE MISMATCH ERROR in Zeilennumer ausgegeben.

[Bearbeiten] Beispiele

10 S1 = USR(123)
20 PRINT S1
30 PRINT USR(S1)
Persönliche Werkzeuge
In anderen Sprachen