Retro-Projekt Poke-Karte V.3.0

ZX-Team Forum
Antworten
Benutzeravatar
Joachim
User
Beiträge: 1152
Registriert: 06.11.2004, 20:21

Retro-Projekt Poke-Karte V.3.0

Beitrag von Joachim » 03.12.2018, 23:57

Sie war schon legendär, zur damaligen Zeit, die Poke-Karte. Entwickelt hat sie Gotthard S., als es erforderlich wurde, 4 Floppies per Programm zu aktivieren (Programme, Daten, Backup etc.).
Seine Idee war einfach aber genial: Mit dem Basic-Befehl Poke 8, Wert oder in MC z.B. ld hl,8 ld (hl),Wert wird die Adresse 8 auf den Adressbus gelegt. Dies erkennt eine Vergleichslogik und schaltet ein Latch frei. Dieses gibt den Wert, den es zu diesem Zeitpunkt vom Datenbus gelesen hat, aus und behält ihn. Auch bei New.

Anfangs waren es noch Logikbausteine für den Adressenvergleich. In der Version 2 wurde dann ein GAL daraus. Das hat den Vorteil, dass man auch eine andere Adresse als 8 wählen kann. Warum die Acht? Für das Layout war es leichter, es war nur eine Leitung (A3) zu beachten. Außerdem muss die Adresse größer als 5 sein, weil bekanntermaßen gewisse Routinen im ROM auf die Adressen unter 5 poken.
Hier der orignale Schaltplan. Eine der Dioden ist leider verkehrt herum gezeichnet.
pokekartealt.jpg
pokekartealt.jpg (79.1 KiB) 2725 mal betrachtet
Die Poke-Karte gibt am Ausgang des 74LS573 8 Bit aus. Damit kann man z.B. auf einem großen Speicherbaustein die oberen Adressleitungen verbinden und damit ein Bankswitching realisieren. Üblicherweise haben wir im Team aber damit die Freigabepins der EEPROMs bzw. RAMs bedient und konnten so Bänke ein- und ausschalten. Dazu war aber ein 4 zu 16-Adressdekoder 74LS154 erforderlich. Ohne diese Poke-Karte gäbe es zum Beispiel das Harddisk-Interface für den ZX81 nicht, denn damit werden die darauf befindlichen RAM-Bänke (mit Poke 8,13 ... 15) geschaltet. Nur so war es möglich, Platz für Directories und das Zwischenlager für Files und Programme zu haben. Sehr häufig wurde und wird die Poke-Karte für die Aufteilung eines EEPROMs mit Tools wie zum Beispiel ASDIS in 8KB-Bänke verwendet. Damit wurde sie auch zum Kernstück des ZX96 und seiner GIANT-RAM-Erweiterung.

Als Paul mitteilte, dass er eine Speicherkarte entwirft, war mir klar, dass ich diese pimpen werde. Dazu brauchte ich aber eine Poke-Karte. Als ich feststellte, dass diverse Logikbausteine nicht mehr oder nur sehr schwer beschaffbar waren, entschloss ich mich zur Verwendung eines GAL. Ich habe damit keine Probleme. Sie laufen bei mir bereits auf verschiedenen Karten seit Jahrzehnten ohne Ausfälle. Den Schaltplan gab es auch schon dazu:
pokekart.gif
pokekart.gif (21.03 KiB) 2725 mal betrachtet
Der zweite GAL auf diesem Plan ist für den ZX96 und deshalb nicht auf meiner Platine. Auch habe ich mir erlaubt, die Datenleitungen ordentlich zu sortieren. Damals legten wir größten Wert darauf, dass eine Platine einseitig bleibt. In der Herstellung waren die Vias sehr teuer und beim Selbermachen war das Durchkontaktieren auch kein großes Vergnügen - eher der Grund für Fehler. Jetzt ist das aber kein Problem mehr und so konnte ich mir dieses Design erlauben:
version 3.0.jpg
version 3.0.jpg (118.31 KiB) 2725 mal betrachtet
Zuletzt geändert von Joachim am 07.12.2018, 14:03, insgesamt 1-mal geändert.
Viele Grüße!
Joachim


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

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von Joachim » 04.12.2018, 00:09

Teil 2:

Auf der Platine kann man nun entweder die 8 Highpegel (JP1: Pfostenleiste zwischen 74LS573 und 74LS154) oder maximal 32 Lowpegel (JP2, JP3) abgreifen. Den zweiten '154er habe ich noch draufgepappt, damit das Highnibble nicht unbenutzt bleibt. Die Highpegel erreicht man mit POKE 8, 1 ... 15. Die Lowpegel 1 bis 15 werden mit auch damit erzeugt. Die Lowpegel 17 bis 31 aus dem linken Nibble werden mit POKE 8, 16/32/48/ ... 208/224/240 erreicht. POKE 8,0 geben einen Lowpegel an Pin 0 und 16 von JP2/3 aus. Bei JP3 (leider ist die Bezeichnung irgendwie verschwunden) sind noch oben und unten GND- und +5V-Pins, falls man hier eine Anzeige, welcher Poke-8 gesetzt ist, anstecken möchte. Ich habe das für mich mit einem TIL311 realisiert, der den Wert des unteren Nibble auf einem 7Segment-Display in Hex ausgibt.

