Paddles

Aus C64-Wiki
Wechseln zu: Navigation, Suche
Commodore Paddles, VIC 20

Der Name "Paddle" (engl: Schläger bzw. Tischtennisschläger, auch Paddel) entstand in der Frühzeit der Computerspielerei. Im Klassiker Pong, eines der ersten Videospiele überhaupt, wurden die beiden balkenförmigen Schläger der Spieler auf dem Bildschirm mit analogen Drehreglern gesteuert. So übertrug sich der Name vom Bildschirm auf die Hardware in der Hand und stand bald synonym für sämtliche analogen Drehregler-Eingabegeräte. Bei den Commodore Heimcomputern wie dem C64/128 oder VC-20 wird er am Controlport (Joystickport) angeschlossen.

Allgemein[Bearbeiten]

Ein Paddle ist ein analoges (stufenloses) Eingabegerät, dass vorwiegend wie der Joystick für Computerspiele genutzt wird. Mit einem verstellbaren Drehknopf wird innerhalb des Paddles ein Potentiometer (veränderlicher Widerstand) betätigt und damit der Widerstandswert verändert. Dieser Wert wird im C64 mit Hilfe eines Analog/Digital-Wandlers in einen digitalen 8-Bit-Wert umgewandelt (0-255). Entsprechend der Bewegung des Drehknopfes wird dann am Computer eine Reaktion ausgelöst. Der Feuerknopf wird wie beim Joystick digital ausgewertet.


Modellgalerie:

Programmierung[Bearbeiten]

Paddle-Register im C64[Bearbeiten]

Dezimal-Wert Hex-Wert Beschreibung Zustand
56320 $DC00 Controlport 1 auswählen Bit6=0 und Bit7=1
56320 $DC00 Controlport 2 auswählen Bit6=1 und Bit7=0
54297 $D419 Paddle X-Wert 0..255
54298 $D41A Paddle Y-Wert 0..255
56321 $DC01 Paddle A, X-Feuerknopf Bit2 (0=Feuerknopf gedrückt ; 1=Feuerknopf nicht gedrückt)
56321 $DC01 Paddle A, Y-Feuerknopf Bit3 (0=Feuerknopf gedrückt ; 1=Feuerknopf nicht gedrückt)
56320 $DC00 Paddle B, X-Feuerknopf Bit2 (0=Feuerknopf gedrückt ; 1=Feuerknopf nicht gedrückt)
56320 $DC00 Paddle B, Y-Feuerknopf Bit3 (0=Feuerknopf gedrückt ; 1=Feuerknopf nicht gedrückt)

Paddle A = Paddle in Port 1, Paddle B = Paddle in Port 2

Beispiel-Programm in BASIC[Bearbeiten]

Dieses Programm liest den X/Y-Wert der Paddles aus (Controlport 1):

10 POKE 56322, 224 : REM Tastaturabfrage ausschalten
20 PRINT "Paddle Port1 X-Wert =" ; PEEK(54297) : REM Wert X auslesen
30 PRINT "Paddle Port1 Y-Wert =" ; PEEK(54298) : REM Wert Y auslesen
40 POKE 56322, 255 : REM Tastaturabfrage einschalten

cc65 stellt einen o65-Treiber zur Verfügung.

Hardware[Bearbeiten]

Modell 1312 geöffnet
470kΩ Potentiometer und Feuerknopf

Installation[Bearbeiten]

Die 9-polige Buchse des Paddles wird in den Controlport 1 oder 2 eingesteckt.

Schaltplan VIC20 Paddles[Bearbeiten]

paddle str.gif

Innenschaltung im C64[Bearbeiten]

paddle innenschaltung c64.gif

Der Kondensator im C64 wird über den Paddle-Widerstand aufgeladen.
Je größer der Widerstand, desto länger die Ladezeit des Kondensators. (t=R*C)
Diese Zeit wird im Soundchip (SID) des C64 in einen Wertebereich von 0 bis 255 abgebildet.
Nach der Entladung des Kondensators wiederholt sich dieser Vorgang.
Um zwei Paddle-Paare im C64 benutzen zu können, ist im C64 ein analoger Schalter (CMOS-IC 4066) eingebaut.
Dieser wird durch die beiden Portleitungen PA6 und PA7 des CIA #1 geschaltet.
  • PA6=1 und PA7=0 Paddle A (Controlport 1) aktiv
  • PA6=0 und PA7=1 Paddle B (Controlport 2) aktiv
ACHTUNG: Bei jedem Interrupt wird wieder auf Paddle A umgeschaltet, deshalb muss für den Betrieb eines Paddles an Port 2 ein geeignetes Maschinenprogramm eingesetzt werden.

Widerstands-Kennlinie[Bearbeiten]

paddles widerstandsmessung.gif

In diesem Messdiagramm ist zu erkennen, dass die Widerstandswerte leider nicht linear verlaufen.

Außerdem gibt es bei den Sound-Chips (SID) verschiedene Versionen, bei denen die Werte untereinander abweichen. Es ergeben sich 2 Gruppen aus dem Diagramm:

  • Gruppe1: 6581 (R2) und 6581R3
  • Gruppe2: 6581R4, 6581R4AR und 8580R5

SID-Erkennung[Bearbeiten]

Die folgende einfache Testschaltung für den Controlport 1 kann zwischen den beiden Gruppen unterscheiden. Der 220 kΩ Widerstand sollte im Bereich 219...221 kΩ liegen. Es empfiehlt sich den Widerstandswert nachzumessen, um am Computer ein korrektes Ergebnis zu bekommen.

soundchiperkennung.gif

10 PRINT PEEK(54297) : GOTO 10

Zieht man in der oben abgebildeten Grafik an der y-Achse (Widerstand) bei 220 kΩ eine waagrechte Linie, so erkennt man an den Schnittpunkten, dass es sich bei Werten von etwa 210 bis 235 um einen SID 6581 oder 6581R3 handelt. Bei Werten von 170 bis 190 handelt es sich um einen SID 6581R4, 6581R4AR oder 8580R5.

Vereinfacht lässt sich sagen:

  • Bei Werten über 200 handelt es sich um einen SID 6581 oder 6581R3.
  • Bei Werten unter 200 handelt es sich um einen SID 6581R4, 6581R4AR oder 8580R5.

Allgemeines[Bearbeiten]

Anwendungsgebiete[Bearbeiten]

  • Hardware-Steuerungen
  • Eingabegerät für Spiele

Vorteile gegenüber einem Joystick[Bearbeiten]

  • Exaktere Eingaben mittels Potentiometers möglich.
  • Da pro Controlport zwei Paddles unterstützt werden, könnten vier Spieler gleichzeitig spielen, wenn es entsprechende Spiele geben würde.

Nachteile gegenüber einem Joystick[Bearbeiten]

  • nur wenige Spiele werden unterstützt
  • Bewegungen nur in einer Achse nutzbar (z.B. links und rechts)

Unterschied zwischen Commodore und Atari Paddles[Bearbeiten]

Dieser besteht im Wesentlichen aus dem Widerstand der Potentiometer (Commodore = 470 kΩ, Atari = 1 MΩ). Man kann zwar CX30 Atari-Paddles am C64 benutzen, aber durch den größeren Bereich der Potentiometer sind diese am C64 extrem empfindlich, und es gibt einen großen "toten Bereich". C64-Paddles am Atari VCS hingegen sind nicht benutzbar, da man z.B. bei Pong seinen "Schläger" nicht bis an den oberen Bildschirmrand steuern kann, sondern nur bis etwa zur Mitte des Bildschirms.

Spiele mit Paddle-Unterstützung[Bearbeiten]

Siehe auch Liste im Forum64

Weblinks[Bearbeiten]

WP-W11.png Wikipedia: Paddle (Eingabegerät)


Artikel des Monats.gif Dieser Artikel wurde Artikel des Monats.