Forum: Mikrocontroller und Digitale Elektronik Programm in ein EPROM auslagern, was gilt es zu beachten


von Torsten K. (Gast)


Lesenswert?

Hallo,

ich weiß, EPROMs sind veraltet, trotzdem möchte ich gerne verstehen wie 
früher zum Beispiel Assembler oder Programmiersprachen für Computer 
lauffähig in ein EPROM gebracht wurden.

Ich nehme mal an, das diese Programme zunächst auf dem jeweiligen 
Computer programmiert wurden und lauffähig waren, bevor sie dann in ein 
passendes EPROM transferiert wurden.

Was galt es da zu beachten... gibt es da ggf. Beschreibungen/alte 
Unterlagen die den Prozess beschreiben und wo Ihr mir vielleicht einen 
Link oder eine Quelle zusenden könnt?

In Summe geht es hier um einen alten Computer (ZX81) für den es diverse 
Programm Images in Binärformat zum brennen in ein EPROM gibt, und hier 
möchte ich einfach nur den Prozess bis zur Imageerstellung verstehen.

Vielen lieben Dank

von Christian K. (the_kirsch)


Lesenswert?

Wenn man heute noch für so alte Prozessoren Programme Entwickelt dann 
genauso wie für aktuelle Mikrokontroller.

Man schreibt sie in Assembler oder in C und kompiliert sie mit einem 
Crosscompiler.

Führt sie eventuell in einem Emulator aus, und Flasht dann den 
Mikrokontroller bzw. brennt den EPROM-Baustein.

von U. M. (oeletronika)


Lesenswert?

Hallo,
ich weiß´jetzt nicht, was dir da so unklar ist?

Das Programm wird normal mit einem Entwicklungstool erstellt, da normal 
auf einem PC oder einer Alternative oder einem Vörgänger des PC läuft.
Versierte Programmierer können kleine Projekte auch ohne so was entw.

Manche Entw-Tools mit intergeirtem Debugger simulieren das Zielsystem 
nur, bei aufwendigeren Systemem hat man einen Incircuit-Debugger.

Die Programmiersprache kann Assembler oder eine Hochsprache sein.
Manche versierte Programmierer können Programme auch direkt in 
Maschinensprache schreiben, aber natürlich macht man das bei komplexen 
Aufgaben nicht.

Bei Hochsprachen braucht man natürlich einen Compiler und dann normal 
auch noch einen Linker.
Damit wird ein Hexfile generiert, das dann mit einem EPROM-Programer auf 
den EPROM gebrannt wird.
Gruß Öletronika

von Torsten K. (Gast)


Lesenswert?

Ok... Danke... Ich dachte da muß noch was bei beachtet werden.

LG

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Namaste

Heute geht das, früher hat man erstmal am Schreibtisch (wörtlich) alles 
schön aufgeschrieben und dann Hexcode von Hand eingetippt um dann ein 
Brennertool anzuweisen das ganze vom Ram ins EPROM zu tansferieren.
Dafür hat man mit etwas Geschick einen Hexeditor mit 
Checksummenberechnung benutzt. Denn bevor man einen Assembler hatte 
musste man von Hand als0 zu Fuss assemblieren und Opcode und Parameter 
mittels handschriftlich zu  erstellenderer Listings zusammengefügen.

Namaste

: Bearbeitet durch User
von Paul B. (paul_baumann)


Lesenswert?

Es gab sog. Eprom-Emulatoren, die aus statischen Rams bestanden.
Wenn das Programm dann fehlerfrei lief, wurde deren Innhalt auf
einen "richtigen" Eprom gebrannt.

Das ersparte die ewige Löscherei und Wiederprogrammierei der armen 
Eproms.

MfG Paul

von Thomas E. (thomase)


Lesenswert?

Winfried J. schrieb:
> um dann ein
> Brennertool anzuweisen das ganze vom Ram ins EPROM zu tansferieren

Warmduscher.
Sowas hat man Binärbyte für Binärbyte und Adresse für Adresse mit 
DIL-Schaltern eingestellt und mit einem Taster und ein bisschen Logik 
dahinter das Byte ins EPROM gebrannt.

mfg.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Paul Baumann schrieb:
> Das ersparte die ewige Löscherei und Wiederprogrammierei der armen
> Eproms.

Besonders wenn es OTP ohne Fenster waren und man nur einen Schuss hatte.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

> Warmduscher

tut mir leid bei mir gings vom Relais über Magnetkarte am Tischrechner 
direkt zum 8Bit ATARI
> "mit DIL-Schaltern eingestellt und mit einem Taster "

 Davon habe ich auch gehört. Ich glaube der Schlenzig hat mal einen 
