February 2021

ZX81 repair & mods

Hallo, Fangemeinde alter 8-Bit Rechner!

 

Ich bin Rico, DL1RIC, und seit kurzem in Besitz eines ZX81 – vertrauensvoll überlassen von Lucian, IZ6NNH. Danke nochmals.

Der Rechner funktionierte bis auf die Speichererweiterung. Da gab es das übliche Kontaktproblem am Edge Connector. Also das Memorypack 32k  erst mal aufgeschraubt und mittels Seitenschneider alle Verbindungen zur 46 poligen Buchse gekappt. Aus einem alten Motherboard habe ich dann einen ISA-Port herausgesägt und diesen auf die 2 mal 23 Pins bearbeitet. Zu beachten ist dabei, dass es keine Verbindungen zwischen den Kontakten gibt. War bei mir so. Schlimmstenfalls liegen die +9V auf irgendeiner Leitung und das wars dann für den Rechner. Also mit einem Durchgangsprüfer systematisch alles „durchklingeln“.

Verbliebene Kontakte auf dem Memorypack so biegen, dass, wenn die „neue“ Buchse angelötet wird, das Gehäuse auf der Unterseite der Buchse keinen Kurzschluss verursacht.

 

Nach dem Zusammenbau, nochmaligem Test auf Kurzschlüsse und Zusammendrücken von Pin 3 und 44 der Buchse zur Mitte (Positionierung der Buchse am Connector) stecken wir das Teil mal an. Nach dem Einschalten erfolgt ein kurzes Zucken auf dem Bildschirm und nach einigen Sekunden der Prompt „K“. Falls man sofort nach dem Einschalten diesen sieht, dann ist nur der interne 1k-Speicher aktiv. Also noch mal durchchecken…ggf. Stromaufnahme prüfen. Ohne Modul ca. 0,25 A und mit ca. 0,45 A bei 8,5 V DC in. Im Modul ist ein PROM verbaut…der zieht schon gute 100 mA.

Ok. Also der Prompt wird angezeigt…und mit dem Befehl DIM A(3000) reservieren wir einen Speicherbereich, der auf den externen RAM zugreift. Nach „NEWLINE“ erfolgt im Normalfall die Ausgabe 0/0. Somit sehen wir, dass die Erweiterung funktioniert.

Falls die Anzeige 4/0 erscheint, dann wird der RAM nicht angesprochen.

 

Somit hätten wir einen Rechner mit einer Speichererweiterung und fertig zum Einlesen und Ausgeben von Dateien auf Magnetband. Die Anzeige erfolgt bei mir auf einen LCD TV.

Der Vorbesitzer baute den internen UHF Modulator auf Video Out um. Tutorials gibt’s da zuhauf in Internet. Das Problem mit dem fehlen der Schwarzschulter hatte ich nicht, da hier eine neuere ULA verbaut wurde (210er statt 184er). Das Bild sieht echt gut aus.

Als Aufzeichnungsgerät nutze ich ein Notebook mit einem Audiobearbeitungsprogramm.

Dafür schnell ein Kabel gebastelt…für den ZX81 alles Mono Klinkenstecker und für den PC Monostecker für Mic Eingang und Stereo Klinkenstecker für Kopfhörerausgang…nur ein Kanal belegt. Alles in 3,5 mm Ausführung. Achtung! EAR Buchse vom ZX81 geht zur Kopfhörerbuchse des Notebooks.

Den Aufnahmepegel am Notebook so einstellen, dass er bei 0 dB liegt. Und da es der ZX81 schön laut mag, stellen wir die Lautstärke am Notebook auf max.

 

Als nächstes hatte ich vor, die leidliche Eingabe der Load und Save Befehle nebst Anhängsel zu automatisieren. Also Schaltplan vom ZX81 hergenommen und geschaut, welcher Kontakt die Ausgänge der ULA (KBD 0-5) und die Adresseingänge schalten.

Ich wollte 2 Befehle schalten: Load „“  und Save“A“. Den Buchstaben A nahm ich, da er keine weitere Leitung benötigt. Und ohne Buchstabe speichert der ZX81 nicht.

Ich brauche für Load: Load -Shift „“-Newline und für Save: Save-Shift“-A-Shift“-Newline. Also einen ATtiny2313 genommen, schnell ein Programm in Bascom geschrieben und eine kleine Lochrasterplatte dem Gehäuse angepasst und bestückt.

Das Programm ist einfach gehalten…die Pausen zwischen den simulierten Tastendrücken betragen eine halbe Sekunde, damit der ZX sicher hinterherkommt. Könnte mittels ändern der Konstante n sicher noch verkürzt werden.

Die Lochrasterplatte ist dem Gehäuseinneren angepasst. Ich habe für die Taster eine vorhandenes Loch zur Aufnahme einer DIN Buchse benutzt – einer der Vorbesitzer hatte sich hier schon verewigt. Die Taster bekommen noch Gummikappen – der obere Taster ist der Reset Knopf. Einfach ein Kabel vom Edge Connector Pin 21 (transparentes Kabel im Bildvordergrund) über den Taster nach Masse.

Gesamtansicht der Leiterplatte.

Als nächstes Projekt plante ich eine Ansteuerung einer Z80 PIO.

Im Internet fand ich einige Dokumentationen dazu – ebenso eine downloadbare PDF-Datei eines Buches „Programmieren in Basic und Maschinencode mit dem ZX81“.

Sehr einfach gehalten gibt dieses Buch viele nützliche Tipps zu diesem.

Es wird dort auch eine Ansteuerung einer PIO behandelt. Der Aufbau ist leicht und das Programm kurz. Es stellte sich heraus, dass die Adresse für die Daten zum Port B den Rechner zum Absturz führte. Es handelt sich um F9. Selbst ohne Erweiterungen am Rechner stürzte dieser ab. In einem ZX81 Forum fand ich eine Änderung der Beschaltung des LS138 und der PIO nebst den Adressen dazu. Also schnell umgebaut und Programm umgeschrieben… et voilà…es funktioniert.

Hier der Schaltplan:

Alles wieder auf Lochrasterplatte aufgebaut und eine weitere Buchse für den Edge Connector hergestellt. Und nochmals: Vorsicht mit Pin 45 – da liegt DC in an. Wer will, kann dort einen 7805 anschließen, um eine getrennte Stromversorgung für die Schaltung zu erstellen.

Die PIO benötigt ca. 50 mA und alle Dioden zusammen ca. 300 mA. Die Low-Power-Schottky IC’s sind vernachlässigbar. Ich hab es direkt an die 5 V vom ZX81 angeschlossen. Somit entnehme ich dem internen 7805 ca. 600 mA. Über ihn liegen 3,5 V. Also knapp 2 Watt Verlustleistung. Das Kühlblech müsste ausreichen.

Ich habe dafür keine Leiterplatte entworfen … noch nicht, da man hier noch einige Änderungen vornehmen kann.

Das Programm für die Steuerung habe ich aus dem Buch übernommen – nur die Adressen für Port A und Port B sind geändert.

FA à D7

FB à DF

F8  à C7

F9  à CF

Als erstes Programm ( hier auf dem Bild unvollständig) einen Test der Ports mittels Eingabe einer dezimalen Zahl 1 – 8.

Also LED 1 – LED 8.

Mit „8“ leuchten alle LED’s.

…und so weiter.

 

Ausblick:

 

Ich werde mich weiter mit der Programmierung der PIO beschäftigen – da gibt es noch viel Potenzial. Sicherlich kann man das heute mit viel einfacheren Mitteln realisieren:

Der ATtiny 2313 hat von Haus aus viel mehr Leistung als der ZX81.

Aber es macht Spaß, sich mit dieser über 40 Jahre alten Technik zu befassen.

Erfolg garantiert.

 

Rico

DL1RIC