ZXblast

ZX-Team Forum
Benutzeravatar
PokeMon
User
Beiträge: 4220
Registriert: 31.08.2011, 23:41

ZXblast

Beitrag von PokeMon » 06.03.2016, 02:58

Mal was ganz anderes als immer nur ZXmore usw.
Es wird in Kürze (April) von mir eine neue RAM Karte geben, die auch zwei USB Ports hat.
Das Ganze wird ZXblast heißen, klingt recht cool und der Name ist Programm, damit kann man einen normalen ZX81 aufblasen. :mrgreen:

Die Idee hatte ich schon länger nachdem prinzipiell Bedarf an Speicherkarten besteht und auch an digitalen Speichermedien.
ZXblast ist prinzipiell auch für das ZX Bus System nutzbar mit VG64 Stecker und hat das Kartenformat 100 x 80 mm (halbe Europakarte).
Für den Einsatz im Bussystem könnte man ggf. eine Extenderkarte davorsetzen, die die Karte nach vorne schiebt damit die Bedienelemente gut erreichbar sind.
Die System sind ja eher rar aber bei OSH oder Speed kann man ja auch Miniserien von solchen Adapterplatinen machen. Nur so als Idee.

Technische Daten:
128k Flash ROM unterteilbar in 8x 16k (wobei RAM in 8-16k einblendbar ist)
128k SRAM unterteilbar in 8x 16k oder 4x 32k oder 2x 56k o.ä.
Wenn das nicht reicht könnte man ggf. auch 512kB Typen verwenden.
M1NOT Modus
2x USB für Speicherkarten oder andere USB Hardware (später)

Im Prinzip könnte das ein preisgünstiges ZXpandersatz sein. Als Bausatz wird das vielleicht preislich um die 30 EUR liegen oder maximal 40 EUR als Fertiggerät. Die Logik ist noch zu entwickeln, das CPLD hat insgesamt 30 Ein/Ausgänge von denen aktuell 3 Stück noch nicht belegt sind. Je nach Typ können 32 oder 64 Makrozellen zum Einsatz kommen, so dass ein bisschen was mit der Karte funktionieren wird. Möglicherweise auch ein paar Features vom ZXmore wie mehrere Instanzen zu starten. In erster Linie soll es mal eine Erweiterungskarte für Speicher und USB Sticks werden, Gimmicks kommen zum Schluss vielleicht noch ein paar dazu. Mal schauen.

Was ich momentan nicht weiß ist, welche Bankinglösungen so im Einsatz sind und wie diese generell funktionieren. Habe was gelesen über Poke 7 oder 8 oder 9 aber ist eigentlich unklar in welchem Speicherbereich konkret Bänke umgeschaltet werden, wie groß und auf welchen Adressen. Da scheint es verschiedene Entwicklungen zu geben und gegeben zu haben. Das soll jetzt nicht die eierlegende Wollmilchsau werden aber vielleicht kann man das noch berücksichtigen. Derzeit sind noch 3 Signale frei.

Anbei ein grober Entwurf.
Wäre auch noch die Frage, ob ich eventuell einen Spannungsregler auf der Karte vorsehen soll, um den ZX81 zu entlasten. Immerhin ziehen die USB Sticks ja auch Strom.
Das wäre auch noch ein offener Punkt. Danke vorab für Euer Feedback. Achso - wie war das noch mit Bus, da muss doch noch ein extra Signal auf dem 64 poligen Stecker geschaltet werden ?!
ZXblast2.png
ZXblast2.png (440.5 KiB) 4305 mal betrachtet
ZXBLAST - Project.pdf
(96.95 KiB) 90-mal heruntergeladen
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZXblast

Beitrag von Paul » 06.03.2016, 07:12

Hallo Karl, das finde ich echt super. :D Ich bewundere deine Energie und deine Kreativität.
Einige des Teams haben ja ein 56K Ram mit Batteriepufferung und Vdrive als Lochraster-Lösung (von Holmatic).
Ich hatte immer überlegt eine Platine dazu zu erstellen. Oder eine externe ZX81NU Erweiterung. Aber die Zeit war dagegen.
Deine Lösung kann natürlich viel mehr. Insofern ersparst du mir natürlich viel Arbeit. 8)
Einen eigenen Spannungsregler fände ich schon sinnvoll. 1 Ampere zusätzlich über den armen 7805 des Zeddy (zweimal USB) ist nicht nötig.
Mein Tipp: versuche nicht es jedem Recht zu machen. Diese Karte ist alles was man braucht, da wird zusätzliche POKE 9 Unterstützung (oder ähnliches) nicht viel bringen.
Das sind Speziallösungen zu Sonderfällen die nicht berücksichtigt werden brauchen. Anders als beim QL, "wo niemand neue Software schreibt" :evil: , wird es beim ZX81 bald Programme geben die deine neuen Features unterstützen. Dann schon eher ZXMore Ähnlichkeit um von neuen Entwicklungen profitieren zu können.
Interessanter fände ich eine neue Möglichkeit die aktuellen 64K als Block "freezen" zu können und wieder einzuladen, und somit auch mit Forth-ROM oder anderen Exoten eine Save und Load Möglichkeit unabhängig von Tape zu bekommen. Oder um den aktuellen Spielstand an einem anderen Tag weiterspielen zu können. Das setzt natürlich voraus das der Computer weiß wo er weiter machen muss. Aber das ist dir ja klar, benötigst du zum Instanzwechseln ja auch :wink:
Und die 512K Variante ist ja nicht viel teurer als die 128k, manchmal sogar billiger, "verkaufen" sich aber besser :mrgreen:
Charlie hat die 32K seines ZXPand schon oft bereut.
Liebe Grüße
Paul
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Benutzeravatar
siggi
User
Beiträge: 1909
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: ZXblast