Melodiegenerator  mit NE555, Schiebergister, Epromm und dieser 
Programmiermethode veröffentlicht. Allerdings wurden der DIL Schalter 
und Taster mittels TT-Modellbahnschaltpulten substituiert.

Letzere benutze ich glegentlich um SPS Eingänge im debugging zu 
schalten.

Vorteil sie lassen sich sowohl monostabil tasten als auch bistabil 
schalten.


Namaste

: Bearbeitet durch User
von H.Joachim S. (crazyhorse)


Lesenswert?

So habe ich auch meinen allerersten Eprom programmiert. 2716, 
Monitorprogramm für einen Z80. Adresse und Daten per Schalter, 
Feuertaste :-)
Erstes Programm am Eigenbau-Rechner war dann ein Eprom-Programmer.
Weiss nicht mehr, wie viele Versuche ich gebraucht habe. Aber es war ein 
sehr intensives Erlebnis...Ich hatte nur einen einzigen Eprom 
(Goldstaub) und fuhr dann mit dem Moped in die Sauna, um dort eine 
Viertelstunde Höhensonne zu buchen...

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

> um dort eine Viertelstunde Höhensonne zu buchen

du hättest ihn auch im Sommer aufs Fensterbrett kleben/legen können.

von Paul B. (paul_baumann)


Lesenswert?

H.Joachim Seifert schrieb:
> fuhr dann mit dem Moped in die Sauna, um dort eine
> Viertelstunde Höhensonne zu buchen...

Daher kommt die Bezeichnung "Brown out", weil die Eprom-Besitzer mit
satter Bräunung wieder aus der Sauna kamen.

MfG Paul

von H.Joachim S. (crazyhorse)


Lesenswert?

Nene, die Sache war mir suspekt.
Das roch so komisch und die Brillen waren auch sehr eigenwillig. Habe 
nur mein Heiligtum mit Isolierband angehängt. War schon ne errückte 
Zeit.

von Christian (Gast)


Lesenswert?

Hallo Torsten,

die meisten Leute werden den ZX81 wohl in Basic programmiert haben.
C war ja noch ganz jung und eine Programmierumgebung rund um den ZX81
ist mir nicht bekannt. Erst recht keine Emulatoren oder Eprom-Brenner.

Man wird damals eher kompatible (8080) Rechner verwendet haben mit
CP/M als Betriebssystem. Wahrscheinlich wurde darauf die Software
entwickelt und dann mittels Eprom-Emulator oder Eprom-Brenner direkt
am ZX81 getestet.

Die Assembler und Compiler waren sündhaft teuer und der Otto-Normal-
bürger konnte sich weder einen CP/M-Rechner, noch Assembler leisten.

In den 90ern, als Mikrocontroller noch externe Eproms hatten, hat man
gerne eprom-Emulatoren mit Ram verwendet. Die wurden u.a. am Parallel-
port angeschlossen und haben einen Drucker simuliert.

Im Emulator hat dazu ein Binärzähler die Adressen des Rams hochgezählt
(mit Hilfe des Strobe-Signals vom parallelport) und über die acht
Datenleitungen das RAM beschrieben. Am Schluss wurde der Reset für den
Prozessor freigegeben und dieser hat mit dem neuen Programm gestartet.

Genauso kann man auch ein Eprom beschreiben. Es sind lediglich noch
Timer und eine Programmierspannungserzeugung notwendig.

Habe ich alles noch im Keller liegen samt Eprom-UV-Löschgerät. Kannste
gerne alles haben. (kostenlos)

Der Apple II hatte damals eine Z80, bzw. 8080 Steckkarte. Damit kamen
dann auch erstmals bezahlbare Assembler und erste Compiler auf. Das war
aber zeitlich nach der ZX81-Ära und nicht wirklich mehr relevant.

Einige Elektroniker haben auch mittels DIP-Switches selber Programme
in Maschinensprache direkt in EEPROMs gebrannt. Ich gehöre auch dazu.

Mir ist auch bekannt, dass es Boot-Programme gab, die aus Diodenarrays
aufgebaut waren und über einen Zähler ausgelesen wurden. Mit 16 Bytes
konnte man schon einen Bootloader bauen. :)

Früher hatten diese CPUs noch einen Ausgang der aktiv wurde, wenn ein
Befehl abgearbeitet wurde und einen stopp-Eingang mit dem sie angehalten
werden konnten. Somit konnte man Programme step für step abarbeiten, 
eben
mit DIP-Schaltern und Tastern.

