Ale schrieb:> Another improvement to the board could be to make the distance between> J2 and J3 (Keyboard connectors) a multiple of 2.54 mm. The mounting hole> above the legend "ZX81+38" is a bit smaller than the other holes, there> is a bit of clearance around.
Ich denke, der Abstand zwischen J2 und J3 ist genau auf die pin-headers
meiner Tastatur (ZX-81plus35) eingestellt, aber ich werde sehen, was ich
tun kann.
Was das Montageloch betrifft, möchte ich versuchen, die Leiterplatten,
die ich jetzt habe, in einer echten Box eines echten ZX-81 zu montieren.
Möglicherweise müssen geringfügige Korrekturen an der Position und Größe
der Montagelöcher vorgenommen werden.
dafür muss ich allerdings in den unter Quarantäne gestellten Revspace
gehen. Ich weiß nicht wann ich kann.
>>Ich vermute in dem Bild ein "K", nur leider ist es ziemlich verschwommen.>Ja, ein BC547 ist für Niederfrequenzanwendungen gedacht. Deshalb verwende ich
einen 2N3905.
Im Schaltplan steht aber 2N3904.
Es wäre interessant zu wissen, welche Stelle im Datenblatt der
Transistoren für die Geschwindigkeit relevant sind.
Das Current-Gain-Bandwidth Produkt ist für beide Transistoren ähnlich
und liegt bei 300MHz.
chris_ schrieb:>>>Ich vermute in dem Bild ein "K", nur leider ist es ziemlich verschwommen.>>Ja, ein BC547 ist für Niederfrequenzanwendungen gedacht. Deshalb verwende ich> einen 2N3905.>> Im Schaltplan steht aber 2N3904.
Stimmt, ein 2N3904 muss es sein, 2N3905 ist ein tipp Fehler.
> Es wäre interessant zu wissen, welche Stelle im Datenblatt der> Transistoren für die Geschwindigkeit relevant sind.
Die Transistoren in der Joystick-Schnittstelle sind ebenfalls sehr
kritisch, wurden jedoch mit (der SMT-Version von) dem 2N3904 getestet.
Der Transistor in der Vorverstärkerschaltung des Kassetteneingangs ist
weniger kritisch, aber es ist logistisch klüger, auch für diesen
Transistor einen 2N3904 zu verwenden.
>> Das Current-Gain-Bandwidth Produkt ist für beide Transistoren ähnlich> und liegt bei 300MHz.
kan sein, aber ich hab es mit ein BC547 zuerst probiert, Mit einem
ähnlichen Ergebnis, deshalb ich zu einem anderen Transistor aus meinem
Lager, dem 2N3905, wechselte. danach wurde das Bild viel schärfer,
wie man in england sagt "the proof of de pudding is in the eating".
@Martin: Ohh, the crystal, I forgot to send you a crystal ! :(
Ok this machine works, I have to get the cassete interface working i.e.
finding the jacks to solder to the board and the corresponding cable in
my (messy basement) cache of cables :D
Now I want an MSX ! :)
Bei mir funktioniert die Darstellung auf dem Bildschirm leider immer
nocht nicht.
Zuerst musste ich feststellen, dass die Jumper für die Bildgenerierung
gesetzt werden müssen, da diese auf der Platine entgegen den anderen
Jumper keine Default-Verbindung haben. Das sollte in einer Doku ganz
oben stehen.
Also:
JP5: nach unten
JP6: nach oben
Ich kann mit meinem Debugger sehen, dass der Zx81 die Variblen richtig
initialisiert und bei Tastendruck der Speicherbereich E-Line gefüllt
wird und dass der Bildspeicher richtig initalisiert ist.
Was scheinbar nicht funktioniert ist das Ansprechen des Pixel-ROMs. Es
werden nur weise Kästchen auf dem Bildschirm angezeigt.
Das EEPROM ist nur auf 8kByte initialisiert, also müsste ich wohl 8KB
einstellen:
JP1, 16K/8K ROM select gegen GND
JP9 unterbrochen und A13 hart gegen GND
JP10 ist an meinem EEPROM eigentlich A14 und habe ich hart auf GND
gelegt
JP8, A11 habe ich auf A11 gelassen
JP11, ROMCS habe ich auf Default gelassen
Eigentlich sollte das funktionieren, nur die Zeichesatztpixel werden
eben scheinbar nicht selektiert.
Moin,
vielleicht hängt das mit dem Bug zusammen, den ich gerade gefunden habe.
Bisher hatte ich ein 27C256 EPROM mit 4 ROM Kopien hintereinander im
Einsatz.
Dann wollte ich ein 27C64 verwenden und das geht nicht. Dann habe ich
ein 28C256 mit einer ROM Kopie ab 0x0000 versucht. Geht nicht.
Kurz gesagt: Die ROM Daten müssen bei 0x4000 startend abgelegt werden
damit es funktioniert. Scheinbar läuft in der Adresslogik etwas falsch.
(Oder das gehört so und ich habe es nicht verstanden.)
Das mit den Pixelselect-Jumpern hatte ich weiter oben auch schon
geschrieben :-) Das verwirrt ganz klar, dass dies die einzigen Jumper
ohne Voreinstellung sind.
Hast Du bei JP1 denn auch erst unterbrochen und dann gewechselt? Bei den
anderen erwähnst Du es ja extra und bei dem nicht.
chris_ schrieb:> Das Current-Gain-Bandwidth Produkt ist für beide Transistoren ähnlich> und liegt bei 300MHz.
Kein Wunder, da ist ja auch der gleiche Chip drin. 2N3904 ist die JEDEC
Bezeichnung, BC547 die europäische. In Japan heisst er 2SC1815.
Der Videopuffer ist als Emitterfolger geschaltet, mit Verstärkungsfaktor
1. Da wird sich bei 6,5 MHz Pixeltakt kein Transistor überanstrengen.
Wenn das Bild überstrahlt, prüf die Videopegel. Weiss sollte bei 0,7 V
liegen (mit angeschlossenem Monitor), schwarz bei 0,3 V und Sync bei 0,0
V. Falls der Monitor (bzw Konverter) hochohmige Eingänge hat statt 75
Ohm, könnte ein 75 Ohm (100 Ohm)-Widerstand parallel zum Eingang helfen.
>Kein Wunder, da ist ja auch der gleiche Chip drin. 2N3904 ist die JEDEC>Bezeichnung, BC547 die europäische. In Japan heisst er 2SC1815.
Danke für die Klarstellung. Das wiederspricht ein wenig der Aussage von
Martin, der meinte, dass es praktisch einen Unterschied macht.
>Dann wollte ich ein 27C64 verwenden und das geht nicht. Dann habe ich>ein 28C256 mit einer ROM Kopie ab 0x0000 versucht. Geht nicht.>Kurz gesagt: Die ROM Daten müssen bei 0x4000 startend abgelegt werden>damit es funktioniert. Scheinbar läuft in der Adresslogik etwas falsch.>(Oder das gehört so und ich habe es nicht verstanden.)
Ich glaube, das Layout und der Schaltplan stimmen nicht ganz überein (
siehe Bild ). Mit P27/J10 kann man WE des EEPROM dauerhaft auf
GND(default) oder VCC legen, was meiner Meinung nach gar keinen Sinn
macht.
Das ROM des ZX81 ist nur 8kB groß und so weit ich weiss wird der
Zeichensatzt normalerweise in den gespiegelten zweiten 8kB von 16kB
angesprochen. Deshalb konnte man dort auch eine Art Hi-Res Graphik
machen, wenn man statt des ROM das RAM an die Adressen von 0x4000-0x7FFF
gelegt hat.
Der Adressbereich des Zeichensatzes geht eigentlich von
0x1E00-0x1FFF
Ich hab immer den 28C256 mit 4 Kopien des ROMs gebrannt, damit geht es
gut. Ich hab aber P27 auf +5V fest gelgt, die Leiterbahn auf Masse
durchgetrennt. Sowieso wird kein Schreibvorgang stattfinden solange ~OE
nicht auf 1 gezogen wird.
@Chris: Könnte es sein daß bei dir irgend ein Problem, Kurzschluß usw.
in der nähe des '165 gibt ? Vielleicht ist es gar nicht das ROM.
Der original BC547/8 usw. hatte laut das Dattenblatt von Philips nur 100
mA Collector Strom und den 2N3904 200 mA, die sind evtl. Äquivalent in
bestimmte Schaltungen aber sind (waren) nicht das gleiche Transistor.
Alex P. schrieb:> @Martin: Ohh, the crystal, I forgot to send you a crystal ! :(>
Macht nichts, ich habe bereits eine
> Ok this machine works, I have to get the cassete interface working i.e.> finding the jacks to solder to the board and the corresponding cable in> my (messy basement) cache of cables :D>> Now I want an MSX ! :)
Nachbau MSX systems gibts es bereits, namens GR8BIT, Es gibt auch einen
Raspberry PI HAT, der Ihren PI in einen MSX-1-Computer verwandelt
https://www.msx.org/news/hardware/en/raspberry-pi-msx-clone-first-test-and-groupbuy-initiative
Soul E. schrieb:> chris_ schrieb:>>> Das Current-Gain-Bandwidth Produkt ist für beide Transistoren ähnlich>> und liegt bei 300MHz.>> Kein Wunder, da ist ja auch der gleiche Chip drin. 2N3904 ist die JEDEC> Bezeichnung, BC547 die europäische. In Japan heisst er 2SC1815.>
Woher haben Sie die Information, dass es "den gleichen Chip" enthält?
Alle Informationen, die ich jemals darüber gelesen habe, besagen, dass
es sich um "ähnliche" Transistoren handelt, nicht um eindeutigen
gleiche, und es tut mir leid, aber ich bin nicht sicher, ob das, was Sie
sagen, richtig ist. Dies ist also ein Fall von "Citation needed".
chris_ schrieb:> Ich glaube, das Layout und der Schaltplan stimmen nicht ganz überein (> siehe Bild ). Mit P27/J10 kann man WE des EEPROM dauerhaft auf> GND(default) oder VCC legen, was meiner Meinung nach gar keinen Sinn> macht.
Jupp, ich habe das gerade mal gegengeprüft.
Das sollte vermutlich WE auf VCC gelegt sein und A14, bei Bedarf, für
32k ROMs bereitgestellt werden.
Da werde ich die Tage mal etwas an der Platine kratzen und zwei
Schummeldrähte einlöten.
Eventuell sollten wir mal eine Fehlerliste führen, damit nichts
vergessen wird.
- A13/A14 am Erweiterungport vertauscht
- RCA Stecker 180° verdreht
- A14 und WE am ROM falsch verdrahtet
- WAIT Logik muss ersetzt werden
- Pinabstand zwischen J2 und J3 auf "Normmaß" bringen
- Pixelselect Jumper auch mit default Brücken versehen
Dirk S. schrieb:> chris_ schrieb:>>> Ich glaube, das Layout und der Schaltplan stimmen nicht ganz überein (>> siehe Bild ). Mit P27/J10 kann man WE des EEPROM dauerhaft auf>> GND(default) oder VCC legen, was meiner Meinung nach gar keinen Sinn>> macht.>>> Jupp, ich habe das gerade mal gegengeprüft.> Das sollte vermutlich WE auf VCC gelegt sein und A14, bei Bedarf, für> 32k ROMs bereitgestellt werden.>
Stimmt, ein CAT28C256 hat NICHT den gleichen pinout wie ein 27C256 OTP.
Ein 27C256 OTP hat App auf pin 1, und A14 auf pin 27 und es gibt gar
kein write unable (/WE) pin.
sehe 27C256.GIF
> Da werde ich die Tage mal etwas an der Platine kratzen und zwei> Schummeldrähte einlöten.>> Eventuell sollten wir mal eine Fehlerliste führen, damit nichts> vergessen wird.>> - A13/A14 am Erweiterungport vertauscht> - RCA Stecker 180° verdreht> - A14 und WE am ROM falsch verdrahtet> - WAIT Logik muss ersetzt werden> - Pinabstand zwischen J2 und J3 auf "Normmaß" bringen> - Pixelselect Jumper auch mit default Brücken versehen
gerne, aber ich bekämpfe das 14 und /WE falsch beträtet sein fur ein
AT27C256R.
Ein CAT28C256 ist kein OTP, aber ein EEPROM, ein AT27C256 kostet nur
euro 1.77, und Farnell verkauft die CAT28C256 eben nicht, aber bei AVNET
kostet er euro 9.25, so wenn Sie also nicht glauben, dass Sie das ROM
mindestes etwa sechs Mal neu programmieren müssen, wählen Sie besser das
27C256 OTP.
Ich habe den ZX-81plus38 als Maschine mit 8K-ROM entworfen. 16K-ROM ist
nur durch Konvertieren von JP1 in 16K-ROM-Decodierung möglich.
Ich wollte, dass der Benutzer die Möglichkeit hat, zwischen schwarzen
Buchstaben auf einem weißen Bildschirm (ZX-81-Standard) oder weißen
Buchstaben auf einem schwarzen Bildschirm (normal für die meisten
anderen Computer) und einer einfachen Möglichkeit zum Umschalten
zwischen beiden zu wählen.
Deshalb habe ich normale Jumper anstelle von "Scratch and Wire"
-Optionen verwendet. Ebenfalls auch die jumper fur Pal (50Hz) oder NTSC
(60Hz) betrieb is ein normale jumper.
Ich finde die Optionen auch total gut, aber die Version mit einem
default finde ich noch besser:-) Aus meiner Sicht ist es nur verwirrend
wenn es gemischte default und nicht default Jumper gibt.
Die Sache mit den unterschiedlichen pinout für OTP, EEPROM und Fenster
EPROM ist natürlich ärgerlich. Jetzt ist der Grund für mich klar.
chris_ schrieb:> The original circuit of the Zx81 is done with transistors and the> ability to pull down the pin externally. I strongly recommend to have> the same feature because than it is possible to attach a single step> debugger ( which needs to pull down nWait ).
Wie ich bereits sagte, möchte ich die ZX97Lite-Schaltung für / WAIT
verwenden und sie mit einem 470-Ohm-Widerstand übersteuerbar machen, so
wie die RAM- und ROM-Chipauswahlsignale über den Erweiterungsanschluss
übersteuert werden können.
Bitte senden Sie eine Nachricht, wenn Sie ein unüberwindbares Problem
damit haben.
Just another thought about the ROM options.
I fully got your point that OTPs are much easier and cheaper to get, but
if you go with OTP, would you require all the different ROM jumper
options? If you have no intention to change the ROM content you might go
for a straight ZX81 compatible design.
So maybe it would make sense to design either a simplified OTP layout or
a multi ROM size jumper option for EEPROM/UV-EPROM.
Another option would be to extend the jumper options to have the full
selection available, but that would require another two jumper :-D
I just love the window EPROMs and got some from ebay, therefore I'll mod
the PCB to fit their pinout.
But obviously this is not a critical bug like the WAIT circuit is. So
far the WAIT circuit seems to be the only critical bug at all, which I
find quite remarkable for such a complex layout.
I'm using the nWAIT circuit from the ZX97, it works well. An extra
resistor to be able to pull nWAIT low seems to match the rest of the
design.
The ROM options are also Ok.
The board works and I'm happy wit that !
>Wie ich bereits sagte, möchte ich die ZX97Lite-Schaltung für / WAIT>verwenden und sie mit einem 470-Ohm-Widerstand übersteuerbar machen, so>wie die RAM- und ROM-Chipauswahlsignale über den Erweiterungsanschluss>übersteuert werden können.>Bitte senden Sie eine Nachricht, wenn Sie ein unüberwindbares Problem>damit haben.
Der Serienwiderstand ist OK, es muss keine Transistorschaltung sein. Es
ist nur wichtig, dass man nWait extern bedienen kann. Im Moment macht
das mein ArduinoMegaDebugger. Ich kann z.B. das Programm anhalten, eine
paar Werte im Bildschirmspeicher verändern und mir dann das Ergebnis auf
dem Zx81 Bildschirm anschauen ( Im Moment leider immer noch Zeichen mit
undefiniertem Aussehen ).
Noch einen kleine Hinweis zum EEPROM 28C256: Man könnte es vom Zx81 aus
beschreibbar machen, dann könnte man einige Programme vom Zx81 selbst
dort speichern.
Apropos: Falls jemand den Debugger nachbauen will, kann ich nächste
Woche mal die Sourcen reinstellen. Die Schaltung ist ziemlich einfach,
man muss eigentlich nur die Pins vom ArduinoMega mit dem Zx81 Bus
verbinden. Ich überlege, noch ein RS-FF einzubauen, dann kann man
Single-Step machen.
Dirk S. schrieb:> Just another thought about the ROM options.> I fully got your point that OTPs are much easier and cheaper to get, but> if you go with OTP, would you require all the different ROM jumper> options? If you have no intention to change the ROM content you might go> for a straight ZX81 compatible design.>> So maybe it would make sense to design either a simplified OTP layout or> a multi ROM size jumper option for EEPROM/UV-EPROM.>> Another option would be to extend the jumper options to have the full> selection available, but that would require another two jumper :-D
In fact the jumper options for the ROM socket are ONLY meant to replace
the 27C256 with the original Sinclair ROM.
>> I just love the window EPROMs and got some from ebay, therefore I'll mod> the PCB to fit their pinout.
No need for that as 27C256 OTP ROMs ARE simply windows EPROMS without
the glass window. That is why they are so cheap and easy to get. I have
sought long for EPROMS but it seems the erasability of them with UV
light no longer makes sense, so they simply started making OTP's by not
adding the glass window. So you can use your ebay EPROMS as is, without
needing jumper changes!
>> But obviously this is not a critical bug like the WAIT circuit is. So> far the WAIT circuit seems to be the only critical bug at all, which I> find quite remarkable for such a complex layout.
thanks. :-) I had hoped for "one time right" design, but yeah, this
isn't too bad. Ill start the redesign (revision 1.5) soon.
Ill publish the new schematic here before starting on the layout.
Now I figured it out too.
The A14 problem is only valid for the EEPROM.
The window EPROM and OTPs have identical pinout, but a 27C64 has no need
for A13 and A14. On Pin 27 is nP and for read operation this must be
high, so for the use of a small EPROM I have to change J10.
Trying to understand the shifting issue I pointed out before, a
difference between the +34 and the +38 is that in the +34 the clock
inhibit of the '165 is pulled high and in the +38 it is tied to the 6.5
MHz clock.
@Martin: could you please feed me on the idea behind the change ?
Hallo:
chris:
> Apropos: Falls jemand den Debugger nachbauen will, kann ich nächste> Woche mal die Sourcen reinstellen. Die Schaltung ist ziemlich einfach,> man muss eigentlich nur die Pins vom ArduinoMega mit dem Zx81 Bus> verbinden. Ich überlege, noch ein RS-FF einzubauen, dann kann man> Single-Step machen.
das würde mich schon einmal interessieren. Vor allem die Version mit dem
RS-Flip-Flop für Single-Step (bin mit dem Z80 nicht so bewandert).
Ciao
On the issue of the missing first shifted bit (D7)
CH1 Pixel output (JP5 1-2)
CH2 D7'
CH3 SH/nLD (pin 8 U29)
CH4 6.5 MHz Clock (pin 2 U9)
I would think that the peak of D7 seems a bit short, seen at trigger
point.
I'll make another capture with the pixel after the flip-flops, such a
peak will be missed because the '74 U18 is clocked with the inverted 6.5
Mhz, in the +34 it is clocked with the normal 6.5 MHz clock.
On the issue of the missing first shifted bit (D7)
CH1 Pixel output (JP5 1-2)
CH2 D7'
CH3 SH/nLD (pin 8 U29)
CH4 Pixel output after the '74 (U18), on pin 4 of U10 (Pin 9 of U18)
One see that the think peak of D7 (at trigger point) is completely
missing in the green trace (CH4).
The clock for U18 (pin 11) should be 6.5 MHz and not the inverted clock.
Yes, that's the problem !
Super!
Genau da liegt das Problem :-)
Ich habe mal einen Schummeldraht von U9 verlegt um den nichtinvertierten
Takt zu bekommen und jetzt ist das Bild fehlerfrei.
Wenn ich es richtig sehe, dann wird n6.5M nirgendwo anders gebraucht.
Damit kann U21D ausser Betrieb gehen und es steht ein Inverter für die
WAIT Schaltung zur Verfügung.
>> Apropos: Falls jemand den Debugger nachbauen will, kann ich nächste>> Woche mal die Sourcen reinstellen. Die Schaltung ist ziemlich einfach,>> man muss eigentlich nur die Pins vom ArduinoMega mit dem Zx81 Bus>> verbinden. Ich überlege, noch ein RS-FF einzubauen, dann kann man>> Single-Step machen.
Jürgen schrieb:
>das würde mich schon einmal interessieren. Vor allem die Version mit dem>RS-Flip-Flop für Single-Step (bin mit dem Z80 nicht so bewandert).
Baust Du auch einen Zx81?
Der Quellcode für den Debugger wäre schon super. Ich habe heute von
Segor die passenden Klinkenbuchsen bekommen und gleich so einen
Ardu-Mega-Dingens mitbestellt.
Mal etwas anderes. Ich habe Jumper 12 jetzt auf 32k umgestellt, da ja
ein 32k RAM verbaut ist. Aber das original ROM geht mit seinem RAM-Check
ja nur von 32767 rüchwärts. Dadurch wird RAMTOP niemals >7FFF, für 16k
RAM. Macht es Sinn das ROM so zu ändern, so dass die 48k als Obergrenze
geprüft werden, oder wie machen das die großen Speichererweiterungen?
Dirk S. schrieb:> Mal etwas anderes. Ich habe Jumper JP12 jetzt auf 32k umgestellt, da ja> ein 32k RAM verbaut ist. Aber das original ROM geht mit seinem RAM-Check> ja nur von 32767 rüchwärts. Dadurch wird RAMTOP niemals >7FFF, für 16k> RAM. Macht es Sinn das ROM so zu ändern, so dass die 48k als Obergrenze> geprüft werden, oder wie machen das die großen Speichererweiterungen?
Dirk,
Ja, es stimmt, dass ich die Option hinzugefügt habe, die gesamten 32 KB
des RAM-Chips zu verwenden, aber warum sollten Sie das wollen?
Es gibt keine Software, die mehr als 16 KB verwendet!
Um mehr als 16 KB in BASIC verwenden zu können, muss die BASIC-Firmware
angepasst werden.
Nur weil etwas getan werden kann, ist dies kein Grund, es zu wollen.
Wenn Sie nicht ein wenig masochistisch sind, würde ich davon abraten 32K
zu verwenden. Aber ich werde Sie nicht aufhalten und habe mir sogar die
Mühe gemacht, dies zumindest von der Hardwareseite aus zu ermöglichen.
Der einzige Grund, warum ich einen 32K-RAM-Chip verwende, ist, dass
16K-RAM-Chips einfach fast nicht verfügbar und sicherlich nicht billiger
sind. weil sie selten sind.
Dirk S. schrieb:> Super!>> Genau da liegt das Problem :-)>> Ich habe mal einen Schummeldraht von U9 verlegt um den nichtinvertierten> Takt zu bekommen und jetzt ist das Bild fehlerfrei.>> Wenn ich es richtig sehe, dann wird n6.5M nirgendwo anders gebraucht.> Damit kann U21D ausser Betrieb gehen und es steht ein Inverter für die> WAIT Schaltung zur Verfügung.
Bravo, großartig!
Ich war schon ein bisschen besorgt, ich erinnere mich, dass ich tagelang
mit dem ZX-81 + 35 gesucht habe, weil ich zuerst ein ahnliches
Schieberegisterproblem hatte, und dann war es auch die Phase des
Taktsignals, die mir die Lösung brachte . Ich verstehe nicht ganz, warum
sich dieser Fehler wieder in die Konvertierung auf den ZX-81 + 38
eingeschlichen hat, aber ich bin sehr froh, dass das Problem gefunden
wurde.
Ich werde jetzt in Kürze mit Revision 1.5 beginnen.
Dirk schrieb
>Eventuell sollten wir mal eine Fehlerliste führen, damit nichts>vergessen wird.>- A13/A14 am Erweiterungport vertauscht>- RCA Stecker 180° verdreht>- A14 und WE am ROM falsch verdrahtet>- WAIT Logik muss ersetzt werden>- Pinabstand zwischen J2 und J3 auf "Normmaß" bringen>- Pixelselect Jumper auch mit default Brücken versehen
Eine Fehlerliste finde ich gut.
- A13/A14 am Erweiterungport vertauscht
- RCA Stecker 180° verdreht
- A14 und WE am ROM falsch verdrahtet
- WAIT Logik muss ersetzt werden
- Pinabstand zwischen J2 und J3 auf "Normmaß" bringen
- Pixelselect Jumper auch mit default Brücken versehen
- Spannungsanschluss 5V/9V an der Platine eventuell mit Brücke trennbar
- Schiftregisterclock invertieren
>Der Quellcode für den Debugger wäre schon super. Ich habe heute von>Segor die passenden Klinkenbuchsen bekommen und gleich so einen>Ardu-Mega-Dingens mitbestellt.
Es freut mich, wenn jemand den Debugger nachbaut. Den Quellcode kann ich
erste gegen Ende der Woche reinstellen, weil ich gerade keinen Zugriff
auf meinen Bastelrechner habe.
Das Single-Step-Debugging mit dem FlipFlop habe ich noch nicht
implementiert. Eventuell könnte man auch einen Zähler im Atmega dazu
verwenden:
1. Zähleingang die M1 Pulse des Z80 zählen
2. Ein Compare Match Ausgang des Zählers an die Wait-Leitung anschliesen
Wer kennt sich gut genug mit dem Atmega aus, um die Konfiguration des
Zählers zu machen?
Hmm, was ist eigentlich der Reiz dabei, ein Projekt nachzubauen, das so
viel Debugging und Fixes und Interpretationskunst benötigt, dass man das
Teil in der benötigten Zeit selbst hätte entwerfen können? Wäre das
nicht interessanter und lehrreicher als sich tage- und wochenlang mit
dem vermurksten Design eines anderen auseinanderzusetzen? Da hätte ich
ja keinen Nerv zu - die Zeit wende ich lieber für meine eigenen Projekte
auf.
Re-Engineering des Roswell-Ufos scheint ja vergleichsweise einfach zu
sein im Vergleich mit dem Ding!
Schön für Dich das Du so ein großartiger Designer bist. Wann
veröffentlichts Du Deinen Entwurf? Bis dahin kannst Du Dich bitte voll
auf das Design konzentrieren und uns in Ruhe lassen.
Alex P. schrieb:> @Michael: und wann sehen wir deinen funktionierenden entwurf ? noch halb> stunde ?
Die ULA nachzubauen ist sicherlich nicht so einfach - aber alles gut
dokumentiert, und es gibt auch vL81 ULAs etc. In einer halben Stunde
geht das sicher nicht.
Der Rest vom ZX81 / ZX80 ist auch gut dokumentiert,jeder Hardware-Trick
(geniales Keyboard Matrix Decoding über die Addressleitungen, NMI
Transistor, blah blah blah) alles ausführlich beschrieben in vielen
vielen Büchern aus den 80ern.
Sicherlich lernt man viel dabei, das Ding zum Laufen zu bringen, aber so
viel Aufwand wie das hier - das ist schon ein bißchen übel. Wie gesagt,
ICH hätte da keinen Nerv zu, die Zeit würde ich lieber in eigene Projekt
investieren (oder einen ZX81 für ein paar EUR bei Ebay kaufen und
restaurieren ;-)) . Aber jeder wie er mag!
Dirk S. schrieb:> Schön für Dich das Du so ein großartiger Designer bist. Wann> veröffentlichts Du Deinen Entwurf? Bis dahin kannst Du Dich bitte voll> auf das Design konzentrieren und uns in Ruhe lassen.
Kannst DU mal bei der Sache bleiben, Strawman? Mein Aussage ist - das
Ding ist zu vermurkst für meinen Geschmack und ich möchte verstehen,
warum jemand wochenlang mit dem Teil rumhühnert statt sich lieber selbst
was zu entwerfen.
PS Neulich wollte mir einer so einen Pentagon MSX CPC Spectrum Clone
andrehen (Platine geschenkt) - alles in Russisch mit fehlenden Werten
für 20 Kondensatoren und anderen Bauteile, russisches EEPROM und
Schaltplan und so weiter. Habe dankend abgelehnt! :-) Wie wäre es damit
als nächster Time Killer?
Michael W. (michael_w738)
>Hmm, was ist eigentlich der Reiz dabei, ein Projekt nachzubauen, das so>viel Debugging und Fixes und Interpretationskunst benötigt, dass man das>Teil in der benötigten Zeit selbst hätte entwerfen können? Wäre das>nicht interessanter und lehrreicher als sich tage- und wochenlang mit>dem vermurksten Design eines anderen auseinanderzusetzen? Da hätte ich>ja keinen Nerv zu - die Zeit wende ich lieber für meine eigenen Projekte>auf.
Eigentlich würde ich auch keinen Zx81 nachbauen, aber nachdem ich die
Bauteile geschenkt bekommen habe, baue ich das Teil. Ich muss sagen, es
macht sogar wieder erstaunlich viel Spaß. Es ist wie Rätsel lösen, man
kommt immer wieder ein kleines Stückchen weiter.
Ich halte das Design auch nicht für vermurkst. Es ist in der Entwicklung
ganz normal, dass Fehler passieren und dass diese behoben werden müssen.
Das hier ist kein Anfängerprojekt und eher was für Leute mit viel
Hardwareerfahrung. Außerdem kann ein Community auch immer gute Tipps
beisteuern.
Ich finde im Moment gerade Spaß daran, mit minimalistischen Mitteln
einen vollwertigen Debugger für den Zx81 zu entwickeln. Das ist auch aus
dem Grunde interessant, die Strukturunterschiede gegenüber heutigen
Prozessoren genauer zu verstehen.
Danach werde ich mich mit der Frage beschäftigen, ob man mit heutigen
Softwaremethoden Dinge auf dem Zx81 erreichen kann, die damals noch
nicht möglich waren.
Ein Пентагон-Computer war einer der vielen russischen Klone des
Sinclair-Spektrums, oder ?! Die Russian Spectrum-Klone waren eine meiner
Inspirationen für die Entwicklung meines "Rhococo", eines anderen von
mir entworfenen Z80-basierten Computers, jedoch mit 64 Farben und VGA,
basierend auf einem Z80- und einem Propeller-Chip. Ich habe auch an
diesem Retro Home Color Computer (Rhococo) gearbeitet und bereits einen
ersten Prototyp gebaut, aber ich habe ihn eine Weile beiseite gelegt, um
am ZX81 + 38 arbeiten zu können. Siehe:
https://revspace.nl/Designing_the_RhoCoCo_Retro_Home_COlor_COmputer_hardware
Ich habe auch überlegt, die Galaksija aus dem ehemaligen Jugoslawien
wieder aufzubauen, aber ich habe verstanden, dass dies nicht mehr
möglich ist, und es gibt nur sehr wenige Informationen über neuere
Varianten, aber was ich finden konnte, habe ich hier beschrieben:
https://revspace.nl/Galaksija vielleicht jemand anderes, den man sich
ansehen sollte. Es ist eigentlich eine Kreuzung zwischen einem TRS-80
Modell 1 und einem ZX80.
Ich bin ein bisschen enttäuscht von mir selbst, dass der erste Prototyp
so viele Mängel aufweist, aber ich begann ein bisschen mit der Idee,
Versionen davon früh und oft zu veröffentlichen.
Man weiß nie mit dieser Korona-Epedemie ....
Die Liste mit "Fehlern" ist nett, ich muss mich nicht noch einmal an
alles erinnern, aber ich sehe mindestens die Hälfte der Liste als eine
Liste, die keine Fehler enthält, aber Verbesserungswünsche, wie die
Pinheaders für die Tastatur, weiß ich nicht wirklich, ob das wirklich
eine Verbesserung ist. Und Jumper, damit Sie ein EEEPROM anstelle eines
OTP verwenden können, sehe ich auch als Aufforderung, eine neue Funktion
hinzuzufügen, nicht als Fehler.
Ich sehe nur zwei echte Fehler: Tauschen Sie A13 und A14 am
Erweiterungsstecker aus, und der / WAIT-Generator funktioniert nicht.
Die anderen Dinge sind nett zu haben, keine Designfehler.
Ich werde mich wirklich nicht von kritischen Replikatoren entmutigen
lassen.
Schon der erste IBM PC war voller Patches.
Martin D. schrieb:> Ich werde mich wirklich nicht von kritischen Replikatoren entmutigen> lassen.
Würde ich auch nicht. Allerdings würde ich etwas vorsichtiger sein, was
ich auf die Menschheit "loslasse"... solange damit kein Geld verdient
wird, die Fehler dokumentiert sind, ist ja alles OK, wenn es noch nicht
ausgereift ist. Verkaufen geht so natürlich nciht. Muss ja jeder selbst
wissen, auf was er sich einlässt wenn er es nachbaut - sofern er denn
weiß, auf was er sich einlässt... Das ist ja eben das Schöne am Basteln
- man lernt was, und es ist ein Hobby.
> Schon der erste IBM PC war voller Patches.
Ja, allerdings war das kein Nachbau-Projekt... insofern egal.
Ist ja alles schön und gut, warum auch nicht.
Wie gesagt, für mich wäre es nichts - aber alle Achtung vor der
Ingenieurs-Leistung!
Das mit der Wunschliste stimmt schon und egal wie Du es machst,
irgendjemanden wird es nicht gefallen.
Aber es sind drei kritische Fehler.
- Adressleitungen vertauscht
- WAIT Schaltung
- Der invertierte Takt am Pixelshiftregister
chris_ schrieb:> Eigentlich würde ich auch keinen Zx81 nachbauen, aber nachdem ich die> Bauteile geschenkt bekommen habe, baue ich das Teil. Ich muss sagen, es> macht sogar wieder erstaunlich viel Spaß. Es ist wie Rätsel lösen, man> kommt immer wieder ein kleines Stückchen weiter.
Ja, den Pentagon wollte ich allerdings nicht mal geschenkt bekommen,
soviel Zeit habe ich nicht... ich lerne dabei zwar etwas Russisch und
welche 74xxx Chips den russischen Plagiaten entsprechen, aber mehr auch
nicht. Da lese ich lieber ein Buch wo ich was Neues lerne, oder arbeite
an einem eigenen Projekt.
Nun, ich weiß, dass nicht jeder ein Fan von "The 8-bit guy" ist, aber
ich muss zugeben, dass ich gerne seine Vlogs schaue, nur dass er sich so
sehr auf die Commodore-Computer konzentriert das gefällt mir nicht sehr
gut
Dirk S. schrieb:> Das mit der Wunschliste stimmt schon und egal wie Du es machst,> irgendjemanden wird es nicht gefallen.>> Aber es sind drei kritische Fehler.>> - Adressleitungen vertauscht>> - WAIT Schaltung>> - Der invertierte Takt am Pixelshiftregister
du hast recht, "ich muss mich nicht noch einmal an
alles erinnern" :-)
Michael W. schrieb:> Martin D. schrieb:>>> Ich werde mich wirklich nicht von kritischen Replikatoren entmutigen>> lassen.>> Würde ich auch nicht. Allerdings würde ich etwas vorsichtiger sein, was> ich auf die Menschheit "loslasse"... solange damit kein Geld verdient> wird, die Fehler dokumentiert sind, ist ja alles OK, wenn es noch nicht> ausgereift ist.
Eigentlich wollte ich zuerst meine eigenen Prototypen bauen, da ich auch
wusste, dass es fast unmöglich ist, ein völlig fehlerfreies Design von
Grund auf neu zu erstellen. Ich habe insgesamt meinen ersten ZX81-Klon
(ZX-81plus35). drei Prototypen gebasteld und veröffentlichte nur die
endgültige Version davon. Ich dokumentierte explizit die ganze
Geschichte über das schrittweise Entwerfen meines ersten Klons (hier
https://revspace.nl/ZX81PLUS34_ZX81_clone) und veröffentlichte das
Design erst danach Druck von Dritten, Es war nie beabsichtigt, damit
Geld zu verdienen. Außer vielleicht als Bausatz. aber dann hätte das
Design perfekt sein sollen, und ich hätte gerne dabei ein umfangreiches
Build- und Benutzerhandbuch zur Verfügung gestellt. Die ZX-81plus38
Version kam erst, nachdem ich wiederholt aufgefordert wurde, eine
Version ohne SMT zu erstellen, da SMT zu schwierig wäre, und der erste
Prototyp des ZX-81+38 erschien im April 2020, kurz vor der Koronakrise.
Ich hatte nicht die Zeit, das Geld und die Fähigkeit (Revspace wurde
aufgrund von Korona sofort geschlossen, und ich werde entlassen ),
diesen Prototyp zuerst selbst zu bauen, also veröffentlichte ich das
Design drei Jahre zuvor, genau wie beim ZX-81plus35 als "open hardware"
auf GitHub.
Da ich wirklich Angst vor Korona hatte, weil ich stark in einer
Risikogruppe bin, da ich sowohl chronical bronchitis als auch Apnoe habe
und 64 Jahre alt bin, hielt ich es für ratsam, nicht zu lange zu warten.
Am Ende war ich mir auch nicht sicher, ob das Design massive
Aufmerksamkeit erhalten würde, von meinem früheren ZX-81 + 35-Design
begann nur 1 oder 2 Personen tatsächlich damit, es zu bauen, und es
funktionierte bei beide fast sofort.
Ich war angenehm überrascht, als ich dieses Forum entdeckte und die
massive technische Aufmerksamkeit die mein Design gegeben wurden. Es ist
meine Geisteskind, und es ist immer schön, wenn es Aufmerksamkeit dafür
gibt. Deshalb bemühe ich mich, ein voll funktionsfähiges Design zu
schaffen, das einfach zu bauen ist. Ich habe begonnen, die
Verbesserungen in Schaltplan und Layout vorzunehmen, und werde nicht
aufhören, bis ich selbst damit zufrieden bin.
>> Wie gesagt, für mich wäre es nichts - aber alle Achtung vor der> Ingenieurs-Leistung!
danke das ist schön zu hören
Michael W. (michael_w738)
>Würde ich auch nicht. Allerdings würde ich etwas vorsichtiger sein, was>ich auf die Menschheit "loslasse"...
Das sehe ich anders: Die Arbeit von Martin passiert aus freien Stücken
ohne finanzielle Gegenleistung. Wir in diesem Thread haben Spaß daran,
die Fehler und Verbesserungen zu finden. Wer das anders haben will, muss
etwas anderes machen.
>Da lese ich lieber ein Buch wo ich was Neues lerne, oder arbeite>an einem eigenen Projekt.
Ja, mach das jetzt und suche dir einen Thread, indem du diese Bedürfnis
ausleben kannst. Hier geht es um den Zx81plus38 Nachbau.
>Hier gibt's eine sehr schöne Doku über den Zx80/Zx81:>https://www.youtube.com/watch?v=1Jr7Q1yJOUM
Im Video behauptet der 8-Bit Guy, die Schaltung des ZX80 und die ULA
seien in ihrer Funktion gleich. Der Zx81 hat aber 8KROM.
Hier gibt es einen Bildvergleich der beiden Motherboards:
http://www.primrosebank.net/computers/zx80/zx80_and_zx81_boards.jpg
Auf dem Motherboard des Zx80 sind 21 ICs zu sehen, 3 davon Speicher und
eine CPU, bleiben also 17 Logik ICs. Der Zx81plus38 hat 22.
Ist die Schaltung des Zx81plus38 vom Zx80 inspieriert?
Was mir in dem Video de 8Bit-Guy noch auffällt: Dort gibt es High-Res
Graphik zu sehen, die eigentlich erst ab 2kB RAM und einer Modifikation
des Addressdekoders möglich war. Hat der Timex TS1000 das schon
automatisch mit drinn?
chris_ schrieb:> Im Video behauptet der 8-Bit Guy, die Schaltung des ZX80 und die ULA> seien in ihrer Funktion gleich. Der Zx81 hat aber 8KROM.
Der ZX81 hat zusätzlich einen NMI-Generator. Damit kann er ein Videobild
anzeigen während ein Programm ausgeführt wird (slow mode). Der ZX80
konnte nur entweder/oder (fast mode).
Die wesentliche Änderung ist natürlich die ULA. Ein ASIC von Ferranti,
der sämtliche 74er Logik durch einen einzigen Baustein ersetzt. Das
reduzierte die Herstellkosten drastisch.
> Ist die Schaltung des Zx81plus38 vom Zx80 inspieriert?
Alle ZX-Kompatiblen müssen die ULA diskret nachbilden. Daher sind sie
alle im Konzept ähnlich. In der Implementierung macht es natürlich jeder
ein bisschen anders. ZX97, ZX97lite, Grant Searle, ZX80NU, core, ...
Auch den Spektrum gibt es als diskrete Nachbildung. Ein bekanntes
modeneres Beispiel ist der Harlequin.
> Was mir in dem Video de 8Bit-Guy noch auffällt: Dort gibt es High-Res> Graphik zu sehen, die eigentlich erst ab 2kB RAM und einer Modifikation> des Addressdekoders möglich war. Hat der Timex TS1000 das schon> automatisch mit drinn?
Ja. Beim ZX81 war der 6116 eine Bestückoption und zwei 2114 Serie. Der
Timex TS1000 hatte immer den 6116.
Richtig benutzen konnte man die Kiste ohnehin nur mit der 16k
Erweiterung.
chris_ schrieb:> Nachdem ich vor knapp 40 Jahren einen ZX81 hatte,
Wie kann man 1980 einen ZX81 gehabt haben? :-)
Was man mal bräuchte wäre einen EMU für einen Sinclair Spektrum. Das war
ein geiles Teil,
Weltbester FPGA-Pongo schrieb im Beitrag #6431299:
> chris_ schrieb:>> Nachdem ich vor knapp 40 Jahren einen ZX81 hatte,>> Wie kann man 1980 einen ZX81 gehabt haben? :-)
Markteinführung war 1981. Also vor knapp 40 Jahren, nicht vor 40 Jahren.
> Was man mal bräuchte wäre einen EMU für einen Sinclair Spektrum. Das war> ein geiles Teil,
Fuse, Speccy, Spectaculator, usw. EightyOne unterstützt auch den
Spectrum. Wer nur einen Emulator ausprobieren will, der sowohl Z80, ZX81
unterstützt als auch die gängigen Kompatiblen und Bastelprojekte (Timex,
ZX97, ZX80NU, ...), der sollte mit EightyOne anfangen:
https://sourceforge.net/projects/eightyone-sinclair-emulator/files/
Spectrum-Nachbauten in Hardware (also die ULA als TTL nachgebaut) gab es
Dutzende im Ostblock. Selbst in Schlenzings "Schaltungssammlung für den
Amateur" war ein "international kompatibler Kleinrechner" beschrieben.
Ein moderner Klassiker ist der Harlequin. Aber die Liste ist lang:
https://en.wikipedia.org/wiki/List_of_ZX_Spectrum_clones
Weltbester FPGA-Pongo schrieb im Beitrag #6431299:
> Was man mal bräuchte wäre einen EMU für einen Sinclair Spektrum. Das war> ein geiles Teil,
Es gibt hier auch direkt einen "um die Ecke":
Beitrag "STECCY - ZX-Spectrum-Emulator mit STM32"
Läuft auf STM32F407VET6-China-Board. Aber auch auf Linux (Framebuffer
und/oder X11) und Windows (QT).
Martin D. schrieb:> Ja, es stimmt, dass ich die Option hinzugefügt habe, die gesamten 32 KB> des RAM-Chips zu verwenden, aber warum sollten Sie das wollen?> Es gibt keine Software, die mehr als 16 KB verwendet!
Es ist möglich mehr als 16 kB zu verwenden. Aber nur mit Tricks.
Zunächst muss beim Refresh-Zugriff (/M1 = low) statt 0xC000-FFFF der
Bereich 0x4000-7FFF eingeblendet werden. Der ZX81 führt sein als
Programmcode getarntes Videobild bei [DFILE]+0x8000 aus, real liegt der
Bildspeicher aber bei [DFILE]. Üblicherweise zieht man A15 am RAM auf
LOW, wenn gilt: A15 = 1, A14 = 1, /M1 = 0. Beim ZX81 ergibt sich das
automatisch durch die unvollständige Adressdecodierung -- da erscheint
das RAM mehrfach im Adressbereich.
Zusätzlich prüft das ZX-BASIC nur den Bereich bis 0x7FFF auf das
Vorhandensein von RAM. Um 32k (von 0x4000-BFFF) für BASIC nutzen zu
können muss man die Systemvariable RAMTOP (0x4004/5) manuell auf BF FF
setzen und dann NEW eingeben. Theoretisch liesse sich das durch einen
Patch des ROMs beheben.
Im Bereich 0xC000-FFFF kann wegen der "A15 low wenn /M1 low"-Geschichte
kein Maschinencode ausgeführt werden. Man kann da aber RAM hinlegen und
Daten speichern. Oft liegen in dem Bereich RAM-Disks oder ähnliche
Erweiterungen.
32k einbauen und mit M1NOT-Modifikation in den Bereich 0x4000-BFFF legen
ist heute eigentlich Standard
> Der einzige Grund, warum ich einen 32K-RAM-Chip verwende, ist, dass> 16K-RAM-Chips einfach fast nicht verfügbar und sicherlich nicht billiger> sind. weil sie selten sind.
Ein guter Grund, aber nicht der einzige :-)
Soul E. (souleye) Benutzerseite
>Richtig benutzen konnte man die Kiste ohnehin nur mit der 16k>Erweiterung.
Danke für die vielen Hinweise.
Ich hatte recht bald die 2KRam 6116 eingelötet. Das Ergebnis in der
Benutzbarkeit war aber viel besser als nur eine Verdoppelung des RAMs.
Da der Zx81 bei vollem Bildaufbau 768Byte RAM und zusätzlich noch ein
paar Byte für das System gebraucht hat, blieben keine 200Byte für das
eigentlich Basic-Programm. Das Einlöten des 2K RAMs brachte also in etwa
die 6fache nutzbare Speichergröße gegenüber dem 1K Ram.
Ich bastle an einen 25 MHz Ozillator, ich sollte fertige Oszillatoren
kaufen :(.
Ich erzähle was ich gedacht/vor habe: 12.5 MHz als Pixel clock, 6.25
MHz als CPU clock, der blank line Zähler auf 163 vergrössern und dann
VGA Ausgang, kleines Bild in der Mitte aber es soll gehen. Man könnte
auch die 192 linien duplizieren aber dafür muss man mehr verbasteln, den
393 soll bis 16 zählen, und mehr im Code ändern, weiß aber noch nicht
genau ob es wirklig geht, teoretisch schon praktisch... gibt es
vielleicht nicht genug zeit oder speicher für extra Code.
>Die wesentliche Änderung ist natürlich die ULA. Ein ASIC von Ferranti,>der sämtliche 74er Logik durch einen einzigen Baustein ersetzt. Das>reduzierte die Herstellkosten drastisch.
Hier findet sich das Bild eines Motherboard des Microdigital TK85
( https://en.wikipedia.org/wiki/TK85 ), ein Clone es Zx81 aus der
damaligen Zeit:
http://zx81.eu5.org/imagens/hard/ay03.jpg
Das sind aber deutlich mehr als 17 ICs.
chris_ schrieb:> http://zx81.eu5.org/imagens/hard/ay03.jpg>> Das sind aber deutlich mehr als 17 ICs.
Da sind 8 dynamische RAMs (4116) zu sehen, und ein Soundchip. Also ein
bisschen mehr Ausstattung als ein normaler ZX81. Da steckt also das 16
K-Modul mit drin und der ZONX.
Boah, das nervt!
Nun läuft der ZX81+38 stabil mit 50 Hz an einem Mini-Display, aber ich
schaffe nicht einmal das erste Level von Invaders :-(
War das schon immer so schwierig?
Im NTSC Modus geht es gar nicht, dann ist die Tastaturabfrage so
langsam, dass ich kaum feuern kann.
Dirk S. schrieb:> Boah, das nervt!> Nun läuft der ZX81+38 stabil mit 50 Hz an einem Mini-Display, aber ich> schaffe nicht einmal das erste Level von Invaders :-(>> War das schon immer so schwierig?
Ja! Und dabei hast Du einen Joystick (oder?) Versuche das mal mit der
Folientastatur des Originals... aarrrggg!
Hallöchen.
Eventuell könnte ich helfen. Eprom´s und Brenner ( Galep ) sind
vorhanden.
Es würden nur die Selbstkosten entstehen. ( Eprom und Porto ).
Ich habe fast alle Eprom Speicherbausteine.
mfG
Dieter
Michael W. schrieb:> Dirk S. schrieb:>> Boah, das nervt!>> Nun läuft der ZX81+38 stabil mit 50 Hz an einem Mini-Display, aber ich>> schaffe nicht einmal das erste Level von Invaders :-(>>>> War das schon immer so schwierig?>> Ja! Und dabei hast Du einen Joystick (oder?) Versuche das mal mit der> Folientastatur des Originals... aarrrggg!
Der ZX-81plus38 (und plus35) verfügt über einen einzigartigen
DB9-Joystick-Anschluss, der Joystick-Bewegungen in "Tastendrücke", "5",
"6", "7" und "8" umwandelt. Der Feuerknopf erzeugt den Tastendruck "0".
. das ist kompatibel mit den meisten Action-Spielen.
Ich würde gerne hören, ob es richtig funktioniert. In jedem Fall
funktioniert es auf dem ZX-81plus35.
Ich bin aber auch gespannt, ob es besser spielt als mit der Tastatur.
Ich habe mir dazu passend ein kleines Gamepad gebaut, aber leider nutzt
gerade Invaders und alle weiteren Spiele die ich testweise geladen habe
(nur 3-4 Stück) immer eine andere Tastenbelegung.
Bei Invaders habe ich zwei Versionen AGS und Forward, die eine hätte die
richtige Tastenzuordnung, aber das p-file scheint nicht vollständig zu
sein.
Einen Joystick habe ich nicht. Vielleicht sollte ich mir einen
Competition Pro USB besorgen und die ganze Elektronik rausschmeißen :-)
Sofern der tatsächlich noch vier schöne Mikroschalter hat.
Dirk S. schrieb:> Ich habe mir dazu passend ein kleines Gamepad gebaut, aber leider nutzt> gerade Invaders und alle weiteren Spiele die ich testweise geladen habe> (nur 3-4 Stück) immer eine andere Tastenbelegung.>> Bei Invaders habe ich zwei Versionen AGS und Forward, die eine hätte die> richtige Tastenzuordnung, aber das p-file scheint nicht vollständig zu> sein.>> Einen Joystick habe ich nicht. Vielleicht sollte ich mir einen> Competition Pro USB besorgen und die ganze Elektronik rausschmeißen :-)> Sofern der tatsächlich noch vier schöne Mikroschalter hat.
Ja, aus diesem Grund haben Joysticks auf dem ZX81 nie wirklich Fuß
gefasst - zu viele Spiele hatten unterschiedlich Tastenbelegungen.
Dirk S. schrieb:> Bei Invaders habe ich zwei Versionen AGS und Forward, die eine hätte die> richtige Tastenzuordnung, aber das p-file scheint nicht vollständig zu> sein.
Mir hat immer die Version von OdysseyComputing am besten gefallen.
http://www.fruitcake.plus.com/Sinclair/ZX81/Archive/OdysseyComputing.htm
An der HGR kann man gut erkennen wie kompatibel der ULA-Nachbau
tatsächlich ist. Ich erinnere mich daran, dass ich sogar am
ZX97lite-Design von Godfather Wilf Rigter was ändern musste, weil bei
einigen Spielen der Zeilenzähler nicht zurückgesetzt wurde, sondern frei
durchlief. Und dieses freie Durchlaufen passt nur wenn er taktgenau der
Implementierung in der ULA entspricht.
(HGR, High Resolution Graphics, hat übrigens nichts mit HDMI und 4k zu
tun, sondern bedeutet nur dass man auf dem Bildschirm jedes Pixel
einzeln ansprechen kann. Heute ist das normal und jedes Pixel hat seinen
eigenen Shader auf der Graphikkarte, aber in den '80er war Blockgraphik
mit hartverdrahteten Zeichengeneratoren üblich.)
Leider läuft die Odyssey Variante nicht auf dem ZX81+38. Geladen habe
ich es direkt über den Tape Converter und die Signalqualität per Oszi
überwacht, aber sobald alle Daten im Zeddy sind hängt er sich auf.
Dafür läuft "Against the Elements". Mit etwas geflacker an den Kanten,
aber die Grafik ist schon nicht schlecht für den ZX81.
Ja, leider war es nicht möglich, die Tasten auszuwählen, die "gedrückt"
wurden, also musste ich Tasten auswählen, die Sinn machten, und nach
einigen Recherchen waren dies die Pfeile und die "Null" -Taste.
Aber hoffentlich kann ich an Ihren Worten erkennen, dass meine Schaltung
funktioniert und dass der Joystick tatsächlich die erwarteten
Tastenanschläge erzeugt?
In der Zwischenzeit habe ich den neuen Schaltplan und das neue Layout
(Revision 1.5) fast fertiggestellt. Ich werde alles erneut überprüfen
und dann den verbesserten Schaltplan hier veröffentlichen.
Ich habe die Kompatibilität mit verschiedenen "hochauflösenden" Lösungen
auf dem ZX-81 + 35 getestet und alles, was ich versucht habe, hat
funktioniert.
Zum Beispiel lief die ZX-81-Version von Manic Miner.
Die meisten "hochauflösenden" Lösungen verwenden einzelne Pixelzeilen,
die im Zeichensatz erscheinen und der Reihe von acht Pixeln mit der
gewünschten Form am ähnlichsten sind.
Dirk S. schrieb:> Leider läuft die Odyssey Variante nicht auf dem ZX81+38. Geladen habe> ich es direkt über den Tape Converter und die Signalqualität per Oszi> überwacht, aber sobald alle Daten im Zeddy sind hängt er sich auf.>
Wahrscheinlich benötigt diese "Demo" eine programmierbare
Zeichensatzerweiterung
> Dafür läuft "Against the Elements". Mit etwas geflacker an den Kanten,> aber die Grafik ist schon nicht schlecht für den ZX81.
Ich kannte dieses Spiel noch nicht, aber es ist brillant
Kann mir jemand sagen, ob die nachgeahmten schwarzen Ladestangen
funktionieren? Wie hier zu sehen is (ab 6:00)
https://www.youtube.com/watch?v=clmjQrG-UPg&t=440s
Leider funktioniert mein Zx81plus38 immer noch nicht und ich bin noch
auf der Fehlersuche.
Einen habe ich noch gefunden: Der Mittelanschluss am Jumper JP1 ist
nicht am Pin1 des U23A angeschlossen.
Es scheint der selbe Fehler wie schon beim EEPROM: die Pins 1 und 2 des
Jumpers sind verdreht.
Also bei mir funktioniert der +38 und der JP1 ist auch korrekt
verbunden.
Ich habe mir die Rev 1.4 Platine fertigen lassen.
Bei EPROM ist nichts falsch. Die Beschaltung ist für OTP oder
Fenster-EPROMs ausgelegt. Die EEPROMs haben ein abweichendes Pinout.
chris_ schrieb:> Einen habe ich noch gefunden: Der Mittelanschluss am Jumper JP1 ist> nicht am Pin1 des U23A angeschlossen.> Es scheint der selbe Fehler wie schon beim EEPROM: die Pins 1 und 2 des> Jumpers sind verdreht.
Ich sehe den Fehler mit JP1, aber es sei denn, Sie möchten Pin 1 von
U23A anstelle von A13 auf GND setzen, spielt es keine Rolle. Ich würde
nichts kratzen und es einfach so lassen, wie es ist.
Ich habe diesen Fehler bereits in Version 1.5 behoben, der bald
verfügbar sein wird. Wenn Sie es also nicht eilig haben, eine
Leiterplatte in die Hände zu bekommen, würde ich eine Weile auf Version
1.5 warten.
Dirk S. schrieb:> Also bei mir funktioniert der +38 und der JP1 ist auch korrekt> verbunden.> Ich habe mir die Rev 1.4 Platine fertigen lassen.>> Bei EPROM ist nichts falsch. Die Beschaltung ist für OTP oder> Fenster-EPROMs ausgelegt. Die EEPROMs haben ein abweichendes Pinout.
Stimmt, die 27C256 un 28C256 sind nahezu gleich.
Im version 1.5 hab ich est möglich gemacht pin 1 von +5V zu
unterbrechen, aber notwendig is das nicht. Es ist bereits möglich pin-27
auf +5V zu legen mit JP10.
Aber er stimmt das ich mijn klon nicht entworfen habe fur EEPROM's,
(electrically erasable electrically programmable ROM's) da OTP's (EPROMS
ohne glass Fenster)(27C256) viel preisgünstiger sind.
Auf Anfrage habe ich es nur möglich gemacht ein original-ROM zu
benutzen.
Hmm, der ist doch falsch?
Ich habe das doch eben durchgemessen. Allerdings Pin1 zu A13. Man sollte
halt nicht mal eben zwischendurch in den Keller, sondern in Ruhe machen
:-)
Der nächste Schritt ist eine PIO Platine und eine mit Relais.
Soul E. schrieb:> Heute ist das normal und jedes Pixel hat seinen> eigenen Shader auf der Graphikkarte, aber in den '80er war Blockgraphik> mit hartverdrahteten Zeichengeneratoren üblich.)
Richtig, ich habe den Artikel Semigraphics darüber im Februar 2011 in
Wikipedia geschrieben. Die kanonische Version davon ist das TRS-80
Model-1 mit seinen 2x3-Blockgrafiken.
Da der ZX-81 fast alles mit Software macht, kann ein intelligenter
Programmierer immer noch Tricks anwenden, um darüber hinwegzukommen.
Dirk S. schrieb:> Hmm, der ist doch falsch?> Ich habe das doch eben durchgemessen. Allerdings Pin1 zu A13. Man sollte> halt nicht mal eben zwischendurch in den Keller, sondern in Ruhe machen> :-)
Pin 1 befindet sich auf A13, wie es sein sollte, aber JP1 ist falsch
herum verdrahtet, es sei denn, Sie möchten JP1 konvertieren, was kein
Problem ist.
Das Lustige ist, dass ich diesen Fehler vor langer Zeit gesehen habe,
aber anscheinend habe ich vergessen, ihn zu beheben.
Mein nächster Schritt ist wahrscheinlich eine externe AY-3-8912 PSG.
Einige Programme erzeugen Sound mit einer ZON-kompatiblen PSG. wie die
"dancing demon".
Ich habe bereits ein PSG-Expander-Board für den ZX-81plus35 hergestellt.
(https://revspace.nl/Zon_ZX-81_Programmable_Sound_Generator_expansion_for_ZX81PLUS35).
Gestern habe ich festgestellt, dass das Umdrehen von A13 und A14 auch
beim ZX-81plus35 aufgetreten ist und daher ebenfalls korrigiert werden
muss.
In Version 1.5 habe ich den 9-V-Pin des Erweiterungssteckers nicht mehr
fest mit 5 V verknotet, sondern einen Jumper dazwischen gelegt. Sie
können diesen Jumper schließen, wenn 5 V am 9-V-Pin ausreichen, aber Sie
können auch ein externes 9-V-Netzteil anschließen . Keine Ahnung, für
welche Erweiterung dies benötigt wird, aber Sie wissen nie, wofür es gut
ist.
@chris: I removed all Jumpers (well except for JP5 and 6). Pin 27 of the
ROM is now connected to +5 V because I'm using, like you, a 28C256 with
4 copies of the ROM inside (I wasn't sure in the beginning about all
these jumpers). I'm pretty sure that it should work, in this
configuration with just one copy: it doesn't. Just one copy on the
lowest 8 k and it doesn't turn on, so no K. No nothing.
At least my programmer locks the EEPROMs after writing. Maybe you make
sure that it has 4 copies and that they are still intact.
Maybe you check around the '165 because the data comes there, just check
that after LD/nSH you see a train of pulses at pin 7 (or 9). That way I
found that the clock for the '74 was reversed. Follow the pixel line
somehow it gets corrupted.
I was able to load the Mazogs, I used the output of the computer and it
worked very well, I had to disconnect the video because the computer and
the monitor I use are on different wall sockets, (I already blew the USB
ports of my main computer this way...)
Hier ist wie versprochen der Debugger-Code.
Der Code ist noch etwas unaufgeräumt, weil in der Entwicklung. Es gibt
noch viele Ideen, die man darin umsetzen kann ...
Ich habe mal die Zeichnung von den Connektoren des ArduinoMegas und des
Zx81, die ich zum Löten benutzt habe.
I finished revision 1.5,The following changes were made:
schema als .PDF hier: https://revspace.nl/File:ZX81plus38rev1,5.png
(german translation below)
C1 and C2 of the crystal oscillator were lowered to 4.7pF
the signal n6.5M was removed, and flip/flop U18B was clocked with the
non inverted clock 6.5M
the removed inverter U21D was used to build a new WAIT generator circuit
in place of U18A, together with OR port U12B. the previous version did
not work mainly because of the flip/flop not working as a WAIT
generator. To be able to externally for the /WAIT signal low a resistor
R20 was placed in series with the nWAIT output.
The RCA PSG01546 plug had a wrong footprint, and so could only be place
180 degrees rotated (not that it would work if you did). I found a
replacement RCA plug that could be inserted, the CLIFF FC68391, and
updated the footprint for a perfect fit
on the expansion connector I had swapped A13 and A14, so I corrected it
also on the expansion connector JB1 pin 2 was tied to +5V, but this pin
was meant for +9V, so I put a jumper between +5V and this pin, so the
pin can be jumpered to +5V or tied to an external +9V source
The ROM socket was designed for an OTP (one time programmable, an EEPROM
without its glass erase window) and with wire links on the bottom you
could (re-jumper) by scratching a track and wiring between the other
pads the socket for the original ZX-81 ROM.
Some users asked if I could also support EEEPROMS, and although this was
already possible pin 1 (A14 on an EEEPROM) was tied permanently high, so
I made it that you could disconnect Pin 1, and tie it to something else,
like a switch.
i had created the option to invert the video with two jumpers JP5 and
JP6, but got the complaint that if you forgot to place these two jumpers
you would get no video, so I also pre-connected these two jumpers for
default white screen with black letters.
Its still possible to get a black screen with white letters, but you
have to scratch through the default pre-connects, and add a wire link
I got asked why the keyboard wires were not simply one strip of holes
with a 2.54mm pitch,but was deliberate, the previous version has three
extra holes for a power LED, and a reset button, ad I had removed these.
So I added three holes, and put all holes in the same raster. Its
possible to have a power LED on the keyboard now.
Jumper JP1 was wired "in reverse", but as A13 was correctly connected to
pin-1 of U23A that wasn't a problem
I enlarged the mounting hole bottom left, above the text "ZX81+38"two as
requested.
If you have a revision 1.4 PCB, you can get it working by doing three
things:
Use OTP's, not EEEPROMS (which are six times more expensive) and fill
the 32K rom with four copies of the ZX-81 BASIC.
Remove the output of the flip flop U28A, so that /WAIT is not driven,
and replace the WAIT circuit with either the two transistor improved
wait circuit from wilf ritger, or the wait circuit of revision 1.5 with
an inverter and OR port
disconnect U18B pin 11 (clk) from the inverted 6.5MHz clock, and tie it
to the non inverted 6.5MHz clock, closest point to connect to is pin 2
of the shift register 74LS165 (U9).
Now the clone should work.
auf deutsch:
Folgende Änderungen wurden vorgenommen:
C1 und C2 des Kristalloszillators wurden auf 4,7 pF abgesenkt
Das Signal n6.5M wurde entfernt und Flip / Flop U18B wurde mit dem nicht
invertierten Takt 6.5M getaktet
Der entfernte Wechselrichter U21D wurde verwendet, um anstelle von U18A
zusammen mit dem ODER-Anschluss U12B eine neue WAIT-Generatorschaltung
aufzubauen. Die vorherige Version funktionierte hauptsächlich nicht,
weil das Flip / Flop nicht als WAIT-Generator funktionierte. Um extern
für das / WAIT-Signal niedrig zu sein, wurde ein Widerstand R20 in Reihe
mit dem nWAIT-Ausgang geschaltet.
Der RCA PSG01546-Stecker hatte eine falsche Grundfläche und konnte daher
nur um 180 Grad gedreht platziert werden (nicht, dass dies funktionieren
würde, wenn Sie dies tun würden). Ich fand einen Ersatz-Cinch-Stecker,
der eingesteckt werden konnte, den CLIFF FC68391, und aktualisierte den
Platzbedarf für eine perfekte Passform
Am Erweiterungsstecker hatte ich A13 und A14 vertauscht, also habe ich
es korrigiert
Auch am Erweiterungsstecker war JB1 Pin 2 an + 5V gebunden, aber dieser
Pin war für + 9V gedacht, also habe ich einen Jumper zwischen + 5V und
diesen Pin gelegt, damit der Pin auf + 5V überbrückt oder an ein
externes + gebunden werden kann 9V Quelle
Der ROM-Sockel wurde für ein OTP (einmal programmierbar, ein EEPROM ohne
Glaslöschfenster) entwickelt. Mit Kabelverbindungen an der Unterseite
können Sie (neu überbrücken), indem Sie eine Spur zerkratzen und
zwischen den anderen Pads den Sockel für das Original verkabeln ZX-81
ROM.
Einige Benutzer fragten, ob ich auch EEEPROMS unterstützen könnte, und
obwohl dies bereits möglich war, war Pin 1 (A14 auf einem EEEPROM)
dauerhaft hoch gebunden, sodass ich Pin 1 trennen und an etwas anderes,
wie einen Schalter, binden konnte .
Ich hatte die Option erstellt, das Video mit zwei Jumpern JP5 und JP6 zu
invertieren, bekam aber die Beschwerde, dass Sie kein Video erhalten
würden, wenn Sie vergessen würden, diese beiden Jumper zu platzieren.
Deshalb habe ich diese beiden Jumper für den weißen Standardbildschirm
mit Schwarz vorab angeschlossen Briefe.
Es ist immer noch möglich, einen schwarzen Bildschirm mit weißen
Buchstaben zu erhalten, aber Sie müssen die Standardvorverbindungen
durchkratzen und eine Kabelverbindung hinzufügen
Ich wurde gefragt, warum die Tastaturkabel nicht einfach ein
Lochstreifen mit einem Abstand von 2,54 mm waren, sondern absichtlich,
die vorherige Version hat drei zusätzliche Löcher für eine Power-LED und
einen Reset-Knopf, und ich hatte diese entfernt. Also habe ich drei
Löcher hinzugefügt und alle Löcher in dasselbe Raster gesteckt. Es ist
jetzt möglich, eine Power-LED auf der Tastatur zu haben.
Ich habe das Befestigungsloch unten links über dem Text "ZX81 + 38" wie
gewünscht vergrößert.
Wenn Sie eine Revision 1.4-Platine haben, können Sie diese zum Laufen
bringen, indem Sie drei Dinge tun:
Verwenden Sie OTPs, nicht EEEPROMS (die sechsmal teurer sind) und füllen
Sie die 32K-ROM mit vier Kopien des ZX-81 BASIC.
Entfernen Sie den Ausgang des Flip-Flops U28A, damit / WAIT nicht
angesteuert wird.
und ersetzen Sie die WAIT-Schaltung entweder durch die mit zwei
Transistoren verbesserte Warteschaltung von Wilf Ritger oder durch die
Warteschaltung von Revision 1.5 mit einem Wechselrichter und einem
ODER-Anschluss
Trennen Sie U18B Pin 11 (clk) vom invertierten 6,5-MHz-Takt und binden
Sie ihn an den nicht invertierten 6,5-MHz-Takt. Der nächstgelegene
Verbindungspunkt ist Pin 2 des Schieberegisters 74LS165 (U9).
Der Jumper JP1 wurde "in umgekehrter Richtung" verdrahtet, aber da A13
korrekt an Pin-1 von U23A angeschlossen war, war dies kein Problem
Jetzt sollte der Klon funktionieren.
schematic als .pdf hier:
https://revspace.nl/File:ZX81plus38rev1,5.png
Habe ich an alles gedacht???
Nochmal zurück zu den Platinenverbindern um den originalen Slot
verwenden zu können.
Hat irgendjemand eine sinnvolle Quelle für passende Buchsen?
Ich habe gerade bei e... nach alten Mainboards geschaut um ISA-Slots
auszulöten, aber die kosten alle richtig viel Geld. Eigentlich brauche
ich nur einen um mir dann eine Busplatine anzufertigen.
Alternativ mache ich das über den Pinheader und Flachbandkabel.
Dirk S. schrieb:> Alternativ mache ich das über den Pinheader und Flachbandkabel.
Wenn Du nicht historische Originalhardware anschließen willst oder mit
dem Platz im originalen ZX81-Gehäuse auskommen musst, dann mach das so.
Diesen Direktstecker tat man sich damals(tm) nur an weil es nichts
anderes gab.
RAMpak wobble, also der Absturz des Rechners beim Anstupsen der
16k-Erweiterung, wird ja von EightyOne sogar mit emuliert :-)
@Rap
Lieber Alex,
Als Antwort auf Ihre E-Mail-Anfrage, bearbeitbare Schaltplan- und
Layoutdateien (d. h. die ursprünglichen KiCad-Dateien) wie bei
ZX-81plus35 auf github abzulegen, gilt Folgendes:
Ich bin fast fertig mit der verbesserten Version 1.5, möchte aber
trotzdem das Layout (auf Layoutverletzungen) testen, indem ich es auf
einen Leiterplattenhersteller hochlade. Sie können den .PDF-Schaltplan
bereits unter revspace.nl herunterladen, aber ich möchte KiCad-Dateien
(Schaltplan und Layout) nur freigeben, wenn ich weiß, dass das Design
wie erwartet funktioniert, und daher hat jemand eine rev1.5-Platine und
erstellt geprüft. Ich gebe Gerber-Dateien frei, wenn eine andere Person
als ich den Schaltplan überprüft hat und sagt, dass meine hier
beschriebenen Korrekturen korrekt sind. Ich möchte nicht, dass
fehlerhafte KiCad-Dateien in Umlauf gebracht werden.
Dirk S. schrieb:> Nochmal zurück zu den Platinenverbindern um den originalen Slot> verwenden zu können.>> Hat irgendjemand eine sinnvolle Quelle für passende Buchsen?>> Ich habe gerade bei e... nach alten Mainboards geschaut um ISA-Slots> auszulöten, aber die kosten alle richtig viel Geld. Eigentlich brauche> ich nur einen um mir dann eine Busplatine anzufertigen.>> Alternativ mache ich das über den Pinheader und Flachbandkabel.
perhaps here?
https://nl.farnell.com/amp-te-connectivity/5530843-5/card-edge-conn-dual-side-50pos/dp/2668415
Wie früher gesagt, das Spiel Mazogs geht ganz gut.
Ich hab ein Alloy Composite -> VGA Wandler gekauft (~ 23 €), das Bild
ist so grau und unscharf. Auf dem Vernseher ist das Bild viel besser,
weiss ist weiss und die Konturen sind scharf. So mit der Wandler sieht
enlich wie damals :)
Ich bin von dem ZX81+38 sehr begeistert. Ich muss diese fliegende Drähte
schön machen und dann die CHerry Tastatur, mir ist "autentizität"
Wurscht. Es ist so-wie-so nicht ein "Original", habe kein Rohr TV mehr,
bin nicht mehr 10 und wir sind nicht mehr in der 80s.... Ich will noch
daß es Programmen von einer SD-Karte oder CF laden kann, ich werde
nehmen was einfacher ist.
Ich sah schon beim NES dass kein ESD-Schutz am FBAS-Ausgang verwendet
wurde. Sind die Ausgangs-Transistoren so robust an ihrem Emitter dass
ihnen eine Entladung nichts ausmacht ?
Hier der Testaufbau mit Tastatur. Mittlerweile läuft er endlich.
Die Fehersuche war ziemlich mühselig und der Fehler fast schon einfach:
Das Und-Gatter U24 war ein HC Typ statt ein HCT.
Die Tastatur zu löten hat auch etwas Zeit in Anspruch genommen: Ich
schätze so zwischen 2-3 Stunden.
chris_ schrieb:> Hier der Testaufbau mit Tastatur. Mittlerweile läuft er endlich.> Die Fehersuche war ziemlich mühselig und der Fehler fast schon einfach:> Das Und-Gatter U24 war ein HC Typ statt ein HCT.> Die Tastatur zu löten hat auch etwas Zeit in Anspruch genommen: Ich> schätze so zwischen 2-3 Stunden.
schön zu hören, dass es funktioniert.
U24 im Schaltplan und in der Teileliste gibt einen 74LS08 an, aber
tatsächlich wird wahrscheinlich auch ein HCT08 funktionieren.
Sie können die Tastatur an die Lochplatine anschließen, aber im
Abschnitt ZX-81 + 35 befindet sich jedoch auch eine Tastatur
Leiterplatte, die mit dem ZX-81 + 38 kompatibel ist.
Sie finden auch eine Papierauflage mit Löchern, die genau über die
Griffbrettenden passen.
@Chris ! Fantastisch zu lesen daß es mit deinem ZX81+39 auch geklappt
hat !
Hier die Cherry Tastatur, ich werde 5 Platinen fertigen lassen. Muss
zuerst es drucken und gucken ob die Spacebar wirklig passt...
Welche Tasten benutzt ihr denn für die Cherry-Tastatur?
Schlachtet ihr dafür irgendein bestimmtes Keyboard, oder gibt es die
Tasten einzeln zu vernünftigen Preisen?
Anbei die Tastatur, passend für Martin's "Tastenfeld", als Eagle
Dateien. Ich habe mir dafür eine Platine gefräst.
Den Schaltplan 1.5 habe ich mir ausgedruckt, aber noch nicht
zusammengeklebt und geprüft.
Ale
>Hier die Cherry Tastatur, ich werde 5 Platinen fertigen lassen. Muss>zuerst es drucken und gucken ob die Spacebar wirklig passt...
Kann es sein, dass das Layout auf dem Kopf steht? Müssten die Anschlüsse
nicht gegenüber der Space-Bar sein?
Dirk S. (fusebit)
>Ich habe mir dafür eine Platine gefräst.
Da hätte ich mir die 3 Stunden Arbeit vielleicht sparen können. Ich habe
eine kleine CNC3020, die ich noch nie wirklich benutzt habe. Könnte ich
vielleicht damit die Platine mit Deinen G-Code Daten fräsen?
Mittlerweile bastle ich noch ein wenig an der Debuggersoftware und habe
den Zeichencode von Ascii auf den Zx81 Code angepasst.
Man sieht im Sreenshot den Dump des E-Line Bereichs und der untersten
Zeile im Bildschirm. Die unterste Zeile im Schirm zeigt schon den vom
Basic-Interpreter interpretierten Code.
Eigentlich wollte ich mir das Laden über den Soundanschluss sparen und
einfach das RAM direkt beschreiben. Dazu habe ich mir die Save-Routine
des Zx81 angesehen. Ich meine, dass dort einfach der Bereich von 0x4009
( Version Number ) bis zu E-Line gespeichert wird. Das ist inclusive des
Bildspeichers. Dies ist von Nachteil bei großem RAM weil dann die
Soundfiles immer 768 Bytes Bildspeicherlänge beinhalten.
Leider funktioniert die Routine unten nicht ganz. Man kann zwar den
Speicher lesen und später wieder 'laden' und das Programm wird auch
korrekt auf dem Schirm angezeigt, aber das Basic scheint abzustürzen.
Hat jemand eine Idee, wie ich per direktem Speicher schreiben das
Programm da rein kriege?
1
if(c=='s')// save
2
{
3
uint16_tversn=0x4009;// VERSN ( Version Number of Zx81 Software )
4
uint16_teline=Zx81_readMemory_u16(0x4014);// pointer to E_line line beeing typed
Ich kann Dir gerne die nc-files zur Verfügung stellen.
Aber die sind natürlich an die Parameterformate meiner Stepcraft
angepasst und daher kann es sein, dass Deine Fräse dann sehr merkwürdige
Dinge macht (z.B. sind die Einheiten für den Vorschub und Vorzeichen der
Achsenrichtung nicht Bestandteil der G-Code Dateien).
Ich habe weiter oben die falsche Revision angehängt!
Hier ist die Rev B, da passt das Layout.
Dirk S. (fusebit)
>Ich kann Dir gerne die nc-files zur Verfügung stellen.
Danke für die Files. Die Positionen im G-Code müssten eigentlich passen
und die Geschwindigkeit kann ich ändern. Ich weiß nur nicht, ob meine
billige CNC3020 für so was geeignet ist. Ich werde es wahrscheinlich
nächstes Wochenende mal ausprobieren.
Ale
>I'll do a kind of breakout for the debugger using that ATMega2560 board,>as proposed by Chris. I'll add a couple extra components to connect a CF>card in 8 bit mode, too. Like in the picture.
Im Bild oben sieht man, wie die Wait-Schaltung für's Debugging beim
4ChipZ80 realisiert ist. Dort gibt es auch ein paar Leuchtdioden, die
den Betriebszustand anzeigen, was auch sehr nützlich sein kann.
https://github.com/WestfW/4chipZ80
Hier gibt es einen C-Compiler und Assembler, der wohl für relativ viele
Z80 Systeme geeignet ist.
Ein paar wenige Codebeispiele für den Zx81 sind auch dabei.
https://github.com/z88dk/z88dk
Moin,
ich bin mal den Rev 1.5 Schaltplan durchgegangen und soweit ich das sehe
sind alle Änderungen umgesetzt. Nun bin ich auf das neue Layout gespannt
:-)
I have uploaded gerber and drill files for revision 1.5 to my GitHub
page
also see the attached layout pictures.
the BOM has not changed, except that the Video connector is now a CLIFF
FC68391.
Ich hätte gerne einen Debug Port :)
Ich hätte gerne eine Platine v 1.5. Wir können gemainsam Bestellen. Ich
werde zwischem WE und anfang nächste Woche Platinen bestellen, könnte
auch diese....
@Martin: has du die Platine+Chips gekriegt?
Alex P. schrieb:> @Martin: has du die Platine+Chips gekriegt?
Ja! eine schöne rote Platine. Nochmals vielen Dank.
Ich habe auch eine Tasche mit DIP-ICs erhalten, was sehr schön ist.
Es ist eine Schade, dass sich Revspace im Quarantänemodus befindet, und
ich fühle mich auch nicht so stark, aber ich werde bald anfangen,
vielleicht schon an diesem Wochenende. Ich habe jetzt zwei grüne
Leiterplatten und Ihre rote, einen 13-MHz-Kristall und einige ICs, ich
werde sehen, was ich hier habe, ich habe definitiv einen Z80 und
hoffentlich auch einige OTPs, und auf RevSpace haben wir einen Minipro
EPROM-Programmierer (Ich muss noch sehen, ob ich Minipro-Software auf
meinem Laptop habe) und wahrscheinlich genug IC-Sockel.
Ich glaube auch, dass ich Audioanschlüsse aus einem früheren Projekt und
möglicherweise einen verwendbaren Videoanschluss (RCA) habe.
Ich werde damit arbeiten, eine kleine Bewegung ist genau das, was ich
brauche.
Alex P. schrieb:> Ich hätte gerne einen Debug Port :)> Ich hätte gerne eine Platine v 1.5. Wir können gemainsam Bestellen. Ich> werde zwischem WE und anfang nächste Woche Platinen bestellen, könnte> auch diese....
Hast eine PN.
>Besteht Interesse ein paar Rev 1.5 Platinen gemeinsam zu bestellen,
Grundsätzlich eine gute Idee, aber auf der Platine sind ja keine so
großen Änderungen gegenüber der 1.4.
Meiner Meinung nach fehlen eher ein paar Erweiterungen auf dem
Zx81puls38:
1. Das EEPROM sollte voll addressiert ( alle 32K ) werden können
2. Das EEPROM sollte auch geschrieben werden können ( zur Not mit einem
Schutz für den Systembereich ). Dann könnte man den Zx81 auch als
Stand-Alone Geräte nutzen und könnte die Software ( e.g. Spiele ) aus
dem Speicher starten.
Heute Morgen habe ich mir eine Tasturbeschriftung gedruckt, in eine
Klarsichthülle gesteckt und mit Tesa angeklebt. Das Funktioniert gar
nicht schlecht. Der Druckpunkt fühlt sich damit besser an, als wenn man
direkt auf die kleinen Tastenkappen drückt. Leider ist die Tastatur
etwas nach oben verbogen, weil sie sich durch das Löten auf der
Billig-Lochrasterplatine eine Art Bauch nach oben gebildet hat.
Das Drucken war nicht so einfach, weil die Größe der Keyboard-Vorlage
https://revspace.nl/File:Nieuw_keyboard_ZX14.pdf
einfach nicht mit den richtigen Maßen aus meinem Drucker kam. Außerdem
hat die Vorlage angedeutet Kreise für die Tastendurchbohrungen, was ich
bei meinem Klarsichtüllenverfahren ja nicht brauche.
Ich habe eventuell noch einen Fehler gefunden.
Bei mir trat sporadisch das Problem auf, dass ich kein Semikolon tippen
konnte. Da ich für die Pull-ups RP1 10k statt 4,7k eingelötet hatte
(steht so in der BOM, die 4,7k stehen im Plan) habe ich die getasucht um
zu sehen ob es besser wird. Allerdings funktionierten dann die linken
unteren Tasten überhaupt nicht mehr. Beim weiteren prüfen ist mir dann
aufgefallen, dass dieser Block auf A8' geht. Alle anderen gehen direkt
auf die Adresspins, da es nur bis A8 die 1k (R1 bis R9) Widerstände
gibt.
Also habe ich mal von der Diode zum A8 (CPU Pin 38) gebrückt und schon
funktioniert die Tastatur ohne Probleme.
Man sollte wohl alles bombenfest machen, denn bei meinem Bastelrechner
fing nach einiger Zeit das Display an zu flackern weil so ein
Steckverbinder wackelte wenn ich eine Taste drückte.
>Also habe ich mal von der Diode zum A8 (CPU Pin 38) gebrückt und schon>funktioniert die Tastatur ohne Probleme.
Damit wirst Du dann vermutlich einen Kurzschluss erzeugen können wenn Du
zwei Tasten gleichzeitig drückst, A8 High und einige der anderen
Adresspins Low sind.
Da habe ich mich wohl missverständlich ausgedrückt.
Ich habe nicht die Diode überbrückt, sondern auf der Kathodenseite der
D6 die Leiterbahn unterbrochen und mit einem Draht an CPU Pin 38
gelötet. Also nur den R1 für die Tastatur überbrückt.
>Da habe ich mich wohl missverständlich ausgedrückt.
Da habe ich Dich missverstanden.
Kann es sein, dass die Adressleitungswiderstände R1-R9 dazu da sind,
dass das Video-Adressgenerator-Latch die Adressleitungen des Prozessors
überschreiben kann, um den Zeichensatz im ROM zu adressieren?
Wenn man den Widerstand R1 überbrückt, wird wahrscheinlich die
Adressleitung A8 der CPU vom Latch beim Videozugriff etwas gequält. Es
könnte aber sein, dass das sonst nirgends sichtbar ist.
Deshalb habe ich auch nicht einfach den Widerstand raus genommen,
sondern nur den Pin 6 der Tastatur direkt an die CPU gehängt. Jedenfalls
funktioniert bei mir nur so die Tastatur ohne Aussetzer.
>Deshalb habe ich auch nicht einfach den Widerstand raus genommen,>sondern nur den Pin 6 der Tastatur direkt an die CPU gehängt.
Hmm ... OK. Bei mir habe ich noch kein Problem mit der Tastatur
festgestellt, aber ich habe das Semikolon auch noch nicht gebraucht.
Ich habe einen IntelHexFile Interpreter in den Debugger eingebaut, so
dass man das Hex-File aus dem Online-Assembler per Copy und Paste ins
serielle Terminal posten kann.
Ich kompiliere den Code auf die Adresse 18000, so dass ich den Code im
Zx81 durch eintippen von
RAND USR 18000
starten kann.
Eigentlich sollte die Routine einen kurzen Beep erzeugen, aber es ergibt
sich ein Dauerton und die Routine wird scheinbar nicht beendet.
Liegt es an meinem Code oder am Debugger?
>Deshalb habe ich auch nicht einfach den Widerstand raus genommen,>sondern nur den Pin 6 der Tastatur direkt an die CPU gehängt. Jedenfalls>funktioniert bei mir nur so die Tastatur ohne Aussetzer.
Ich denke, Du hast Recht. Die Diode D6 muss nicht an A8' sondern an A8
angeschlossen sein.
Ich stimme zu! Auch im ZX-81 Originalschema ist die Tastatur nicht mit
A8', sondern mit A8 verbunden.
Bei meinem älteren ZX-81+35 ist es auch falsch.
Es ist sinnvoll, dass die A8-Tastaturleitung nicht durch einen
10K-Widerstand verläuft, da sonst das Kyboard-Signal nur um etwa die
Hälfte abfallen kann.
Ich werde es in Version 1.6 korrigieren.
Danke für den Tipp!
>Ich stimme zu!
Der Fehler scheint tatsächlich schwerwiegend.
Ich wollte gerade ein wenig BASIC programmieren. Sobald man zwei Tasten
im linken unteren Tastenfeld ( Shift,Z,X,C,V ) gleichzeitig drückt,
stürzt der Zx81 ab.
Der Fehler wurde bereits in Version 1.6 behoben.
Die Gerber- und Drill-Dateien sowie der Schaltplan sind bereits auf
github zu finden.
Siehe Revision 1.6
Der Zeitplan befindet sich auch im Revspace sowie in Screenshots der
oberen und unteren Vorschau.
Es ist wahr, dass dieser Fehler diese tasten betrifft (sehe ZX-81
shaltplan). Aufgrund der 10 KB zwischen der ZX80-Adressleitung können
kleine Leckströme bereits das beeinflussen, was der ROM als A8 "sieht".
Sie können dies beheben, indem Sie die Oberseite der Diode A6 entfernen
und sie mit einem Patchkabel an der linken Seite von R1 (oder dem
entsprechenden Z80-Pin) anschließen.
oder mithilfe der PCB-Version 1.6.
Ich denke, in der Vergangenheit wurde dieser Fehler nicht bemerkt, weil
ich 4,7K Widerstände für die Vorwiderstände und damit für R1 verwendet
habe.
in jedem Fall ich habe noch nie einen Absturz mit dem ZX-81 + 35 erlebt
Jetzt bin ich langsam etwas verwirrt, welche Werte die Widerstände nun
haben sollen.
Die Adressleitungs-R sind mit 1k im Plan und auf der Platine angegeben,
nun schreibst Du etwas von 10k.
Am Tastaturanschluss sind 4k7 im Plan und 10k in der (1.4) BOM.
Bei mir habe ich für R1-R8 1000R und RP1 war zuerst 10k. In der
Konfiguration funktionierte der ZX81 weitgehend. Nur klappte es nicht
immer mit dem Semikolon, weil dann zwei Tasten im unteren, linken Block
gedrückt werden.
Nachdem ich RP1 auf 4,7k geändert hatte, ergab sich das Verhalten wie
chris_ es beschreibt. Bei zwei Tasten gleichzeitig stürzt der ZX81 ab.
Mit den gleichen R-Werten, aber einer direkten Verbindung von D6 zu Pin
38 der CPU funktioniert es einwandfrei.
Nachdem ich den Tastaturfehler ( D6,A8 ) behoben habe, funktioniert der
Zx81plus38' einwandfrei ;-)
Ich kann auf dem Gerät programmieren und bin erstaunt, wie gut sich mit
dem Basic Editor arbeiten lässt. Ich habe damit ja 35 Jahre lang nicht
mehr gemacht und es vergessen.
Eigentlich hätte ich das Gerät ja nicht gebaut, wenn ich die Bauteile
nicht geschenkt bekommen hätte. Jetzt stelle ich aber fest, dass es
einen deutlichen Unterschied macht, ob man einen Zx81 bedient oder einen
Emulator am PC. Das Bediengefühl ist einfach nicht das Gleiche, alleine
schon aus dem Grund, weil die PC-Tastatur keine Zx81 Tastatur ist.
Es ist aber auch erstaunlich, wie langsam das Basic des Zx81 ist. Ich
habe ein Testprogramm gemacht, dass zufällig Sternchen auf dem
Bildschirm zeichnet:
1
10 LET X=RND*21
2
20 LET Y=RND*31
3
30 PRINT AT X,Y;"*"
4
40 GOTO 10
Die Rate Print-Rate dürfte so bei 2Hz liegen ...
( Der Code ist ein direkter ScreenShot mit dem Debugger )
In der Zx81 Zeit habe ich ein Spiel programmiert "MonsterCrash", das auf
dem 2KByte Zx81 lief. Leider finde ich die Kassette dazu nicht mehr und
muss es deshalb aus dem Gedächtnis nachprogrammieren. Mal sehen ... wenn
ich Zeit finde :-)
chris_ schrieb:> Nachtrag: Die Addresswiderstände sind bei mir 1K und die> Tastaturwiderstände 4k7
Okay, ich habe alles noch einmal überprüft und mit der ursprünglichen
ZX-81-Situation verglichen, und meine Variante ist fast die gleiche wie
die ursprüngliche, nur bei mir sind die Vorwiderstände des Datenbusses
die gleichen wie der Adressbus, nämlich 1K, während die Widerstände in
der Der Datenbus mit dem ursprünglichen ZX-81 beträgt 470 Ohm.
Die Tastaturmatrix-Pullups sind bei mir original 4K7, aber beim Original
sind die Tastatur-Pullups nicht 4K7, sondern 10K, was für die Logikpegel
etwas besser ist, aber 4K7 ist anscheinend gut genug. das erklart warum
möglicherweise nicht A8, sondern tatsächlich A8' verwendet wurde. Das
war NICHT falsch! Nur ein 1K- und 10K-Widerstandsteiler hat keine
schwerwiegenden Auswirkungen auf die Logikpegel, und das gleichzeitige
Drücken von zwei Tasten führt bei A8' nicht zu einem ungültigen
Logikpegel.
Fazit:
Die Verbindung von A8' zu D6 war NICHT falsch, da sie im Original auch
so verbunden war, aber ich werde meine Korrektur nicht rückgängig
machen.
Die Widerstände der Address-Serie müssen 1K betragen, genau wie beim
ZX-81-Original, also ist das richtig.
Die Tastatur-Pullup-Widerstände müssen 10K betragen, was nicht auf der
Leiterplatte angegeben ist, aber der Schaltplan gibt fälschlicherweise
4K7 und die Stückliste korrekt 10K an. Ich werde den Schaltplan
korrigieren. Obwohl bei Verwendung von A8 anstelle von A8' die Tastatur
keine Rolle spielt (da keine Widerstandsteilung stattfindet)
Wenn Sie eine Revision 1.4-Platine verwenden, müssen Sie KEIN Patchkabel
verwenden, um A8 mit D6 zu verbinden. Sie müssen nur 10K-Pullups für
RP1- und 1K-Adresswiderstände verwenden.
Meine Erfahrung ist etwas anders:
Ich hatte zu Beginn die Rev 1.4 mit 10k RP1 und 1k R1 - R9 aufgebaut und
die Tastatur hat sporadische Fehler verursacht. So funktionierten die
über shift zugänglichen Zeichen im unteren, linken Block nicht
zuverlässig und es gab gelegentlich ein Absturz bei der Verwendung der
shift-Taste. Möglicherweise wurde dies durch das etwa 20 cm lange
Flachbandkabel zum Anschluss der Tastatur begünstigt, aber mit der
Änderung auf A8 funktioniert es nun ganz ohne Störungen.
Daher finde ich es gut, dass Du die Änderung in der Rev 1.6 beibehältst.
Das scheint für ein Bastelsystem die stabilere Version zu sein.
Ich hab die Platinen zur Fertigung geschuckt. Eine "Debug" Platine wie
Chris vorgestellt hat habe ich auch geschickt, zusammen mit eine
Tastaturplatine für Cherry MX Tasten, oder änlich. Gucken wir. Ich
wollte es nicht verlangsamen und habe alle in Grün bestellt.
Tja, ich will es mit einem echten Audiosignal probieren.
Leider scheinen die Pegel nicht zu stimmen.
Das Signal an U6 Pin13 ist viel zu hoch.
Als Audioquelle nehme ich das Signal von Audacity welches ich vorher mit
dem Zx81plus38 aufgenommen habe.
Zugegebenermaßen habe ich einen BC547C als Transistor, aber eigentlich
sollten die Spannungsteiler das ausgleichen, meine ich.
Am Anfang habe ich die Audiofunktion zum Laden und Speichern mit einem
MP3 Diktiergerät benutzt. Das hat einwandfrei funktioniert, nachdem ich
einen kleinen Vorverstärker eingeschleift hatte.
Dirk
Da den Reihenwiderstand R59 verkleinert habe, habe ich in diesem Versuch
den Koppelkondensator C3 von 4.7 mit einem parallegeschalteten 22nF
Kondensator versehen. Die Idee: die Ladung sollte jetzt für längere
Digitalpulse reichen.
Aber leider haut das nicht hin: Der erste Puls eines Impulszuges kommt
gut durch und danach ist der Kondensator zu leer.
@Majong: In Deinem Blog schreibst Du, dass der Zx81 4 Pulse für LOW und
8 Pulse für HIGH verwendet. Wie man in den Bildern sieht, ist das
falsch. Richtig ist:
LOW: 4 Pulse
HIGH: 9 Pulse
Hi chris,
ich verstehe Dein Problem nicht.
Funktioniert das Laden und Speichern bei Dir nicht?
Bei mir klappt das einwandfrei, solange die Pegel hoch genug sind und
das schaffe ich nicht mit Kopfhörerausgängen alleine. Aber die
Signalerkennung klappt prima, der ZX-WESPI arbeitet ja auch komplett mit
der Audio-Schnittstelle.
>Die t.wav Datei lädt bei mir gut:
Super, ich bin begeister. Endlich jemand, der es probiert hat :-)
>ich verstehe Dein Problem nicht.>Funktioniert das Laden und Speichern bei Dir nicht?
Damit hat Ale die Frage beantwortet, ob das Speichern bei mir
funktioniert.
Das Speichern von Audiodaten hat bei mir eine längere Historie. In
meiner Zx81 Zeit ( 1982-1984 ) hat das Speichern eigentlich nur auf
einem der Kassettenrecorder gut funktioniert. Es war ein flacher, auf
dem Tisch liegender Kassettenrecorder, wie er heute noch in manchen
Schulen verwendet wird ( Ich meine, es war ein Universum, so ähnlich wie
in dem Bild ).
Mit meinem Zx81 hatte ich einen eigenen kleine Z80 Computer entwickelt,
dessen Bild ich hier schon gezeigt hatte:
https://www.mikrocontroller.net/attachment/472355/CH1_ComputerMainBoad.png
Weil ich dort auch Daten speichern können wollte, habe ich ein serielles
Interface ( 6850 ACIA chip MC6850 Asynchronous Communications Interface
Adapter (ACIA) (24pin) ) und ein Z80CTC gebaut um damit die
Audio-Interface-Schaltung ansteuern zu können. Die Schaltung des
Interfaces war vermutlich irgendwo in der Zeitschrift ELRAD beschrieben,
die es heute ja leider nicht mehr gibt.
Da ich mir als Schüler kein Oszilloskop leisten konnte, muss ich immer
versuchen, aus den Ausgaben der Software, die ich auf dem Blatt in
Assembler geschrieben und den handübersetzten Hex-Code dann in den
Computer eingegeben hatte, auf die Funktion der Schnittstelle zu
schließen.
Leider ist es mir damals nie gelungen, Daten zuverlässig auf die
Kassetten zu speichern. Deshalb möchte ich das jetzt knapp 40 Jahre
später mal genauer untersuchen.
Der ZXWespi ist genial, ich muss es nur doppel versorgen, diese USB Zeug
gibt zu wenig Strom.
Beide Verbindungen, EAR und nVSYNC sind nötig, sonst geht nicht.
Chris schrieb:
> Das Speichern von Audiodaten hat bei mir eine längere Historie. In> meiner Zx81 Zeit ( 1982-1984 ) hat das Speichern eigentlich nur auf> einem der Kassettenrecorder gut funktioniert. Es war ein flacher, auf> dem Tisch liegender Kassettenrecorder, wie er heute noch in manchen> Schulen verwendet wird ( Ich meine, es war ein Universum, so ähnlich wie> in dem Bild ).
So enen Kassetenrekorder habe ich auch gehabt, meine war eine der Marke
"Vitatone", wenn ich mich nicht irre. Nur mit der hat es funktioniert,
wir hatten damals nur die, später hatten wir einen anderen mit mehr
"Funktionen" ging aber nicht mehr.
Der ZXWespi hat "fast load", genial !
Hi Ale,
es ist sehr wichtig am ESP noch einen Elko zu haben um den pulsierenden
Strombedarf zu glätten. Ich habe da einen 100µF und mein ZX81+38 braucht
mit ZX-WESPI und PIO-Karte keine 250 mA und wird nur über die USB-Buchse
versorgt.
chris_ schrieb:> So sehen die Audio-Input-Signale im Moment aus.> R59: 4k7> Q9: BC547C
Ich habe mir das Schema meines ursprünglichen Klons ZX-81+35 angesehen
und es gibt R59 10K, also habe ich damit die besten Ergebnisse erzielt.
Wie viele Impulse erzeugt werden, ist für den ZX-81 nicht sehr relevant,
da es anscheinend keine Rolle spielt.
>Ich habe mir das Schema meines ursprünglichen Klons ZX-81+35 angesehen>und es gibt R59 10K,
Mittlerweile konnte ich das Testprogramm "t.wav" zum ersten mal laden
und ausführen.
Meine Beobachtungen:
Wenn man nicht "load" eingetippt hat, zeigt der Zx81plus38 die
gewünschten Streifen auf dem Bildschirm, wenn Audiodaten vorhanden sind.
Wenn man aber "load" eingetippt hat, werden keine Streifen mehr gezeigt,
man sieht nicht was passiert und muss warten, bis das Programm wirklich
fertig geladen ist. Wenn alles geklappt hat, steht auf dem Bildschirm
rechts unten 0/0 . Man kann dan mit "list" das Programm anschauen und
mit "run" laufen lassen.
Meine Schaltung hat jetzt einen Eingangswiderstand von 4.7k und einen
2N3904.
Der BC547 hat scheinbar einen defekt. Der Transistortester zeigt
HFE=639, was mir extrem hoch erscheint. Der Ausgang der Schaltung war im
Grundzustand auf HIGH ( Anschluss nCAS_IN ), was bei der Zx81 Software
dazu führt, dass sie hängen bleibt und die Break-Taste nicht abgefragt
wird. Diese wird nur abgefragt, wenn nCAS_IN auf LOW ist.
Das Ganze konnte ich mit dem ArduinoMega-Debugger raus finden, weil ich
das SingleStep-FlipFlop eingebaut habe und so in Einzelschritten sehen
konnte, wo der Prozessor gerade steht.
Die Kassettenleseroutine des ZX-81 erwartet, dass während der Leerlauf
nCAS_IN niedrig ist und die Impulse hoch gehen.
Dies so sollte die Funktion der Transistorschaltung sein, die im
Leerlauf niedrig ist und hohe Impulse mit aktivem Signal liefert. Nach
dem, was ich gelesen habe, zählt der Z80 nicht die Anzahl der hoch
laufenden Impulse, sondern bestimmt, ob eine Impulsfolge ein '0'- oder
ein' 1'-Bit ist, indem er die gesamte Hochzeit einer Impulsfolge
bestimmt, und Damit bestimmt er, ob es sich um eine kurze oder eine
lange Impulsfolge handelt.
Ich sehe eine weitere Abweichung von den Komponentenwerten im
Eingangsverstärker ZX-81 + 38, nämlich dass der Kondensator C7 über dem
Eingang (parallel zum 1K-Widerstand R58) beim ZX81+38 47 nF und beim
Original nur 47 pF beträgt.
Ich würde versuchen, ob das einen Unterschied macht.
Es ist schade, dass ich noch keine Leiterplatte aufgebaut habe. Ich habe
jetzt verstanden, dass Sie mir auch eine Leiterplatte der Version 1.5
geben wollten. Ich habe deshalb nicht begonnen, die Leiterplatte der
Version 1.4 zu bauen, die ich bereits habe.
Wenn ich eine funktionierende Leiterplatte habe, kann ich selbst
Messungen vornehmen und so weiter.
Ich vermute, dass der Z80 mit einem "Lade" -Befehl das Bild ständig auf
Schwarz setzt. Wenn ja, muss ich meinen Balkengenerator anpassen (ich
glaube, ich habe angenommen, dass das Bild auf Schwarz eingestellt ist),
aber ich muss das experimentell tun. Ich denke, ich brauche einen EXOR,
um das Bild zu erhalten. invertieren, wenn das Signal nCAS_IN hoch ist.
Übrigens denke ich, dass die Anzahl der Impulse, die der Z80 von der
Kassette sieht, variieren kann, wenn der Rekorder das Audiosignal
invertiert, (oder nicht) was möglicherweise erklärt, warum es 8 oder 9
Impulse geben kann. Aber für die Software denke ich nicht, dass das
wichtig ist.
Ich glaube nicht, dass die Wahl des Transistors so wichtig ist, da das,
was passiert, wirklich nur von den Widerstandsverhältnissen abhängt.
Deshalb habe ich im ZX-81+38 einen 2N3904 verwendet (alle
NPN-Transistoren sind im ZX-81+38 vom gleichen Typ).
Aber im ZX-81+35 hatte ich einen BC847B verwendet.
>Ich sehe eine weitere Abweichung von den Komponentenwerten im>Eingangsverstärker ZX-81 + 38, nämlich dass der Kondensator C7 über dem>Eingang (parallel zum 1K-Widerstand R58) beim ZX81+38 47 nF und beim>Original nur 47 pF beträgt.
Oben im Bild ist das Orignal-Interface abgebildet.
Wenn ich es richtig verstehe, ist MIC das Signal zum Kassettenrekorder
und mit den gezeigten Komponenten muss es ziemlich schwach sein: 47pf in
Reihe mit 1MOhm auf 1K Last. Das wären bei 5V und hohen Frequenzen
gerade mal 5mV Signal. Soll das reichen?
Der Eingang müsste dann EAR sein und mit einem Hochpass bestehend aus
10nF und 4k7 und dem Eingang 20 der ULA.
chris_ schrieb:> Wenn ich es richtig verstehe, ist MIC das Signal zum Kassettenrekorder> und mit den gezeigten Komponenten muss es ziemlich schwach sein: 47pf in> Reihe mit 1MOhm auf 1K Last. Das wären bei 5V und hohen Frequenzen> gerade mal 5mV Signal. Soll das reichen?
Nein. Damals empfahl jede zweite Bastlerzeitschrift 100 k bzw 470 pF
parallel zu schalten.
Und mit Leseverstärkern ("Impulsputzer") wurde auch viel Umsatz gemacht.
Jetzt hat der ZX81+38 auch noch eine PIO-Karte bekommen. Eine passende
Relais-Karte werde ich nun in Angriff nehmen und dann muss ich mir
überlegen, ob man damit irgendetwas sinnvolles machen kann ;-)
Auf der ZX-WESPI-Adapterplatine habe ich noch einen Kippschalter
untergebracht, um nach dem Elko die Versorgungsspannung abschalten zu
können. Wenn der eingeschaltet ist, dann kann man nicht programmieren,
weil bei jeder eingetragenen Zeile der WESPI lustige Streifenmuster
einblendet. So lässt er sich im Betrieb einfach ein- und ausschalten.
>Jetzt hat der ZX81+38 auch noch eine PIO-Karte bekommen.
Unter künstlerischen Aspekten macht das farbige Bild auf jeden Fall
etwas her ;-)
>chris_ schrieb:>> Wenn ich es richtig verstehe, ist MIC das Signal zum Kassettenrekorder>> und mit den gezeigten Komponenten muss es ziemlich schwach sein: 47pf in>> Reihe mit 1MOhm auf 1K Last. Das wären bei 5V und hohen Frequenzen>> gerade mal 5mV Signal. Soll das reichen?
Soul E. schrieb:
>Nein. Damals empfahl jede zweite Bastlerzeitschrift 100 k bzw 470 pF>parallel zu schalten.>Und mit Leseverstärkern ("Impulsputzer") wurde auch viel Umsatz gemacht.
Mikrofonsignale sind ziemlich schwach und ich gehe davon aus, dass die
Kassttenrecorder so einen Eingang hatten.
Ich nehme mal die Werte aus der Wikipedia
https://de.wikipedia.org/wiki/Mikrofonsignal
1/4-Zoll-Kapseln 5 bis 10 mV/Pa
und für die Lautstärke
https://de.wikipedia.org/wiki/Lautst%C3%A4rke
und für die Lautstärke daraus die eines Fersehers mit 0.02Pa
Daraus lässt sich die Spannung berechnen:
V = 5mV/Pa * 0.02Pa = 0.1mV = 100uV
Da wäre das errechnete Signal des Zx81 mit 5mV schon ordentlich darüber.
Die Frage ist, wie es sich mit den Audioeingängen am PC oder Laptop
verhält.
Line Out sollte sich im Bereich um 1VSS bewegen:
https://en.wikipedia.org/wiki/Line_level
Sind die Audioeingänge heutzutage Line-Level oder Mikrofon-Level?
Entsprechend den Audioeingängen eines PCs können Sie dann über den
Line-Level-Eingang die Farbe des Anschlusses des Mikrofonpegels
ermitteln.
Die Mikrofonpegeleingänge sind rosa und die Linepegeleingänge hellblau.
Um das Jahr 1984 herum hatte ich ein Spiel in Basic programmiert. Es
nannte sich "MonsterCrash". Leider habe ich die Kassette von damals
nicht mehr gefunden. Deshalb habe ich mal versucht, das Spiel aus dem
Gedächtnis heraus "nachzuprogrammieren".
Es lief auf meinem 2K RAM ZX81 und war quasi ein in BASIC geschriebenes
Echtzeitspiel, wobei "Echtzeit" hier eine etwas langsame Echtzeit ist.
Man muss in dem Spiel vor immer wieder neu auftauchenden Monstern
weglaufen und sich hinter Steinen verstecken. Die Langsamkeit mach hier
einen Teil des Reizes des Spiels aus: Man kann nämlich nicht schneller
als die Monster laufen und muss sich während der Bewegung schon genau
die nächsten Schritte überlegen.
Das Spiel habe ich jetzt auf der Tastatur des ZX81plus38 programmiert
und es kommt tatsächlich das Retro-Feeling auf: Die Anzahl der Zeichen
auf dem Bildschirm ist klein und Kommentare sollte man wegen des
Speicherverbrauchs keine verwenden. Außerdem bin ich es nicht mehr
gewohnt, dass es keine lokalen Variablen in den Funktionen gibt und zum
"IF" sehe ich nirgends ein "ELSE".
Ich hab version 1.6 gebaut.
!!!!!!!! Es funktioniert !!!!!!!!
Ich hab die Chips direkt gelötet ohne Sockel. Der schwarze Hintergrund
muss ich ändern, ich mag die schwarze Buchstaben auf weisse Hintergrund.
Gleich schliße ich noch die neuen Tastatur.
Sehr gut, aber sollte schwarz auf weiß nicht eigentlich voreingestellt
sein?
Hast Du die Schaltung ohne RP2 in Betrieb, oder waren die Pull-ups für
die Datenleitung nur beim Foto noch nicht bestückt?
Mit angeschloßener Tastatur.
Ich hab es nicht bestückt, ich wollte es schnell probieren.
Vorinstalliert scheint weiße Buchstaben auf schwarzes Bild.
U11 ist irgendwie zu nah am U23 und U24 auf U14, ich hab die Chips ein
bisschen friessiert, nicht so super schön, aber geht es.
Frisst keine 50 mA mit nur HC und HCT typen.
Eine interessante effekte war als ich einen 150 ns EEPROM benutzt habe,
die Buchstaben hatten einen "Schatten" oder so, mit dem 200 ns EEPROM
geht gut, warscheinlich liegt an hold time.
Hast du die Platinen schon ?
meinst du mich? (martin).
Nein, noch nicht, aber ich kann durch die letzte Sperre auch nicht zu
Revspac gehen. Nur im Notfall und nur 5 Personen können anwesend sein.
Vielleicht kann ich mir einen Lötkolben und ein paar fehlende Sachen
(Steckdosen und Audioanschlüsse) ausleihen. und zu Hause anfangen zu
bauen. Wenn Sie einen weißen Bildschirm wünschen, müssen Sie die beiden
Jumper konvertieren, die dafür dienen. Ich denke, Sie müssen Spuren
zwischen den Jumpern JP5 und JP6 schneiden. Anscheinend habe ich die
falsche Einstellung als Standardeinstellung gewählt.
Praktischerweise habe ich meinen ZX81 noch, den ich 1982 gekauft habe.
Im Moment läuft er nicht mehr, weil er über die ersten Jahre etwas
gelitten hat. Erst habe ich einen Reset-Taster und eine DIN-Buchse als
Joystickanschluss in das Gehäuse gebaut. Dann habe ich einen 74LS138 auf
den Z80 als Adressdecoder für die HiRes Graphik gelötet. Später ist er
dann zum EPROM-Brenner mutiert ( das große, rechteckige Loch im Gehäuse
und die Schalter oben).
Im Moment experimentiere ich gerade mit dem Debugger. Mit der Taste "w"
kann man die Wait-Leitung ziehen und die Adressen und die Daten
auslesen, also "Single-Step" machen.
Im Schaltplan von Ale muss man den Inverter U3D durch eine Diode
zwischen PIN 12 ( Kathode ) und Pin 11 ( Anode ) ersetzen.
Der Debug-Log ist interessant: An den Adressen 0xCxxx sollte kein Code
sein. Ich vermute, dass da der Videogenerator übernommen hat.
Im Bereich von 0x38 .. 0x44 befindet sich der Prozessor im
Video-Interrupt. Wenn man debugged, sieht man, dass der Prozessor die
meiste Zeit in diesen Regionen seine Zeit verbräht.
https://cdn.hackaday.io/files/289631239152992/ZX81_dual_2018-02-09.htm
1
MARK_0038:
2
INTERRUPT:
3
DEC C ; (4) decrement C - the scan line counter.
4
JP NZ,SCAN_LINE ; (10/10) JUMP forward if not zero to SCAN_LINE
5
6
POP HL ; (10) point to start of next row in display
7
; file.
8
9
DEC B ; (4) decrement the row counter. (4)
10
RET Z ; (11/5) return when picture complete to R_IX_1_LAST_NEWLINE
11
; with interrupts disabled.
12
13
SET 3,C ; (8) Load the scan line counter with eight.
14
; Note. LD C,$08 is 7 clock cycles which
15
; is way too fast.
16
17
; ->
18
19
mark_0041:
20
WAIT_INT:
21
;
22
; NB $DD is for 32-column display
23
;
24
LD R,A ; (9) Load R with initial rising value $DD.
25
26
EI ; (4) Enable Interrupts. [ R is now $DE ].
27
28
JP (HL) ; (4) jump to the echo display file in upper
chris_ schrieb:> Der Debug-Log ist interessant: An den Adressen 0xCxxx sollte kein Code> sein. Ich vermute, dass da der Videogenerator übernommen hat.
Richtig. Guck Dir mal an wie der ZX81 sein Videobild erzeugt. Die CPU
wird als Adresszähler missbraucht und führt den Bildschirmspeicher
+0x8000 als Programmcode aus. Da die Videodaten natürlich keinen
sinnvollen Code ergeben schließt man die Datenleitungen im Fetch-State
einfach gegen Masse kurz. Der Prozessor sieht dann 0x00, also NOP,
während das echte Byte aus dem RAM bei 0xC... (in Wahrheit 0x4...
unvollständig auscodiert) von der Videologik genutzt wird.
Eine Zeile endet immer mit 0x76, dass ist der HALT-Befehl. Der wird
nicht kurzgeschlossen, sondern gelang zum Z80. Dieser bleibt stehen,
aber sein Refresh-Zähler läuft weiter und gibt regelmäßig neue Adressen
aus. Wenn der Adresszähler weitergelaufen ist bis A6 = 0 wird gibt es
einen /INTerrupt und die nächste Zeile beginnt
> Im Bereich von 0x38 .. 0x44 befindet sich der Prozessor im> Video-Interrupt. Wenn man debugged, sieht man, dass der Prozessor die> meiste Zeit in diesen Regionen seine Zeit verbräht.
Der Geschwindigkeitsunterschied zwischen dem SLOW-Mode mit Bilderzeugung
und dem FAST-Mode ohne diese ist gewaltig. Der klassische ZX81-Benchmark
war eine FOR-NEXT-Schleife bis 5000, die kann man mit einer Stoppuhr
vermessen.
Wenn Du nicht gerade die Bilderzeugung selber debuggen willst, dann
würde ich die überspringen. Dein Debugger weiss ja wo der Prozessor
gerade rumrennt.
Soul E. (souleye)
>Eine Zeile endet immer mit 0x76, dass ist der HALT-Befehl. Der wird>nicht kurzgeschlossen, sondern gelang zum Z80. Dieser bleibt stehen,>aber sein Refresh-Zähler läuft weiter und gibt regelmäßig neue Adressen>aus. Wenn der Adresszähler weitergelaufen ist bis A6 = 0 wird gibt es>einen /INTerrupt und die nächste Zeile beginnt
Danke für Deine ausführliche Erklärung.
Im Dump sieht man bei 0xC1E8 den Zeilenenden-Code 0x76.
Was mir da unklar ist: Wie merkt der NOP-Generator, dass er die
Datenleitung nicht auf 0 ziehen soll, sondern den Halt-Befehl
durchlassen?
>Wenn Du nicht gerade die Bilderzeugung selber debuggen willst, dann>würde ich die überspringen. Dein Debugger weiss ja wo der Prozessor>gerade rumrennt.
Das ist eine gute Idee, ich habe auch schon dran gedacht. Vielleicht
sollte man einen Disassembler einbauen, damit man den Hex-Code nicht
selbst interpretieren muss.
Mittlerweile habe ich einen Disassembler mit eingebaut. Sieht optisch
schon mal nicht schlecht aus.
Das "Skippen" der ungewollten Bereiche funktioniert leider noch nicht
ganz ( Ich sehe leider den Fehler gerade nicht ... ).
Noch einen kleine Hinweis zum Debugger-Layout von ALE: Das ist noch auf
die ZX81plus38 Version 1.4 mit vertauschten Adressleitungen ausgelegt.
Es muss also auf jeden Fall angepasst werden, wenn man die Version 1.6
hat.
chris_ schrieb:> Was mir da unklar ist: Wie merkt der NOP-Generator, dass er die> Datenleitung nicht auf 0 ziehen soll, sondern den Halt-Befehl> durchlassen?
Bei Deinem ZX81plus38 macht das U27, beim ZX97lite U19. Eigentlich wird
nur D6 ausgewertet, das Bit muss High sein.
Richtig, der Abgriff geht nach oben ans Flipflop. In Bezug auf D7 macht
der '138 nur ein Nebenjob als Luxus-UND-Gatter. IIRC ist der Trick von
Wilf, im ZX80 gab es das so noch nicht.
Ok, vielleicht sollte man die Sache so zusammenfassen:
Der NOP-Generator erzeugt bei den normalen Zeichen mit dem Code 0 bis
0x3F und und den invertierten Zeichen 0x80-0BF die NOPs .
https://www.mikrocontroller.net/attachment/479214/ZX81_Dissassambly_Interrupt.png
Interessanterweise sieht man bei dem von mir erwischten
Programmausschnitt nach dem HALT-Befehl im Dump ein 0x80, was ein
invertiertes Space wäre und direkt nach dem Interrupt Code das Zeichen
0xB0, welches das invertierte "K" darstellt.
Das war wohl wirklich ein Zufallstreffer, weil normalerweise an der
Stelle auch Nullen sind.
Mich würde mal ein einfaches Codebeispiel für eine High-Res Graphik
interessieren.
Gefunden habe ich einen eher unübersichtlichen Code hier:
https://github.com/chancanasta/zx81HiresTest
Die alte Platine meines ZX81 hat eine ganz ähnliche Größe wie die
Platine des ZX81plus38.
Auf der alten Platine sieht man das 2K RAM, welches ich damals
eingelötet hatte, weil vorher nur 2 1Kx4Bit RAMs drinnen waren.
Später habe ich dann den 74ls138 als zusätzlichen Adressdecoder für die
High-Res-Graphik auf den Prozessor gelötet.
Woher ich die Informationen damals dazu hatte, weiß ich nicht mehr. Aber
vielleicht war es aus der Zeitschrift "MC" die damals für hardwarenahe
Bastler am besten war.
Heute Morgen habe ich mal den Debugger auf der Platine von Ale
aufgebaut.
Um sie in Betrieb zu nehmen, müssen ein paar "Patches" gemacht werden.
Pin 11 vom 74LS125 muss hoch gebogen werden und ein Diode nach Pin 5 (
Anode ) gelegt werden.
Die nIRQ Leitung ist nicht angeschlossen. Sie wird aber gebraucht, um
den Kontrollbus auf eine definierten Pegel zu ziehen.
Die LEDs sollten low-aktiv sein.
ES gäbe da noch den Z80-H. Dieser macht glaub ich 8MHz. Der abgebildete
Z80 ist die erste Generation. Denke dass der nur 4 MHz macht, oder sogar
nur 2. Korrigiert mich. Ist schon lange, lange her. Hab auch noch nen
ZX81 mit gigantischen 16K Arbeitsspeicher und für damals großer
Tastatur.
Freut mich, dass solche Teile noch heute interessant sind.
>ES gäbe da noch den Z80-H. Dieser macht glaub ich 8MHz. Der abgebildete>Z80 ist die erste Generation. Denke dass der nur 4 MHz macht, oder sogar>nur 2. Korrigiert mich.
Hallo Thomas,
danke für den Hinweis. Auf der Wikipedia Seite sind ziemlich viele
Varianten aufgeführt ( C-MOS Version bis 20MHz ):
https://de.wikipedia.org/wiki/Zilog_Z80
Scheinbar sollte mein Prozessor die C-MOS Variante mit 20MHz sein.
https://www.mikrocontroller.net/attachment/472315/Zx81_plus38_1.png
Die Stromaufnahme ist aber so hoch, dass im Moment im Raum steht, dass
es möglicherweise eine gefakte China NMOS-Version ist.
>Ist schon lange, lange her. Hab auch noch nen>ZX81 mit gigantischen 16K Arbeitsspeicher und für damals großer>Tastatur.>Freut mich, dass solche Teile noch heute interessant sind.
Mach doch mal ein Bild und stelle es hier rein, das interessiert
bestimmt einige.
Hallo zusammen,
der letzte Beitrag ist schon etwas länger her, aber vielleicht ist das
hier ja dennoch interessant. Ich habe die Rev 1.6 der Platine gebaut.
Erst mal vielen dank an Martin für die tolle Arbeit. Genau so eine
Platine stand schon lange auf meiner Wunschliste. Einige Dinge sind mir
dabei aufgefallen.
Zwei kleine Bugs betreffen die Tape-Buchsen CO2/CO3 und den
Tastaturanschluss J3. Bei den Klinkenbuchsen ist die Leiterbahn zum
Anschluss des Rings geführt, nicht zu der Spitze (wie im Schaltplan).
Und J3 sitzt im Vergleich zum ZX81 180 Grad verdreht. Ich habe das mit
einer ZX81-Tastatur getestet.
Das andere Thema ist etwas komplizierter. Nach dem Zusammenbau habe ich
gemerkt, dass zwar so etwas wie Zeichen an der richtigen Position
erscheinen, allerdings nur irgendwelche Bitmuster. Es sieht so aus, als
ob die Zeichen-Pattern während des Refresh-Zyklus nicht richtig im
Schieberegister ankommen. Bei der Messung (scope-cpuclk-notinv.png) habe
ich dann gesehen, dass der Ladeimpuls nur 21ns nach nRFSH=0 kommt. Das
kann mit schnellem ROM funktionieren, allerdings habe ich 100ns EPROMs
verwendet. Für die ist das zu schnell. Nach dem Invertieren des CPU-Takt
sieht die Sache viel besser aus (siehe scope-cpuclk-inv.png) und
funktioniert auch wie erwartet. Für den Fix braucht es einen Inverter,
nur leider ist keiner mehr frei. Allerdings lässt sich U18A als Inverter
benutzen (siehe fix-cpu-clk.png). Bitte gebt mal Info, wenn ich bei der
Sache auf dem Holzweg bin.
Mechanisch gibt es noch ein Punkt mit der Position der Löcher und der
Buchsen. Nicht dramatisch, aber vielleicht für die nächste Version eine
Betrachtung wert. Ich habe mir mal die Mühe gemacht eine Originalplatine
auszumessen und das Ergebnis als DXF-File angehangen. Messgenauigkeit im
Rahmen des für mich möglichen mit Brille und analogem Messschieber :-)
Zu guter Letzt hätte ich noch ein Vorschlag/Wunsch zum Adressdecoding,
um 32k ROM und 32k RAM nutzen zu können. Dabei springen sogar zwei
Spare-Gates raus:
U24A.3 auf A14 des RAMs
A14 an U23D.12/U21F.13
A15 an A14 des EPROMs
U23A und U23B entfallen.
Das Layout wäre dann:
1
$0000 - $3ffff : untere Hälfte EPROM
2
$4000 - $7ffff : untere Hälfte RAM
3
$8000 - $Bffff : obere Hälfte EPROM (nur Daten, kein Code)
4
$C000 - $Fffff : obere Hälfte RAM (nur Daten, kein Code)
Hat echt nochmal Spass gemacht, sich mit dem Rechner so intensiv zu
beschäftigen, mit dem für mich alles mal angefangen hat. Noch mal
herzlichen Dank an Martin.
Schöne Grüsse
Sascha
Ich hab mit schnellen EEPROMs (150 ns, 28C256 bei Reichelt gekauft)
probleme bei der darstellung des Bilds gehabt, mit 200 ns EEPROMs
(aliexpress wer weiß was original war) ging gut, aber ich musste die
beide messen um zu wiessen welche Zugriffszeit es in wirklichkeit...
Erstens mal danke an alle die mitarbeitet haben !!
Tolles projekt .
aber jetzt ;
Hilfe notwendig ,
alles aufgebaut , version 1.6 platine und nur ein eigenartiges bild auf
dem bildschirm ( 1839) .
Nach 10-15 sekunden ändert sich dass bild langsam
und sieht folgend aus (1852) und bleibt unverändert solange den klon
eingeschaltet ist.
er reagiert auf die tastatur , aber nur mit dieser art von "graphik"
>Nach 10-15 sekunden ändert sich dass bild langsam
Heißt das, dass es am Anfang korrekt funktioniert?
Ich versucht mal das Bild zu interpretieren: Es wird auf jeden Fall ein
Speicher ausgelesen, da sich die Pixel über die Zeilen wiederholen. Ob
das RAM oder ROM ausgelesen wird, kann man nicht sagen. Die Zeilen sind
immer gleich, möglicherweise funktioniert der Zeilenaddressgenerator
nicht richtig.
Vielleicht hilft das für die Suche weiter ...
Heißt das, dass es am Anfang korrekt funktioniert?
nein ,
bild ist immer dass gleiche ( position stimmt mit dem K ) 1839 aber est
ist eine art von grafic-character darstellung dis sich einmalich ändert
1852 und dan stabil bleibt für stunden .
so sieht recht aus als die info im beitrag vom Sascha hier oben.
wass brauch ich um ein cat28c256 laufen zu lassen ??
denn dass ist mir nicht ganz klar ;
auf dem pcb verbindung nach pin1 durcg-ziehen , dann pin 27 mit 1
verbinden , aber wass muss ich mit j10 anfangen ??
Ok , jetzt bin ich recht "lost " .
laut die schematik ;
"cut trace to disconnect pin 1 for 28c256 if you want to connect a14 to
pin 1 with patch wire " und weiter , "also switch over JP10 ".
pin1 is vpp so mit vss verbunden , dann trennen, und pin 1 mit 27
verbinden - der liegt an masse - , und dann JP10 umsetzen - so dann ist
wieder 5 volt auf pin 1
wass verstehe ich hier nicht ??