Anfängerfragen zum Z80

Hallo Leute

Ich hab eine Menge alter Z80 Platinen im elek. Müll gefunden.

Viele Bausteine vom Typ: 74HC* Z80 CTC (von Zilog) Z80 PIO (von Zilog) Z80 CPU (von Zilog) Z80BPIO (von ST) 2716 Eproms usw ...

Wirklich ne Menge, so um die 100 IC`s hab ich von den Platinen genommen. Möchte natürlich den Z80 benutzen, hab jetzt aber keine Ahnung wo oder wie ich beginnen soll. Ich kann ein bisschen C. Der sdcc Compiler unterstützt den Z80, also hab ich ihn mir gleich installiert.

Hier meine Fragen an die Z80 Kenner hier im Forum:

  1. Wie programmiert man den Z80 ? Bin ich richtig in der Annahme, dass die cpu nur mit "externen" Eprom etwas anfangen kann?

  1. Gibt`s ein einfachen Eprom Programmer, welcher gratis ist (inkl. Software für Unix oder Dos)?

  2. Was ist der Unterschied (grob) zwischen Z80 CTC, Z80 CPU und Z80 PIO ?

  1. Gibts einfache Beispiele um z.B ein LCD anzusteuern oder LED`s?

Vielen Dank

Fab

Reply to
Karim
Loading thread data ...

...

Das ist besser als nichts. Trotzdem solltest du Z80-Assembler wenigstens lesen können, damit du vorwärts kommst.

((E)EP)ROM oder RAM. Was immer du hast und irgendwie beschreiben kannst.

Siehe FAQ. Ansonsten gibts noch PROM-Emulatoren (im Prinzip ein RAM, das man per LPT beschreibt und in der Zielschaltung auf den EPROM- Sockel steckt). Oder man nimmt ein zero-Power-RAM. Oder man baut sich eins aus einem CMOS-RAM und einer Lithium-Zelle. Auch EEPROMs oder Flash-ROMs sind leicht beschreibbar (leichter als EPROMs).

Das ist entweder eine CPU (Central-Processing-Unit = Prozessor) oder ein CTC (Counter-Timer-Circuit) oder ein PIO (Parallel-Input-Output). Außerdem gibts noch SIO, DMA und ein paar Varianten.

Datenblätter findest du bei Zilog und an ca. weiteren 100 Stellen im Netz. Die Z80-Familie war (ist?) unheimlich populär. Google hilft.

Im Netz. Läuft dann meist über eine PIO oder gleich ein Latch am Datenbus.

Zum Schluß noch eins: der Z80 war mal eine nette CPU. Mittlerweile gibts aber weit besseres. Insbesondere ist der Einstieg wesentlich einfacher, wenn du einen AVR

formatting link
mit ein paar Widerständen am LPT programmieren kannst. Ein Z80-Minimalsystem besteht aus CPU, Takt-/Reset-Generator, RAM, (E(EP))ROM, PIO. Das will alles erst mal funktionsfähig(!) verdrahtet sein.

AVR-Einsteigerkurs:

XL

Reply to
Axel Schwenke

Karim meinte am 25.09.04 zum Thema "Anfängerfragen zum Z80":

Indem man sich bei Sybex von Rodney Zaks "Programmierung des Z80" besorgt.

Hardware gibt es bei Ebay.

Da gibt's ein paar nette Bücher von Rolf-Dieter Klein.(z.B: "Der NDR Klein- Computer" btw: Nettes Foto auf der Rückseite.).

Kapitel 2 war afaik "Wir bauen uns eine kleine Ampel-Anlage".

-jha- id 0x8fce1185 at the usual places.

--
BILD lügt
Reply to
Johann H. Addicks

Du kommst ca. 25 Jahre zu spät. ;-)

In Assembler.

Ja.

Kein Ahnung, mein Programmer war Marke Eigenbau für den Anschluß an den ZX-Spectrum.

CTC = Timerbaustein, PIO = 2*8 Bit Parallelport, CPU = wie der Name schon sagt ...

Unzählige, abhängig von der Periferie. Die CPU allein ist ziemlich wertlos.

Reply to
Le Filou

Es haette mir auch irgendwie weg getan ich gebs zu, aber ich haette sie da gelassen.

Waere es dann nicht besser du laesst sie auf den Platinen und findest heraus wie sie aufgebaut sind? Dann brauchst du nur ein neues Program fuer deine Anwendung zu schreiben.

Wenn du in C programierst macht es keinen Unterschied ob du einen Z80 oder irgendwas anderes benutzt. Ein Microcontroller fuer 2-3 Euro der alles enthaelt was du da oben aufzaehlst (z.B der Mega8) ist dann die vernuenftige Wahl weil sich der mit einem Kabel vom Rechner programmieren laesst.

Ja, zumindest der normale Z80 wie du ihn nun hast. Es gibt wohl auch Microcontroller auf Z80 Basis.

Gab es sicherlich mal. Problem ist nur das du zum brennen feste Timings einhalten musst. Einfachsthardware braucht dann wirklich echtes DOS und Rechner die nicht zu schnell sind. Und die Software um einen 2716 zu brennen kannst du wirklich schnell selberschrieben. (Ich hab meinen ersten Eprommer in Basic fuer den ZX Spektrum programmiert :-)

Der Grund warum man soetwas heute aber nicht mehr moechte ist das loeschen! Ueberleg dir mal wie toll das programmieren ist wenn du bei jedem Versuch ein Eprom beschreiben musst, testen, geht nicht, loeschen, neu beschreiben. Selbst wenn du 20Stk 2716 hast wird das irgendwann nervig. Nicht ohne Grund gab es damals Epromemulatoren.

Nur die CPU ist eine CPU. :-) Die Pio ist ein Baustein welcher dir 2x8 Datenleitungen zur verfuegung stellt an denen du irgendwas anschliessen kannst. Der CTC ist ein Timerbaustein. Und wenn du keine SIO hast dann hast du KEINE serielle Schnittstelle. Wuerde ich vermissen....

Schau mal in deiner Stadtbuecherei unter den aeltesten Buechern nach. Da koennte es das eine oder andere ueber den Z80 gegeben haben.

Aber auch wenn es weh tut, ich muss dir wirklich abraten. Der Aufwand bis du da was am laufen hast ist sehr gross.

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza

Nach Typen sortieren und ( abgesehen von den 74HC die man selber verwenden würde ) bei ebay verhökern. Wie sprach der Moderator der Heavy Metal Sendung von BBC: whats for some people noise is for other people music. Analog wohl: whats for some people trash is for other people ebay.

Die LSIs sind eventuell noch alles NMOS. Der Z80 hat kein gängiges OTP-Controller oder gar FLASH-Controller-Derivat, insofern ist es unsinnig sich in den Befehlssatz einzuarbeiten. Zudem ist der Befehlssatz zum Erlernen von Assembler ( was auf alten 8 Bit CPUs leichter als auf Pentiumms und ARMs sein dürfte ) nicht optimal weil aufgebläht.

MfG JRD

Reply to
Rafael Deliano

Du brauchst eine Speicherbelegung. Die muss so aussehen, dass an der Adresse, die sich nach einem Reset einstellt, EPROM befindet. Alles andere ist eigentlich egal.

Zum Erstellen des Programmcodes braucht man entweder Assembler oder eine andere Hochsprache (zB C). Assembler kann zB asl sein (google nach alfsembler) für C kann man den SDCC nehmen.

Ponyprog könnte das sein, was du willst...

google mal nach "Z80 Home" da gibt es reichlich Codebeispiele und vieles andere. Gerade zum Z80 gibt es enorm viel Material. Und natürlich kann man auch Fragen stellen, hir zum Beispiel.

Viel Spass

Robert

Reply to
R.Freitag

Was vielleicht bei den anderen Antworten nicht ganz so rausgekommen ist: Der Z80 ist nach der "Von Neumann"-Architektur entwickelt worden - das beudeted, dass es nur einen Speicherbereich gibt, in dem EPROM und RAM eingebunden werden und per Adressdekoder selektiert werden (Im Gegensatz z.B. die AVRs oder PICs - sind aber schon Microcontroller - die Programm und Datenspeicher komplett getrennt haben). Dann kannst du aber noch nichts damit anfangen weil du Peripherie in den Speicherbereich auch noch einbinden musst (z.B. I/O Ports). Dadurch wird aber ein Platinendesign relativ aufwändig. Einen internen Speicher hat der Z80 nicht.

Ich weiß, sowas willst du nicht hören - aber ich würde die Z80 ICs bei Ebay zum Startpreis von 1EUR reinstellen und gleich mit einem Zeitgemäßen Microcontroller (z.B. AVR) anfangen - du sparst dir viel Arbeit und die Kosten für z.B. AVRs sind sehr niedrig und der hat Flash und Ram und Peripherie gleich drin :-)

Mfg

Thomas

Reply to
Thomas Pototschnig

"Thomas Pototschnig" schrieb im Newsbeitrag news: snipped-for-privacy@uni-berlin.de...

Ebay

Dieser Meinung kann ich mich nur anschliessen ! Ich selbst bin vor ca. 1 Jahr von PIC auf AVR umgestiegen und will jetzt mit den PICs nix mehr zu tun haben. Jetzt noch mit Z80 anfangen - NEIN ! Mir ist schon klar, dass du das jetzt anders siehst, aber wenn du die Unterschiede zu den modernen Controllern kennen würdest, würdest du das sicher genauso sehen.

Reply to
Jens Welbert

"Thomas Pototschnig" schrieb im Newsbeitrag news: snipped-for-privacy@uni-berlin.de...

Ebay

Dieser Meinung kann ich mich nur anschliessen ! Ich bin selbst vor ca. 1 Jahr von PIC auf AVR umgestiegen und will jetzt mit den PICs nichts mehr zu tun haben. Jetzt noch mit Z80 anfangen - NEIN. Mir ist schon klar, dass du das jetzt gar nicht verstehen kannst, aber wenn du die Unterschiede zu den modernen Controllers kennen würdest, würdest du das genauso sehen.

Reply to
Jens Welbert

Beim Z80 ist der Speicherbereich vom I/O-Bereich sehr wohl getrennt. Du möchtest bitte nachschlagen, was IORQ bedeutet.

Robert

Reply to
R.Freitag

"Der Z80 benutzt zur Ein- und Ausgabe eine besondere Input/Output Request-Line (IORQ) und besondere Befehle, und wickelt den Kontakt zur Außenwelt nicht wie der 6502 über den "normalen" Adressbereich ab. Hierbei wird über die untere Hälfte des Adressbusses adressiert (A0 - A7)"

Danke dass du mich auf meinen Fehler hingewiesen hast - wenn man mit vielen verschiedenen Microprozessoren und Microcontrollern gearbeitet hat bringt man schonmal was durcheinander :-) Außerdem arbeitet man mit dem Z80 seit ein paar Jahren nichtmehr...

IORQ macht es zwar etwas einfacher aber der Aufwand um RAM und EPROM zu trennen bleibt gleich - außer man kommt mit den internen Registern aus dann kann man sich das RAM sparen ... aber dann hat man keinen Stack und kann keine Calls ausführen und keine Register Push-en und Pop-en ... Hehe - ich merk schon - der Z80 wird immer einfacher je mehr man auf irgendein Feature verzichtet :-)

Trotzdem bleibt der Aufwand im Gegensatz zu heutige µController sehr groß. Zeitgemäß ist der Z80 trotzdem nicht und schon garnicht für neue Applikationen zu empfehlen...

Wenn ich jetzt wieder Blödsinn geschrieben habe bitte berichtige mich ...

Mfg

Thomas

Reply to
Thomas Pototschnig

Nun, jetzt war es erheblich besser :-)

Adressdecoduierung ist ein relativ triviales Thema, wenn man sich auf jeweils ein 27256 und ein 62256 festlegt und deren Speicher gleichmässig verteilt. Für die IO nehme man ein 74151 Decoder 1 aus 16 und kopple diesen an die bits 6,5,4,3 des Adressbusses, villeicht reicht auch ein '138.

so hat man...

Grüsse

Robert ( derzeit TLCS programmierend)

Reply to
R.Freitag

Axel Schwenke schrieb:

Jungs, ihr verwuselt da was. Der Z80 (ein verbesserter abwärtskompatibler Intel 8080) ist kein Mikrocontroller wie 8051, Atmel, Pic und Co. Er ist ein Mikroprozessor. Mit den dazugehörigen Systembausteinen von Zilog oder Intel (oder "Selbstgestricktem") lassen sich nahezu beliebige Mikrocomputer oder Mikrocontrollersysteme aufbauen. Wobei dynamische Speicher, DMA, flexibele Interruptbearbeitung etc keinerlei Problem sind. Eine ganze Generation von ernsthaften Computern unter dem Betriebssystem CP/M wurde von 8080 und Z80 befeuert. Diese Rechner waren die direkten Vorläufer unserer heutigen MSDOS Maschinen.

Im Controllerbereich wurden die Z80 eher da eingesetzt wo sich heute IPCs finden, wo größere Datenmengen vearbeitet, gespeichert und visualisiert werden müssen. Allerdings mussten für Kleinstückzahlen bis vor wenigen Jahren auch Mikrocontroller wie der 8051 mit ext. Eprom betrieben werden, Flash gabs noch nicht, int. Eprom war exorbitant teuer. Da war dann der Schritt zum Z80-System oftmals nicht mehr weit.

Auch in rel. aktuellen Produkten wie dem Gameboy findet sich ein Z80 - Derivat. Zilog stellt mit der eZ80 Serie höchst interessante Mikrocontroller her. (TCP/IP Stack drin!)

formatting link

Jep.

So ziemlich das kultigste was man mit einem Z80 machen kann ist den Sinclair ZX80 nachzubauen:

formatting link

Es gab dereinst spannende Einplatinencomputerprojekte z.B. in der mc (EMUF) oder der C'T (EPAC) Dei mc hat mehrere Sonderhefte zum Thema veröffentlicht.

Gruß

Uwe

Reply to
Uwe Bredemeier

Thomas Pototschnig schrieb:

Dadurch wird immerhin ohne Hardwareverrenkungen die Programmierung mit Hilfe eines Monitors möglich.

Ein Monitor besteht u.A aus einer Software (im Eprom) welche über eine Schnittstelle den auszuführenden Code in den Speicher laden und ausführen kann. Komfortablerweise sind zumeist noch allerlei Debughilfen wie Breakpoints setzen, Register anzeigen etc. implementiert.

Der Atmelprogrammierer muß für diesen Luxus tief in die Tasche greifen.

Gruß

Uwe

Reply to
Uwe Bredemeier

Thomas Pototschnig meinte am 26.09.04 zum Thema "Re: Anfängerfragen zum Z80":

Na immerhin hat er noch einen getrennten I/O-Adressbereich.

-jha- id 0x8fce1185 at the usual places.

--
BILD lügt
Reply to
Johann H. Addicks

Uwe Bredemeier schrieb:

Wo läuft denn heute noch DOS?

Reply to
Wolfgang Hauser

Wolfgang Hauser schrieb:

Windows 95,98 und ME basieren auf dem alten 16-Bit MS-DOS Kernel, Klickibunti ist quasi als Bibliothek darübergestülpt. Ich denke daß die Mehrzahl der Intel-PC insbesondere im Soho und Privatbereich heute mit einem dieser Betrübssysteme laufen.

Erst mit XP wurde im Consumerbereich der NT-Kernel eingeführt.

Gruß

Uwe

Reply to
Uwe Bredemeier

Ich sach doch Looserblatt. :-] In meinem ][+ (steht neben dem ][gs im Keller) steckt eine 256MB Saturnkarte mit eigenem MMU ICs drauf. Ich glaub fuer das IC alleine habe ich mal 30-40DM hingelegt. (aechz) Ausserdem steckt direkt daneben noch die 68008 Karte drin.

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza
  1. Tipp, s.o. alles verscheuern und was modernes kaufen. Die Hersteller bieten zum Teil recht komfortable Entwicklungsumgebungen zum runterladen an, z.B. für PIC-Prozessoren...

  1. Tipp: Programmierung des Z80, Rodnay Zaks

  2. Tipp: Google, hab gerade mal nach Z80 und TASM gesucht und den folgenden Link gefunden:
    formatting link

die meistens Links dort waren allerdings tot, mußt vieleicht mal anderweitig suchen, aber den TASM-Assembler verwende ich heute noch für 8031 Systeme

Gruß

Stefan

Reply to
Stefan Broering

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.