Neue ZX80 Platinen

Benutzeravatar
Platine64
User
Beiträge: 282
Registriert: 27.03.2013, 14:52
Wohnort: Steiermark

Re: Neue ZX80 Platinen

Beitrag von Platine64 » 15.06.2013, 20:04

Hallo PokeMon!
Ich bewundere Deine Aktivitäten und Deine schönen Platinen (und die superscharfen Photos auch)! Sich so in diese Materie reinzusteigern, ist bestimmt ein Sonderfall.
Da komme ich nie mit.
Die Platinen in Weiss sehen ja "megaschmückl" aus! Kann man die bestellen?
Ich habe eine Ausgabe Eurer tollen Zeitschrift reservieren lassen. Habt Ihr für mich noch ein Exemplar?
Das wäre cool!
Grüss Euch,
Gerhard

Benutzeravatar
medusa
User
Beiträge: 267
Registriert: 13.01.2013, 19:34
Wohnort: Köln

Re: Neue ZX80 Platinen

Beitrag von medusa » 16.06.2013, 19:08

Und bevor ich aufgebe, kann viel Zeit vergehen. Bin nämlich ein zäher Hund wenn's um was geht. :mrgreen:
Gut zu wissen. Ich kann auch schon mal stur sein. Heute war so ein Tag, nach fast zwei Jahren sporadischem Gefummel hab ich den Floppyemulator für die PDP-11 erstmals wieder dazu bekommen, mit dem Controller zu reden. :D
PDP-11: 012700 176500 012760 000100 000000 000777.
68000: 4E71?
VAX: D450 908051 11FB!
Alpha: 47E8404 A4240000 A4440008 40220400 B404000C...

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 17.06.2013, 00:15

Platine64 hat geschrieben:Die Platinen in Weiss sehen ja "megaschmückl" aus! Kann man die bestellen?
Ich habe eine Ausgabe Eurer tollen Zeitschrift reservieren lassen. Habt Ihr für mich noch ein Exemplar?
Ja die Platinen kann man wohl bald bestellen.
Ich werde dann nochmal hier aufrufen. :D
Werden wohl irgendwas zwischen 20 und 25 EUR kosten je nach Anzahl der Interessenten.

Und mit Zeitschriften kann ich Dir leider gar nicht weiterhelfen. :mrgreen:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 17.06.2013, 00:17

medusa hat geschrieben:
Und bevor ich aufgebe, kann viel Zeit vergehen. Bin nämlich ein zäher Hund wenn's um was geht. :mrgreen:
Gut zu wissen. Ich kann auch schon mal stur sein. Heute war so ein Tag, nach fast zwei Jahren sporadischem Gefummel hab ich den Floppyemulator für die PDP-11 erstmals wieder dazu bekommen, mit dem Controller zu reden. :D
Die horizontalen Syncs scheinen weitestgehend im Griff zu sein.
Jetzt muss ich noch die vertikale Seite in den Griff bekommen.
Da scheint auch noch ein letztes Problem der NMI Schaltung zu liegen. :wink:
IMG_6323k.JPG
IMG_6323k.JPG (71.09 KiB) 7674 mal betrachtet
Da liegen die Halbbilder irgendwie nicht exakt übereinander. Bei den Schriftzeilen ist oben und unten noch vertauscht. :shock:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Neue ZX80 Platinen

Beitrag von msch » 17.06.2013, 14:50

Weil ich es gerade auf Deinem Screenshot sehe: den schwarzen Zacken unten links am Bildschirm habe ich bei meinem ZX80 mit Deinem ZX81CCB auch. Auch durch Nachjustierung mittels Potis ist es nicht wegzubekommen. Nicht dass es mich irgendwie stört (das Bild mit dem Modul ist sowas von besser als über den HF-Modulator), aber ist doch interessant oder? Auf dem Analog-TV kann ich es durch Anpassung der Bildlage nach links "wegschieben" ;-)
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 19.06.2013, 15:27

Bei mir erscheint das nur im SLOW Modus. Der FAST Modus ist einwandfrei (ohne das schwarze Dreieck links am Rand), da wird ja der NMI Generator auch nicht benutzt.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
sbetamax
User
Beiträge: 486
Registriert: 04.03.2006, 22:01
Wohnort: Deutschland / Hessen / Nidda
Kontaktdaten:

Re: Neue ZX80 Platinen

Beitrag von sbetamax » 19.06.2013, 18:25

Hallo,
den Zacken hab ich beim original ZX81 auch. Ich denke es ist ein Timingproblem. Zwischen den Von der CPU erzeugten Bildzeilen und lehren Bildzeilen, die Zeilen sind wohl unterschiedlich lang.
Gruß Stephan
_______________
ZX80 (nachbau), ZX81, ZX 2000, ZX NU, IQ8300, ZX Spectrum, ZX Spectrum plus, ZX Spectrum 128, Harlequin, C64

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 21.06.2013, 00:53

PokeMon hat geschrieben: Da liegen die Halbbilder irgendwie nicht exakt übereinander. Bei den Schriftzeilen ist oben und unten noch vertauscht. :shock:
Tja ich glaube ich habe nun die ganzen Probleme so einigermaßen verstanden, dass ich das NMI Board morgen mal gänzlich neu konzipieren kann.
Habe einen Tag Zeit und das könnte reichen.

Das Hauptproblem ist, dass der SLOW Mode für den ZX80 gar nicht vorgesehen ist. Ich weiß gar nicht, ob das ZX80 ROM in einem ZX81 sauber läuft. :shock:

Was ich nicht verstehe ist, wenn ich schon ein neues ROM wie ZX81 entwickle, warum ich dann (naja nicht ich sondern die Sinclair Entwickler) bewußt Inkompatiblitäten herstelle. :roll:

