Nikolaus Heusler Archiv

Erschienen in 64'er Magazin, Ausgabe unbekannt · Originaldatei: AMIGMAUS.TXT

Hinweis: Dies ist das an die Redaktion eingereichte Manuskript, nicht der gedruckte Endtext. Layout, Bildunterschriften, Korrekturen und Kürzungen der Redaktion können in der veröffentlichten Fassung abweichen.

NEU: Die AMIGA-Maus am C 64 betreiben

Wir stellen Ihnen einen Maustreiber vor, der auf Diskette nur wenige Bytes belegt und den Anschluß einer AMIGA-Maus am Commodore 64 ermöglicht. Dazu ist wohlgemerkt keinerlei Zusatzhardware erforderlich, Sie brauchen keinen Konverter oder Adapter. Die Maus, die sonst am AMIGA betrieben wird, kann einfach in den Joystickport des C 64 gesteckt werden. Den Rest erledigt das Programm. Die Bedienung mit der Maus ist eine sehr angenehme Sache, der sich kein C 64-Anwender mehr entziehen sollte.

Bevor die Programme beschrieben werden, wollen wir erst einmal darauf eingehen, wie die AMIGA-Maus die Signale an den C 64 übermittelt. Die Kenntnis der Signale ist wesentliche Voraussetzung, wenn ein Treiber programmiert werden soll. Die Maus belegt am Joystickport die fünf Pins, über die auch ein Joystick arbeitet. Bit 4 (Wert 16), gewöhnlich verantwortlich für den Feuerknopf, wird auf Null gesetzt, wenn Sie die linke Maustaste drücken. Die rechte Maustaste ist an eine der beiden A/D-Leitungen angeschlossen, die normalerweise der SID auswertet. Da die Leitung bei Betätigung der Taste aber auf Masse gelegt wird, kann diese Taste bei der hier vorgestellten Version nicht abgefragt werden, da die A/D-Leitungen high-aktiv sind. Dies ist gewissermaßen der Preis dafür, daß die Maus ohne Zusatzhardware angeschlossen wird. Aber auch »nur« mit der linken Taste lassen sich Programme steuern, wie das weiter unten erklärte Malprogramm beweist. Die eigentliche Mausbewegung wird über die vier Bewegungsleitungen (Bits 0 bis 3) übermittelt, allerdings in einem anderen Format als beim Joystick. Bewegen Sie die Maus auf- oder abwärts, werden die Bits 0 und 2 abwechselnd auf 0 und 1 gesetzt. Zur Unterscheidung der Richtung (oben oder unten) erfolgt die Umpolung phasenverschoben. Das Diagramm zeigt die Funktionsweise (die Zeit-Achse verläuft hierbei nach rechts):

Bewegung nach oben: Bit 0: 0 0 1 1 0 0 1 1
Bit 2: 0 1 1 0 0 1 1 0

Bewegung nach unten: Bit 0: 0 1 1 0 0 1 1 0
Bit 2: 0 0 1 1 0 0 1 1

Die selben Signale werden bei einer Bewegung nach links oder rechts auf der Leitungen 1 und 3 übermittelt:

Bewegung nach links: Bit 1: 0 0 1 1 0 0 1 1
Bit 3: 0 1 1 0 0 1 1 0

Bewegung nach rechts: Bit 1: 0 1 1 0 0 1 1 0
Bit 3: 0 0 1 1 0 0 1 1

Je schneller die Bits wechseln, desto schneller wird die Maus über die Unterlage gerollt. Der Treiber muß nun nur die Speicherzelle 56320 (für Port 2, oder aber 56321 für Port 1) auslesen und die Bits 0 bis 4 auswerten und entsprechnd der Mausbewegung die Koordinaten für das Maus-Sprite erhöhen oder erniedrigen.

Kommen wir nun zur Beschreibung der Demoprogramme, die den kompletten Treiber bereits enthalten. Sie können wählen zwischen einer kurzen Version (»OHNE DRAW«, 1 Block), mit der nur das Sprite über den Bildschirm bewegt werden kann, und einer 2 Blocks langen »Komfort-Version« mit dem Namen »MIT DRAW«, mit der Sie sogar Bilder zeichnen können.

Obwohl beide Programme in reiner Maschinensprache verfaßt sind, können sie jeweils wie Basicprogramme geladen und mit RUN gestartet werden. Also zum Beispiel

LOAD "MIT DRAW",8
RUN

um das Malprogramm zu laden. Hier wird der Mauszeiger mit der Maus in Port 2 bewegt; solange Sie die linke Maustaste betätigen, wird gezeichnet. Wenn Sie die Leertaste drücken, wird das gesamte Bild gelöscht.

Zuletzt noch ein allgemeiner Tip: Da die Maus, wenn Sie in Port 2 eingesteckt ist, die Tastatur stört, empfiehlt es sich, die Maus erst dann in den Port zu stecken, wenn Sie Software bereits geladen und gestartet ist und voraussichtlich keine Tastatureingaben mehr erwartet werden. Übrigens: Es ist bereits ein AMIGA-Maustreiber für GEOS in Arbeit!

(Nikolaus Heusler)