Wenn Du heute ein Image auf ein EEPROM brennen möchtest, dann benötigst
Du lediglich einen EPROM-Brenner. Ich habe lange nicht mehr geschaut 
aber
sowas gibt es sicher noch. Sicher auch für USB. Wobei, die alte Methode
mit dem Druckerport würde immer noch gehen. ...sofern der PC sowas noch
hat.

Viele Grüße,
Christian

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Winfried J. schrieb:
>> um dort eine Viertelstunde Höhensonne zu buchen
>
> du hättest ihn auch im Sommer aufs Fensterbrett kleben/legen können.

Nö, ham wir damals probiert, war selbst nach einer Woche im Sommer aufm 
Fensterbrett nichts zu machen, die Bits sind nicht mal ansatzweise auf 
high gehüpft. Zumindest die 2716, mit denen wir damals gespielt haben, 
waren da recht resistent. Ich habe dann auch beschlossen, die EPROMs in 
meinem Apple ][ Klon nicht zu zukleben und habs nie bereut :-)
Mein 8051 Entwicklungssystem hatte einen Static RAM ab 0h8000 und unten 
bei 0h0000 natürlich den EPROM. Wenn ich was probiert habe, dann immer 
mit ORG 0h8000 assembliert und ins Dev System hochgeladen. Wenns 
gelaufen ist, dann mit ORG 0h0000 nochmal assembliert und ab ins EPROM.

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> In Summe geht es hier um einen alten Computer (ZX81)

Hm..ich kann dir sagen wie das 1983 mit einem ZX-Spektrum funktioniert 
hat.

Zunaechst mal, man fragte nicht im Internet doof rum wenn man etwas 
nicht konnte sondern hat entweder ein Fachmagazin (Happy Computer, Elrad 
:-) gelesen. c't gab es erst ab 12/83. Ausserdem hat man sich den Zaks 
aus der Stadtbibliothek besorgt. Und irgendwoher, Reviermarkt? Kam eine 
Kopie einer Kopie von einer Kopie des Schaltplans und der 
Steckerbelegung. Die war so beschissen lesbar das ich selbt mit 16 schon 
glaubte einen Augenschaden zu haben.

Auf der Hobbytronik konnte man sich den Stecker fuer den 
Erweiterungsslot kaufen. Ausserdem ein Eprom. (Damit war das Taschengeld 
dann weg)
Im uebrigen nicht mit einem Nullkraftsockel. Dafuer war man als Schueler 
nicht reich genug.
Dann hat man sich die Schaltung ausgedacht und das Programmiergeraet auf 
Lochraster gefaedelt und hinten an den Erweiterungsbus gesteckt. Die 
Software wurde in Basic geschrieben. (Aechz. Basic, so ein scheiss!)
Die 1ms Impulse fuer den Programmieralgorythmus wurden mit einem 1Kanal 
Hameg ueberprueft das es kurz vorher als Bausatz(!) zu Weihnachten gab.

Die Assemblerprogramme wurden auf Papier von Hand geschrieben und 
uebersetzt. Das hat den Vorteil das man danach die wichtigsten 
100Befehle und ihren Hexcode auswendig konnte. (Ich glaube RET ist C9 
oder? :-) Und den Nachteil das man eine gewisse Aversion gegen relative 
Spruenge entwickelt.

Tja, und dann konnte man z.B das Rom dex ZX in das Eprom kopieren und 
dort zusaetzliche Routinen einfuegen die es erlaubt haben von jeder 
Kasette eine Sicherungskopie zu machen. :-D

Interessant war auch das Loeschen des Eproms. Das lief mit einem 250W 
HQL Quarzbrenner mit entferntem Aussenglas. Einschalten, Kinderzimmer 
verlassen, 10min warten, Luft anhalten (wegen Ozon) zurueckkommen und 
Stecker ziehen und Fenster oeffnen. Da sind dann auch gleich alle 
Muecken von der Wand gefallen weil sie einen Sonnenbrand hatten und 
blind waren.

Was lernt man draus?

1. Der heutige Nachwuchs nervt manchmal weil er es fuer normal haelt das 
alles von selbst geschieht und er ein Recht auf Doofheit und Internet 
hat.

2. Man hat Verstaendnis dafuer weil man selber niemals mehr so 
entwickeln moechte. Waren halt harte Zeiten damals. :-)

Olaf

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Meinen ZX81 habe ich damals mit aufgestocktem RAM gepimpt, ich denke
mal, so etwas ähnliches hat der TE auch vor. Auf den 2k RAM (6116 oder
so) habe ich weitere 6116 gestapelt. Das /CS Signal für die RAMs kam von 
einem 74138 in
Dead-Bug Technik.
Wenn man nun statt der aufgelöteten RAM einen 24 pol. Sockel nimmt, kann
man da auch ein EPROM aufsetzen. Trickig ist allerdings die
Programmierung, denn der ZX81 hatte da ja kein Assembler drin, sondern
Tokenized Basic.

Ans Sinclair ROM geht man besser nicht ran, die Nummer mit dem Video,
der ULA und dem NMI kriegt man speziell als Anfänger vermutlich nie hin.

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> Trickig ist allerdings die Programmierung, denn der ZX81 hatte da ja kein
> Assembler drin, sondern Tokenized Basic.

Deshalb hatte man da ja von Hand gemacht. Da ist man wenigstens 
motiviert keine Fehler zu machen. :-)
Ich glaube im Elektor Halbleiterheft von 1979 war auch eine Schaltung 
drin wie man ein Eprom nur mit Schaltern und einem Monoflop 
programmiert. Das war dann wohl fuer die ganz harten.

> Ans Sinclair ROM geht man besser nicht ran, die Nummer mit dem Video,
> der ULA und dem NMI kriegt man speziell als Anfänger vermutlich nie hin.

Das Rom im ZX Spektrum war pinkompatibel zum 27128. Ausserdem war der 
gesamte Adressraum bereits belegt.

Wenn man nur im Ram programmieren will dann kann man das ja auch einfach 
in eine Rem-Zeile poken.

Olaf

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Olaf schrieb:
> Das Rom im ZX Spektrum war pinkompatibel zum 27128. Ausserdem war der
> gesamte Adressraum bereits belegt.

Im ZX81 wars ein 8k Mask-ROM, vermutlich auch JEDEC Standard a là 
2564/2764. Voll bis obenhin und eben die trickige Videologik mit der 
Ferranti ULA verwurschtelt. Der Z80 rechnete praktisch nur in der 
Austastlücke, während des Bildaufbaus bekam er von der ULA NOPs 
untergeschoben und Ferranti machte das Video.

Olaf schrieb:
> Ich glaube im Elektor Halbleiterheft von 1979 war auch eine Schaltung
> drin wie man ein Eprom nur mit Schaltern und einem Monoflop
> programmiert. Das war dann wohl fuer die ganz harten.

Denke ich auch. Ich habe mir letztes Jahr aus der Not heraus wieder 
einen Prommer gebaut, der am LPT läuft:
http://www.qsl.net/iz7ath/web/02_brew/17_eprom/english/pag01_eng.htm

: Bearbeitet durch User
von Rudolph (Gast)


Lesenswert?

Matthias Sch. schrieb:
> einen Prommer gebaut, der am LPT läuft:

Was ist denn ein LPT? :-)

In der Firma habe ich einen Galep3 liegen für die immer seltener 
auftretenden "Notfälle", so alle paar Jahre inzwischen.
Dafür habe ich dann auch noch ein Notebook mit XP weil die Galep32 
Software sich unter Win7 nichtmal installieren lassen will und aktuelle 
Rechner sowieso nur noch USB haben.

von Stefan F. (Gast)


Lesenswert?

LPT = List Printer

Er meint wohl eher den SPP = Standard parallel Port.

Wobei zu Basteln der EPP =Enhanced Parallel Port wesentlich 
interessanter war, da bidirektional und schneller. Beinhahe jeder 
Desktop Computer seit der 386er Generation hat einen EPP kompatiblen 
Port.

von jodel (Gast)


Lesenswert?

Stefan us schrieb:
> LPT = List Printer
>
> Er meint wohl eher den SPP = Standard parallel Port.
>

Deine Beiträge sind wie Tag und Nacht. Dieser ist sehr verquer.

von Torsten K. (Gast)


Lesenswert?

Christian schrieb:
> ...
> Habe ich alles noch im Keller liegen samt Eprom-UV-Löschgerät. Kannste
> gerne alles haben. (kostenlos)...
>
> Viele Grüße,
> Christian

Hallo Christian... an Deinem Angebot hätte ich durchaus Interesse. Wenn 
Du dazu stehst, dann schreib mich doch bitte mal per PN an wenn Du 
Forumsmitglied bist.

Allen anderen für Ihre bisherigen Beiträge vielen Dank... auch wenn 
diese von meiner eigentlichen Frage teilweise abschweifen... aber 
Geschichte(n) ist/sind ja auch schön :-)

von Torsten K. (Gast)


Lesenswert?

Hallo Christian,

vielleicht liest Du diesen Thread ja nochmal... würde mich freuen wenn 
Du mich bezüglich Deines oben gemachten Angebots per PN anschreiben 
könntest, damit wir ggf. alles weitere regeln könnten.

Vielen lieben Dank

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.