Z80 vs. 8085

Gast #4073811
Lesenswert?

Zusätzlich zu allem anderen schon gesagten:

was mich am 8085 gestört hat, war, dass Daten- und Adressbus teilweise 
gemultiplexed waren. Für mich (ich war damals noch Kind/Jungendlicher) 
hat das die Dinge unnötig verkompliziert.
Auf jeden Fall macht es einen zusätzlichen Baustein nötig.
Schon deshalb hätte ich den Z80 bevorzugt.

(Nichts desto trotz habe ich irgendwo in meinen Beständen einen 8085 
rumliegen - neben mehreren Z80... )
#4073825
Lesenswert?

mse2 schrieb:
> was mich am 8085 gestört hat, war, dass Daten- und Adressbus teilweise
> gemultiplexed waren.

Der 8085 war erkennbar auf embedded Systems optimiert. Das eine Latch 
sorgte zwar für etwas zusätzlichen Aufwand, aber dafür hatte der 8085 
einen Reset-Schmitt-Trigger mit Reset-Ausgang für die Peripherie, einen 
integrierten Taktoszillator und einige zusätzlich zu den üblichen 
Interrupt-Techniken direkt nutzbare Interrupt-Eingänge. In Verbindung 
mit Peripheriebausteinen wie dem 8156 (I/O plus RAM) war der Aufwand für 
Kleinsysteme sehr gering.
Moderator Persönliche Seite #4073833
Lesenswert?

Den "Krieg" 6502/Z80 gibt es es schon s lang, wie es diese Bausteine 
gibt :-)

Der Z80 war "schöner" zu programmieren, dafür brauchte er für jeden Mist 
mehrere Zyklen.

Letztendlich geben die sich beide nichts.

Zum 8085: schon zu damaliger Zeit wurden einfach mehr Z80 im Bereich 
Heimcomputer usw. (CP/M) verwendet.

Ich denke, dass das eine große Rolle spielt: man möchte natürlich 
Retroprojekte mit dem Prozessor realisieren, den man als Jugendlicher 
verehrt hat :-) Und da tauchte eben fast nur der Z80 auf. Der 8085 
"versteckte" sich in Steuerungen etc.

Ich war 6502-Junkie - ich würde NIE einen Z80 nehmen <:-)
(Firma: matzetronics) #4073858
Lesenswert?

Durch die vielen Register des Z80 konnte man sich manchmal zusätzlichen 
RAM sparen, wenn nur ein minimales System gefordert wurde, hehehe. Das 
war beim 6502 nicht drin.
Habe aber gerne beide programmiert, der 6502 hatte eben ein beinhartes 
Timing - was dem Apple ][ zu seiner trickigen Grafik verholfen hat.
Der 8085 ist mir in den 80ern immer wieder auf Aufzugsteuerungen 
begegnet - und wimre gabs mal einen Nixdorf Rechner mit dieser CPU.
#4073863
Lesenswert?

Matthias Sch. schrieb:
> der 6502 hatte eben ein beinhartes
> Timing - was dem Apple ][ zu seiner trickigen Grafik verholfen hat.

Während spezielle Eigenschafen des Z80 Sir Clive Sinclair zum ZX80 
inspirierten, wie etwa der Refresh-Counter zur Beendigung der 
Display-Zeile und die Art der Ausführung des HALT Befehls.

Ich sass mal einen Nachmittag mit einem Freund zusammen und wir 
analysierten das Schaltbild davon (war öffentlich). Und war ziemlich 
geplättet als uns die Zusammenhänge klar wurden, auf denen dieses 
wirklich krass minimierte System beruhte.
Gast #4073870
Lesenswert?

Also mein erster 'Kontakt' mit Mikroprozessoren war theoretischer Natur: 
mir fiel auf einer Funkausstellung Ende der 70er ein Sonderheft von 
Franzis in die Hände, in dem ein Projekt mit einem 2650 (Signetics, 
http://en.wikipedia.org/wiki/Signetics_2650) beschrieben wurde. Durch 
diese Lektüre habe ich gelernt, wie ein Mikroprozessor funktioniert.
Praktisch gemacht habe ich auf dem Gebiet aber noch lange nichts.
Ich habe damals nur analoge und diskret-digitale Sachen gebaut.

Der Z80 kam für mich etwas später...
Moderator Persönliche Seite #4073872
Lesenswert?

H.Joachim Seifert schrieb:
> Genau, es sind die Erinnerungen, die die Teile glorifizieren :-)
>
> Ich kann mich noch gut an die Freude beim stückchenweisen Verstehen des
> Prozessors erinnern.

Jaaaa :-)