Beitrag von siggi » 06.03.2016, 09:51

Hallo Karl
zum /BUSCS des ZX96: dazu werden alle /CS einer Karte, die Daten von/zum Bus lesen/schreiben will, über ein AND-Gatter verknüft und über eine GE-Diode zur Entkopplung auf /BUSCS gegeben, damit die Bustreiber aktiviert werden:
http://www.fischerkai.de/zxteam/treibsch.gif

Zu Poke 8/9 siehe z. B.
http://www.fischerkai.de/zxteam/mega_d.htm

Interessant für MEFISDOS (jaja ich weiß, das bräuchte man da nicht, aber wer es kennt, will es dennoch haben, denn es kann halt so viel mehr als ander Massenspeicherprogramme) wäre, die höchsten 16K des Rams in 16K Pages umschalten zu können. 3 Bänke wären OK (1 für das Anwendungsprogramm, 1 als WORK-page für MEFISDOS, 1 als FILE-page für MEFISDOS). Wenn da noch mehr Bänke vorhanden wären (und Batteriegepuffert sind), könnten man die weitern Bänke auch als MEFISDOS-Ramdisk benutzen (habe so eine Ramdisk mit 512 KB im Web-Server drin).

Notwendig könnte auch werden, einige Speicherbereiche von außen abschalten zu können, wenn andere Karten das Ram haben wollen (z. B. Chroma für sein Farb-Ram). Beim ZX96 gibt es dazu die MODHI- und MODLO-Signale, die auf den zusätzlichen Pins am VG64-Stecker liegen:
http://www.fischerkai.de/zxteam/megabyte.jpg

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

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

Re: ZXblast

Beitrag von PokeMon » 06.03.2016, 13:18

Paul hat geschrieben:Einen eigenen Spannungsregler fände ich schon sinnvoll. 1 Ampere zusätzlich über den armen 7805 des Zeddy (zweimal USB) ist nicht nötig.
Mein Tipp: versuche nicht es jedem Recht zu machen. Diese Karte ist alles was man braucht, da wird zusätzliche POKE 9 Unterstützung (oder ähnliches) nicht viel bringen.
Paul, Danke.
Natürlich hast Du recht, es ist schwierig es allen recht zu machen, vermutlich sogar unmöglich. :wink:
Mit dem Spannungsregler, das ist so eine Sache. Man soll natürlich keine Großverbraucher anhängen wie eine 1TB USB Festplatte o.ä. - dafür ist das nicht gemacht. Ohne entsprechend großen Kühlkörper würde da auch ein zweiter 7805 nicht allzu lange durchhalten. Der gesamte ZXmore braucht ohne USB Geräte nur etwa 100mA und dass bei viel Logikbauteilen, Z80 Prozessor und sogar doppelter Taktfrequenz. Insofern wird die Karte selbst vermutlich unter 50mA liegen.

Ich werde aber vermutlich dennoch einen eigenen 7805 mit Minikühlkörper vorsehen um den Zeddy vor Überhitzung zu schützen. Wer wirklich viel braucht kann ja ggf. einen Schaltregler auf die Platine setzen. Im Grunde ist die aber nur für USB Sticks und vielleicht noch Joysticks vorgesehen o.ä. - alles keine Großverbraucher. Ich persönlich mag Schaltregler nicht so gerne.

Was den Speicher angeht, der 512kB ist natürlich schon teurer als der 128kB, mindestens das Doppelte. Weil ich diesmal nicht ganz so verschwenderisch damit umgehe sollte unterm Strich trotzdem in etwa der gleiche Umfang sein wie beim ZXmore. Da wird ja sozusagen etwa 50% verschwendet, sei es beim ROM oder RAM durch die volle Überschneidung. Man kann ja auch 64k für die Hauptinstanz vorsehen (56k nutzbar), 16k für die Verwaltung und Steuerung/Interface und hätte dann noch 3x 16kB übrig die man entweder für Banking nutzen kann oder für Parallelinstanzen oder für HRG oder, oder, oder. Insofern werde ich das vorrangig mal auf 128kB einschränken (Default Auslieferungszustand), wenn noch eine Leitung freibleibt könnte ich das auf 256k hochstufen wenn sich jemand dann selbst einen 512k Chip gönnt. Dann hat er weitere 8 Bänke, was immer er da auch ablegen möchte. Bei nochmal 16 Bänken dazu wird es vermutlich auch unübersichtlich wo was liegt. :mrgreen:

Driver kann man übrigens auch in das Flash ROM ablegen, das ist ja auch noch da. Auch das kann man umschalten und hat hier insgesamt 16x 8KB. Möglicherweise belegt das Verwaltungsprogramm davon bereits 2 Blöcke (16kB) weil das ja auch ein User Interface bietet. ZX81 ist ja von Haus aus verfügbar, so dass hier noch 12x 8kB ROM für andere Systeme wie Husband Forth (wird wohl laufen weil es ja kein ZX80CORE oder ZXmore ist :mrgreen: ), ASZMIC o.ä. im Zugriff haben. An die Bedienung mit Doppelshift habt Ihr Euch ja schon gewöhnt. Im Prinzip kann ich jede Speicherseite an jeder beliebigen Stelle einblenden, solange genug Makrozellen im CPLD zur Verfügung stehen. Wieviel Logik das braucht kann ich nicht sagen aber mit 64 Makrozellen geht schon ein bischen was.

@siggi:
Guter Hinweis, Du meinst dieses hier:

Code: Alles auswählen

