JOY (BASIC 3.5)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
JOY (BASIC 3.5)
Syntax: JOY (<Joystickport>)
Parameter
<Joystickport>: numerischer Ausdruck mit Wert 1 oder 2
Einordnung
Typ: numerische Funktion
Kontext: Ein/Ausgabe
Aufgabe: Joystick-Abfrage
Abkürzung: jO
Token: $cf (207)
Verwandte Befehle

Anmerkung: Dieser Artikel beschreibt die BASIC-Funktion JOY ab Commodore BASIC V3.5 oder höher.

Mit der BASIC-Funktion JOY() wird die aktuelle Joystickstellung beim C16/116/128 und plus/4 zurückgegeben.

Joystickstellung Joystick nicht betätigen Joystick nach vorne Joystick rechts-vor Joystick nach rechts Joystick rechts-zurück Joystick zurück Joystick links-zurück Joystick nach links Joystick links-vor Feuerknopf drücken Joystick nach vorne und Feuerknopf drücken Joystick rechts-vor und Feuerknopf drücken Joystick nach rechts und Feuerknopf drücken Joystick rechts-zurück und Feuerknopf drücken Joystick zurück und Feuerknopf drücken Joystick links-zurück und Feuerknopf drücken Joystick nach links und Feuerknopf drücken Joystick links-vor und Feuerknopf drücken
Rückgabewert 0 1 2 3 4 5 6 7 8 128 129 130 131 132 133 134 135 136

Liegt am Joystickport ein Signal an, das bei einem Joystick nicht vorkommen kann (z.B. ein Paddle-Paar, mit gleichzeitig gedrückten Feuerknöpfen), so ist der Rückgabewert nicht definiert sondern implementationsabhängig.

Der Übergabewert entspricht dem Joystickport und darf auch eine Variable oder sonstiger beliebiger numerischer Ausdruck sein.

  • 1 ... erster Joystickport
  • 2 ... zweiter Joystickport

Bei allen anderen Werten erscheint die BASIC-Fehlermeldung ?ILLEGAL QUANTITY ERROR.


Beispiel[Bearbeiten | Quelltext bearbeiten]

? JOY(2)

Aktuelle Joystickstellung des zweiten Joystickports am Bildschirm ausgeben.

5 J1=JOY(1)
6 IF J1>=128 THEN J1=J1-127+8
7 ON J1 GOSUB 11,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28
8 GOTO 5
11 PRINT "N" : RETURN
12 PRINT "NO": RETURN
13 PRINT "O" : RETURN
14 PRINT "SO": RETURN
15 PRINT "S" : RETURN
16 PRINT "SW": RETURN
17 PRINT "W" : RETURN
18 PRINT "NW": RETURN
20 PRINT "FEUER": RETURN
21 PRINT "FEUER + N ": RETURN
22 PRINT "FEUER + NO": RETURN
23 PRINT "FEUER + O ": RETURN
24 PRINT "FEUER + SO": RETURN
25 PRINT "FEUER + S ": RETURN
26 PRINT "FEUER + SW": RETURN
27 PRINT "FEUER + W ": RETURN
28 PRINT "FEUER + NW": RETURN

Endlose Joystickabfrage aller 18 Stellungen des ersten Joystickports (Abbruch mit RUN/STOP ).

oder für kurze Tests

DO : ? JOY(2) : LOOP