Dies ist eine alte Version des Dokuments!


Joystick

z1013-joystickanschluss-vp.jpg
Anschluss nach practic 1/88 und Brosig-Monitor

Der Anschluss eines Spielhebels (Joystick) wurde schon früh von Amateuren erdacht und veröffentlicht. Bereits in practic 1/87, S. 30-31 wurde der Selbstbau von Joysticks beschrieben. Es gab diverse Artikel zu diesem Thema:

Für die Hardware und die die Abfrage per Software gibt es leider keinen einheitlichen Standard.

Manche Spiele unterstützen deshalb alle bekannten Varianten, wie z.B. Labirinto (http://overthehill.de/Z1013/index.htm).

Im einfachsten Fall wird eine fünfpolige Diodenbuchse an der Tastatur angebracht und die Schalter des Spielhebels werden den entsprechend programmierten Tastaturkontakten parallel geschaltet (practic 1/87).

Eleganter ist die Nutzung von Port A der PIO, das über den Steckverbinder X4 zugänglich ist. Dann ist der Anschluss von zwei Spielhebeln gleichzeitig möglich.In practic 4/87 wurde eine Anschluss-Variante vorgestellt (li), im nächsten Heft 1/88 erschien die Variante rechts (s. Bild oben).

practic 4/87 practic 1/88

Letztere Schaltung hat den Vorteil, dass die industriell gefertigten Spielhebel des Z9001/KC87 angeschlossen werden konnten. Zusätzlich ist der Code zur Abfrage dieses Anschlusses im bekannten Brosig-Monitor enthalten und kann per Sprungverteiler aufgerufen werden.

                    ;Joystickabfrage, Joystickmodul nach 'practic'
                    ;
3E CF       GETST:      LD      A,0CFH                  ;PIO Mode 2
0E 1F                   LD      C,1FH
D3 01                   OUT     1, A
79                      LD      A,C
D3 01                   OUT     1, A
3E 20                   LD      A,20H                   ;linker Joystick
D3 00                   OUT     0, A
DB 00                   IN      A, 0
A1                      AND     A, C
37                      SCF
C8                      RET     Z                       ;Cy=1 --> kein Modul
2F                      CPL
A1                      AND     A, C
47                      LD      B,A
3E 40                   LD      A,40H                   ;rechter Joystick
D3 00                   OUT     0, A
DB 00                   IN      A, 0
2F                      CPL
A1                      AND     A, C
4F                      LD      C,A
B0                      OR      B                       ;Z=0 --> keine Taste gedrueckt
C9                      RET

Wenn nur ein Joystick genutzt werden soll, kann er auch direkt am USER-Port angeschlossen werden:

USER-Port                           9pol. Joystickbuchse

+5V (A1) -------------------------------- +5V    (7)
A0  (A4) -------------------------------- LEFT   (3)
A1  (B4) -------------------------------- RIGHT  (4)
A2  (C4) -------------------------------- DOWN   (2)
A3  (A3) -------------------------------- UP     (1)
A4  (B3) -------------------------------- Taste  (6)
0V  (A5) -------------------------------- 0V     (8)

Bei einem solchen Anschluss können westliche Joysticks ohne Änderungen genutzt werden. Eventuell ist es bei einigen Typen nötig, die Leitungen A0..A4 am Z1013 mit 10k-Widerständen gegen +5V abzublocken.

In meinem Monitor ist zusätzlich die INKEY-Routine um die Joystick-Abfrage erweitert worden:

Im Brosigmonitor ist eine Joystickroutine für die Hardware nach 'practic 1/88' enthalten. Diese nutzend, wurde eine kurze Routine geschrieben, die die Nutzung des linken Joysticks parallel zu den Tasten zur Cursorsteuerung und zu SPACE ermöglicht. Viele Spiele sind damit ohne Änderung mit dem Joystick nutzbar. Leider sind Joystick- und Druckerhardware beide für den USER-PORT 0 bestimmt. Deshalb kann nur mit einem von beiden gearbeitet werden. Ist ein Joystickmodul angeschlossen, muss dieses mit @I 1 initialisiert werden. Mit jedem Monitorreset geht diese Zuordnung verloren und muss wiederholt werden.

  • z1013/joystick.1514972344.txt.gz
  • Zuletzt geändert: 2018/01/03 09:39
  • von volkerp