Switch 1: ON=Enable onboard 16K RAM [$4000-$7FFF].
Switch 2: ON=Enable WRX graphics support for the onboard RAM.
Switch 3: ON=Enable onboard 8K RAM [$2000-$3FFF].
Switch 4: ON=Enable Quicksilva Character Board emulation.
Switch 5: ON=Enable RS232 socket.
Switch 6: ON=Enable colour facilities / additional 16K RAM [$C000-$FFFF]
Einzelne Bereiche abzuschalten (damit sie ggf. für ein Chroma Interface zur Verfügung stehen) sollte machbar sein. Das muss man dann entsprechend im OnScreen Menü konfigurieren. DIP Schalter kann ich ja auch auf den Bildschirm malen. :lol:

Mit dem POKE 8/9 bin ich noch unschlüssig. Rein theoretisch könnte ich das auswerten wenn ich nicht die volle Adresse prüfe sondern Schreibzugriffe auf das ROM (A13=A14=A15=0) und A3 gesetzt. Das wäre dann entweder 8 oder 9. Sonst wird wohl keiner ernsthaft Schreibzugriffe auf Adressen größer 5 machen oder so. Ich habe aber das Problem, dass ich natürlich nicht den vollen Zugriff auf den Datenbus habe mangels Pins. Insofern bin ich auch nicht sicher ob das Sinn macht. Konfigurieren kann ich das CPLD ja auch über OUT Befehle und entsprechendes setzen der oberen Adressbits - mit A12-A15 hätte ich ja immerhin 4 Bit zur Verfügung und A13-A15 brauche ich ja sowieso für die Speicherverwaltung. Insofern wären da zwei Fliegen mit einer Klappe geschlagen.

Insgesamt ist es natürlich hilfreich generell Banking zur Verfügung zu haben, weil es schon aufwändige Klimmzüge erfordert um Daten von einer Instanz in eine andere abzubilden, wenn immer das komplette RAM umgeschaltet wird. Ein kleiner konzeptioneller Schwachpunkt des ZXmore (den man aber noch beheben kann). Die Frage ist halt ob die Umschaltung zwingend mit diesen POKE Befehlen erfolgen muss oder ob man ggf. einfach die Adresse tauschen könnte und ins RAM schreibt. Gibt ja 2 Systemvariablen (einmal 8 bit und einmal 16 bit) die normalerweise vom ZX81 nicht benutzt werden. Dann könnte der Bereich im nächsten Frame umgeschaltet werden durch die Kontrollinstanz oder so.

Ich weiß aber auch nicht wie relevant das ist und wieviel Software es tatsächlich gibt, die Banking nutzen (und welche Methode). Vielleicht ist das auch zu speziell und ich sollte Pauls Vorschlag folgen, es nicht allen recht machen zu wollen. Wenn ich A17 noch einbeziehe und A12 (zur Programmierung der internen Register) hätte ich auch nur noch 1 Bit frei. Und könnte dann auch gleich A18 anschließen und hätte es damit wahrscheinlich Paul recht gemacht. Zefix ! :mrgreen:


Achso - ja, zum Thema Freeze. Obwohl der Begriff Dank Microsoft nicht positiv belegt ist, wird es dieses Feature natürlich geben. Sowohl für den ZXmore als auch für ZXblast. Also mit einem Tastendruck (shift-shift-F z.B. :lol: ) kann man nicht nur eine einzelne sondern das komplette System abschalten inklusive den Speicherinhalten und Prozessorzustand aller Instanzen und nach dem Einschalten ganz entspannt weiterarbeiten inklusive aller geladenen Programme. Es ist ja kein Problem auf dem USB Stick 128kB oder 512kB in eine Datei zu schreiben, notfalls auch den Zustand des Flash ROMs. Das Flash ROM wieder herzustellen dauert natürlich dann recht lange. Beim ZXmore hatte ich mal Messungen gemacht und glaube ich kann irgendwie 32kB in 1 Sekunde über USB lesen oder schreiben. 128kB dann etwa 4 Sekunden, gut bei 3.25 MHz könnten dann auch 8 Sekunden daraus werden. Aber WIN oder OS X bootet auf jeden Fall länger.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 1909
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: ZXblast

Beitrag von siggi » 06.03.2016, 19:39

PokeMon hat geschrieben: Guter Hinweis, Du meinst dieses hier:

Code: Alles auswählen

Switch 1: ON=Enable onboard 16K RAM [$4000-$7FFF].
Switch 2: ON=Enable WRX graphics support for the onboard RAM.
Switch 3: ON=Enable onboard 8K RAM [$2000-$3FFF].
Switch 4: ON=Enable Quicksilva Character Board emulation.
Switch 5: ON=Enable RS232 socket.
Switch 6: ON=Enable colour facilities / additional 16K RAM [$C000-$FFFF]
Ja genau ..
Mit dem POKE 8/9 bin ich noch unschlüssig. Rein theoretisch könnte ich das auswerten wenn ich nicht die volle Adresse prüfe sondern Schreibzugriffe auf das ROM (A13=A14=A15=0) und A3 gesetzt. Das wäre dann entweder 8 oder 9. Sonst wird wohl keiner ernsthaft Schreibzugriffe auf Adressen größer 5 machen oder so.
Aber sicher doch und immer wieder gern :mrgreen:

Im UFM wird mit POKE 8 das MEFISDOS-EPROM des ZX96 aktiviert, wenn man ein von USB-Stick geladenes Programm in MEFISDOS abspeichern will.

Und wer Andy's ULA im Zeddy hat (so wie bei mir im Laptop-Zeddy), der schaltet mit POKE 101 zwischen Normal- und Turbo-Modus und anderen Gimmicks hin und her.
Und mit POKE 1001 wird dort TURBO im FAST-Modus (wieder-) eingeschaltet, was ich im NFM benutzt habe, damit Laden via ZeddyNet nicht unnötig ausgebremst wird.

