Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
z1013:joystick [2018/01/03 10:59] volkerpz1013:joystick [2022/10/25 08:19] (aktuell) volkerp
Zeile 7: Zeile 7:
  
   * [[z1013:literatur:jute-87-06]] 2 Joysticks mit je 4 Tasten an USER-Port    * [[z1013:literatur:jute-87-06]] 2 Joysticks mit je 4 Tasten an USER-Port 
-  * [[z1013:literatur:practic-87-4-1|]] wie JU+TE, erweitert um die Action-Tasten+  * [[z1013:literatur:practic-87-4-1|]] wie JU+TE, aber andere Tastenbelegung, und erweitert um die Action-Tasten
   * [[z1013:literatur:practic-88-1-2|]] 2 Joysticks mit je 5 Tasten und Sound an USER-Port, im BROSIG-Monitor enthalten   * [[z1013:literatur:practic-88-1-2|]] 2 Joysticks mit je 5 Tasten und Sound an USER-Port, im BROSIG-Monitor enthalten
  
Zeile 85: Zeile 85:
 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.  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. 
  
- 
-Daher vermute ich jetzt auch das die 1/88 die verbreitetere Variante ist. Ich werde mal ein paar Spiele antesten. 
  
 ===== Spiele ===== ===== Spiele =====
Zeile 95: Zeile 93:
 practic 4/87: ladder_8_4.z80 (Stick 2)\\ practic 4/87: ladder_8_4.z80 (Stick 2)\\
 practic 1/88: schiessbude_1_0.z80 (Stick 1)\\ practic 1/88: schiessbude_1_0.z80 (Stick 1)\\
 +ERF-soft (wie practic 1/88, aber jeweils links/rechts sowie hoch/runter vertauscht)
  
 Die rühmliche Ausnahme ist Labirinto.z80 (von 2015), welches alle Varianten unterstützt :-) Die rühmliche Ausnahme ist Labirinto.z80 (von 2015), welches alle Varianten unterstützt :-)
Zeile 103: Zeile 102:
  
 http://z1013.mrboot.de/software-database/db/index.html http://z1013.mrboot.de/software-database/db/index.html
 +
 +
 +von Bert:
 +
 +Bei den Programmen mit Joystickabfragen wird oft der Ausgangsport A mit 0 initialisiert. Damit dürfte die Art des Widerstandes egal sein. Wichtig ist, das auf den nicht genutzten Pins eine '0' zurückgelesen wird. Die wenigsten Programme machen eine Bitabfrage, i.d.R. wird der gelesene Port mit einem Byte verglichen.
 +
 +Statistik:\\
 +practic 1/88: 20 Spiele\\
 +ju+te 6/87: 4 Spiele\\
 +practic 4/87: 2 Spiele
 +
 +Bemerkungen:
 +  * kein Spiel nutzt den Einsprung FFBBh des Brosigmonitors
 +  * alle Spiele unterstützen maximal einen Joystick
 +  * eigentlich alle Spiele nach practic 1/88 nutzen den Stick, der mit PA6 aktiviert wird (außer Labirinto.z80)
 +  * die Endung "+prJ" wird oft für Spiele mit dem Joystick nach practic 1/88 verwendet
 +  * wall+j.z80: Joy-hoch ist links, Joy-runter ist hoch und Joy-links ist runter. Da hat offenbar jemand die Pins verdreht. Mit wall+prj.z80 funktioniert alles. nettes Feature: Soundausgabe auf PA0
 +  * schiessbude_1_0.z80: Joy-hoch ist links, Joy-rechts ist rechts, der selbe Programmierer wie von wall+j.z80
 +  * C.FUSSGAENGER.z80 reagiert irgendwie gar nicht auf Eingaben, weder Joystick noch Tastatur
 +
 +von Hobi:
 +
 +mind 2 Spiele nutzen den Sprungverteiler: AUTO-3D -J, MAUS-J. Plus einige KC-BASIC Varianten nutzen den Sprungverteiler, wobei ich kein Programm gefunden habe, dass die Joystick-Funktion benutzt.
 +
 +Bei den Programmen mit Joystickabfragen wird oft der Ausgangsport A mit 0 initialisiert.
 +Die Pull-Down Widerstände sind bei der CMOS PIO notwendig. Nicht alle Programme initialisieren die PIO korrekt, zB gibt es Programme, die nur auf 8-Bit Eingabe schalten.
 +
 +Beim "Original"-Z1013 hatte ich das "vergessen" und wie du schon oben beschrieben hast, kaum Probleme bemerkt. Vielleicht es daran, dass das Verhalten von NMOS und CMOS geringfügig unterschiedlich ist. 
 +In meinen alten Programmen hatte ich lediglich OUT 1,CF_BIT_IO und OUT 1,1F_Lower_bits_input. Danach waren automatisch die obersten Bits0. Diese schlampige Programmierung hat sich jetzt gerächt. Es ist noch ein XOR A, OUT 0,A notwendig.
 +
 +Bei den Programmen in der SW-Datenbank habe ich die korrekte Initialisierung nachgeholt. Auf den Kassetten (bzw. z.B. Krull Z1013 Software) ist es noch falsch gemacht worden.
 +
 +Testprogramm für alle Varianten:
 +https://z1013.mrboot.de/software-database/db/5591df18d0d6145646e91d54f4d0637a-joystick_demo/index.html
  
  • z1013/joystick.1514977189.txt.gz
  • Zuletzt geändert: 2018/01/03 10:59
  • von volkerp