Mein letztes Problem (Danke an dieser Stelle an den Hinweis von Paul) ist nun auch vollkommen klar.
Der Scanline Zähler (für die 8 Bildzeilen) wird beim ZX80 durch einen IN A,($FE), also beim Tastatureinlesen bzw. beim vertikalen SYNC zurückgesetzt.
Das macht der ZX81 genauso. Soweit so gut.
Der dicke Unterschied ist aber, dass beim ZX80 jeder OUT Befehl einen SYNC Impuls erzeugt und jeder SYNC Impuls den Scanline Zähler weiterdreht.
Insofern steht der Zähler bei der Bildschirmausgabe nicht mehr auf 0 sondern auf 3 und fängt dann erst in der vierten Zeile an. Da der Zähler automatisch überläuft, holt er die ersten drei Zeilen dann zum Schluss nach.

Es gibt 3 OUT Befehle, einmal das Beenden des vertikalen SYNC mit OUT ($FF),A - dann NMI Generator einschalten mit OUT ($FE),A und dann NMI Generator ausschalten mit OUT ($FD),A.

Es wäre eigentlich ohne Probleme möglich gewesen, den Zähler nach dem Abschalten des NMI Generators durch ein nochmaliges OUT ($FF),A zurückzusetzen, bevor man mit der Bildausgabe beginnt. Also nach dem CALL L0292. Das wäre für beide Rechner dann gleich/kompatibel gewesen.

Code: Alles auswählen

        OUT     ($FF),A         ; end the TV frame synchronization pulse.

        LD      HL,($400C)      ; (12) set HL to the Display File from D_FILE
        SET     7,H             ; (8) set bit 15 to address the echo display.

        CALL    L0292           ; (17) routine DISPLAY-3 displays the top set 
                                ; of blank lines.

; ---------------------
; THE 'VIDEO-1' ROUTINE
; ---------------------

;; R-IX-1
L0281:  LD      A,R             ; (9)  Harmless Nonsensical Timing or something
                                ;      very clever?
        LD      BC,$1901        ; (10) 25 lines, 1 scanline in first.
        LD      A,$F5           ; (7)  This value will be loaded into R and 
                                ; ensures that the cycle starts at the right 
                                ; part of the display  - after 32nd character 
                                ; position.

        CALL    L02B5           ; (17) routine DISPLAY-5 completes the current 
                                ; blank line and then generates the display of 
                                ; the live picture using INT interrupts
                                ; The final interrupt returns to the next 
                                ; address.
Jetzt bleibt mir nichts übrig als den Zähler auf die harte Tour zurückzusetzen.
Also den Befehl IN A,($FE) hardwaremäßig zu erzeugen. :roll:

Ansonsten werde ich das Bild dann schon sauber synchron bekommen, denke ich und vielleicht einen ganz anderen Weg beschreiten als Grant Searle. :wink:
Ich werde dann mal einen kleinen Grundlagenbeitrag zum Thema Video Erzeugung des ZX80/ZX81 im Slow und Fast Modus schreiben.
Da gibt es eigentlich etliche Ungereimtheiten und Ungenauigkeiten auch bei der Kommentierung des ZX81 ROMs (dass sowieso auf Hardware Aspekte nur am Rande eingeht und die Bilderzeugung sagen wir mal zu etwa 50% erklärt und die anderen 50% muss man sich selbst zusammenreimen, messen, etc.).
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Neue ZX80 Platinen

Beitrag von Paul » 21.06.2013, 07:07

PokeMon hat geschrieben:Das Hauptproblem ist, dass der SLOW Mode für den ZX80 gar nicht vorgesehen ist. Ich weiß gar nicht, ob das ZX80 ROM in einem ZX81 sauber läuft. :shock:
Das war nicht vorgesehen, der NMI Generator ist ja default an, also Absturz für das ZX80 ROM, da dieses den NMI Generator ja nicht abschaltet.
Wenn man das ZX81 Board aber überredet den NMI Generator beim Start abzuschalten siehe hier läuft es problemlos da es den NMI Generator ja nie einschaltet (fehlender SLOW Befehl und fehlender OUT Befehl). Wenn man dies in MC dann doch tut hat man eben Pech gehabt.
PokeMon hat geschrieben:Was ich nicht verstehe ist, wenn ich schon ein neues ROM wie ZX81 entwickle, warum ich dann (naja nicht ich sondern die Sinclair Entwickler) bewußt Inkompatiblitäten herstelle. :roll:
Der Fast Modus wurde ja nur dewegen ins ZX81 ROM gequetscht damit es auch im ZX80 läuft zwecks floating point upgrade. Ansonsten hatten die Entwickler die Sinclair typischen Vorgaben: Egal wie, Hauptsache es kostet nix. :mrgreen:
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: Neue ZX80 Platinen

Beitrag von msch » 21.06.2013, 10:37

Saustark - Gratulation!
PokeMon hat geschrieben:Was ich nicht verstehe ist, wenn ich schon ein neues ROM wie ZX81 entwickle, warum ich dann (naja nicht ich sondern die Sinclair Entwickler) bewußt Inkompatiblitäten herstelle.
Immerhin haben die Entwickler bei der Konstruktion des ZX80 das Upgrade auf das spätere ZX81 ROM vorgesehen (u.a. Nutzung von 4K und 8K ROMs). Das finde ich schon beachtlich.
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 24.06.2013, 23:51

msch hat geschrieben:Saustark - Gratulation!
Wohl eher nicht. Das Ding macht mich wahnsinnig. :shock: :oops:
Nach diversen Tests habe ich nun beschlossen den NMIX Generator für das ZX80 Board zumindest in dieser Form zu begraben.
Da gibt es so viel Ungereimtheiten, die man mit so vielen Klimmzügen beheben muss, dass der Schaltungsaufwand enorm steigt.
Selbst die Schaltung von Grant Searle
http://searle.hostei.com/grant/zx80/zx80nmi.html
behebt die Probleme letztlich nicht wirklich, zumindest nicht das Problem mit dem Scanline counter.

Was mich zu der Frage führt, ob es möglicherweise unterschiedliche ZX81 Prom Versionen gibt, weil ich ihm nicht unterstellen will, dass er da einer Fatamorgana aufgesessen ist bei der Realisierung. :wink:

Ich schreibe mal die Probleme der Reihe nach auf:
1. Relativ hoher Grundschaltungsaufwand von Grant Searle, der jedoch nicht 100%ig zufriedenstellendes Ergebnis liefert.
2. Es gibt horizontale Störimpulse durch das Ein-/Ausschalten des NMI Generators oder vertikal Sync. Die kann man durch ein RC-Glied und 2 zusätzlichen Gattern abfangen. Erzeugt werden die durch beliebige OUT - Befehle durch IC11 und den Sync Generator aus den beiden Flipflops. Der Sync Impuls kommt dummerweise durch 2 Fliflops erst 5us nach dem Triggerereignis (OUT Befehl). Daher das RC Glied.
3. Die Störimpulse stellen den Scanline Counter vor, der bei Zeile 4 anfängt, also mitten in einem Zeichen/Buchstaben
4. Beim Ablaufen des Programms werden einige konfuse Synchronimpulse erzeugt, die nicht erscheinen wenn das Programm beendet ist und der K Cursor in der letzten Zeile ist. Kann man filtern durch zwei zusätzliche Gatter unter Einbeziehung des NMI Flipflops (abschalten wenn NMI Impulse generiert werden).
5. In der ersten Zeile tritt eine Bildverzerrung auf von etwa 3 bis 4 Pixeln auf, die sich mit einem weiteren Gatter und einem RC Glied filtern läßt, hier muss man für eine exakte Synchronität einen Trimmer vorsehen, mit dem man das durch den ZX80 erzeugte Sync Signal soweit verzögert, dass es deckungsgleich ist mit dem durch den Zählerbaustein generierten Syncimpuls, der mit INT ACK (/IORQ und /M1) synchronisiert wird. Offenbar erzeugt der ZX80 das Sync Signal etwa 3 bis 4 Takte früher als von Grant Searle über den 393 Zähler erzeugte.
6. Beim Ablauf eines BASIC Programms wird der Counter offenbar durch einen zusätzlichen Reset Impuls (IN A,($FE)) zurückgesetzt.
Insofern ist das Verhalten unterschiedlich ob ein Programm läuft oder der ZX81 (Clone) sich im Eingabemodus befindet.
Das testweise Abschalten der Verbindung IC 11 zwischen Pin 10 und Pin 11 löst dieses Problem auch nicht.
Man könnte es aber lösen durch ein modifiziertes ROM. Was mich wieder zu der Frage nach eventuell verschiedenen ROM Versionen führt. Paul hat mir das ROM gebrannt. :wink:

Insgesamt muss man soviel Klimmzüge machen, dass dieses Board meiner Meinung nach so keinen Sinn macht.
Da ich sowieso ein neues Videoboard mit Frame Buffer realisieren will, ist das die Option den ZX80 auch im Slow Mode zu betreiben oder besser gesagt das Flackern zu unterbinden. Diese Video Deluxe Modul funktioniert auch am ZX81 im FAST Mode und damit auch im ZX80Core. Wenns denn fertig ist. Also irgendwann später.

Also ist das auch die Option für das ZX80Core.
Also ZX80 geht oder ZX81 im FAST Mode.
Und das ganz normale Videoboard kann man dann irgendwo platzieren im Gehäuse.
Da das sowieso aus ist und neu bestellt werden muss, kann man vielleicht auch eine Version machen, die auf den Pfostenstecker paßt und eventuell auch in diesem weiß halten. Muss ich klären die Tage. Aber wäre eine Option für die durchsichtigen Gehäuse-Fans. :wink:


Hier mal die Bilder aus der letzten NMIX Version:


Hier der ZX80Core im ZX81 SLOW Mode wenn das BASIC Programm läuft mit (nahezu) einwandfreiem Bild:
IMG_6333k.JPG
IMG_6333k.JPG (286.82 KiB) 7515 mal betrachtet

Hier der ZX80Core im ZX81 SLOW Mode wenn die Eingabeaufforderung angezeigt wird:
IMG_6331k.JPG
IMG_6331k.JPG (251.81 KiB) 7515 mal betrachtet


Jetzt bleibt dann morgen noch der Test mit dem EEPROM. Ich hoffe wenigstens das Problem lösen zu können. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Neue ZX80 Platinen

Beitrag von siggi » 25.06.2013, 10:00

Hast Du denn Grant's Schaltung real an Deinem ZX80-Core ausprobiert?
Wenn ja, und man davon ausgeht, daß Grant's Schaltung am ZX80 ausreichend funktioniert, dann liegt der Schluß nahe, daß an Deinem ZX80-Core noch ein winziger Unterschied zum ZX80 besteht. Ich würde mir also die Schnittstelle zum NMI-Board nochmal ansehen, ob da wirklich die Signale anliegen, wie sie Grant bei seinem Board erwartet hat. Sichwort: vielleicht versehentlich invertierte Pegel ( wie z. B. anfangs beim /CLK am Edge-Connector)

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

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

Re: Neue ZX80 Platinen

Beitrag von siggi » 25.06.2013, 11:45

PokeMon hat geschrieben:Jetzt bleibt dann morgen noch der Test mit dem EEPROM. Ich hoffe wenigstens das Problem lösen zu können. :wink:
Zum Thema "EEPROM als ZX81-ROM": war denn das EEPROM bei Deinem ersten Versuch schreibgeschützt (z. B. durch Unterbrechung/Übersteuerung der /WR-Leitung oder durch aktivierten Software-Schreibschutz lt. Datenblatt)?
Wenn nein, dann sind nun mindestens die ersten 5 Bytes zerschossen, denn bekannterweise schreibt das BASIC-ROM dort immer mal wieder Floating-Point-Zahlen hin, die es nicht brauchen kann (andere Systeme würden die nach /dev/null schreiben, das Basic-Rom schreibt sie halt auf Adresse 0 ;-) )
Wenn das beim ZX81 passiert ist, merkt man das nicht sofort, sondern erst beim nächsten Booten: der Zeddy stürzt ab, weil der Opcode zum Abschalten des NMI-Generators zerschossen ist und der NMI beim Hochlauf des Zeddies diesen ins Nirvana schießt.
Da es beim ZX80 diesen Generator nicht gibt, sieht das Fehlerbild dann ganz anders aus, denn er wird nicht durch den NMI abgeschossen, sondern läuft weiter (mit nicht bekannten Folge-Effekten durch die zerschossenen Bytes).

Aus diesem Grund blende ich ein EEPROM, das ich im ZX81 umprogrammieren will, auf Adressen 8192 ... ein, weil dort nicht vom Basic-Rom rumgepokt wird. Dort kann ich es in aller Ruhe umprogrammieren und Schreibschutz aktivieren. Erst dananch wird es dann auf Adresse 0 eingeblendet und dann daraus gebootet.

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

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 25.06.2013, 16:28

siggi hat geschrieben:Hast Du denn Grant's Schaltung real an Deinem ZX80-Core ausprobiert?
Wenn ja, und man davon ausgeht, daß Grant's Schaltung am ZX80 ausreichend funktioniert, dann liegt der Schluß nahe, daß an Deinem ZX80-Core noch ein winziger Unterschied zum ZX80 besteht. Ich würde mir also die Schnittstelle zum NMI-Board nochmal ansehen, ob da wirklich die Signale anliegen, wie sie Grant bei seinem Board erwartet hat. Sichwort: vielleicht versehentlich invertierte Pegel ( wie z. B. anfangs beim /CLK am Edge-Connector)
Nein, die Schaltung ZX80Core ist einwandfrei nach dem Original. Ich habe sogar alle Pin Belegungen 1:1 übernommen und nicht mal ein Gatter oder die Anschlüsse eines Gatters vertauscht.

Das Problem mit dem Vorschalten des Zählers (Scanline counter) liegt in der Schaltung. Grant müsste dieses Problem auch haben.
Komischerweise tritt es nicht auf, wenn ein Programm ausgeführt wird, also BASIC oder USR Programme ausgeführt werden.
Da wird der Zähler anders bzw. zu einem anderen Zeitpunkt zurückgesetzt. Daher meine Frage nach anderen Revisionsständen.
Das Problem ist nämlich softwareseitig recht leicht zu beheben, wenn man es verstanden hat. Jedenfalls leichter als mit Hardware.

zx80_sync1.jpg
zx80_sync1.jpg (29.42 KiB) 7479 mal betrachtet

Das Grundproblem habe ich in diesem Posting bereits beschrieben:
viewtopic.php?f=2&t=866&start=250#p9324
Der Lösungsvorschlag ist zwar nicht ganz richtig, aber weist in die richtige Richtung.

Dummerweise löst jeder Impuls auf /IORQ einen SYNC Impuls aus. Also jeder IN, jeder OUT und jeder INT Acknowledge. Jeder SYNC Impuls steuert gleichzeitig den Zähler IC21 um eine Zeile (Scanline) vor. Das ist für die aktive Bildausgabe soweit richtig, aber problematisch für das Ein-/Ausschalten des NMI Generators. Normalerweise wird der Counter durch den vertikalen Sync (erstes IN A,($FE)) zurückgesetzt und gleichzeitig die Tastatur eingelesen. Das Beenden des SYNC Impulses durch den OUT ($FF),A ist übrigens unschädlich und erzeugt keinen Synchronimpuls. Das liegt daran, dass durch den /IORQ Impuls zwar das Fliflop IC18 gesetzt wird (/Preset) aber dieses Preset zeitverzögert übernommen wird, erst beim nächsten /M1 Impuls durch IC19. Da der SYNC Impuls aber noch auf Low ist, bleibt IC18 trotz Preset zurückgesetzt über den Clear Eingang. Soweit so gut.

Die Unterschiede liegen im Slow und Fast Modus.

Im Slow Modus werden zunächst die 55 NMIs abgewartet und dann die nächste Zeile (Zeile 56) als Synchronisation mit HALT und /WAIT genutzt. Dabei entsteht auch ein INT ACK Zyklus. Zu diesem INT ACK kommt nach dem Reset des Zählers der Impuls für NMI Ein und Ausschalten. Insofern ist der Zähler bei Start der Bildwiedergabe (DFILE) nicht mehr 0 sondern 3.

Im Fast Modus wird kein NIM Generator benötigt. Hier wird jede NMI Zeile im Grunde wie eine Displayzeile ausgeführt. Somit haben wir 55 INT Ack Zyklen plus eine Synchronisationszeile mit INT Ack und NULL NMI Ein/Ausschaltvorgänge. Der Zähler wird hier auch munter weitergetackert aber nach 56 INT Ack steht er halt wieder auf 0. 8x7=56.

Kommen wir nun zur Schaltung von Grant Searle:
http://searle.hostei.com/grant/zx80/zx80nmi.html

Dadurch, dass ich bei IC 11 Pin 10 und 11 "trenne" bzw. zeitweise (bei eingeschaltetem NMI) keine Pulse durchlasse, ändert sich nichts daran, dass nach wie vor jedes Low am /IORQ Pin über IC 18 und IC 19 einen Sync Impuls auslöst und damit sicher der Scanline Counter vorstellt.

Insofern verstehe ich den Sinn von Grant Searle's Schaltung an der Stelle nicht. Er kann lediglich verhindern, dass das Flipflop umschaltet und über einen CLEAR Impuls den Dauer VSYNC startet. Wenn der VSYNC beendet ist, wird jeder /IORQ Impuls horizontale SYNC Impulse erzeugen und den Zähler weiterschalten. :o
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 25.06.2013, 16:39

siggi hat geschrieben:
PokeMon hat geschrieben:Jetzt bleibt dann morgen noch der Test mit dem EEPROM. Ich hoffe wenigstens das Problem lösen zu können. :wink:
Zum Thema "EEPROM als ZX81-ROM": war denn das EEPROM bei Deinem ersten Versuch schreibgeschützt (z. B. durch Unterbrechung/Übersteuerung der /WR-Leitung oder durch aktivierten Software-Schreibschutz lt. Datenblatt)?
Wenn nein, dann sind nun mindestens die ersten 5 Bytes zerschossen, denn bekannterweise schreibt das BASIC-ROM dort immer mal wieder Floating-Point-Zahlen hin, die es nicht brauchen kann (andere Systeme würden die nach /dev/null schreiben, das Basic-Rom schreibt sie halt auf Adresse 0 ;-) )

Siggi
Da ich das EEPROM nicht selbst geschrieben habe, kann ich auch nichts zum aktivierten Schreibschutz sagen.
Näheres wird sich heute beim Testen zeigen.

Kannst Du das mit "BASIC schreibt immer mal wieder Floating Point Zahlen in das ROM" präzisieren ?
Wann und unter welchen Umständen genau ?
Welche Befehle ?
Nur echte Floatingpoint Berechnungen ?

Ein Hardware Schreibschutz ist nicht vorgesehen, da ich keine zusätzliche Logik auf dem ZX80Core Board platziert habe und auch keine platzieren will.
Es soll die Original Hardware vom ZX80 genutzt werden.
Sofern es mit einem Software Schreibschutz ausreicht, wird das EEPROM halt blockiert für Schreibzugriffe und es gibt halt ein spezielles Loaderprogramm, dass das EPROM mit neuen Daten an beliebigen Adressen beschreiben kann. Natürlich bei abgeschaltetem NMI Generator damit keiner dazwischenfunkt.
Das muss reichen. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Neue ZX80 Platinen

Beitrag von siggi » 25.06.2013, 19:08

PokeMon hat geschrieben: Kannst Du das mit "BASIC schreibt immer mal wieder Floating Point Zahlen in das ROM" präzisieren ?
Wann und unter welchen Umständen genau ?
Welche Befehle ?
Nur echte Floatingpoint Berechnungen ?
Gute Fragen ;-)
M. W. gibt es im ROM eine Routine, die eine Floating-Point-Zahl errechnet, als 16-Bit-Wert in ein Doppelregister holt und die Floating-Point-Zahl auf dem Calculator-Stack ablegt (adressiert über ein anderes Doppelregister). In den Fällen, wo nur der 16-Bit-Wert im Register benötigt wird, aber nix auf den Stack soll, wir der Zeiger auf den Calc-Stack einfach durch 0 überschrieben und dann diese Routine aufgerufen. In den Registern landen die 16-Bit-Werte und die überflüssige 5 Byte-Floating-Point-Darstellung wird ins ROM auf Adresse 0 "gepokt" (statt auf den Stack), wo es ja normalerweise nicht stört (deshalb liegt die ZX96-Poke-Karte auf Adresse 8 und nicht auf 0).

Nach meinen Erfahrungen passiert das mindestens bei PRINT wert, nicht aber bei POKE ....
Mehr kann ich dazu nicht sagen.

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

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

Re: Neue ZX80 Platinen

Beitrag von siggi » 25.06.2013, 19:32

Hier noch ein Beispielprogramm: damit lade ich das Betriebssystem in die "Language-Karte" in meinem Merker-Zeddy (Batterie-Ram ab 0K, ohne Pufferung). Das Basic-Programm restauriert dann wieder die ersten 5 Bytes im ROM(RAM), bevor es den Schreibschutz einschaltet.
ROMLOAD.P
(9.47 KiB) 146-mal heruntergeladen
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 25.06.2013, 22:25

siggi hat geschrieben:Nach meinen Erfahrungen passiert das mindestens bei PRINT wert, nicht aber bei POKE ....
Mehr kann ich dazu nicht sagen.

Siggi
Ja, Du hast offenbar Recht.
PRINT <Wert> macht die Probleme.
Zum Überschreiben des EEPROM kommt es aber gar nicht, da vermutlich das EEPROM seinen internen Write Zyklus Timer ablaufen läßt und in der Folge nur Polling Informationen über den Datenbus abgegeben werden. Wenn man also vom ROM aus das EEPROM beschreiben will, endet das unweigerlich in einem Totalabsturz. Von einem Programm im RAM dürfte es aber kontrolliert gehen.

PRINT bringt definitiv den ZX80Core mit EEPROM zum Absturz. Wenn ich das /WE Signal übersteuere (mit dem HEX Schalter problemlos möglich) dann passiert bei PRINT oder PRINT PEEK nichts Schlimmes (die Zelle wird ausgelesen und angezeigt). Soweit so gut. Zumindest funktioniert das EEPROM derzeit mit diesem "Hardwareschutz".

Wenn ich den Hardwareschutz deaktiviere, läuft zumindest LOAD "" ohne Probleme und ich kann ein USR Programm ausführen und den Inhalt einer EEPROM Zelle anzeigen. Insofern funktioniert also der kontrollierte Zugriff aufs EEPROM von einem speziellen LOADER Programm.

Jetzt muss ich dann noch ausprobieren, das EEPROM testweise vom USR Programm aus zu überschreiben. Überlege mir gerade wie sich ein fieses Hakenkreuz im Zeichensatz macht. :mrgreen: Aber vielleicht fällt mir auch noch was Anderes ein. :lol:

Und dann den Softwareschutz aktivieren.

Wenn diese Tests abgeschlossen sind dürfte das Board dann soweit in den Status serienreif wechseln. :wink:

Noch eine andere Frage in dem Zusammenhang.
Kann es sein, dass es im ZX80 oder ZX81 im FAST Modus keine Framezähler/PAUSE gibt ?
Gibt es für ZX80 überhaupt Zeitmessungen oder Uhrenprogramme ?

Kann meine Assembler Schleifen auch ausrechnen, ich fragte mich jetzt gerade nur was passiert wenn man keinen Taktgeber (NMI) hat.
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Neue ZX80 Platinen

Beitrag von siggi » 26.06.2013, 00:17

PokeMon hat geschrieben: Zum Überschreiben des EEPROM kommt es aber gar nicht, da vermutlich das EEPROM seinen internen Write Zyklus Timer ablaufen läßt und in der Folge nur Polling Informationen über den Datenbus abgegeben werden.
Daß nichts überschrieben wird, kann ich nicht glauben. Wieso sonst wäre das EEPROM im Write-Zyklus und liefert Polling-Informationen? Mag sein, daß nur Adresse 0 überschrieben wird und Schreiben von Byte 1-4 im aktiven Write-Zyklus untergehen. Und da auf Byte 0 der OUT-Befehl zum Abschalten des NMI steht, fällt im ZX80-Core (ohne NMI-GEN) nicht gleich auf, daß dieser Opcode kaputt ist.
Insofern funktioniert also der kontrollierte Zugriff aufs EEPROM von einem speziellen LOADER Programm.
Ja, und weil sich das wohl das ROM "unter den Füßen" umprogrammiert, darf dieses spezielle Programm auch keine ROM-Calls benutzen, die gerade umprogrammiert werden. Und Fehler- und stromausfalllos sollte das Programm auch laufen, sonst ist das "Rom" kaputt und der Zeddy bootet nie mehr ...
Aber vielleicht fällt mir auch noch was Anderes ein. :lol:
z. B. das PFUND durch EURO zu ersetzen? :mrgreen:
Kann meine Assembler Schleifen auch ausrechnen, ich fragte mich jetzt gerade nur was passiert wenn man keinen Taktgeber (NMI) hat.
Wozu Timing ausrechnen, wenn das EEPROM beim Pollen schon anzeigt, wann es fertig mit Schreiben ist???

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

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 26.06.2013, 00:33

siggi hat geschrieben:Daß nichts überschrieben wird, kann ich nicht glauben. Wieso sonst wäre das EEPROM im Write-Zyklus und liefert Polling-Informationen? Mag sein, daß nur Adresse 0 überschrieben wird und Schreiben von Byte 1-4 im aktiven Write-Zyklus untergehen. Und da auf Byte 0 der OUT-Befehl zum Abschalten des NMI steht, fällt im ZX80-Core (ohne NMI-GEN) nicht gleich auf, daß dieser Opcode kaputt ist.
Das ist ja auch nur ein Vermutung. Die von meiner Untersuchung gestützt wird, dass in Speicherstelle 0 immer noch $D3 steht. Das habe ich schon kontrolliert. :mrgreen:
Vielleicht ist ja auch ein Schreibschutz aktiviert ... medusa hat das Ding gebrannt. Und beim Schreibschutz läuft auch der interne Timer, egal ob tatsächlich geschrieben wird oder mangels "Passwort" halt nichts verändert wird.
Muss ich halt noch näher untersuchen.

siggi hat geschrieben: Ja, und weil sich das wohl das ROM "unter den Füßen" umprogrammiert, darf dieses spezielle Programm auch keine ROM-Calls benutzen, die gerade umprogrammiert werden. Und Fehler- und stromausfalllos sollte das Programm auch laufen, sonst ist das "Rom" kaputt und der Zeddy bootet nie mehr ...
Ja das ist wohl selbstverständlich. Deshalb schreibe ich ja auch, dass es vom RAM umprogrammiert wird. Und natürlich muss das Programm fehlerfrei sein. Ist ja wohl auch selbstverständlich. :roll: Stromausfall-los ist aber ein bischen schwierig. Vielleicht hast Du ja eine Z80-Library mit einer emulierten Stromversorgung parat. :mrgreen:
Wer seinen Computer ehrt, lebt nicht verkehrt.

roko
User
Beiträge: 174
Registriert: 13.03.2008, 16:02
Wohnort: Groningen Holland

Re: Neue ZX80 Platinen

Beitrag von roko » 27.06.2013, 01:02

Mit 29EE010 im Spectrum dasselbe. Da wird nur tatsaechlich geschrieben nachdem die JEDEC Sequence (zum Schreiben) eigegeben wurde. Andere Schreibversuche bringen den EEPROM in Verwirrung, es scheint ob diese wartet ob die Sequence noch kommt. Waehrend diese Zeit is 29EE010 einfach nicht anwesend, aber Z80 will weitermachen und stuerzt wegen mangelnde Daten ab.
Welche EEPROM wird hier verwendet?
Roelof

Benutzeravatar
medusa
User
Beiträge: 267
Registriert: 13.01.2013, 19:34
Wohnort: Köln

Re: Neue ZX80 Platinen

Beitrag von medusa » 27.06.2013, 13:24

Hi Jungs,

bin im Umzugsstreß, aber ich wollte euch nicht ohne Infos sitzen lassen. Das EEPROM ist ein AT28C64, das ich mit dem BX32 Programmer gebrannt habe. Ich kann jetzt leider nicht raussuchen, ob der am Ende den Schreibschutz aktiviert hat, mit den Infos könnt ihr das aber vielleicht selber rausbekommen.

Bald wieder mehr von mir,

~medusa (aka Meisterin des Ikeabana).
PDP-11: 012700 176500 012760 000100 000000 000777.
68000: 4E71?
VAX: D450 908051 11FB!
Alpha: 47E8404 A4240000 A4440008 40220400 B404000C...

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 27.06.2013, 14:28

Genau, es ist ein 28C64.
Möglicherweise wurde automatisch nach dem Schreiben der Softwareschutz aktiviert oder das ist ab Werk so.
Man kann ihn aber auch ganz abschalten (durch eine 4 oder 5 Byte Programmiersequenz).
Scheint aber im Betrieb aus den von Siggi angeführten Gründen (PRINT) nicht sinnvoll zu sein. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 27.06.2013, 15:16

Ich habe übrigens noch eine andere Adresse für passgenaue Acrylglaszuschnitte.
Die Preise sind in qm inklusive Zuschnitt, also ohne Extrakosten.
Mindestgröße ist allerdings 100x100mm.
http://www.acryl-onlineshop.de/

Man muss also die Seitenteile irgendwie selbst bearbeiten. :shock:

Naja, Ich bleibe da auf jeden Fall dran. :D


Gibts übrigens auch in opal, Rauchglas oder satiniert. Je nach Geschmack. 8)
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Neue ZX80 Platinen

Beitrag von PokeMon » 27.06.2013, 18:16

So sind nun auch die letzten "Bauarbeiten" am ZX80Core abgeschlossen.
Das EEPROM funktioniert sauber mit dem aktivierten Schreibschutz, allerdings muss im Betrieb die /WR Leitung auf High gesetzt werden, was mit dem Hex-Kodierschalter auf dem Board unproblematisch ist. Die Stellungen 4,5,6,7 und C,D,E,F sind für den Betrieb erlaubt. Letztere sind nur für das größere EEPROM 28C256 sinnvoll, beim 28C64 sind es nur die Stellungen 4,5,6,7.

Der einzige (kleine) Umstand ist, dass man das EEPROM für das Programmieren kurzfristig umschalten muss (Stellungen 0,1,2,3 bzw. 8,9,A,B). Da man das aber nicht ständig macht, kann man durchaus damit leben. Für irgendwas soll der Schalter ja auch gut sein. :mrgreen:
Wenn der Hardwareschreibschutz nicht aktiviert ist, hängt sich der ZX81 bei bestimmten BASIC Befehlen auf. Siehe dazu die Ausführungen von Siggi betreffend des Floating Point Stack vom ZX81. Zumindest PRINT ist ein sicherer Absturzkandidat. Wobei das EEPROM aufgrund des Softwareschreibschutzes nicht leidet, nach einem RESET ist alles wieder okay. Welche Befehle noch betroffen sind, kann ja ein anderer mal bei Gelegenheit ausprobieren. 8) Man kann mit der ROM Routine RST $10 aber problemlos was auf den Bildschirm schreiben. Auch LIST geht einwandfrei, RUN und USR Programme mit RAND USR aufrufen.

Auf der anderen Seite dürfte wahrscheinlich beim ZX80 kein Problem auftauchen, da der keinen Floating Point Stack hat. :shock:
Und da es ja ein ZX80Core ist und kein ZX81Core sehe ich grundsätzlich kein funktionales Problem. Muss man sich halt an die Anweisungen im Handbuch halten. :wink:

Ich habe dann mal ein erstes kleines Testprogramm geschrieben, mit dem man das EEPROM beschreiben kann und auch als .p und File angehängt.:
Hier der Quellcode.

Code: Alles auswählen

format zx81
;labelusenumeric
;LISTOFF

        ; hardware options to be set and change defaults in ZX81DEF.INC
        MEMAVL     =       MEM_16K         ; can be MEM_1K, MEM_2K, MEM_4K, MEM_8K, MEM_16K, MEM_32K, MEM_48K
                                           ; default value is MEM_16K
        DFILETYPE  EQU     EXPANDED        ; COLLAPSED or EXPANDED
        STARTUPMSG EQU    'CREATED WITH ZX81-IDE' ; any message will be shown on screen after loading, max. 32 chars

        include 'SINCL-ZX\ZX81.INC'           ; definitions of constants
;LISTON

;AUTORUN:
1       REM _noedit EEPROM 28C64 TEST
10      REM _asm
        LD DE,$1E00             ; char table in ROM
        LD A,$FF                ; new data
        CALL ee_writebyte       ; write byte in A to DE

        LD DE,$1E00             ; char table in ROM
        LD HL,buffer            ; buffer with data to write/copy
        LD BC,8                 ; length of buffer/data
        CALL ee_writebytes      ; write block

        LD HL,$1E00             ; char table in ROM
        CALL debugs             ; debug on screen
        RET
buffer:
        dbzx 'ZX80CORE'         ; data for char table test
buffer_end:
        END _asm

20      RAND USR #10

        REM ASM DEBUG LIB
        REM _asm
printh:                         ; print hex byte on screen
        LD D,$0F                ; for mask of nibble
        LD E,A                  ; save A for later use
        RRCA                    ; shift high nibble to right first (4x)
        RRCA
        RRCA
        RRCA
        AND D                   ; mask hex digit 0-F
        ADD A,,'0'              ; make printable char 0-F
        RST $10                 ; print char on screen
        LD A,E                  ; restore A
        AND D                   ; now mask low nibble
        ADD A,,'0'              ; make printable char 0-F
        RST $10                 ; print char on screen
        RET
printh8:                        ; print 8 hex bytes on screen
        LD B,8                  ; number of chars to print
.loop:  LD A,(HL)               ; get value
        CALL printh             ; print hex char
        XOR A                   ; load space
        RST $10                 ; print space
        INC HL                  ; next char
        DJNZ .loop              ; loop
        RET
debugl:                         ; debug one screen line with printable chars
        CALL printh8            ; print 8 bytes as hex values
        LD   DE,-8
        ADD  HL,DE              ; restore HL
        LD B,8                  ; 8 chars to print
        LD C,$40                ; no chars with bit 6 high !
.loop:  LD A,(HL)               ; load char
        LD E,A                  ; save A
        AND C                   ; mask printable chars
        LD A,,'.'               ; display . for unprintable char
        JR NZ,@f                ; test
        LD A,E                  ; restore A if printable
@@:     RST $10                 ; print char on screen
        INC HL                  ; next char
        DJNZ .loop              ; loop
        RET
debugs:                         ; debug screen (debug monitor)
        LD B,16                 ; 16 lines to print
.loop:  PUSH BC                 ; save counter
        CALL debugl             ; print debug line
        POP BC                  ; restore counter
        DJNZ .loop              ; loop
        RET
ee_writebytes:
        LD B,0                  ; check BC <= 64
        LD A,C
        CP 65
        JP P,@f
        AND A                   ; check BC != 0
        JR Z,@f
        CALL ee_enable          ; enable EEPROM for write
        LDIR                    ; write data block
        CALL ee_writetimer      ; start write timer
@@:     RET
ee_writebyte:
        PUSH AF                 ; save A
        CALL ee_enable          ; enable EEPROM for write
        POP AF                  ; restore A
        LD (DE),A               ; write byte
        CALL ee_writetimer      ; start write timer
        RET
ee_enable:                      ; sequence for enable write modus
        LD A,$AA                ; see datasheet Atmel 28C64
        LD ($1555),A
        LD A,$55
        LD ($0AAA),A
        LD A,$A0
        LD ($1555),A
        RET
ee_writetimer:                  ; timer for write (10ms)
        LD C,10
.loop:  LD B,0
@@:     DJNZ @b                 ; 256 * 4us (13 clock cylces à 0.3 us) = 1ms
        DEC C
        JR NZ,.loop             ; wait 10 x 1ms
        RET
        END _asm

        include 'SINCL-ZX\ZX81POST.INC'          ; include D_FILE and needed memory areas

assert ($-MEMST)<MEMAVL
; end of program

Die Funktion ee_writebyte schreibt ein einzelnes Zeichen in das EEPROM, die Funktion ee_writebytes schreibt bis zu 64 Zeichen (in einem zusammenhängenden Adressbereich) in das EEPROM. Das dauert nach Datenblatt maximal 10ms, ich habe hier eine einfache Schleife in das Assemblerprogramm reingesetzt, die ziemlich genau 10ms läuft bei 3,25 MHz. Damit kann man 8k locker in 1,5 Sekunden in das EEPROM schreiben. Entsprechenden Speicherausbau (16k) vorausgesetzt.

Hier nach der Funktion "ee_writebyte", hat das Leerzeichen (Space) in der ersten Zeile mit $FF überschrieben. Dadurch hat man ein Zeichen mit "Überstrich" als Leerzeichen. 8)
IMG_6380k.JPG
IMG_6380k.JPG (240.75 KiB) 7372 mal betrachtet


Hier nach der Funktion "ee_writebytes", hier habe ich das Wort ZX80CORE in die ROM Daten für das Character SPACE geschrieben und daraus ergibt sich dann das Muster oder Zeichen wie auf dem Bildschirm. :wink:
IMG_6381k.JPG
IMG_6381k.JPG (322.24 KiB) 7372 mal betrachtet


Leider ist mein zweites Programm bei der Funktion "ee_writeimage" für die Übertragung eines kompletten ROM Image abgeschmiert. Da war ich etwas übermütig und habe gleich das komplette ROM überschrieben in 64 Byte Blöcken. Leider brach meine Routine aufgrund einer fehlenden PUSH BC / POP BC Kombination dann nach dem 1. Block ab und nun habe ich ein EEPROM mit 64 Byte ZX80 Anteil und dem Rest ZX81. :roll:
Läuft ehrlich gesagt (erwartungsgemäß) nicht. :mrgreen:

Naja - halb so schlimm ich muss mir eh noch einen Programmieradapter basteln. Leider ist meine ZX81XRAM Platine dafür nicht geeignet, da ich dort Address- und Datenleitungen untereinander großzügig vertauscht habe für ein einfaches Layout. Das ist für RAMs völlig egal, bei ROMs naturgemäß nicht. Auf der anderen Seite ist es nicht soo schwierig die Strippen von Hand zu ziehen. Kleine Fleißarbeit. Aber das mache ich irgendwann in den nächsten Tagen mal.

Das ZX80Core ist jetzt wie gesagt fertig und geht nun in die Hände von "msch" um zu testen, ob die Platine sauber in das Original Gehäuse von Sinclair paßt und alle Stecker und die Tastatur richtig sitzt.

Betreffend Tastatur noch der Hinweis, dass man eine neue Folie erstmal einige Zeit benutzen muss. Also am Anfang muss man etwas fester auf die Tasten drücken, danach dann legt sich das mit Benutzung der Folie und erfordert etwas weniger Kraftaufwand. SHIFT und NEWLINE sollten nach einiger Zeit schon etwas leichter gehen. So nach und nach dann auch die anderen Tasten. Das liegt aber nicht an der Platine sondern an der Folie, die frisch aus der Produktion halt noch etwas "steif" ist. Mittlerweile geht die Tastatur ganz gut. Nur selten benutzte Tasten muss man dann noch etwas kräftiger drücken.

Nachdem ich dann das "GO" habe, werde ich die Bestellung in die Wege leiten.
Am Besten schreibt mir bitte jeder, der eine (oder mehrere) ZX80Core Platinen haben möchte kurz eine PN.
Manche möchten sich auch nicht in öffentliche Verteiler eintragen und es geht ja auch andere nichts an, wenn einer mehr als 1 oder 2 Platinen haben will.


Der Preis wird bei EUR 25,00 liegen für die erste Platine und bei EUR 22,00 für jede weitere Platine. Manche wollen halt mehr als 1 Platine.
Der Grund für den höheren Preis liegt daran, dass ich (aus Sicherheitsgründen) den Prototypen vorab fertigen ließ um später fehlerfreie Platinen zu erhalten.
Die Tatsache, dass die Platine letztlich (relativ) fehlerfrei ist, ist halt auch ein bischen Glückssache. Die Bohrungen für die Klinkenbuchsen von Reichelt sind leider etwas zu klein geraten, was ich bei mir mit einem Seitenschneider zurecht stutzten konnte. Es gibt aber noch eine alternative Bauform von CLIFF, die Original Buchsen. Die passen genau, sind aber nicht so einfach zu beschaffen. Reichelt hat die z.B. nicht.
Nach Murphy wäre garantiert ein oder mehrere Fehler drauf, wenn gleich volle Stückzahl produziert worden wäre.
Die Kosten für den Prototypen habe ich daher umgelegt mehr auf die Anzahl der Besteller und weniger auf die Anzahl der Platinen.
Diese Form der Kostenverteilung halte ich für fairer.

Ich bedanke mich an dieser Stelle bei Allen die bei der Realisierung mitgeholfen haben, EPROMS, EEPROMS, Tastaturen und andere Bauteile zum Testen zur Verfügung gestellt haben usw. und auch bei der Fehlersuche unterstützt haben. :wink:

Ich denke wir haben da ein tolles Board, mit dem man eine Menge anstellen kann. Optisch recht chic geworden, sehr nahe am Original ZX80 mit ein paar wenigen Optionen/Änderungen.
Dateianhänge
ZX81EEPP.p
(1.11 KiB) 136-mal heruntergeladen
Zuletzt geändert von PokeMon am 27.06.2013, 21:56, insgesamt 1-mal geändert.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Antworten