PENY

Aus C64-Wiki
Wechseln zu: Navigation, Suche
PENY
Format: a = PENY
Parameter
keine
Einordnung
Typ: Systemvariable
Kontext: Peripheriekontrolle
Aufgabe: ermittelt die Y-Position eines Lightpens
Abkürzung: keine
Verwandte Befehle
JOY - POT - PENX


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort PENY.

Typ: Systemvariable
Syntax: a = PENY
oder:   PRINT PENY

PENY fragt die Y-Position eines am Controlport 1 angeschlossenen Lightpens ab (Speicherstelle $D014 im VIC). Die Spitze des Stifts ist dabei sensibel für das Aufblitzen des Elektronenstrahls des verwendeten Bildschirms/Monitors bei einem Durchgang an dieser Stelle, daher funktioniert so ein Gerät nicht mehr an modernen Flachbildschirmen.

Die Ordinatenangabe muss vor einer Verwendung in Programmen zunächst kalibriert werden, da nicht die Entfernung vom oberen Rand des Grafik-/Textfensters auf dem Bildschirm, sondern von Rand des Bildschirms selbst vom Interpreter ausgegeben wird. Laut "Trainingsbuch zum Simons' Basic" soll man daher die Rückgabe von PENY so auf Grafikkoordinaten umrechnen:

y = PENY-40

Beachten: PENY liefert nur dann sinnvolle Werte, wenn vorher der korrespondierende Befehl PENX ausgeführt wurde. (Die eigentliche Portabfrage findet bei PENX statt.)

Beispiel: 

160 HIRES 6,7: xa=0: ya=0
170 PROC plot
180 x=(PENX-40)*2
190 y=PENY-40
200 IF x<0 OR x>319 OR y<0 OR y>199 THEN CALL plot
210 LINE xa,ya,x,y,1
220 xa=x: ya=y
230 GET a$: IF a$="←" THEN HIRES 6,7
240 CALL plot

Beispiel entnommen aus "Trainingsbuch zum Simons' Basic", Seite 368. 
PROC wird hier als Sprunglabel verwendet, nicht als Einleitung einer Prozedur.