Und wenn ich einen Zeddy habe, der das ROM im RAM oder EEPROM (ggf. auch Flash?) hat, dann POKE ich dort viele Adressen, wenn ich ROM-Patches "am offenen Herzen" und bei laufendem Zeddy mache :mrgreen:
Ist aber eher eine spezielle Anwendung ...

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

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

Re: ZXblast

Beitrag von PokeMon » 06.03.2016, 20:18

siggi hat geschrieben: Und wenn ich einen Zeddy habe, der das ROM im RAM oder EEPROM (ggf. auch Flash?) hat, dann POKE ich dort viele Adressen, wenn ich ROM-Patches "am offenen Herzen" und bei laufendem Zeddy mache :mrgreen:
Pfui ! :mrgreen:
Ich sehe schon, das mit den POKEs lasse ich lieber weg, das führt zu nichts.
Lieber erlauben wir dann einen Transfer des ROM's ins RAM damit Du schön POKEn kannst.
Einen 16 Bit oder 12 Bit Adresskomparator möchte ich nicht draufsetzen.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 1909
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: ZXblast

Beitrag von siggi » 06.03.2016, 20:43

PokeMon hat geschrieben:
Einen 16 Bit oder 12 Bit Adresskomparator möchte ich nicht draufsetzen.
Na den gibt's (gab's?) fertig als GAL (links unten):
http://www.fischerkai.de/zxteam/pokekart.gif

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

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

Re: ZXblast

Beitrag von PokeMon » 06.03.2016, 21:49

Naja, ist wieder ein Chip mehr und hilft auch nicht so wahnsinnig viel, wenn mir die Datenleitungen am CPLD fehlen. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
msch
User
Beiträge: 3143
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZXblast

Beitrag von msch » 07.03.2016, 10:12

... klasse Projekt! Ich bin schon wieder sprachlos, wenn ich obige Diskussion verfolge :wink:

Was ich mir wünschen würde wäre, dass obiges Interface alles bietet, um mit einem ZX81 und ZeddyNet online gehen zu können. Aber davon gehe ich irgendwie aus :mrgreen:
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (Lichtung, Ernst Jandl)

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

Re: ZXblast

Beitrag von PokeMon » 19.03.2016, 18:23

So das Ding ist mal fertig gerostet - lediglich die Business Logik fehlt noch.
Es sind aber im Grunde alle Signale am CPLD, die ich brauche - von daher ist die Platine im Grunde fertig.
Programmieranpassungen können später noch erfolgen.

Folgende Signale stehen jetzt zur Verfügung am CPLD:

Code: Alles auswählen

A0
A1
AX (A3-A7 je nach Jumper)
RESET
IORQ
MREQ
RD
WR
M1
RFSH
CLK
NMI
ROMCS (erlaubt zeitweises deaktivieren des internen ROM)
D6 (erlaubt das Ausführen von Code / Deaktivieren der ULA - M1NOT)
D7 (Feature Bit, z.B. invertieren des Bildschirms ...)
A12
A13
A14
A15
CEROM
CERAM
A14R (erlaubt das Ein/Ausschalten des RAM resp. Banking)
A15R (erlaubt das Ein/Ausschalten des RAM resp. Banking)
A16
A17
A18
FIFORD (USB Stick lesen)
FIFOWR (USB Stick schreiben)
RTCE (RTC chip enable)
RTCLK (RTC chip clock)
HALT (über Widerstand an RTC Steuerung, da kein Pin mehr frei, Erkennung Video Mode HRG/TEXT)
Das gibt es voraussichtlich in 2 Ausbauversionen, mit 128k Flash ROM und 128k RAM für normale User (gesteuert über ein EPM3032 CPLD) oder 512k RAM und 512k ROM und dem größeren CPLD für Poweruser mit besonderen Features. Welche genau das sind muss ich dann nochmal überlegen und ausprobieren wieviel Platz das im CPLD braucht. Wer einfach nur eine RAM Erweiterung braucht und Programme vom Stick laden will, für den tut es auch die kleine (billigere) Version.

Etwas Schwierigkeiten habe ich noch mit der BUSCS Logik. Das ist irgendwie unklar. Kai schreibt dazu:
Da auch Speicher vor den Treibern vorhanden ist (i.d.R. auf dem Giant), ist der Bustreiber normalerweise deaktiviert. Erst das Signal /BUSCS schaltet den Datenbus frei. /BUSCS muß daher generell von externen Karten erzeugt werden, damit diese Daten erhalten bzw. zum ZX schicken können. Desweiteren muß der Datenbus auch bei einem Refresh in Richtung CPU geschaltet werden, damit HRG-Grafiken aus einem eventl. am Bus liegenden Speicher dargestellt werden können.
Das bedeutet, dass die externen Karten/Module ein BUSCS erzeugen müssen/sollen. Faktisch ist das nicht der Fall wenn ich mir die Implementierungen auf der PIO Karte und der Zeddynet Karte anschaue. Hier wird BUSCS über eine Diode zur Steuerung zugeführt und kann die Karte ggf. abschalten oder sie soll explizit aktiviert werden. Das ist genau das Gegenteil von dem was Kai dazu geschrieben hat (BUSCS muss von externen Karten erzeugt werden). Im Übrigen ist mir unklar, welchen Vorteil diese BUSCS Steuerung haben soll. Ob die Karten was Senden hängt sowieso von den IO Adressen oder RAM Adressen ab, dazu braucht man BUSCS nicht. Auf der anderen Seite sind die kapazitiven Eingänge an den Leitungen sicherlich auch aktiv wenn die Bausteine abgeschaltet sind. Insofern sehe ich auch da keine Entlastung des Busses. Im Grunde kann man die Bustreiber generell aktiv lassen, die Richtung wird ja über RD/RFSH umgeschaltet.