Man war der Held, weil man plötzlich etwas mit einer "169" im 
DATA-Konvolut der 64'er-Programme anfangen konnte.

Vorher war das alles Voodoo und nur dem kleinen Kreis der Eingeweihten 
vorbehalten :-)
Persönliche Seite #4074077
Lesenswert?

Ulrich F. schrieb:
> Der einfachste.

Joachim Drechsel schrieb:
> Da war der 6502 erheblich übersichtlicher ...

Es gäbe da noch eine Alternative, bisher aber nur für FPGAs:
http://www.mikrocontroller.net/articles/8bit-CPU:_bo8

Es gibt keine Flags ausser dem Carry-Flag. Der Programmierer muss
nicht ständig nachschauen, wie welche Flags beeinflusst werden.

Es gibt bei den Daten ausser "immediate" nur eine einzige
Adressierungsart: Ein Adressregister zeigt auf die Speicherstelle.
(Die Adressregister sind um einen 1Byte-Wert in-/dekremetierbar.)

Die Adressregister X,Y,Z sind vollständig gleichberechtigt.

Die Berechnung der Dauer von Befehlsfolgen
durch Abzählen von Zyklen ist sehr einfach.


Jede von der CPU ausgegebene Adresse kommt von einem der
Adressregister P,X,Y,Z. Auf den Steuerleitungen wird angezeigt,
von welchem der Adressregister die Adresse kommt. Dadurch kann
eine externe Logik jedem der Adressregister eine eigene 64K-Seite
zuweisen. Die CPU kann durch Steuersignale Seitenumschaltungen
veranlassen. Sprünge sind mit einer Seitenumschaltung für P
kombinierbar. Dadurch kann die CPU in eine andere Speicherseite
springen, ohne dass es einen für beide Seiten gemeinsamen
Speicherbereich geben muss.
#4074215
Lesenswert?

Josef G. schrieb:
> Es gäbe da noch eine Alternative, bisher aber nur für FPGAs:
> http://www.mikrocontroller.net/articles/8bit-CPU:_bo8
>
> Es gibt keine Flags ausser dem Carry-Flag. Der Programmierer muss
> nicht ständig nachschauen, wie welche Flags beeinflusst werden.

Ach du ScheiXXe. Das ist die gleiche dämliche Begründung wie die für den 
minimalistischen Befehlssatz der 8-Bit PICs. Am Ende wird dadurch 
nichts leichter, im Gegenteil werden viele Dinge schwieriger.

Mindestens ein Zero-Flag hätte es schon sein dürfen. Und auch die 
anderen Flags die man typischerweise so hat (Negative, Half-Carry, etc) 
schaden nicht wenn sie da sind. Denn als Programmierer muß man sie ja 
nicht testen, wenn man das nicht will (lies: braucht).
#4074248
Lesenswert?

A. K. schrieb im Beitrag #4074240:
> Axel Schwenke schrieb:
>> Mindestens ein Zero-Flag hätte es schon sein dürfen.
>
> Ob man auf Flag-Inhalt oder Registervergleich springt ist unerheblich.
> In bestimmten Fällen hat Letzteres erhebliche Vorteile, wenngleich das
> eher auf grössere Kaliber zutrifft.

Ich habe mir einfach mal vorgestellt, wie man eine ganz alltägliche 
Operation mit dieser CPU programmiert: einen nullterminierten String 
auszugeben. Klassisch lädt man dazu den String Zeichen für Zeichen über 
ein Indexregister. Und wenn man die terminierende 0 lädt, wird das 
Zero-Flag gesetzt und man kann die Schleife verlassen.

Wenn man jetzt nur ein Carry-Flag hat, muß man bei jedem Schleifen- 
durchlauf erstmal eine Vergleichsoperation machen (vorausgesetzt die 
wurde nicht auch zugunsten einer Subtraktion weggespart ;)
Einen direkten Vorteil durch das Weglassen des Zero-Flags kann ich da 
gerade gar nicht erkennen.
Moderator Persönliche Seite #4074262
Lesenswert?

Joachim Drechsel schrieb:
> Und nicht ohne Assembler-Handbuch programmierbar

Drei kleine Blätter mit den Befehlstabellen genügten vollkommen. :)

(Ich hatte dafür drei kleine Fotokopien aus einem
„electronica“-Heftchen.)