Wir haben damals das Bussystem mit den 64 Pins gewählt, weil wir auf dem Bus noch weitere Signale transportieren wollten. Das waren z.B. das Signal vom Pin 16 der ULA (Videoausgabe), 12 Volt und eben die Signale von der Poke-Karte (1 - 4 für Floppies, 13 - 15 für das Festplatteinterface). Das habe ich jetzt auch realisiert. Dazu ist die zweite Stiftreihe JP4 gedacht. Jumpered man die Signale, die man braucht, werden sie zum VG64-Stecker geleitet (Pins P1 ... 8 ). Damit muss man keine Kabel zwischen den Platinen verlegen.

Die Platine versorgt auch das BUSCS-Signal für den Bustreiber. Wer das nicht benötigt, kann sich die unterste Diode sparen.

P1070881.jpg
P1070881.jpg (114.33 KiB) 2723 mal betrachtet

Ich kann 7 Platinen zum Preis von 3 Euro das Stück abgeben. Auch habe ich noch 7 74LS154. Weitere habe ich geordert. Das sind aber dann schmale Typen, die vom Layout zwar vorgesehen sind, die ich aber noch nicht testen konnte. Ich hoffe, sie passen dann auch. Auch die GALs kann ich noch für 7 Platinen bereits programmiert liefern. Der Rest sind dann nur noch zwei Dioden BAT42 und 4 Kondensatoren mit 100 nF. Die VG64-Leisten habe ich leider nicht so üppig, weshalb man sie sich selber besorgen müßte.

P1070880.jpg
P1070880.jpg (105.1 KiB) 2723 mal betrachtet

Hier noch das SprintLayout-File. Jetzt gibt es hier https://www.electronic-software-shop.co ... rodr3214g1 eine Demo-Version von SprintLayout, mit dem man zwar nicht drucken und speichern aber den Testmodus verwenden kann. Damit kann man alle Leiterbahnen verfolgen. Evtl. ist das nützlich, wenn man Eigenkreationen machen möchte.

POKE8-V3-Karte.zip
(51.81 KiB) 59-mal heruntergeladen
Zuletzt geändert von Joachim am 07.12.2018, 14:05, insgesamt 1-mal geändert.
Viele Grüße!
Joachim


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

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von siggi » 04.12.2018, 09:13

Hallo Joachim
ich hätte gern 2 von den Platinen, wenn möglich mit GAL und 154 (die anderen Bauteile habe ich).

Gruß
Siggi

Edit: Könntest Du den Schaltplan noch einstellen (im ZIP ist ein .lay6-File drin, mit dem ich nix anfangen kann)
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Datenkraken bitte nicht füttern!

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von Joachim » 04.12.2018, 10:20

Im Nachgang hier noch die GAL-Gleichung:
POKE1_8.txt
(2.01 KiB) 69-mal heruntergeladen

@Siggi:
Geht klar! Genügt es, wenn ich dir vorläufig nur insgesamt zwei 74154 mitschicke?
Das .lay6 ist das SprintLayout-File für die Demo (siehe Link). Der Schaltplan ist im Prinzip der zweite im Thread. Ich zeichne aber noch einen vom aktuellen Stand und stelle ihn hier ein. Ich wußte nicht, ob das Thema überhaupt von Interesse ist. Heutzutage hat man ja große Speicher und FPGAs (siehe ZXblast, ZXmore etc).
Viele Grüße!
Joachim


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

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von siggi » 04.12.2018, 10:30

Hallo Joachim
ja, 2 reichen auf alle Fälle.

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

Datenkraken bitte nicht füttern!

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von tokabln » 04.12.2018, 12:00

Hallo Joachim,

du hast Post :mrgreen:

Hätte gerne 2 Karten inkl. GAL und 74154 Blaustein :D

Lieben Dank
Lieben Gruß Torsten
BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, T41, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von Joachim » 05.12.2018, 14:42

Als Nachtrag hier noch der Schaltplan:
Schaltplan PokeKarteV3.jpg
Schaltplan PokeKarteV3.jpg (75.85 KiB) 2027 mal betrachtet
Zuletzt geändert von Joachim am 04.01.2019, 09:00, insgesamt 1-mal geändert.
Viele Grüße!
Joachim


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

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von tokabln » 06.12.2018, 13:03

Hallo Joachim,

Platinen und Bausteine sind heute angekommen.

Es ist Bastelzeit :mrgreen:

Ganz lieben Dank.

Gruß Torsten
Lieben Gruß Torsten
BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, T41, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von siggi » 07.12.2018, 20:00

Meine waren heute auch im Briefkasten :)

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

Datenkraken bitte nicht füttern!

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von Joachim » 23.12.2018, 17:28

Für die Poke-Karte habe ich mir eine kleine Testplatine zusammengelötet. Hier eine Demo der Poke-Karte https://youtu.be/pO41AzxWHRk
Viele Grüße!
Joachim


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

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von siggi » 24.12.2018, 11:35

Wunderbar!
Da kann nun die Christbaumbeleuchtung einfach in BASIC programmiert werden :D

Gruß und fröhliche (Glüh-)Wein-8-en
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Datenkraken bitte nicht füttern!

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von msch » 28.12.2018, 08:53

Hallo Joachim,

Ich hoffe, es ist noch nicht zu spät - ich hätte gerne eine Platine mit Bauteilen.
Ist die LED-Platine aus dem Video auch erhältlich? ;-)

Beste Grüße und vielen Dank,

Mathias
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von Joachim » 28.12.2018, 12:56

Hallo Mathias!
Geht klar.
Die LED-Platine ist selbstgefräst und nicht als Platine erhältlich. Für so einen Fall müßte man tatsächlich eine anfertigen lassen, damit man eine Lötstoppmaske hat. Ich habe mehrere Stunden gepfrimelt, bis alle LED nur dann leuchten, wenn sie sollen. SMD ist schon ein Gefrickel.
Viele Grüße!
Joachim


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

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von msch » 28.12.2018, 22:17

Besten Dank, Joachim!
Aus diesem Grunde mache ich um SMD einen weiten Bogen... through hole ist mir lieber. Klassische LEDs finde ich für sowas audh irgendwie schöner :wink:
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von msch » 02.01.2019, 12:13

Die Pokekarte ist angekommen, besten Dank!
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von tokabln » 03.01.2019, 21:03

Hallo Joachim,

kannst Du bitte mal Dein Schaltbild dahingehend verändern, daß auch zu erkennen ist welche Signale am Bus Connector anliegen? Mir fehlen z.B. die P1 bis P8 Signale und auf welchen PIN die gehen. Das habe ich mir jetzt aus dem Layout heraus geholt, es wäre aber sicher gut wenn man klar erkennen könnte welcher Bus Connector PIN wie angeschlossen ist.

Lieben Dank
Lieben Gruß Torsten
BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, T41, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von Joachim » 04.01.2019, 09:01

Viele Grüße!
Joachim


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

Benutzeravatar
ZX-Heinz
User
Beiträge: 1698
Registriert: 05.12.2011, 14:45

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von ZX-Heinz » 04.01.2019, 17:37

Joachim hat geschrieben:
23.12.2018, 17:28
Für die Poke-Karte habe ich mir eine kleine Testplatine zusammengelötet. Hier eine Demo der Poke-Karte https://youtu.be/pO41AzxWHRk
Hallo Joachim,
zuerst einmal ein gutes Neues Jahr!
Meine Frage: Wie hast Du das Audio-File erzeugt?
Gruß, Heinz

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von Joachim » 04.01.2019, 23:04

Hallo Heinz!
Hört sich nach Mr.X an, ist aber mit magix musicmaker gemacht. Ich wollte, ich könnte sowas mit Mr.X machen.
Viele Grüße!
Joachim


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

Benutzeravatar
ZX-Heinz
User
Beiträge: 1698
Registriert: 05.12.2011, 14:45

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von ZX-Heinz » 05.01.2019, 12:14

Noch eine Frage: Der Sinn der GAL-Gleichung

ROMCS = A0 & A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 &
A10 & A11 & A12 & A13 & A14 & A15 & MREQ & WR;

erschließt sich mir nicht. Diese Leitung wird nur aktiv (und dann HIGH), wenn Adr=#FFFF und kein Memory-Zugriff und kein IO-Write passiert.
Dieser Zustand tritt doch normalerweise im Rechner gar nicht ein. Oder?

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von Joachim » 05.01.2019, 13:06

Hallo Heinz!
Unter '*PINS' werden die Eingangsbedingungen definiert. Damit tritt die Bedingung ROMCS=hi ein, wenn alle Adressleitungen außer A3 auf lo sind, A3 auf hi, MREQ auf lo und WR auf lo. Also bei Adresse 8 - wenn ich mich recht erinnere. Ansonsten müßte Kai hier einspringen.
Viele Grüße!
Joachim


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

Benutzeravatar
ZX-Heinz
User
Beiträge: 1698
Registriert: 05.12.2011, 14:45

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von ZX-Heinz » 05.01.2019, 15:05

Hallo Joachim,
danke für die Nachhilfe. Ich hatte übersehen, dass unter Pins die Adressleitungen (außer A3) negiert werden. Das ergibt #0008.

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von Paul » 05.01.2019, 16:21

Hauptsache ist doch das die Gleichung nicht verrät was sie macht. Wenn man bei mir sowas im Code findet (codereview) kommt mein Standard Spruch: security by obscurity :mrgreen:
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: Retro-Projekt Poke-Karte V.3.0

Beitrag von Joachim » 09.01.2019, 17:28

Poke-Karte V.3.0. ist aus!
Viele Grüße!
Joachim


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

Antworten