IO Adressen für ZX81 und Module

ZX-Team Forum
Benutzeravatar
siggi
User
Beiträge: 2059
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: IO Adressen für ZX81 und Module

Beitrag von siggi » 15.05.2017, 11:23

Hier gibt's noch die Adressen, die die JOY81-Karte benutzt (programmierbare Joystick-Karte):

http://www.sinclairzxworld.com/viewtopi ... =70#p13314

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
PokeMon
User
Beiträge: 4377
Registriert: 31.08.2011, 23:41

Re: IO Adressen für ZX81 und Module

Beitrag von PokeMon » 15.05.2017, 22:03

Hi siggi,

ich habe bewußt darauf verzichtet, weil es gefühlt 50% aller IO Adressen sind und wild verteilt. Die JOY81 in irgendeiner zu berücksichtigen, macht wenig Sinn weil die Realisierung zu crazy. Die kollidiert je nach Konfiguration mit so ziemlich allen Karten. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Paul
User
Beiträge: 2439
Registriert: 10.03.2010, 12:01
Wohnort: Germanys west end

Re: IO Adressen für ZX81 und Module

Beitrag von Paul » 15.05.2017, 22:18

PokeMon hat geschrieben:
15.05.2017, 22:03
Die JOY81 in irgendeiner zu berücksichtigen, macht wenig Sinn weil die Realisierung zu crazy. Die kollidiert je nach Konfiguration mit so ziemlich allen Karten. :wink:
Schreit das dann nicht geradezu nach einer
ZX-Joy-Team Karte?
Mit ordentlicher Dekodierung, Flash statt RAM, kompatibel zum ZX-Blast?
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Benutzeravatar
PokeMon
User
Beiträge: 4377
Registriert: 31.08.2011, 23:41

Re: IO Adressen für ZX81 und Module

Beitrag von PokeMon » 15.05.2017, 22:29

Weiß ich nicht. Vielleicht schreit es auch nach USB Joystick Unterstützung auf dem zweiten Port des ZXblast. :wink:

Das JOY81 ist etwas schräg und low cost konzipiert. Wenn ich es richtig verstanden habe, handelt es sich hier um IO Mapping des RAM im Gegensatz zum sonst verbreiteteren Memory Mapping von IO Modulen. :shock:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 2059
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: IO Adressen für ZX81 und Module

Beitrag von siggi » 15.05.2017, 22:47

Beim Joy81 wir ein Tastendruck(!) simuliert. Da der prorammierbar ist, kann damit jedes Spiel, das einzelne Tasten auswertet, ohne "Patch" gespielt werden. Andere Lösungen (wie beim ZxPand), wo spezielle Calls oder IN-Aufrufe notwendig sind zum Lesen des Joystick-Ports, erfodern auch ein speziell darauf ausgelegtes (bzw. "gepatchtes") Spiel/Programm. Ähnlich wäre es vermutlich bei einem USB-Joystick am ZxPand oder ZxMore.

Das ist halt der Vorteil eines Joystick-Interfaces, das eine Zeddy-Tastatur bzw. einen Tastendruck simuliert: passt für fast alle existenten Programme ohne Änderung!!!.

Dazu muss es allerdings an alle Adressleitungen ran kommen, an der auch die Tastatur hängt. Und muß auf die IN-Befehle zum Lesen der Tastatur die Patterns ausspucken, die auch die Tastatur beim Scan liefern würde ....
Letztendlich liefert so ein Interface den Scancode der Taste. Das BASIC-Rom macht dann daraus den Buchstaben, der zum Scancode gehört (und auf den das Joystick-Interface programmiert wurde).

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
siggi
User
Beiträge: 2059
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: IO Adressen für ZX81 und Module

Beitrag von siggi » 15.05.2017, 23:39

PokeMon hat geschrieben:
15.05.2017, 22:03
Die JOY81 in irgendeiner zu berücksichtigen, macht wenig Sinn weil die Realisierung zu crazy. Die kollidiert je nach Konfiguration mit so ziemlich allen Karten. :wink:
Naja, das ist auch nicht der "intended use" ("vorgesehener Anwendungszweck"). Joy81 ist für den "nackten" Zeddy designed, da stören keine anderen Karten!!!

Wer Joy81 (wie ich :mrgreen: ) zusammen mit anderen Karten verwenden will, muß sich da halt Gedanken machen, ob und wie das geht: z. B. "vorausschauend, was man denn machen will", erstmal den "bösen" Joystick programmieren, dann erst das ZeddyNet konfigurien (IPCONFIG) und dann erst das ZeddyNet-Panzer-Abknall-Krawumm-Spiel spielen, das den Joystick UND Indernet benutzt :mrgreen: (und hoffen, daß IPCONFIG nicht die Konfiguration des Joysticks zerhaut hat)

Gleiches gilt für den NU, der als "ZX81 ohne ULA und ganz mit ohne Tape" designed wurde, nun (wie bei mir) als ZX96-Busmaster in einem 7-Slot-ZX96-Bussystem betrieben wird: da muß man ggf. halt den Lötkolben anheizen und dem NU (z. B. mit Dioden und Transis) mitteilen, daß er nicht mehr der Mittelpunkt des Universums ist, sondern allenfalls des Racks :mrgreen:

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
PokeMon
User
Beiträge: 4377
Registriert: 31.08.2011, 23:41

Re: IO Adressen für ZX81 und Module

Beitrag von PokeMon » 16.05.2017, 00:35

siggi hat geschrieben:
15.05.2017, 22:47
Beim Joy81 wir ein Tastendruck(!) simuliert. Da der prorammierbar ist, kann damit jedes Spiel, das einzelne Tasten auswertet, ohne "Patch" gespielt werden. Andere Lösungen (wie beim ZxPand), wo spezielle Calls oder IN-Aufrufe notwendig sind zum Lesen des Joystick-Ports, erfodern auch ein speziell darauf ausgelegtes (bzw. "gepatchtes") Spiel/Programm. Ähnlich wäre es vermutlich bei einem USB-Joystick am ZxPand oder ZxMore.

Das ist halt der Vorteil eines Joystick-Interfaces, das eine Zeddy-Tastatur bzw. einen Tastendruck simuliert: passt für fast alle existenten Programme ohne Änderung!!!.
Warum soll so ein USB Joystick am ZXblast keine Tastendrücke simulieren können ? Da braucht man ggf. nur einen Vector umbiegen (INKEY$). Die normale Tastaturabfrage kann das ZXblast sogar direkt überschreiben, braucht es nur Bit 0 im CDFLAG setzen und den Matrixcode in LASTKEY ablegen. Keyboard Injection ist nicht so schwierig. Und konfigurieren musst Du das JOY81 ja auch, welche Aktion welche Taste auslösen soll.

Und meine Hardware läuft im Idealfall ohne Lötkolben und Seitenschneider. M1NOT funktioniert bereits sauber und ist auch konfigurierbar (an/abschaltbar). Dafür braucht man den Standard Zeddy nicht mehr aufschrauben, geschweige denn rumdoktern ... Kommt im nächsten Release. Das CPLD ist schon geändert. :wink: Und ist nachrüstbar für ZXblast Hardware Rev. 1. Und Hardware Rev. 2 ist gerade in Arbeit.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 2059
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: IO Adressen für ZX81 und Module

Beitrag von siggi » 16.05.2017, 09:05

PokeMon hat geschrieben:
16.05.2017, 00:35
siggi hat geschrieben:
15.05.2017, 22:47
Beim Joy81 wir ein Tastendruck(!) simuliert. Da der prorammierbar ist, kann damit jedes Spiel, das einzelne Tasten auswertet, ohne "Patch" gespielt werden. Andere Lösungen (wie beim ZxPand), wo spezielle Calls oder IN-Aufrufe notwendig sind zum Lesen des Joystick-Ports, erfodern auch ein speziell darauf ausgelegtes (bzw. "gepatchtes") Spiel/Programm. Ähnlich wäre es vermutlich bei einem USB-Joystick am ZxPand oder ZxMore.

Das ist halt der Vorteil eines Joystick-Interfaces, das eine Zeddy-Tastatur bzw. einen Tastendruck simuliert: passt für fast alle existenten Programme ohne Änderung!!!.
Warum soll so ein USB Joystick am ZXblast keine Tastendrücke simulieren können ? Da braucht man ggf. nur einen Vector umbiegen (INKEY$). Die normale Tastaturabfrage kann das ZXblast sogar direkt überschreiben, braucht es nur Bit 0 im CDFLAG setzen und den Matrixcode in LASTKEY ablegen.
Damit simulierst Du aber keinen Tastendruck,, sondern manipulierst irgendwelche Bitmuster im RAM, die etwas mit dem Tastendruck zu tun haben könnten (z. B. LASTKEY in den Systemvariablen). Aber Programme, die DIREKT die Tastatur scannen, funzen dann nicht. (EDIT: ich vermute, daß das alle in M/C geschriebenen Programme/Spiele sind)

Hier ist so ein Kandidat, er ganze Tastaturzeilen auf einmal einliest und als "Tastendruck" auswertet:
http://www.sinclairzxworld.com/viewtopi ... y81#p13927
(Edit: das was "nur" ein Beispiel für gaaaaz ungewöhnliches Scannen der Tastatur. Das machen einige Spiele so, andere decodieren durchaus einzelne Tasten, nicht nur komplette Zeilen/Spalten der Tastaturmatrix)

Und vielleicht erinnerst Du Dich noch an die Multitasking-Problemchen beim ZxMore? Da wurden ja auch anfangs vom IRC-Programm, das im Hintergrund lief, die Tastendrucke für das im Vordergrund laufende Programm, ausgewertet und gesendet (siehe Hannos Chat-Logfiles :mrgreen: ). Z88DK hat wohl auch seine eigene Keyboard-Scan-Routine und liest nix aus dem Ram, sondern direkt vom Keyboard. Das war so, bis Du (m. W.) den Tastatur-Port für im Hintergrund laufende Programme gesperrt hast.
(Edit: Und das wird wohl für alle mit Z88DK compilieren Programme gelten, also z. B. auch für DARKSTAR)
Keyboard Injection ist nicht so schwierig.
... aber nur, wenn man's richtig macht :wink:

Gruß
Siggi
Zuletzt geändert von siggi am 17.05.2017, 09:09, insgesamt 1-mal geändert.
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
siggi
User
Beiträge: 2059
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: IO Adressen für ZX81 und Module

Beitrag von siggi » 16.05.2017, 11:13

Paul hat geschrieben:
15.05.2017, 22:18
PokeMon hat geschrieben:
15.05.2017, 22:03
Die JOY81 in irgendeiner zu berücksichtigen, macht wenig Sinn weil die Realisierung zu crazy. Die kollidiert je nach Konfiguration mit so ziemlich allen Karten. :wink:
Schreit das dann nicht geradezu nach einer
ZX-Joy-Team Karte?
Mit ordentlicher Dekodierung, Flash statt RAM, kompatibel zum ZX-Blast?
Hallo Paul
Wilf hatte auch mal einen Vorschlag für ein einfaches, programmierbares, tastatur-simulierendes Joystick-Interface gezeigt (nicht nur kompatibel zum ZXBlast, sondern " .. although limited to single or shifted keys, covers 99% of the joystick applications.")

Hier gucken:

https://groups.google.com/forum/?hl=en# ... 13-HUs2uoJ

Gruß
Siggi

PS: Wollte ich schon 1000 mal nachbauen, kam aber immer was anderes dazwischen :?
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
Joachim
User
Beiträge: 856
Registriert: 06.11.2004, 20:21

Re: IO Adressen für ZX81 und Module

Beitrag von Joachim » 16.05.2017, 12:54

