Paddles
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 | Quelltext 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 | Quelltext bearbeiten]
Paddle-Register im C64[Bearbeiten | Quelltext 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 | Quelltext 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
Vereinfachte Programmierung[Bearbeiten | Quelltext bearbeiten]
Verschiedene BASIC-Erweiterungen stellen Paddle-Unterstützung und -Abfragen mit einem einfachen BASIC-Befehl dem C64/128 zur Verfügung:
- Simons' BASIC -
POT
- Supergrafik -
PADDLE
- Super Expander 64 -
RPOT
- Structured BASIC -
PADDLE
- BASIC 7.0 -
POT
Weitere Programmierhilfen oder Tools zur Paddle-Programmierung:
- Auch das Commodore-Logo unterstützt die Paddle-Programmierung mit den Befehlen:
PADDLE
undPADDLEBUTTON
. - Der C-Compiker cc65 stellt einen o65-Treiber zur Verfügung (siehe auch Artikel Beispielprogramme in C/Paddle Abfrage).
Hardware[Bearbeiten | Quelltext bearbeiten]
Installation[Bearbeiten | Quelltext bearbeiten]
- Die 9-polige Buchse des Paddles wird in den Controlport 1 oder 2 eingesteckt.
Schaltplan VIC20 Paddles[Bearbeiten | Quelltext bearbeiten]
Innenschaltung im C64[Bearbeiten | Quelltext bearbeiten]
- 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 | Quelltext bearbeiten]
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 | Quelltext 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.
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 | Quelltext bearbeiten]
Anwendungsgebiete[Bearbeiten | Quelltext bearbeiten]
- Hardware-Steuerungen
- Eingabegerät für Spiele
Vorteile gegenüber einem Joystick[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]
- Arkanoid
- Clowns
- Le Mans
- Monster Buster
- Night Driver
- Omega Race
- Panic Analogue
- Phong!
- Pinball Spectacular
- Puzzle Bobble
- Rack'em Up
- Revs
- Sea Wolf
- Space Lords: Centaurus
- Spy's Demise
- Super Smash
Siehe auch Liste im Thema: Welche Spiele ausser Arkanoid unterstützen Paddles? auf Forum64.de.
Weblinks[Bearbeiten | Quelltext bearbeiten]
Wikipedia: Paddle (Eingabegerät) |
Dieser Artikel wurde Artikel des Monats. |