MultiPlay

Aus Deutsches CPCWiki
Wechseln zu: Navigation, Suche

Das MultiPlay ist eine Erweiterungskarte, die wechselweise zwei Joystickports bzw. Mausports zur Verfügung stellt.

Anschluss von 2 Joysticks bzw. Mäusen

Die MultiPlay ist eine kleine Erweiterungskarte im MX4 Format und bietet zwei SUB-D 9 Polige Anschlüsse. Daran lassen sich entweder normale Joysticks (mit bis zu drei Feuerknöpfen) oder entsprechende Mäuse anschliessen.

Für jeden der beiden Ports (A oder B) kann per Schalter zwischen Maus und Joystick gewählt werden.

Die Abfrage ist denkbar einfach: Die entsprechende I/O Adresse wird eingelesen. Das Format ist Joystick-komptibel.

I/O Adressen

Jeder Port kann entweder mit einem Joystick oder mit einer Maus betrieben werden, bitte den Schalter in die entsprechende Stellung bringen (AMS bzw. AMI für Amstrad bzw. Amiga).

Joysticks (Schalter auf AMS)

  • &F990 : 0321RLDU - Eingabe A, Joystick und Knöpfe = Port A Bits
  • &F991 : 0321RLDU - Eingabe B, Joystick und Knöpfe = Port B Bits

Aktionsknöpfe:

Bit 0: Auf

Bit 1: Ab

Bit 2: Links

Bit 3: Richts

Bit 4: Erster Feuerknopf oder LMB

Bit 5: Zweiter Feuerknopf oder RMB

Bit 6: Dritter Feuerknopf oder MMB

Bit 7: 0

Was wird an den CPC's gelesen, ohne MultiPlay?

  • &F990 : &00, &7F(127), &FF (255)
  • &F991 : &40(64), &FF(255)

Durch Abfrage der Ports kann nicht ermittelt werden, ob ein MultiPlay angeschlossen ist oder nicht

Mäuse (Schalter auf AMI)

  • &F992 : 00000XXX bzw. 11111XXX - Eingabe A, Maus X = Port A Maus POS-X Wert
  • &F993 : 00000YYY bzw. 11111YYY - Eingabe A, Maus Y = Port A Maus POS-Y Wert
  • &F994 : 00000XXX bzw. 11111XXX - Eingabe B, Maus X = Port B Maus POS-X Wert
  • &F995 : 00000YYY bzw. 11111YYY - Eingabe B, Maus Y = Port B Maus POS-Y Wert

Maus Bits

  • Bit 0-2: Wert
  • Bit 3-7: Vorzeichen (alle 0 oder 1)

Auflösung der Maus

Die Maus hat eine Auflösung von 200 Punkten pro Zoll (DPI).

Genauigkeit der Maus

4 Bit mit Vorzeichen auf 8 Bit erweitert (-8 bis +7). Maus Register X/Y gibt den Offset seit dem letzten Lesen zurück. Der Wert erreicht einen Höchstwert, falls für längere Zeit keine Abfrage erfolgt oder die Bewegung zu schnell ist. Aber der Wert wird nicht überlaufen.

Aus Sicht der Software liest man einfach den Port und addiert den Wert zur Position.

  • Lesen unter BASIC mittels des 50 Hz Interrupts ist schnell genug um den Cursor zu bewegen.
  • Lesen unter Assembler mit 300 Hz Interrupt ist schnell genug um einen Mauspfeil mit Beschleunigung darzustellen.

Maus Notizen

Proportionale Amiga Mäuse sind nötig um die Ports &F992 to &F995 zu benutzen (Auf AMI schalten). Ports &F990, &F991 werden für die Knöpfe benutzt. Die anderen Bits geben nutzlose Daten zurück.

Bei den Mäusen spiegeln Bits 7,6,5,4 den Inhalt von Bit 3 wieder. Effektiv handelt es sich dabei um 8 Bit signierte Werte in Bereich von -16 (= &F0) bis 15 (= &0F).

Bei den Mäusen sind die Feuerknöpfe ausserdem weiterhin über die Joystick-Ports einzulesen (Maus A über Joystick A, und Maus B über Joystick B)

Benutzbare Mäuse

  • Amiga Maus
  • Atari ST Maus, aber mit Adapter!

Software-Unterstützung