Vielleicht kann ja jemand erklären wie das gemeint ist. Meiner Meinung nach macht es keinen Sinn auf dieses Signal zu reagieren, es sei denn, es gibt eine echte Slotsteuerung und die Karten überschneiden sich bei bestimmten Adressen. Das würde bedeuten, dass mehrere Karten auf die gleichen Adressen (RAM/ROM) oder die gleichen IO Adressen reagieren. Dann müsste man aber zur Adressierung dieses Signal mit einbeziehen resp. explizit setzen. Auf der anderen Seite gäbe es dann nicht 1 BUSCS Signal sondern pro Steckslot eins. Das müssten vielleicht die Leute wissen, die einen ZX96 besitzen.

Ansonsten hier die fertigen Entwürfe vom ZXblast falls noch jemand Hinweise oder Anregungen hat.
Auf der Bestückungsseite ist die Kupferfläche (rot) übrigens ausgefüllt (als GND-Fläche) - habe ich hier rausgenommen sonst sieht man nicht viel. :wink:
Einen eigenen Spannungsregler habe ich jetzt mal mit draufgesetzt, kann man auch einen Schaltregler einsetzen.
Achso - dazu noch die Frage: Ist beim ZX96 auf dem 9V Pin eine entsprechende Spannung ?
Ich habe da was von 12V auf dem VG Stecker gelesen. Oder muss man die anzapfen ?

Außerdem kann man die 5V auf den USB Ports über einen Jumper unterbrechen falls mal jemand die Karte als USB Slave an einem Host (Computer) betreiben möchte.
You never know ...
ZXblast1.png
ZXblast1.png (251.88 KiB) 4120 mal betrachtet
ZXblast3.png
ZXblast3.png (48.89 KiB) 4120 mal betrachtet
Schaltplan:
ZXBLAST - Project.pdf
(123.61 KiB) 59-mal heruntergeladen
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 1909
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: ZXblast

Beitrag von siggi » 19.03.2016, 18:55

PokeMon hat geschrieben:So das Ding ist mal fertig gerostet - lediglich die Business Logik fehlt noch.
Da hast Du wohl viel gerastet, wenn das Ding jetzt schon rostet :mrgreen:
PokeMon hat geschrieben: Etwas Schwierigkeiten habe ich noch mit der BUSCS Logik. Das ist irgendwie unklar. Kai schreibt dazu:
Kai hat geschrieben:Da auch Speicher vor den Treibern vorhanden ist (i.d.R. auf dem Giant), ist der Bustreiber normalerweise deaktiviert. Erst das Signal /BUSCS schaltet den Datenbus frei. /BUSCS muß daher generell von externen Karten erzeugt werden, damit diese Daten erhalten bzw. zum ZX schicken können. Desweiteren muß der Datenbus auch bei einem Refresh in Richtung CPU geschaltet werden, damit HRG-Grafiken aus einem eventl. am Bus liegenden Speicher dargestellt werden können.
Das bedeutet, dass die externen Karten/Module ein BUSCS erzeugen müssen/sollen. Faktisch ist das nicht der Fall wenn ich mir die Implementierungen auf der PIO Karte und der Zeddynet Karte anschaue. Hier wird BUSCS über eine Diode zur Steuerung zugeführt und kann die Karte ggf. abschalten oder sie soll explizit aktiviert werden. Das ist genau das Gegenteil von dem was Kai dazu geschrieben hat (BUSCS muss von externen Karten erzeugt werden).
Dann hast Du wohl die Implementierungen falsch verstanden. Ich schrieb dazu ja schon mal:
siggi hat geschrieben: zum /BUSCS des ZX96: dazu werden alle /CS einer Karte, die Daten von/zum Bus lesen/schreiben will, über ein AND-Gatter verknüft und über eine GE-Diode zur Entkopplung auf /BUSCS gegeben, damit die Bustreiber aktiviert werden:
http://www.fischerkai.de/zxteam/treibsch.gif
/BUSCS wird von den externen Karten generiert. Die Diode dient zur Entkopplung weiterer, parallel am Bus liegender Karten.
Die Karte, die sich angesprochen fühlt, zieht über die Diode das den Enable-Eingang des Datenbustreibers auf LOW und aktiviert ihn. Andere Karten, die sich nicht angesprochen fühlen, haben ebenso diese Entkoppeldioden und können da nicht reinfunken, auch wenn sie /BUSCS auf HIGH setzen wollten.
Im Übrigen ist mir unklar, welchen Vorteil diese BUSCS Steuerung haben soll. Ob die Karten was Senden hängt sowieso von den IO Adressen oder RAM Adressen ab, dazu braucht man BUSCS nicht. Auf der anderen Seite sind die kapazitiven Eingänge an den Leitungen sicherlich auch aktiv wenn die Bausteine abgeschaltet sind. Insofern sehe ich auch da keine Entlastung des Busses.
Der Vorteil ist, daß die keine Bustreiberlogik auf der Bustreiberkarte erfoderlich ist, die "weiß", welche I/O-Adressen "draußen" am Bus hängen und dann passend den Bustreiber aktiviert. Das machen die Karten nun selbst, und die "wissen" ja, wann sie Daten brauchen und aktivieren nur dann den Bustreiber.
Im Grunde kann man die Bustreiber generell aktiv lassen, die Richtung wird ja über RD/RFSH umgeschaltet.
Falsch. Dann knallt es immer beim Lesen, wenn interne I/O-Adressen (ULA) oder internes RAM oder ROM adressiert wird (auf ZX81- oder ZX96-CPU-Karte), weil dann der Bustreiber reinspuckt.
Vielleicht kann ja jemand erklären wie das gemeint ist.
Ich hab's zumindest mal versucht ..

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

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

Re: ZXblast

Beitrag von Joachim » 19.03.2016, 19:30

Hallo Karl,
wenn unsere Aktivitäten im Team so weiter gehen - und davon gehe ich aus - werden am handelsüblichen ZX81 soviele Schaltungen stecken, dass man um eine Treiberplatine nicht drumrum kommt. Von daher würde ich auch vorschlagen, das BUSCS-Signal zumindest vorsorglich auf künftigen Erweiterungen mit einzubeziehen. Wenn es nicht benötigt wird (weil keine Treiberkarte vorhanden), schadet das Signal ja nicht.
Viele Grüße!
Joachim


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

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

Re: ZXblast

Beitrag von PokeMon » 19.03.2016, 19:48

Kleiner Gruss vom OS X Autokorrekturprogramm (gerostet statt geroutet). :wink:

Deine Erklärungen mit dem Bustreiber sind trotzdem nicht einleuchtend.
Erstens kann es keine Überschneidungen mit den internen I/O Adressen oder Speicheradressen geben.
Wenn eine Karte sich angesprochen fühlt (oder im Zweifel auch mehrere) aktiviert sie den (Daten)Bustreiber trotzdem, was nützt das oder was soll das entkoppeln ? :wink:
Wenn es eine Überschneidung gibt, dann gibt es eine Überschneidung - wie soll der Bustreiber das ausbügeln ? Woher soll der wissen was richtig ist oder Vorrang hat ?

Mag sein, dass eine Original ZX96 Karten anders gestrickt sind aber die mir vorliegenden Karten erzeugen garantiert kein BUSCS Signal sondern benutzen es höchstens. Meine PIO Karte hat das Signal über eine Diode (zur Entkopplung) auf den Eingang eines Oder Gatters (74LS32) geführt. An dem anderen liegt IORQ an. Der Ausgang aktiviert die PIO (/CE). Nach meinen Information geht das das nur, wenn beide Eingänge low sind, also /IORQ low anliegt und /BUSCS low ist. Wie der Eingang des Gatters /BUSCS schalten soll ist mir unklar. Wenn Du das näher ausführen könntest.

Bei der Zeddynet Karte geht BUSCS über eine Diode an Pin 19 (/OE) eines 74LS245. Im Prinzip gleiches Spiel, hier soll vermutlich auch der Eingangspin ein Ausgangssignal schalten. Möglich, dass die Leiterbahn unterhalb des 74LS245 noch weitergeht, kann ich nicht genau sagen da eingelötet, ich glaube es aber eher nicht.

Möglich ist auch, dass bei diesen beiden Karten das /BUSCS falsch implementiert ist. Ich kann mich halt nur danach richten was ich so sehe an mir verfügbarer Hardware. Wenn jetzt ein anderes Modul BUSCS low zieht, dann sind diese beiden Karten nicht mehr aktiv aber aus eigener Kraft können sie /BUSCS nicht wirklich nennenswert beeinflussen. Vielleicht kannst Du auch diesen Punkt näher ausführen. :wink:

Edit: Okay - jetzt habe ich den Sinn verstanden, weil der Bustreiber nicht aktiv sein soll wenn die interne Hardware angesprochen wird. Dennoch ist unklar wie PIO Karte und ZeddyNet Karte den Bustreiber aktivieren, weil das Signal bei mir auf Eingänge geschaltet ist.

Doppeledit: Okay - ich habe die Karte falsch herum gehalten, bei der PIO geht der Ausgang des Oder Gatters auf die Diode und kann sie runterziehen.
Bei der ZeddyNet Karte kommt das /OE Signal vom GAL. Aha, die Leiterbahn hatte ich wohl übersehen.

Na gut, dann werde ich das jetzt noch einbauen. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
msch
User
Beiträge: 3143
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZXblast

Beitrag von msch » 19.03.2016, 21:01

Zu den Ausbauversionen: welcher Preisunterschied schwebt Dir vor? Aus der Erfahrung bei vergleichbaren Projekten würde ich mich wohl immer für die größere entscheiden... Man ärgert sich nur, wenn man ein neues Feature nicht bekommt, weil man die kleinere Variante hat. Uaünd Du musst nur eine Variante supporten...
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (Lichtung, Ernst Jandl)

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

Re: ZXblast

Beitrag von PokeMon » 19.03.2016, 21:10

Das weiß ich noch nicht genau. Vielleicht 10 EUR, kann auch etwas mehr sein.
Letztlich spielt der Preis natürlich auch immer eine Rolle und was nützen Features, die die meisten nicht nützen ?
Die meisten brauchen/nutzen nur Speicher, meistens nicht mehr als 16k oder 32k und wollen Dateien (Programme/Spiele) laden von einem Medium.

Wenn das Ding so teuer wird wie ein ZXpand, dann ist das nicht massentauglich. Zielpreis ist mal um die 30 EUR für die Einstiegsversion.
Wenn 90% der Software damit läuft, was will man mehr. Wir werden sehen wenn es soweit ist.
Eigentlich braucht kein (normaler) Mensch die 512kByte RAM am ZX81. Und es gibt auch kaum Software, die das nutzt.
Und wenn man es wirklich braucht, kann man das Board ja auch upgraden.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 1909
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: ZXblast

Beitrag von siggi » 19.03.2016, 22:09

PokeMon hat geschrieben:Kleiner Gruss vom OS X Autokorrekturprogramm (gerostet statt geroutet). :wink:

