Z80-PIO für den ZX81

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

Re: Z80-PIO für den ZX81

Beitrag von siggi » 16.12.2015, 15:09

PokeMon hat geschrieben: Es funktioniert übrigens auch meine ZeddyNet Karte mit 6.5 MHz. Einzig störend ist hier der zu schnelle Repeat vom z88dk Treiber - vielleicht bekommt man das durch eine kleine Änderung seitens Stefano ja auch noch in den Griff. :wink:
Na dann kippe das doch gleich mal als "Feature Request" ins Z88DK-Forum ein, sonst wird das nix:
http://www.z88dk.org/forum/viewforum.php?id=8

Beim IRC-Chat wird Keyrepeat nicht allein durch das "gewünschte" und eingestellte Repeat-Timing bestimmt, sondern auch durch die Laufzeit des Programm zwischen dem Poll des Keyboards, weil Round-Robin-mässig auch noch die ZeddyNet Sockets parallel zum Keyboard gepollt werden und der Bildschirm parallel vollgeschrieben wird. Insbesondere bei alten IRC-Chat-Versionen, die noch recht langsam in der Ausgabe liefen, war so deutlich erkennbar, daß die eingestellte und die effektiv erreichte Keyrepeat-Frequenz nichts miteinander zu tun hatten ...
Und die Laufzeit bei 6,5 MHz ist ja wohl deutlich kürzer als im Normalmodus.

Beim NFM habe ich die Balkengeschwindigkeit beim Hoch/Runterfahren für Andy's ULA2 für beide Taktfrequenzen konstant halten können, weil ich mit PEEK erkennen kann, in welchem Gang die ULA2 läuft und das Delay dann anpassen kann. Beim ZXMore klappt das ja so nicht, da muß man dann flinke Finger haben zur Selektion einer Datei :D
Da habe ich inzwischen (eine neue NFM-Version kommt bald) auch eingebaut, daß bei Andy's ULA2, wenn sie schnell läuft, auch nach Umschaltung in FAST-Modus wieder in den Schnellgang geschaltet wird (POKE 1001,ebbes). Das wird dann beim Laden/Speichern eines Programms erkennbar.

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

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

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 16.12.2015, 16:34

Im Grunde passiert das beim USB Laden/Speichern ja automatisch weil die Instanz 0 solche Vorgänge ausführt und mit voller Geschwindigkeit läuft. Einfluss haben die 6.5 MHz im Grunde nur auf den Bildschirmaufbau beim IRC Chat zum Beispiel. Wobei ich mir denken könnte, dass ein schnellerer Zugriff auf den TNFS Server auch von Vorteil sein könnte.

Im Grunde wäre es sinnvoll bei z88dk das nicht an die Ausführungsgeschwindigkeit des Programms zu koppeln sondern ganz simpel an den FRAMES Counter der ja unter ZX81 vorhanden ist. Der wird garantiert nur 1x pro Frame aktualisiert egal ob 3.25 oder 6.5 MHz. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Z80-PIO für den ZX81

Beitrag von siggi » 16.12.2015, 16:41

Das solltest Du mit den Z88DK-Entwicklern diskutieren. Es gibt ja auch Leute, die im FAST-Modus und ganz ohne Video ein sauberes Timing haben wollen ...

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

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

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 19.12.2015, 14:02

siggi hat geschrieben:Na dann kippe das doch gleich mal als "Feature Request" ins Z88DK-Forum ein, sonst wird das nix:
http://www.z88dk.org/forum/viewforum.php?id=8
Hallo siggi,
willst Du das nicht lieber selbst reinkippen ? Ich weiß ja noch nicht mal welche Treiber/Einstellungen/libs für das Chat Programm benutzt werden, was man konfigurieren kann und könnte auch keine Änderungen testen.

Das Problem ist recht einfach formuliert, es gibt aus meiner Sicht mehrere Ansätze für den Betrieb des Tastaturtreibers mit anderen Frequenzen:
* Verwendung von FRAMES statt einer Warteschleife
* Einführung eines Flags für schnellere ZX81 Rechner
* Einführung einer konfigurierbaren Wartezeit bei Tastatureingaben (Wartezeit für Repeat und Repeat Rate)

