C128 NetLex

Commodore 128 Bedienungshandbuch
Commodore 128 System Guide



USR-Funktion

Format: v=USR(x)

Zweck:Verzweigt zu einem Maschinensprache-Unterprogramm, dessen Startadresse vorher in zwei Speicherzellen (in der sogenannten "erweiterten Zero Page"; s.a. Organisationsspeicher des Interpreters im Anhang H) abgelegt werden muß. Die Adresse ist byteweise in der Reihenfolge niederwertiges Byte, höherwertiges Byte (Low Byte / High Byte) zu übergeben. Die Speicherzellen sind:

785 ($0311) und 786 ($0312) im C64-Modus,
4633 ($1219) und 4634 ($121A) im C128-Modus.

Das Argument x wird im ersten Gleitkommaakkumulator des Interpreters übergeben, in den auch das Ergebnis der Berechnungen durch das Unterprogramm abgelegt werden muß, damit das BASIC-Hauptprogramm dieses Ergebnis unmittelbar einer Variablen zuweisen oder in die Berechnung eines Ausdrucks einfließen lassen kann.

Bemerkungen:Wird vor dem Aufruf der USR-Funktion die Startadresse des Maschinensprache-Unterprogramms nicht definiert, so wird ein ILLEGAL QUANTITY ERROR gemeldet (dies basiert auf den Vorgabewerten in den besagten Speicherzellen).

Es ist grundsätzlich möglich, hinter der schließenden Klammer des Funktionsaufrufs weitere Parameter anzufügen. Deren Auswertung obliegt, wie beim SYS-Befehl, allein dem aufgerufenen Maschinensprache-Unterprogramm.

Eine umfassende Beschreibung zur USR-Funktion im C64-Modus (BASIC 2.0) findet sich im C64Wiki.

Hinweis: Der Originaltext zur USR-Funktion aus dem Handbuch enthält gravierende Fehler und musste daher stark überarbeitet werden.

Beispiel:10 POKE 785,0
20 POKE 786,192
30 A=USR(X)
40 PRINT A


Beispiel für den C64. Das Maschinensprache-Unterprogramm wird ab $C000 erwartet.

10 BANK 15
20 POKE 4633,0
30 POKE 4634,19
40 A=USR(X)
50 PRINT A


Beispiel für den C128. Das Maschinensprache-Unterprogramm wird ab $F1300 erwartet (BANK 15 kann ggf. entfallen, da dies dem Vorgabewert für die Speicherbank entspricht).

A=USR(X),Y,Z

Die Zeichenfolge ,Y,Z muss vom Maschinensprache-Unterprogramm der USR-Funktion ausgewertet werden.


Auszug aus dem Commodore C128 (D) Bedienungshandbuch: Seite 5-70
Umfassend überarbeitet und ergänzt von WTE


[Seitenanfang] [Infos] [Links] [Lexikon] [Home]
Erstellt von WTE, am 26. Februar 2009; überarbeitet am 08. Oktober 2011