Deine Erklärungen mit dem Bustreiber sind trotzdem nicht einleuchtend.
Erstens kann es keine Überschneidungen mit den internen I/O Adressen oder Speicheradressen geben.
Wenn eine Karte sich angesprochen fühlt (oder im Zweifel auch mehrere) aktiviert sie den (Daten)Bustreiber trotzdem, was nützt das oder was soll das entkoppeln ? :wink:
Wenn es eine Überschneidung gibt, dann gibt es eine Überschneidung - wie soll der Bustreiber das ausbügeln ? Woher soll der wissen was richtig ist oder Vorrang hat ?
Der nicht-doofe ZX81-User wählt I/O-Adressen seiner Karten am Bus natürlich eindeutig :D
Die Entkopplung ist nur für das /BUSCS-Signal selbst notwendig: einzig die Bustreiberplatine darf dieses Signal (über 10 kOhm) auf HIGH ziehen. Nicht-addressierte Karten am BUS würden ggf. selbst dieses Signal auf HIGH drücken wollen, können das aber nicht, weil die Diode zur Entkopplung da ist und dies verhindert. Nur die eine Karte, die adressiert ist, zieht das /BUSCS auf LOW und aktiviert damit den Bustreiber. Die Dioden entkoppeln die /BUSCS-Ausgänge der Karten. Letztendlich ergibt sich damit ein WIRED-AND. Und wenn dies LOW ist, wird der Bustreiber aktiv.
Bei der Zeddynet Karte geht BUSCS über eine Diode an Pin 19 (/OE) eines 74LS245. Im Prinzip gleiches Spiel, hier soll vermutlich auch der Eingangspin ein Ausgangssignal schalten. Möglich, dass die Leiterbahn unterhalb des 74LS245 noch weitergeht, kann ich nicht genau sagen da eingelötet, ich glaube es aber eher nicht.
Vielleicht hilft der Schaltplan (im ZIP-File) weiter: GAL hat Ausgang für /BUSCS und aktiviert damit den LS245 UND /BUSCS (über die DIODE) mittels LOW:
http://forum.tlienhard.com/phpBB3/viewt ... =100#p5217

Zum Schaltplan Deines Rams: ich sehe nur dir /RD-Leitung am RAM/ROM. Die sind dann nicht HIRES-fähig (mangels /RFSH). Soll das so sein? Wenn ja, dann schlecht :wink:

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

Benutzeravatar
siggi
User
Beiträge: 1909
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: ZXblast

Beitrag von siggi » 19.03.2016, 22:18

Und noch was zu Deiner Ram-Platine: Du solltest /ROMCS durch eine Diode entkoppeln, da andere Karten dieses Signal auch auf HIGH ziehen können sollen und von Deiner Karte entkoppelt sein müssen.
Regel ist: eine Karte darf /ROMCS nur auf HIGH drücken können, aber nicht auf LOW ziehen können (deshalb eine Diode).

Gruß
Siggi

PS: Es mag sehr spezielle Ausnahmen geben, die die Regel bestätigen :D
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

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

Re: ZXblast

Beitrag von PokeMon » 19.03.2016, 22:19

siggi hat geschrieben: Zum Schaltplan Deines Rams: ich sehe nur dir /RD-Leitung am RAM/ROM. Die sind dann nicht HIRES-fähig (mangels /RFSH). Soll das so sein? Wenn ja, dann schlecht :wink:

Siggi
Danke für den Hinweis !
Muss ich vielleicht tatsächlich zwei Dioden nehmen, weil ich irgendwie kein Pin mehr frei habe am CPLD.
D7 brauche ich nicht unbedingt, so viel Nützliches kann ich damit nicht machen, habe ich aber bereits für BUSCS geopfert.

Eigentlich müsste ich das Flash ROM auch noch vor beschreiben schützen.
Das Beschreiben ist nicht so einfach aber das EEPROM 28C256 reagiert da empfindlich und löst einen Timeout in Millisekundenlänge aus.
Wie das SST Flash da reagiert, muss ich mal austesten mit einem Programm.

Und was ist jetzt mit den "9V" ? Liegen die beim ZX96 auf dem Stecker an oder muss man die 12V von außen nehmen ???
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 1909
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: ZXblast

Beitrag von siggi » 19.03.2016, 23:02

Als Schreibschutz für EEPROM habe ich immer nur die Hardware-Lösung: Jumper draufsetzen, wenn man programmieren will. Ansonsten sorgt ein Pullup für HIGH-Pegel am /WR-Pin und die Z80-/WR-Leitung ist abgeklemmt

Der ZX96-Bus ist mit dem ZX81-Bus kompatibel. Wo beim 81 "9V" draufsteht, hat auch der ZX96 seine "9V"-Power. Es gibt wohl ZX96, die da ein "sauberes" 12V-Netzteil dran haben (aus der Zeit, als HDs am ZX96 dran waren). Da aber auch "normale" ZX81-Netzteile diesen Pin beliefern werden, muß man da wohl mit allem rechnen, typ. wackelige 11V vom Sinclair-Netzteil. Wenn man also "irgendwie" Power braucht, kommt die beim ZX96 auch da. Aber wenn man genau 12V braucht, sollte man sie sich selbst besorgen.

Gruß
Siggi

Edit:
Ach ja, geht auch M/C über 32K? Dazu muß Spiegelung (bei M1=LOW für Videozugriff aufs D-File im unteren 16K Block) im Bereich 32K-48K ausgeschaltet sein. Ist das gegeben?
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

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

Re: ZXblast

Beitrag von PokeMon » 19.03.2016, 23:59