Mit letzterem könnte man die Repeat Rate individuell beeinflussen auf Systemen die schneller oder langsamer laufen. Eine andere Alternative wäre die Geschwindigkeit des Rechners zu ermitteln (geht mit einer länger laufenden Schleife und zählen der FRAMES Änderungen) und Anpassung der Werte im Programm automatisch. Die konfigurierbare Option erlaubt dem Programmierer natürlich mehr Freiheiten, erfordert aber zusätzliche Parameter. Das Ermitteln der Geschwindikeit im Treiber selbst würde ohne Zusatzparameter auskommen. Keine Ahnung wie leicht die sich mit Zusatzparametern tun.

Es gibt ja auch noch den Uber Zeddy mit 20 MHz - auch wenn er nicht so weit verbreitet ist. :mrgreen:

LG, Karl

PS: Der FAST Mode dürfte überhaupt gar keine Rolle spielen, da man hier sowieso nicht sehen kann was ich eingebe. Sobald ich INPUT aufrufe, bin ich ja nicht mehr im FAST Mode weil ja eine Bildschirmanzeige generiert wird, was in Bezug auf die Geschwindigkeit dem SLOW Mode entspricht. Es gibt m.E. auch keine sinnvollen Steuerungsmöglichkeiten eines Spiels im FAST Mode weil man ja eh nicht sieht was man steuert. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Z80-PIO für den ZX81

Beitrag von siggi » 20.12.2015, 12:21

PokeMon hat geschrieben:
siggi hat geschrieben:Na dann kippe das doch gleich mal als "Feature Request" ins Z88DK-Forum ein, sonst wird das nix:
http://www.z88dk.org/forum/viewforum.php?id=8
Hallo siggi,
willst Du das nicht lieber selbst reinkippen ? Ich weiß ja noch nicht mal welche Treiber/Einstellungen/libs für das Chat Programm benutzt werden, was man konfigurieren kann und könnte auch keine Änderungen testen.

Das Problem ist recht einfach formuliert, es gibt aus meiner Sicht mehrere Ansätze für den Betrieb des Tastaturtreibers mit anderen Frequenzen:
* Verwendung von FRAMES statt einer Warteschleife
Funzt aber nicht bei Funktionen wie in_wait(), die mit Millisekunden-Auflösung arbeiten.
* Einführung eines Flags für schnellere ZX81 Rechner
Ein Flag (normal/turbo) deckt aber den 20 MHz-Zeddy nicht mit ab.
* Einführung einer konfigurierbaren Wartezeit bei Tastatureingaben (Wartezeit für Repeat und Repeat Rate)

Mit letzterem könnte man die Repeat Rate individuell beeinflussen auf Systemen die schneller oder langsamer laufen.
Das gibt's ja schon:
http://www.z88dk.org/wiki/doku.php?id=library:input
Z88dk-WIKI hat geschrieben:

Code: Alles auswählen

 2. in_GetKey()

Returns the ascii code of a keypress. If either no key is pressed or more than one key is simultaneously pressed, 0 is returned. This function implements key debouncing and key repeat and is meant for typing applications. To use this function your program must declare the following variables:

uchar in_KeyDebounce;        // Number of ticks before a keypress is acknowledged. Set to 1 for no debouncing.
uchar in_KeyStartRepeat;     // Number of ticks after first time key is registered (after debouncing) before a key starts repeating.
uchar in_KeyRepeatPeriod;    // Repeat key rate measured in ticks.
uint in_KbdState;            // Reserved variable holds in_GetKey() state

Initialize these variables to adjust the typing response desired. The time measurement “ticks” refers to the number of times the in_GetKey() function is called. If, for example, in_GetKey() is called from within a 50Hz interrupt service routine, one tick would be equal to 1/50 of a second. 
und das wird im IRC-Prgramm auch genutzt:

Code: Alles auswählen

/* keyboard variable declarations for in_GetKey() */
uchar in_KeyDebounce=1;
//uchar in_KeyStartRepeat=20;
//uchar in_KeyRepeatPeriod=5;
uchar in_KeyStartRepeat=255;
uchar in_KeyRepeatPeriod=20;
uint in_KbdState;
uchar input_ready=0;
Problem ist nur, daß beim Zeddy ein "Tick" nur durch die Laufzeit des Programm zwischen 2 in_GetKey()-Aufrufen gegeben ist, weil sich eine Tastatur-Routine bisher nicht (auf C-Ebene) in die Video-Routine einhängen kann, wie oben empfohlen. Habe deshalb meinen diesbezüglen "Feature Request" im Z88DK-Forum hochgeholt ...
Eine andere Alternative wäre die Geschwindigkeit des Rechners zu ermitteln (geht mit einer länger laufenden Schleife und zählen der FRAMES Änderungen) und Anpassung der Werte im Programm automatisch.
Super, und für dieses Gimmick müssen dann andere Features (wie Help-Screens) aus dem Programm rausfliegen, weil ein 16K Speicher halt seeeeeeeeeeeeeehr endlich ist ..
PS: Der FAST Mode dürfte überhaupt gar keine Rolle spielen, da man hier sowieso nicht sehen kann was ich eingebe. Sobald ich INPUT aufrufe, bin ich ja nicht mehr im FAST Mode weil ja eine Bildschirmanzeige generiert wird, was in Bezug auf die Geschwindigkeit dem SLOW Mode entspricht. Es gibt m.E. auch keine sinnvollen Steuerungsmöglichkeiten eines Spiels im FAST Mode weil man ja eh nicht sieht was man steuert. :wink:
Falsch, denn gerade der FAST-Modus wird benutzt, um sauberes Timing zu kriegen (und das hatte ich oben genannt).
Wie willst Du sonst softwaremässig Musik machen?
beatles.p
(6.58 KiB) 72-mal heruntergeladen
(bitte im SLOW-Modus starten und Cassettenrecorder oder Aktivboxen an MIC dranhängen oder EO benutzen und Beeper-Sound einschalten)

Und wieso sollte man im FAST keine Eingabe benötigen? Wie willst Du sonst eine Software-Orgel programmieren, die z.B. bei Druck auf Taste F den Ton F und bei Taste D den Ton D spielt. Da braucht man keinen Video-Output (den der Orgelspieler auch nicht hat), sondern guckt auf die Tasten, denn die sind beschriftet (auch in FAST mode :wink: )

Gruß
Siggi

PS: Habe von IRC-Chat mal eine Testversion gebastelt, die eine Zeitverplemperung (100 msce@3,25 MHz) nach Tastendruck bei schnellen Zeddies drin hat:

Code: Alles auswählen

void fillKbdBuffer(void)
{
    uchar k=in_GetKey();
    if(k)
    {
        *(kbuf+bufoffset)=k;

        bufoffset++;
        if(bufoffset == KBUFSZ)
            bufoffset=0;
        if (*(char *) 531 == 34)
          in_Wait(100); /* wait 100 msec on fast ZX81 clones having a patched ROM */
    }
}
irc-t.zip
(31.21 KiB) 105-mal heruntergeladen
Es möge sich aber keiner beschweren, wenn nun bei schnellen Zeddies nach Tastendruck die Bildschirmausgabe ausgebremst wird ....
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

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

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 20.12.2015, 13:36

siggi hat geschrieben:
Eine andere Alternative wäre die Geschwindigkeit des Rechners zu ermitteln (geht mit einer länger laufenden Schleife und zählen der FRAMES Änderungen) und Anpassung der Werte im Programm automatisch.
Super, und für dieses Gimmick müssen dann andere Features (wie Help-Screens) aus dem Programm rausfliegen, weil ein 16K Speicher halt seeeeeeeeeeeeeehr endlich ist ..
So eine Routine braucht vielleicht geschätzt 30 Bytes in Assembler. Und sowas kann man bei Programmstart ausführen noch bevor zum Beispiel der HRG Screen initialisiert wird. Da hast Du 6kByte für irgendwelche Startup Geschichten. Nach dem Start braucht man ja nur noch die ermittelten Werte. Etwas mehr Kreativität wünsche ich mir manchmal schon wenn man über Problemlösungen nachdenkt. :wink:

Und ansonsten kann ich halte nur entgegenhalten, dass Du einfach Dein IRC Programm mit 3.25 MHz betreibst. Diese Option gibt es ja auch. Man muss halt auch zu Kompromissen bereit sein - es geht halt nicht immer alles. Du kannst den Keyboard vom z88dk auch ganz weglassen, dann gibt es auch kein Problem. Gut die Tastatur reagiert etwas träger.

Es wird auch später noch weitere Funktionen geben, die einen ZXmore eigenen Keyboard Treiber nutzen. Das sind aber wirklich Gimmicks, die momentan keine Priorität haben. Der Vorteil ist, dass ein schnelleres Keyboard dann auch Anwendungen zur Verfügung steht, die NICHT mit z88dk programmiert wurden und auch auf der ganz normalen Kommandozeile. Außerdem sind damit Features möglich wie DOSKEY (Wiederholung von Eingabezeilen durch simples durchklimpern mit Pfeil hoch oder runter, quasi eine History von Eingaben). Finde ich persönlich sehr nützlich weil man oft mal Eingaben wiederholen muss. Oder programmierbare Tasten für Texte/Befehle und ganz Befehlssequenzen.

Inwieweit dass dann wieder mit der speziellen Lösung von z88dk / ANSI kompatibel ist kann ich nicht abschätzen. Aber eigentlich brauchst Du das nicht unbedingt außer vielleicht für den Hash (#). Den kriegt man zur Not anders auch hin (mit Pfund) und Grossbuchstaben werden im IRC sowieso überschätzt.
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Z80-PIO für den ZX81

Beitrag von Paul » 20.12.2015, 13:41

So eine Routine könnte schon im Ipconfig laufen. Benötigt dann als Static Variable in den systemvariablen 8-16k nur ein Byte
Nur mal so als Idee.oder könnte von Hand gePOKEd werden.
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 20.12.2015, 14:14

Noch ein Hinweis von mir zu den Timer Ticks - das ist halt sagen wir mal speziell. Der ZX81 hat ja in dem Sinne keinen (sinnvollen) Timer und dass eine Granularität von 64us für Anwendungsfälle wirklich besonders praktikabel ist leuchtet mir auch nicht ein. Man kann sich damit behelfen - ja. Im SLOW Mode ist darüberhinaus ein Problem, dass ein Timer Tick im Zweifel auch mal 12 Millisekunden dauern kann wenn gerade die Bildausgabe zwischendrin reinhaut. Wenn dagegen der NMI Generator im FAST Mode abgeschaltet ist, haben wir sogar einen Totalausfall des Timers.

Wenn ein Programm auf regelmäßige NMIs angewiesen ist, dann besteht auch hier die Möglichkeit mit DS-C die Kontrolle vollständig an das ZX81 ROM zu übergeben und alle Timer- und sonstigen Funktionen stehen dann in diesem Modus (der dem ZX81 mit 32k oder 48k RAM entspricht ab $4000) zur Verfügung. Wenn man vorher noch 3.25 MHz einstellt dann auch mit dieser Geschwindigkeit. Dafür gibt es ja diesen Modus.

Bau doch einfach mal einen Standard Zeddy auf 6.5 MHz um und beschreibe mir, wie Du das Problem damit löst. :wink:

Ich verwehre mich ein bischen gegen den vermittelten Eindruck, dass all dies ein Problem des ZXmore wäre und damit generell mein "Problem". Wenn ich ein Auto auffrisiere, darf ich mich auch nicht darüber beschweren, dass die Abgaswerte jetzt anders sind oder der Verbrauch höher oder es bei etwas rutschigen Bedingungen schneller ausbricht. Dann muss ich halt im Zweifel den Turbo rausnehmen in bestimmten Situationen.
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Z80-PIO für den ZX81

Beitrag von siggi » 20.12.2015, 14:38

PokeMon hat geschrieben:
siggi hat geschrieben:
Eine andere Alternative wäre die Geschwindigkeit des Rechners zu ermitteln (geht mit einer länger laufenden Schleife und zählen der FRAMES Änderungen) und Anpassung der Werte im Programm automatisch.
Super, und für dieses Gimmick müssen dann andere Features (wie Help-Screens) aus dem Programm rausfliegen, weil ein 16K Speicher halt seeeeeeeeeeeeeehr endlich ist ..
So eine Routine braucht vielleicht geschätzt 30 Bytes in Assembler.
Wenn Du mir eine 30Byte-Routine besteuerst, die mir die Zeddy-Frequenz in MHz liefert (oder mindestens 3,25, 6,5 und 20 MHz unterscheidbar macht), dann denke ich darüber nach, wo ich die einbauen könnte ... :mrgreen:
Aber "sauber" wird das alles erst funktionieren, wenn die Keyboard-Routine in der Video-Routine drin hängt.
Und ansonsten kann ich halte nur entgegenhalten, dass Du einfach Dein IRC Programm mit 3.25 MHz betreibst.
Das mache ich ja die ganze Zeit und damit kein Problem.
Inwieweit dass dann wieder mit der speziellen Lösung von z88dk / ANSI kompatibel ist kann ich nicht abschätzen. Aber eigentlich brauchst Du das nicht unbedingt außer vielleicht für den Hash (#). Den kriegt man zur Not anders auch hin (mit Pfund) und Grossbuchstaben werden im IRC sowieso überschätzt.
Das solltest Du mal mit Erik diskutieren ....
Bau doch einfach mal einen Standard Zeddy auf 6.5 MHz um und beschreibe mir, wie Du das Problem damit löst. :wink:
Indem ich die Keyboard-Timing-Parameter dafür möglichst passend einstelle, das ist ja nicht das Problem (und genauso habe ich es für 3,25 MHz-Zeddies ja getan).
Das Problem ist, daß die meisten Zeddies mit 3,25 MHz laufen und nur wenige schneller und da meine Programme auch sinnvoll laufen sollten.
Ich verwehre mich ein bischen gegen den vermittelten Eindruck, dass all dies ein Problem des ZXmore wäre und damit generell mein "Problem". Wenn ich ein Auto auffrisiere, darf ich mich auch nicht darüber beschweren, dass die Abgaswerte jetzt anders sind oder der Verbrauch höher oder es bei etwas rutschigen Bedingungen schneller ausbricht. Dann muss ich halt im Zweifel den Turbo rausnehmen in bestimmten Situationen.
Na dann verrate mir mal, wie ich beim ZxMore den Turbo durch ein Basic- oder C-Programm abschalten kann (bei Andy's ULA geht das ja mit Poke 101,...).

Und das wäre auch beim IRC-Chat die beste Lösung, da dann auch der "DONG" richtig aus dem Mr.X (der auch mit 3,25 MHz rechnet) rauskommt, wenn eine neue IRC-Nachricht eingetroffen ist ...

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

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

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 20.12.2015, 18:40

siggi hat geschrieben:Na dann verrate mir mal, wie ich beim ZxMore den Turbo durch ein Basic- oder C-Programm abschalten kann (bei Andy's ULA geht das ja mit Poke 101,...).

Und das wäre auch beim IRC-Chat die beste Lösung, da dann auch der "DONG" richtig aus dem Mr.X (der auch mit 3,25 MHz rechnet) rauskommt, wenn eine neue IRC-Nachricht eingetroffen ist ...
Im Moment gibt es noch keine Programmierschnittstelle dafür.
Der Anwender kann das aber derzeit manuell tun mit SHIFT-SHIFT-P vor oder auch nach oder auch während des IRC Chats.
Eigentlich sind wir hier auch mittlerweile ziemlich offtopic - geht es doch hier um die PIO.
Verzeihung, Joachim, das hat irgendwie eine Dynamik entwickelt.

Morgen werde ich das offizielle Update ZXmaster 1.7 veröffentlichen und dann verdrück ich mich schnell in den Weihnachtsurlaub. :mrgreen:
Da kann man auch auswählen wie die Instanzen gestartet werden sollen - allerdings noch nicht individuell jede erdenkliche Konfiguration.
Mir geht jetzt die Zeit aus. Ich werde dann bis Mitte Januar das Update 1.9 nachschieben. Also zweistufig.
Mehr morgen dazu im ZXmore Thread.

Und Danke für Dein Verständnis betreffend der anderen "Probleme".
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Z80-PIO für den ZX81

Beitrag von msch » 21.12.2015, 21:38

Hier gibt es gerade 2 Stück 10 MHz PIOs von Zilog für 12,90 inkl. Versand:
http://www.ebay.de/ulk/itm/321802524420

2 Stk Z84C20 -10 PEC = Z80 CMOS- PIO = 10MHz = original ZILOG = NOS =
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 01.01.2016, 15:22

PokeMon hat geschrieben:Ich würde Dir auch gerne meine zweite Toshiba PIO TMPZ84C20AP-6 zuschicken aber die habe ich offenbar verlegt und finde sie jetzt nicht. Ich muss eh das Arbeitszimmer aufräumen und gegen Ende des Jahres mache ich eine Inventur und spätestens da wird sie mir wohl wieder in die Hände fallen.
Genauso ist es gekommen, meine PIO ist mir gestern beim Aufräumen wieder in die Hände gefallen. Falls Du sie zum Testen brauchst, gib mir einfach kurz Bescheid. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 01.01.2016, 15:45

Danke für's Angebot, aber ich habe mir beim selben Händler wie du zwei bestellt und auch schon bekommen.
Viele Grüße!
Joachim


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

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

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 12.01.2016, 23:22

Hallo zusammen!
Ich habe PIO-Platinen anfertigen lassen, die jetzt mit genügend Kondensatoren und breiteren Leiterbahnen für die Versorgungsleitungen versehen sind. Sieben Stück kann ich davon abgeben.
Eine Platine kostet 3,50 Euro,
1,45 Euro das Porto und
VG-64-Stecker und -Buchsen für jeweils 0,60 Euro kann ich auch anbieten.

@ wizzer: für dich habe ich schon eine Platine reserviert.

Hier Fotos der neuen Platine.
PIO_neu_Platinen.jpg
PIO_neu_Platinen.jpg (207.79 KiB) 5428 mal betrachtet
PIO_neu_bestückt.jpg
PIO_neu_bestückt.jpg (192.49 KiB) 5428 mal betrachtet
Und hier nochmals der Hinweis: IC 74LS32 und die Germaniumdiode sind nur notwendig, wenn man einen ZX96 mit einer Bustreiberplatine hat.
Viele Grüße!
Joachim


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

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

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 13.01.2016, 09:59

Hier noch ein Hinweis zu den Steckverbindungen.
Als wir Anfang der 90er den ZX96-Bus austüftelten, waren wir darauf bedacht, abwärtskompatibel zu bleiben. Die Extenderplatine kannten wir damals noch nicht ;), aber auch damit geht es hervorragend. Für die VG64-Messerleisten und -Buchsen haben wir uns entschieden, damit die Wackelei ein Ende hat. Auf dem Foto sieht man die möglichen Verbindungen:
Steckvariationen.jpg
Steckvariationen.jpg (169.16 KiB) 5413 mal betrachtet
Man kann einen Slotstecker direkt einlöten, so wie bei den originalen Ansteckmodulen (im Foto links). Die Position für diesen Stecker ist mit Strichen auf der Platine markiert. Dazu gab es damals doppelseitige Platinen mit versilberten Leiterbahnstreifen drauf. Die konnte man auf der Platinenrückseite an die herausstehenden Slotsteckerpins anlöten. An diese Streifenplatine, die eine Kerbe ausgefräst hatte, konnte man dann den nächsten Slotstecker anstecken.
Man kann PokeMons Extenderplatine verwenden (im Foto rechts). Wie das geht und aussieht hat er in einem extra Thread beschrieben.
Man kann sich einen Adapter aus Slotstecker und VG64-Buchse löten. Dann kann man die Platinen liegend anstecken. Allerdings ist das Anstecken einer weiteren Platine nicht mehr möglich.
Viele Grüße!
Joachim


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

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

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 13.01.2016, 16:21

Kleine Berichtigung zu PIO-Bestellung:
Der Versand einer einzelnen Platine als Brief kostet nicht 1,45 sondern 0,85 Euro. Sobald noch Stecker oder mehr Platinen dabei sind, dann wird's 1,45 Euro.
@wizzer: Ich schulde dir 60 ct. Entschuldige!
Viele Grüße!
Joachim


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

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

Re: Z80-PIO für den ZX81

Beitrag von ZX-Heinz » 13.01.2016, 17:35

Erbitte Hilfe: Ist der UD855 bzw. UB855D mit dem Z8420 für Joachims Platine kompatibel?

Benutzeravatar
Grautier
User
Beiträge: 380
Registriert: 18.11.2013, 18:44
Wohnort: Mühldorf

Re: Z80-PIO für den ZX81

Beitrag von Grautier » 02.02.2016, 21:29

Ich habe die PIO nun auch endlich fertig gestellt und damit mit dem ZXMore, ZX80Core und einem ZX81 einige Versuche gemacht.
Dabei ist mir aufgefallen, dass sich scheinbar nicht alle CPUs mit dem ZXMore in zusammenarbeit mit der PIO vertragen und der ZXMore im SLOW Mode beim PIO-Betrieb etwas instabil läuft und meistens spätestens nach ein paar Minuten abstürzt, während im Fast-Mode stundenlang die LEDs an der PIO blinken.
Erstaunlicherweise scheint eine ST 8 MHz CPU im Slow-Mode überhaupt nicht recht mit dem ZXMore zu funktionieren.

Ich habe dazu ein Youtube-Video mit 3 verschiedenen CPUs erstellt:

https://www.youtube.com/watch?v=n7-uE-au4Vk

Zilog Z84C0010PEG - SLOW Mode 3,25 MHz - läuft richtig, ZXMore stürzt nach einigen Minuten ab.
(10 MHz CPU) SLOW Mode 6,5 MHz - läuft richtig, ZXMore stürzt meist spätestens nach einer Minute ab.
FAST Mode - läuft perfekt und (vermutlich) stundenlang.

ST Z84C00HB6 - SLOW Mode 3,25 MHz - LEDs leuchten nur sehr schwach und flackern. Auch hier Absturz wie oben.
(8 MHz CPU) SLOW Mode 6,5 MHz - LEDs sind nicht zu sehen.
FAST Mode - läuft perfekt und (vermutlich) stundenlang.

Zilog Z8400APS - SLOW Mode 3,25 MHz - läuft richtig, ZXMore stürzt nach einigen Minuten ab.
(4 MHz CPU) - SLOW Mode 6,5 MHz - LEDs laufen fehlerhaft.
FAST Mode - läuft perfekt und (vermutlich) stundenlang.

Mit einer UB880D CPU kommt der ZXMore garnicht hoch.

Im ZX80 Core habe ich alle 4 CPUs ohne Probleme mit der PIO laufen lassen.
Was könnte das instabile verhalten des ZXMore mit der PIO für ein Problem sein? Ich habe relativ lange einige Spiele auf dem ZXMore gespielt, da gab es zwar auch mal einen Absturz, aber dann auch über eine Stunde nicht.
Komisch ist, das der ZXMore mit der PIO im FAST-Mode absturzsicher lief.

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

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 02.02.2016, 22:25

Hallo Erwin,

es gibt mehrere mögliche Problem wobei ich es nicht so ganz genau nachvollziehen kann.
Aufhängen sollte sich die CPU bei der Ausgabe eigentlich nicht wirklich, wenn das Testprogramm nur OUT Befehle nutzt.

Hier wurde mal etwas dazu erörtert, da ich festgestellt habe, dass das CLK Signal invertiert zum Steckverbinder geht und eigentlich zurück invertiert werden müsste.
http://forum.tlienhard.com/phpBB3/viewt ... 125#p21628

Außerdem liegt am Steckverbinder immer nur der langsame CLK an (3.25 MHz) weshalb ich für die PIO von der Verwendung des 6.5 MHz Takt eigentlich abrate. Auch können sich da die CPU's geringfügig unterscheiden.

Es könnte aber auch noch an einem I/O Adress Konflikt liegen, das sollte man nochmal prüfen. Bei 6.5 MHz werden im FAST Modus keine internen IO Adressen benutzt weil NMI Generator nicht ein/ausgeschaltet wird und einige interne Dinge ebenfalls. Ich weiß nicht welche I/O Adresse im Programm benutzt wird. Die Konfigurationslatches hängen an IO Adressen und werden einige tausend Mal pro Minute umgeschaltet.
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 02.02.2016, 22:38

PS: Lade doch mal das Testprogramm hoch, dann kann ich selbst mal testen damit.
Bisher habe ich immer eigene Programme geschrieben.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Grautier
User
Beiträge: 380
Registriert: 18.11.2013, 18:44
Wohnort: Mühldorf

Re: Z80-PIO für den ZX81

Beitrag von Grautier » 02.02.2016, 23:05

Das ist Joachims PIOC7CF.P Programm.
http://forum.tlienhard.com/phpBB3/downl ... hp?id=4153

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

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 02.02.2016, 23:28

Ich werde es die Tage mal testen. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 04.02.2016, 14:41

Zu meiner Ehrenrettung habe ich die kleine PIO-Monitor-Platine verbessert und der Schaltung einen ULN2803 spendiert. Ich denke, dass die PIO jetzt nicht mehr soviel schuften muss.
Anzeigeplatinen.jpg
Anzeigeplatinen.jpg (200.8 KiB) 5288 mal betrachtet
Anzeigeplatine Bestückung.jpg
Anzeigeplatine Bestückung.jpg (212.54 KiB) 5288 mal betrachtet
Anzeigeplatinen am ZXmore.jpg
Anzeigeplatinen am ZXmore.jpg (162.61 KiB) 5288 mal betrachtet
Viele Grüße!
Joachim


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

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

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 04.02.2016, 14:44

(Fortsetzung)
Damit der Platinennutzen für das Seeedstudio voll wurde, habe ich noch einen Sub-D-Adapter dazugelegt. Damit kann man das Rastermass der Sub-D-25-Stecker/Buchsen von 2,77 auf 2,54 bringen. Gleichzeitig bietet sich noch der Anschluss von Buchsen oder Stiftleisten. Z.B. zum Aufstecken von der Monitörchen. Weil es relativ teuer ist, mehr als einen Ausschnitt bei Seeedstudio fertigen zu lassen, habe ich die kleinen Teile vom ZX81 selber ausfräsen lassen.
Sub-D-Adapter Bestückung.jpg
Sub-D-Adapter Bestückung.jpg (245.55 KiB) 5288 mal betrachtet
Sub-D-Adapter mit Anzeigeplatinen.jpg
Sub-D-Adapter mit Anzeigeplatinen.jpg (203.95 KiB) 5288 mal betrachtet
Viele Grüße!
Joachim


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

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

Re: Z80-PIO für den ZX81

Beitrag von Paul » 04.02.2016, 16:42

Das sieht super aus Joachim!
Und wie teuer ist so ein Platinensatz/Bausatz? :wink:
Liebe Grüße
Paul
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Antworten