Naja, für vieles brauchte man nichtmal die, weil man auf die Dauer
sowieso die Opcodes auswändig kannte. :-)

Mit 6502 bin ich nur so sehr am Rande in Kontakt gekommen, dass ich
da keine großen Erinnerungen habe.
#4074267
Lesenswert?

Axel Schwenke schrieb:
> Wenn man jetzt nur ein Carry-Flag hat,

Ich habe es nach 3maligem Überfliegen aufgegeben, aus seiner "Doku" 
schlau zu werden. Insofern ist mir auch noch nicht klar, abhängig von 
was man überhaupt springen kann. Immerhin bedeutet die Abwesenheit eines 
Z-Flags nicht zwangsläufig, dass man nur per C-Flag bedingt springen 
kann. Der 1802 hatte auch nur ein C-Flag, aber eine Vielzahl 
anderweitiger Bedingungen, wie etwa Akku=0.

Auch an anderer Stelle wurde ja bereits offenbar, dass Josef einzelnen 
Zeichen mehr Bedeutung beimisst als lesbaren Worten. Das atmet ungefähr 
den Geist der 60er Jahre und davor, als man nicht selten Befehlsnamen 
aus einzelnen Zeichen und Optionen synthetisierte statt sie aus 
Wortstämmen zu bilden. Also vorne "A" für ADD oder "N" für AND, dann "X" 
oder "B" für die Registergruppe und dahinter das Zielregister, so dass 
man einen Befehl "NX4" nur entschlüsselt kriegt, wenn man die ISA schon 
gut beherrscht. Ich persönlich finde sowas wie "AND X4,..." lesbarer.
Gast #4074279
Lesenswert?

Ich werfe mal den 68008 ein. Klar der kam etwas später war aber sowas 
von klasse.
8 Daten und 8 32 Bit breite Addressregister, aufgeräumter Befehlssatz, 
leistungsfähige Adressierungsarten, ...
Mit dem Teil habe ich einen Teil meiner Sudienarbeit in Assembler 
gemacht :-)
Gast #4074359
Lesenswert?

Chris D. schrieb:
> Ich war 6502-Junkie - ich würde NIE einen Z80 nehmen <:-)

Hmm.. das erklärt vieles. Es gab schon immer ein abgrundtiefes Miß- oder 
Nicht-Verstehen zwischen dem Motorola-Lager und dem Intel/Zilog-Lager 
und nun kommt noch als drittes ein Mostek-Lager dazu...

W.S.
Gast #4074449
Lesenswert?

Josef G. schrieb:
> Jede von der CPU ausgegebene Adresse kommt von einem der
> Adressregister P,X,Y,Z. Auf den Steuerleitungen wird angezeigt,
> von welchem der Adressregister die Adresse kommt. Dadurch kann
> eine externe Logik jedem der Adressregister eine eigene 64K-Seite
> zuweisen. Die CPU kann durch Steuersignale Seitenumschaltungen
> veranlassen. Sprünge sind mit einer Seitenumschaltung für P
> kombinierbar. Dadurch kann die CPU in eine andere Speicherseite
> springen, ohne dass es einen für beide Seiten gemeinsamen
> Speicherbereich geben muss.

SC/MP von 1974.

A. K. schrieb:
> Jeder, der die PDP-11 kannte und die 68000 sah, erkannte sofort die
> Inspirationsquelle von Motorola.

Heute würde man Copyrightverletzungen einklagen.

Aber Intel hat beim iAPX 80286 von der Burroughs 5500 abgekupfert 
(leider haben sie das dirty bit vergessen) und den 8086 schon so gebaut 
daß er eine stark abgespeckte davon war damit er sich mit der damals 
technologisch verfügbaren Anzahl von Transistoren auf einen Chip passte.
#4074454
Lesenswert?

Zumindest bei der Peripherie haben sich 68xx und 6502 ganz gut 
verstanden. Der 6500 war ja auch so eine Art billige "Kopie" für den 
6800.

Als einfacher sehe ich die 6502 / 68xx an. Etwas erfolgreicher wären 
wohl die Z80. Mit dem erscheinen des Z80 war der 8085 halt schon fast 
überholt.
Gast #4074738
Lesenswert?

Der 8085 hatte sogar eine on Chip v24 das 9te bit des Akku war auf einen 
SI und SO Pin gelegt mit dem sich seriell mit der rotatebefehlen vieles 
machen lies.

Habe 1979 damit ein einfaches System gebaut, das in der Lehrwerkstatt 
von Blaupunkt viele Male aufgebaut wurde.