So, hier ein Update mit den letzten Änderungen. Wenn Dir noch was auffällt (oder jemand anderem) - ich werde einen ersten Satz Platinen erst in einer Woche bestellen. Was den Schreibschutz angeht - für EEPROM braucht man das wohl, für das Flash teste ich das mal aus. Solange nicht eine bestimmte Schreibsequenz kommt (eine Art dreistelliges Passwort) sollte der Baustein nichts machen. Im Übrigen liegt die Adresse im üblichen RAM Bereich, so dass es sehr unwahrscheinlich ist, dass das Ding versehentlich beschrieben wird ($55AA oder so). Einen Jumper wäre eine Notlösung, finde ich aber nicht elegant. Außerdem lege ich gerne auch mal Konfigurationsdaten im Flash ab.

Was M/C über 32k geht - ja das geht. Da muss nicht nur spiegeln ausgeschaltet sondern auch die ULA deaktiviert werden. Das ist der einzige Grund, warum ich D6 brauche. Da muss dann im richtigen Moment das RAM für einen kurzen Zeitraum übersteuert werden. Das ist im Grunde das gleiche Spiel was die ULA mit der CPU treibt, nur andersrum. Diesmal gaukeln wir der ULA vor, es wären alles Befehle mit D6=1 auch wenn sie es nicht sind für den genannten Speicherbereich. Das geht von außen. :wink:
ZXblast5.png
ZXblast5.png (289.12 KiB) 4075 mal betrachtet
ZXBLAST - Project.pdf
(127.46 KiB) 61-mal heruntergeladen
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZXblast

Beitrag von PokeMon » 20.03.2016, 00:45

Naja - erwartungsgemäß interessieren einzelne Schreibzugriffe auf das Flash ROM selbiges herzlich wenig. Insofern bleibt /WR einfach dauerhaft aktiv am Flash ROM. EEPROMs reagieren da anders, das ist mir bewußt vom ZX80CORE. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 1909
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: ZXblast

Beitrag von siggi » 20.03.2016, 08:16

Und noch was: ich vermisse auf der Karten einen Bustreiber-Baustein (LS245 o. ä).
Zwar haben Speicherbausteine meist recht starke Datenbustreiber (FANOUT 10 TTLs oder so), aber gilt das auch für den USB-Chip?
ZeddyNet lief jedenfalls erst stabil, nachdem ich dem WIZ (der auch mit nur 3V läuft) einen Bustreiber spendiert hatte.

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

Benutzeravatar
siggi
User
Beiträge: 1909
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: ZXblast

Beitrag von siggi » 20.03.2016, 08:19

Und zum neunen Schaltplan: wenn Du die 2 Dioden an /RFSH und /RD umdrehst, klappt's auch mit der HRG :wink:
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
siggi
User
Beiträge: 1909
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: ZXblast

Beitrag von siggi » 20.03.2016, 08:42

Hi Karl
wie ist denn das Banking nun vorgesehen?

Beim ZX96 und meinen Zeddies passiert das ja hauptsächlich bei 8-16K, wo sich z.B.
- USB-Treiber im Ram oder EPROM
- ASDIS im Ram oder EPROM
- ZeddyNet-Systemvariablen im RAM
- HIRES-Screens im RAM
- BASIC-Erweiterungen im RAM
drum kloppen. Beim ZX96-Vollausbau gibt's da m. W. 4x8 K Ram bzw. 4x8K EPROM einblendbar.

Und für MEFISDOS und Ramdisk sind die höchsten 16K-RAM umschaltbar (bis 256x16K ab 48K: http://www.fischerkai.de/zxteam/mega_d.htm)

Gruß
Siggi

PS: im ZX96 geht Paging ja mit POKE 8/POKE 9, ich habe in meinen Zeddies aber Latches drin, die mit OUTs gesetzt werden.

Edit: Ach ja, beim ZX96 gibt's ja noch die MODHI und MODLO Signale, die verwendet werden können, um Speicher auszublenden, dessen Adressraum anderswo benutzt werden will (siehe http://www.fischerkai.de/zxteam/megabyte.jpg , links oben kommen sie rein).
Beim Anschluß an den ZX81 stören die ja nicht (liegen ja außerhalb des ZX81-Connectors), denn die Signale sind über Widerstände so voreingestellt, daß der Speicher der Karte aktiviert ist.
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

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

Re: ZXblast

Beitrag von PokeMon » 20.03.2016, 13:41

siggi hat geschrieben:Und noch was: ich vermisse auf der Karten einen Bustreiber-Baustein (LS245 o. ä).
Zwar haben Speicherbausteine meist recht starke Datenbustreiber (FANOUT 10 TTLs oder so), aber gilt das auch für den USB-Chip?
ZeddyNet lief jedenfalls erst stabil, nachdem ich dem WIZ (der auch mit nur 3V läuft) einen Bustreiber spendiert hatte.

Gruß
Siggi
Na da mache ich mir überhaupt keine Sorgen. Der ZXmore hat zwar einen Bustreiber für den Datenbus, dessen Aufgabe ist aber einzig und allein die NOPs zu realisieren indem der Treiber still liegt und über Pull Downs die Datenleitungen runtergezogen werden. Künstlerische Freiheit anstelle der 74LS05 Technologie. :wink: Der hat recht starke Ausgangstreiber und knüppelt alles nieder was sich ihm in den Weg stellt. Standardmäßig 4mA, kann man aber auch auf 8, 12 oder 16mA in der Konfiguration stellen, wenn man es braucht.
Bildschirmfoto 2016-03-20 um 13.35.03.png
Bildschirmfoto 2016-03-20 um 13.35.03.png (216.35 KiB) 4026 mal betrachtet
Mit den Dioden hast Du Recht, so spät abends schleichen sich schon mal Fehler ein.
Wäre aber auch kein Beinbruch, weil man sie auch einfach andersrum einlöten könnte.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste