Hallo,
wie kann ich mit dieser Schaltung... :
http://cpuville.com/images/Z80/eprom_2.GIF
diesen Code...:
http://cpuville.com/EPROM_code.htm
in den Eprom 2716 programmieren?
Welche Data Input Switches und Adress Switches müssen geschaltet werden?
Kann mir das jemand Schritt für Schritt erklären?
Ich währ sehr Dankbar!
Gruß
--
Titel angepasst, es geht um ein EPROM, nicht um ein EEPROM.
-rufus
Sowas haben wir während des Studiums (1982 ff.) tatsächlich im Labor
gemacht, allerdings viel weniger Programmzeilen.
Alle Datenschalter und alle Adressschalter offen
/OE Schalter auf GND
Vpp Schalter auf 25V
erste Programmzeile:
0004 0000 C3 20 00 JP 0020H ;Jump to start of programs
Adressschalter auf Adresse 0 (= alle offen)
Datenschalter auf C3 = 11000011 = zu zu auf auf auf auf zu zu
50ms Puls (5V) auf Eingang PGM
Adressschalter auf Adresse 1 (nur der rechte geschlossen)
Datenschalter auf 20 = 00100000
50 ms Puls
Adressschalter auf Adresse 2 (nur der zweite von rechts geschlossen)
Datenschalter auf 00 = 00000000
50 ms Puls
Und das dann mit allen restlichen Programmzeilen.
Das möchtest du hoffentlich nur verstehen und nicht wirklich machen ;-)
prom schrieb:> wie kann ich mit dieser Schaltung... :> [...]> in den Eprom 2716 programmieren?
Ernsthaft? Na, dann viel Spass!
Das wird eine spassige Sache...
> Welche Data Input Switches und Adress Switches müssen geschaltet werden?
Vermutlich fast alle...
In jeweils unterschiedlicher Kombination!
> Kann mir das jemand Schritt für Schritt erklären?> Ich währ sehr Dankbar!
OK, mal ernsthaft:
ICh erkläre es für die ersten beiden Relevanten zeilen:
Also Line 4 und 6. (1,2,3,5 kannst du Ignorieren, die sind für dich
nicht relevant)
Mit dieser Simpelschaltung programmierst du immer Byte für Byte...
Ein Bbyte bestehet aus 8 Bit. Jedes Byte hat eine eigene Adresse.
Ein Offener Schalter bedeutet 0, ein geschlossener 1!
Die Adressen sowie die Daten musst du mit dne Schaltern als Binärzahl
eingeben.
In deiner Tabelle hast du eine Spalte Line Code - Die ist nur
Informativ...
Dann eine Spalte LOCATION: Diese gibt an wie du ADRESSBITS zu setzen
hast.
Danach kommt CONTENTS: Das ist der Inhalt der an diese Adresse (und die
folgenden) kommen muss. Das sind die Befehle, Sprungadressen usw. in
MAschinencode.
Die nächsten beiden Zeilen sind die ASM Befehle (der Maschinencode in
Menschenlesbarer form) und die Kommentare. Dies kommt nicht in den
Eprom...
(ISt der Quelltext...)
Dein Vorgehen für die Zeilen.
Die erste Signifikante Adresse (Location) ist 0000 in Zeile 4.
(Da an einer Adresse immer nur ein Wert stehen kann, musst du bei
mehreren geleichen Adressen immer die LETZTE Zeile mit dieser Adresse
beachten, die vorherigen verwerfen.
Da Zeile 1 bis 4 die Adresse 0000 haben ist also nur Zeile 4 wichtig!
Also: 0000h bedeutet 0000 im Hexadezimalen Zahlensysten. ISt auch 000000
im Binären Zahlensyten.
Inhalt ab Adresse 0000 soll später sein CA 20 00
Also stellst du zuerst an den Adressbits die Adresse 0h == 0b = Alle
Schalter offen ein.
Dann an den Datenschaltern den Wert CA (Hex)
CAh ist 1100 1010b
Eine 1 bedeutet SCHALTER AN, eine 0 SCHALTER AUS!
Daher stellst du an den Datenschaltern ein:
D7 = AUS
D6 = EIN
D5 = AUS
D4 = EIN
D3 = AUS
D2 = AUS
D1 = EIN
D1 = EIN
Jetzt mit der LEitung PGM einen Programmierpuls setzen.
Damit ist der erste WErt dieser Zeile Programmiert.
Dann kommt nun 20h.
Da dieser Wert nicht an derselben Adresse stehen kann musst du diese
eine
Hochzählen. Also Schalter A0 Einschalten, alle anderen Aus!
Jetzt noch den Wert 20h ins Binärsystem übersetzen: sind 0010 0000b
Daher stellst du an den Datenschaltern ein:
D7 = AUS
D6 = AUS
D5 = AUS
D4 = AUS
D3 = AUS
D2 = EIN
D1 = AUS
D1 = AUS
PGM Puls setzen und auch diese Daten sind im Eprom.
Dann noch das letzte Bzte aus Zeile 4: 00h
Zuerst wieder die Adresse um 1 erhöhen. Damit sind wir bei Adresse 2.
Bedeutet: Schalter A1 einschalten, ALLE anderen ADressschalter auf AUS!
00h sind auch Binär 0000 0000b
Also alle Datenschalter auf AUS, dann PGM Signal senden!
Und schon ist die erste Zeile fertig...
Jetzt kommt die nöchste Relevante Zeile: 6
Hier steht wieder eine neue einzustellende Adresse: 0020
Dies ist 00 0010 0000 Also Adresseschalter A5 einschalten, alle anderen
aus.
Erstes Datenbyte ist DBh = 1101 1011b
Daher stellst du an den Datenschaltern ein:
D7 = EIN
D6 = EIN
D5 = AUS
D4 = EIN
D3 = EIN
D2 = AUS
D1 = EIN
D0 = EIN
PGM Impuls geben und das nächste Byte:
Also wieder die Adresse um eins erhöhen. Bedeutet Adresse 21h, also A5
und A0 EIN, alle anderen AUS.
00h ist 0000 0000b, also alle D Schalter auf Aus.
PGM Impuls geben und nöchste Zeile.
Hier steht Adresse 22h, also diese Einstellen usw.
ICh hoffe das war einigermaßen verständlich...
GEnauer werde ich jetzt aber nicht mehr!
Gruß
Carsten
Danach
>>>> Gruß
@ Carsten Sch.
Sehr gut und ausführlich beschrieben.
Zwei gaaanz kleine Fehlerchen sind drin:
Bei den Daten sind Msb und Lsb vertauscht und der jmp Befehl
beim Z80 ist C3 und nicht CA.
Nichts für ungut, ist nur für die Nachwelt gedacht ;-)
Gruß, Tom
Hallo,
das will er nicht wirklich...
Habe ich damals (tm) mit MH74188 so gemacht, das waren 32x8 Bit.
Trotzdem einige geschrottet, weil man sich vertan hat.
Beim 2716 hieße das, daß man den Fehler beim 2047. Byte macht und ihne
wieder löschen und von vorn anfangen kann...
Einen passenden AVR, Daten, Adressen und Steuerleitungen an den 2716,
die Programmierspannung noch mit 2 Transistoren schaltbar.
Die 2k Daten mit ins Flash, 2 Tasten (programmieren und verify) und 2
LED (ok und Fehler) dran. Die Software wäre mehr als simpel.
Gruß aus Berlin
Michael
Wenn du nur ein einziges Eprom (2716 ist nicht EEprom) brauchst, melde
dich per Mail. Mit Kälberzähnen wird das nichts, da bist du monatelang
beschäftigt, bis der Code fehlerfrei drin ist. Hast du eine Löschlampe
für den Fall, dass du dich bei einem der 16000 Bits irrst?
So groß ist das genannte Programm ja auch nicht.
prom schrieb:> diesen Code...:> http://cpuville.com/EPROM_code.htm
Und wenn man dann Kodierschalter nimmt, braucht man sich um die
einzelnen BIT auch nicht kümmern.
Hallo prom (gast),
ich befürchte, dass Du nicht den 50ms-Impuls vorliegen hast, den Du zum
Programmieren des EPROMs benötigst. Der ist auf dem Schaltplan nämlich
so ganz lapidar vorausgesetzt worden!
Optimal konvertierst Du das vorliegende Assembler Listing per Hand in
ein Binärfile und versendest dieses per Mail an jemanden, der
entsprechende EPROMs brennen kann.
Solltest Du Bedarf haben, ich habe passende Brenner und Rohlinge von
2704 bis 27C322.
Wolfgang R. schrieb:> ich befürchte, dass Du nicht den 50ms-Impuls vorliegen hast, den Du zum> Programmieren des EPROMs benötigst. Der ist auf dem Schaltplan nämlich> so ganz lapidar vorausgesetzt worden!
Da gibt es noch einen zweiten Schaltplan auf der Seite, zum generieren
des Impulses.
So ähnlich hatten wir damals auch unsere ersten Eproms programmiert.
nur wir hatten da ein zusätzlichen RAM Speicher in den man erstmal alles
einprogrammiert hat und auch wieder ändern konnte. von dort wurde es in
Eprom übertragen
Wolfgang R. schrieb:> ich befürchte, dass Du nicht den 50ms-Impuls vorliegen hast, den Du zum> Programmieren des EPROMs benötigst. Der ist auf dem Schaltplan nämlich> so ganz lapidar vorausgesetzt worden!
Die pulse circuit ist hier versteckt:
http://cpuville.com/images/Z80/eprom_1.GIF
Wenn man über die Projektseite reinkommt http://cpuville.com/Z80.htm
dann versteht man den Zusammenhang. Das Ganze ist wirklich darauf
ausgelegt, von Hand ins EPROM getackert zu werden. Daher ist der Code
auch nur 120 bytes lang und hat am Anfang einen Bereich für eine Liste
von Sprungbefehlen. Die kann man der Reihe nach aus-NOP-en (mit 00
überbrennen) und durch neue ersetzen.
Danke erst mal für eure Hilfe, auch wenn ich nicht alles ganz verstanden
habe. Mit Bytes und Bits hatte ich noch nie im Leben was zu tun, bin
aber sehr interessiert daran, mal einen eigenen Z80 zu bauen.
Es würde mir vollkommen reichen, wenn der Z80 erst mal nur eine LED
blinken lassen kann, oder sowas in der Art.
Das Programmerboard würde ich erst mal aufbauen, hinterher dann den
eigentlichen Z80.
Löt und Elektronikerfahrung habe ich schon eine Menge, seit ungefähr 7
Jahren bastle ich an allerlei Dingen rum.
Wenn ich das Projekt beginne melde ich mich noch mal zurück.
Gruß
Aber so primitiv muß man nicht anfangen.
Das habe ich damals nicht mal gemacht.
Kauf dir einen Programmer aus China für 40 EUR.
Der kann zwar die 24V 2716 nicht, aber par. EEPROM 2816 o.ä.
EPROM mit 12V wie 27128 usw. gehen da problemlos.
prom schrieb:> Kann man denn diese 2716 mit diesem Programmer programmieren?> https://upload.wikimedia.org/wikipedia/commons/3/3c/Programmer_SE4942.jpg
Der hier behauptet, das es geht:
http://www.augusta.de/~mars/electrical.htm
Aber: dazu musst du einen Rechner mit serieller Schnittstelle haben, um
Dateien in den Programmierer zu laden, dazu brauchst du das Protokoll
des Programmers, denn da benimmt sich jeder anders. Ohne ausreichende
Unterlagen zum Gerät kriegt man das i.A. nicht hin.
Muss es denn wirklich das alte Z80 Schlachtschiff sein? Nicht, das das
ein schlechter Prozessor war, aber das nötige Drumherum macht es nicht
einfach, sich mit dem eigentlichen programmieren zu beschäftigen. Dafür
gibt es heute viel einfacherere Plattformen.
michael_ schrieb:> Zu dem Kabelgefitze sagst du einfach?
Der Italiener hat das auch alles sehr aufwendig und m.E. unnötig
kompliziert aufgebaut. Bei mir ist das eine Lochrasterplatte mit etwa
100*100mm, einem 32 pin Sockel und zwei Jumperfeldern für EPROMs von
2716 bis 271001.
Die eigentliche Schaltung ist ja wirklich simpel.
prom schrieb:> Kann man denn diese 2716 mit diesem Programmer programmieren?> https://upload.wikimedia.org/wikipedia/commons/3/3c/Programmer_SE4942.jpg
Hast Du 2716 herumliegen, die weg müssen?
Die alten Dinger sind gesuchte Ersatzteile. Für einen Neubau würde ich
die nicht nehmen, sondern 27C64 oder 27C256. Die sind billiger, weiter
verbreitet und leichter zu programmieren.
Das ist ja so was von 1979..
Damals (tm) habe ich mit zwei Lehrlingen bei Blaupunkt ein 8085 System
gebaut das mit gemultiplexter 6 Stellen LED Anzeige für Adresse und
Daten und einer HEX Tastatur daherkam. Nach 4 Wochen haben wir
aufgegeben den 2716 mit Schaltern zu Flaschen es ging einfach nicht. Ich
habe dann einen TTL Programmer mit Zählern und Registern gebaut waren
zwei Din A4 Lochrasterkarten. Damit ging's fast auf anhieb. Heute lacht
man darüber und holt den GALB aus dem Schrank.
mfg
Michael
H.Joachim S. schrieb:> Doch, es ging.> Lästig wars, das stimmt. Aber mit Geduld war es möglich.
früher oder später nimmt man einen Portbaustein und generiert Adress und
Daten Bits.
Heute würde ich einen AVR nehmen, z.B. den arduino mighty 1284p oder
einen Nano einige I2C PCF8574(A) Ports und/oder Latch
Der Code kann ja dann aus HEX direkt geschrieben werden, die 50ms macht
der Atmel. Ach ja Programmierspannung, ist ja auch kein Hexenwerk.
Oder wie schon geschrieben wurde ein EEPROM als Ersatz nehmen
Joachim B. schrieb:> früher oder später nimmt man einen Portbaustein und generiert Adress und> Daten Bits.
Ach ja, und womit? Setzt ein Stück funktionierende Software voraus. Und
das nimmt man woher? Irgendwie musste man anfangen.
Ok, Adressen habe ich nicht zu Fuss sondern mit einem Zähler eingstellt.
8bit-Schalter für das Datenbyte, einen Taster zum Brennen, einen Taster
zum Weiterschalten der Adresse. Die "Daten" waren das Ergebnis einer
Assembler-Programmierung auf Papier :-), völlig irre. Aber es hat Spass
gemacht und es hat funktioniert.
H.Joachim S. schrieb:> Ach ja, und womit? Setzt ein Stück funktionierende Software voraus. Und> das nimmt man woher? Irgendwie musste man anfangen.
heute stellt das doch kein Problem mehr dar,
als ich auf dem LH5803 angefangen hatte musste ich alles handkodieren
auf Karopapier und per Hex Edit in den Ram tippen, aber auch schon 1977
gab es die ersten Compis die geliefert wurden, eine VIA 6522 gab es im
Elektronikladen und Schaltdraht war in jeder Bastelwerkstatt.
Joachim B. schrieb:> H.Joachim S. schrieb:>> Ach ja, und womit? Setzt ein Stück funktionierende Software voraus. Und>> das nimmt man woher? Irgendwie musste man anfangen.>> heute stellt das doch kein Problem mehr dar,
Heute gibt es integrierte Microcontroller mit Intel Flash(tm)EEPROM
Technologie, internem RAM, Timer, Ports, Schnittstellen, etc. Wenn wir
die 1977 gehabt hätten, hätte sich keiner mit UV-EPROMs in seinem 6504
EMUF abgequält.
Es gab genau einen Mikroprozessor, dessen (externes) RAM man ohne
Zusatzaufwand per Kippschalter beschreiben konnte. Das war der CDP1802.
Alle andere sind nach dem Reset an einer festen Adresse losgelaufen, und
da musste ein Programm stehen.
Um über Hex-Tastatur und Siebensegmentanzeige irgendwas eintippen zu
können, brauchte der Rechner ein funktionierendes ROM mit einem
Monitorprogramm. Und genau da ergab sich das Henne-und-Ei-Problem. Das
allererste (E)PROM musste man entweder mit Kippschaltern zu Fuss
brennen, oder man wohnte halt in einer Stadt, wo es einen Computerclub
gab (in dem jemand seinen Rechner schon soweit fertig hatte, dass dieser
EPROMs brennen konnte).
Und den musste man erstmal finden. Ohne Internet und mit
Wählscheibentelefonen.
Klar, der TO kann mogeln. Ich kann ihm sein EPROM brennen, oder Du, oder
er nimmt ein Flash oder einen Arduino. Aber das Ziel dieses Projektes
soll ja eigentlich sein, ein Wochende lang die Steinzeit
nachzuempfinden. "Reenactment" nennt man das neudeutsch.
soul e. schrieb:> Klar, der TO kann mogeln. Ich kann ihm sein EPROM brennen, oder Du, oder> er nimmt ein Flash oder einen Arduino. Aber das Ziel dieses Projektes> soll ja eigentlich sein, ein Wochende lang die Steinzeit> nachzuempfinden. "Reenactment" nennt man das neudeutsch.
kommt halt drauf an was sein Ziel ist,
er kann alle 2kByte so per Schalter einbringen, zum Lernen würden mir
die ersten 2 Byte reichen, danach würde ich "tricksen" um vorwärts zu
kommen um die Kiste lauffähig zu bekommen.