Mfg
Michael
Gast #4074769
Lesenswert?

Auch noch mein Senf: Weil der 8085 eine Teilmenge des Z80 darstellt.
Das ist doch faktisch nur ein 8080 ohne -5V und +12V, ok die angepaßte 
Peripherie für Emmeded Systeme (8155/6 etc) brachte ihn mit dem 
Bauteilaufwand etwas herunter bei kleinen Systemen, abe rVortiel 
gegenüber einem Z80 mit seinen flexiblen Peripheriebausteinen hatte das 
faktisch nicht.
In der DDR war sowieso klar was verwendet wurde, als Import aus den RGW 
Ländern gabs faktisch nur den 8080 (Polen, CSSR, Russei) (die Bulgaren 
bauten wohl den 6800) danach hat sich in der DDR keiner umgedreht.
Dem Z8000 trauere ich etwas nach... aber Zilog gehts wohl so wie Atmel 
heute, der Erfolg läßt sich nicht wiederholen.

Gruß,

Holm
Moderator Persönliche Seite #4074791
Lesenswert?

Holm Tiffe schrieb:
> Auch noch mein Senf: Weil der 8085 eine Teilmenge des Z80 darstellt.

Nö, eine Teilmenge des i8080.

> Das ist doch faktisch nur ein 8080 ohne -5V und +12V

Plus ein bisschen Kram (war da nicht etwas Interruptlogik? Ich erinnere
mich nur dunkel), den man eher in einen Controller gepackt hätte denn
einen Prozessor (was der 8080 ja war).
#4074795
Lesenswert?

Jörg Wunsch schrieb:
> Plus ein bisschen Kram (war da nicht etwas Interruptlogik?

3 direkte maskierbare Restart-Eingänge und einen NMI, zusätzlich zum 
8080-Interrupt. Und die beiden seriellen Anschlüsse, einer rein, einer 
raus, mit entsprechenden Befehlen.

8085 + 8155/8156 + 8355/8755 = 5 Ports, 1 Timer, 256 Byte RAM, 2KB 
ROM/EPROM. Keine Zusatzbeschaltung nötig. Dafür war das Teil optimiert. 
Mit Z80 war das deutlich aufwändiger.

In PC-artigen Systemen hingegen war Z80 aufgrund des Speicherbedarfs und 
folglich der DRAM-Unterstützung klar im Vorteil.
#4074821
Lesenswert?

Naja, die speziellen kombinierten Peripheriebausteine waren damals 
irrwitzig teuer - ich weiss es noch wie heute:
Das war mein erstes Projekt als ich als Student in einer Elektronikbude 
jobbte. Fand den Entwurf schon irgendwie elegant und lief mit 
stolzgeschwellter Brust zum Chef damit. Am nächsten Tag (erwartete 
freundliches und anerkennendes Abnicken) kam das böse Erwachen - keine 
Chance, viel zu teuer. Es wurde dann ein Z80 mit RAM, EPROM und PIO 
(genau weiss ich es nicht mehr, aber  ich glaube, das war nicht die 
Original-Zilog, sondern der ordinäre 8255)
#4074830
Lesenswert?

H.Joachim Seifert schrieb:
> Naja, die speziellen kombinierten Peripheriebausteine waren damals
> irrwitzig teuer

Alle, oder die EPROM-Version 8755? Diese Dinger, auch 8748&Co, waren 
schweineteuer und letztlich auch eher als Entwicklungsplattform für die 
Maskenversion gedacht. Unterhalb jener Stückzahlen, bei denen 
Masken-ROMs in Frage kamen, lohnte sich das also eher nicht.

Deshalb hat die insbesondere im Bastelsektor auch niemand verwendet, 
Statt dessen gab es viel günstigere Alternativen, wie etwa die 
Minimalversion in Form von der 28-Pin CPU 6504, plus 6532 und EPROM, mit 
1-2KB EEPROM, 128 Bytes RAM, 2 Ports und einem Timer.

Ohnehin: Die 650x CPUs kamen mit dem erklärten Ziel raus, die Konkurrenz 
erheblich zu unterbieten. Intel und Motorola waren teuer.
Gast #4074954
Lesenswert?

Jörg Wunsch schrieb:
> Holm Tiffe schrieb:
>> Auch noch mein Senf: Weil der 8085 eine Teilmenge des Z80 darstellt.
>
> Nö, eine Teilmenge des i8080.
>
>> Das ist doch faktisch nur ein 8080 ohne -5V und +12V
>
> Plus ein bisschen Kram (war da nicht etwas Interruptlogik? Ich erinnere
> mich nur dunkel), den man eher in einen Controller gepackt hätte denn
> einen Prozessor (was der 8080 ja war).

J ich weiß wer hier wessen Nachfolger und was welche Weiterentwicklung 
ist.
Fakt ist doch aber das, wenn man vom 8085 den 8080 subtrahiert nicht 
viel übrig bleibt, nicht mal 5...

Gruß,

Holm
Gast #4075704
Lesenswert?

A. K. schrieb:
> Nicht nachvollziehbar finde ich aber diese Lagereinteilung. Ich hatte
> mit allen zu tun und sitze damit offenbar zwischen allen Stühlen.

Naja, so aus heutiger Sicht war das ja wohl auch einigermaßen 
irrational.

und zum Z8000:
A. K. schrieb:
> Das war seitens Zilog schon in der Entwicklungsstrategie versemmelt
> worden.

Vergiß mal nicht, was für einen gewaltigen Einfluß der IBM-PC hatte. 
Erstmals hatten die Leute einen echten PC, der sich auch noch dank des 
recht einfachen ISA-Busses von jedem erweitern ließ. Da kam der Z8000 
einfach nicht gegen an, egal wie gut oder schlecht er war. Daß es die 
8086-Reihe so weit gebracht hat, ist schlichtweg IBM zu verdanken - und 
auch daß es nach ein paar Jahren PC's für jedermann gab. Erinnere dich 
mal, zu was für horrenden Preisen damals Z80-haltige CP/M-Rechner 
gehandelt wurden, bevor sie durch den IBM-PC obsolet wurden.

W.S.
Gast #4075757
Lesenswert?

Der von ACME-Inc, Anfang der 90er, in Kleinserie gefertigte 8085-Ableger 
"LMAA8085-LIRPA.1" läßt den Z80 und viele folgende µP noch heute alt 
aussehen. Mit 104Mhz Takt und 2015MB Adressraum war er seiner Zeit weit 
voraus.
#4076033
Lesenswert?

W.S. schrieb:
> A. K. schrieb:
>> Nicht nachvollziehbar finde ich aber diese Lagereinteilung. Ich hatte
>> mit allen zu tun und sitze damit offenbar zwischen allen Stühlen.
>
> Naja, so aus heutiger Sicht war das ja wohl auch einigermaßen
> irrational.

Genau!!1!elf!

Wo doch jeder weiß, was die wirklich wichtigen Fragen sind:

Intel oder AMD?
Windows oder Linux?
Emacs oder vi?
IDE oder Makefile?
Salafisten oder Katholiban?

SCNR
#4076095
Lesenswert?

MaWin schrieb:

> Aber Intel hat beim iAPX 80286 von der Burroughs 5500 abgekupfert
> (leider haben sie das dirty bit vergessen) und den 8086 schon so gebaut
> daß er eine stark abgespeckte davon war damit er sich mit der damals
> technologisch verfügbaren Anzahl von Transistoren auf einen Chip passte.

WIMRE waren die Burroughs Stackmaschinen und damit so un-x86ish
wie möglich. Segmentierten Speicher gab's schon lange, beim 286
waren die Segmente einfach nur zu klein. Beim 386 haben sie das
endlich in Ordnung gebracht, der konnte auch page tables
und die haben dann eben gewonnen.

Ich hab' nix gegen Stackmaschinen; wir haben in einem früheren
Leben an der TUB eine 8/16 Bit Multi-Stack-Maschine in dynamischem
N-MOS von HP gemacht, leider lag ein fetter Metallbalken quer
über dem Chip; der design rule checker war auch noch experimentell :-)

Gruß, Gerhard

(Was habe ich Zeit vergeudet um Spice unter Interactive Unix
im large memory model des 286 zu compilieren... Manchmal ist die
Wand einfach härter als der Kopf!)
Gast #4076202
Lesenswert?

Heinz K. schrieb:
> Der 8080 brauchte aber im Gegensatz zum 8085 noch einen Taktgenerator
> (8224) und einen Buscontroller (8228)und drei Versorgungsspannungen
> (+12 V, +5 V, −5 V).
>
> H.

Läßt sich durch wenig Gemüse ersetzen, bis auf die Betriebsspannungen, 
die aber angesichts der damals verfügbaren Speicher (4116, 2708) auch 
keinen besonderen Zusatzaufwand darstellten.


Gruß,

Holm

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren