PEEK

Aus C64-Wiki
Zur Navigation springenZur Suche springen
PEEK
Syntax: PEEK(<Speicheradresse>)
Parameter
<Speicheradresse>: Speicheradresse, die ausgelesen wird
Einordnung
Typ: numerische Funktion
Kontext: System
Aufgabe: Auslesen einer Speicheradresse
Abkürzung: pE
Token: $c2 (194)
Verwandte Befehle
POKE, WAIT

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


Mit der BASIC-Funktion PEEK() kann eine beliebige Speicheradresse (siehe Speicherbelegungsplan) von 0 bis 65535 ausgelesen werden. Nicht ganzzahlige Werte werden implizit analog zu INT in eine entsprechende Ganzzahl umgewandelt. Liegt die Speicheradresse nicht in dem oben angegebenen Bereich, erscheint die BASIC-Fehlermeldung ?ILLEGAL QUANTITY ERROR.
Der Inhalt der adressierten Speicherstelle wird stets ein Zahlenwert von 0 bis 255 (Wertebereich eines Bytes) zurückgegeben.

Beispiele[Bearbeiten | Quelltext bearbeiten]

PRINT PEEK(53280)

Der Zahlenwert oder Bildschirmrahmenfarbe wird angezeigt.

POKE 53280, PEEK(53281)

Bildschirmrahmenfarbe wird gleich der Hintergrundfarbe gesetzt.

A = PEEK(53281)

Wert der Hintergrundfarbe wird in Fließkommavariable A abgelegt.

PRINT PEEK(646) AND 15

Die aktuelle Textfarbe wird angezeigt, jedoch mit der Einschränkung, dass diese nur Zahlen zwischen 0 bis 15 wiedergibt.

10 A = PEEK(197): IF A=64 THEN 10
20 PRINT "DIE GEDRUECKTE TASTE HAT DEN WERT: "; A
40 IF A=46 THEN END
30 IF A<>0 THEN 10

Liest die aktuell gedrückte Taste aus der Tastatur aus. Wird keine Taste gedrückt ist der Wert 64. Mit der Taste @  (Tastencode 46) oder DEL  (Tastencode 0) kann das Programm ordentlich beendet werden. Weiterhin kann mit der Taste RUN/STOP  abgebrochen werden.

B = PEEK(43) + PEEK(44) * 256

Zeigeradresse auslesen/bilden: Es wird der Anfang des BASIC-Programmspeichers ausgelesen, die Adresse gebildet (Low-Byte + High-Byte * 256, siehe auch Beispiel (DEEK, Double Peek) einer DEF-FN-Implementierung) und diese in der Variable B abgelegt (generell sollte hier keine Ganzzahlvariable verwendet werden, da diese keine Adressen größer 32767 aufnehmen kann!). Der BASIC-Anfang liegt üblicherweise bei Speicheradresse 2049.

Für weitere Beispiele siehe auch jene des BASIC-Befehls POKE.