Vielleicht kann man als Grundlage auch das Tastaturinterface (OHNE PS/2-Adapter) hier viewtopic.php?f=2&t=1829&hilit=Gernot&start=25 nehmen. Jetzt, wo wir eine Backplane haben ist der Anschluss ja kein Problem mehr.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
PokeMon
User
Beiträge: 4377
Registriert: 31.08.2011, 23:41

Re: IO Adressen für ZX81 und Module

Beitrag von PokeMon » 16.05.2017, 16:57

Es gibt für alles für und wieder. Der eine hat kein Problem damit grosse Busse mit 8 oder 10 Platinen zu betreiben, der andere mag es gerne etwas kompakter. Ich muss ganz ehrlich sagen, dass ich mit brauchbaren Lösungen zufrieden bin und nicht immer die technisch beste Lösung (sofern es überhaupt eine gibt) bietenmuss. Elektronik mit Augenmass sozusagen.

Ich halte es auch für illusorisch, Hardware zu entwickeln die mit nichts kollidiert oder darauf zu hoffen, dass es keine Programme gibt die das Konzept korrumpieren (irgendeiner zaubert sowas immer aus der Hand :mrgreen: ).

Insofern halte ich es hier bayerisch und sage einfach mal, dass es mir wurscht ist, wenn irgendein einzelnes Programm nicht auf der Hardware läuft. Dann haben die Leute wenigstens ein Thema zum Reden oder Diskutieren. Und für wen es wichtig ist, der kann ja immer noch eine Joystick Karte anschliessen wenn er will. Es besteht ja keine Verpflichtung den USB Joystick mit dem ZXblast zu benutzen. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Joachim
User
Beiträge: 856
Registriert: 06.11.2004, 20:21

Re: IO Adressen für ZX81 und Module

Beitrag von Joachim » 21.06.2017, 15:59

Hallo Karl!
Ich muss etwas berichtigen: Auf der Multi-I/O-Karte ist eine serielle Schnittstelle. Die wird adressiert durch $E3 (Control) und $EB (Daten). Die Adressierung ist über den Bereich von A0 - A7 vollständig und wird von einem 74xx688 (Vergleicher) übernommen. Durch Jumper wäre diese Adresse änderbar.

Änderung des Listeneintrages:

MULTI-IO (PIO and serial interface, ZX Team Germany)
11***111 (decoding scheme A7,A6,A2,A1,A0 used, ** depends on function)
xxC7h.RW Port A data
xxCFh.RW Port B data
xxD7h.RW Port A control
xxDFh.RW Port B control
xxEFh.RW function ? ***** neu: xxE3.RW Serial-IF Data
xxF7h.RW function ? ***** neu: xxEB.RW Serial-IF Control
Remarks: base io address can be changed through jumper to:
A7/AF/B7/BF, 87/8F/97/9F, 67/6F/77/7F, 47/4F/57/5F, 27/2F/37/3F, 07/0F/17/1F

Die Adressen die du unter 'remarks' aufgeführt hast, sind mögliche weitere Adressen für die Z80-PIOs. Zwei Blöcke davon werden auf jeden Fall noch verwendet, weil auf der Karte drei Z80-PIO drauf sind. Meistens sind dies:
47/4F/57/5F und
87/8F/97/9F
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
tokabln
User
Beiträge: 1059
Registriert: 10.11.2013, 00:24
Wohnort: D, Berlin (Mariendorf)

Re: IO Adressen für ZX81 und Module

Beitrag von tokabln » 21.06.2017, 17:04

Ähnliches gilt für die (H4TH) Connection Card ZX81-BP005

Die Adressierung ist über den Bereich von (A0 - A1 OFF per ZX81 Definition) und A2 - A7 vollständig und wird ebenfalls von einem 74xx688 gegen die per DIP Schalter bzw. Lötpads eingestellte Adresse verglichen und ist somit änderbar.

H4TH Address decoding
xxxxxx11 (decoding scheme A7-A0)
Lieben Gruß Torsten
BMZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500, Amiga 1200, Atari Portfolio, HP200LX, IBM PC 5155, TP755c, T41, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e

Antworten